From 14ef865e035fd0f6c258cc14c2929a01146bc477 Mon Sep 17 00:00:00 2001 From: Huber Date: Tue, 6 Feb 2018 16:15:26 +0100 Subject: [PATCH] update + cleanup --- SQLSchema/dbExtensions.sql | 6 +- SQLSchema/dump.sql | 22 +- SQLSchema/dumps/01_02_dump.sql | 494 + SQLSchema/dumps/24_01_dump.sql | 792 + SQLSchema/dumps/28_01_02_dump.sql | 494 + SQLSchema/dumps/28_01_dump.sql | 793 + SQLSchema/dumps/29_01_dump.sql | 494 + collective-review/hello.go | 28 +- data/classification-driver.go | 89 +- data/paper-review-driver.go | 4 +- db-schema.sql | 10 +- frontend/src/js/editableTable.js | 2 +- frontend/src/js/levenshtein.min.js | 3 + frontend/src/js/liquidmetal.js | 136 + frontend/src/js/three/DragControls.js | 283 - frontend/src/js/three/FlyControls.js | 294 - frontend/src/js/three/PointerLockControls.js | 70 - frontend/src/js/three/TrackballControls.js | 626 - frontend/src/js/three/three.min.js | 899 - .../js/three/threex.dynamictext2dobject.js | 51 - .../src/js/three/threex.dynamictexture.js | 151 - frontend/src/landing.html | 17 +- frontend/src/review.html | 10 +- frontend/taxonomy/3D/hierarchy.html | 538 - frontend/taxonomy/BPHorizontal.html | 74 - frontend/taxonomy/BPVertical.html | 88 - frontend/taxonomy/Benchmark.html | 46 - frontend/taxonomy/chordMap.html | 129 - .../correlationMap/attributeCoverage.html | 238 - frontend/taxonomy/correlationMap/index.html | 232 - .../interactive/ShortestPathCalculator.js | 315 - .../interactive/attributeCoverage.html | 243 - .../interactive/conceptCorrelations.html | 471 - ...conceptCorrelations_three_dimensional.html | 49 +- ...onceptCorrelations_three_dimensional2.html | 855 - .../conceptCorrelations_two_dimensional.html | 1444 +- ...tCorrelations_two_dimensional_cluster.html | 1904 - ...relations_two_dimensional_scalingSize.html | 1060 - frontend/taxonomy/correlationMap/main.js | 171 - frontend/taxonomy/cytoscape/cytoscape.js | 30281 ------- frontend/taxonomy/cytoscape/index.html | 278 - .../taxonomy/cytoscape/taxonomyRelations.html | 15 +- .../taxonomy/cytoscape/taxonomyRelations.json | 256 - .../taxonomy/hierarchy/circlePacking.html | 60 +- frontend/taxonomy/hierarchy/treeMap.html | 360 - frontend/taxonomy/hierarchy/treeMap2.html | 356 - frontend/taxonomy/treemap.html | 345 - frontend/taxonomy/uml/mermaid.core.js | 11704 --- frontend/taxonomy/uml/mermaid.html | 34 - frontend/taxonomy/uml/mermaid.js | 66382 ---------------- frontend/taxonomy/uml/mermaid.min.js | 6 - frontend/taxonomy/uml/nonnoml/dagre.min.js | 2 - frontend/taxonomy/uml/nonnoml/lodash.min.js | 98 - frontend/taxonomy/uml/nonnoml/nomnoml.html | 77 - frontend/taxonomy/uml/nonnoml/nomnoml.js | 1685 - frontend/taxonomy/uml/nonnoml/style.pu | 78 - frontend/taxonomy/uml/nonnoml/zepto.min.js | 2 - frontend/taxonomy/uml/plantUML/example.html | 53 - frontend/taxonomy/uml/plantUML/jquery.js | 2 - .../taxonomy/uml/plantUML/jquery_plantuml.js | 102 - frontend/taxonomy/uml/plantUML/rawdeflate.js | 1679 - frontend/taxonomy/users/users.html | 3 + model/classification.go | 8 + taxonomyserver.go | 330 +- 64 files changed, 4423 insertions(+), 123398 deletions(-) create mode 100644 SQLSchema/dumps/01_02_dump.sql create mode 100644 SQLSchema/dumps/24_01_dump.sql create mode 100644 SQLSchema/dumps/28_01_02_dump.sql create mode 100644 SQLSchema/dumps/28_01_dump.sql create mode 100644 SQLSchema/dumps/29_01_dump.sql create mode 100644 frontend/src/js/levenshtein.min.js create mode 100644 frontend/src/js/liquidmetal.js delete mode 100644 frontend/src/js/three/DragControls.js delete mode 100644 frontend/src/js/three/FlyControls.js delete mode 100644 frontend/src/js/three/PointerLockControls.js delete mode 100644 frontend/src/js/three/TrackballControls.js delete mode 100644 frontend/src/js/three/three.min.js delete mode 100644 frontend/src/js/three/threex.dynamictext2dobject.js delete mode 100644 frontend/src/js/three/threex.dynamictexture.js delete mode 100644 frontend/taxonomy/3D/hierarchy.html delete mode 100644 frontend/taxonomy/BPHorizontal.html delete mode 100644 frontend/taxonomy/BPVertical.html delete mode 100644 frontend/taxonomy/Benchmark.html delete mode 100644 frontend/taxonomy/chordMap.html delete mode 100644 frontend/taxonomy/correlationMap/attributeCoverage.html delete mode 100644 frontend/taxonomy/correlationMap/index.html delete mode 100644 frontend/taxonomy/correlationMap/interactive/ShortestPathCalculator.js delete mode 100644 frontend/taxonomy/correlationMap/interactive/attributeCoverage.html delete mode 100644 frontend/taxonomy/correlationMap/interactive/conceptCorrelations.html delete mode 100644 frontend/taxonomy/correlationMap/interactive/conceptCorrelations_three_dimensional2.html delete mode 100644 frontend/taxonomy/correlationMap/interactive/conceptCorrelations_two_dimensional_cluster.html delete mode 100644 frontend/taxonomy/correlationMap/interactive/conceptCorrelations_two_dimensional_scalingSize.html delete mode 100644 frontend/taxonomy/correlationMap/main.js delete mode 100644 frontend/taxonomy/cytoscape/cytoscape.js delete mode 100644 frontend/taxonomy/cytoscape/index.html delete mode 100644 frontend/taxonomy/cytoscape/taxonomyRelations.json delete mode 100644 frontend/taxonomy/hierarchy/treeMap.html delete mode 100644 frontend/taxonomy/hierarchy/treeMap2.html delete mode 100644 frontend/taxonomy/treemap.html delete mode 100644 frontend/taxonomy/uml/mermaid.core.js delete mode 100644 frontend/taxonomy/uml/mermaid.html delete mode 100644 frontend/taxonomy/uml/mermaid.js delete mode 100644 frontend/taxonomy/uml/mermaid.min.js delete mode 100644 frontend/taxonomy/uml/nonnoml/dagre.min.js delete mode 100644 frontend/taxonomy/uml/nonnoml/lodash.min.js delete mode 100644 frontend/taxonomy/uml/nonnoml/nomnoml.html delete mode 100644 frontend/taxonomy/uml/nonnoml/nomnoml.js delete mode 100644 frontend/taxonomy/uml/nonnoml/style.pu delete mode 100644 frontend/taxonomy/uml/nonnoml/zepto.min.js delete mode 100644 frontend/taxonomy/uml/plantUML/example.html delete mode 100644 frontend/taxonomy/uml/plantUML/jquery.js delete mode 100644 frontend/taxonomy/uml/plantUML/jquery_plantuml.js delete mode 100644 frontend/taxonomy/uml/plantUML/rawdeflate.js diff --git a/SQLSchema/dbExtensions.sql b/SQLSchema/dbExtensions.sql index 1f88fee..54648c0 100644 --- a/SQLSchema/dbExtensions.sql +++ b/SQLSchema/dbExtensions.sql @@ -15,6 +15,7 @@ ALTER TABLE dimension ADD COLUMN y varchar(50) DEFAULT ""; ALTER TABLE dimension ADD COLUMN xMajor varchar(50) DEFAULT ""; ALTER TABLE dimension ADD COLUMN yMajor varchar(50) DEFAULT ""; ALTER TABLE attribute ADD COLUMN major tinyint(1) DEFAULT "0"; +ALTER TABLE attribute ADD COLUMN synonyms varchar(500) DEFAULT ""; INSERT IGNORE INTO taxonomy_dimension (id_taxonomy, id_attribute, id_dimension) VALUES (1, 5, 1); @@ -108,7 +109,7 @@ ALTER TABLE dimension ADD UNIQUE KEY dimension_text_UNIQUE (text, id_taxonomy); ALTER TABLE mapping MODIFY id_mapping int(10) UNSIGNED NOT NULL, DROP PRIMARY KEY, ADD PRIMARY KEY (id_paper, id_attribute); ALTER TABLE mapping ADD INDEX mapping_id_mapping (id_mapping), MODIFY id_mapping int(10) UNSIGNED NOT NULL AUTO_INCREMENT; -ALTER TABLE taxonomy_dimension ADD UNIQUE KEY taxonomy_dimension_id_attribute_UNIQUE (id_taxonomy, id_attribute); +ALTER TABLE taxonomy_dimension ADD UNIQUE KEY taxonomy_dimension_id_attribute_UNIQUE (id_attribute); ALTER TABLE taxonomy_relation ADD UNIQUE KEY taxonomy_relation_attributes_UNIQUE (id_taxonomy, id_src_attribute, id_dest_attribute, id_dimension); /* foreign keys start */ @@ -241,6 +242,7 @@ END; /* dummy taxonomy coordinates */ /* SET FOREIGN_KEY_CHECKS=0; -REPLACE INTO attribute (id_attribute, text, x, y, xMajor, yMajor, major, x3D, y3D, z3D, xMajor3D, yMajor3D, zMajor3D) VALUES (1,'Integrity Protection Assets','1649.0310541692468','657.0731905134155',NULL,NULL,0,'2982.356969925021','-2285.019961769441','-864.2180305371212',NULL,NULL,NULL),(2,'Behavior','101.37013214331847','-33.71636299987085',NULL,NULL,0,'-4105.754594713023','2970.805490853027','520.6240466093806',NULL,NULL,NULL),(3,'Data','197.83932825786945','-13.324051457043254',NULL,NULL,0,'-5002.920658104225','2416.7437462541925','-667.9458699193781',NULL,NULL,NULL),(4,'Data and behavior','194.8960056011358','78.44135048568128',NULL,NULL,0,'-3116.814622838809','2150.293659766716','-739.4750876543186',NULL,NULL,NULL),(5,'Representation','44.108424258902005','290.011582742518','-1149.3243542368157','137.33226042504893',1,'-5631.8223863130315','-700.1480012803709','232.8933266727454','-2297.307274575899','1861.2451999882087','251.40799472895628'),(6,'Static','887.4460306295156','193.1481029140868',NULL,NULL,0,'-753.8117777226684','2672.900536068831','55.5562648093229',NULL,NULL,NULL),(7,'In memory','889.6007858584886','300.2077385139318',NULL,NULL,0,'-859.8475232068192','1419.0143417630459','1049.9932319804325',NULL,NULL,NULL),(8,'In execution','891.7555410874618','422.5616077708977',NULL,NULL,0,'-525.1480844836708','-997.8604194722125','-515.3976828985001',NULL,NULL,NULL),(9,'Code invariants','1204.8930473445566','121.77501251418998',NULL,NULL,0,'206.51897236227046','1964.5856119335288','1212.8380148609385',NULL,NULL,NULL),(10,'Data invariants','1222.3420362306504','277.2663880282506',NULL,NULL,0,'1584.2972884243895','1107.9452114293008','596.1960385203179',NULL,NULL,NULL),(11,'Trace','1218.2434728270118','556.502958256579',NULL,NULL,0,'1414.656335785149','-1776.66513018276','-191.61968505004643',NULL,NULL,NULL),(12,'Timed trace','1396.2819151128742','559.0519971994323',NULL,NULL,0,'2706.2310058466305','-505.4745310046228','-577.2241671516888',NULL,NULL,NULL),(13,'HW counters','1217.4549053992523','418.8548553424921',NULL,NULL,0,'1194.9742695396158','65.74160947273646','-137.41344005045494',NULL,NULL,NULL),(14,'Granularity','131.17003202979896','505.5221793995098','-897.3263229714349','350.66392710473633',1,'-4849.209350403896','-1872.1017791288107','20.015773720053858','2750.4431883226216','-2948.6211902334258','-502.6910289016656'),(15,'Instructions','439.20946040118747','411.20773851393204',NULL,NULL,0,'-3677.00212371179','-2059.3275936855316','-1231.9318958901586',NULL,NULL,NULL),(16,'BB','1659.8048303141127','727.2885674277603',NULL,NULL,0,'2143.4276500237497','-2464.144864036762','-1036.6394584036368',NULL,NULL,NULL),(17,'Function','433.32281508771996','574.346230856553',NULL,NULL,0,'-3825.8952008628225','-2536.6896428436626','-495.4057692218644',NULL,NULL,NULL),(18,'Slice','432.9285313738393','653.3664380850103',NULL,NULL,0,'-3435.1692734008243','-2081.4646016536462','1249.2503410645315',NULL,NULL,NULL),(19,'Application','440.1813644885202','734.9356842563209',NULL,NULL,0,'-3659.547946100021','-2773.817578816789','732.0912311726131',NULL,NULL,NULL),(20,'Lifecycle activity','187.43222543214645','186.89231154282785','-637.3283542055661','495.99612503027356',1,'-4688.243193111236','110.89828167666965','-422.7101612981819','3088.7134093484487','338.8041040030753','-411.428475846131'),(21,'Pre-compile','580.9837371136482','-13.090439485293977',NULL,NULL,0,'-2098.4675273781886','1903.2747623767602','708.8565788744929',NULL,NULL,NULL),(22,'Compile','585.687531285475','63.38072880030976',NULL,NULL,0,'-2060.668061605252','1333.5185979024836','700.4689784693802',NULL,NULL,NULL),(23,'Post-compile','587.8422865144481','132.20478025735312',NULL,NULL,0,'-2417.367759420388','1072.6497859901137','-40.15143208390509',NULL,NULL,NULL),(24,'Load','587.4480028005672','264.75480528573274',NULL,NULL,0,'-2148.2653425899725','-308.27053657036','59.54550985321248',NULL,NULL,NULL),(25,'Run','592.1517969723947','336.12789568562965',NULL,NULL,0,'-2078.8620483112054','-1015.7537643835454','82.76219647055268',NULL,NULL,NULL),(27,'Attack','940.3360043758586','193.66191904993806','-279.99781251708964','-209.3316979294433',1,'-560.3840244102373','102.1552480434342','-956.7462882957757','-1043.6553421224908','633.6478862886546','4.547473508864641e-13'),(28,'Binary ','724.3219621018262','83.03790265880495',NULL,NULL,0,'-669.670563198074','778.7013671716411','-1338.7442185818304',NULL,NULL,NULL),(29,'Process memory','906.7840594430213','83.03790265880497',NULL,NULL,0,'-94.03937291157544','-1336.7099182805853','1261.323300421252',NULL,NULL,NULL),(30,'Runtime data','1084.0008419920632','80.41524526272829',NULL,NULL,0,'-1286.5345978331447','-12.458919208386305','-1284.887427267443',NULL,NULL,NULL),(31,'Control flow','1242.8590227685681','138.11370797641482',NULL,NULL,0,'613.0758806397226','625.6623474191132','-1220.5401846641005',NULL,NULL,NULL),(32,'Measure','873.3942993388207','163.0985353391625','-771.9939687971188','-501.32941669726534',1,'-1540.1203017455578','164.35563430566253','519.8406371279184','-2885.666024652709','-362.649687924208','366.3875195434952'),(33,'Local','1110.8113585010585','131.57603389965158',NULL,NULL,0,'414.01249022013945','650.3924349711187','217.48400016653432',NULL,NULL,NULL),(34,'Remote','1118.2995836339228','209.45515510314914',NULL,NULL,0,'491.74632812015005','97.3780742973924','-123.8359011677826',NULL,NULL,NULL),(35,'Monitor','265.40894594719606','-14.91088455454599',NULL,NULL,0,'-3569.5793861554353','1840.7840486857215','360.30867064656013',NULL,NULL,NULL),(36,'State inspection','126.41025262586263','-94.64427054860292',NULL,NULL,0,'-5341.030340064095','2669.721222390146','-724.4818029428425',NULL,NULL,NULL),(37,'Introspection','109.15191089189352','43.71535517567398',NULL,NULL,0,'-4970.62799052557','1395.0657686414263','-235.261091445313',NULL,NULL,NULL),(38,'Response','452.9031877055812','-11.20235497342702',NULL,NULL,0,'-2593.6039171763614','2544.8218260668036','-759.650458124624',NULL,NULL,NULL),(39,'Proactive','342.9316064436389','-99.66960379790412',NULL,NULL,0,'-3372.016016595666','3430.1408603523755','-464.66544817688964',NULL,NULL,NULL),(40,'Postmortem','1854.8697013097888','296.6056002594439',NULL,NULL,0,'-5498.445586366219','-3168.741296759451','-466.7710346363615',NULL,NULL,NULL),(41,'Transformation','630.4856117755306','-16.918681805246013',NULL,NULL,0,'-674.7676646465982','2349.977089886205','-139.82051733421395',NULL,NULL,NULL),(42,'Manual','578.6373636104923','-117.0489804954572',NULL,NULL,0,'-921.5490625752307','3398.8951229358577','-479.87542564422074',NULL,NULL,NULL),(43,'Automatic','693.6729465958057','-122.6117748671356',NULL,NULL,0,'127.94846090778958','3219.9382164220856','20.700303685751805',NULL,NULL,NULL),(44,'Check','873.6077972507001','-2.0845634807704645',NULL,NULL,0,'1837.275949199416','2425.3707306235287','-191.4718377402669',NULL,NULL,NULL),(45,'Checksum','821.7595490856617','-126.32030444825449',NULL,NULL,0,'1281.3745416615216','2879.8359194492364','723.2800076185517',NULL,NULL,NULL),(46,'Signature','944.2121912332129','-130.0288340293734',NULL,NULL,0,'2246.4861157601076','2810.5915954973075','942.1178163301893',NULL,NULL,NULL),(47,'Equation eval','1088.916010867478','-130.02883402937346',NULL,NULL,0,'4753.967841269285','3722.180629086103','-665.6491212581645',NULL,NULL,NULL),(48,'Majority vote','1272.5593911034905','-130.02883402937346',NULL,NULL,0,'5182.609118082028','2736.231141284869','551.5771540960122',NULL,NULL,NULL),(49,'Access control','1433.9515938527904','-98.50633258986255',NULL,NULL,0,'6003.849502008718','2344.8187915623075','899.7533214767686',NULL,NULL,NULL),(50,'Hardening','1105.1773981587537','16.30455196468352',NULL,NULL,0,'3255.87157917825','840.7435575967074','88.59670625233503',NULL,NULL,NULL),(51,'Cyclic checks','1574.377556140925','-28.769818620181876',NULL,NULL,0,'5319.912403964804','1727.0256279508856','111.736167113791',NULL,NULL,NULL),(52,'Mutation','1572.594457320991','44.118523823075535',NULL,NULL,0,'4730.551295434692','949.487537634357','746.8857972408391',NULL,NULL,NULL),(53,'Code concealment','1580.0826824538556','109.0177914926567',NULL,NULL,0,'5356.577880976774','409.08695466782','279.84508938293175',NULL,NULL,NULL),(54,'Cloning','1574.591054052804','179.4798535339163',NULL,NULL,0,'5418.041195227526','-113.16968086050889','220.2466009992163',NULL,NULL,NULL),(55,'Layered interpretation','1592.5637433394631','248.0876507846166',NULL,NULL,0,'5193.809046312347','-656.3386097542594','748.8403578656307',NULL,NULL,NULL),(56,'Block chain','1858.4704534387163','371.42124195265205',NULL,NULL,0,'-6603.287282993331','-3590.335405994925','-415.31175748802025',NULL,NULL,NULL),(57,'Overhead','443.70302972341','181.33411832447578','-643.9949687893062','-167.99868751025386',1,'-3111.5808170396704','-114.66231598591185','866.8210719505937','164.35378747602084','1134.055950173481','-753.9175926735629'),(58,'Fair','242.52692883344275','352.5330491564459',NULL,NULL,0,'-5469.649462165422','-1106.5081701160102','688.9308524708213',NULL,NULL,NULL),(59,'Medium','322.36666614110965','353.66176587542634',NULL,NULL,0,'-4962.526245694544','-1110.5939508533318','750.2335288606791',NULL,NULL,NULL),(60,'High','399.8140466819174','355.44692168786355',NULL,NULL,0,'-4466.411357115115','-1226.125726118128','787.2822971600735',NULL,NULL,NULL),(61,'N/A','480.19061425803926','356.0880462774242',NULL,NULL,0,'-3918.0005729833483','-1244.1277199837466','842.8111976052214',NULL,NULL,NULL),(62,'Trust anchor','875.4620620412592','296.1450028790219','-894.6596771379391','-287.99775001757797',1,'-1852.7437633603195','-1111.1540361743937','-97.31951956107605','-1496.7187517790915','-1076.584406805348','1016.42713987056'),(63,'TPM','964.5379379587403','431.50633258986267',NULL,NULL,0,'-1184.9044012773659','-1789.3336295065346','572.4938645051229',NULL,NULL,NULL),(64,'SGX','1031.3626363895075','431.5063325898628',NULL,NULL,0,'-760.1823260827139','-1683.7777345675374','-319.8366899296602',NULL,NULL,NULL),(65,'Other','1109.3129235636318','433.3605973804221',NULL,NULL,0,'-294.31717100375323','-1603.1064742755818','528.323654467245',NULL,NULL,NULL),(66,'None','1859.7202051212796','450.88202131678383',NULL,NULL,0,'-8858.024127630688','-3467.2103127353244','-1518.0462141048988',NULL,NULL,NULL),(67,'Protection level','1307.8615880947477','346.2101522241273','-914.6595208891597','-155.9987812595215',1,'996.9534648630378','-1705.7452487059247','512.4409064068868','-2534.5247518544247','256.0799143751864','-203.61227561712337'),(68,'Internal','1848.7375791730985','231.62966387167714',NULL,NULL,0,'-7748.085581592561','-3476.806033232715','-1364.4036208165571',NULL,NULL,NULL),(69,'External','1384.6705318924207','472.6840866444073',NULL,NULL,0,'2529.0218352225365','-3007.2567771414238','285.6644084838954',NULL,NULL,NULL),(70,'Hypervisor','1254.9431625238847','456.740491586116',NULL,NULL,0,'1583.1531063878915','-2645.529174665351','703.9929349935978',NULL,NULL,NULL),(71,'Software','760.4976450265727','425.7900057580437',NULL,NULL,0,'-2797.358495533419','-2152.495606294804','-225.68108123829825',NULL,NULL,NULL),(72,'Reverse engineering','456.2492122594371','195.8121706901014','-51.99959375317334','27.999781251708782',1,'-150.57370347755636','-715.1167132090086','-15.635084340648746','-197.80873206507522','-917.9333817485949','326.9834909860764'),(73,'Attacker','455.1247623762343','304.1895132940248','-285.3311041840815','39.999687502441375',1,'1144.1859704610501','240.24312276877822','-194.02308367976838','1024.0980845461536','-88.9569907091659','-1366.4392732671088'),(78,'Call interposition','1246.347996774703','268.8145864563514',NULL,NULL,0,'-614.6855742024392','69.78717798899197','172.16880717031245',NULL,NULL,NULL),(79,'Disassembler','100.12950183558092','66.83901894908688',NULL,NULL,0,'-1995.7698478480065','-1269.2143260974635','-850.0941495725112',NULL,NULL,NULL),(80,'Tools','182.93061812586294','195.34923135684326','-58.666208336913826','-187.99853126147457',1,'-1164.2709035330786','-836.8747820341652','-862.5478927977981','-1342.1191295012839','-114.96057988172356','-15.715835268157775'),(81,'Debugger','222.45788738087995','69.46167634516351',NULL,NULL,0,'-898.1664589407969','-1951.0450139459258','-746.8683106090873',NULL,NULL,NULL),(82,'Tracer','339.07987666203144','105.12817980870786',NULL,NULL,0,'-1551.0856659947635','-478.5743355733096','-1242.1773531332879',NULL,NULL,NULL),(83,'Emulator','181.22698500534597','328.30650147624226',NULL,NULL,0,'-1150.7311957570096','-1400.1755468659949','217.24970035778017',NULL,NULL,NULL),(84,'Discovery','713.1518947222972','272.72709096376013','301.3309791850585','-165.33204167675774',1,'134.6578654717242','-290.1059399368047','911.8235960463293','-107.54154854705472','-1454.515798633701','553.3090234561244'),(85,'Pattern matching','676.5292554630063','398.4778093963763',NULL,NULL,0,'1037.20466085537','-142.0301624518263','1259.2820528498744',NULL,NULL,NULL),(86,'Taint analysis','852.9380630792848','401.93938973457784',NULL,NULL,0,'647.4909578714954','-571.3963813086439','1710.4840235215438',NULL,NULL,NULL),(87,'Graph-based analysis','1061.657682390608','399.1489477500765',NULL,NULL,0,'696.823432627275','-1526.425663903857','1189.8850144020796',NULL,NULL,NULL),(88,'Symbolic execution','1302.992734564465','342.1965639504301',NULL,NULL,0,'662.2672080618793','-1189.9103668925495','887.5497529647132',NULL,NULL,NULL),(89,'Dongle','882.9502871741241','431.3528001297221',NULL,NULL,0,'-1758.2619761800556','-1832.5148037505676','517.4632417765356',NULL,NULL,NULL),(90,'Self-check','1527.733584648006','468.36898696278894',NULL,NULL,0,'2254.929586909267','-2091.1030565912292','640.2494531206704',NULL,NULL,NULL),(91,'Hash chain','1560.609501237264','336.10961673256753',NULL,NULL,0,'5428.823081049158','-1392.7422049872685','622.1884914602401',NULL,NULL,NULL),(92,'Reactive','465.9542072101243','-113.80104829476028',NULL,NULL,0,'-2156.9317741090754','3388.5632998016813','29.848118994063952',NULL,NULL,NULL),(93,'Asset','-25.109910912021626','78.67496245743045','-1157.3242917373038','347.99728127124',1,'-4808.952804641889','1030.5020433257075','5.0788317295755405','3129.4424613034453','-1133.9728517827305','-488.9199597681988'),(94,'Link','586.265151658927','195.93075382868957',NULL,NULL,0,'-2652.1505220442427','412.8804880622755','131.98179481604484',NULL,NULL,NULL),(95,'Basic block','438.0266092595463','491.6192711996905',NULL,NULL,0,'-5634.276242050955','-2183.7509211360775','698.4873866131952',NULL,NULL,NULL),(97,'asdf','181.67928743243047','461.74826607962','','',0,NULL,NULL,NULL,NULL,NULL,NULL),(98,'23','213.05761709609442','181.12503608253778','','',0,NULL,NULL,NULL,NULL,NULL,NULL),(26,'Not root','455.7266028589016','393.7732747885879','','',0,NULL,NULL,NULL,NULL,NULL,NULL),(103,'ffffffeee','620.1434389341558','504.7649461474462','','',0,NULL,NULL,NULL,NULL,NULL,NULL),(104,'lulkek','1033.4172749509523','624.2618774270801','','',0,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO attribute VALUES (1,'Integrity Protection Assets','1539.6977208359122','828.406523846749',NULL,NULL,'2982.356969925021','-2285.019961769441','-864.2180305371212',NULL,NULL,NULL,0,1),(2,'Behavior','362.03679880998527','70.61697033346249',NULL,NULL,'-4105.754594713023','2970.805490853027','520.6240466093806',NULL,NULL,NULL,0,1),(3,'Data','360.50599492453625','156.00928187629017',NULL,NULL,'-5002.920658104225','2416.7437462541925','-667.9458699193781',NULL,NULL,NULL,0,1),(4,'Data and behavior','363.56267226780255','233.77468381901463',NULL,NULL,'-3116.814622838809','2150.293659766716','-739.4750876543186',NULL,NULL,NULL,0,1),(5,'Representation','328.44175759223543','432.6782494091842','-706.6576875701488','-609.3344062416174','-5631.8223863130315','-700.1480012803709','232.8933266727454','-2297.307274575899','1861.2451999882087','251.40799472895628',1,1),(6,'Static','1020.112697296182','169.14810291408673',NULL,NULL,'-753.8117777226684','2672.900536068831','55.5562648093229',NULL,NULL,NULL,0,1),(7,'In memory','1035.9341191918215','319.5410718472651',NULL,NULL,'-859.8475232068192','1419.0143417630459','1049.9932319804325',NULL,NULL,NULL,0,1),(8,'In execution','1036.422207754128','515.8949411042306',NULL,NULL,'-525.1480844836708','-997.8604194722125','-515.3976828985001',NULL,NULL,NULL,0,1),(9,'Code invariants','1473.5597140112222','232.10834584752325',NULL,NULL,'206.51897236227046','1964.5856119335288','1212.8380148609385',NULL,NULL,NULL,0,1),(10,'Data invariants','1475.0087028973157','391.5997213615837',NULL,NULL,'1584.2972884243895','1107.9452114293008','596.1960385203179',NULL,NULL,NULL,0,1),(11,'Trace','1476.9101394936774','659.8362915899118',NULL,NULL,'1414.656335785149','-1776.66513018276','-191.61968505004643',NULL,NULL,NULL,0,1),(12,'Timed trace','1652.9485817795407','661.3853305327655',NULL,NULL,'2706.2310058466305','-505.4745310046228','-577.2241671516888',NULL,NULL,NULL,0,1),(13,'HW counters','1477.121572065918','520.1881886758251',NULL,NULL,'1194.9742695396158','65.74160947273646','-137.41344005045494',NULL,NULL,NULL,0,1),(14,'Granularity','327.83669869646576','674.855512732843','-686.6596563047685','-281.3360728952638','-4849.209350403896','-1872.1017791288107','20.015773720053858','2750.4431883226216','-2948.6211902334258','-502.6910289016656',1,1),(15,'Instructions','593.8761270678542','600.541071847265',NULL,NULL,'-3677.00212371179','-2059.3275936855316','-1231.9318958901586',NULL,NULL,NULL,0,1),(16,'BB','1696.8048303141118','828.2885674277604',NULL,NULL,'2143.4276500237497','-2464.144864036762','-1036.6394584036368',NULL,NULL,NULL,0,1),(17,'Function','576.3228150877201','672.3462308565527',NULL,NULL,'-3825.8952008628225','-2536.6896428436626','-495.4057692218644',NULL,NULL,NULL,0,1),(18,'Slice','560.9285313738394','752.36643808501',NULL,NULL,'-3435.1692734008243','-2081.4646016536462','1249.2503410645315',NULL,NULL,NULL,0,1),(19,'Application','590.1813644885203','825.9356842563209',NULL,NULL,'-3659.547946100021','-2773.817578816789','732.0912311726131',NULL,NULL,NULL,0,1),(20,'Lifecycle activity','499.43222543214654','296.8923115428277','-690.6616875388991','-767.670541636393','-4688.243193111236','110.89828167666965','-422.7101612981819','3088.7134093484487','338.8041040030753','-411.428475846131',1,1),(21,'Pre-compile','727.983737113648','68.90956051470602',NULL,NULL,'-2098.4675273781886','1903.2747623767602','708.8565788744929',NULL,NULL,NULL,0,1),(22,'Compile','708.0208646188082','143.38072880030973',NULL,NULL,'-2060.668061605252','1333.5185979024836','700.4689784693802',NULL,NULL,NULL,0,1),(23,'Post-compile','733.842286514448','211.20478025735315',NULL,NULL,'-2417.367759420388','1072.6497859901137','-40.15143208390509',NULL,NULL,NULL,0,1),(24,'Load','693.7813361339005','366.75480528573263',NULL,NULL,'-2148.2653425899725','-308.27053657036','59.54550985321248',NULL,NULL,NULL,0,1),(25,'Run','695.4851303057279','438.1278956856295',NULL,NULL,'-2078.8620483112054','-1015.7537643835454','82.76219647055268',NULL,NULL,NULL,0,1),(26,'Not root','474.7266028589015','454.7732747885879','','',NULL,NULL,NULL,NULL,NULL,NULL,0,1),(27,'Attack','959.3360043758585','256.6619190499381','-323.9978125170894','-482.6650312627768','-560.3840244102373','102.1552480434342','-956.7462882957757','-1043.6553421224908','633.6478862886546','4.547473508864641e-13',1,1),(28,'Binary ','813.3219621018261','142.03790265880497',NULL,NULL,'-669.670563198074','778.7013671716411','-1338.7442185818304',NULL,NULL,NULL,0,1),(29,'Process memory','959.7840594430213','141.03790265880497',NULL,NULL,'-94.03937291157544','-1336.7099182805853','1261.323300421252',NULL,NULL,NULL,0,1),(30,'Runtime data','1103.0008419920632','139.4152452627283',NULL,NULL,'-1286.5345978331447','-12.458919208386305','-1284.887427267443',NULL,NULL,NULL,0,1),(31,'Control flow','1307.8590227685681','140.11370797641482',NULL,NULL,'613.0758806397226','625.6623474191132','-1220.5401846641005',NULL,NULL,NULL,0,1),(32,'Measure','847.3942993388207','425.0985353391625','-987.9939687971188','-766.6627500305989','-1540.1203017455578','164.35563430566253','519.8406371279184','-2885.666024652709','-362.649687924208','366.3875195434952',1,1),(33,'Local','1083.8113585010585','349.5760338996515',NULL,NULL,'414.01249022013945','650.3924349711187','217.48400016653432',NULL,NULL,NULL,0,1),(34,'Remote','1084.2995836339228','424.4551551031491',NULL,NULL,'491.74632812015005','97.3780742973924','-123.8359011677826',NULL,NULL,NULL,0,1),(35,'Monitor','422.4089459471961','352.089115445454',NULL,NULL,'-3569.5793861554353','1840.7840486857215','360.30867064656013',NULL,NULL,NULL,0,1),(36,'State inspection','139.41025262586263','152.3557294513971',NULL,NULL,'-5341.030340064095','2669.721222390146','-724.4818029428425',NULL,NULL,NULL,0,1),(37,'Introspection','136.15191089189352','352.71535517567395',NULL,NULL,'-4970.62799052557','1395.0657686414263','-235.261091445313',NULL,NULL,NULL,0,1),(38,'Response','426.9031877055812','232.79764502657298',NULL,NULL,'-2593.6039171763614','2544.8218260668036','-759.650458124624',NULL,NULL,NULL,0,1),(39,'Proactive','304.9316064436389','131.33039620209587',NULL,NULL,'-3372.016016595666','3430.1408603523755','-464.66544817688964',NULL,NULL,NULL,0,1),(40,'Postmortem','1796.8697013097888','637.6056002594439',NULL,NULL,'-5498.445586366219','-3168.741296759451','-466.7710346363615',NULL,NULL,NULL,0,1),(41,'Transformation','604.4856117755306','227.08131819475398',NULL,NULL,'-674.7676646465982','2349.977089886205','-139.82051733421395',NULL,NULL,NULL,0,1),(42,'Manual','553.6373636104923','121.95101950454278',NULL,NULL,'-921.5490625752307','3398.8951229358577','-479.87542564422074',NULL,NULL,NULL,0,1),(43,'Automatic','671.6729465958057','121.38822513286442',NULL,NULL,'127.94846090778958','3219.9382164220856','20.700303685751805',NULL,NULL,NULL,0,1),(44,'Check','847.6077972507001','241.9154365192295',NULL,NULL,'1837.275949199416','2425.3707306235287','-191.4718377402669',NULL,NULL,NULL,0,1),(45,'Checksum','796.7595490856617','119.67969555174551',NULL,NULL,'1281.3745416615216','2879.8359194492364','723.2800076185517',NULL,NULL,NULL,0,1),(46,'Signature','913.2121912332129','118.9711659706266',NULL,NULL,'2246.4861157601076','2810.5915954973075','942.1178163301893',NULL,NULL,NULL,0,1),(47,'Equation eval','1063.916010867478','118.97116597062654',NULL,NULL,'4753.967841269285','3722.180629086103','-665.6491212581645',NULL,NULL,NULL,0,1),(48,'Majority vote','1243.5593911034905','118.97116597062654',NULL,NULL,'5182.609118082028','2736.231141284869','551.5771540960122',NULL,NULL,NULL,0,1),(49,'Access control','1415.9515938527904','119.49366741013745',NULL,NULL,'6003.849502008718','2344.8187915623075','899.7533214767686',NULL,NULL,NULL,0,1),(50,'Hardening','1079.1773981587537','260.30455196468347',NULL,NULL,'3255.87157917825','840.7435575967074','88.59670625233503',NULL,NULL,NULL,0,1),(51,'Cyclic checks','1579.377556140925','264.23018137981813',NULL,NULL,'5319.912403964804','1727.0256279508856','111.736167113791',NULL,NULL,NULL,0,1),(52,'Mutation','1584.594457320991','342.1185238230755',NULL,NULL,'4730.551295434692','949.487537634357','746.8857972408391',NULL,NULL,NULL,0,1),(53,'Code concealment','1594.0826824538556','432.01779149265667',NULL,NULL,'5356.577880976774','409.08695466782','279.84508938293175',NULL,NULL,NULL,0,1),(54,'Cloning','1597.591054052804','522.4798535339163',NULL,NULL,'5418.041195227526','-113.16968086050889','220.2466009992163',NULL,NULL,NULL,0,1),(55,'Layered interpretation','1621.5637433394631','599.0876507846166',NULL,NULL,'5193.809046312347','-656.3386097542594','748.8403578656307',NULL,NULL,NULL,0,1),(56,'Block chain','1796.4704534387163','700.421241952652',NULL,NULL,'-6603.287282993331','-3590.335405994925','-415.31175748802025',NULL,NULL,NULL,0,1),(57,'Overhead','417.70302972341','425.33411832447575','-989.3283021226397','-621.3320208435873','-3111.5808170396704','-114.66231598591185','866.8210719505937','164.35378747602084','1134.055950173481','-753.9175926735629',1,1),(58,'Fair','232.52692883344275','671.5330491564459',NULL,NULL,'-5469.649462165422','-1106.5081701160102','688.9308524708213',NULL,NULL,NULL,0,1),(59,'Medium','320.36666614110965','672.6617658754263',NULL,NULL,'-4962.526245694544','-1110.5939508533318','750.2335288606791',NULL,NULL,NULL,0,1),(60,'High','414.8140466819174','672.4469216878636',NULL,NULL,'-4466.411357115115','-1226.125726118128','787.2822971600735',NULL,NULL,NULL,0,1),(61,'N/A','487.1906142580392','672.0880462774242',NULL,NULL,'-3918.0005729833483','-1244.1277199837466','842.8111976052214',NULL,NULL,NULL,0,1),(62,'Trust anchor','848.4620620412592','544.1450028790218','-982.6596771379395','-383.9977500175782','-1852.7437633603195','-1111.1540361743937','-97.31951956107605','-1496.7187517790915','-1076.584406805348','1016.42713987056',1,1),(63,'TPM','934.5379379587403','669.5063325898627',NULL,NULL,'-1184.9044012773659','-1789.3336295065346','572.4938645051229',NULL,NULL,NULL,0,1),(64,'SGX','1005.3626363895075','670.5063325898627',NULL,NULL,'-760.1823260827139','-1683.7777345675374','-319.8366899296602',NULL,NULL,NULL,0,1),(65,'Other','1077.3129235636318','673.3605973804222',NULL,NULL,'-294.31717100375323','-1603.1064742755818','528.323654467245',NULL,NULL,NULL,0,1),(66,'None','1710.7202051212796','700.8820213167838',NULL,NULL,'-8858.024127630688','-3467.2103127353244','-1518.0462141048988',NULL,NULL,NULL,0,1),(67,'Protection level','1295.8615880947477','548.2101522241273','-994.6595208891601','-281.33211459285496','996.9534648630378','-1705.7452487059247','512.4409064068868','-2534.5247518544247','256.0799143751864','-203.61227561712337',1,1),(68,'Internal','1637.7375791730985','699.6296638716772',NULL,NULL,'-7748.085581592561','-3476.806033232715','-1364.4036208165571',NULL,NULL,NULL,0,1),(69,'External','1368.6705318924207','700.6840866444072',NULL,NULL,'2529.0218352225365','-3007.2567771414238','285.6644084838954',NULL,NULL,NULL,0,1),(70,'Hypervisor','1228.9431625238847','700.7404915861159',NULL,NULL,'1583.1531063878915','-2645.529174665351','703.9929349935978',NULL,NULL,NULL,0,1),(71,'Software','729.4976450265727','669.7900057580437',NULL,NULL,'-2797.358495533419','-2152.495606294804','-225.68108123829825',NULL,NULL,NULL,0,1),(72,'Reverse engineering','475.2492122594372','254.81217069010142','-322.6662604198401','-776.0002187482914','-150.57370347755636','-715.1167132090086','-15.635084340648746','-197.80873206507522','-917.9333817485949','326.9834909860764',1,1),(73,'Attacker','475.12476237623423','368.1895132940248','-326.9977708507478','-283.333645830892','1144.1859704610501','240.24312276877822','-194.02308367976838','1024.0980845461536','-88.9569907091659','-1366.4392732671088',1,1),(78,'Call interposition','1150.347996774703','256.8145864563514',NULL,NULL,'-614.6855742024392','69.78717798899197','172.16880717031245',NULL,NULL,NULL,0,1),(79,'Disassembler','119.12950183558092','125.83901894908689',NULL,NULL,'-1995.7698478480065','-1269.2143260974635','-850.0941495725112',NULL,NULL,NULL,0,1),(80,'Tools','201.9306181258629','254.34923135684323','-325.33287500358057','-623.9985312614746','-1164.2709035330786','-836.8747820341652','-862.5478927977981','-1342.1191295012839','-114.96057988172356','-15.715835268157775',1,1),(81,'Debugger','241.45788738087992','128.4616763451635',NULL,NULL,'-898.1664589407969','-1951.0450139459258','-746.8683106090873',NULL,NULL,NULL,0,1),(82,'Tracer','340.07987666203144','127.12817980870784',NULL,NULL,'-1551.0856659947635','-478.5743355733096','-1242.1773531332879',NULL,NULL,NULL,0,1),(83,'Emulator','201.89365167201254','367.6398348095756',NULL,NULL,'-1150.7311957570096','-1400.1755468659949','217.24970035778017',NULL,NULL,NULL,0,1),(84,'Discovery','728.1518947222971','328.72709096376013','-320.002354148275','-889.3320416767579','134.6578654717242','-290.1059399368047','911.8235960463293','-107.54154854705472','-1454.515798633701','553.3090234561244',1,1),(85,'Pattern matching','728.5292554630064','453.4778093963763',NULL,NULL,'1037.20466085537','-142.0301624518263','1259.2820528498744',NULL,NULL,NULL,0,1),(86,'Taint analysis','919.9380630792848','451.93938973457784',NULL,NULL,'647.4909578714954','-571.3963813086439','1710.4840235215438',NULL,NULL,NULL,0,1),(87,'Graph-based analysis','1111.657682390608','453.1489477500765',NULL,NULL,'696.823432627275','-1526.425663903857','1189.8850144020796',NULL,NULL,NULL,0,1),(88,'Symbolic execution','1334.992734564465','451.1965639504301',NULL,NULL,'662.2672080618793','-1189.9103668925495','887.5497529647132',NULL,NULL,NULL,0,1),(89,'Dongle','848.9502871741241','670.352800129722',NULL,NULL,'-1758.2619761800556','-1832.5148037505676','517.4632417765356',NULL,NULL,NULL,0,1),(90,'Self-check','1498.733584648006','699.368986962789',NULL,NULL,'2254.929586909267','-2091.1030565912292','640.2494531206704',NULL,NULL,NULL,0,1),(91,'Hash chain','1575.609501237264','186.10961673256747',NULL,NULL,'5428.823081049158','-1392.7422049872685','622.1884914602401',NULL,NULL,NULL,0,1),(92,'Reactive','426.9542072101243','128.19895170523972',NULL,NULL,'-2156.9317741090754','3388.5632998016813','29.848118994063952',NULL,NULL,NULL,0,1),(93,'Asset','99.22342242131162','154.6749624574304','-686.6576250706369','-890.6693853954267','-4808.952804641889','1030.5020433257075','5.0788317295755405','3129.4424613034453','-1133.9728517827305','-488.9199597681988',1,1),(94,'Link','693.5984849922603','296.93075382868955',NULL,NULL,'-2652.1505220442427','412.8804880622755','131.98179481604484',NULL,NULL,NULL,0,1),(95,'Basic block','589.3599425928796','523.6192711996905',NULL,NULL,'-5634.276242050955','-2183.7509211360775','698.4873866131952',NULL,NULL,NULL,0,1); +REPLACE INTO taxonomy_relation VALUES (56,1,2,93,3,1,'{x:245.99999999999997,y:71.99999999999996};{x:246.99999999999997,y:155}'),(57,1,3,93,3,1,'{x:232.36470867292397,y:155.35488918195506}'),(58,1,4,93,3,1,'{x:246.99999999999997,y:234};{x:246.99999999999997,y:155.99999999999994}'),(59,1,5,93,1,1,'{x:99.99999999999991,y:431.9999999999999}'),(60,1,21,20,3,1,'{x:647.1794253666435,y:69.82057517234267};{x:650.6666891188631,y:296.3333098646116}'),(61,1,22,20,3,1,'{x:648.2100417611323,y:143.79604123777884};{x:649.4742480270277,y:296.5104000328528}'),(62,1,23,20,3,1,'{x:648.3866880746442,y:211.6541379857174};{x:649.3213879220136,y:296.6063372240162}'),(63,1,24,20,3,1,'{x:651.1102947476124,y:366.7756595403927};{x:650.602317217686,y:297.7944639029661}'),(64,1,25,20,3,1,'{x:651.0420523241444,y:435.7642012738366};{x:649.9017992903628,y:297.80051601778246}'),(65,1,94,20,3,1,'{x:631.5153552122035,y:296.9184622110439}'),(66,1,6,21,1,1,'{x:837.0000000000001,y:168.00000000000003};{x:835,y:70.00000000000003}'),(67,1,6,22,1,1,'{x:836.0000000000002,y:169};{x:836.0000000000002,y:144}'),(68,1,6,94,1,1,'{x:836.9999999999999,y:169.0000000000001};{x:837.9999999999997,y:298.00000000000017}'),(69,1,6,5,5,1,'{x:1019.9999999999998,y:231.00000000000006};{x:926,y:231};{x:929.9999999999997,y:487};{x:483.99999999999994,y:482};{x:480.9999999999998,y:435}'),(70,1,7,5,5,1,'{x:926.9999999999998,y:319};{x:929,y:486};{x:482.99999999999994,y:482};{x:482.0000000000001,y:434.99999999999994}'),(71,1,8,5,5,1,'{x:929,y:514.9999999999999};{x:929.0000000000002,y:487};{x:481.9999999999999,y:481};{x:480.9999999999999,y:434}'),(72,1,9,7,3,1,'{x:1474,y:318}'),(73,1,10,7,3,1,'{x:1473.7949380792272,y:317.9784915175459}'),(74,1,13,8,3,1,'{x:1259.2718899100228,y:518.0659196311467}'),(75,1,11,8,3,1,'{x:1361,y:659};{x:1360,y:518.9999999999998}'),(76,1,12,11,3,1,'{x:1549.9293606366093,y:660.4788195267564}'),(77,1,7,24,1,1,'{x:1036,y:366.99999999999994}'),(78,1,7,25,1,1,'{x:1036,y:443.0000000000001}'),(79,1,8,24,1,1,'{x:1035,y:368.00000000000006}'),(80,1,8,25,1,1,'{x:1035,y:444};{x:886.7188837054866,y:441.4353930845009}'),(81,1,5,14,1,1,'{x:328.1392281443622,y:553.7668810710022}'),(82,1,15,14,3,1,'{x:506.9999999999999,y:603};{x:506.99999999999994,y:673.0000000000001}'),(83,1,95,14,3,1,'{x:505.99999999999994,y:525};{x:506.99999999999994,y:672.9999999999999}'),(84,1,17,14,3,1,'{x:459.5797568920929,y:673.5251347098841}'),(85,1,18,14,3,1,'{x:507.9999999999999,y:752};{x:506.99999999999994,y:674}'),(86,1,19,14,3,1,'{x:509,y:825};{x:507,y:673}'),(87,1,79,80,4,2,'{x:119.21985912716738,y:191.88190867508243};{x:202.21985912716733,y:190.88190867508223}'),(88,1,81,80,4,2,'{x:241.21985912716747,y:190.88190867508288};{x:202.21985912716724,y:190.881908675083}'),(89,1,82,80,4,2,'{x:338.84847248584714,y:191.5349713095123};{x:203.21985912716718,y:191.8819086750825}'),(90,1,83,80,4,2,'{x:201.9121348988953,y:310.9945330830352}'),(91,1,80,72,5,2,'{x:303.5899151926502,y:254.52141900969116}'),(92,1,73,72,5,2,'{x:475.1869873177485,y:311.500841992063}'),(93,1,84,72,5,2,'{x:474.97515501915564,y:327.65226755612076}'),(94,1,27,72,5,2,'{x:749.7926083176478,y:255.86123090994874}'),(95,1,28,27,3,2,'{x:814.84152913225,y:196.7518137564864};{x:959.8415291322498,y:196.75181375648648}'),(96,1,29,27,3,2,'{x:959.5600319095079,y:198.8499108543131}'),(97,1,30,27,3,2,'{x:1103.8484724858467,y:198.53497130951226};{x:959.8415291322493,y:197.7518137564864}'),(98,1,88,84,3,2,'{x:1336.8484724858472,y:396.53497130951206};{x:728.0668472804629,y:394.8950055421265}'),(99,1,31,27,3,2,'{x:1307.8415291322503,y:197.75181375648594};{x:959.8415291322494,y:198.75181375648614}'),(100,1,26,73,3,2,'{x:474.9256826175398,y:411.481394041331}'),(101,1,85,84,3,2,'{x:728.34057509258,y:391.10245018006844}'),(102,1,86,84,3,2,'{x:919.8484724858474,y:395.5349713095123};{x:729.0743617269079,y:394.50376596600955}'),(103,1,87,84,3,2,'{x:1111.8484724858467,y:396.534971309512};{x:728.6180005479822,y:393.9837999791198}'),(104,1,78,27,3,2,'{x:1024.842000575281,y:256.71427508485874}'),(105,1,57,32,5,3,'{x:635.0486645311152,y:425.21495617920175}'),(106,1,62,32,5,3,'{x:847.9281806900183,y:484.62176910908596}'),(107,1,67,32,5,3,'{x:1293,y:500.9999999999998};{x:849,y:501}'),(108,1,35,32,5,3,'{x:557.9999999999999,y:353};{x:558,y:424.99999999999983}'),(109,1,38,32,5,3,'{x:425.9999999999999,y:301.99999999999994};{x:606,y:303};{x:847.9999999999999,y:305}'),(110,1,41,32,5,3,'{x:605,y:302.0000000000002};{x:848,y:305.0000000000001}'),(111,1,44,32,5,3,'{x:847.5010482948479,y:333.5069859296838}'),(112,1,50,32,5,3,'{x:1080,y:304};{x:848.0000000000002,y:304.99999999999955}'),(113,1,33,32,3,3,'{x:1012,y:350};{x:1013,y:424}'),(114,1,34,32,3,3,'{x:968.2652772623532,y:424.7702775776905}'),(115,1,58,57,3,3,'{x:233.99999999999994,y:616};{x:264.9999999999999,y:616.0000000000001};{x:415,y:616.0000000000002}'),(116,1,59,57,3,3,'{x:320.99999999999994,y:616.0000000000001};{x:414.99999999999994,y:616.0000000000001}'),(117,1,60,57,3,3,'{x:416.2585382026585,y:548.8905200061671}'),(118,1,61,57,3,3,'{x:486.00000000000006,y:617.0000000000006};{x:414.9999999999999,y:617}'),(119,1,71,62,3,3,'{x:728.9999999999997,y:620.0000000000002};{x:848.9999999999998,y:621}'),(120,1,89,62,3,3,'{x:848.7061746076743,y:607.2489015044602}'),(121,1,63,62,3,3,'{x:934,y:622};{x:848.0000000000006,y:621.0000000000002}'),(122,1,64,62,3,3,'{x:1005.0000000000001,y:623};{x:1005.9485620377977,y:623.0121610517666};{x:849.0000000000002,y:621.0000000000003}'),(123,1,65,62,3,3,'{x:1078,y:624};{x:849.0000000000005,y:620.9999999999997}'),(124,1,70,67,3,3,'{x:1228,y:643.0000000000005};{x:1297.9999999999993,y:643.9999999999995}'),(125,1,69,67,3,3,'{x:1369.0712099571522,y:642.984697000612};{x:1370.056723117731,y:642.9706182411755};{x:1298.000000000001,y:643.9999999999995}'),(126,1,90,67,3,3,'{x:1499,y:643};{x:1298.0000000000002,y:644.0000000000002}'),(127,1,36,35,3,3,'{x:138.99999999999997,y:232};{x:236,y:231.99999999999997};{x:236.00000000000003,y:353}'),(128,1,37,35,3,3,'{x:306.759866540906,y:352.3421190031607}'),(129,1,39,38,3,3,'{x:305.9999999999998,y:178.9999999999999};{x:427.00000000000006,y:179}'),(130,1,92,38,3,3,'{x:426.92869745792456,y:180.49829836590638}'),(131,1,42,41,3,3,'{x:604,y:122.00000000000021}'),(132,1,43,41,3,3,'{x:602.9999999999999,y:122.0000000000002}'),(133,1,45,44,3,3,'{x:795.6061590568141,y:175.2083477327829};{x:848.469182439591,y:175.9429986885101}'),(134,1,46,44,3,3,'{x:914,y:175};{x:847.9999999999998,y:175.00000000000108}'),(135,1,47,44,3,3,'{x:1064,y:173.99999999999983};{x:849.0794455437408,y:176.13048301003045}'),(136,1,48,44,3,3,'{x:1242.0000000000002,y:171.99999999999994};{x:849.0000000000002,y:176.99999999999994}'),(137,1,49,44,3,3,'{x:1417,y:170.00000000000006};{x:846.8473473305277,y:177.10812131452283}'),(138,1,51,50,3,3,'{x:1318.6167783100661,y:262.1837002593493}'),(139,1,52,50,3,3,'{x:1467,y:340.9999999999999};{x:1466.0000000000005,y:264}'),(140,1,53,50,3,3,'{x:1469.0000000000002,y:430.99999999999994};{x:1464.9999999999993,y:263.99999999999983}'),(141,1,54,50,3,3,'{x:1470.9999999999998,y:521.0000000000001};{x:1466,y:263.9999999999998}'),(142,1,55,50,3,3,'{x:1473,y:598.9999999999998};{x:1465.0000000000002,y:264}'),(143,1,91,50,3,3,'{x:1464,y:186};{x:1465.0000000000002,y:264}'),(232,1,32,84,2,4,'{x:-988.2359632913441,y:-951.8103241540371};{x:-319.4815098371267,y:-953.0186736286499}'),(233,1,32,20,2,4,'{x:-854.6013207506861,y:-767.1148771605798}'),(234,1,32,27,2,4,'{x:-988.3387121979307,y:-671.6765206578543};{x:-974.8746142326793,y:-671.6633472599729};{x:-881.6030760219256,y:-671.6327409718069};{x:-880.3387121979304,y:-533.0098539911878};{x:-323.00537886459705,y:-530.3431873245208}'),(235,1,32,67,1,4,'{x:-1112.6030760219257,y:-766.6327409718037};{x:-1109.4158110522417,y:-280.0665701535794}'),(236,1,57,20,2,4,'{x:-923.4018092467566,y:-621.137974980062};{x:-922.6030760219257,y:-697.6327409718073};{x:-779.605755831528,y:-698.2517769899473};{x:-691.6030760219255,y:-697.6327409718069}'),(237,1,62,32,2,4,'{x:-1064.0866850676534,y:-384.47223943593764};{x:-1063.6030760219257,y:-766.6327409718072}'),(238,1,93,14,1,4,'{x:-808.3387121979307,y:-891.6765206622291};{x:-808.6389747768841,y:-281.22937748887347}'),(239,1,5,93,2,4,'{x:-706.6030760219257,y:-666.6327409718074};{x:-545.6030760219257,y:-665.6327409718065};{x:-547.4698322288425,y:-875.642814249965};{x:-547.6030760219257,y:-890.6327409718065}'),(240,1,84,32,2,4,'{x:-319.94685346915963,y:-837.0064609626666};{x:-987.5115317947335,y:-834.3519942169112}'),(241,1,80,72,2,4,'{x:-181.6030760219259,y:-623.6327409718075};{x:-181.6030760219258,y:-776.6327409718083}'),(242,1,27,5,2,4,'{x:-369.47753487234206,y:-482.1635275661221};{x:-706.6030760219259,y:-483.6327409718072}'),(243,1,27,32,2,4,'{x:-403.0053788645975,y:-482.3431873245204};{x:-403.00537886459716,y:-214.34318732452073};{x:-1137.672045531264,y:-214.34318732452084};{x:-1137.6720455312643,y:-767.6765206578542}'),(244,1,73,27,2,4,'{x:-258.60307602192586,y:-284.63274097180545};{x:-258.60899150214834,y:-483.8567189443867}'),(245,1,84,5,2,4,'{x:-485.60307602192574,y:-890.632740971807};{x:-485.9305355073303,y:-696.4536368161712};{x:-485.09227442745885,y:-608.4362234296373}'),(246,1,23,23,1,1,NULL),(247,1,23,6,1,1,'{x:838.0000000000002,y:211.00000000000006};{x:836.9999999999999,y:169.00000000000003}'); SET FOREIGN_KEY_CHECKS=1; */ \ No newline at end of file diff --git a/SQLSchema/dump.sql b/SQLSchema/dump.sql index 6401047..b45a043 100644 --- a/SQLSchema/dump.sql +++ b/SQLSchema/dump.sql @@ -625,7 +625,7 @@ CREATE TABLE `innodb_index_stats` ( LOCK TABLES `innodb_index_stats` WRITE; /*!40000 ALTER TABLE `innodb_index_stats` DISABLE KEYS */; -INSERT INTO `innodb_index_stats` VALUES ('classification','attribute','PRIMARY','2017-08-01 14:26:25','n_diff_pfx01',70,1,'id_attribute'),('classification','attribute','PRIMARY','2017-08-01 14:26:25','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','attribute','PRIMARY','2017-08-01 14:26:25','size',1,NULL,'Number of pages in the index'),('classification','attribute','id_attribute_UNIQUE','2017-08-01 14:26:25','n_diff_pfx01',70,1,'id_attribute'),('classification','attribute','id_attribute_UNIQUE','2017-08-01 14:26:25','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','attribute','id_attribute_UNIQUE','2017-08-01 14:26:25','size',1,NULL,'Number of pages in the index'),('classification','dimension','PRIMARY','2017-08-01 14:26:15','n_diff_pfx01',3,1,'id_dimension'),('classification','dimension','PRIMARY','2017-08-01 14:26:15','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','dimension','PRIMARY','2017-08-01 14:26:15','size',1,NULL,'Number of pages in the index'),('classification','dimension','id_dimension_UNIQUE','2017-08-01 14:26:15','n_diff_pfx01',3,1,'id_dimension'),('classification','dimension','id_dimension_UNIQUE','2017-08-01 14:26:15','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','dimension','id_dimension_UNIQUE','2017-08-01 14:26:15','size',1,NULL,'Number of pages in the index'),('classification','mapping','PRIMARY','2017-08-01 14:26:45','n_diff_pfx01',677,2,'id_mapping'),('classification','mapping','PRIMARY','2017-08-01 14:26:45','n_leaf_pages',2,NULL,'Number of leaf pages in the index'),('classification','mapping','PRIMARY','2017-08-01 14:26:45','size',3,NULL,'Number of pages in the index'),('classification','mapping','id_mapping_UNIQUE','2017-08-01 14:26:45','n_diff_pfx01',677,1,'id_mapping'),('classification','mapping','id_mapping_UNIQUE','2017-08-01 14:26:45','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','mapping','id_mapping_UNIQUE','2017-08-01 14:26:45','size',1,NULL,'Number of pages in the index'),('classification','paper','PRIMARY','2017-08-01 14:26:35','n_diff_pfx01',49,3,'id_paper'),('classification','paper','PRIMARY','2017-08-01 14:26:35','n_leaf_pages',3,NULL,'Number of leaf pages in the index'),('classification','paper','PRIMARY','2017-08-01 14:26:35','size',4,NULL,'Number of pages in the index'),('classification','paper','id_paper_UNIQUE','2017-08-01 14:26:35','n_diff_pfx01',49,1,'id_paper'),('classification','paper','id_paper_UNIQUE','2017-08-01 14:26:35','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','paper','id_paper_UNIQUE','2017-08-01 14:26:35','size',1,NULL,'Number of pages in the index'),('classification','relation','PRIMARY','2017-08-01 14:25:45','n_diff_pfx01',1,1,'id_relation'),('classification','relation','PRIMARY','2017-08-01 14:25:45','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','relation','PRIMARY','2017-08-01 14:25:45','size',1,NULL,'Number of pages in the index'),('classification','relation','id_relation_UNIQUE','2017-08-01 14:25:45','n_diff_pfx01',1,1,'id_relation'),('classification','relation','id_relation_UNIQUE','2017-08-01 14:25:45','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','relation','id_relation_UNIQUE','2017-08-01 14:25:45','size',1,NULL,'Number of pages in the index'),('classification','taxonomy','PRIMARY','2017-08-01 14:25:35','n_diff_pfx01',1,1,'id_taxonomy'),('classification','taxonomy','PRIMARY','2017-08-01 14:25:35','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','taxonomy','PRIMARY','2017-08-01 14:25:35','size',1,NULL,'Number of pages in the index'),('classification','taxonomy','id_taxonomy_UNIQUE','2017-08-01 14:25:35','n_diff_pfx01',1,1,'id_taxonomy'),('classification','taxonomy','id_taxonomy_UNIQUE','2017-08-01 14:25:35','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','taxonomy','id_taxonomy_UNIQUE','2017-08-01 14:25:35','size',1,NULL,'Number of pages in the index'),('classification','taxonomy_dimension','PRIMARY','2017-08-01 14:26:05','n_diff_pfx01',55,1,'id_taxonomy_dimension'),('classification','taxonomy_dimension','PRIMARY','2017-08-01 14:26:05','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','taxonomy_dimension','PRIMARY','2017-08-01 14:26:05','size',1,NULL,'Number of pages in the index'),('classification','taxonomy_dimension','id_taxonomy_dimension_UNIQUE','2017-08-01 14:26:05','n_diff_pfx01',55,1,'id_taxonomy_dimension'),('classification','taxonomy_dimension','id_taxonomy_dimension_UNIQUE','2017-08-01 14:26:05','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','taxonomy_dimension','id_taxonomy_dimension_UNIQUE','2017-08-01 14:26:05','size',1,NULL,'Number of pages in the index'),('classification','taxonomy_relation','PRIMARY','2017-08-01 14:25:55','n_diff_pfx01',55,1,'id_taxonomy_relation'),('classification','taxonomy_relation','PRIMARY','2017-08-01 14:25:55','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','taxonomy_relation','PRIMARY','2017-08-01 14:25:55','size',1,NULL,'Number of pages in the index'),('classification','taxonomy_relation','id_taxonomy_relation_UNIQUE','2017-08-01 14:25:55','n_diff_pfx01',55,1,'id_taxonomy_relation'),('classification','taxonomy_relation','id_taxonomy_relation_UNIQUE','2017-08-01 14:25:55','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','taxonomy_relation','id_taxonomy_relation_UNIQUE','2017-08-01 14:25:55','size',1,NULL,'Number of pages in the index'),('mysql','gtid_executed','PRIMARY','2016-05-16 08:57:50','n_diff_pfx01',0,1,'source_uuid'),('mysql','gtid_executed','PRIMARY','2016-05-16 08:57:50','n_diff_pfx02',0,1,'source_uuid,interval_start'),('mysql','gtid_executed','PRIMARY','2016-05-16 08:57:50','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('mysql','gtid_executed','PRIMARY','2016-05-16 08:57:50','size',1,NULL,'Number of pages in the index'),('paper_review','articles','PRIMARY','2016-05-27 20:16:58','n_diff_pfx01',2020,20,'ArticleId'),('paper_review','articles','PRIMARY','2016-05-27 20:16:58','n_leaf_pages',222,NULL,'Number of leaf pages in the index'),('paper_review','articles','PRIMARY','2016-05-27 20:16:58','size',225,NULL,'Number of pages in the index'),('paper_review','mitarbeiters','PRIMARY','2016-05-27 20:12:12','n_diff_pfx01',2,1,'Id'),('paper_review','mitarbeiters','PRIMARY','2016-05-27 20:12:12','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('paper_review','mitarbeiters','PRIMARY','2016-05-27 20:12:12','size',1,NULL,'Number of pages in the index'),('paper_review','research','PRIMARY','2016-05-27 20:28:44','n_diff_pfx01',2,1,'ResearchId'),('paper_review','research','PRIMARY','2016-05-27 20:28:44','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('paper_review','research','PRIMARY','2016-05-27 20:28:44','size',1,NULL,'Number of pages in the index'),('paper_review','tags','PRIMARY','2016-05-27 20:11:21','n_diff_pfx01',0,1,'TagId'),('paper_review','tags','PRIMARY','2016-05-27 20:11:21','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('paper_review','tags','PRIMARY','2016-05-27 20:11:21','size',1,NULL,'Number of pages in the index'),('paper_review','vote_tags','PRIMARY','2016-05-27 20:11:21','n_diff_pfx01',0,1,'Vote_Tags_Id'),('paper_review','vote_tags','PRIMARY','2016-05-27 20:11:21','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('paper_review','vote_tags','PRIMARY','2016-05-27 20:11:21','size',1,NULL,'Number of pages in the index'),('paper_review','votes','PRIMARY','2016-05-27 20:29:53','n_diff_pfx01',4,1,'VoteId'),('paper_review','votes','PRIMARY','2016-05-27 20:29:53','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('paper_review','votes','PRIMARY','2016-05-27 20:29:53','size',1,NULL,'Number of pages in the index'),('sys','sys_config','PRIMARY','2016-05-16 08:57:51','n_diff_pfx01',6,1,'variable'),('sys','sys_config','PRIMARY','2016-05-16 08:57:51','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('sys','sys_config','PRIMARY','2016-05-16 08:57:51','size',1,NULL,'Number of pages in the index'); +INSERT INTO `innodb_index_stats` VALUES ('classification','attribute','PRIMARY','2017-08-01 14:26:25','n_diff_pfx01',70,1,'id_attribute'),('classification','attribute','PRIMARY','2017-08-01 14:26:25','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','attribute','PRIMARY','2017-08-01 14:26:25','size',1,NULL,'Number of pages in the index'),('classification','attribute','id_attribute_UNIQUE','2017-08-01 14:26:25','n_diff_pfx01',70,1,'id_attribute'),('classification','attribute','id_attribute_UNIQUE','2017-08-01 14:26:25','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','attribute','id_attribute_UNIQUE','2017-08-01 14:26:25','size',1,NULL,'Number of pages in the index'),('classification','dimension','PRIMARY','2017-08-01 14:26:15','n_diff_pfx01',3,1,'id_dimension'),('classification','dimension','PRIMARY','2017-08-01 14:26:15','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','dimension','PRIMARY','2017-08-01 14:26:15','size',1,NULL,'Number of pages in the index'),('classification','dimension','id_dimension_UNIQUE','2017-08-01 14:26:15','n_diff_pfx01',3,1,'id_dimension'),('classification','dimension','id_dimension_UNIQUE','2017-08-01 14:26:15','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','dimension','id_dimension_UNIQUE','2017-08-01 14:26:15','size',1,NULL,'Number of pages in the index'),('classification','mapping','PRIMARY','2017-08-01 14:26:45','n_diff_pfx01',677,2,'id_mapping'),('classification','mapping','PRIMARY','2017-08-01 14:26:45','n_leaf_pages',2,NULL,'Number of leaf pages in the index'),('classification','mapping','PRIMARY','2017-08-01 14:26:45','size',3,NULL,'Number of pages in the index'),('classification','mapping','id_mapping_UNIQUE','2017-08-01 14:26:45','n_diff_pfx01',677,1,'id_mapping'),('classification','mapping','id_mapping_UNIQUE','2017-08-01 14:26:45','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','mapping','id_mapping_UNIQUE','2017-08-01 14:26:45','size',1,NULL,'Number of pages in the index'),('classification','paper','PRIMARY','2017-08-01 14:26:35','n_diff_pfx01',49,3,'id_paper'),('classification','paper','PRIMARY','2017-08-01 14:26:35','n_leaf_pages',3,NULL,'Number of leaf pages in the index'),('classification','paper','PRIMARY','2017-08-01 14:26:35','size',4,NULL,'Number of pages in the index'),('classification','paper','id_paper_UNIQUE','2017-08-01 14:26:35','n_diff_pfx01',49,1,'id_paper'),('classification','paper','id_paper_UNIQUE','2017-08-01 14:26:35','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','paper','id_paper_UNIQUE','2017-08-01 14:26:35','size',1,NULL,'Number of pages in the index'),('classification','relation','PRIMARY','2017-08-01 14:25:45','n_diff_pfx01',1,1,'id_relation'),('classification','relation','PRIMARY','2017-08-01 14:25:45','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','relation','PRIMARY','2017-08-01 14:25:45','size',1,NULL,'Number of pages in the index'),('classification','relation','id_relation_UNIQUE','2017-08-01 14:25:45','n_diff_pfx01',1,1,'id_relation'),('classification','relation','id_relation_UNIQUE','2017-08-01 14:25:45','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','relation','id_relation_UNIQUE','2017-08-01 14:25:45','size',1,NULL,'Number of pages in the index'),('classification','taxonomy','PRIMARY','2017-08-01 14:25:35','n_diff_pfx01',1,1,'id_taxonomy'),('classification','taxonomy','PRIMARY','2017-08-01 14:25:35','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','taxonomy','PRIMARY','2017-08-01 14:25:35','size',1,NULL,'Number of pages in the index'),('classification','taxonomy','id_taxonomy_UNIQUE','2017-08-01 14:25:35','n_diff_pfx01',1,1,'id_taxonomy'),('classification','taxonomy','id_taxonomy_UNIQUE','2017-08-01 14:25:35','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','taxonomy','id_taxonomy_UNIQUE','2017-08-01 14:25:35','size',1,NULL,'Number of pages in the index'),('classification','taxonomy_dimension','PRIMARY','2017-08-01 14:26:05','n_diff_pfx01',55,1,'id_taxonomy_dimension'),('classification','taxonomy_dimension','PRIMARY','2017-08-01 14:26:05','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','taxonomy_dimension','PRIMARY','2017-08-01 14:26:05','size',1,NULL,'Number of pages in the index'),('classification','taxonomy_dimension','id_taxonomy_dimension_UNIQUE','2017-08-01 14:26:05','n_diff_pfx01',55,1,'id_taxonomy_dimension'),('classification','taxonomy_dimension','id_taxonomy_dimension_UNIQUE','2017-08-01 14:26:05','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','taxonomy_dimension','id_taxonomy_dimension_UNIQUE','2017-08-01 14:26:05','size',1,NULL,'Number of pages in the index'),('classification','taxonomy_relation','PRIMARY','2017-08-01 14:25:55','n_diff_pfx01',55,1,'id_taxonomy_relation'),('classification','taxonomy_relation','PRIMARY','2017-08-01 14:25:55','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','taxonomy_relation','PRIMARY','2017-08-01 14:25:55','size',1,NULL,'Number of pages in the index'),('classification','taxonomy_relation','id_taxonomy_relation_UNIQUE','2017-08-01 14:25:55','n_diff_pfx01',55,1,'id_taxonomy_relation'),('classification','taxonomy_relation','id_taxonomy_relation_UNIQUE','2017-08-01 14:25:55','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','taxonomy_relation','id_taxonomy_relation_UNIQUE','2017-08-01 14:25:55','size',1,NULL,'Number of pages in the index'),('mysql','gtid_executed','PRIMARY','2016-05-16 08:57:50','n_diff_pfx01',0,1,'source_uuid'),('mysql','gtid_executed','PRIMARY','2016-05-16 08:57:50','n_diff_pfx02',0,1,'source_uuid,interval_start'),('mysql','gtid_executed','PRIMARY','2016-05-16 08:57:50','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('mysql','gtid_executed','PRIMARY','2016-05-16 08:57:50','size',1,NULL,'Number of pages in the index'),('classification','articles','PRIMARY','2016-05-27 20:16:58','n_diff_pfx01',2020,20,'ArticleId'),('classification','articles','PRIMARY','2016-05-27 20:16:58','n_leaf_pages',222,NULL,'Number of leaf pages in the index'),('classification','articles','PRIMARY','2016-05-27 20:16:58','size',225,NULL,'Number of pages in the index'),('classification','mitarbeiters','PRIMARY','2016-05-27 20:12:12','n_diff_pfx01',2,1,'Id'),('classification','mitarbeiters','PRIMARY','2016-05-27 20:12:12','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','mitarbeiters','PRIMARY','2016-05-27 20:12:12','size',1,NULL,'Number of pages in the index'),('classification','research','PRIMARY','2016-05-27 20:28:44','n_diff_pfx01',2,1,'ResearchId'),('classification','research','PRIMARY','2016-05-27 20:28:44','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','research','PRIMARY','2016-05-27 20:28:44','size',1,NULL,'Number of pages in the index'),('classification','tags','PRIMARY','2016-05-27 20:11:21','n_diff_pfx01',0,1,'TagId'),('classification','tags','PRIMARY','2016-05-27 20:11:21','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','tags','PRIMARY','2016-05-27 20:11:21','size',1,NULL,'Number of pages in the index'),('classification','vote_tags','PRIMARY','2016-05-27 20:11:21','n_diff_pfx01',0,1,'Vote_Tags_Id'),('classification','vote_tags','PRIMARY','2016-05-27 20:11:21','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','vote_tags','PRIMARY','2016-05-27 20:11:21','size',1,NULL,'Number of pages in the index'),('classification','votes','PRIMARY','2016-05-27 20:29:53','n_diff_pfx01',4,1,'VoteId'),('classification','votes','PRIMARY','2016-05-27 20:29:53','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('classification','votes','PRIMARY','2016-05-27 20:29:53','size',1,NULL,'Number of pages in the index'),('sys','sys_config','PRIMARY','2016-05-16 08:57:51','n_diff_pfx01',6,1,'variable'),('sys','sys_config','PRIMARY','2016-05-16 08:57:51','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('sys','sys_config','PRIMARY','2016-05-16 08:57:51','size',1,NULL,'Number of pages in the index'); /*!40000 ALTER TABLE `innodb_index_stats` ENABLE KEYS */; UNLOCK TABLES; @@ -653,7 +653,7 @@ CREATE TABLE `innodb_table_stats` ( LOCK TABLES `innodb_table_stats` WRITE; /*!40000 ALTER TABLE `innodb_table_stats` DISABLE KEYS */; -INSERT INTO `innodb_table_stats` VALUES ('classification','attribute','2017-08-01 14:26:25',70,1,1),('classification','dimension','2017-08-01 14:26:15',3,1,1),('classification','mapping','2017-08-01 14:26:45',677,3,1),('classification','paper','2017-08-01 14:26:35',49,4,1),('classification','relation','2017-08-01 14:25:45',1,1,1),('classification','taxonomy','2017-08-01 14:25:35',1,1,1),('classification','taxonomy_dimension','2017-08-01 14:26:05',55,1,1),('classification','taxonomy_relation','2017-08-01 14:25:55',55,1,1),('mysql','gtid_executed','2016-05-16 08:57:50',0,1,0),('paper_review','articles','2016-05-27 20:16:58',2020,225,0),('paper_review','mitarbeiters','2016-05-27 20:12:12',2,1,0),('paper_review','research','2016-05-27 20:28:44',2,1,0),('paper_review','tags','2016-05-27 20:11:21',0,1,0),('paper_review','vote_tags','2016-05-27 20:11:21',0,1,0),('paper_review','votes','2016-05-27 20:29:53',4,1,0),('sys','sys_config','2016-05-16 08:57:51',6,1,0); +INSERT INTO `innodb_table_stats` VALUES ('classification','attribute','2017-08-01 14:26:25',70,1,1),('classification','dimension','2017-08-01 14:26:15',3,1,1),('classification','mapping','2017-08-01 14:26:45',677,3,1),('classification','paper','2017-08-01 14:26:35',49,4,1),('classification','relation','2017-08-01 14:25:45',1,1,1),('classification','taxonomy','2017-08-01 14:25:35',1,1,1),('classification','taxonomy_dimension','2017-08-01 14:26:05',55,1,1),('classification','taxonomy_relation','2017-08-01 14:25:55',55,1,1),('mysql','gtid_executed','2016-05-16 08:57:50',0,1,0),('classification','articles','2016-05-27 20:16:58',2020,225,0),('classification','mitarbeiters','2016-05-27 20:12:12',2,1,0),('classification','research','2016-05-27 20:28:44',2,1,0),('classification','tags','2016-05-27 20:11:21',0,1,0),('classification','vote_tags','2016-05-27 20:11:21',0,1,0),('classification','votes','2016-05-27 20:29:53',4,1,0),('sys','sys_config','2016-05-16 08:57:51',6,1,0); /*!40000 ALTER TABLE `innodb_table_stats` ENABLE KEYS */; UNLOCK TABLES; @@ -1245,12 +1245,12 @@ CREATE TABLE IF NOT EXISTS `slow_log` ( /*!40101 SET character_set_client = @saved_cs_client */; -- --- Current Database: `paper_review` +-- Current Database: `classification` -- -CREATE DATABASE /*!32312 IF NOT EXISTS*/ `paper_review` /*!40100 DEFAULT CHARACTER SET utf8 */; +CREATE DATABASE /*!32312 IF NOT EXISTS*/ `classification` /*!40100 DEFAULT CHARACTER SET utf8 */; -USE `paper_review`; +USE `classification`; -- -- Table structure for table `articles` @@ -1460,11 +1460,11 @@ INSERT INTO `votes` VALUES (1,0,1,873,''),(2,0,1,1455,''),(3,0,1,197,''),(4,0,1, UNLOCK TABLES; -- --- Dumping events for database 'paper_review' +-- Dumping events for database 'classification' -- -- --- Dumping routines for database 'paper_review' +-- Dumping routines for database 'classification' -- -- @@ -1516,10 +1516,10 @@ USE `classification`; USE `mysql`; -- --- Current Database: `paper_review` +-- Current Database: `classification` -- -USE `paper_review`; +USE `classification`; -- -- Final view structure for view `articles_view` @@ -1534,7 +1534,7 @@ USE `paper_review`; /*!50001 SET collation_connection = utf8_general_ci */; /*!50001 CREATE ALGORITHM=UNDEFINED */ /*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ -/*!50001 VIEW `articles_view` AS select `distict_articles`.`ArticleId` AS `ArticleId`,`distict_articles`.`Title` AS `Title`,`distict_articles`.`year` AS `year`,`distict_articles`.`cited_by` AS `cited_by`,`distict_articles`.`Keywords` AS `Keywords`,`distict_articles`.`Abstract` AS `Abstract`,`distict_articles`.`Journal` AS `Journal`,`distict_articles`.`ResearchId` AS `ResearchId`,`distict_articles`.`Authors` AS `Authors`,`distict_articles`.`File` AS `File`,`distict_articles`.`Source` AS `Source` from (select max(`a`.`ArticleId`) AS `ArticleId`,`a`.`Title` AS `Title`,max(cast(`a`.`year` as unsigned)) AS `year`,max(cast(`a`.`cited_by` as unsigned)) AS `cited_by`,max(`a`.`Keywords`) AS `Keywords`,max(`a`.`Abstract`) AS `Abstract`,max(`a`.`Journal`) AS `Journal`,`a`.`ResearchId` AS `ResearchId`,max(`a`.`Authors`) AS `Authors`,min(`a`.`File`) AS `File`,max(`a`.`Source`) AS `Source`,max(`a`.`Enabled`) AS `Enabled` from `paper_review`.`articles` `a` group by `a`.`Title`,`a`.`ResearchId`) `distict_articles` where (`distict_articles`.`Enabled` = 1) */; +/*!50001 VIEW `articles_view` AS select `distict_articles`.`ArticleId` AS `ArticleId`,`distict_articles`.`Title` AS `Title`,`distict_articles`.`year` AS `year`,`distict_articles`.`cited_by` AS `cited_by`,`distict_articles`.`Keywords` AS `Keywords`,`distict_articles`.`Abstract` AS `Abstract`,`distict_articles`.`Journal` AS `Journal`,`distict_articles`.`ResearchId` AS `ResearchId`,`distict_articles`.`Authors` AS `Authors`,`distict_articles`.`File` AS `File`,`distict_articles`.`Source` AS `Source` from (select max(`a`.`ArticleId`) AS `ArticleId`,`a`.`Title` AS `Title`,max(cast(`a`.`year` as unsigned)) AS `year`,max(cast(`a`.`cited_by` as unsigned)) AS `cited_by`,max(`a`.`Keywords`) AS `Keywords`,max(`a`.`Abstract`) AS `Abstract`,max(`a`.`Journal`) AS `Journal`,`a`.`ResearchId` AS `ResearchId`,max(`a`.`Authors`) AS `Authors`,min(`a`.`File`) AS `File`,max(`a`.`Source`) AS `Source`,max(`a`.`Enabled`) AS `Enabled` from `classification`.`articles` `a` group by `a`.`Title`,`a`.`ResearchId`) `distict_articles` where (`distict_articles`.`Enabled` = 1) */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; @@ -1552,7 +1552,7 @@ USE `paper_review`; /*!50001 SET collation_connection = utf8_general_ci */; /*!50001 CREATE ALGORITHM=UNDEFINED */ /*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ -/*!50001 VIEW `unique_articles_view` AS select `distict_articles`.`ArticleId` AS `ArticleId`,`distict_articles`.`Title` AS `Title`,`distict_articles`.`year` AS `year`,`distict_articles`.`cited_by` AS `cited_by`,`distict_articles`.`Keywords` AS `Keywords`,`distict_articles`.`Abstract` AS `Abstract`,`distict_articles`.`Journal` AS `Journal`,`distict_articles`.`ResearchId` AS `ResearchId`,`distict_articles`.`Authors` AS `Authors`,`distict_articles`.`File` AS `File`,`distict_articles`.`Source` AS `Source` from (select max(`a`.`ArticleId`) AS `ArticleId`,`a`.`Title` AS `Title`,max(cast(`a`.`year` as unsigned)) AS `year`,max(cast(`a`.`cited_by` as unsigned)) AS `cited_by`,max(`a`.`Keywords`) AS `Keywords`,max(`a`.`Abstract`) AS `Abstract`,max(`a`.`Journal`) AS `Journal`,`a`.`ResearchId` AS `ResearchId`,max(`a`.`Authors`) AS `Authors`,min(`a`.`File`) AS `File`,max(`a`.`Source`) AS `Source`,max(`a`.`Enabled`) AS `Enabled` from `paper_review`.`articles` `a` group by `a`.`Title`,`a`.`ResearchId`) `distict_articles` */; +/*!50001 VIEW `unique_articles_view` AS select `distict_articles`.`ArticleId` AS `ArticleId`,`distict_articles`.`Title` AS `Title`,`distict_articles`.`year` AS `year`,`distict_articles`.`cited_by` AS `cited_by`,`distict_articles`.`Keywords` AS `Keywords`,`distict_articles`.`Abstract` AS `Abstract`,`distict_articles`.`Journal` AS `Journal`,`distict_articles`.`ResearchId` AS `ResearchId`,`distict_articles`.`Authors` AS `Authors`,`distict_articles`.`File` AS `File`,`distict_articles`.`Source` AS `Source` from (select max(`a`.`ArticleId`) AS `ArticleId`,`a`.`Title` AS `Title`,max(cast(`a`.`year` as unsigned)) AS `year`,max(cast(`a`.`cited_by` as unsigned)) AS `cited_by`,max(`a`.`Keywords`) AS `Keywords`,max(`a`.`Abstract`) AS `Abstract`,max(`a`.`Journal`) AS `Journal`,`a`.`ResearchId` AS `ResearchId`,max(`a`.`Authors`) AS `Authors`,min(`a`.`File`) AS `File`,max(`a`.`Source`) AS `Source`,max(`a`.`Enabled`) AS `Enabled` from `classification`.`articles` `a` group by `a`.`Title`,`a`.`ResearchId`) `distict_articles` */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; diff --git a/SQLSchema/dumps/01_02_dump.sql b/SQLSchema/dumps/01_02_dump.sql new file mode 100644 index 0000000..3a674d2 --- /dev/null +++ b/SQLSchema/dumps/01_02_dump.sql @@ -0,0 +1,494 @@ +-- MySQL dump 10.13 Distrib 5.7.17, for Win64 (x86_64) +-- +-- Host: 127.0.0.1 Database: classification +-- ------------------------------------------------------ +-- Server version 5.7.20-log + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `allchildrenperattribute` +-- + +DROP TABLE IF EXISTS `allchildrenperattribute`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `allchildrenperattribute` ( + `id_attribute` int(10) unsigned NOT NULL, + `id_taxonomy` int(11) unsigned NOT NULL, + `text` varchar(50) NOT NULL, + `children` longtext, + PRIMARY KEY (`id_attribute`), + UNIQUE KEY `allchildrenperattribute_id_attribute_UNIQUE` (`id_attribute`), + KEY `allchildrenperattribute_id_taxonomy_foreign` (`id_taxonomy`), + CONSTRAINT `allchildrenperattribute_id_taxonomy_foreign` FOREIGN KEY (`id_taxonomy`) REFERENCES `taxonomy` (`id_taxonomy`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `allchildrenperattribute` +-- + +LOCK TABLES `allchildrenperattribute` WRITE; +/*!40000 ALTER TABLE `allchildrenperattribute` DISABLE KEYS */; +INSERT INTO `allchildrenperattribute` VALUES (1,1,'Integrity Protection Assets','1'),(2,1,'Behavior','2'),(3,1,'Data','3'),(4,1,'Data and behavior','4'),(5,1,'Representation','5,6,7,8,9,10,11,13,12'),(6,1,'Static','6'),(7,1,'In memory','7,9,10'),(8,1,'In execution','8,11,13,12'),(9,1,'Code invariants','9'),(10,1,'Data invariants','10'),(11,1,'Trace','11,12'),(12,1,'Timed trace','12'),(13,1,'HW counters','13'),(14,1,'Granularity','14,15,17,18,19,95'),(15,1,'Instructions','15'),(16,1,'BB','16'),(17,1,'Function','17'),(18,1,'Slice','18'),(19,1,'Application','19'),(20,1,'Lifecycle activity','20,21,22,23,24,25,94'),(21,1,'Pre-compile','21'),(22,1,'Compile','22'),(23,1,'Post-compile','23'),(24,1,'Load','24'),(25,1,'Run','25'),(26,1,'Not root','26'),(27,1,'Attack','27,28,29,30,31,78'),(28,1,'Binary ','28'),(29,1,'Process memory','29'),(30,1,'Runtime data','30'),(31,1,'Control flow','31'),(32,1,'Measure','32,33,34,35,38,41,44,50,57,62,67,36,37,39,42,43,45,46,47,48,49,51,52,53,54,55,58,59,60,61,63,64,65,68,69,70,71,89,90,91,92'),(33,1,'Local','33'),(34,1,'Remote','34'),(35,1,'Monitor','35,36,37'),(36,1,'State inspection','36'),(37,1,'Introspection','37'),(38,1,'Response','38,39,92'),(39,1,'Proactive','39'),(40,1,'Postmortem','40'),(41,1,'Transformation','41,42,43'),(42,1,'Manual','42'),(43,1,'Automatic','43'),(44,1,'Check','44,45,46,47,48,49'),(45,1,'Checksum','45'),(46,1,'Signature','46'),(47,1,'Equation eval','47'),(48,1,'Majority vote','48'),(49,1,'Access control','49'),(50,1,'Hardening','50,51,52,53,54,55,91'),(51,1,'Cyclic checks','51'),(52,1,'Mutation','52'),(53,1,'Code concealment','53'),(54,1,'Cloning','54'),(55,1,'Layered interpretation','55'),(56,1,'Block chain','56'),(57,1,'Overhead','57,58,59,60,61'),(58,1,'Fair','58'),(59,1,'Medium','59'),(60,1,'High','60'),(61,1,'N/A','61'),(62,1,'Trust anchor','62,63,64,65,71,89'),(63,1,'TPM','63'),(64,1,'SGX','64'),(65,1,'Other','65'),(66,1,'None','66'),(67,1,'Protection level','67,68,69,70,90'),(68,1,'Internal','68'),(69,1,'External','69'),(70,1,'Hypervisor','70'),(71,1,'Software','71'),(72,1,'Reverse engineering','72,27,73,80,84,26,28,29,30,31,78,79,81,82,83,85,86,87,88'),(73,1,'Attacker','73,26'),(78,1,'Call interposition','78'),(79,1,'Disassembler','79'),(80,1,'Tools','80,79,81,82,83'),(81,1,'Debugger','81'),(82,1,'Tracer','82'),(83,1,'Emulator','83'),(84,1,'Discovery','84,85,86,87,88'),(85,1,'Pattern matching','85'),(86,1,'Taint analysis','86'),(87,1,'Graph-based analysis','87'),(88,1,'Symbolic execution','88'),(89,1,'Dongle','89'),(90,1,'Self-check','90'),(91,1,'Hash chain','91'),(92,1,'Reactive','92'),(93,1,'Asset','93,2,3,4'),(94,1,'Link','94'),(95,1,'Basic block','95'),(112,4,'Concept A','112'),(113,4,'Concept B','113'),(115,4,'Concept C','115,112,113'); +/*!40000 ALTER TABLE `allchildrenperattribute` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `allparentsperattribute` +-- + +DROP TABLE IF EXISTS `allparentsperattribute`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `allparentsperattribute` ( + `id_attribute` int(11) unsigned NOT NULL, + `id_taxonomy` int(11) unsigned NOT NULL, + `text` varchar(50) NOT NULL, + `parents` longtext, + PRIMARY KEY (`id_attribute`), + UNIQUE KEY `allparentsperattribute_id_attribute_UNIQUE` (`id_attribute`), + KEY `allparentsperattribute_id_taxonomy_foreign` (`id_taxonomy`), + CONSTRAINT `allparentsperattribute_id_taxonomy_foreign` FOREIGN KEY (`id_taxonomy`) REFERENCES `taxonomy` (`id_taxonomy`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `allparentsperattribute` +-- + +LOCK TABLES `allparentsperattribute` WRITE; +/*!40000 ALTER TABLE `allparentsperattribute` DISABLE KEYS */; +INSERT INTO `allparentsperattribute` VALUES (1,1,'Integrity Protection Assets',''),(2,1,'Behavior','Asset'),(3,1,'Data','Asset'),(4,1,'Data and behavior','Asset'),(5,1,'Representation',''),(6,1,'Static','Representation'),(7,1,'In memory','Representation'),(8,1,'In execution','Representation'),(9,1,'Code invariants','In memory,Representation'),(10,1,'Data invariants','In memory,Representation'),(11,1,'Trace','In execution,Representation'),(12,1,'Timed trace','Trace,In execution,Representation'),(13,1,'HW counters','In execution,Representation'),(14,1,'Granularity',''),(15,1,'Instructions','Granularity'),(16,1,'BB',''),(17,1,'Function','Granularity'),(18,1,'Slice','Granularity'),(19,1,'Application','Granularity'),(20,1,'Lifecycle activity',''),(21,1,'Pre-compile','Lifecycle activity'),(22,1,'Compile','Lifecycle activity'),(23,1,'Post-compile','Lifecycle activity'),(24,1,'Load','Lifecycle activity'),(25,1,'Run','Lifecycle activity'),(26,1,'Not root','Attacker,Reverse engineering'),(27,1,'Attack','Reverse engineering'),(28,1,'Binary ','Attack,Reverse engineering'),(29,1,'Process memory','Attack,Reverse engineering'),(30,1,'Runtime data','Attack,Reverse engineering'),(31,1,'Control flow','Attack,Reverse engineering'),(32,1,'Measure',''),(33,1,'Local','Measure'),(34,1,'Remote','Measure'),(35,1,'Monitor','Measure'),(36,1,'State inspection','Monitor,Measure'),(37,1,'Introspection','Monitor,Measure'),(38,1,'Response','Measure'),(39,1,'Proactive','Response,Measure'),(40,1,'Postmortem',''),(41,1,'Transformation','Measure'),(42,1,'Manual','Transformation,Measure'),(43,1,'Automatic','Transformation,Measure'),(44,1,'Check','Measure'),(45,1,'Checksum','Check,Measure'),(46,1,'Signature','Check,Measure'),(47,1,'Equation eval','Check,Measure'),(48,1,'Majority vote','Check,Measure'),(49,1,'Access control','Check,Measure'),(50,1,'Hardening','Measure'),(51,1,'Cyclic checks','Hardening,Measure'),(52,1,'Mutation','Hardening,Measure'),(53,1,'Code concealment','Hardening,Measure'),(54,1,'Cloning','Hardening,Measure'),(55,1,'Layered interpretation','Hardening,Measure'),(56,1,'Block chain',''),(57,1,'Overhead','Measure'),(58,1,'Fair','Overhead,Measure'),(59,1,'Medium','Overhead,Measure'),(60,1,'High','Overhead,Measure'),(61,1,'N/A','Overhead,Measure'),(62,1,'Trust anchor','Measure'),(63,1,'TPM','Trust anchor,Measure'),(64,1,'SGX','Trust anchor,Measure'),(65,1,'Other','Trust anchor,Measure'),(66,1,'None',''),(67,1,'Protection level','Measure'),(68,1,'Internal','Protection level,Measure'),(69,1,'External','Protection level,Measure'),(70,1,'Hypervisor','Protection level,Measure'),(71,1,'Software','Trust anchor,Measure'),(72,1,'Reverse engineering',''),(73,1,'Attacker','Reverse engineering'),(78,1,'Call interposition','Attack,Reverse engineering'),(79,1,'Disassembler','Tools,Reverse engineering'),(80,1,'Tools','Reverse engineering'),(81,1,'Debugger','Tools,Reverse engineering'),(82,1,'Tracer','Tools,Reverse engineering'),(83,1,'Emulator','Tools,Reverse engineering'),(84,1,'Discovery','Reverse engineering'),(85,1,'Pattern matching','Discovery,Reverse engineering'),(86,1,'Taint analysis','Discovery,Reverse engineering'),(87,1,'Graph-based analysis','Discovery,Reverse engineering'),(88,1,'Symbolic execution','Discovery,Reverse engineering'),(89,1,'Dongle','Trust anchor,Measure'),(90,1,'Self-check','Protection level,Measure'),(91,1,'Hash chain','Hardening,Measure'),(92,1,'Reactive','Response,Measure'),(93,1,'Asset',''),(94,1,'Link','Lifecycle activity'),(95,1,'Basic block','Granularity'),(112,4,'Concept A','Concept C'),(113,4,'Concept B','Concept C'),(115,4,'Concept C',''); +/*!40000 ALTER TABLE `allparentsperattribute` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `attribute` +-- + +DROP TABLE IF EXISTS `attribute`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `attribute` ( + `id_attribute` int(11) unsigned NOT NULL AUTO_INCREMENT, + `text` varchar(50) NOT NULL, + `x` varchar(50) DEFAULT '', + `y` varchar(50) DEFAULT '', + `xMajor` varchar(50) DEFAULT '', + `yMajor` varchar(50) DEFAULT '', + `x3D` varchar(50) DEFAULT '', + `y3D` varchar(50) DEFAULT '', + `z3D` varchar(50) DEFAULT '', + `xMajor3D` varchar(50) DEFAULT '', + `yMajor3D` varchar(50) DEFAULT '', + `zMajor3D` varchar(50) DEFAULT '', + `major` tinyint(1) DEFAULT '0', + `id_taxonomy` int(11) unsigned NOT NULL, + `synonyms` varchar(500) DEFAULT '', + PRIMARY KEY (`id_attribute`), + UNIQUE KEY `id_attribute_UNIQUE` (`id_attribute`), + UNIQUE KEY `attribute_text_UNIQUE` (`text`,`id_taxonomy`), + KEY `attribute_id_taxonomy_foreign` (`id_taxonomy`), + CONSTRAINT `attribute_id_taxonomy_foreign` FOREIGN KEY (`id_taxonomy`) REFERENCES `taxonomy` (`id_taxonomy`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=116 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `attribute` +-- + +LOCK TABLES `attribute` WRITE; +/*!40000 ALTER TABLE `attribute` DISABLE KEYS */; +INSERT INTO `attribute` VALUES (1,'Integrity Protection Assets','1539.6977208359122','828.406523846749',NULL,NULL,'2982.356969925021','-2285.019961769441','-864.2180305371212',NULL,NULL,NULL,0,1,''),(2,'Behavior','362.03679880998527','70.61697033346249',NULL,NULL,'-4105.754594713023','2970.805490853027','520.6240466093806',NULL,NULL,NULL,0,1,''),(3,'Data','360.50599492453625','156.00928187629017',NULL,NULL,'-5002.920658104225','2416.7437462541925','-667.9458699193781',NULL,NULL,NULL,0,1,''),(4,'Data and behavior','363.56267226780255','233.77468381901463',NULL,NULL,'-3116.814622838809','2150.293659766716','-739.4750876543186',NULL,NULL,NULL,0,1,''),(5,'Representation','328.44175759223543','432.6782494091842','-706.6576875701488','-609.3344062416174','-5631.8223863130315','-700.1480012803709','232.8933266727454','-2297.307274575899','1861.2451999882087','251.40799472895628',1,1,''),(6,'Static','1020.112697296182','169.14810291408673',NULL,NULL,'-753.8117777226684','2672.900536068831','55.5562648093229',NULL,NULL,NULL,0,1,''),(7,'In memory','1035.9341191918215','319.5410718472651',NULL,NULL,'-859.8475232068192','1419.0143417630459','1049.9932319804325',NULL,NULL,NULL,0,1,''),(8,'In execution','1036.422207754128','515.8949411042306',NULL,NULL,'-525.1480844836708','-997.8604194722125','-515.3976828985001',NULL,NULL,NULL,0,1,''),(9,'Code invariants','1473.5597140112222','232.10834584752325',NULL,NULL,'206.51897236227046','1964.5856119335288','1212.8380148609385',NULL,NULL,NULL,0,1,''),(10,'Data invariants','1475.0087028973157','391.5997213615837',NULL,NULL,'1584.2972884243895','1107.9452114293008','596.1960385203179',NULL,NULL,NULL,0,1,''),(11,'Trace','1476.9101394936774','659.8362915899118',NULL,NULL,'1414.656335785149','-1776.66513018276','-191.61968505004643',NULL,NULL,NULL,0,1,''),(12,'Timed trace','1652.9485817795407','661.3853305327655',NULL,NULL,'2706.2310058466305','-505.4745310046228','-577.2241671516888',NULL,NULL,NULL,0,1,''),(13,'HW counters','1477.121572065918','520.1881886758251',NULL,NULL,'1194.9742695396158','65.74160947273646','-137.41344005045494',NULL,NULL,NULL,0,1,''),(14,'Granularity','327.83669869646576','674.855512732843','-686.6596563047685','-281.3360728952638','-4849.209350403896','-1872.1017791288107','20.015773720053858','2750.4431883226216','-2948.6211902334258','-502.6910289016656',1,1,''),(15,'Instructions','593.8761270678542','600.541071847265',NULL,NULL,'-3677.00212371179','-2059.3275936855316','-1231.9318958901586',NULL,NULL,NULL,0,1,''),(16,'BB','1696.8048303141118','828.2885674277604',NULL,NULL,'2143.4276500237497','-2464.144864036762','-1036.6394584036368',NULL,NULL,NULL,0,1,''),(17,'Function','576.3228150877201','672.3462308565527',NULL,NULL,'-3825.8952008628225','-2536.6896428436626','-495.4057692218644',NULL,NULL,NULL,0,1,''),(18,'Slice','560.9285313738394','752.36643808501',NULL,NULL,'-3435.1692734008243','-2081.4646016536462','1249.2503410645315',NULL,NULL,NULL,0,1,''),(19,'Application','590.1813644885203','825.9356842563209',NULL,NULL,'-3659.547946100021','-2773.817578816789','732.0912311726131',NULL,NULL,NULL,0,1,''),(20,'Lifecycle activity','499.43222543214654','296.8923115428277','-690.6616875388991','-767.670541636393','-4688.243193111236','110.89828167666965','-422.7101612981819','3088.7134093484487','338.8041040030753','-411.428475846131',1,1,''),(21,'Pre-compile','727.983737113648','68.90956051470602',NULL,NULL,'-2098.4675273781886','1903.2747623767602','708.8565788744929',NULL,NULL,NULL,0,1,''),(22,'Compile','708.0208646188082','143.38072880030973',NULL,NULL,'-2060.668061605252','1333.5185979024836','700.4689784693802',NULL,NULL,NULL,0,1,''),(23,'Post-compile','733.842286514448','211.20478025735315',NULL,NULL,'-2417.367759420388','1072.6497859901137','-40.15143208390509',NULL,NULL,NULL,0,1,''),(24,'Load','693.7813361339005','366.75480528573263',NULL,NULL,'-2148.2653425899725','-308.27053657036','59.54550985321248',NULL,NULL,NULL,0,1,''),(25,'Run','695.4851303057279','438.1278956856295',NULL,NULL,'-2078.8620483112054','-1015.7537643835454','82.76219647055268',NULL,NULL,NULL,0,1,''),(26,'Not root','474.7266028589015','454.7732747885879','','',NULL,NULL,NULL,NULL,NULL,NULL,0,1,''),(27,'Attack','959.3360043758585','256.6619190499381','-323.9978125170894','-482.6650312627768','-560.3840244102373','102.1552480434342','-956.7462882957757','-1043.6553421224908','633.6478862886546','4.547473508864641e-13',1,1,''),(28,'Binary ','813.3219621018261','142.03790265880497',NULL,NULL,'-669.670563198074','778.7013671716411','-1338.7442185818304',NULL,NULL,NULL,0,1,''),(29,'Process memory','959.7840594430213','141.03790265880497',NULL,NULL,'-94.03937291157544','-1336.7099182805853','1261.323300421252',NULL,NULL,NULL,0,1,''),(30,'Runtime data','1103.0008419920632','139.4152452627283',NULL,NULL,'-1286.5345978331447','-12.458919208386305','-1284.887427267443',NULL,NULL,NULL,0,1,''),(31,'Control flow','1307.8590227685681','140.11370797641482',NULL,NULL,'613.0758806397226','625.6623474191132','-1220.5401846641005',NULL,NULL,NULL,0,1,''),(32,'Measure','822.3942993388207','398.0985353391625','-987.9939687971188','-766.6627500305989','-1540.1203017455578','164.35563430566253','519.8406371279184','-2885.666024652709','-362.649687924208','366.3875195434952',1,1,''),(33,'Local','1058.8113585010585','322.5760338996515',NULL,NULL,'414.01249022013945','650.3924349711187','217.48400016653432',NULL,NULL,NULL,0,1,''),(34,'Remote','1059.2995836339228','397.4551551031491',NULL,NULL,'491.74632812015005','97.3780742973924','-123.8359011677826',NULL,NULL,NULL,0,1,''),(35,'Monitor','397.4089459471961','325.089115445454',NULL,NULL,'-3569.5793861554353','1840.7840486857215','360.30867064656013',NULL,NULL,NULL,0,1,''),(36,'State inspection','114.41025262586263','125.35572945139711',NULL,NULL,'-5341.030340064095','2669.721222390146','-724.4818029428425',NULL,NULL,NULL,0,1,''),(37,'Introspection','111.15191089189352','325.71535517567395',NULL,NULL,'-4970.62799052557','1395.0657686414263','-235.261091445313',NULL,NULL,NULL,0,1,''),(38,'Response','401.9031877055812','205.79764502657298',NULL,NULL,'-2593.6039171763614','2544.8218260668036','-759.650458124624',NULL,NULL,NULL,0,1,''),(39,'Proactive','279.9316064436389','104.33039620209587',NULL,NULL,'-3372.016016595666','3430.1408603523755','-464.66544817688964',NULL,NULL,NULL,0,1,''),(40,'Postmortem','1771.8697013097888','610.6056002594439',NULL,NULL,'-5498.445586366219','-3168.741296759451','-466.7710346363615',NULL,NULL,NULL,0,1,''),(41,'Transformation','579.4856117755306','200.08131819475398',NULL,NULL,'-674.7676646465982','2349.977089886205','-139.82051733421395',NULL,NULL,NULL,0,1,''),(42,'Manual','528.6373636104923','94.95101950454278',NULL,NULL,'-921.5490625752307','3398.8951229358577','-479.87542564422074',NULL,NULL,NULL,0,1,''),(43,'Automatic','646.6729465958057','94.38822513286442',NULL,NULL,'127.94846090778958','3219.9382164220856','20.700303685751805',NULL,NULL,NULL,0,1,''),(44,'Check','822.6077972507001','214.9154365192295',NULL,NULL,'1837.275949199416','2425.3707306235287','-191.4718377402669',NULL,NULL,NULL,0,1,''),(45,'Checksum','771.7595490856617','92.67969555174551',NULL,NULL,'1281.3745416615216','2879.8359194492364','723.2800076185517',NULL,NULL,NULL,0,1,''),(46,'Signature','888.2121912332129','91.9711659706266',NULL,NULL,'2246.4861157601076','2810.5915954973075','942.1178163301893',NULL,NULL,NULL,0,1,''),(47,'Equation eval','1038.916010867478','91.97116597062654',NULL,NULL,'4753.967841269285','3722.180629086103','-665.6491212581645',NULL,NULL,NULL,0,1,''),(48,'Majority vote','1218.5593911034905','91.97116597062654',NULL,NULL,'5182.609118082028','2736.231141284869','551.5771540960122',NULL,NULL,NULL,0,1,''),(49,'Access control','1390.9515938527904','92.49366741013745',NULL,NULL,'6003.849502008718','2344.8187915623075','899.7533214767686',NULL,NULL,NULL,0,1,''),(50,'Hardening','1054.1773981587537','233.30455196468347',NULL,NULL,'3255.87157917825','840.7435575967074','88.59670625233503',NULL,NULL,NULL,0,1,''),(51,'Cyclic checks','1554.377556140925','237.23018137981813',NULL,NULL,'5319.912403964804','1727.0256279508856','111.736167113791',NULL,NULL,NULL,0,1,''),(52,'Mutation','1559.594457320991','315.1185238230755',NULL,NULL,'4730.551295434692','949.487537634357','746.8857972408391',NULL,NULL,NULL,0,1,''),(53,'Code concealment','1569.0826824538556','405.01779149265667',NULL,NULL,'5356.577880976774','409.08695466782','279.84508938293175',NULL,NULL,NULL,0,1,''),(54,'Cloning','1572.591054052804','495.4798535339163',NULL,NULL,'5418.041195227526','-113.16968086050889','220.2466009992163',NULL,NULL,NULL,0,1,''),(55,'Layered interpretation','1596.5637433394631','572.0876507846166',NULL,NULL,'5193.809046312347','-656.3386097542594','748.8403578656307',NULL,NULL,NULL,0,1,''),(56,'Block chain','1771.4704534387163','673.421241952652',NULL,NULL,'-6603.287282993331','-3590.335405994925','-415.31175748802025',NULL,NULL,NULL,0,1,''),(57,'Overhead','392.70302972341','398.33411832447575','-989.3283021226397','-621.3320208435873','-3111.5808170396704','-114.66231598591185','866.8210719505937','164.35378747602084','1134.055950173481','-753.9175926735629',1,1,''),(58,'Fair','207.52692883344275','644.5330491564459',NULL,NULL,'-5469.649462165422','-1106.5081701160102','688.9308524708213',NULL,NULL,NULL,0,1,''),(59,'Medium','295.36666614110965','645.6617658754263',NULL,NULL,'-4962.526245694544','-1110.5939508533318','750.2335288606791',NULL,NULL,NULL,0,1,''),(60,'High','389.8140466819174','645.4469216878636',NULL,NULL,'-4466.411357115115','-1226.125726118128','787.2822971600735',NULL,NULL,NULL,0,1,''),(61,'N/A','462.1906142580392','645.0880462774242',NULL,NULL,'-3918.0005729833483','-1244.1277199837466','842.8111976052214',NULL,NULL,NULL,0,1,''),(62,'Trust anchor','823.4620620412592','517.1450028790218','-982.6596771379395','-383.9977500175782','-1852.7437633603195','-1111.1540361743937','-97.31951956107605','-1496.7187517790915','-1076.584406805348','1016.42713987056',1,1,''),(63,'TPM','909.5379379587403','642.5063325898627',NULL,NULL,'-1184.9044012773659','-1789.3336295065346','572.4938645051229',NULL,NULL,NULL,0,1,''),(64,'SGX','980.3626363895075','643.5063325898627',NULL,NULL,'-760.1823260827139','-1683.7777345675374','-319.8366899296602',NULL,NULL,NULL,0,1,''),(65,'Other','1052.3129235636318','646.3605973804222',NULL,NULL,'-294.31717100375323','-1603.1064742755818','528.323654467245',NULL,NULL,NULL,0,1,''),(66,'None','1685.7202051212796','673.8820213167838',NULL,NULL,'-8858.024127630688','-3467.2103127353244','-1518.0462141048988',NULL,NULL,NULL,0,1,''),(67,'Protection level','1270.8615880947477','521.2101522241273','-994.6595208891601','-281.33211459285496','996.9534648630378','-1705.7452487059247','512.4409064068868','-2534.5247518544247','256.0799143751864','-203.61227561712337',1,1,''),(68,'Internal','1452.7375791730985','676.6296638716772',NULL,NULL,'-7748.085581592561','-3476.806033232715','-1364.4036208165571',NULL,NULL,NULL,0,1,''),(69,'External','1343.6705318924207','673.6840866444072',NULL,NULL,'2529.0218352225365','-3007.2567771414238','285.6644084838954',NULL,NULL,NULL,0,1,''),(70,'Hypervisor','1203.9431625238847','673.7404915861159',NULL,NULL,'1583.1531063878915','-2645.529174665351','703.9929349935978',NULL,NULL,NULL,0,1,''),(71,'Software','704.4976450265727','642.7900057580437',NULL,NULL,'-2797.358495533419','-2152.495606294804','-225.68108123829825',NULL,NULL,NULL,0,1,''),(72,'Reverse engineering','475.2492122594372','254.81217069010142','-322.6662604198401','-776.0002187482914','-150.57370347755636','-715.1167132090086','-15.635084340648746','-197.80873206507522','-917.9333817485949','326.9834909860764',1,1,''),(73,'Attacker','475.12476237623423','368.1895132940248','-326.9977708507478','-283.333645830892','1144.1859704610501','240.24312276877822','-194.02308367976838','1024.0980845461536','-88.9569907091659','-1366.4392732671088',1,1,''),(78,'Call interposition','1150.347996774703','256.8145864563514',NULL,NULL,'-614.6855742024392','69.78717798899197','172.16880717031245',NULL,NULL,NULL,0,1,''),(79,'Disassembler','119.12950183558092','125.83901894908689',NULL,NULL,'-1995.7698478480065','-1269.2143260974635','-850.0941495725112',NULL,NULL,NULL,0,1,''),(80,'Tools','201.9306181258629','254.34923135684323','-325.33287500358057','-623.9985312614746','-1164.2709035330786','-836.8747820341652','-862.5478927977981','-1342.1191295012839','-114.96057988172356','-15.715835268157775',1,1,''),(81,'Debugger','241.45788738087992','128.4616763451635',NULL,NULL,'-898.1664589407969','-1951.0450139459258','-746.8683106090873',NULL,NULL,NULL,0,1,''),(82,'Tracer','340.07987666203144','127.12817980870784',NULL,NULL,'-1551.0856659947635','-478.5743355733096','-1242.1773531332879',NULL,NULL,NULL,0,1,''),(83,'Emulator','201.89365167201254','367.6398348095756',NULL,NULL,'-1150.7311957570096','-1400.1755468659949','217.24970035778017',NULL,NULL,NULL,0,1,''),(84,'Discovery','728.1518947222971','328.72709096376013','-320.002354148275','-889.3320416767579','134.6578654717242','-290.1059399368047','911.8235960463293','-107.54154854705472','-1454.515798633701','553.3090234561244',1,1,''),(85,'Pattern matching','728.5292554630064','453.4778093963763',NULL,NULL,'1037.20466085537','-142.0301624518263','1259.2820528498744',NULL,NULL,NULL,0,1,''),(86,'Taint analysis','919.9380630792848','451.93938973457784',NULL,NULL,'647.4909578714954','-571.3963813086439','1710.4840235215438',NULL,NULL,NULL,0,1,''),(87,'Graph-based analysis','1111.657682390608','453.1489477500765',NULL,NULL,'696.823432627275','-1526.425663903857','1189.8850144020796',NULL,NULL,NULL,0,1,''),(88,'Symbolic execution','1334.992734564465','451.1965639504301',NULL,NULL,'662.2672080618793','-1189.9103668925495','887.5497529647132',NULL,NULL,NULL,0,1,''),(89,'Dongle','823.9502871741241','643.352800129722',NULL,NULL,'-1758.2619761800556','-1832.5148037505676','517.4632417765356',NULL,NULL,NULL,0,1,''),(90,'Self-check','1567.733584648006','676.368986962789',NULL,NULL,'2254.929586909267','-2091.1030565912292','640.2494531206704',NULL,NULL,NULL,0,1,''),(91,'Hash chain','1550.609501237264','159.10961673256747',NULL,NULL,'5428.823081049158','-1392.7422049872685','622.1884914602401',NULL,NULL,NULL,0,1,''),(92,'Reactive','401.9542072101243','101.19895170523972',NULL,NULL,'-2156.9317741090754','3388.5632998016813','29.848118994063952',NULL,NULL,NULL,0,1,''),(93,'Asset','99.22342242131162','154.6749624574304','-686.6576250706369','-890.6693853954267','-4808.952804641889','1030.5020433257075','5.0788317295755405','3129.4424613034453','-1133.9728517827305','-488.9199597681988',1,1,''),(94,'Link','693.5984849922603','296.93075382868955',NULL,NULL,'-2652.1505220442427','412.8804880622755','131.98179481604484',NULL,NULL,NULL,0,1,''),(95,'Basic block','589.3599425928796','523.6192711996905',NULL,NULL,'-5634.276242050955','-2183.7509211360775','698.4873866131952',NULL,NULL,NULL,0,1,''),(112,'Concept A','','','-1056.9283675660417','-724.1432648679151','','','','','','',1,4,''),(113,'Concept B','','','-853.6776540471902','-725.2490010736077','','','','','','',1,4,''),(115,'Concept C','','','-956.7174659697387','-612.8310145995134','','','','','','',1,4,''); +/*!40000 ALTER TABLE `attribute` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `dimension` +-- + +DROP TABLE IF EXISTS `dimension`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `dimension` ( + `id_dimension` int(11) unsigned NOT NULL AUTO_INCREMENT, + `text` varchar(50) NOT NULL, + `x` varchar(50) DEFAULT '', + `y` varchar(50) DEFAULT '', + `xMajor` varchar(50) DEFAULT '', + `yMajor` varchar(50) DEFAULT '', + `id_taxonomy` int(11) unsigned NOT NULL, + PRIMARY KEY (`id_dimension`), + UNIQUE KEY `id_dimension_UNIQUE` (`id_dimension`), + UNIQUE KEY `dimension_text_UNIQUE` (`text`,`id_taxonomy`), + KEY `dimension_id_taxonomy_foreign` (`id_taxonomy`), + CONSTRAINT `dimension_id_taxonomy_foreign` FOREIGN KEY (`id_taxonomy`) REFERENCES `taxonomy` (`id_taxonomy`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `dimension` +-- + +LOCK TABLES `dimension` WRITE; +/*!40000 ALTER TABLE `dimension` DISABLE KEYS */; +INSERT INTO `dimension` VALUES (1,'System view','','','','',1),(2,'Attack view','','','','',1),(3,'Defense view','','','','',1),(4,'Interdimensional view','','','','',1),(9,'Interdimensional view','','','','',4),(10,'Test view','','','','',4); +/*!40000 ALTER TABLE `dimension` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `mapping` +-- + +DROP TABLE IF EXISTS `mapping`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `mapping` ( + `id_mapping` int(10) unsigned NOT NULL AUTO_INCREMENT, + `id_paper` int(11) unsigned NOT NULL, + `id_attribute` int(11) unsigned NOT NULL, + `occurrenceCount` int(20) DEFAULT '1', + PRIMARY KEY (`id_paper`,`id_attribute`), + UNIQUE KEY `id_mapping_UNIQUE` (`id_mapping`), + KEY `mapping_id_attribute_foreign` (`id_attribute`), + KEY `mapping_id_mapping` (`id_mapping`), + CONSTRAINT `mapping_id_attribute_foreign` FOREIGN KEY (`id_attribute`) REFERENCES `attribute` (`id_attribute`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=678 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `mapping` +-- + +LOCK TABLES `mapping` WRITE; +/*!40000 ALTER TABLE `mapping` DISABLE KEYS */; +INSERT INTO `mapping` VALUES (1,1,2,1),(87,1,11,1),(103,1,15,1),(166,1,23,1),(199,1,26,1),(255,1,31,1),(265,1,33,1),(314,1,36,1),(360,1,39,1),(441,1,43,1),(531,1,58,1),(588,1,66,1),(628,1,68,1),(2,2,2,1),(62,2,9,1),(107,2,16,1),(167,2,23,1),(225,2,29,1),(266,2,33,1),(338,2,37,1),(361,2,39,1),(409,2,42,1),(458,2,45,1),(478,2,46,1),(503,2,53,1),(560,2,61,1),(589,2,66,1),(629,2,68,1),(3,3,2,1),(63,3,9,1),(108,3,16,1),(168,3,23,1),(201,3,26,1),(226,3,29,1),(268,3,33,1),(339,3,37,1),(363,3,39,1),(442,3,43,1),(459,3,45,1),(495,3,51,1),(505,3,53,1),(547,3,59,1),(591,3,66,1),(631,3,68,1),(4,4,2,1),(41,4,3,1),(51,4,4,1),(64,4,9,1),(137,4,19,1),(169,4,23,1),(227,4,29,1),(300,4,34,1),(340,4,37,1),(364,4,39,1),(443,4,43,1),(491,4,49,1),(511,4,55,1),(532,4,58,1),(585,4,64,1),(651,4,69,1),(5,5,2,1),(89,5,11,1),(105,5,15,1),(257,5,31,1),(269,5,33,1),(316,5,36,1),(365,5,39,1),(444,5,43,1),(561,5,61,1),(592,5,66,1),(652,5,69,1),(6,6,2,1),(42,6,3,1),(52,6,4,1),(65,6,9,1),(116,6,17,1),(170,6,23,1),(202,6,26,1),(228,6,29,1),(270,6,33,1),(317,6,36,1),(366,6,39,1),(445,6,43,1),(492,6,49,1),(512,6,55,1),(522,6,56,1),(553,6,60,1),(586,6,65,1),(671,6,70,1),(7,7,2,1),(54,7,6,1),(138,7,19,1),(171,7,23,1),(205,7,26,1),(218,7,28,1),(273,7,33,1),(341,7,37,1),(369,7,39,1),(412,7,42,1),(479,7,46,1),(564,7,61,1),(595,7,66,1),(653,7,69,1),(8,8,2,1),(66,8,9,1),(109,8,16,1),(172,8,23,1),(229,8,29,1),(274,8,33,1),(342,8,37,1),(370,8,39,1),(413,8,42,1),(460,8,45,1),(496,8,51,1),(554,8,60,1),(596,8,66,1),(634,8,68,1),(9,9,2,1),(90,9,11,1),(130,9,18,1),(163,9,22,1),(249,9,30,1),(258,9,31,1),(275,9,33,1),(320,9,36,1),(371,9,39,1),(414,9,42,1),(565,9,61,1),(597,9,66,1),(635,9,68,1),(10,10,2,1),(139,10,19,1),(173,10,23,1),(206,10,26,1),(276,10,33,1),(343,10,37,1),(372,10,39,1),(415,10,42,1),(493,10,49,1),(513,10,55,1),(533,10,58,1),(598,10,66,1),(672,10,70,1),(11,11,2,1),(55,11,6,1),(117,11,17,1),(197,11,25,1),(219,11,28,1),(301,11,34,1),(373,11,39,1),(447,11,43,1),(500,11,52,1),(534,11,58,1),(599,11,66,1),(654,11,69,1),(12,12,2,1),(56,12,6,1),(110,12,16,1),(220,12,28,1),(277,12,33,1),(344,12,37,1),(374,12,39,1),(416,12,42,1),(485,12,48,1),(566,12,61,1),(600,12,66,1),(636,12,68,1),(13,13,2,1),(57,13,6,1),(140,13,19,1),(174,13,23,1),(207,13,26,1),(221,13,28,1),(302,13,34,1),(345,13,37,1),(375,13,39,1),(417,13,42,1),(461,13,45,1),(567,13,61,1),(601,13,66,1),(655,13,69,1),(14,14,2,1),(45,14,3,1),(53,14,4,1),(67,14,9,1),(141,14,19,1),(156,14,21,1),(230,14,29,1),(278,14,33,1),(346,14,37,1),(376,14,39,1),(418,14,42,1),(462,14,45,1),(514,14,55,1),(523,14,56,1),(535,14,58,1),(579,14,63,1),(673,14,70,1),(15,15,2,1),(118,15,17,1),(175,15,23,1),(279,15,33,1),(347,15,37,1),(377,15,39,1),(419,15,42,1),(515,15,55,1),(548,15,59,1),(602,15,66,1),(674,15,70,1),(16,16,2,1),(68,16,9,1),(111,16,16,1),(177,16,23,1),(231,16,29,1),(280,16,33,1),(348,16,37,1),(379,16,39,1),(421,16,42,1),(497,16,51,1),(516,16,55,1),(536,16,58,1),(604,16,66,1),(637,16,68,1),(17,17,2,1),(69,17,9,1),(112,17,16,1),(178,17,23,1),(196,17,24,1),(232,17,29,1),(281,17,33,1),(349,17,37,1),(380,17,39,1),(422,17,42,1),(463,17,45,1),(498,17,51,1),(501,17,52,1),(517,17,55,1),(537,17,58,1),(605,17,66,1),(638,17,68,1),(18,18,2,1),(70,18,9,1),(131,18,18,1),(179,18,23,1),(233,18,29,1),(282,18,33,1),(350,18,37,1),(381,18,39,1),(423,18,42,1),(464,18,45,1),(569,18,61,1),(606,18,66,1),(639,18,68,1),(19,19,2,1),(83,19,10,1),(120,19,17,1),(157,19,21,1),(251,19,30,1),(283,19,33,1),(322,19,36,1),(382,19,39,1),(424,19,42,1),(487,19,48,1),(499,19,51,1),(570,19,61,1),(607,19,66,1),(640,19,68,1),(20,20,2,1),(91,20,11,1),(113,20,16,1),(132,20,18,1),(180,20,23,1),(259,20,31,1),(284,20,33,1),(323,20,36,1),(383,20,39,1),(425,20,42,1),(509,20,54,1),(555,20,60,1),(608,20,66,1),(641,20,68,1),(21,21,2,1),(96,21,12,1),(142,21,19,1),(181,21,23,1),(234,21,29,1),(304,21,34,1),(324,21,36,1),(384,21,39,1),(448,21,43,1),(465,21,45,1),(556,21,60,1),(609,21,66,1),(657,21,69,1),(22,22,2,1),(97,22,12,1),(143,22,19,1),(182,22,23,1),(235,22,29,1),(305,22,34,1),(325,22,36,1),(385,22,39,1),(449,22,43,1),(466,22,45,1),(549,22,59,1),(610,22,66,1),(658,22,69,1),(23,23,2,1),(92,23,11,1),(144,23,19,1),(158,23,21,1),(260,23,31,1),(306,23,34,1),(326,23,36,1),(407,23,40,1),(450,23,43,1),(467,23,45,1),(480,23,46,1),(488,23,48,1),(524,23,56,1),(550,23,59,1),(611,23,66,1),(642,23,68,1),(24,24,2,1),(71,24,9,1),(133,24,18,1),(164,24,22,1),(236,24,29,1),(285,24,33,1),(351,24,37,1),(386,24,39,1),(451,24,43,1),(468,24,45,1),(518,24,55,1),(571,24,61,1),(612,24,66,1),(643,24,68,1),(25,25,2,1),(72,25,9,1),(145,25,19,1),(183,25,23,1),(237,25,29,1),(286,25,33,1),(352,25,37,1),(387,25,39,1),(426,25,42,1),(469,25,45,1),(525,25,56,1),(580,25,63,1),(659,25,69,1),(26,26,2,1),(58,26,6,1),(146,26,19,1),(184,26,23,1),(210,26,26,1),(222,26,28,1),(287,26,33,1),(353,26,37,1),(390,26,39,1),(427,26,42,1),(481,26,46,1),(572,26,61,1),(614,26,66,1),(662,26,69,1),(27,27,2,1),(73,27,9,1),(147,27,19,1),(185,27,23,1),(211,27,26,1),(238,27,29,1),(288,27,33,1),(354,27,37,1),(391,27,39,1),(454,27,43,1),(470,27,45,1),(482,27,46,1),(519,27,55,1),(573,27,61,1),(615,27,66,1),(663,27,69,1),(28,28,2,1),(93,28,11,1),(122,28,17,1),(161,28,21,1),(261,28,31,1),(289,28,33,1),(392,28,39,1),(428,28,42,1),(510,28,54,1),(574,28,61,1),(616,28,66,1),(644,28,68,1),(29,29,2,1),(74,29,9,1),(135,29,18,1),(198,29,25,1),(239,29,29,1),(290,29,33,1),(355,29,37,1),(393,29,39,1),(455,29,43,1),(502,29,52,1),(506,29,53,1),(551,29,59,1),(617,29,66,1),(645,29,68,1),(30,30,2,1),(101,30,13,1),(186,30,23,1),(212,30,26,1),(262,30,31,1),(291,30,33,1),(329,30,36,1),(394,30,39,1),(429,30,42,1),(484,30,47,1),(527,30,56,1),(539,30,58,1),(582,30,63,1),(646,30,68,1),(31,31,2,1),(98,31,12,1),(123,31,17,1),(187,31,23,1),(309,31,34,1),(330,31,36,1),(395,31,39,1),(430,31,42,1),(471,31,45,1),(575,31,61,1),(618,31,66,1),(664,31,69,1),(32,32,2,1),(75,32,9,1),(148,32,19,1),(188,32,23,1),(240,32,29,1),(292,32,33,1),(331,32,36,1),(396,32,39,1),(431,32,42,1),(472,32,45,1),(520,32,55,1),(528,32,56,1),(540,32,58,1),(587,32,65,1),(675,32,70,1),(33,33,2,1),(60,33,6,1),(124,33,17,1),(191,33,23,1),(215,33,26,1),(241,33,29,1),(311,33,34,1),(357,33,37,1),(399,33,39,1),(433,33,42,1),(530,33,56,1),(543,33,58,1),(584,33,63,1),(676,33,70,1),(34,34,2,1),(76,34,9,1),(125,34,17,1),(192,34,23,1),(242,34,29,1),(295,34,33,1),(358,34,37,1),(400,34,39,1),(434,34,42,1),(474,34,45,1),(507,34,53,1),(558,34,60,1),(621,34,66,1),(648,34,68,1),(35,35,2,1),(99,35,12,1),(126,35,17,1),(193,35,23,1),(312,35,34,1),(334,35,36,1),(401,35,39,1),(435,35,42,1),(475,35,45,1),(544,35,58,1),(622,35,66,1),(667,35,69,1),(36,36,2,1),(77,36,9,1),(100,36,12,1),(102,36,13,1),(127,36,17,1),(162,36,21,1),(243,36,29,1),(296,36,33,1),(335,36,36,1),(402,36,39,1),(436,36,42,1),(577,36,61,1),(623,36,66,1),(668,36,69,1),(37,37,2,1),(61,37,6,1),(136,37,18,1),(165,37,22,1),(217,37,26,1),(224,37,28,1),(297,37,33,1),(337,37,36,1),(404,37,39,1),(438,37,42,1),(559,37,60,1),(625,37,66,1),(649,37,68,1),(38,38,2,1),(78,38,9,1),(115,38,16,1),(194,38,23,1),(244,38,29,1),(298,38,33,1),(405,38,39,1),(439,38,42,1),(476,38,45,1),(508,38,53,1),(552,38,59,1),(626,38,66,1),(650,38,68,1),(39,39,2,1),(79,39,9,1),(152,39,19,1),(195,39,23,1),(245,39,29,1),(299,39,33,1),(359,39,37,1),(406,39,39,1),(440,39,42,1),(477,39,45,1),(521,39,55,1),(545,39,58,1),(627,39,66,1),(670,39,69,1),(677,39,70,1),(40,40,3,1),(88,40,11,1),(104,40,15,1),(128,40,18,1),(153,40,21,1),(200,40,26,1),(246,40,30,1),(256,40,31,1),(267,40,33,1),(315,40,36,1),(362,40,39,1),(410,40,42,1),(490,40,49,1),(504,40,53,1),(546,40,59,1),(590,40,66,1),(630,40,68,1),(43,41,3,1),(80,41,10,1),(129,41,18,1),(154,41,21,1),(203,41,26,1),(247,41,30,1),(271,41,33,1),(318,41,36,1),(367,41,39,1),(446,41,43,1),(562,41,61,1),(593,41,66,1),(632,41,68,1),(44,42,3,1),(81,42,10,1),(106,42,15,1),(155,42,21,1),(204,42,26,1),(248,42,30,1),(272,42,33,1),(319,42,36,1),(368,42,39,1),(411,42,42,1),(563,42,61,1),(594,42,66,1),(633,42,68,1),(46,43,3,1),(82,43,10,1),(119,43,17,1),(176,43,23,1),(208,43,26,1),(250,43,30,1),(303,43,34,1),(321,43,36,1),(378,43,39,1),(420,43,42,1),(486,43,48,1),(568,43,61,1),(603,43,66,1),(656,43,69,1),(47,44,3,1),(84,44,10,1),(121,44,17,1),(159,44,21,1),(252,44,30,1),(307,44,34,1),(327,44,36,1),(388,44,39,1),(452,44,43,1),(557,44,60,1),(613,44,66,1),(660,44,69,1),(48,45,3,1),(85,45,10,1),(134,45,18,1),(160,45,21,1),(209,45,26,1),(253,45,30,1),(308,45,34,1),(328,45,36,1),(389,45,39,1),(453,45,43,1),(483,45,47,1),(526,45,56,1),(538,45,58,1),(581,45,63,1),(661,45,69,1),(49,46,3,1),(59,46,6,1),(149,46,19,1),(223,46,28,1),(310,46,34,1),(356,46,37,1),(408,46,40,1),(432,46,42,1),(473,46,45,1),(529,46,56,1),(576,46,61,1),(583,46,63,1),(665,46,69,1),(50,47,3,1),(86,47,10,1),(151,47,19,1),(216,47,26,1),(254,47,30,1),(313,47,34,1),(336,47,36,1),(403,47,39,1),(437,47,42,1),(489,47,48,1),(578,47,61,1),(624,47,66,1),(669,47,69,1),(94,48,11,1),(114,48,16,1),(189,48,23,1),(213,48,26,1),(263,48,31,1),(293,48,33,1),(332,48,36,1),(397,48,39,1),(456,48,43,1),(541,48,58,1),(619,48,66,1),(647,48,68,1),(95,49,11,1),(150,49,19,1),(190,49,23,1),(214,49,26,1),(264,49,31,1),(294,49,33,1),(333,49,36,1),(398,49,39,1),(457,49,43,1),(494,49,49,1),(542,49,58,1),(620,49,66,1),(666,49,69,1); +/*!40000 ALTER TABLE `mapping` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `paper` +-- + +DROP TABLE IF EXISTS `paper`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `paper` ( + `id_paper` int(10) unsigned NOT NULL AUTO_INCREMENT, + `citation` varchar(100) NOT NULL, + `bib` mediumtext, + `referenceCount` int(20) DEFAULT '0', + `author` varchar(500) DEFAULT '', + `keywords` varchar(500) DEFAULT '', + PRIMARY KEY (`id_paper`), + UNIQUE KEY `id_paper_UNIQUE` (`id_paper`) +) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `paper` +-- + +LOCK TABLES `paper` WRITE; +/*!40000 ALTER TABLE `paper` DISABLE KEYS */; +INSERT INTO `paper` VALUES (1,'abadi2005control','{\"author\": \"Abadi, Mart{\\\\\'\\\\i}n and Budiu, Mihai and Erlingsson, Ulfar and Ligatti, Jay\", \"booktitle\": \"Proceedings of the 12th ACM conference on Computer and communications security\", \"title\": \"Control-flow integrity\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2005\", \"organization\": \"ACM\", \"ID\": \"abadi2005control\", \"pages\": \"340--353\"}',5,'',''),(2,'aucsmith1996tamper','{\"isbn\": \"3-540-61996-8\", \"title\": \"Tamper resistant software: An implementation\", \"journal\": \"Proceedings of the First International Workshop on Information Hiding\", \"author\": \"Aucsmith, David\", \"ENTRYTYPE\": \"article\", \"mendeley-groups\": \"Tamperproofing,Tamperproofing/Methods\", \"link\": \"http://link.springer.com/chapter/10.1007/3-540-61996-8{\\\\_}49\", \"year\": \"1996\", \"ID\": \"aucsmith1996tamper\", \"pages\": \"317--333\"}',161,'',''),(3,'banescu2017detecting','{\"doi\": \"10.1145/3029806.3029835\", \"isbn\": \"978-1-4503-4523-1/17/03\", \"title\": \"Detecting Patching of Executables without System Calls\", \"booktitle\": \"Proceedings of the Conference on Data and Application Security and Privacy\", \"author\": \"Banescu, Sebastian and Ahmadvand, Mohsen and Pretschner, Alexander and Shield, Robert and Hamilton, Chris\", \"ID\": \"banescu2017detecting\", \"year\": \"2017\", \"ENTRYTYPE\": \"inproceedings\"}',0,'',''),(4,'baumann2015shielding','{\"publisher\": \"ACM\", \"author\": \"Baumann, Andrew and Peinado, Marcus and Hunt, Galen\", \"journal\": \"ACM Transactions on Computer Systems (TOCS)\", \"title\": \"Shielding applications from an untrusted cloud with haven\", \"number\": \"3\", \"ENTRYTYPE\": \"article\", \"volume\": \"33\", \"year\": \"2015\", \"ID\": \"baumann2015shielding\", \"pages\": \"8\"}',0,'',''),(5,'Blietz2006','{\"doi\": \"10.1007/11787952_12\", \"isbn\": \"3540359982\", \"author\": \"Blietz, Brian and Tyagi, Akhilesh\", \"journal\": \"Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)\", \"issn\": \"16113349\", \"ENTRYTYPE\": \"article\", \"volume\": \"3919 LNCS\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Blietz, Tyagi/Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)/Blietz, Tyagi - 2006 - Software tamper resistance through dynamic program monitoring.pdf:pdf\", \"year\": \"2006\", \"title\": \"Software tamper resistance through dynamic program monitoring\", \"ID\": \"Blietz2006\", \"pages\": \"146--163\"}',5,'',''),(6,'brasser2015tytan','{\"author\": \"Brasser, Ferdinand and El Mahjoub, Brahim and Sadeghi, Ahmad-Reza and Wachsmann, Christian and Koeberl, Patrick\", \"booktitle\": \"2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC)\", \"title\": \"TyTAN: tiny trust anchor for tiny devices\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"brasser2015tytan\", \"pages\": \"1--6\"}',0,'',''),(7,'catuogno2002format','{\"author\": \"Catuogno, Luigi and Visconti, Ivan\", \"booktitle\": \"International Conference on Security in Communication Networks\", \"title\": \"A format-independent architecture for run-time integrity checking of executable code\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2002\", \"organization\": \"Springer\", \"ID\": \"catuogno2002format\", \"pages\": \"219--233\"}',9,'',''),(8,'chang2001protecting','{\"author\": \"Chang, Hoi and Atallah, Mikhail J\", \"booktitle\": \"ACM Workshop on Digital Rights Management\", \"title\": \"Protecting software code by guards\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2001\", \"organization\": \"Springer\", \"ID\": \"chang2001protecting\", \"pages\": \"160--175\"}',93,'',''),(9,'chen2002oblivious','{\"author\": \"Chen, Yuqun and Venkatesan, Ramarathnam and Cary, Matthew and Pang, Ruoming and Sinha, Saurabh and Jakubowski, Mariusz H\", \"booktitle\": \"International Workshop on Information Hiding\", \"title\": \"Oblivious hashing: A stealthy software integrity verification primitive\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2002\", \"organization\": \"Springer\", \"ID\": \"chen2002oblivious\", \"pages\": \"400--414\"}',55,'',''),(10,'christodorescu2009cloud','{\"author\": \"Christodorescu, Mihai and Sailer, Reiner and Schales, Douglas Lee and Sgandurra, Daniele and Zamboni, Diego\", \"booktitle\": \"Proceedings of the 2009 ACM workshop on Cloud computing security\", \"title\": \"Cloud security is not (just) virtualization security: a short paper\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2009\", \"organization\": \"ACM\", \"ID\": \"christodorescu2009cloud\", \"pages\": \"97--102\"}',0,'',''),(11,'collberg2012distributed','{\"author\": \"Collberg, Christian and Martin, Sam and Myers, Jonathan and Nagra, Jasvir\", \"booktitle\": \"Proceedings of the 28th Annual Computer Security Applications Conference\", \"title\": \"Distributed application tamper detection via continuous software updates\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2012\", \"organization\": \"ACM\", \"ID\": \"collberg2012distributed\", \"pages\": \"319--328\"}',15,'',''),(12,'dedic2007graph','{\"author\": \"Dedi{\\\\\'c}, Nenad and Jakubowski, Mariusz and Venkatesan, Ramarathnam\", \"booktitle\": \"International Workshop on Information Hiding\", \"title\": \"A graph game model for software tamper protection\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2007\", \"organization\": \"Springer\", \"ID\": \"dedic2007graph\", \"pages\": \"80--95\"}',5,'',''),(13,'deswarte2004remote','{\"publisher\": \"Springer\", \"author\": \"Deswarte, Yves and Quisquater, Jean-Jacques and Sa{\\\\\\\"\\\\i}dane, Ayda\", \"booktitle\": \"Integrity and internal control in information systems VI\", \"title\": \"Remote integrity checking\", \"ENTRYTYPE\": \"incollection\", \"year\": \"2004\", \"ID\": \"deswarte2004remote\", \"pages\": \"1--11\"}',34,'',''),(14,'dewan2008hypervisor','{\"author\": \"Dewan, Prashant and Durham, David and Khosravi, Hormuzd and Long, Men and Nagabhushan, Gayathri\", \"booktitle\": \"Proceedings of the 2008 Spring simulation multiconference\", \"title\": \"A hypervisor-based system for protecting software runtime memory and persistent storage\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2008\", \"organization\": \"Society for Computer Simulation International\", \"ID\": \"dewan2008hypervisor\", \"pages\": \"828--835\"}',22,'',''),(15,'Gan2015using','{\"doi\": \"10.1109/SPRO.2015.12\", \"title\": \"Using Virtual Machine Protections to Enhance Whitebox Cryptography\", \"booktitle\": \"Software Protection (SPRO), 2015 IEEE/ACM 1st International Workshop on\", \"author\": \"J. Gan and R. Kok and P. Kohli and Y. Ding and B. Mah\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"ID\": \"Gan2015using\", \"pages\": \"17-23\"}',0,'',''),(16,'Ghosh2010secure','{\"isbn\": \"364216434X\", \"author\": \"Ghosh, Sudeep and Hiser, Jason D. and Davidson, Jack W.\", \"journal\": \"Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)\", \"issn\": \"03029743\", \"ENTRYTYPE\": \"article\", \"volume\": \"6387 LNCS\", \"mendeley-groups\": \"Tamperproofing\", \"year\": \"2010\", \"title\": \"A secure and robust approach to software tamper resistance\", \"ID\": \"Ghosh2010secure\", \"pages\": \"33--47\"}',11,'',''),(17,'ghosh2013software','{\"author\": \"Ghosh, Sudeep and Hiser, Jason and Davidson, Jack W\", \"booktitle\": \"Proceedings of the 2nd ACM SIGPLAN Program Protection and Reverse Engineering Workshop\", \"title\": \"Software protection for dynamically-generated code\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2013\", \"organization\": \"ACM\", \"ID\": \"ghosh2013software\", \"pages\": \"1\"}',6,'',''),(18,'Horne2002','{\"doi\": \"10.1007/3-540-47870-1_9\", \"isbn\": \"978-3-540-43677-5\", \"author\": \"Horne, Bill and Matheson, Lesley and Sheehan, Casey and Tarjan, Robert\", \"ENTRYTYPE\": \"article\", \"abstract\": \"We describe a software self-checking mechanism designed to improve the tamper resistance of large programs. The mechanism consists of a number of testers that redundantly test for changes in the executable code as it is running and report modifications. The mechanism is built to be compatible with copy-specific static watermarking and other tamper-resistance techniques. The mechanism includes several innovations to make it stealthy and more robust.\", \"title\": \"Dynamic Self-Checking Techniques for Improved Tamper Resistance\", \"pages\": \"141--159\", \"mendeley-groups\": \"Tamperproofing/Methods,Tamperproofing\", \"link\": \"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.13.3308\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Horne et al/Security and Privacy in Digital Rights Management/Horne et al. - 2002 - Dynamic Self-Checking Techniques for Improved Tamper Resistance.pdf:pdf\", \"year\": \"2002\", \"ID\": \"Horne2002\", \"annote\": \"They add testers in the post compilation process.\\nLinear checks no circular\\nTo avoid complexity, a block is checked only by one block\\nA 32bit space is added outside basic blocks as corrector that tries to fix the hash values in patch process. The patch process is part of sofware watermarking after-installation process\\nDid not quite get it where do they store hashes? They say we store them but not clear where?!\\nNo inidication of how Address space layout randomization is respected.\", \"journal\": \"Security and Privacy in Digital Rights Management\"}',0,'',''),(19,'ibrahim2016stins4cs','{\"author\": \"Ibrahim, Amjad and Banescu, Sebastian\", \"booktitle\": \"Proceedings of the 2016 ACM Workshop on Software PROtection\", \"title\": \"StIns4CS: A State Inspection Tool for C\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2016\", \"organization\": \"ACM\", \"ID\": \"ibrahim2016stins4cs\", \"pages\": \"61--71\"}',0,'',''),(20,'jacob2007towards','{\"author\": \"Jacob, Matthias and Jakubowski, Mariusz H and Venkatesan, Ramarathnam\", \"booktitle\": \"Proceedings of the 9th workshop on Multimedia \\\\& security\", \"title\": \"Towards integral binary execution: Implementing oblivious hashing using overlapped instruction encodings\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2007\", \"organization\": \"ACM\", \"ID\": \"jacob2007towards\", \"pages\": \"129--140\"}',25,'',''),(21,'jakobsson2010retroactive','{\"numpages\": \"13\", \"publisher\": \"USENIX Association\", \"title\": \"Retroactive Detection of Malware with Applications to Mobile Platforms\", \"series\": \"HotSec\'10\", \"booktitle\": \"Proceedings of the 5th USENIX Conference on Hot Topics in Security\", \"author\": \"Jakobsson, Markus and Johansson, Karl-Anders\", \"ENTRYTYPE\": \"inproceedings\", \"location\": \"Washinton, DC\", \"year\": \"2010\", \"ID\": \"jakobsson2010retroactive\", \"pages\": \"1--13\", \"address\": \"Berkeley, CA, USA\"}',0,'',''),(22,'jakobsson2011practical','{\"author\": \"Jakobsson, Markus and Johansson, Karl-Anders\", \"booktitle\": \"Lightweight Security \\\\& Privacy: Devices, Protocols and Applications (LightSec), 2011 Workshop on\", \"title\": \"Practical and secure software-based attestation\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2011\", \"organization\": \"IEEE\", \"ID\": \"jakobsson2011practical\", \"pages\": \"1--9\"}',13,'',''),(23,'jin2003forensic','{\"author\": \"Jin, Hongxia and Lotspiech, Jeffery\", \"booktitle\": \"Software Reliability Engineering, 2003. ISSRE 2003. 14th International Symposium on\", \"title\": \"Forensic analysis for tamper resistant software\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2003\", \"organization\": \"IEEE\", \"ID\": \"jin2003forensic\", \"pages\": \"133--142\"}',9,'',''),(24,'junod2015obfuscator','{\"author\": \"Junod, Pascal and Rinaldini, Julien and Wehrli, Johan and Michielin, Julie\", \"booktitle\": \"Proceedings of the 1st International Workshop on Software Protection\", \"title\": \"Obfuscator-LLVM: software protection for the masses\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE Press\", \"ID\": \"junod2015obfuscator\", \"pages\": \"3--9\"}',0,'',''),(25,'kanstren2015architecture','{\"author\": \"Kanstr{\\\\\'e}n, Teemu and Lehtonen, Sami and Savola, Reijo and Kukkohovi, Hilkka and H{\\\\\\\"a}t{\\\\\\\"o}nen, Kimmo\", \"booktitle\": \"Cloud Engineering (IC2E), 2015 IEEE International Conference on\", \"title\": \"Architecture for high confidence cloud security monitoring\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"kanstren2015architecture\", \"pages\": \"195--200\"}',3,'',''),(26,'kim1994experiences','{\"ID\": \"kim1994experiences\", \"author\": \"Kim, Gene H and Spafford, Eugene H\", \"year\": \"1994\", \"ENTRYTYPE\": \"article\", \"title\": \"Experiences with tripwire: Using integrity checkers for intrusion detection\"}',0,'',''),(27,'kimball2012emulation','{\"publisher\": \"Google Patents\", \"author\": \"Kimball, William B and Baldwin, Rusty O\", \"title\": \"Emulation-based software protection\", \"month\": \"oct~9\", \"note\": \"US Patent 8,285,987\", \"year\": \"2012\", \"ID\": \"kimball2012emulation\", \"ENTRYTYPE\": \"misc\"}',0,'',''),(28,'kulkarni2014new','{\"author\": \"Kulkarni, Aniket and Metta, Ravindra\", \"booktitle\": \"Service Oriented System Engineering (SOSE), 2014 IEEE 8th International Symposium on\", \"title\": \"A New Code Obfuscation Scheme for Software Protection\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2014\", \"organization\": \"IEEE\", \"ID\": \"kulkarni2014new\", \"pages\": \"409--414\"}',0,'',''),(29,'madou2005software','{\"author\": \"Madou, Matias and Anckaert, Bertrand and Moseley, Patrick and Debray, Saumya and De Sutter, Bjorn and De Bosschere, Koen\", \"booktitle\": \"International Workshop on Information Security Applications\", \"title\": \"Software protection through dynamic code mutation\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2005\", \"organization\": \"Springer\", \"ID\": \"madou2005software\", \"pages\": \"194--206\"}',31,'',''),(30,'Malone2011','{\"doi\": \"10.1145/2046582.2046596\", \"isbn\": \"9781450310017\", \"keyword\": \"hardware performance counters,integrity\", \"author\": \"Malone, Corey and Zahran, Mohamed and Karri, Ramesh\", \"journal\": \"Proceedings of the sixth ACM workshop on Scalable trusted computing - STC \'11\", \"issn\": \"15437221\", \"ENTRYTYPE\": \"article\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"link\": \"http://www.scopus.com/inward/record.url?eid=2-s2.0-80755143408{\\\\&}partnerID=40{\\\\&}md5=ad5db1f8e5c0131a2a17f457ba1b0497$\\\\backslash$nhttp://dl.acm.org/citation.cfm?doid=2046582.2046596\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Malone, Zahran, Karri/Proceedings of the sixth ACM workshop on Scalable trusted computing - STC \'11/Malone, Zahran, Karri - 2011 - Are Hardware Performance Counters a Cost Effective Way for Integrity Checking of Programs.pdf:pdf\", \"year\": \"2011\", \"title\": \"Are Hardware Performance Counters a Cost Effective Way for Integrity Checking of Programs\", \"ID\": \"Malone2011\", \"pages\": \"71\"}',0,'',''),(31,'Martignoni2010conquer','{\"doi\": \"10.1007/978-3-642-14215-4_2\", \"title\": \"Conqueror: Tamper-proof code execution on legacy systems\", \"journal\": \"Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)\", \"author\": \"Martignoni, Lorenzo and Paleari, Roberto and Bruschi, Danilo\", \"ENTRYTYPE\": \"article\", \"volume\": \"6201 LNCS\", \"year\": \"2010\", \"ID\": \"Martignoni2010conquer\", \"pages\": \"21--40\"}',12,'',''),(32,'morgan2015design','{\"author\": \"Morgan, Beno{\\\\^\\\\i}t and Alata, Eric and Nicomette, Vincent and Ka{\\\\^a}niche, Mohamed and Averlant, Guillaume\", \"booktitle\": \"Dependable Computing (PRDC), 2015 IEEE 21st Pacific Rim International Symposium on\", \"title\": \"Design and implementation of a hardware assisted security architecture for software integrity monitoring\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"morgan2015design\", \"pages\": \"189--198\"}',0,'',''),(33,'park2015tgvisor','{\"author\": \"Park, Sungjin and Yoon, Jae Nam and Kang, Cheoloh and Kim, Kyong Hoon and Han, Taisook\", \"booktitle\": \"Mobile Cloud Computing, Services, and Engineering (MobileCloud), 2015 3rd IEEE International Conference on\", \"title\": \"TGVisor: A Tiny Hypervisor-Based Trusted Geolocation Framework for Mobile Cloud Clients\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"park2015tgvisor\", \"pages\": \"99--108\"}',0,'',''),(34,'Protsenko2015dynamic','{\"doi\": \"10.1109/ARES.2015.98\", \"keyword\": \"Android (operating system);computer crime;cryptography;mobile computing;reverse engineering;Android apps;application piracy;dynamic code loading;dynamic obfuscation techniques;dynamic re-encryption;dynamic self-protection;mobile devices;native code;proprietary mobile software;reverse engineering;tamperproofing;Androids;Encryption;Humanoid robots;Loading;Runtime;Software protection;Android;Software Protection\", \"title\": \"Dynamic Self-Protection and Tamperproofing for Android Apps Using Native Code\", \"booktitle\": \"Availability, Reliability and Security (ARES), 2015 10th International Conference on\", \"author\": \"M. Protsenko and S. Kreuter and T. M\\u00fcller\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"ID\": \"Protsenko2015dynamic\", \"pages\": \"129-138\"}',0,'',''),(35,'Seshadri2005pioneer','{\"doi\": \"10.1145/1095809.1095812\", \"isbn\": \"1-59593-079-5\", \"keyword\": \"dynamic root of trust,rootkit detection,self-check-summing code,software-based code attestation,verifiable code execution\", \"author\": \"Seshadri, Arvind and Luk, Mark and Shi, Elaine and Perrig, Adrian and van Doorn, Leendert and Khosla, Pradeep\", \"journal\": \"ACM SIGOPS Operating Systems Review\", \"issn\": \"01635980\", \"ID\": \"Seshadri2005pioneer\", \"mendeley-groups\": \"Tamperproofing\", \"link\": \"http://dl.acm.org/citation.cfm?id=1095809.1095812\", \"year\": \"2005\", \"title\": \"Pioneer: Verifying Code Integrity and Enforcing Untampered Code Execution on Legacy Systems\", \"ENTRYTYPE\": \"article\"}',2,'',''),(36,'Spinellis2000','{\"doi\": \"10.1145/353323.353383\", \"isbn\": \"1094-9224\", \"author\": \"Spinellis, Diomidis\", \"ENTRYTYPE\": \"article\", \"abstract\": \"The integrity verification of a device\'s controlling software is an important aspect of many emerging information appliances. We propose the use of reflection, whereby the software is able to examine its own operation, in conjunction with cryptographic hashes as a basis for developing a suitable software verification protocol. For more demanding applications meta-reflective techniques can be used to thwart attacks based on device emulation strategies. We demonstrate how our approach can be used to increase the security of mobile phones, devices for the delivery of digital content, and smartcards.\", \"issn\": \"10949224\", \"number\": \"1\", \"pages\": \"51--62\", \"volume\": \"3\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Spinellis/ACM Transactions on Information and System Security/Spinellis - 2000 - Reflection as a mechanism for software integrity verification.pdf:pdf\", \"year\": \"2000\", \"title\": \"Reflection as a mechanism for software integrity verification\", \"ID\": \"Spinellis2000\", \"annote\": \"In this approach a software integrity is verified with the help of an external (trusted) entity. Here, the program state is retrieved using reflection, a protocol is proposed to verify the state, and suggested to augment the scheme with CPU perfor.mance counter, before and after the verification call loops.\\nOne obvious attack is to keep an untouched version of the application in the memory next to the tampered with version. Then redirect all hash computations to the good version. The authors, suggest memory expanion and timing as possible countermeasures.\", \"journal\": \"ACM Transactions on Information and System Security\"}',0,'',''),(37,'teixeira2015siot','{\"author\": \"Teixeira, Fernando A and Machado, Gustavo V and Pereira, Fernando MQ and Wong, Hao Chi and Nogueira, Jos{\\\\\'e} and Oliveira, Leonardo B\", \"booktitle\": \"Proceedings of the 14th International Conference on Information Processing in Sensor Networks\", \"title\": \"SIoT: securing the internet of things through distributed system analysis\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"ACM\", \"ID\": \"teixeira2015siot\", \"pages\": \"310--321\"}',0,'',''),(38,'Wang2005Tamper','{\"isbn\": \"8242866627\", \"keyword\": \"integrity checking,multi-blocking encryption,software piracy,tamper resistant\", \"title\": \"Tamper Resistant Software Through Dynamic Integrity Checking\", \"journal\": \"Proc. Symp. on Cyptography and Information Security (SCIS 05)\", \"author\": \"Wang, Ping and Kang, Seok-kyu and Kim, Kwangjo\", \"ID\": \"Wang2005Tamper\", \"year\": \"2005\", \"ENTRYTYPE\": \"article\"}',0,'',''),(39,'yao2014cryptvmi','{\"author\": \"Yao, Fangzhou and Sprabery, Read and Campbell, Roy H\", \"booktitle\": \"Proceedings of the 2nd international workshop on Security in cloud computing\", \"title\": \"CryptVMI: a flexible and encrypted virtual machine introspection system in the cloud\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2014\", \"organization\": \"ACM\", \"ID\": \"yao2014cryptvmi\", \"pages\": \"11--18\"}',0,'',''),(40,'banescu2015software','{\"author\": \"Banescu, Sebastian and Pretschner, Alexander and Battr{\\\\\'e}, Dominic and Cazzulani, St{\\\\\'e}fano and Shield, Robert and Thompson, Greg\", \"booktitle\": \"Proceedings of the 5th ACM Conference on Data and Application Security and Privacy\", \"title\": \"Software-based protection against changeware\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"ACM\", \"ID\": \"banescu2015software\", \"pages\": \"231--242\"}',4,'',''),(41,'Carbone2009','{\"isbn\": \"9781605583525\", \"author\": \"Carbone, Martim and Cui, Weidong and Peinado, Marcus and Lu, Long and Lee, Wenke\", \"journal\": \"Analysis\", \"title\": \"Mapping Kernel Objects to Enable Systematic Integrity Checking\", \"ENTRYTYPE\": \"article\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Carbone et al/Analysis/Carbone et al. - 2009 - Mapping Kernel Objects to Enable Systematic Integrity Checking.pdf:pdf\", \"year\": \"2009\", \"ID\": \"Carbone2009\", \"pages\": \"555--565\"}',0,'',''),(42,'Castro2006','{\"isbn\": \"1-931971-47-1\", \"author\": \"Castro, Miguel and Costa, Manuel and Harris, Tim\", \"ENTRYTYPE\": \"article\", \"abstract\": \"Software attacks often subvert the intended data-flow in a vulnerable program. For example, attackers exploit buffer overflows and format string vulnerabilities to write data to unintended locations. We present a simple technique that prevents these attacks by enforcing data-flow integrity. It computes a data-flow graph using static analysis, and it instruments the program to ensure that the flow of data at runtime is allowed by the data-flow graph. We describe an efficient implementation of data-flow integrity enforcement that uses static analysis to reduce instrumentation overhead. This implementation can be used in practice to detect a broad class of attacks and errors because it can be applied automatically to C and C++ programs without modifications, it does not have false positives, and it has low overhead.\", \"title\": \"Securing software by enforcing data-flow integrity\", \"pages\": \"147--160\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"link\": \"http://dl.acm.org/citation.cfm?id=1298455.1298470$\\\\backslash$nhttp://www.usenix.org/event/osdi06/tech/full{\\\\_}papers/castro/castro{\\\\_}html/\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Castro, Costa, Harris/Proceedings of the 7th symposium on Operating systems design and implementation/Castro, Costa, Harris - 2006 - Securing software by enforcing data-flow integrity.pdf:pdf\", \"year\": \"2006\", \"ID\": \"Castro2006\", \"journal\": \"Proceedings of the 7th symposium on Operating systems design and implementation\"}',0,'',''),(43,'gao2015integrity','{\"doi\": \"10.1109/ICAC.2015.34\", \"keyword\": \"Big Data;cloud computing;data integrity;data privacy;Big Data processing;cloud computing technology;dynamic redundancy computation;integrity protection solution;reputation based redundancy computation;Conferences;MapReduce;cloud computing;integrity protection\", \"title\": \"Integrity Protection for Big Data Processing with Dynamic Redundancy Computation\", \"booktitle\": \"Autonomic Computing (ICAC), 2015 IEEE International Conference on\", \"author\": \"Z. Gao and N. Desalvo and P. D. Khoa and S. H. Kim and L. Xu and W. W. Ro and R. M. Verma and W. Shi\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"ID\": \"gao2015integrity\", \"pages\": \"159-160\"}',0,'',''),(44,'karapanos2016verena','{\"author\": \"Karapanos, Nikolaos and Filios, Alexandros and Popa, Raluca Ada and Capkun, Srdjan\", \"booktitle\": \"Proceedings of the 37th IEEE Symposium on Security and Privacy (IEEE S\\\\&P)\", \"title\": \"Verena: End-to-end integrity protection for web applications\", \"ID\": \"karapanos2016verena\", \"year\": \"2016\", \"ENTRYTYPE\": \"inproceedings\"}',0,'',''),(45,'Kil2009','{\"isbn\": \"9781424444212\", \"keyword\": \"dynamic attestation,integrity,remote attestation,runtime,system security,trusted computing\", \"author\": \"Kil, Chongkyung\", \"journal\": \"IEEE/IFIP International Conference on Dependable Systems {\\\\&} Networks\", \"title\": \"Remote Attestation to Dynamic System Properties: Towards Providing Complete System Integrity Evidence\", \"ENTRYTYPE\": \"article\", \"mendeley-groups\": \"Tamperproofing\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Kil/IEEEIFIP International Conference on Dependable Systems {\\\\&} Networks/Kil - 2009 - Remote Attestation to Dynamic System Properties Towards Providing Complete System Integrity Evidence.pdf:pdf\", \"year\": \"2009\", \"ID\": \"Kil2009\", \"pages\": \"115--124\"}',0,'',''),(46,'neisse2011implementing','{\"author\": \"Neisse, Ricardo and Holling, Dominik and Pretschner, Alexander\", \"booktitle\": \"Proceedings of the 2011 11th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing\", \"title\": \"Implementing trust in cloud infrastructures\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2011\", \"organization\": \"IEEE Computer Society\", \"ID\": \"neisse2011implementing\", \"pages\": \"524--533\"}',37,'',''),(47,'sun2015security','{\"author\": \"Sun, Yuqiong and Nanda, Susanta and Jaeger, Trent\", \"booktitle\": \"2015 IEEE 7th International Conference on Cloud Computing Technology and Science (CloudCom)\", \"title\": \"Security-as-a-Service for Microservices-Based Cloud Applications\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"sun2015security\", \"pages\": \"50--57\"}',0,'',''),(48,'pappas2012smashing','{\"author\": \"Pappas, Vasilis and Polychronakis, Michalis and Keromytis, Angelos D\", \"booktitle\": \"2012 IEEE Symposium on Security and Privacy\", \"title\": \"Smashing the gadgets: Hindering return-oriented programming using in-place code randomization\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2012\", \"organization\": \"IEEE\", \"ID\": \"pappas2012smashing\", \"pages\": \"601--615\"}',122,'',''),(49,'pappas2013transparent','{\"author\": \"Pappas, Vasilis and Polychronakis, Michalis and Keromytis, Angelos D\", \"booktitle\": \"Presented as part of the 22nd USENIX Security Symposium (USENIX Security 13)\", \"title\": \"Transparent ROP exploit mitigation using indirect branch tracing\", \"pages\": \"447--462\", \"year\": \"2013\", \"ID\": \"pappas2013transparent\", \"ENTRYTYPE\": \"inproceedings\"}',0,'',''); +/*!40000 ALTER TABLE `paper` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary view structure for view `paper_merged_attributes` +-- + +DROP TABLE IF EXISTS `paper_merged_attributes`; +/*!50001 DROP VIEW IF EXISTS `paper_merged_attributes`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE VIEW `paper_merged_attributes` AS SELECT + 1 AS `id_taxonomy`, + 1 AS `id_paper`, + 1 AS `citation`, + 1 AS `bib`, + 1 AS `atts`, + 1 AS `leaf_atts`*/; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `relation` +-- + +DROP TABLE IF EXISTS `relation`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `relation` ( + `id_relation` int(10) unsigned NOT NULL AUTO_INCREMENT, + `text` varchar(50) NOT NULL, + `comment` varchar(500) DEFAULT NULL, + PRIMARY KEY (`id_relation`), + UNIQUE KEY `id_relation_UNIQUE` (`id_relation`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `relation` +-- + +LOCK TABLES `relation` WRITE; +/*!40000 ALTER TABLE `relation` DISABLE KEYS */; +INSERT INTO `relation` VALUES (1,'Depends','simple dependency'),(2,'DependsDirected','directed dependency'),(3,'InstanceOf','inheritance'),(4,'MemberOf','aggregation'),(5,'PartOf','composition'); +/*!40000 ALTER TABLE `relation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `taxonomy` +-- + +DROP TABLE IF EXISTS `taxonomy`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy` ( + `id_taxonomy` int(11) unsigned NOT NULL AUTO_INCREMENT, + `text` varchar(50) DEFAULT NULL, + PRIMARY KEY (`id_taxonomy`), + UNIQUE KEY `id_taxonomy_UNIQUE` (`id_taxonomy`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `taxonomy` +-- + +LOCK TABLES `taxonomy` WRITE; +/*!40000 ALTER TABLE `taxonomy` DISABLE KEYS */; +INSERT INTO `taxonomy` VALUES (1,'Integrity protection'),(4,'Test'); +/*!40000 ALTER TABLE `taxonomy` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `taxonomy_dimension` +-- + +DROP TABLE IF EXISTS `taxonomy_dimension`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy_dimension` ( + `id_taxonomy_dimension` int(10) unsigned NOT NULL AUTO_INCREMENT, + `id_taxonomy` int(11) NOT NULL, + `id_attribute` int(11) unsigned NOT NULL, + `id_dimension` int(11) unsigned NOT NULL, + PRIMARY KEY (`id_taxonomy_dimension`), + UNIQUE KEY `id_taxonomy_dimension_UNIQUE` (`id_taxonomy_dimension`), + UNIQUE KEY `taxonomy_dimension_id_attribute_UNIQUE` (`id_taxonomy`,`id_attribute`), + KEY `taxonomy_dimension_id_attribute_foreign` (`id_attribute`), + KEY `taxonomy_dimension_id_dimension_foreign` (`id_dimension`), + CONSTRAINT `taxonomy_dimension_id_attribute_foreign` FOREIGN KEY (`id_attribute`) REFERENCES `attribute` (`id_attribute`) ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT `taxonomy_dimension_id_dimension_foreign` FOREIGN KEY (`id_dimension`) REFERENCES `dimension` (`id_dimension`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=103 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `taxonomy_dimension` +-- + +LOCK TABLES `taxonomy_dimension` WRITE; +/*!40000 ALTER TABLE `taxonomy_dimension` DISABLE KEYS */; +INSERT INTO `taxonomy_dimension` VALUES (1,1,2,1),(2,1,3,1),(3,1,4,1),(4,1,6,1),(5,1,7,1),(6,1,8,1),(7,1,9,1),(8,1,10,1),(9,1,11,1),(10,1,12,1),(11,1,13,1),(12,1,15,1),(13,1,16,1),(14,1,17,1),(15,1,18,1),(16,1,19,1),(17,1,21,1),(18,1,22,1),(19,1,23,1),(20,1,24,1),(21,1,25,1),(22,1,28,2),(23,1,29,2),(24,1,30,2),(25,1,31,2),(26,1,33,3),(27,1,34,3),(28,1,36,3),(29,1,37,3),(30,1,39,3),(31,1,40,3),(32,1,42,3),(33,1,43,3),(34,1,45,3),(35,1,46,3),(36,1,47,3),(37,1,48,3),(38,1,49,3),(39,1,51,3),(40,1,52,3),(41,1,53,3),(42,1,54,3),(43,1,55,3),(44,1,56,3),(45,1,58,3),(46,1,59,3),(47,1,60,3),(48,1,61,3),(49,1,63,3),(50,1,64,3),(51,1,65,3),(52,1,66,3),(53,1,68,3),(54,1,69,3),(55,1,70,3),(56,1,5,1),(57,1,71,3),(58,1,72,2),(59,1,73,2),(60,1,78,2),(61,1,79,2),(62,1,80,2),(63,1,81,2),(64,1,82,2),(65,1,83,2),(66,1,84,2),(67,1,85,2),(68,1,86,2),(69,1,87,2),(70,1,88,2),(71,1,89,3),(72,1,90,3),(73,1,91,3),(74,1,92,3),(75,1,93,1),(76,1,94,1),(77,1,95,1),(78,1,1,1),(79,1,14,1),(80,1,20,1),(81,1,26,2),(82,1,27,2),(83,1,32,3),(84,1,35,3),(85,1,38,3),(86,1,41,3),(87,1,44,3),(88,1,50,3),(89,1,57,3),(90,1,62,3),(91,1,67,3),(99,4,112,10),(100,4,113,10),(102,4,115,10); +/*!40000 ALTER TABLE `taxonomy_dimension` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `taxonomy_relation` +-- + +DROP TABLE IF EXISTS `taxonomy_relation`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy_relation` ( + `id_taxonomy_relation` int(11) NOT NULL AUTO_INCREMENT, + `id_taxonomy` int(11) NOT NULL, + `id_src_attribute` int(11) unsigned NOT NULL, + `id_dest_attribute` int(11) unsigned NOT NULL, + `id_relation` int(11) NOT NULL, + `id_dimension` int(10) DEFAULT '0', + `edgeBendPoints` longtext, + PRIMARY KEY (`id_taxonomy_relation`), + UNIQUE KEY `id_taxonomy_relation_UNIQUE` (`id_taxonomy_relation`), + UNIQUE KEY `taxonomy_relation_attributes_UNIQUE` (`id_taxonomy`,`id_src_attribute`,`id_dest_attribute`,`id_dimension`), + KEY `taxonomy_relation_id_src_attribute_foreign` (`id_src_attribute`), + KEY `taxonomy_relation_id_dest_attribute_foreign` (`id_dest_attribute`), + CONSTRAINT `taxonomy_relation_id_dest_attribute_foreign` FOREIGN KEY (`id_dest_attribute`) REFERENCES `attribute` (`id_attribute`) ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT `taxonomy_relation_id_src_attribute_foreign` FOREIGN KEY (`id_src_attribute`) REFERENCES `attribute` (`id_attribute`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=255 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `taxonomy_relation` +-- + +LOCK TABLES `taxonomy_relation` WRITE; +/*!40000 ALTER TABLE `taxonomy_relation` DISABLE KEYS */; +INSERT INTO `taxonomy_relation` VALUES (56,1,2,93,3,1,'{\'x\':245.99999999999997,\'y\':71.99999999999996};{\'x\':246.99999999999997,\'y\':155}'),(57,1,3,93,3,1,'{\'x\':232.36470867292397,\'y\':155.35488918195506}'),(58,1,4,93,3,1,'{\'x\':246.99999999999997,\'y\':234};{\'x\':246.99999999999997,\'y\':155.99999999999994}'),(59,1,5,93,1,1,'{\'x\':99.99999999999991,\'y\':431.9999999999999}'),(60,1,21,20,3,1,'{\'x\':647.1794253666435,\'y\':69.82057517234267};{\'x\':650.6666891188631,\'y\':296.3333098646116}'),(61,1,22,20,3,1,'{\'x\':648.2100417611323,\'y\':143.79604123777884};{\'x\':649.4742480270277,\'y\':296.5104000328528}'),(62,1,23,20,3,1,'{\'x\':648.3866880746442,\'y\':211.6541379857174};{\'x\':649.3213879220136,\'y\':296.6063372240162}'),(63,1,24,20,3,1,'{\'x\':651.1102947476124,\'y\':366.7756595403927};{\'x\':650.602317217686,\'y\':297.7944639029661}'),(64,1,25,20,3,1,'{\'x\':651.0420523241444,\'y\':435.7642012738366};{\'x\':649.9017992903628,\'y\':297.80051601778246}'),(65,1,94,20,3,1,'{\'x\':631.5153552122035,\'y\':296.9184622110439}'),(66,1,6,21,1,1,'{\'x\':837.0000000000001,\'y\':168.00000000000003};{\'x\':835,\'y\':70.00000000000003}'),(67,1,6,22,1,1,'{\'x\':836.0000000000002,\'y\':169};{\'x\':836.0000000000002,\'y\':144}'),(68,1,6,94,1,1,'{\'x\':836.9999999999999,\'y\':169.0000000000001};{\'x\':837.9999999999997,\'y\':298.00000000000017}'),(69,1,6,5,5,1,'{\'x\':1019.9999999999998,\'y\':231.00000000000006};{\'x\':926,\'y\':231};{\'x\':929.9999999999997,\'y\':487};{\'x\':483.99999999999994,\'y\':482};{\'x\':480.9999999999998,\'y\':435}'),(70,1,7,5,5,1,'{\'x\':926.9999999999998,\'y\':319};{\'x\':929,\'y\':486};{\'x\':482.99999999999994,\'y\':482};{\'x\':482.0000000000001,\'y\':434.99999999999994}'),(71,1,8,5,5,1,'{\'x\':929,\'y\':514.9999999999999};{\'x\':929.0000000000002,\'y\':487};{\'x\':481.9999999999999,\'y\':481};{\'x\':480.9999999999999,\'y\':434}'),(72,1,9,7,3,1,'{\'x\':1474,\'y\':318}'),(73,1,10,7,3,1,'{\'x\':1473.7949380792272,\'y\':317.9784915175459}'),(74,1,13,8,3,1,'{\'x\':1259.2718899100228,\'y\':518.0659196311467}'),(75,1,11,8,3,1,'{\'x\':1361,\'y\':659};{\'x\':1360,\'y\':518.9999999999998}'),(76,1,12,11,3,1,'{\'x\':1549.9293606366093,\'y\':660.4788195267564}'),(77,1,7,24,1,1,'{\'x\':1036,\'y\':366.99999999999994}'),(78,1,7,25,1,1,'{\'x\':1036,\'y\':443.0000000000001}'),(79,1,8,24,1,1,'{\'x\':1035,\'y\':368.00000000000006}'),(80,1,8,25,1,1,'{\'x\':1035,\'y\':444};{\'x\':886.7188837054866,\'y\':441.4353930845009}'),(81,1,5,14,1,1,'{\'x\':328.1392281443622,\'y\':553.7668810710022}'),(82,1,15,14,3,1,'{\'x\':506.9999999999999,\'y\':603};{\'x\':506.99999999999994,\'y\':673.0000000000001}'),(83,1,95,14,3,1,'{\'x\':505.99999999999994,\'y\':525};{\'x\':506.99999999999994,\'y\':672.9999999999999}'),(84,1,17,14,3,1,'{\'x\':459.5797568920929,\'y\':673.5251347098841}'),(85,1,18,14,3,1,'{\'x\':507.9999999999999,\'y\':752};{\'x\':506.99999999999994,\'y\':674}'),(86,1,19,14,3,1,'{\'x\':509,\'y\':825};{\'x\':507,\'y\':673}'),(87,1,79,80,4,2,'{\'x\':119.21985912716738,\'y\':191.88190867508243};{\'x\':202.21985912716733,\'y\':190.88190867508223}'),(88,1,81,80,4,2,'{\'x\':241.21985912716747,\'y\':190.88190867508288};{\'x\':202.21985912716724,\'y\':190.881908675083}'),(89,1,82,80,4,2,'{\'x\':338.84847248584714,\'y\':191.5349713095123};{\'x\':203.21985912716718,\'y\':191.8819086750825}'),(90,1,83,80,4,2,'{\'x\':201.9121348988953,\'y\':310.9945330830352}'),(91,1,80,72,5,2,'{\'x\':303.5899151926502,\'y\':254.52141900969116}'),(92,1,73,72,5,2,'{\'x\':475.1869873177485,\'y\':311.500841992063}'),(93,1,84,72,5,2,'{\'x\':474.97515501915564,\'y\':327.65226755612076}'),(94,1,27,72,5,2,'{\'x\':749.7926083176478,\'y\':255.86123090994874}'),(95,1,28,27,3,2,'{\'x\':814.84152913225,\'y\':196.7518137564864};{\'x\':959.8415291322498,\'y\':196.75181375648648}'),(96,1,29,27,3,2,'{\'x\':959.5600319095079,\'y\':198.8499108543131}'),(97,1,30,27,3,2,'{\'x\':1103.8484724858467,\'y\':198.53497130951226};{\'x\':959.8415291322493,\'y\':197.7518137564864}'),(98,1,88,84,3,2,'{\'x\':1336.8484724858472,\'y\':396.53497130951206};{\'x\':728.0668472804629,\'y\':394.8950055421265}'),(99,1,31,27,3,2,'{\'x\':1307.8415291322503,\'y\':197.75181375648594};{\'x\':959.8415291322494,\'y\':198.75181375648614}'),(100,1,26,73,3,2,'{\'x\':474.9256826175398,\'y\':411.481394041331}'),(101,1,85,84,3,2,'{\'x\':728.34057509258,\'y\':391.10245018006844}'),(102,1,86,84,3,2,'{\'x\':919.8484724858474,\'y\':395.5349713095123};{\'x\':729.0743617269079,\'y\':394.50376596600955}'),(103,1,87,84,3,2,'{\'x\':1111.8484724858467,\'y\':396.534971309512};{\'x\':728.6180005479822,\'y\':393.9837999791198}'),(104,1,78,27,3,2,'{\'x\':1024.842000575281,\'y\':256.71427508485874}'),(105,1,57,32,5,3,'{\'x\':610.0486645311152,\'y\':398.21495617920175}'),(106,1,62,32,5,3,'{\'x\':822.9281806900138,\'y\':457.621769109086}'),(107,1,67,32,5,3,'{\'x\':1268,\'y\':473.9999999999998};{\'x\':824,\'y\':474}'),(108,1,35,32,5,3,'{\'x\':532.9999999999999,\'y\':326};{\'x\':533,\'y\':397.9999999999998}'),(109,1,38,32,5,3,'{\'x\':400.99999999999983,\'y\':274.99999999999994};{\'x\':581,\'y\':276};{\'x\':822.9999999999999,\'y\':278}'),(110,1,41,32,5,3,'{\'x\':580,\'y\':275.0000000000002};{\'x\':823,\'y\':278.0000000000001}'),(111,1,44,32,5,3,'{\'x\':822.5010482949103,\'y\':306.5069859296839}'),(112,1,50,32,5,3,'{\'x\':1055,\'y\':276.99999999999994};{\'x\':823.0000000000002,\'y\':277.99999999999955}'),(113,1,33,32,3,3,'{\'x\':987,\'y\':323};{\'x\':988,\'y\':397.00000000000006}'),(114,1,34,32,3,3,'{\'x\':943.265277262353,\'y\':397.77027757769054}'),(115,1,58,57,3,3,'{\'x\':208.99999999999994,\'y\':589};{\'x\':239.9999999999999,\'y\':589.0000000000001};{\'x\':390,\'y\':589.0000000000002}'),(116,1,59,57,3,3,'{\'x\':295.99999999999994,\'y\':589};{\'x\':389.99999999999994,\'y\':589.0000000000001}'),(117,1,60,57,3,3,'{\'x\':391.2585382026573,\'y\':521.8905200061671}'),(118,1,61,57,3,3,'{\'x\':461.00000000000006,\'y\':590.0000000000007};{\'x\':389.9999999999999,\'y\':590}'),(119,1,71,62,3,3,'{\'x\':703.9999999999997,\'y\':593.0000000000002};{\'x\':823.9999999999995,\'y\':594}'),(120,1,89,62,3,3,'{\'x\':823.7061746076718,\'y\':580.2489015044896}'),(121,1,63,62,3,3,'{\'x\':909,\'y\':595};{\'x\':823.0000000000007,\'y\':594.0000000000001}'),(122,1,64,62,3,3,'{\'x\':980,\'y\':596};{\'x\':980.9485620377977,\'y\':596.0121610517666};{\'x\':824.0000000000002,\'y\':594.0000000000003}'),(123,1,65,62,3,3,'{\'x\':1053,\'y\':596.9999999999999};{\'x\':824.0000000000005,\'y\':593.9999999999995}'),(124,1,70,67,3,3,'{\'x\':1203,\'y\':616.0000000000003};{\'x\':1272.9999999999993,\'y\':616.9999999999994}'),(125,1,69,67,3,3,'{\'x\':1344.0712099571524,\'y\':615.984697000612};{\'x\':1345.056723117731,\'y\':615.9706182411755};{\'x\':1273.0000000000011,\'y\':616.9999999999995}'),(126,1,90,67,3,3,'{\'x\':1568.9999999999998,\'y\':617.9999999999999};{\'x\':1274.0000000000002,\'y\':615}'),(127,1,36,35,3,3,'{\'x\':113.99999999999997,\'y\':205};{\'x\':211.00000000000003,\'y\':204.99999999999997};{\'x\':211.0000000000001,\'y\':326}'),(128,1,37,35,3,3,'{\'x\':281.759866540906,\'y\':325.34211900316063}'),(129,1,39,38,3,3,'{\'x\':280.9999999999997,\'y\':151.99999999999983};{\'x\':402.00000000000006,\'y\':152}'),(130,1,92,38,3,3,'{\'x\':401.9286974579407,\'y\':153.4982983659064}'),(131,1,42,41,3,3,'{\'x\':579,\'y\':95.00000000000048}'),(132,1,43,41,3,3,'{\'x\':577.9999999999999,\'y\':95.00000000000018}'),(133,1,45,44,3,3,'{\'x\':770.6061590568141,\'y\':148.2083477327829};{\'x\':823.469182439591,\'y\':148.94299868851013}'),(134,1,46,44,3,3,'{\'x\':889,\'y\':147.99999999999997};{\'x\':822.9999999999999,\'y\':148.00000000000114}'),(135,1,47,44,3,3,'{\'x\':1039,\'y\':146.99999999999972};{\'x\':824.0794455437408,\'y\':149.13048301003042}'),(136,1,48,44,3,3,'{\'x\':1217.0000000000005,\'y\':144.99999999999986};{\'x\':824.0000000000002,\'y\':149.99999999999994}'),(137,1,49,44,3,3,'{\'x\':1392,\'y\':143.0000000000001};{\'x\':821.8473473305276,\'y\':150.10812131452286}'),(138,1,51,50,3,3,'{\'x\':1293.616778310066,\'y\':235.18370025934934}'),(139,1,52,50,3,3,'{\'x\':1442,\'y\':313.9999999999999};{\'x\':1441.0000000000007,\'y\':237.00000000000003}'),(140,1,53,50,3,3,'{\'x\':1444,\'y\':403.9999999999999};{\'x\':1439.999999999999,\'y\':236.99999999999977}'),(141,1,54,50,3,3,'{\'x\':1445.9999999999998,\'y\':494.00000000000017};{\'x\':1440.9999999999995,\'y\':236.99999999999972}'),(142,1,55,50,3,3,'{\'x\':1448,\'y\':571.9999999999998};{\'x\':1440.0000000000002,\'y\':237}'),(143,1,91,50,3,3,'{\'x\':1439,\'y\':159};{\'x\':1440.0000000000005,\'y\':236.99999999999997}'),(232,1,32,84,2,4,'{\'x\':-988.2359632913441,\'y\':-951.8103241540371};{\'x\':-319.4815098371267,\'y\':-953.0186736286499}'),(233,1,32,20,2,4,'{\'x\':-854.6013207506861,\'y\':-767.1148771605798}'),(234,1,32,27,2,4,'{\'x\':-988.3387121979307,\'y\':-671.6765206578543};{\'x\':-974.8746142326793,\'y\':-671.6633472599729};{\'x\':-881.6030760219256,\'y\':-671.6327409718069};{\'x\':-880.3387121979304,\'y\':-533.0098539911878};{\'x\':-323.00537886459705,\'y\':-530.3431873245208}'),(235,1,32,67,1,4,'{\'x\':-1112.6030760219257,\'y\':-766.6327409718037};{\'x\':-1109.4158110522417,\'y\':-280.0665701535794}'),(236,1,57,20,2,4,'{\'x\':-923.4018092467566,\'y\':-621.137974980062};{\'x\':-922.6030760219257,\'y\':-697.6327409718073};{\'x\':-779.605755831528,\'y\':-698.2517769899473};{\'x\':-691.6030760219255,\'y\':-697.6327409718069}'),(237,1,62,32,2,4,'{\'x\':-1064.0866850676534,\'y\':-384.47223943593764};{\'x\':-1063.6030760219257,\'y\':-766.6327409718072}'),(238,1,93,14,1,4,'{\'x\':-808.3387121979307,\'y\':-891.6765206622291};{\'x\':-808.6389747768841,\'y\':-281.22937748887347}'),(239,1,5,93,2,4,'{\'x\':-706.6030760219257,\'y\':-666.6327409718074};{\'x\':-545.6030760219257,\'y\':-665.6327409718065};{\'x\':-547.4698322288425,\'y\':-875.642814249965};{\'x\':-547.6030760219257,\'y\':-890.6327409718065}'),(240,1,84,32,2,4,'{\'x\':-319.94685346915963,\'y\':-837.0064609626666};{\'x\':-987.5115317947335,\'y\':-834.3519942169112}'),(241,1,80,72,2,4,'{\'x\':-181.6030760219259,\'y\':-623.6327409718075};{\'x\':-181.6030760219258,\'y\':-776.6327409718083}'),(242,1,27,5,2,4,'{\'x\':-369.47753487234206,\'y\':-482.1635275661221};{\'x\':-706.6030760219259,\'y\':-483.6327409718072}'),(243,1,27,32,2,4,'{\'x\':-403.0053788645975,\'y\':-482.3431873245204};{\'x\':-403.00537886459716,\'y\':-214.34318732452073};{\'x\':-1137.672045531264,\'y\':-214.34318732452084};{\'x\':-1137.6720455312643,\'y\':-767.6765206578542}'),(244,1,73,27,2,4,'{\'x\':-258.60307602192586,\'y\':-284.63274097180545};{\'x\':-258.60899150214834,\'y\':-483.8567189443867}'),(245,1,84,5,2,4,'{\'x\':-485.60307602192574,\'y\':-890.632740971807};{\'x\':-485.9305355073303,\'y\':-696.4536368161712};{\'x\':-485.09227442745885,\'y\':-608.4362234296373}'),(246,1,23,23,1,1,NULL),(247,1,23,6,1,1,'{\'x\':838.0000000000002,\'y\':211.00000000000006};{\'x\':836.9999999999999,\'y\':169.00000000000003}'),(248,1,68,67,3,3,'{\'x\':1451.9999999999998,\'y\':616.9999999999998};{\'x\':1273.9999999999998,\'y\':615.9999999999999}'),(249,4,112,112,1,9,NULL),(251,4,112,113,2,9,'{\'x\':-955.3030108066159,\'y\':-724.6961329707617}'),(253,4,112,115,3,9,'{\'x\':-1057.1825531615036,\'y\':-613.1203657702779}'),(254,4,113,115,3,9,'{\'x\':-853.85901839241,\'y\':-612.0274329778158}'); +/*!40000 ALTER TABLE `taxonomy_relation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `taxonomy_relation_annotation` +-- + +DROP TABLE IF EXISTS `taxonomy_relation_annotation`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy_relation_annotation` ( + `id_taxonomy` int(11) NOT NULL, + `id_taxonomy_relation` int(11) NOT NULL, + `annotation` longtext, + PRIMARY KEY (`id_taxonomy_relation`), + UNIQUE KEY `id_taxonomy_relation_annotation_UNIQUE` (`id_taxonomy_relation`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `taxonomy_relation_annotation` +-- + +LOCK TABLES `taxonomy_relation_annotation` WRITE; +/*!40000 ALTER TABLE `taxonomy_relation_annotation` DISABLE KEYS */; +INSERT INTO `taxonomy_relation_annotation` VALUES (1,232,'Impedes'),(1,233,'Transforms'),(1,234,'Mitigates or raises the bar'),(1,236,'Affects'),(1,237,'Strengthens'),(1,239,'Contains'),(1,240,'Identifies'),(1,241,'Support'),(1,242,'Tampers with'),(1,243,'Tampers with'),(1,244,'Executes'),(1,245,'Identifies asset'),(4,251,'impedes'); +/*!40000 ALTER TABLE `taxonomy_relation_annotation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `user` +-- + +DROP TABLE IF EXISTS `user`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `user` ( + `email` varchar(128) NOT NULL, + `password` varchar(128) NOT NULL, + `admin` tinyint(1) DEFAULT '0', + `taxonomies` varchar(500) DEFAULT '', + PRIMARY KEY (`email`), + UNIQUE KEY `email_UNIQUE` (`email`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `user` +-- + +LOCK TABLES `user` WRITE; +/*!40000 ALTER TABLE `user` DISABLE KEYS */; +INSERT INTO `user` VALUES ('222@df.de','222',0,''),('felixhuber245@gmx.de','123',0,''),('felixhuber2465@gmx.de','123',0,''),('felixhuber2@gmx.de','123',1,''),('felixhuber4@gmx.de','123',0,''),('felixhuber5@gmx.de','123',0,''),('felixhuber62@gmx.de','123',0,''),('felixhuber6@gmx.de','123',0,''),('felixhuber7@gmx.de','123',0,''),('test3434@gmx.de','234',0,''),('test@gmx.de','123',0,''); +/*!40000 ALTER TABLE `user` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Dumping routines for database 'classification' +-- +/*!50003 DROP PROCEDURE IF EXISTS `insertallchildrenperattribute` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`localhost` PROCEDURE `insertallchildrenperattribute`(taxonomyId INT(11)) +BEGIN + DECLARE cursor_id_attribute INT(11); + DECLARE cursor_text VARCHAR(50); + DECLARE done INT DEFAULT FALSE; + DECLARE cursor_i CURSOR FOR SELECT id_attribute, text FROM attribute; + DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + DELETE FROM allchildrenperattribute WHERE id_taxonomy = taxonomyId; + OPEN cursor_i; + read_loop: LOOP + FETCH cursor_i INTO cursor_id_attribute, cursor_text; + IF done THEN + LEAVE read_loop; + END IF; + INSERT IGNORE INTO allchildrenperattribute(id_attribute, id_taxonomy, text, children) VALUES(cursor_id_attribute, taxonomyId, cursor_text, (SELECT (CASE WHEN b.children IS NULL THEN CAST(cursor_id_attribute AS CHAR(50)) ELSE CONCAT(CAST(cursor_id_attribute AS CHAR(50)), ",", b.children) END) AS children FROM (SELECT GROUP_CONCAT(lv SEPARATOR ',') AS children FROM (SELECT @pv:=(SELECT GROUP_CONCAT(DISTINCT relation1.id_src_attribute SEPARATOR ',') FROM taxonomy_relation AS relation1 WHERE relation1.id_taxonomy = taxonomyId AND relation1.id_relation > 2 AND FIND_IN_SET(relation1.id_dest_attribute, @pv)) AS lv FROM taxonomy_relation AS relation2 JOIN (SELECT @pv:=cursor_id_attribute) tmp ON (relation2.id_taxonomy = taxonomyId)) a) b)); + END LOOP; + CLOSE cursor_i; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `insertallparentsperattribute` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`localhost` PROCEDURE `insertallparentsperattribute`(taxonomyId INT(11)) +BEGIN + DECLARE cursor_id_attribute INT(11); + DECLARE cursor_text VARCHAR(50); + DECLARE done INT DEFAULT FALSE; + DECLARE cursor_i CURSOR FOR SELECT id_attribute, text FROM attribute; + DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + DELETE FROM allparentsperattribute WHERE id_taxonomy = taxonomyId; + OPEN cursor_i; + read_loop: LOOP + FETCH cursor_i INTO cursor_id_attribute, cursor_text; + IF done THEN + LEAVE read_loop; + END IF; + INSERT IGNORE INTO allparentsperattribute(id_attribute, id_taxonomy, text, parents) VALUES(cursor_id_attribute, taxonomyId, cursor_text, (SELECT (CASE WHEN b.parents IS NULL THEN "" ELSE b.parents END) AS parents FROM (SELECT GROUP_CONCAT(lv SEPARATOR ',') AS parents FROM (SELECT @pv:=(SELECT GROUP_CONCAT(DISTINCT parent.text SEPARATOR ',') FROM taxonomy_relation AS relation1 INNER JOIN attribute as parent ON (relation1.id_dest_attribute = parent.id_attribute AND parent.id_taxonomy = taxonomyId) WHERE relation1.id_taxonomy = taxonomyId AND relation1.id_relation > 2 AND FIND_IN_SET((SELECT DISTINCT text FROM attribute WHERE id_attribute = relation1.id_src_attribute AND id_taxonomy = taxonomyId), @pv)) AS lv FROM taxonomy_relation JOIN (SELECT @pv:=text FROM attribute WHERE id_attribute = cursor_id_attribute AND id_taxonomy = taxonomyId) tmp) a) b)); + END LOOP; + CLOSE cursor_i; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; + +-- +-- Final view structure for view `paper_merged_attributes` +-- + +/*!50001 DROP VIEW IF EXISTS `paper_merged_attributes`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8 */; +/*!50001 SET character_set_results = utf8 */; +/*!50001 SET collation_connection = utf8_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ +/*!50001 VIEW `paper_merged_attributes` AS select 1 AS `id_taxonomy`,1 AS `id_paper`,1 AS `citation`,1 AS `bib`,1 AS `atts`,1 AS `leaf_atts` */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2018-02-01 16:53:20 diff --git a/SQLSchema/dumps/24_01_dump.sql b/SQLSchema/dumps/24_01_dump.sql new file mode 100644 index 0000000..55c167a --- /dev/null +++ b/SQLSchema/dumps/24_01_dump.sql @@ -0,0 +1,792 @@ +-- MySQL dump 10.13 Distrib 5.7.17, for Win64 (x86_64) +-- +-- Host: 127.0.0.1 Database: classification +-- ------------------------------------------------------ +-- Server version 5.7.20-log + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `allchildrenperattribute` +-- + +DROP TABLE IF EXISTS `allchildrenperattribute`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `allchildrenperattribute` ( + `id_attribute` int(10) unsigned NOT NULL, + `id_taxonomy` int(11) unsigned NOT NULL, + `text` varchar(50) NOT NULL, + `children` longtext, + PRIMARY KEY (`id_attribute`), + UNIQUE KEY `allchildrenperattribute_id_attribute_UNIQUE` (`id_attribute`), + KEY `allchildrenperattribute_id_taxonomy_foreign` (`id_taxonomy`), + CONSTRAINT `allchildrenperattribute_id_taxonomy_foreign` FOREIGN KEY (`id_taxonomy`) REFERENCES `taxonomy` (`id_taxonomy`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `allchildrenperattribute` +-- + +LOCK TABLES `allchildrenperattribute` WRITE; +/*!40000 ALTER TABLE `allchildrenperattribute` DISABLE KEYS */; +INSERT INTO `allchildrenperattribute` VALUES (1,1,'Integrity Protection Assets','1'),(2,1,'Behavior','2'),(3,1,'Data','3'),(4,1,'Data and behavior','4'),(5,1,'Representation','5,6,7,8,9,10,11,13,12'),(6,1,'Static','6'),(7,1,'In memory','7,9,10'),(8,1,'In execution','8,11,13,12'),(9,1,'Code invariants','9'),(10,1,'Data invariants','10'),(11,1,'Trace','11,12'),(12,1,'Timed trace','12'),(13,1,'HW counters','13'),(14,1,'Granularity','14,15,17,18,19,95'),(15,1,'Instructions','15'),(16,1,'BB','16'),(17,1,'Function','17'),(18,1,'Slice','18'),(19,1,'Application','19'),(20,1,'Lifecycle activity','20,21,22,23,24,25,94'),(21,1,'Pre-compile','21'),(22,1,'Compile','22'),(23,1,'Post-compile','23'),(24,1,'Load','24'),(25,1,'Run','25'),(26,1,'Not root','26'),(27,1,'Attack','27,28,29,30,31,78'),(28,1,'Binary ','28'),(29,1,'Process memory','29'),(30,1,'Runtime data','30'),(31,1,'Control flow','31'),(32,1,'Measure','32,33,34,35,38,41,44,50,57,62,67,36,37,39,42,43,45,46,47,48,49,51,52,53,54,55,58,59,60,61,63,64,65,69,70,71,89,90,91,92'),(33,1,'Local','33'),(34,1,'Remote','34'),(35,1,'Monitor','35,36,37'),(36,1,'State inspection','36'),(37,1,'Introspection','37'),(38,1,'Response','38,39,92'),(39,1,'Proactive','39'),(40,1,'Postmortem','40'),(41,1,'Transformation','41,42,43'),(42,1,'Manual','42'),(43,1,'Automatic','43'),(44,1,'Check','44,45,46,47,48,49'),(45,1,'Checksum','45'),(46,1,'Signature','46'),(47,1,'Equation eval','47'),(48,1,'Majority vote','48'),(49,1,'Access control','49'),(50,1,'Hardening','50,51,52,53,54,55,91'),(51,1,'Cyclic checks','51'),(52,1,'Mutation','52'),(53,1,'Code concealment','53'),(54,1,'Cloning','54'),(55,1,'Layered interpretation','55'),(56,1,'Block chain','56'),(57,1,'Overhead','57,58,59,60,61'),(58,1,'Fair','58'),(59,1,'Medium','59'),(60,1,'High','60'),(61,1,'N/A','61'),(62,1,'Trust anchor','62,63,64,65,71,89'),(63,1,'TPM','63'),(64,1,'SGX','64'),(65,1,'Other','65'),(66,1,'None','66'),(67,1,'Protection level','67,69,70,90'),(68,1,'Internal','68'),(69,1,'External','69'),(70,1,'Hypervisor','70'),(71,1,'Software','71'),(72,1,'Reverse engineering','72,27,73,80,84,26,28,29,30,31,78,79,81,82,83,85,86,87,88'),(73,1,'Attacker','73,26'),(78,1,'Call interposition','78'),(79,1,'Disassembler','79'),(80,1,'Tools','80,79,81,82,83'),(81,1,'Debugger','81'),(82,1,'Tracer','82'),(83,1,'Emulator','83'),(84,1,'Discovery','84,85,86,87,88'),(85,1,'Pattern matching','85'),(86,1,'Taint analysis','86'),(87,1,'Graph-based analysis','87'),(88,1,'Symbolic execution','88'),(89,1,'Dongle','89'),(90,1,'Self-check','90'),(91,1,'Hash chain','91'),(92,1,'Reactive','92'),(93,1,'Asset','93,2,3,4'),(94,1,'Link','94'),(95,1,'Basic block','95'); +/*!40000 ALTER TABLE `allchildrenperattribute` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `allparentsperattribute` +-- + +DROP TABLE IF EXISTS `allparentsperattribute`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `allparentsperattribute` ( + `id_attribute` int(11) unsigned NOT NULL, + `id_taxonomy` int(11) unsigned NOT NULL, + `text` varchar(50) NOT NULL, + `parents` longtext, + PRIMARY KEY (`id_attribute`), + UNIQUE KEY `allparentsperattribute_id_attribute_UNIQUE` (`id_attribute`), + KEY `allparentsperattribute_id_taxonomy_foreign` (`id_taxonomy`), + CONSTRAINT `allparentsperattribute_id_taxonomy_foreign` FOREIGN KEY (`id_taxonomy`) REFERENCES `taxonomy` (`id_taxonomy`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `allparentsperattribute` +-- + +LOCK TABLES `allparentsperattribute` WRITE; +/*!40000 ALTER TABLE `allparentsperattribute` DISABLE KEYS */; +INSERT INTO `allparentsperattribute` VALUES (1,1,'Integrity Protection Assets',''),(2,1,'Behavior','Asset'),(3,1,'Data','Asset'),(4,1,'Data and behavior','Asset'),(5,1,'Representation',''),(6,1,'Static','Representation'),(7,1,'In memory','Representation'),(8,1,'In execution','Representation'),(9,1,'Code invariants','In memory,Representation'),(10,1,'Data invariants','In memory,Representation'),(11,1,'Trace','In execution,Representation'),(12,1,'Timed trace','Trace,In execution,Representation'),(13,1,'HW counters','In execution,Representation'),(14,1,'Granularity',''),(15,1,'Instructions','Granularity'),(16,1,'BB',''),(17,1,'Function','Granularity'),(18,1,'Slice','Granularity'),(19,1,'Application','Granularity'),(20,1,'Lifecycle activity',''),(21,1,'Pre-compile','Lifecycle activity'),(22,1,'Compile','Lifecycle activity'),(23,1,'Post-compile','Lifecycle activity'),(24,1,'Load','Lifecycle activity'),(25,1,'Run','Lifecycle activity'),(26,1,'Not root','Attacker,Reverse engineering'),(27,1,'Attack','Reverse engineering'),(28,1,'Binary ','Attack,Reverse engineering'),(29,1,'Process memory','Attack,Reverse engineering'),(30,1,'Runtime data','Attack,Reverse engineering'),(31,1,'Control flow','Attack,Reverse engineering'),(32,1,'Measure',''),(33,1,'Local','Measure'),(34,1,'Remote','Measure'),(35,1,'Monitor','Measure'),(36,1,'State inspection','Monitor,Measure'),(37,1,'Introspection','Monitor,Measure'),(38,1,'Response','Measure'),(39,1,'Proactive','Response,Measure'),(40,1,'Postmortem',''),(41,1,'Transformation','Measure'),(42,1,'Manual','Transformation,Measure'),(43,1,'Automatic','Transformation,Measure'),(44,1,'Check','Measure'),(45,1,'Checksum','Check,Measure'),(46,1,'Signature','Check,Measure'),(47,1,'Equation eval','Check,Measure'),(48,1,'Majority vote','Check,Measure'),(49,1,'Access control','Check,Measure'),(50,1,'Hardening','Measure'),(51,1,'Cyclic checks','Hardening,Measure'),(52,1,'Mutation','Hardening,Measure'),(53,1,'Code concealment','Hardening,Measure'),(54,1,'Cloning','Hardening,Measure'),(55,1,'Layered interpretation','Hardening,Measure'),(56,1,'Block chain',''),(57,1,'Overhead','Measure'),(58,1,'Fair','Overhead,Measure'),(59,1,'Medium','Overhead,Measure'),(60,1,'High','Overhead,Measure'),(61,1,'N/A','Overhead,Measure'),(62,1,'Trust anchor','Measure'),(63,1,'TPM','Trust anchor,Measure'),(64,1,'SGX','Trust anchor,Measure'),(65,1,'Other','Trust anchor,Measure'),(66,1,'None',''),(67,1,'Protection level','Measure'),(68,1,'Internal',''),(69,1,'External','Protection level,Measure'),(70,1,'Hypervisor','Protection level,Measure'),(71,1,'Software','Trust anchor,Measure'),(72,1,'Reverse engineering',''),(73,1,'Attacker','Reverse engineering'),(78,1,'Call interposition','Attack,Reverse engineering'),(79,1,'Disassembler','Tools,Reverse engineering'),(80,1,'Tools','Reverse engineering'),(81,1,'Debugger','Tools,Reverse engineering'),(82,1,'Tracer','Tools,Reverse engineering'),(83,1,'Emulator','Tools,Reverse engineering'),(84,1,'Discovery','Reverse engineering'),(85,1,'Pattern matching','Discovery,Reverse engineering'),(86,1,'Taint analysis','Discovery,Reverse engineering'),(87,1,'Graph-based analysis','Discovery,Reverse engineering'),(88,1,'Symbolic execution','Discovery,Reverse engineering'),(89,1,'Dongle','Trust anchor,Measure'),(90,1,'Self-check','Protection level,Measure'),(91,1,'Hash chain','Hardening,Measure'),(92,1,'Reactive','Response,Measure'),(93,1,'Asset',''),(94,1,'Link','Lifecycle activity'),(95,1,'Basic block','Granularity'); +/*!40000 ALTER TABLE `allparentsperattribute` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `articles` +-- + +DROP TABLE IF EXISTS `articles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `articles` ( + `ArticleId` int(11) NOT NULL AUTO_INCREMENT, + `Title` varchar(500) NOT NULL, + `year` varchar(4) DEFAULT NULL, + `cited_by` varchar(100) DEFAULT NULL, + `Keywords` varchar(2000) DEFAULT NULL, + `Abstract` varchar(10000) DEFAULT NULL, + `Journal` varchar(500) DEFAULT NULL, + `ResearchId` int(11) NOT NULL, + `Authors` varchar(1000) NOT NULL, + `File` varchar(200) NOT NULL, + `Source` varchar(50) NOT NULL, + `Enabled` bit(1) NOT NULL DEFAULT b'0', + PRIMARY KEY (`ArticleId`) +) ENGINE=InnoDB AUTO_INCREMENT=2355 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `articles` +-- + +LOCK TABLES `articles` WRITE; +/*!40000 ALTER TABLE `articles` DISABLE KEYS */; +INSERT INTO `articles` VALUES (1,'','2012','0','','Proceedings of the 2Nd International Workshop on Adaptive Services for the Future Internet and 6th International Workshop on Web APIs and Service Mashups','',2,'','acm/bpel security.csv','acm','\0'),(2,'Cloud-Assisted IoT-Based SCADA Systems Security: A Review of the State of the Art and Future Challenges','2016','','APT;Industrial Control System;Internet of Things (IoT);NIST;PRECYSE;SOA;Supervisory Control and Data Acquisition;industrial control system;supervisory control and data acquisition system','Industrial systems always prefer to reduce their operational expenses. To support such reductions, they need solutions that are capable of providing stability, fault tolerance, and flexibility. One such solution for industrial systems is cyber physical system (CPS) integration with the Internet of Things (IoT) utilizing cloud computing services. These CPSs can be considered as smart industrial systems, with their most prevalent applications in smart transportation, smart grids, smart medical and eHealthcare systems, and many more. These industrial CPSs mostly utilize supervisory control and data acquisition (SCADA) systems to control and monitor their critical infrastructure (CI). For example, WebSCADA is an application used for smart medical technologies, making improved patient monitoring and more timely decisions possible. The focus of the study presented in this paper is to highlight the security challenges that the industrial SCADA systems face in an IoT-cloud environment. Classical SCADA systems are already lacking in proper security measures; however, with the integration of complex new architectures for the future Internet based on the concepts of IoT, cloud computing, mobile wireless sensor networks, and so on, there are large issues at stakes in the security and deployment of these classical systems. Therefore, the integration of these future Internet concepts needs more research effort. This paper, along with highlighting the security challenges of these CI\'s, also provides the existing best practices and recommendations for improving and maintaining security. Finally, this paper briefly describes future research directions to secure these critical CPSs and help the research community in identifying the research gaps in this regard.','IEEE Access',1,'A. Sajid; H. Abbas; K. Saleem','ieee/soa security.csv','ieee',''),(3,'Web Services and Formal Methods - 8th International Workshop, WS-FM 2011, Revised Selected Papers','2012','','','The proceedings contain 10 papers. The topics discussed include: understanding distributed services through the π-calculus; reliable contracts for unreliable half-duplex communications; behavior based service composition; compatibility of data-centric web services; time and exceptional behavior in multiparty structured interactions; toward design, modeling and analysis of dynamic workflow reconfigurations: a process algebra perspective; an operational semantics of BPEL orchestrations integrating web services resource framework; design of a BPEL verification tool; applying process analysis to the Italian egovernment enterprise architecture; and domain-specific multi-modeling of security concerns in service-oriented architectures.','',2,'[No author name available]','scopus/bpel security.csv','scopus','\0'),(4,'Research Challenges for Business Process Models at Run-Time','2014','1',' run-time models business process models business process management adaptive systems business process optimisation','Abstract Today’s fast and competitive markets require businesses to react faster to changes in its environment, and sometimes even before the changes actually happen. Changes can occur on almost every level, e.g. change in demand of customers, change of law, or change of the corporate strategy. Not adapting to these changes can result in financial and legal consequences for any business organisation. IT-controlled business processes are essential parts of modern organisations which motivates why business processes are required to efficiently adapt to these changes in a quick and flexible way. This requirement suggests a more dynamic handling of business processes and their models, moving from design-time business process models to run-time business process models. One general approach to address this problem is provided by the community of models@run.time , in which models reflect the system’s current state at any point in time and allow immediate reasoning and adaptation mechanisms. This paper examines the potential role of business process models at run-time by: (1) discussing the state-of the art of both, business process modelling and models@run.time, (2) reflecting on the nature of business processes at run-time, and (3) most importantly, highlighting key research challenges that need addressing to make this step.','',2,'David RedlichGordon BlairAwais RashidThomas MolkaWasif Gilani','springer/bpel security.csv','springer',''),(5,'Integration Adapter Modeling','2015','0',' Business Process Model and Notation (BPMN) Conceptual modeling Language design Message endpoints Quality of service','Abstract Integration Adapters are a fundamental part of an integration system, since they provide (business) applications access to its messaging channel. However, their modeling and configuration remain under-represented. In previous work, the integration control and data flow syntax and semantics have been expressed in the Business Process Model and Notation (BPMN) as a semantic model for message-based integration, while adapter and the related quality of service modeling were left for further studies. In this work we specify common adapter capabilities and derive general modeling patterns, for which we define a compliant representation in BPMN. The patterns extend previous work by the adapter flow, evaluated syntactically and semantically for common adapter characteristics.','',2,'Daniel RitterManuel Holzleitner','springer/bpmn security.csv','springer',''),(6,'Geospatial Information Security Web Service Based on Agent','2010','0','WebService;geospatial information security;mobile agent','With the development of remote sensing technology, the use of remote sensing images collected by space platforms is becoming more and more pervasive. There is more and more need to distribute processing of remote sensing images. At present, WebService can figure out non-security remote sensing images network processing, but due to network transmit without non-encryption at client side, which may lead to image information leakage. To settle this problem, we propose a geospatial information security Web service based on mobile agent and WebService. This method can guarantee security image security network processing, which is useful complent of WebService.','2010 International Conference on Multimedia Information Networking and Security',1,'J. Sun; J. Liu; Z. Xu; Z. Wu','ieee/webservice security.csv','ieee','\0'),(7,'A Mashup-Based Application for the Smart City Problematic','2015','0',' HCI Mashup Smart city Orchestration Service orchestration User interface orchestration','Abstract A mashup is an application that combines data and functionalities from more than one source. It groups disparate data in ways that enable users to do new things or accomplish common tasks with newfound efficiency. The introduction of mashup applications and their increasing use by users in the field of e-Learning and e-commerce highlights new issues in a context called the “smart city”. Indeed, transportation based on private cars, public transportation services and shared bicycles need appropriate user interfaces, which can be “mashuped” to allow an integrated approach to transportation related to weather conditions, real-time traffic situations and personal preferences. These new needs for composition and combination (orchestration) of existing web services and their underlying user interfaces are good examples of mashuping. First, we provide in this paper some valuable explanations on two kinds of orchestration: service orchestration and HCI (Human Computer Interface) orchestration. Secondly, we apply this global approach to the context of “smart cities”.','',2,'Abdelghani AtroucheDjilali IdoughiBertrand David','springer/bpel security.csv','springer',''),(8,'An authentication and access control framework for CoAP-based Internet of Things','2014','0','','Internet of Things (IoT) and Cyber-physical Systems (CPS) are two very hot research topics today, and more and more products are starting to appear on the market. Research has shown that the use of Service Oriented Architecture (SOA) can enable distributed application and devices to device communication, even on very resource constrained devices, and thus play an important role for IoT and CPS. In order to realize the vision of Internet of Things, communication between devices must be secured. Security mechanisms for resource constrained devices has attracted much interest from the academic community, where research groups have shown solutions like IPsec, VPN-tunnels, (D)TLS, etc. are feasible to use on this type of networks. However, even though the use of well-known security mechanisms are vital for SOA-based IoT/CPS networks and systems to be protected, they do not provide any fine-grain access control. In this paper, a CoAP-based framework for service-level access control on low-power devices is presented. The framework allows fine grain access control on a per service and method basis. For example, by using this approach a device can allow read/write access to its services to one group of users while only allowing read access to another group. Users without the right credentials are not even allowed to discover available services. To demonstrate the validity of the proposed approach, several implementations are presented together with test results. The aim is to provide a holistic framework for secure SOA-based low power networks comprise by resource constrain devices.','IECON 2014 - 40th Annual Conference of the IEEE Industrial Electronics Society',1,'P. P. Pereira; J. Eliasson; J. Delsing','ieee/service oriented architecture security.csv','ieee','\0'),(9,'Quantitative trust management with QoS-aware service selection','2015','','QoS-based service selection; Quality of service; Service-oriented architecture; Trust management','As the number of services available on the web increases, discovering which services are trustworthy becomes vital. Given the black-box nature of services, selecting a trustworthy service that best fits users\' requirements is critical. Once a set of services fulfilling users\' functional requirements has been found, which one a user chooses depends mostly on the Quality of Services (QoS), particularly security, trust and reputation. This paper proposes a trust management model to support service discovery and selection based on QoS. We define a quantitative trust-evaluation method for dynamic service discovery and selection and show experimental results. The proposed model allows service consumers to get the most trustworthy services possible. Our mechanism uses consumers\' feedback to describe how trustworthy they have found services and service providers to be. Choosing services using a quantitative measurement rather than their intuition will allow consumers to select a highly reliable service that meets their quality and technical requirements. Copyright © 2015 Inderscience Enterprises Ltd.','',1,'Kim Y., Shin Y., Doh K.-G.','scopus/service oriented architecture security.csv','scopus',''),(10,'Form Follows Function','2012','2','','Abstract We argue that, for certain constrained domains, elaborate model transformation technologies—implemented from scratch in general-purpose programming languages—are unnecessary for model-driven engineering; instead, lightweight configuration of commercial off-the-shelf productivity tools suffices. In particular, in the CancerGrid project, we have been developing model-driven techniques for the generation of software tools to support clinical trials. A domain metamodel captures the community’s best practice in trial design. A scientist authors a trial protocol, modelling their trial by instantiating the metamodel; customized software artifacts to support trial execution are generated automatically from the scientist’s model. The metamodel is expressed as an XML Schema, in such a way that it can be instantiated by completing a form to generate a conformant XML document. The same process works at a second level for trial execution: among the artifacts generated from the protocol are models of the data to be collected, and the clinician conducting the trial instantiates such models in reporting observations—again by completing a form to create a conformant XML document, representing the data gathered during that observation. Simple standard form management tools are all that is needed. Our approach is applicable to a wide variety of information-modelling domains: not just clinical trials, but also electronic public sector computing, customer relationship management, document workflow, and so on.','',2,'Jim DaviesJeremy GibbonsRadu CalinescuCharles CrichtonSteve HarrisAndrew Tsui','springer/bpel security.csv','springer','\0'),(11,'A virtual mart for knowledge discovery in databases','2013','4','','Abstract The Web has profoundly reshaped our vision of information management and processing, enlightening the power of a collaborative model of information production and consumption. This new vision influences the Knowledge Discovery in Databases domain as well. In this paper we propose a service-oriented, semantic-supported approach to the development of a platform for sharing and reuse of resources (data processing and mining techniques), enabling the management of different implementations of the same technique and characterized by a community-centered attitude, with functionalities for both resource production and consumption, facilitating end-users with different skills as well as resource providers with different technical and domain specific capabilities. We first describe the semantic framework underlying the approach, then we demonstrate how this framework is exploited to give different functionalities to users through the presentation of the platform functionalities.','Information Systems Frontiers',2,'Claudia DiamantiniDomenico PotenaEmanuele Storti','springer/bpel security.csv','springer','\0'),(12,'Verification of business process entailment constraints using SPIN','2009','8','Access Control; Model Checking; Processes; SPIN; Verification','The verification of access controls is essential for providing secure systems. Model checking is an automated technique used for verifying finite state machines. The properties to be verified are usually expressed as formula in temporal logic. In this paper we present an approach to verify access control security properties of a security annotated business process model. To this end we utilise a security enhanced BPMN notation to define access control properties. To enhance the usability the complex and technical details are hidden from the process modeller by using an automatic translation of the process model into a process meta language (Promela) based on Coloured Petri net (CPN) semantics. The model checker SPIN is used for the process model verification and a trace file is written to provide visual feedback to the modeller on the abstraction level of the verified process model. As a proof of concept the described translation methodology is implemented as a plug-in for the free web-based BPMN modelling tool Oryx. © 2009 Springer Berlin Heidelberg Business.','',2,'Wolter C., Miseldine P., Meinel C.','scopus/bpmn security.csv','scopus','\0'),(13,'A Review of Agent and Service-Oriented Concepts Applied to Intelligent Energy Systems','2014','21','Active demand response;distributed generation;electrical grid;multiagent systems (MASs);power balancing;renewable energy sources (RESs);service-oriented architectures (SOAs);smart grid','The intention of this paper is to provide an overview of using agent and service-oriented technologies in intelligent energy systems. It focuses mainly on ongoing research and development activities related to smart grids. Key challenges as a result of the massive deployment of distributed energy resources are discussed, such as aggregation, supply-demand balancing, electricity markets, as well as fault handling and diagnostics. Concepts and technologies like multiagent systems or service-oriented architectures are able to deal with future requirements supporting a flexible, intelligent, and active power grid management. This work monitors major achievements in the field and provides a brief overview of large-scale smart grid projects using agent and service-oriented principles. In addition, future trends in the digitalization of power grids are discussed covering the deployment of resource constrained devices and appropriate communication protocols. The employment of ontologies ensuring semantic interoperability as well as the improvement of security issues related to smart grids is also discussed.','IEEE Transactions on Industrial Informatics',1,'P. Vrba; V. Mařík; P. Siano; P. Leitão; G. Zhabelova; V. Vyatkin; T. Strasser','ieee/service oriented architecture security.csv','ieee','\0'),(14,'Inter-organizational Reference Models – May Inter-organizational Systems Profit from Reference Modeling?','2012','0','','Abstract Inter-organizational systems span from business models over business process models to their execution on top of a service-oriented architecture. In our project BSopt we have developed an integrated model-driven approach that addresses the different layers and builds up-on well-estabilshed languages on each of these layers. When applying our integrated methodology we recognized that models for the same business case are similar, but still varying for different business partner networks. Accordingly, a systematic approach to derive a model from another model, i.e., from a reference model, is needed. Significant achievements have been made by the reference modeling community in finding ways to leverage the potentials of model reuse in business process modeling. In this paper we outline the potentials of adapting design techniques known from reference modeling to the specific needs of inter-organizational system develpment even if we do not provide a solution yet.','',2,'Birgit HofreiterChristian HuemerGerti KappelDieter MayrhoferJan vom Brocke','springer/bpel security.csv','springer','\0'),(15,'Performance and reliability prediction for evolving service-oriented software systems','2013','1',' Software architecture Performance prediciton Reliablity prediction Case study','Abstract During software system evolution, software architects intuitively trade off the different architecture alternatives for their extra-functional properties, such as performance, maintainability, reliability, security, and usability. Researchers have proposed numerous model-driven prediction methods based on queuing networks or Petri nets, which claim to be more cost-effective and less error-prone than current practice. Practitioners are reluctant to apply these methods because of the unknown prediction accuracy and work effort. We have applied a novel model-driven prediction method called Q-ImPrESS on a large-scale process control system from ABB consisting of several million lines of code. This paper reports on the achieved performance prediction accuracy and reliability prediction sensitivity analyses as well as the effort in person hours for achieving these results.','Empirical Software Engineering',1,'Heiko KoziolekBastian SchlichSteffen BeckerMichael Hauck','springer/soa security.csv','springer','\0'),(16,'Approach and Refinement Strategies for Flexible Choreography Enactment','2014','0',' Process Flexibility Choreography Flexibility Refinement Strategies Late Modeling Late Selection Process Fragments','Abstract Collaborative, Dynamic & Complex (CDC) systems such as adaptive pervasive systems, eScience applications, and complex business systems inherently require modeling and run time flexibility. Since domain problems in CDC systems are expressed as service choreographies and enacted by service orchestrations, we propose an approach introducing placeholder modeling constructs usable both on the level of choreographies and orchestrations, and a classification of strategies for their refinement to executable workflows. These abstract modeling constructs allow deferring the modeling decisions to later points in the life cycle of choreographies. This supports run time scenarios such as incorporating new participants into a choreography after its enactment has started or enhancing the process logic of some of the participants. We provide a prototypical implementation of the approach and evaluate it by means of a case study.','',2,'Andreas WeißSantiago Gómez SáezMichael HahnDimka Karastoyanova','springer/bpel security.csv','springer',''),(17,'Computationally efficient ontology selection in software requirement planning','2016','1',' Requirements Ontologies Process models Retrieval tool','Abstract Understanding the needs of stakeholders and prioritizing requirements are the vital steps in the development of any software application. Enabling tools to support these steps have a critical role in the success of the corresponding software application. Based on such a critical role, this paper presents a computationally efficient ontology selection in software requirement planning. The key point guiding the underlying design is that, once gathered, requirements need to be processed by decomposition towards the generation of a specified systems design. A representational framework allows for the expression of high level abstract conceptions under a single schema, which may then be made explicit in terms of axiomatic relations and expressed in a suitable ontology. The initial experimental results indicate that our framework for filtered selection of a suitable ontology operates in a computationally efficient manner.','Information Systems Frontiers',1,'R. B. K. BrownG. BeydounG. LowW. TibbenR. ZamaniF. García-SánchezR. Martinez-Bejar','springer/service oriented architecture security.csv','springer',''),(18,'Using SOA and web 2.0 in web service applications','2015','','','This paper proposes a three-tier architecture, which includes content network, social network and service network. It also presents a structure for web and load services in ad-hoc computer networks, which is a new system architecture using SOA (Service Oriented Architecture) and Web 2.0 concepts to implement functions for web and load services. It is a three-tier system structure based on Web service functions to implement services seeking and load distribution. Furthermore, this project would construct a knowledge sharing and learning platform based on the mentioned three-tier architecture. Different communities provide their services to each other by using our new knowledge platform and this forms a “virtual community”. It leads to our desired accomplishments of “service reusability” and “service innovation”. It also proposes the frameworks of new SOA and therefore provides a platform to enhance the interactions between academia and industry. © 2015 Taylor & Francis Group, London.','',1,'Huang M.C.','scopus/service oriented architecture security.csv','scopus',''),(19,'Security Services Efficiency in Disadvantaged Networks','2015','0','','Modern coalition operations require efficient cooperation between partners of allied forces. They usually rely on their national systems equipped with software solutions supporting interoperability. Federation of systems built for the purpose of such operations assumes however independence of particular individual ones. In order to support efficient exchange of information between allies there are necessary federated software solutions promoting secure cross-domain information exchange. Lately the concept of Federated Mission Networking following Service Oriented Architecture (SOA) is being developed by NATO. In terms of secure information exchange for SOA-based services it proposes to use Web Authentication standard based on WS-Federation. In the article the authors present the results of tests of this standard efficiency in disadvantaged network environment built with PR4G radios. The architecture of the solution is presented with necessary information exchange relations and their invocation times.','2015 IEEE 81st Vehicular Technology Conference (VTC Spring)',1,'J. Sliwa; B. Jasiul; T. Podlasek; R. Matyszkiel','ieee/service oriented architecture security.csv','ieee','\0'),(20,'Signature replacement attack and its counter-measures','2010','0','BPEL;Digital Signature;SOAP;SWOT;TTP;XML Security','2-tuple Digital Signature scheme has two elements: a message and a signature. A tempered message can be verified by the decryption of the message digest, encrypted by the secret key of the signer, with the help of its corresponding public key. On the contrary, if the signature element is replaced then it cannot be verified. This is termed as signature replacement attack hitherto not discussed in the literature. In case of signature replacement attack, proof of origin is compromised. In this paper this attack is brought into focus for the first time. A solution for digital signature, resilient to signature replacement attack, is also proposed, where a trusted central arbiter is used as an in-line TTP. However, the central arbiter becomes the main bottleneck of performance. The problem is equally true for XML signature scheme used in Web service security today. This paper also proposes a solution with a BPEL process which acts as a central arbiter in the proposed special protocol.','Advance Computing Conference (IACC), 2010 IEEE 2nd International',2,'S. Sinha; S. K. Sinha','ieee/bpel security.csv','ieee','\0'),(21,'An authorization architecture for web services','2015','','','This paper considers the authorization service requirements for the service oriented architecture and proposes an authorization architecture for Web services. It describes the architectural framework, the administration and runtime aspects of our architecture and its components for secure authorization of Web services as well as the support for the management of authorization information. The proposed architecture has several benefits. It is able to support legacy applications exposed as Web services as well as new Web service based applications built to leverage the benefits offered by the service oriented architecture; it can support multiple access control models and mechanisms and is decentralized and distributed and provides flexible management and administration of Web services and related authorization information. The proposed architecture can be integrated into existing middleware platforms to provide enhanced security to exposed Web services. The architecture is currently being implemented within the.NET framework. © IFIP International Federation for Information Processing 2005.','',1,'Indrakanti S., Varadharajan V.','scopus/service oriented architecture security.csv','scopus',''),(22,'A Process for Generating Concrete Architectures','2013','0','','','',1,'Mathieu BoussardStefan MeissnerAndreas NettsträterAlexis OlivereauAlexander Salinas SeguraMatthias ThomaJoachim W. Walewski','springer/service oriented architecture security.csv','springer','\0'),(23,'Enhance enterprise Android application security with cloud computing and big data analytics','2014','1','Android Application; Big Data; Cloud; Enterprise; Security; SOA','In modern enterprises, conventional Android application assessment approaches have many limitations, one of which is the isolation of different assessment systems that hinders the efficiency and capacity of the assessing processes. The objective of this research is to develop a framework that promotes the use of cloud computing and Big Data Analytics on building the assessment system. Cloud-based design allows the system to achieve computing capacity in a lower cost, so that it can apply mixed utilization of various assessment techniques to generate more diversified and objective testing results. Centralized information repository on the cloud enables Big Data Analytics to be performed on the extensive testing results to achieve enhanced insight of the application security status. BDA techniques such as clustering and visualization provides better comprehension on the underlying security issues and prediction on how to improve the enterprise information systems. To aggrandize the availability of the analytic results, SOA should be adopted in the system design, so that the data can be provided as extendable services for other systems. Finally, an experimental system is designed based on the proposed framework as an illustration on the framework implementation. © 2014 IEEE.','',1,'Zhong H., Xiao J., Zheng X.','scopus/soa security.csv','scopus','\0'),(24,'Conflict detection and resolution in home and building automation systems: a literature review','2014','3',' Ambient intelligence Home and building automation systems Conflict detection Conflict resolution','Abstract The evolution and increasing commoditization of home and building automation systems (HBAS) is contributing to their widespread adoption. However, an effort must still be made to render them usable, intelligent, highly adaptive and able to fulfill users’ needs. When distinct users interact with such a system, their intentions are likely to be different, often resulting in conflicting situations, which the system ought to recognize and, if possible, resolve automatically. However, conflict detection and resolution in HBAS are not yet fully understood. This work aims at investigating conflict in Ambient Intelligence systems, namely those supported by HBAS. Our main contribution is a systematization and review of existing literature concerning conflict detection and resolution in these systems.','Journal of Ambient Intelligence and Humanized Computing',1,'Sílvia ResendesPaulo CarreiraAndré C. Santos','springer/soa security.csv','springer','\0'),(25,'A Petri Net Approach to Reliable Execution for Web Service Composition','2013','0','Petri Net;SOA;Web service;reliable','With development of SOA, the complex problem can be solved by combining available individual services and ordering them to best suit user\'s requirements. Web services composition is widely used to business environment. With the features of inherent autonomy and heterogeneity for component Web services it is difficult to predict the behaviors of the overall composite service. Therefore, transactional properties and non-functional quality of service (QoS) properties are crucial for selecting the web services to take part in the composition. Transactional properties ensure reliability of composite Web service, and QoS properties can identify the best candidate web services from a set of functionally-equivalent services. In this paper we define a Colored Petri Net (CPN) model which involves transactional properties of Web services in the composition process. To ensure reliable and correct execution, unfolding processes of the CPN are followed. The execution of transactional composition Web service (TCWS) is formalized by CPN properties.','Computational Intelligence and Security (CIS), 2013 9th International Conference on',1,'L. Chen; G. Zhang','ieee/service oriented architecture security.csv','ieee','\0'),(26,'Integrated Information System Based on Web Services','2007','0','BPEL, PHP, SOAP, WSDL, XPDL, information systems, web security, web service','Proceedings of the 2007 International Conference on Computer Systems and Technologies','',2,'Krasimir Trichkov and Elisaveta Trichkova and Elena Ivanova','acm/bpel security.csv','acm','\0'),(27,'A Standardized SOA Based Solution to Guarantee the Secure Access to EHR','2015','','access control; auditability; interoperability; secure use of cloud for clinical data','Continued advances in science and technology and general improvements in environmental and social conditions is extending the population\'s life expectancy with the consequence that a person can undergo many episodes of healthcare during lifetime. In this context, the Electronic Health Record (EHR) represents a fundamental tool to support treatment continuity, education and research. The economic restrictions in healthcare and the need to increase efficiency in term of cost/effectiveness ration could lead institutional organizations to choose cloud solutions to host the EHR. In this paper, a cloud infrastructure architecture, focus on the EHR and based on SOA (Service Oriented Architecture) paradigm, which is able both to completely support technical, semantic and process interoperability, and to guarantee security, is proposed. In order to achieve this goal, the indications and the standards proposed by Healthcare Services Specification Project (HSSP) was adopted. Different situations can be managed by the proposed architecture and are described: the user access to an encrypted resource in EHR, the availability of EHR content for external Decision Support Systems, the update of EHR content, the management of semantic of clinical data exchanged among distributed healthcare organizations. Finally, the authors propose a discussion on the proposed solution. © 2015 The Authors. Published by Elsevier B.V.','',1,'Gazzarata G., Gazzarata R., Giacomini M.','scopus/service oriented architecture security.csv','scopus',''),(28,'Adaptive interaction support in ambient-aware environments based on quality of context information','2013','3',' Human environment interaction Ambient-aware environment Quality of context information Media services User satisfaction Trust','Abstract Ambient-aware environments are technologically augmented with myriad sensors, devices and other emerging services in order to support users. However, users find it complex in interacting with such environments due to the presence of numerous devices and services. In this situation, providing context-aware implicit or automatic interaction support may help reducing the cognitive load of the users and facilitate easy access of the available devices and services. However, due to the imprecision in context information, implicit interactions performed by the environment often leads to mis-automation. The result of such impaired implicitness causes distrust and dissatisfaction to the user. In order to address this issue, we propose a system that considers quality of information to dynamically adjust the level of implicit interaction and allows a system to operate in different modes such as full-automation, action suggestion, simple notification, or null action. We conduct experiment in a smart home scenario in order to elicit users’ acceptance and trust regarding the proposed system. Our experiment shows that dynamic and alternative mode of interaction not only increases the satisfaction of users but also helps to avoid distrust in automated actions carried out by the environment under varying contexts.','Multimedia Tools and Applications',1,'M. Anwar HossainAli Asghar Nazari ShirehjiniAbdullah S. AlghamdiAbdulmotaleb El Saddik','springer/service oriented architecture security.csv','springer','\0'),(29,'Discrete Control for Smart Environments Through a Generic Finite-State-Models-Based Infrastructure','2014','0',' System architecture Middleware Domain ontologies Discrete-event control Finite-state automata Reactive systems Control theory','Abstract Drawing requirements and models from reactive and real-time systems, we propose a self-configurable data mediation infrastructure for Smart Environments and the Internet of Things, showing how it can be used to effect discrete control in smart home environments by mediating and adapting generic rules through finite-state-machine models drawn from a domain ontology, representing observable & controllable “things” and space entities in this infrastructure.','',1,'Mengxuan ZhaoGilles PrivatEric RuttenHassane Alla','springer/service oriented architecture security.csv','springer','\0'),(30,'System of Systems for Quality-of-Service Observation and Response in Cloud Computing Environments','2015','1','Cloud computing;distributed denial of service (DDoS);enterprise systems;information assurance;net centric;quality of service (QoS);security;service-oriented architecture (SOA);systems of systems (SoS)','As military, academic, and commercial computing systems evolve from autonomous entities that deliver computing products into network centric enterprise systems that deliver computing as a service, opportunities emerge to consolidate computing resources, software, and information through cloud computing. Along with these opportunities come challenges, particularly to service providers and operations centers that struggle to monitor and manage quality of service (QoS) for these services in order to meet customer service commitments. Traditional approaches fall short in addressing these challenges because they examine QoS from a limited perspective rather than from a system-of-systems (SoS) perspective applicable to a net-centric enterprise system in which any user from any location can share computing resources at any time. This paper presents a SoS approach to enable QoS monitoring, management, and response for enterprise systems that deliver computing as a service through a cloud computing environment. A concrete example is provided for application of this new SoS approach to a real-world scenario (viz., distributed denial of service). Simulated results confirm the efficacy of the approach.','IEEE Systems Journal',1,'P. C. Hershey; S. Rao; C. B. Silio; A. Narayan','ieee/service oriented architecture security.csv','ieee',''),(31,'User-centric protection and privacy in smart surveillance systems','2012','2','','During the last decades surveillance systems developed from analog one camera one monitor systems to highly complex distributed systems with heterogeneous sensors that can handle surveillance tasks autonomously. With raising power and complexity, ensuring privacy became a key challenge. An event-driven SOA architecture that follows the privacy by design principle is a promising approach to realize a smart surveillance system and is described in this work. Enforcement of privacy is not only complex for engineers and system designers; rather it is not understandable for the average user, who cannot even assess potentials and limitations of smart surveillance systems. This work presents an approach for privacy that is focused on the user, i.e., the observed subject. By using a mobile device the user can interact with the surveillance system and is not passive anymore, as in conventional surveillance deployments. This restores the balance between the observed and the observers, enhances transparency and will raise the acceptance of surveillance technology. In the highlighted approach the user can control his individual-related data and privacy preferences and can use services that are beneficial for him. © 2012 Springer-Verlag.','',1,'Vagts H., Krempel E., Beyerer J.','scopus/soa security.csv','scopus','\0'),(32,'From product-centric to customer-centric services in a financial institution – exploring the organizational challenges of the transition process','2015','0',' Customer-centric services Transition process from product to customer orientation Work system theory Organizational challenges Case study research','Abstract This research aims to contribute to an increased understanding of the strategic, cultural and other organizational challenges in a transition process from product-centric to customer-centric services. The paper describes an exploratory case study, conducted in a complex financial services organization in the context of their customer-facing services. The transition process was examined through the theoretical lens of Work System Theory (WST), following the argument made by previous researchers that service systems could be seen as work systems. This holistic theory enabled us to capture the three key phases of the transition process as work systems snapshots and through their evolving relationships show the manner in which the transitions occurred from one phase to another. This innovative approach provided the researchers with an in-depth insight into key issues related to organizational environment, strategy, customers, products and services, processes and activities, participants, and information and technologies – all relevant for each phase of the transition process. This research contributes to both information systems (IS) and service science research, bringing the key service research priority of “service infusion” to the attention of IS researchers.','Information Systems Frontiers',1,'Olivera MarjanovicVijaya Murthy','springer/service oriented architecture security.csv','springer',''),(33,'Security Policy Conflicts in Service-oriented Systems','2012','0',' Security Policy Conflict Detection Algorithm','Abstract This paper considers methods for knowledge exploitation in security policies for Service-Oriented Architecture (SOA) environments, discovering the modality conflicts in particular. Two algorithms for discovering SOA-specific modality conflicts are proposed. First, a trivial ( ad-hoc ) approach is presented and further extended by the improved algorithm which offers lower time complexity. The formal verification of the proposal is followed by experimental results confirming the expected supremacy of the improved algorithm.','New Generation Computing',1,'Bartosz BrodeckiMichał SzychowiakPiotr Sasak','springer/service oriented architecture security.csv','springer','\0'),(34,'A note on BPMN analysis. Towards a taxonomy of selected potential anomalies','2014','0','','Modeling based on a graphical notation understandable for different specialists has become very popular. Within the area of business processes, the most common one is the Business Process Modeling and Notation (BPMN). BPMN is aimed at all business users who design, analyze, manage and monitor business processes. Most papers in this area focus on making use of the possibilities that BPMN makes available, but there is lack of papers analyzing possible errors and ways of detecting and eliminating them. Specification of a BPMN diagram is relatively precise, but it is only a descriptive form presented at some abstract, graphical level. Hence, the main focus of this article is an attempt to analyze the topic of the anomalies which are likely to occur when modeling with use of BPMN.','Computer Science and Information Systems (FedCSIS), 2014 Federated Conference on',2,'A. Mroczek; A. Ligęza','ieee/bpmn security.csv','ieee',''),(35,'TRUMP: A Trusted Mobile Platform for Self-management of Chronic Illness in Rural Areas','2013','1','','Abstract Disease self-management interventions have the potential to greatly benefit both sufferers of chronic illnesses and healthcare providers in rural areas. In this paper, we discuss our vision for a trusted platform for delivering self-management interventions in rural areas of the UK and India using second-generation mobile devices, and outline the key trust and privacy challenges in realising such an infrastructure. We illustrate our discussion with an example depression intervention scenario, highlighting some progress to date, and our plans towards realising this architecture.','',2,'Chris BurnettPeter EdwardsTimothy J. NormanLiang ChenYogachandran RahulamathavanMariesha JaffrayEdoardo Pignotti','springer/bpmn security.csv','springer','\0'),(36,'Two-Dimensional Evidence Reliability Amplification Process Model for Digital Forensics','2008','3','BPMN;Digital Evidence;Digital Forensics;Digital Forensics Process;Evidence Reliability;Umbrella Activity','Being related to law and state-of-the-art technology, digital forensics needs more discipline than traditional forensics. The variety of types of crimes, distribution of networks and complexity of information and communication technology, add to the complexity of the process of digital investigations. A rigorous and flexible process model is needed to overcome challenges and obstacles in this area. In this paper we propose a digital forensics process, called \"two-dimensional evidence reliability amplification process model\", which presents a detailed digital forensic process model in five main phases and different roles to perform it. At the same time, this iterative process addresses four essential tasks as the umbrella activities that are applicable across all phases and sub-phases. We have also developed a hypothetical solution based on intersection of events and exploit mathematical operations and symbols for making an algorithm to increase the reliability of evidence. This process model is detailed enough to describe the investigation process so that it could possibly provide a guideline that investigators can take advantage of it during a forensics investigation process.','Digital Forensics and Incident Analysis, 2008. WDFIA \'08. Third International Annual Workshop on',2,'M. Khatir; S. M. Hejazi; E. Sneiders','ieee/bpmn security.csv','ieee','\0'),(37,'Web Service Composition Based on Petri Nets: Review and Contribution','2013','2',' Transactional Composite Web Services Automatic Composition Execution of Composite Web Services Petri-Nets','Abstract Web Services (WSs) are the most used implementation of service-oriented architectures allowing the construction and the sharing of independent and autonomous software. WS composition consists in combining several WSs into a Composite one, which becomes a value-added service, in order to satisfy complex users queries. Thus, the WS composition process may imply several phases to identify how and which WSs will conform the Composite WS, including specification, verification, evaluation, WSs selection, and execution. As it is known, Petri Nets are the main formal models used to describe static vision of a system and dynamic behavior of processes. Then, Petri Nets are well suited to model internal operations of WSs and interactions among them as well as to model the processes in all phases of the WS composition process. In this article we present a review of approaches using Petri Nets for WS composition. Moreover, we describe our experiences in this field: a transactional-QoS-driven WS selection approach and a framework for reliable execution of Composite WSs based on Colored Petri Nets.','',2,'Yudith CardinaleJoyce El HaddadMaude ManouvrierMarta Rukoz','springer/bpel security.csv','springer','\0'),(38,'Eliciting security requirements for business processes of legacy systems','2015','','BPMN; Business process modeling; Goal-oriented security requirements; Legacy systems; MARBLE; Secure Tropos','The modernisation of enterprise legacy systems, without compromises in their functionality, is a demanding and time consuming endeavour. To retain the underlying business behaviour during their modernisation, the MARBLETM framework has been developed for the extraction of business process models from their source code. Building on top of that work, in this paper we propose an integrated approach for transforming the extracted legacy process models into Secure Tropos goal models. Such models facilitate the elicitation of security requirements in a high level of abstraction, which are then incorporated back into the process models of the modernised systems as security features. Therefore high level models can be derived from legacy source code with minimal manual intervention, where security can be elaborated by nontechnical stakeholders in alignment with organisational objectives. © IFIP International Federation for Information Processing 2015.','',2,'Argyropoulos N., Alcañiz L.M., Mouratidis H., Fish A., Rosado D.G., De Guzmán I.G.-R., Fernández-Medina E.','scopus/bpmn security.csv','scopus',''),(39,'Supporting the internet-based evaluation of research software with cloud infrastructure','2012','2',' Reproducible research Model transformation Tool contest Peer review Cloud computing','Abstract Due to license restrictions and installation issues, it is often not feasible to experiment with software without making substantial investments. Especially in the case of legacy tools, it turns out that even free software is often too costly (i.e., time-consuming) to be installed for evaluating the quality of a research contribution. After organizing a series of events related to software modeling, we have constructed (and started to use) SHARE, a system for sharing practically any type of software artifact to reviewers and to other participants who have very limited time available. The system relies on cloud-computing technologies to provide online access to interactive environments containing all the tools, documentation, input and output models to reproduce alleged research results. The system also enables one to clone such an environment and add additional models or tools in order to extend a contribution or pinpoint a problem. In retrospect, we observe that the approach is not limited to software modeling and SHARE is in fact gaining acceptance in other fields already.','Software & Systems Modeling',2,'Pieter Van GorpPaul Grefen','springer/bpel security.csv','springer','\0'),(40,'An economic mechanism to manage operational security risks for inter-organizational information systems','2014','1',' Inter-organizational information systems Information security Risk management Economics of information systems Economic mechanisms','Abstract As organizations increasingly deploy Inter-organizational Information Systems (IOS), the interdependent security risk they add is a problem affecting market efficiency. Connected organizations become part of entire networks, and are subject to threats from the entire network; but members’ security profile information is private, members lack incentives to minimize impact on peers and are not accountable. We model the problem as a signaling-screening game, and outline an incentive mechanism that addresses these problems. Our mechanism proposes formation of secure communities of organizations anchored by Security Compliance Consortium (SCC), with members held accountable to the community for security failures. We study the interconnection decisions with and without the mechanism, and characterize conditions where the mechanism plays roles of addressing moral hazard and hidden information issues by screening the organizations’ security types and/or by providing them incentives to improve. We also discuss the welfare gains and the broad impact of the mechanism.','Information Systems Frontiers',1,'Fang FangManoj ParameswaranXia ZhaoAndrew B. Whinston','springer/service oriented architecture security.csv','springer','\0'),(41,'IT risk management framework based on ISO 31000:2009','2012','','ERM; FMEA; ISO 31000:2009; IT Risk; SOA Section 404','Utilization of Information Technology (IT) in an enterprise, in addition to achieve benefit from the implementation of IT should come along with the risks (Information Technology Risk) that may affect the achievement of corporate goals. IT risk management will always involving the company\'s overall risk management for IT risk will impact enterprise itself, thus a framework is required as a tool to integrate the IT risks with ERM. This paper present a case study research on IT risk management framework based on ISO 31000. The research methodology used in this study is Design Science Research Methodology (DSRM). The designed architecture includes three components, they are the principles of IT risk management, risk identification and analysis of IT. The method used to examine the framework was a Focus Group Methodology while sampling technique that used was purposive sampling. The Focus Group Discussion (FGD), conducted based on expert judgment in the PT. Telekomunikasi Indonesia, Tbk. The examination of IT risk management framework resulting in accordance with the needs of companies that engaged in the telecommunications industry and has been integrating IT risk with ERM. In this case the company need is a security related financial statements to support compliance with Sarbanes-Oxley Act agreement (SOA). The main thing in the development of IT risk management framework is the presence of internal control as a key role in the Enterprise Risk Management. © 2012 IEEE.','',1,'Ernawati T., Suhardi, Nugroho D.R.','scopus/soa security.csv','scopus','\0'),(42,'Enforcement of entailment constraints in distributed service-based business processes','2013','8','Architecture (SOA); Business process management; Entailment constraints; Identity and access management; Service-Oriented; WS-BPEL','Context A distributed business process is executed in a distributed computing environment. The service-oriented architecture (SOA) paradigm is a popular option for the integration of software services and execution of distributed business processes. Entailment constraints, such as mutual exclusion and binding constraints, are important means to control process execution. Mutually exclusive tasks result from the division of powerful rights and responsibilities to prevent fraud and abuse. In contrast, binding constraints define that a subject who performed one task must also perform the corresponding bound task(s). Objective We aim to provide a model-driven approach for the specification and enforcement of task-based entailment constraints in distributed service-based business processes. Method Based on a generic metamodel, we define a domain-specific language (DSL) that maps the different modeling-level artifacts to the implementation-level. The DSL integrates elements from role-based access control (RBAC) with the tasks that are performed in a business process. Process definitions are annotated using the DSL, and our software platform uses automated model transformations to produce executable WS-BPEL specifications which enforce the entailment constraints. We evaluate the impact of constraint enforcement on runtime performance for five selected service-based processes from existing literature. Results Our evaluation demonstrates that the approach correctly enforces task-based entailment constraints at runtime. The performance experiments illustrate that the runtime enforcement operates with an overhead that scales well up to the order of several ten thousand logged invocations. Using our DSL annotations, the user-defined process definition remains declarative and clean of security enforcement code. Conclusion Our approach decouples the concerns of (non-technical) domain experts from technical details of entailment constraint enforcement. The developed framework integrates seamlessly with WS-BPEL and the Web services technology stack. Our prototype implementation shows the feasibility of the approach, and the evaluation points to future work and further performance optimizations. © 2013 Elsevier B.V. All rights reserved.','',2,'Hummer W., Gaubatz P., Strembeck M., Zdun U., Dustdar S.','scopus/bpel security.csv','scopus','\0'),(43,'Legal Issues About Metadata Data Privacy vs Information Security','2014','1',' Privacy Metadata Information security Socio-economic issues','Abstract For the purposes of our work we use the concept of metadata to implement enterprise digital right management mechanisms in an intelligent document environment. Such metadata allows us to firstly define contextual security rules and secondly to ensure the information traceability. However, its use may have legal implications, especially with regard to metadata that can be stored (see personal data, privacy), how it should be stored (see probative value in case of litigation, digital forensics) or computer processing in which it may be involved. Another topical issue is the storage and the processing of data using a service provider: the cloud. We must ensure, however, that this solution does not lead to a loss of information controllability for the company. This article aims to position our work with respect to these legal issues.','',1,'Manuel MunierVincent LalannePierre-Yves ArdoyMagali Ricarde','springer/service oriented architecture security.csv','springer','\0'),(44,'[Front cover]','2012','0','','The following topics are dealt with: robust communication system; Internet computing; Web applications; wireless mesh networks; fault tolerant systems; vehicular networks; energy-efficient wireless sensor networks; intelligent systems; distributed database; data mining; communication protocols; pervasive computing; intelligent computing; intelligent networks; distributed systems; distributed networking; semantics computing; semantics networks; mobile ad hoc networks; routing; P2P networks; trusted computing; cloud computing; QoS; service-oriented architecture; social networking; multimedia; authentication system security; cryptographic techniques; green computing; autonomic computing; dependable systems; SOA; ubiquitous computing; peer-to-peer computing; and scalable systems.','2012 IEEE 26th International Conference on Advanced Information Networking and Applications',1,'','ieee/service oriented architecture security.csv','ieee','\0'),(45,'257--258','2012','0','','Mobile devices are changing the way individuals and organizations operate. These devices are becoming a pervasive computing platform that helps improve employee productivity, allowing quick, informed decision making on the go, aided by the ability to access a wealth of real time information available regardless of (or specific to) location. Successful businesses realize that a mobile transformation is necessary today. According to a recent IBM Study, 75% of CIO\'s indicated that they will invest in mobile this year and that a mobile strategy is critical to ensure success.','',1,'','acm/soa security.csv','acm','\0'),(46,'A sharing-oriented design strategy for networked knowledge organization systems','2016','2',' NKOS Periodization Service-oriented architecture Semantic web JSON-LD','Abstract Designers of networked knowledge organization systems often follow a service-oriented design strategy, assuming an organizational model where one party outsources clearly delineated business processes to another party. But the logic of outsourcing is a poor fit for some knowledge organization practices. When knowledge organization is understood as a process of exchange among peers, a sharing -oriented design strategy makes more sense. As an example of a sharing-oriented strategy for designing networked knowledge organization systems, we describe the design of the PeriodO period gazetteer. We analyze the PeriodO data model, its representation using JavaScript Object Notation-Linked Data, and the management of changes to the PeriodO dataset. We conclude by discussing why a sharing-oriented design strategy is appropriate for organizing scholarly knowledge.','International Journal on Digital Libraries',1,'Ryan ShawAdam RabinowitzPatrick GoldenEric Kansa','springer/service oriented architecture security.csv','springer',''),(47,'Standardization in cyber-physical systems: The ARUM case','2015','2','','Cyber-physical systems concept supports the realization of the Industrie 4.0 vision towards the computerization of traditional industries, aiming to achieve intelligent and reconfigurable factories. Standardization assumes a critical role in the industrial adoption of cyber-physical systems, namely in the integration of legacy systems as well as the smooth migration from existing running systems to the new ones. This paper analyses some existing standards in related fields and presents identified limitations and efforts for a wider acceptance of such systems by industry. Special attention is devoted to the efforts to develop a standard-compliant service-oriented multi-agent system solution within the ARUM project.','Industrial Technology (ICIT), 2015 IEEE International Conference on',1,'P. Leitão; J. Barbosa; M. E. C. Papadopoulou; I. S. Venieris','ieee/service oriented architecture security.csv','ieee',''),(48,'Towards an energy-aware Internet: modeling a cross-layer optimization approach','2013','8',' Energy efficiency Energy-awareness Energy-oriented network models Power consumption minimization Carbon footprint minimization Integer Linear Programming','Abstract The containment of power consumption and the use of alternative green sources of energy are the new main goals of telecommunication operators, to cope with the rising energy costs, the increasingly rigid environmental standards, and the growing power requirements of modern high-performance networking devices. To address these challenges, we envision the necessity of introducing energy-efficiency and energy-awareness in the design, configuration and management of networks, and specifically in the design and implementation of enhanced control-plane protocols to be used in next generation networks. Accordingly, we focus on research and industrial challenges that foster new developments to decrease the carbon footprint while leveraging the capacities of highly dynamic, ultra-high-speed, networking. We critically discuss current approaches, research trends and technological innovations for the coming green era and we outline future perspectives towards new energy-oriented network planning, protocols and algorithms. We also combine all the above elements into a comprehensive energy-oriented network model within the context of a general constrained routing and wavelength assignment problem framework, and analyze and quantify through ILP formulations the savings that can be attained on the next generation networks.','Telecommunication Systems',1,'Sergio RicciardiDavide CareglioGermán Santos-BoadaJosep Solé-ParetaUgo FioreFrancesco Palmieri','springer/soa security.csv','springer','\0'),(49,'An informatics framework for public health information systems: a case study on how an informatics structure for integrated information systems provides benefit in supporting a statewide response to a public health emergency','2015','0',' Public health informatics Information systems Public health emergency preparedness and response','Abstract This chapter illustrates how a well-established public health informatics framework provides an integrated information system infrastructure that assures and enhances the efficacy of public health emergency preparedness (PHEP) actions throughout the phases of the health emergency event life cycle. Key PHEP activities involved in supporting this cycle include planning; surveillance; alerting; resource assessment and management; data-driven decision support; and intervention for prevention and control of disease or injury in populations. Information systems supporting these activities are most effective in assuring optimal response to an emergent health event when they are integrated within an informatics framework that supports routine (day to day) information exchange within the health information exchange community. In late April 2009, New York State (NYS) initiated a statewide PHEP response to the emergence of Novel Influenza A (H1N1), culminating in a statewide vaccination campaign during the last quarter of 2009. The established informatics framework of integrated information systems within NYS conveyed significant advantages and flexibility in supporting the range of PHEP activities required for an effective response to this health event. This chapter describes, and provides, performance metrics to illustrate how a public health informatics framework can enhance the efficacy of all phases of a public health emergency response. It also provides informatics lessons learned from the event.','Information Systems and e-Business Management',1,'Ivan J. GothamLinh H. LeDebra L. SottolanoKathryn J. Schmit','springer/service oriented architecture security.csv','springer',''),(50,'Maintenance of Reliable Distributed Applications with Open-Source Middleware: Fifteen Years Later','2015','0',' Middleware Open-source CORBA TAO JacORB Maintenance','Abstract Open-source middleware started to be used several years ago for the development of complex applications. When these applications were developed, no real data were available about how maintenance activities could be affected over time. This is especially important for critical applications expected to be maintained over several years. This paper presents maintenance experiences with applications using open-source middleware (TAO and JacORB). These applications are developed using a component model for real-time applications implemented on top of the middleware. Improvements for software reliability have been detected during this time. We present them and how they can be applied to applications using TAO.','',1,'Manuel DíazDaniel Garrido','springer/service oriented architecture security.csv','springer',''),(51,'A novel classification of web service composition and optimization approach using skyline algorithm integrated with agents','2013','1','Classification matrix;context-oriented;technology-oriented','This paper narrates a brief survey about the existing approaches in web services composition. The main research areas in web services are related to discovery, security, and composition. Among all these areas, web services composition turns out to be a challenging one, because within the service-oriented computing domain, Web service composition is an effective recognition to satisfy the hastily changing requirements of business. Therefore, the Web service composition has unfolded broadly in the research side. However, the current attempts to classify Web service composition is not appropriate to the objectives. This paper proposes a novel classification matrix for Web service composition, that distinguishes between the context and technology dimension. The context dimension is aimed at analyzing the QoS influence on the effort of Web service composition, while the technology dimension focuses on the technique influence on the effort. Finally, this paper provides a suggestion to improve the quality of service selection those participates in the composition process with Cskyline approach using agents.','Computational Intelligence and Computing Research (ICCIC), 2013 IEEE International Conference on',1,'R. Gowri; R. Lavanya','ieee/service oriented architecture security.csv','ieee','\0'),(52,'Realising next-generation web service-driven industrial systems','2012','3',' Service-oriented architecture Enterprise systems Web services on devices Dynamic discovery Cooperating objects','Abstract Business continuity and agility form the core modus operandi of modern global enterprises. Complex business processes performed in highly distributed production systems need to be efficiently integrated with the shop floor, which needs to be able to fully respond to dynamic adaptations and sophisticated interactions with the enterprise systems in a timely manner. As the new generation of industrial devices coming to the shop floors features greatly improved storage, computing and networking capabilities, the factory of the future transforms itself to a system of systems, where of large numbers of heterogeneous networked embedded devices dynamically exchange information, complement each other’s functionality and provide new innovative capabilities that satisfy the emergent dynamic business requirements. This new breed of networked embedded devices goes beyond simple passive roles, e.g. being able to store and report information about themselves and their physical surroundings once queried, but execute complex computations and global logic locally, as well as dynamically adapt to fulfil goal-driven conditions. They communicate in an open interoperable way, form cooperative peer-to-peer networks and strongly interact with enterprise systems. This leads to highly modular, manageable and dynamic factories that will be able to adapt and optimize their behaviour to achieve the business goals pursued in a cross-layer collaborative way.','The International Journal of Advanced Manufacturing Technology',1,'Stamatis Karnouskos','springer/soa security.csv','springer','\0'),(53,'A Reference Software Architecture to Support Unmanned Aircraft Integration in the National Airspace System','2013','5',' Unmanned Air vehicle Sense and Avoid Service Oriented Architecture Testbed Reference architecture','Abstract This paper outlines an architecture that provides data and software services to enable a set of Unmanned Aircraft (UA) platforms to operate in a wide range of air domains which may include terminal, en route, oceanic and tactical. The architecture allows a collection of command, control, situational awareness, conflict detection and avoidance, and data management elements to be composed in order to meet different requirement sets as defined by specific UA platforms, users, and operating regimes. The architecture discussed is based on a Service Oriented Architecture (SOA) with open standards on the interfaces between elements. Services may include common situational awareness, sense and avoid, weather, data management and flight plan information. Service contracts specify quality of service, interface specifications, service description metadata, security provisions, and governance. Pieces of the architecture have been implemented by MIT Lincoln Laboratory in the form of a Sense and Avoid (SAA) testbed that provides some of the core services. This paper describes the general architecture and a SAA testbed implementation that begins to realize that architecture and quantifies the benefits. The proposed architecture is not directed at a specific program but is intended to provide guidance and offer architectural best practices.','Journal of Intelligent & Robotic Systems',1,'Curtis W. HeiseyAdam G. HendricksonBarbara J. ChludzinskiRodney E. ColeMark FordLarry HerbekMagnus LjungbergZakir MagdumD. MarquisAlexander MezhirovJohn L. PennellTed A. RoeAndrew J. Weinert','springer/service oriented architecture security.csv','springer','\0'),(54,'SecureBPMN: Modeling and Enforcing Access Control Requirements in Business Processes','2012','3','bpmn, process security, rbac, securebpmn','Proceedings of the 17th ACM Symposium on Access Control Models and Technologies','',2,'Achim D. Brucker and Isabelle Hang and Gero Lückemeyer and Raj Ruparel','acm/bpmn security.csv','acm','\0'),(55,'Effective Web-Service Discovery Using K-Means Clustering','2013','1',' Web Service WSDL document features K-means Clustering WV Tool','Abstract Web Services are proving to be a convenient way to integrate distributed software applications. As service-oriented architecture is getting popular, vast numbers of web services have been developed all over the world. But it is a challenging task to find the relevant or similar web services using web services registry such as UDDI. Current UDDI search uses keywords from web service and company information in its registry to retrieve web services. This information cannot fully capture user’s needs and may miss out on potential matches. Underlying functionality and semantics of web services need to be considered. In this study, we explore the resemblance among web services using WSDL document features such as WSDL Content and Web Services name. We compute the similarity of web services and use this data to generate clusters using K-means clustering algorithm. This approach has really yielded good results and can be efficiently used by any web service search engine to retrieve similar or related web services.','',1,'A. Santhana VijayanS. R. Balasundaram','springer/service oriented architecture security.csv','springer','\0'),(56,'SCaaS: A Platform for Managing Adaptation in Collaborative Pervasive Applications','2013','1','','Abstract In this paper, we present a social context as a service (SCaaS) platform for managing adaptations in collaborative pervasive applications that support interactions among a dynamic group of actors such as users, stakeholders, infrastructure services, businesses and so on. Such interactions are based on predefined agreements and constraints that characterize the relationships between the actors and are modeled with the notion of social context . In complex and changing environments, such interaction relationships, and thus social contexts, are also subject to change. In existing approaches, the relationships among actors are not modeled explicitly, and instead are often hard-coded into the application. Furthermore, these approaches do not provide adequate adaptation support for such relationships as the changes occur in user requirements and environments. In our approach, inter-actor relationships in an application are modeled explicitly using social contexts, and their execution environment is generated and adaptations are managed by the SCaaS platform. The key features of our approach include externalization of the interaction relationships from the applications, representation and modeling of such relationships from a domain and actor perspectives, their implementation using a service oriented paradigm, and support for their runtime adaptation. We quantify the platform’s adaptation overhead and demonstrate its feasibility and applicability by developing a telematics application that supports cooperative convoy.','',1,'Muhammad Ashad KabirJun HanAlan ColmanJian Yu','springer/service oriented architecture security.csv','springer','\0'),(57,'Methods towards API Usability: A Structural Analysis of Usability Problem Categories','2012','1',' API Usability Contextual Interaction Framework HCI','Abstract The usability of Application Programming Interfaces (APIs) is one of the main factors defining the success of a software based framework. Research in the area of human computer interaction (HCI) currently mainly focuses on end-user usability and only little research has been done regarding the usability of APIs. In this paper, we present a methodology on how to use and combine HCI methods with the goal to evaluate the usability of APIs. The methodology consist of three phases - a heuristic evaluation, a developer workshop and interviews. We setup a case-study according to the methodology, in which we are evaluating the usability of a service-oriented framework API. The goal was to explore different HCI methods and compare the applicability of such methods to find usability problems in an API. The case-study combined qualitative and quantitative methods in order to investigate the usability and intuitiveness of the API itself. It allowed us to identify relevant problem areas for usability related issues that could be mapped to specific types of HCI methods. Examples for this are e.g. structural problems, which are identified mainly in inspection methods, while problems regarding errors and exception handling are mainly identified during the hands-on example part of the developer workshops conducted. The resulting problem areas allow us to develop a first classification of API related usability problems that are making the relevancy of usability issues for APIs more explicit and applicable.','',1,'Thomas GrillOndrej PolacekManfred Tscheligi','springer/service oriented architecture security.csv','springer','\0'),(58,'IMDD-based bidirectional 20 Gb/s/λ WDM-PON with Nyquist 4 PAM employing Rayleigh backscattering noise detection-based self wavelength management','2016','0',' WDM-PON Channel-reuse Nyquist 4 level pulse amplitude modulation Intensity modulation Direct detection Fiber Bragg grating filter Self wavelength management','Abstract We experimentally demonstrate an optical intensity modulation transmitter with a Nyquist 4 level pulse amplitude modulation and direct detection (DD) receiver-based channel-reuse wavelength-division-multiplexing passive optical network (WDM-PON). A Rayleigh backscattering noise detection-based wavelength management method is employed for the tunable optical transmitter used in colorless optical network unit to achieve bidirectional 20 Gb/s/λ transmission over 45-km standard single-mode-fiber on a 100-GHz WDM grid. Chromatic dispersion induced power fading in the DD system is avoided with fiber Bragg grating filter-based vestigial-sideband filtering. The inter-symbol interference is cancelled with digital signal processing-based overlap frequency-domain equalizer. The transmission performance is also measured with different optical signal to Rayleigh backscattering noise ratio and different central wavelength shift between upstream and downstream in the channel-reuse system.','Optical and Quantum Electronics',1,'Zhiguo ZhangNa LiuCheng JuXue Chen','springer/soa security.csv','springer',''),(59,'URL query string anomaly sensor designed with the bidimensional Haar wavelet transform','2015','1',' Anomaly detector 2D Haar wavelet transform Thresholding Best approximation method','Abstract In this paper, the 2D Haar wavelet transform is the proposed analysis technique for HTTP traffic data. Web attacks are detected by two threshold operations applied to the wavelet coefficients of the 2D transform: one based on their median and the other on the best approximation method. The two proposed algorithms are validated through an extensive number of simulations, including comparisons with well-established techniques, confirming the effectiveness of the designed sensor.','International Journal of Information Security',1,'Alice KozakeviciusCristian CappoBruno A. MozzaquatroRaul Ceretta NunesChristian E. Schaerer','springer/soa security.csv','springer',''),(60,'Towards a Process Calculus for Rest: Current State of the Art','2015','','formal modeling; process calculi; REST; ROA; SOA','SOA is a popular paradigm for building distributed systems that has gained a great recognition over past years. There are two main approaches to implementing SOA: SOAP-based and RESTful Web services. In order to address problems of modeling and verification of Web services, several process calculi have been proposed for SOAP-based Web services but none for the RESTful Web services based systems. This article is a comparative survey on existing process calculi for SOA systems, also the existing attempts to formalize REST systems are discussed. The aim of the article is to see how process calculi for SOAP-based systems deal with different aspects of their modeling domain, and whether their approaches can be used to model RESTful and ROA systems. Finally, basing on the survey, requirements for a new process calculus specific for REST are defined. © by Jerzy Brzeziński 2015.','',1,'Dwornikowski D., Stroiński A., Brzeziński J.','scopus/soa security.csv','scopus',''),(61,'An Operational Decision Support Framework for Monitoring Business Constraints','2012','4',' Declare process mining monitoring operational decision support','Abstract Only recently, process mining techniques emerged that can be used for Operational decision Support (OS), i.e., knowledge extracted from event logs is used to handle running process instances better. In the process mining tool ProM, a generic OS service has been developed that allows ProM to dynamically interact with an external information system, receiving streams of events and returning meaningful insights on the running process instances. In this paper, we present the implementation of a novel business constraints monitoring framework on top of the ProM OS service. We discuss the foundations of the monitoring framework considering two logic-based approaches, tailored to Linear Temporal Logic on finite traces and the Event Calculus.','',2,'Fabrizio Maria MaggiMarco MontaliWil M. P. van der Aalst','springer/bpel security.csv','springer','\0'),(62,'Service based architecture in healthcare domain using fingerprint image identification','2012','1','Context handler; Healthcare; Minutiae point; Policy decision point (PDP); Policy enforcement point (PEP); Policy information point (PIP); Service consumer; Service provider; User agent; Web services','The Service Oriented Architecture (SOA) facilitates the development of systems by supporting modular design, application integration and software reuse. Healthcare is going to change the way how patients and healthcare providers interact. The exchange of confidential and integrate information is one of the major open issues for the health care sector. In the service-oriented environment all the servicesare loosely coupled. Due to the loose coupling of services, security of the services becomes more important. Required authorization by an authenticated identity and applying confidentiality techniques which ordinarily are gained via encryption, are essential for structured implementations according to service oriented architecture principles. This papertends to propose a new architecture and a new algorithm(MSFMR- Modified SpecialFalse Minutiae Removal) to improve the authentication techniquein healthcare domain based on service oriented technique. © EuroJournals Publishing, Inc. 2012.','',1,'Nirmala Sugirtha Rajini S., Bhuvaneswari T., Rajagopalan S.P.','scopus/service oriented architecture security.csv','scopus','\0'),(63,'Ensuring reliability in B2B services: Fault tolerant inter-organizational workflows','2012','2',' Reliability Mobile computing Fault tolerance Workflow management systems Business process management','Abstract In the age of Business-to-Business (B2B) collaboration, ensuring reliability of workflows underlying inter-organizational business processes is of significant importance. There are, however, quite a few challenges towards achieving seamless operation. Such challenges arise from heterogeneity in infrastructure and coordination mechanism at participant organizations, as well as time and cost associated with recovery from failure. Our research presents foundations for a reliable scheme for recovery from failure of workflow processes spanning through multiple business entities. First, a system model is adapted from the mobile computing literature that serves to establish the requirements to be enforced by each participating organization. In our model, we adopt the Maximal Sequence Path (MSP) approach from Yoo et al . (Lecture Notes in Artificial Intelligence 2132:222–236, 2001 ), as a means of decomposing workflows into mobile agent-driven processes that communicate via web services at each organization. This decomposition ensures defining logical points within the dynamics of a workflow instance for locating accurate and consistent states of the system for recovery in case of a failure. Then, a set of algorithms for various business scenarios are developed and presented as practical solutions. These algorithms are shown to create checkpoints such that the system is always in a globally consistent state. As such, these algorithms constitute a set of standards that can be incorporated in business process management suites that support reliable inter-organizational collaboration.','Information Systems Frontiers',1,'Haluk DemirkanSagnika SenMichael GoulJason Nichols','springer/service oriented architecture security.csv','springer','\0'),(64,'Management of service compositionbased on self-controlled components','2015','1',' Service component Quality of service Autonomic control Service composition','Abstract Cloud computing and Future Internet promise a new ecosystem where everything is \"as a service\", reachable and connectable anywhere and anytime, everyone succeeding to get a service composition that meets his needs. But do we have the structure and the appropriate properties to design the service components and do we have the means to manage, at run-time, the personalised compositions corresponding to Service Level Agreement? In this article we introduce an entity of service composition called Self-Controlled Component (SCC), including, since the design step, functional and non-functional specifications. SCCs benefit both from the strong structure, explicit composition, and autonomic management of component-oriented programming, from the highly dynamic composition, and from the discovery capacities of service-oriented computing. Self-control mechanisms are then attached automatically to SCCs to enable autonomic application management during execution. The objective of this new concept is to provide strong Quality of Service (QoS) guarantees of composed applications. We illustrate the approach using an example called Springoo, to how in the context of a legacy application the contributions and benefits of our solution. For the management of the service composition we propose the concept of Virtual Private Service Network (VPSN) and Virtual Service Community (VSC) that allows us to model the personalised Service Level Agreement (SLA) where user requirements and provider offers converge on a QoS contract.','Journal of Internet Services and Applications',2,'Tatiana AubonnetLudovic HenrioSoumia KessalOleksandra KulankhinaFrédéric LemoineEric MadelaineCristian RuzNoëmie Simoni','springer/bpel security.csv','springer',''),(65,'From Concept to Implementation: Web-Based Cartographic Visualisation with CartoService','2012','0',' Geovisualisation cartographic modelling web cartography quality web mapping web services quality maps','Abstract This paper deals with the implementation and prototypical application of a concept of a web-based on-demand service for the modelling and visualisation of quality maps (CartoService, CS). Drawing on state-of-the-art web technology and software architecture CS can be considered a cartographic customisation of the standard visualisation system. The CS architecture is generic and completely based on the use and integration of web-services, more precisely, on a set of loosely coupled, self-contained methods and information units (services). Map modelling and visualisation components are sequentially ordered in a process chain which facilitates an automated production workflow. Interaction between web-service players (communicators) is based on a three-tier architecture. Tasks assigned to CS essential services are discussed and exemplified for one common application scenario: CS as map configurator. Presently, full implementation of CS is under way. As a fully operational product, CS will significantly contribute to the enhancement of web-based map visualisation in comparison to existing standards-based map dissemination.','',2,'Hartmut AscheRita Engemaier','springer/bpel security.csv','springer','\0'),(66,'Extending enterprise architecture modeling languages for domain specificity and collaboration: application to telecommunication service design','2014','1',' Enterprise architecture framework Enterprise architecture modeling language Domain-specific modeling language Language extension Meta-model Design rationale Telecommunication service','Abstract The competitive market forces organizations to be agile and flexible so as to react robustly to complex events. Modeling helps managing this complexity. However, in order to model an enterprise, many stakeholders, with different expertise, must work together and take decisions. These decisions and their rationale are not always captured explicitly, in a standard, formal manner. The main problem is to persuade stakeholders to capture them. This article synthesizes an approach for capturing and using the rationale behind enterprise modeling decisions. The approach is implemented through a domain-specific modeling language, defined as an extension of a standard enterprise architecture modeling language. It promotes coordination, enables presenting different stakeholders’ points of view, facilities participation and collaboration in modeling activities—activities focused here on enterprise architecture viewpoints. To present its benefits, such as rapid prototyping, the approach is applied to large organizations in the context of telecommunication service design. It is exemplified on modeling and capturing decisions on a conference service.','Software & Systems Modeling',1,'Vanea ChiprianovYvon KermarrecSiegfried RouvraisJacques Simonin','springer/service oriented architecture security.csv','springer','\0'),(67,'Interconnecting Federated Clouds by Using Publish-Subscribe Service','2013','36',' Cloud Federation Publish/Subscribe Service Intercommunication Reliability Denial of Service Cloud Computing','Abstract Cloud Federation is an emerging computing model where multiple resources from independent Cloud providers are leveraged to create large-scale distributed virtual computing clusters, operating as into a single Cloud organization. This model enables the implementation of environmental diversity for Cloud applications, and overcomes the provisioning and scalability limits of a single Cloud, by introducing minimal additional cost for the Cloud consumer. In such a scenario, it is necessary to leverage on specific networking technologies that enable the effective support of inter-Cloud communication services between Cloud providers. This paper proposes an interconnection solution for Cloud federations based on publish/subscribe services. Moreover, we discuss some fundamental concerns needed to satisfy the inter-Cloud communication requirements in terms of reliability and availability. Finally, we present some experimental results that highlight some key reliability and denial of service vulnerability concerns in this domain.','Cluster Computing',1,'Christian EspositoMassimo FiccoFrancesco PalmieriAniello Castiglione','springer/soa security.csv','springer',''),(68,'The research of information management based on networked manufacturing system','2012','','Grid; Information management; Networked manufacturing system; Service-oriented architecture','Using information technology to reform manufacturing industry is the important way to promote international competition of manufacturing industry. Networked manufacturing is an important part in Manufacture Information Engineering, it becomes a development direction of manufacturing industry in 21st century. In combining with the experiments and researches of the subject, this paper discusses current status of domestic and world networked manufacturing system, and studies information management technology on networked manufacturing system, such as communication technology of networked manufacturing, effective management and security on networked manufacturing, and designs models that correspond with the networked manufacturing system, including a communication model, an effective management model and a safe model. The practice indicates that these models have guaranteed the information management of networked manufacturing system effectively. Finally, the development of information management on networked manufacturing system is prospected. © 2012 IEEE.','',1,'Jiao H., Zhao Q.','scopus/service oriented architecture security.csv','scopus','\0'),(69,'Flexible procedural interoperability across security and coalition boundaries using rapidly re-configurable boundary protection definitions','2013','1','business process; Decentralized Operating Procedure; DOP; Interoperability; Lean Services; middleware; SOA','Existing configuration of boundary protection devices, which validate the content and context of information crossing between security domains, uses a set of accreditor-agreed steps individually agreed for every situation. This has traditionally been a slow and exacting process of negotiation between integrators and accreditors. The Decentralized Operation Procedure1 (DOP) technique allows interoperability definitions of system interactions to be created as XML files and deployed across the battlefield environment. By extending the security information definitions within the DOP technique, it is intended to provide sufficient incorporated information to allow boundary protection devices to also immediately load and utilize a DOP XML file and then apply established standards of security. This allows boundary devices to be updated with the same dynamism as the deployment of new DOPs and DOP interoperability definitions to also exploit coalitional capabilities having crossed security boundaries. The proposal describes an open and published boundary definition to support the aims of the MOD 23-13 Generic Base Architecture Defense Standard2 when working with coalition partners. The research aims are; a) to identify each element within a DOP that requires security characteristics to be described; b) create a means to define security characteristics using XML; c) determine whether external validation of an approved DOP requires additional authentication; d) determine the actions that end users will have to perform on boundary protection devices in support of these aims. The paper will present the XML security extensions and the results of a practical implementation achieved through the modification of an existing accredited barrier device. © 2013 SPIE.','',1,'Peach N.','scopus/soa security.csv','scopus','\0'),(70,'Cost-Effective Feature Placement of Customizable Multi-Tenant Applications in the Cloud','2014','7',' Distributed computing Cloud computing SPLE Application placement','Abstract Cloud computing technologies can be used to more flexibly provision application resources. By exploiting multi-tenancy, instances can be shared between users, lowering the cost of providing applications. A weakness of current cloud offerings however, is the difficulty of creating customizable applications that retain these advantages. In this article, we define a feature-based cloud resource management model, making use of Software Product Line Engineering techniques, where applications are composed of feature instances using a service-oriented architecture. We focus on how resources can be allocated in a cost-effective way within this model, a problem which we refer to as the feature placement problem. A formal description of this problem, that can be used to allocate resources in a cost-effective way, is provided. We take both the cost of failure to place features, and the cost of using servers into account, making it possible to take energy costs or the cost of public cloud infrastructure into consideration during the placement calculation. Four algorithms that can be used to solve the feature placement problem are defined. We evaluate the algorithm solutions, comparing them with the optimal solution determined using an integer linear problem solver, and evaluating the execution times of the algorithms, making use of both generated inputs and a use case based on three applications. We show that, using our approach a higher degree of multi-tenancy can be achieved, and that for the considered scenarios, taking the relationships between features into account and using application-oriented placement performs 25–40 % better than a purely feature-oriented placement.','Journal of Network and Systems Management',1,'Hendrik MoensEddy TruyenStefan WalravenWouter JoosenBart DhoedtFilip De Turck','springer/soa security.csv','springer','\0'),(71,'PMG-Pro: A Model-Driven Development Method of Service-Based Applications','2012','1','','Abstract In the Internet of Things, billions of networked and software-driven devices will be connected to the Internet. They can communicate and cooperate with each other to form a composite system. In this paper, we propose PMG-pro (present, model, generate and provide), a language independent, bottom-up and model-driven method for the development of such composite system. We envision that all devices in the Internet of Things provide their functionalities as services. From a service description, a service presenter generates source code (i.e., for the service invocations) and uses an abstract graphical representation to represent a service. The code is connected to the abstract graphical service representation. A service abstractor constructs the abstract graphical representations even more abstract in hierarchical service taxonomy. Software developers use the abstract graphical service presentations to specify new service-based applications, while the source code is used for the automation of code generation.','',2,'Selo SulistyoAndreas Prinz','springer/bpel security.csv','springer','\0'),(72,'Representing and Elaborating Quality Requirements: The QRA Approach','2013','1',' quality requirements (QRs) goal modeling business process modeling quality requirements analysis','Abstract This paper presents the quality requirements analysis ( \\(\\mathcal{QRA}\\) ) approach to requirements modeling. The \\(\\mathcal{QRA}\\) approach supports functional and non-functional requirements modeling in three dimensions: First, it extends functional goal modeling with non-functional goals. Second, it injects QR (quality requirement) specification into business process models. Third, it provides a set of rules for elaborating and refining QRs alongside functional decomposition of business processes. This paper describes \\(\\mathcal{QRA}\\) ’s conceptual foundations and illustrates them through goals and business processes of a real world stock trading system.','',2,'Jie SunPericles LoucopoulosLiping Zhao','springer/bpmn security.csv','springer','\0'),(73,'Automatic trust calculation for service-oriented systems','2014','0','','Among various service providers providing identical or similar services with varying quality of service, trust is essential for service consumers to find the right one. Manually assigning feedback costs much time and suffers from several drawbacks. Only automatic trust calculation is feasible for large-scale service-oriented applications. Therefore an automatic method of trust calculation is proposed. To make the calculation accurate, the Kalman filter is adopted to filter out malicious non-trust quality criterion (NTQC) values instead of malicious trust values. To offer higher detection accuracy, it is further improved by considering the relationship between NTQC values and variances. Since dishonest or inaccurate values can still influence trust values, the similarity between consumers is used to weight data from other consumers. As existing models only used the Euclidean function and ignored others, a collection of distance functions is modified to calculate the similarity. Finally, experiments are carried out to access the robustness of the proposed model. The results show that the improved algorithm can offer higher detection accuracy, and it was discovered that another equation outperformed the Euclidean function.','IET Software',1,'B. Ye; M. Nekovee; A. Pervez; M. Ghavami','ieee/service oriented architecture security.csv','ieee','\0'),(74,'Security-oriented cloud platform for SOA-based SCADA','2015','','Cloud computing; Critical infrastructure; SCADA; SOA','During the last 10 years, experts in critical infrastructure security have been increasingly directing their focus and attention to the security of control structures such as Supervisory Control and Data Acquisition (SCADA) systems in the light of the move toward Internet-connected architectures. However, this more open architecture has resulted in an increasing level of risk being faced by these systems, especially as they became offered as services and utilised via Service Oriented Architectures (SOA). For example, the SOA-based SCADA architecture proposed by the AESOP project concentrated on facilitating the integration of SCADA systems with distributed services on the application layer of a cloud network. However, whilst each service specified various security goals, such as authorisation and authentication, the current AESOP model does not attempt to encompass all the necessary security requirements and features of the integrated services. This paper presents a concept for an innovative integrated cloud platform to reinforce the integrity and security of SOA-based SCADA systems that will apply in the context of Critical Infrastructures to identify the core requirements, components and features of these types of system. The paper uses the SmartGrid to highlight the applicability and importance of the proposed platform in a real world scenario. © 2015 IEEE.','',1,'Baker T., Mackay M., Shaheed A., Aldawsari B.','scopus/service oriented architecture security.csv','scopus','\0'),(75,'Multiparty Session Nets','2014','3','','Abstract This paper introduces global session nets, an integration of multiparty session types (MPST) and Petri nets, for role-based choreographic specifications to verify distributed multiparty systems. The graphical representation of session nets enables more liberal combinations of branch, merge, fork and join patterns than the standard syntactic MPST. We use session net token dynamics to verify a flexible conformance between the graphical global net and syntactic endpoint types, and apply the conformance to ensure type-safety and progress of endpoint processes with channel mobility. We have implemented Java APIs for validating global session graph well-formedness and endpoint type conformance.','',2,'Luca FossatiRaymond HuNobuko Yoshida','springer/bpel security.csv','springer',''),(76,'User-Customisable Policy Monitoring for Multi-tenant Cloud Architectures','2012','0',' Cloud architecture Policy customisation Monitoring','Abstract Cloud computing needs end-user customisation and personalisation of multi-tenant cloud service offerings. Particularly, QoS and governance policy management and monitoring is needed. We propose a user-customisable policy definition solution that can be enforced in multitenant cloud offerings through automated instrumentation and monitoring. Service processes run by cloud and SaaS providers can be made policy-aware in a transparent way.','',2,'Ming-Xue WangClaus Pahl','springer/bpel security.csv','springer','\0'),(77,'Capturing and Aligning Assurance Requirements for Business Services Systems','2012','0',' service system business service assurance requirements goaloriented techniques business models construction sector service level management','Abstract In this chapter we introduce and illustrate a systematic and rigorous approach for the elicitation and the modelling of assurance requirements inherent to business services offered by a service system. The approach is based on guidelines provided by the ISO 15504 norm, which is applicable for the assessment of any type of process in order to check its compliance against assurance requirements. We explain how 15504 can be applied in the context of business services with the support provided by goal-oriented requirements engineering techniques like i* . Its use is illustrated through the handling of an excerpt of a real case from the construction sector complemented with expertise developed in IT service level management. While this chapter is focusing on the capture of business requirements and their transformation into a business oriented solution, we also briefly explain how this business view is part of a more complete methodology also encompassing the service value and the service software views associated with a service system.','',2,'Eric DuboisSylvain KubickiSophie RamelAndré Rifaut','springer/bpel security.csv','springer','\0'),(78,'9--10','2012','1','aspects, formal methods, reference monitors, security, service-oriented architecture','In this paper we introduce a model as a foundation for heterogeneous services, therefore unifying web services technologies in SOA (Service Oriented Architecture), specifically, SOAP/WS* and RESTful models. This model abstracts away from service implementations, in order to verify and to enforce some important security properties.','',1,'','acm/soa security.csv','acm','\0'),(79,'Semantic-based transaction model for web service','2013','3',' Web service Cloud system BPEL Semantic transaction model','Abstract Cloud computing technology has become more and more utilized in business application in today’s industrial fields. In general, many business systems developed based on web services are indeed heterogeneous software systems that process business data by complying with integrated business rules. Web services have until recently been regarded as software building blocks that can be assembled to construct the distributed business applications of the next generation and assist enterprises to promote operational efficiency and organizational flexibility. As a result, Web services can be employed to improve the integration of value chain processes and/or activities. However, Web services are usually implicit as a black box that prohibits users and developers from comprehending an actual scenario and present status inside the web service component as said developers deal with other associated heterogeneous components. Additionally, developers are unable to increase overall efficiency while integrating Web service components if they do not possess the ability to modify/improve the implementation scenario. This research first defines the component as corresponding state transitions that should be decomposed further into sub-transactions and semantic transactions, which can make possible re-implementation of the specific Web services in an efficient way and increase the overall throughputs for the new composite Web services. Secondly, this study implements an MTNet Project, which can be employed to assist developers’ analysis and construction of the semantic models for Web services according to the previously described definitions. Last, the simulation experiment provided in this manuscript proved that the proposed semantic model can indeed improve the throughput and, consequently, decrease the delay time for concurrent transactions.','Information Systems Frontiers',2,'Shing-Han LiShi-Ming HuangDavid C. YenJui-Chang Sun','springer/bpel security.csv','springer','\0'),(80,'BETaaS: A Platform for Development and Execution of Machine-to-Machine Applications in the Internet of Things','2016','0',' IoT platforms M2M Local cloud Fog computing Context awareness','Abstract The integration of everyday objects into the Internet represents the foundation of the forthcoming Internet of Things (IoT). Smart objects will be the building blocks of the next generation of applications that will exploit interaction between machines to implement enhanced services with minimum or no human intervention in the loop. A crucial factor to enable Machine-to-Machine (M2M) applications is a horizontal service infrastructure that seamlessly integrates existing IoT heterogeneous systems. The authors present BETaaS, a framework that enables horizontal M2M deployments. BETaaS is based on a distributed service infrastructure built on top of an overlay network of gateways that allows seamless integration of existing IoT systems. The platform enables easy deployment of applications by exposing to developers a service oriented interface to access things (according to a Things-as-a-Service model) regardless of the technology and the physical infrastructure they belong to.','Wireless Personal Communications',1,'Carlo VallatiEnzo MingozziGiacomo TanganelliNovella BuonaccorsiNicola ValdambriniNikolaos ZonidisBelén MartínezAlessandro MamelliDavide SommacampagnaBayu AnggorojatiSofoklis KyriazakosNeeli PrasadFrancisco Javier NietoOliver Barreto Rodriguez','springer/soa security.csv','springer',''),(81,'Enabling the IoT Paradigm in E-health Solutions through the VIRTUS Middleware','2012','8','Internet of Things;VIRTUS Middleware;XMPP;e-health;telemonitoring','In Europe, in a context of growing population and decreasing resources, ageing related diseases represent one of the most relevant challenges in terms of healthcare organization complexity, plus care levels and system financing balancing. Nowadays there are several researches that are studying the application of the IoT (Internet of Things) paradigm in the e-health field. This paper explains how a solution, built on the top of the VIRTUS IoT middleware, provides a valid alternative to current IoT solutions, which are mainly based on SOA (Service Oriented Architecture). VIRTUS leverage an Instant Messaging protocol (XMPP) to guarantee a (near) real-time, secure and reliable communication channel among heterogeneous devices. The presented development has been exploited in a healthcare case study: an implementation of a cost-savvy remote body movement monitoring system, aimed at classify daily patients\' activities, designed as a modular architecture and deployed in a large scale scenario. The paper analyzes the features offered by the VIRTUS middleware, if used within a e-health solution, providing a comparison with other well-known systems.','2012 IEEE 11th International Conference on Trust, Security and Privacy in Computing and Communications',1,'M. Bazzani; D. Conzon; A. Scalera; M. A. Spirito; C. I. Trainito','ieee/service oriented architecture security.csv','ieee','\0'),(82,'Utilizing linear subspaces to improve cloud security','2012','2','','Cloud computing is quickly becoming the infrastructure of choice for hosting data and software solutions for many individuals, businesses, and governmental organizations. While such systems may provide increased flexibility and utility, efficient and easily-managed cloud storage solutions that ensure data confidentiality are needed to maintain this trend. In this work, we propose an algebraic-based encoding solution to provide data confidentiality. Additionally, through the use of the various algebraic subspaces present in the coding process, we are able to verify basic Service Level Agreement (SLA) guarantees. We demonstrate the feasibility of our solution through implementations and deployments on test systems.','IEEE/IFIP International Conference on Dependable Systems and Networks Workshops (DSN 2012)',1,'D. Zage; J. Obert','ieee/service oriented architecture security.csv','ieee','\0'),(83,'Cloud migration for SMEs in a service oriented approach','2013','4','Cloud computing; cloud migration; migration framework; SMEs; SOA','Cloud computing has gained immense momentum during recent years and has ultimately become a viable solutions not only for larger firms, but also for small and medium-sized enterprises (SMEs). For smaller companies to stay competitive, many have therefore decided in favour of adapting cloud solutions. Given the multitude of issues and challenges that occur during the cloud migration phase, this work proposes a novel framework that helps SMEs to master migration related impediments. Firstly, the work takes into account SME specific requirements and articulates their importance during the cloud provider selection phase. The elicitation results demonstrate that factors such as security, reliability, cost, performance as well as flexibility and service and support have a pivotal role to play and require close attention. Secondly, decisive attributes were defined that qualify business components and services as cloud-fit. Finally, the framework itself was proposed, which focuses on a systematic service-oriented approach and helps companies to analyse their existing business processes in the course of cloud migration. The framework was verified in its practicability using a concrete scenario and a subsequent prototypical cloud implementation. © 2013 IEEE.','',1,'Nussbaumer N., Liu X.','scopus/soa security.csv','scopus','\0'),(84,'Validating Orchestration of Web Services with BPEL and Aggregate Signatures','2008','2','aggregate signatures;secure workflow;service orchestration','In this paper, we present a framework providing integrity and authentication for secure workflow computation based on BPEL Web service orchestration.Whereas much attention has been dedicated to security issues for Web services, no standard and practical solutions have been provided to secure workflows. In this paper, we address a recent cryptographic tool, aggregate signatures, to validate the orchestration by requiring all partners to sign the result of their computation. Security operations are performed during the orchestration and require no change in the services implementation. We present a prototype implementation for validating linear workflows and we evaluate its performance. We further give a generalization of our basic scheme that can be used to validate generic workflows.','on Web Services, 2008. ECOWS \'08. IEEE Sixth European Conference',2,'C. Blundo; E. D. Cristofaro; C. Galdi; G. Persiano','ieee/bpel security.csv','ieee','\0'),(85,'Service-oriented smart home applications: composition, code generation, deployment, and execution','2012','7',' Ontology Smart home Composition Code generation Service-oriented','Abstract A smart home usually has a variety of devices or home appliance, instead of designing software for a specific home, this paper proposes a service-oriented framework with a set of ontology systems to support service and device publishing, discovery of devices and their services, composition of control software using existing control services that wrap devices, deployment, and execution of the composed service in an computing environment, monitoring the execution, and recovery from device failure. The ontology systems specify semantic information about devices, services, and workflows used in various smart home, and users can compose and recompose services for their specific needs. New devices, workflows, and services can be added into ontology. Most of the steps in this process can be automated including code generation. For example, service composition will be carried out in three steps: abstract workflow design, function construction, and device discovery, and different codes can be generated for different computing platforms such as Java and Open Services Gateway initiative environments. In this way, a variety of smart home can be constructed rapidly using the framework by discovery and composition using existing services and workflows. This paper illustrates this framework using a media control example to illustrate the ontology, discovery, composition, deployment, execution, monitoring, and recovery.','Service Oriented Computing and Applications',1,'Wu LiYann-Hang LeeWei-Tek TsaiJingjing XuYoung-Sung SonJun-Hee ParkKyung-Duk Moon','springer/soa security.csv','springer','\0'),(86,'A Web Visualization System of Cyberinfrastructure Resources','2012','0',' cyberinfrastructure spatiotemporal visualization GIS','Abstract With the development of cyberinfrastructure (CI), the massive heterogeneous resources emerge gradually. The resources are multi-source, heterogeneous and spatiotemporally distributed. Traditional structural management of resources has been unable to meet the needs of global resource sharing because of the lack of efficiency in expressing spatiotemporal features of CI. Since the CI resources leap over time and space, it is essential to establish a unified spatiotemporal metadata model for CI services across different disciplines. The adoption of a system with intuitive resource visualization and management would aid interoperability and collaboration of scientific research activities among organizations and domains. In this paper, we propose a spatiotemporal metadata model which characterizes the resources as spatial entities with time and space dimensions. Furthermore, a web-based GIS platform is implemented for spatiotemporal visualization. The well-known data, computing and network resources are used as the cases in the model and the visualization system. This allows the easy integration of emerging CI services into the system. Our work here would provide the scientists with great benefits for the integration, management, spatiotemporal analysis of CI resources and auxiliary optimization of resource distribution.','',1,'Yuwei WangKaichao WuDanhuai GuoWenting XiangBaoping Yan','springer/service oriented architecture security.csv','springer','\0'),(87,'A novel architecture for green document services — GDS','2013','0','GDS;Internet and Mobile Network;SOA;Smart Devices','An architecture for SOA based universal Green Document Services - GDS system is proposed in this paper. This GDS system uses internet and mobile network, is a revolutionary idea to change the whole world, perhaps to save billions of trees from getting converted into paper media; using the existing Post Office concept, the GDS requires that the sender and receiver to have a smart device to connect to internet / mobile network. GDS will handle all the Document Services Systems involving letters, documents, bills, coupons, receipts etc., which doesn\'t require physical objects like credit cards and parcels. The proposed GDS will serve a one stop shop solution for all documents related transactions/archival.','Computational Intelligence and Computing Research (ICCIC), 2013 IEEE International Conference on',1,'K. Nallaperumal; S. Arumugaperumal; N. Nainar; K. Marappan; N. Vishwanath','ieee/service oriented architecture security.csv','ieee','\0'),(88,'The Problem of Handling Multiple Headers in WS-Security Implementations','2014','0','SOAP;WS-Security;banking application;security header','This paper discusses some practical problems encountered when generating multiple WS-Security confidentiality headers to be handled by different intermediaries along the SOAP message delivery chain of a real banking application. A patch using a special-purpose encryption component is described.','Computer Software and Applications Conference Workshops (COMPSACW), 2014 IEEE 38th International',1,'E. Damiani; V. Coviello; F. Frati; C. Santacesaria','ieee/service oriented architecture security.csv','ieee','\0'),(89,'On Guaranteeing Global Dependability Properties in Collaborative Business Process Management','2012','0','','Abstract The Service-Oriented Architecture (SOA) paradigm supports a collaborative business model, where business applications are built from independently developed services, and services and applications build up complex dependencies. Guaranteeing high dependability levels in such complex environment is a key factor for the success of this model. In this chapter we discuss issues concerning the design of such software systems, evidencing the limits of the proposed approaches, and suggesting directions for advancements in this field. Moreover, we also discuss issues concerning the case of self-adaptive SOA systems, whose goal is to self- configure themselves, to cope with changes in the operating conditions and to meet the required dependability with a minimum of resources.','',2,'Valeria CardelliniEmiliano CasalicchioVincenzo GrassiFrancesco Lo Presti','springer/bpel security.csv','springer','\0'),(90,'Model-driven engineering of middleware-based ubiquitous services','2014','0',' Service-oriented development Model-driven service engineering Service-oriented middleware Ubiquitous computing','Abstract Supporting the execution of service-oriented applications over ubiquitous networks specifically calls for a service-oriented middleware (SOM), which effectively enables ubiquitous networking while benefiting from the diversity and richness of the networking infrastructure. However, developing ubiquitous applications that exploit the specific features offered by a SOM might be a time-consuming task, which demands a deep knowledge spanning from the application domain concepts down to the underlying middleware technicalities. In this paper, first we present the model-driven development process underpinning ubi SOAP, a SOM for the ubiquitous networking domain. Then, based on the domain concepts defined by the conceptual model of ubi SOAP, its architecture and its technicalities, we propose a domain-specific environment, called ubi DSE, that aids the development of applications that exploits the ubi SOAP features, from design to implementation. ubi DSE allows developers to focus on the main behavior of the modeled systems, rather than on complex details inherent to ubiquitous environments. As part of ubi DSE, specific tools are provided to automatically generate skeleton code for service-oriented applications to be executed on ubi SOAP-enabled devices, hence facilitating the exploitation of ubi SOAP by developers.','Software & Systems Modeling',1,'Marco AutiliMauro CaporuscioValérie IssarnyLuca Berardinelli','springer/service oriented architecture security.csv','springer','\0'),(91,'User Driven Data Access Mechanisms','2013','0','','Abstract Most climate and climate impact studies include data analyses and therefore rely on scientific data. Generally, only a small part out of the whole available data of an experiment or model run is used. Hosting these data and making it easily accessible meets two challenges: First, the community of data users virtual organization (VO) grows and becomes more diverse, e.g. the Geographical Information System (GIS) users have started to use scientific climate data. The community investigates natural scientific as well as political, economical and social scientific questions (e.g. climate impact). And as heterogeneous as their questions are their data requirements. The second challenge lies in the continuous intensive growth of the amount of data, which is spread over different specialized data archives worldwide. Researchers create greater amounts of data in a shorter amount of time on the quickly evolving high-performance computing systems, whereas the storage amounts and network capacities develop less rapidly.','',1,'Martina Stockhause','springer/webservice security.csv','springer','\0'),(92,'Security modelling along business process model of SOA systems using modified \"UML-SOA-Sec\"','2012','','Business Process Modelling; Domain Specific Language; Model Driven Architecture; Security Objectives; Service Oriented Architecture; Unified Modelling Language','In SOA environment, software systems are composed of services which are scattered across enterprises and architectures. Security play vital role during the design, development and operation of SOA applications. However, analysis of today\'s software development approaches reveals that the engineering of security into the system design is often neglected. This may happened due to the fact that the general purpose modelling languages lack the elements for security modelling. As a result, either security is ignored in the model or indicated in a textual way. The post-hoc, low-level integration of security has a negative impact on resulting SOA applications. A Domain Specific Language named \"UML-SOA-Sec\" is proposed for security modelling along the business process modelling of SOA Applications. © 2012 IEEE.','',1,'Saleem M.Q., Jaafar J., Fadzil Hassan M.','scopus/service oriented architecture security.csv','scopus','\0'),(93,'Expert discovery and interactions in mixed service-oriented systems','2012','10','crowdsourcing; hubs and authorities; Human-provided services; service-oriented expertise provisioning; social trust','Web-based collaborations and processes have become essential in today\'s business environments. Such processes typically span interactions between people and services across globally distributed companies. Web services and SOA are the defacto technology to implement compositions of humans and services. The increasing complexity of compositions and the distribution of people and services require adaptive and context-aware interaction models. To support complex interaction scenarios, we introduce a mixed service-oriented system composed of both human-provided and Software-Based Services (SBSs) interacting to perform joint activities or to solve emerging problems. However, competencies of people evolve over time, thereby requiring approaches for the automated management of actor skills, reputation, and trust. Discovering the right actor in mixed service-oriented systems is challenging due to scale and temporary nature of collaborations. We present a novel approach addressing the need for flexible involvement of experts and knowledge workers in distributed collaborations. We argue that the automated inference of trust between members is a key factor for successful collaborations. Instead of following a security perspective on trust, we focus on dynamic trust in collaborative networks. We discuss Human-Provided Services (HPSs) and an approach for managing user preferences and network structures. HPS allows experts to offer their skills and capabilities as services that can be requested on demand. Our main contributions center around a context-sensitive trust-based algorithm called ExpertHITS inspired by the concept of hubs and authorities in web-based environments. ExpertHITS takes trust-relations and link properties in social networks into account to estimate the reputation of users. © 2012 IEEE.','',1,'Schall D., Skopik F., Dustdar S.','scopus/soa security.csv','scopus','\0'),(94,'Dynamic Performance Management in Multi-tenanted Business Process Servers Using Nonlinear Control','2012','1','','Abstract The methodologies to develop multi-tenanted architectures have been investigated in the recent literature due to the popularity of cloud computing. A number of challenges need to be overcome if multi-tenanted architectures are to be effective and efficient. Among the challenges is the management of performance properties while effectively sharing the limited resources between the tenants. This work presents an approach to design such a management system for a multi-tenanted business process server. This approach not only enables performance to be maintained at different levels for different tenants depending on their priorities, but also autonomously detects the overloads of aggressive tenants and dynamically changes the control objectives to safeguard the business operations of other tenants. The novelty of the proposed approach is the use of the nonlinear feedback control. The experiment results indicate that the proposed nonlinear control approach achieves the objectives much better compared to the existing fixed and linear control techniques.','',2,'Tharindu PatikirikoralaIndika KumaraAlan ColmanJun HanLiuping WangDenis WeerasiriWaruna Ranasinghe','springer/bpel security.csv','springer','\0'),(95,'PBA4WSSP: a policy-based architecture for web services security processing','2014','1',' Web services Security Security policy PBA4WSSP','Abstract Due to the dynamic, heterogeneous and interorganizational nature, different web services and different ports or operations in the same service, even the same services at different times may have their different security requirements because of their different security domains and different business backgrounds. How to design a flexible, fine-grained and comprehensive architecture for web services security processing has become a matter of great urgency. However, no ideal solutions have been worked out for these problems. As a result of our study, we have presented in this paper a policy-based architecture termed policy-based architecture for web services security processing (PBA4WSSP) to meet the dynamic, complete and fine-grained security requirements. In PBA4WSSP, the processing of all security problems is based on security policy in service stage to support flexibly security configuration. Moreover, we have designed a service policy model to describe the fine-grained security requirements. And the conversion method between security policy model and security policy expression has also been described. In addition, a staged complete security processing architecture is provided to reduce the dependency among protocol implementations. Furthermore, with PBA4WSSP, a web service security module has been designed and implemented as well. Eventually, the performance evaluation results amply demonstrate that our system is flexible and usable.','Service Oriented Computing and Applications',1,'Hao ZengDianfu MaYongwang ZhaoZhuqing Li','springer/soa security.csv','springer','\0'),(96,'SoaML and UPIA Model Integration for Secure Distributed SOA Clouds','2012','1','DoDAF;SOA;SOA-RA;SOA-RM;SoaML;UML;UPIA;modeling;services','The U.S. Department of Defense (DoD) specifies the Department of Defense Architecture Framework (DoDAF) for military architecture models. Industry typically uses different modeling tools, including the Unified Modeling Language. There are many modeling techniques for Service Oriented Architecture (SOA). DoDAF supports SOA through DoDAF version 2.0. Industry supports SOA through several toolsets including UML Profile-based Integrated Architecture (UPIA) and the SOA modeling language (SoaML). This paper presents background information on SOA modeling techniques and some methods to transition between DoD and commercial tools. Variables and metrics for analysis in SOA models are presented. UPIA is advanced as a means to transition between DoDAF 2.0 and SoaML. SoaML is rendered within UPIA models to help address potential future DoD initiatives for implementation of SOA within cloud architectures. This paper advances methods for industry-to-DoDAF model integration for secure distributed SOA clouds and provides background on defense and industry modeling techniques for enterprise-class SOA.','2012 IEEE Eighth World Congress on Services',1,'R. W. Maule','ieee/service oriented architecture security.csv','ieee','\0'),(97,'Testing of PolPA-based usage control systems','2014','3',' Authorization systems PolPA language Usage control History-based access control Testing Test case generation','Abstract The implementation of an authorization system is a critical and error-prone activity that requires a careful verification and testing process. As a matter of fact, errors in the authorization system code could grant accesses that should instead be denied, thus jeopardizing the security of the protected system. In this paper, we address the testing of the implementation of the Policy Decision Point (PDP) within the PolPA authorization system that enables history-based and usage-based control of accesses. Accordingly, we propose two testing strategies specifically conceived for validating the history-based access control and the usage control functionalities of the PolPA PDP. The former is based on a fault model able to highlight the problems and vulnerabilities that could occur during the PDP implementation. The latter combines the standard technique for conditions coverage with a methodology for simulating the continuous control of the PDP during the runtime execution. Both strategies are implemented within a testing framework supporting the automatic generation and execution of security test suites. Results produced by the application of this testing framework to a real case study are presented.','Software Quality Journal',1,'Antonia BertolinoSaid DaoudaghFrancesca LonettiEda MarchettiFabio MartinelliPaolo Mori','springer/soa security.csv','springer','\0'),(98,'Docker','2015','1','Docker; Docker containers; James Turnbull; microservices; SE Radio; Software Engineering Radio','In episode 217 of Software Engineering Radio, host Charles Anderson talks with James Turnbull, a software developer and security specialist who\'s vice president of services at Docker. Lightweight Docker containers are rapidly becoming a tool for deploying microservice-based architectures. © 2015 IEEE.','',1,'Anderson C.','scopus/microservice security.CSV','scopus',''),(99,'Geospatial Data Interoperability, Geography Markup Language (GML), Scalable Vector Graphics (SVG), and Geospatial Web Services','2015','0','','Abstract Although many GIS databases have been developed, geospatial data interoperability is still a challenge faced by the geospatial community. GML, as a standard data exchange format, aims to achieve the goal of data interoperability by providing mechanisms for data sharing and reuse at the feature level over the Web. While GML provides a means to encode and transport geospatial features into XML, SVG provides a means to display these GML-encoded geospatial features into vector maps on the Web. The Geospatial Web Services Implementation Specifications developed by the OGC, such as Web Feature Service (WFS), Web Map Service (WMS), Web Coverage Service (WCS), Web Processing Service (WPS), and Catalogue Service (CS), provide the state-of-the-art technologies for achieving geospatial data interoperability at the syntax level. Services-Oriented Architecture (SOA) moves away from monolithic systems towards distributive systems with interoperable components, and implementations of the SOA may decrease problems in data and model duplication and maintenance.','',2,'Chuanrong ZhangTian ZhaoWeidong Li','springer/bpel security.csv','springer',''),(100,'What Can Agent-Based Computing Offer Service-Oriented Architectures, and Vice Versa?','2012','1','','Abstract This article serves as a record of a panel discussion held at PRIMA in November, 2010. The panel consisted of two academic and three industry representatives, and thus provided a rare opportunity to discuss the relationship between agent-based computing and service-oriented architectures from both points of view. The basic question for the panel was to identify the key research and industry issues that arise in the deployment of systems based on service-oriented architectures, and in particular to address whether the agent-based computing paradigm offers any resolution of those issues. The question was also posed whether applications based on service-oriented architectures provide a suitable platform for implementing agent-based systems, which are presently limited in application by comparison. This summary is presented with the aim of stimulating further academic and industry collaborative research in this fast growing area which potentially has wide-ranging practical application.','',1,'Wayne WobckeNirmit DesaiFrank DignumAditya GhoseSrinivas PadmanabhuniBiplav Srivastava','springer/service oriented architecture security.csv','springer','\0'),(101,'Component-Based Information Service Platform for Heating Industry','2014','0','SOA;business process;heating;information integration;service platform','To solve the problem of low information integration for heating industry, a framework of information service platform is proposed. The framework realizes information sharing and integration control of central heating. Four core components are designed to implement process development, service collaboration, publish/subscribe and event rule. A heating management system has been designed based on these components, which realizes intelligent and security of the production management. And three application subsystems have been developed to realize heating maintenance service, multi-level alarm service and heating charging service. The information service platform effectively achieves information integration and rapid service development.','Web Services (ICWS), 2014 IEEE International Conference on',1,'G. Hu; B. Wu; B. Cheng; J. Chen','ieee/service oriented architecture security.csv','ieee','\0'),(102,'Service-oriented middleware architecture for mobile personal health monitoring','2012','1','Diabetes; Internet of Things; Middleware; Remote Healthcare Monitoring; Semantics; SOA','Developers of applications for health and wellness monitoring are facing a diversity of protocols, standards and communication mechanisms for collecting data from heterogeneous sensors, devices and services, as well as when exporting data to various health and wellness services and systems. The REACTION platform addresses this using a middleware approach which leverages the development tasks to a service-oriented level allowing developers to use open standard technologies like web services. The REACTION SOA (Service-Oriented Architecture) approach offers a scalable and inter-operable platform for use in different healthcare settings. The REACTION applications are based on numerous individual services that can be developed and deployed to perform clinical monitoring and feedback tasks, execute distributed decision support and security tasks, support work flow management, and perform event handling and crisis management. © 2012 ICST Institute for Computer Science, Social Informatics and Telecommunications Engineering.','',1,'Ahlsén M., Asanin S., Kool P., Rosengren P., Thestrup J.','scopus/service oriented architecture security.csv','scopus','\0'),(103,'Implementing the logical security framework for E-commerce based on service-oriented architecture','2016','','Encrypted database; Legacy systems; Security attacks; Service-oriented architectures; Web services','Logical security of the modern E-commerce system is one of the major issues, effecting the growth of sophisticated E-commerce systems. Due to poor designing and configuration of the modern E-commerce’s system, they lacked in quality attributes such as logical security. In the last decade, the number of highly equipped and trained intruders is increased significantly, due to increase in availability of computer systems and internet. These highly equipped and trained intruders are serious threat for the growing E-commerce industry. One of the leading Indian newspapers in 2013 reported about bugs on some of the most famous E-commerce websites such as Western Union and Facebook. This paper proposed a logical security framework for the small-and medium-sized E-commerce systems. The proposed logical security framework is inherited the benefits of serviceoriented architecture and presents an analysis of the eminent security attacks which can be prevented. The proposed logical security framework is implemented and validated on osCommerce, an open source E-commerce. © Springer Science+Business Media Singapore 2016.','',1,'Luhach A.K., Dwivedi S.K., Jha C.K.','scopus/service oriented architecture security.csv','scopus',''),(104,'Enhancing Model Driven Security through Pattern Refinement Techniques','2013','0','','Abstract Security requirements are typically defined at a business abstract level by non-technical security officers. However, in order to fulfill the security requirements, technical security controls or mechanisms have to be considered and deployed on the target system. Based on these security controls security patterns have to be selected. The MDS (Model Driven Security) approach uses security requirement models at a high level of abstraction to automatically generate security artefacts that configure security services. The main drawback of the current MDS solutions is that they consider just one security pattern for each security requirement. Current SOA and cloud services are scattered across multiple heterogeneous security domains. Partners and clients with different security infrastructures are changing continuously, which requires the support of multiple patterns for the same security service. The challenge is to provide configurable security services that can support different patterns. In order to overcome this shortcoming we propose a framework that integrates pattern refinement to the MDS approach. In this approach a security pattern refinement layer is added to the traditional MDS layers. The pattern refinement layer supports the configuration of one security service with different patterns, which are stored in a pattern catalog. For example, our approach enables the generation of security artefacts that configure a non-repudiation service to support both fair non-repudiation and naive non-repudiation patterns.','',2,'Basel KattMatthias GanderRuth BreuMichael Felderer','springer/bpel security.csv','springer','\0'),(105,'A Metamodel for the Design of Access-Control Policy Enforcement Managers: Work in Progress','2012','0','','Abstract This paper presents a metamodel of a policy enforcement manager responsible for applying the rules defined in security policies with the aim to constraint the access to the functionalities and data of information systems. The metamodel is useful to derive platform-specific security models that provide the basis for the design and implementation of such managers for Web services as well as legacy information systems in various business sectors.','',2,'Michel Embe JiagueMarc FrappierFrédéric GervaisRégine LaleauRichard St-Denis','springer/bpel security.csv','springer','\0'),(106,'Abstract privacy policy framework: Addressing privacy problems in SOA','2012','','','This paper argues that privacy policies in SOA needs a lifecycle model. We formalize the lifecycle of personal data and associated privacy policies in Service Oriented Architectures (SOA), thus generalizing privacy-friendly data handling in cross-domain service compositions. First, we summarize our learning in two research projects (PrimeLife and SecPAL for Privacy) by proposing generic patterns to enable privacy policies in SOA. Second, we map existing privacy policy technologies and ongoing research work to the proposed abstraction. This highlights advantages and shortcomings of existing privacy policy technologies when applied to SOA. © 2012 Springer-Verlag.','',1,'Bussard L., Pinsdorf U.','scopus/service oriented architecture security.csv','scopus','\0'),(107,'A survey of methods and approaches for reliable dynamic service compositions','2014','18',' Composite service Service architecture Reliability evaluation Reliability-awareness','Abstract An increasing amount of today’s software systems is developed by dynamically composing available atomic services to form a single service that responds to consumers’ demand. These composite services are distributed across the network, adapted dynamically during run-time, and still required to work correctly and be available on demand. The development of these kinds of modern services requires new modeling and analysis methods and techniques to enable service reliability during run-time. In this paper, we define the required phases of the composite service design and execution to achieve reliable composite service. These phases are described in the form of a framework. We perform a literature survey of existing methods and approaches for reliable composite services to find out how they match with the criteria of our framework. The contribution of the work is to reveal the current status in the research field of reliable composite service engineering.','Service Oriented Computing and Applications',2,'Anne ImmonenDaniel Pakkala','springer/bpel security.csv','springer',''),(108,'Coping with the complexity of SOA systems with message forensics','2012','','forensics; message mediation; messaging network; SOA','This paper introduces an approach to construct SOA (Service Oriented Architecture) systems using the so called a synchronous messaging network. An asynchronous messaging network (or simply messaging network) refers to an overlay network (over LAN, VPN, Internet, etc.) that allows exchanging well-formatted asynchronous messages (typically in XML) between the service providers and consumers in the system. The proposed approach aims at reducing the operation and maintenance cost of the system by using a messaging network enhanced with the capability to store, inspect and analyze selected portions of the exchanged messages under the strict control of security and privacy. Complexity makes any information system vulnerable to design flaws, operation error, and security problems. The proposed approach facilitates analyzing these problems associated with complex SOA systems through the message-store analysis. We consider that the application of computer forensics to the message store in SOA helps the system administrator to identify and fix various problems. The requirements for the messaging network for SOA systems are also presented. © 2012 IEEE.','',1,'Hayashi T., Kara A., Miyazaki T., Iwase J., Fukuhara H., Saburi T., Hisada M.','scopus/service oriented architecture security.csv','scopus','\0'),(109,'OR.NET: Safe Interconnection of Medical Devices','2014','2','','Abstract This position paper gives an overview on the OR.NET project which focuses on the dynamic and safe interconnection of medical devices in an operating room. A brief overview of the legal situation for the approval of medical devices is given to highlight today’s limitations of the dynamic interconnection of safety critical devices in hospitals. A collection of methods equipped with a methodology is presented and discussed, which is intended to replace current integration tests at runtime.','',1,'Franziska KühnMartin Leucker','springer/service oriented architecture security.csv','springer','\0'),(110,'Experimenter\'s Portal: The Collection, Management and Analysis of Scientific Data from Remote Sites','2012','0','cloud computing, e-science, remote instrument control, service-oriented architecture, web-based services','This paper describes an e-Science initiative to enable teams of scientists to run experiments with secure links at one or more advanced research facilities. The software provides a widely distributed team with a set of controls and screens via common browsers to operate, observe and record essential parts of an experiment and to access remote cloud-based analysis software to process the large data sets that are often involved in complex experiments. This paper describes the architecture of the software, the underlying web services used for remote access to research facilities and describes the cloud-based approach for data analysis. The core services are general and can be used as the basis for access to a variety of systems, though specific screen interfaces and analysis software must be tailored to a facility. For illustrative purposes, we focus on use of the system to access a single site - a synchrotron beamline at the Canadian Light Source. We conclude with a discussion of the generality and extensibility of the software and services.','',1,'M. Bauer and N. S. McIntyre and N. Sherry and J. Qin and M. Suominen Fuller and Y. Xie and O. Mola and D. Maxwell and D. Liu and E. Matias','acm/service oriented architecture security.csv','acm','\0'),(111,'Security Policy Enforcement in BPEL-Defined Collaborative Business Processes','2007','3','Business Process Execution Language (BPEL);Collaborative Business Processes;Information Flow Analysis;Security Policy Enforcement;Semantic Analysis;Service Oriented Computing (SOC);Web Services','This paper presents an approach to security policy enforcement with collaborative business processes defined using BPEL and deployed across enterprise domain boundaries for execution. The assessment of compliance with security policies at the location where a BPEL script is to be executed is facilitated by re-formulating the security policies with respect to the potential of violation inherent in BPEL The results of an analysis of the security-relevant semantics of BPEL-defined business processes conducted for this purpose indicate the paramount role of information flow analysis in business processes. Based on these results, the paper proposes an XML-based schema for specifying security policies for cross-organisational business processes that allows for automatic checking of BPEL scripts for compliance to these security policies. The paper also introduces a prototype implementation of an automatic compliance check that approves the feasibility of the method for practical application in security policy enforcement.','Data Engineering Workshop, 2007 IEEE 23rd International Conference on',2,'K. P. Fischer; U. Bleimann; W. Fuhrmann; S. M. Furnell','ieee/bpel security.csv','ieee','\0'),(112,'Methods and Tools for Knowledge Exploitation in SOA Systems','2012','0','','','New Generation Computing',1,'Adan GrzechJanusz Sobecki','springer/service oriented architecture security.csv','springer','\0'),(113,'A Model-checking Approach to Analysing Organisational Controls in a Loan Origination Process','2006','34','delegation, model-checking, organisational control, revocation, separation','Proceedings of the Eleventh ACM Symposium on Access Control Models and Technologies','',2,'Andreas Schaad and Volkmar Lotz and Karsten Sohr','acm/bpel security.csv','acm',''),(114,'Self-adaptive Service Deployment in Context-Aware Systems','2014','0',' Context-awareness self-adaptation ubiquitous environments Service Oriented Architecture (SOA)','Abstract Ubiquitous environments present a dynamic network topology which implies frequent context changes which can affect the availability of the services deployed in the system. In order to obtain the full potential that this kind of environments can provide to assist human beings, this challenge must be faced. Service replication models in combination with self-adaptive capabilities may help to improve service availability and strengthen the system. In this work, it is presented a conceptual model to support a run-time service deployment taking into consideration relevant context information, such as resource availability, network topology and service requirements.','',1,'Gabriel Guerrero-ContrerasJosé Luis GarridoCarlos Rodríguez-DomínguezSara Balderas-Díaz','springer/service oriented architecture security.csv','springer','\0'),(115,'Inferring relevance and presence of evidence in service-oriented and SaaS architectures','2016','','Bayes methods; Conferences; Forensics; Security; Semantics; Service-oriented architecture','Gathering forensic evidence in distributed or cloud environments poses a number of legal, administrative, and technical challenges even at relatively coarse levels of granularity. For Software-As-A-Service (SaaS) and related Service-Oriented Architectures (SOA), however, the addition of loose binding lending such architectures their important flexibility and adaptability renders even identifying possible loci of evidence problematic. Moreover, even where the existence of evidence is known, its relevance for a given hypothesis may vary. We describe an approach to identify the existence of potential evidence based on a causality model of control flow, and seek to prioritise relevance based on a probabilistic graph model. This allows not only the explicit formulation of hypotheses and derivation of criteria for locating and retrieving evidence to be evaluated by Bayesian belief networks (BBN), but to minimise the otherwise highly problematic complexity of maximum a posteriori (MAP) hypotheses based on service orchestration and choreography semantics. © 2015 IEEE.','',1,'Almulla S., Iraqi Y., Wolthusen S.D.','scopus/service oriented architecture security.csv','scopus',''),(116,'A Low-Cost Security Certification Scheme for Evolving Services','2012','6','Evolving services;Model-based testing;SOA;Security certification','Security certification schemes for Service-Oriented Architecture (SOA) extend service specifications with the evidence that a service supports a set of security properties and provides a given level of assurance. However, services are subject to continuous refinements, and uncontrolled changes can easily invalidate existing certification results and require re-certification from scratch, with high costs and overheads on service providers. In this paper, we present an approach to manage the impact of service evolution on security certification. Our approach aims to support the incremental certification of evolving services and re-use, as much as possible, the certification evidence available from older certificates in the release of a new certificate.','Web Services (ICWS), 2012 IEEE 19th International Conference on',1,'M. Anisetti; C. A. Ardagna; E. Damiani','ieee/service oriented architecture security.csv','ieee','\0'),(117,'The SmarterContext Ontology and Its Application to the Smart Internet: A Smarter Commerce Case Study','2013','1',' dynamic context smart internet personal web context representation semantic web ontologies context reasoning smarter commerce','Abstract In the smart internet interactions must be situation-aware and smart. That is, they must be realized with awareness of, and adaptation to users’ individual and collective context situations. Therefore, context management is crucial to deliver contents and services that are relevant to the user’s matters of concern. This paper presents the S marter C ontext ontology, our semantic web approach to context representation and reasoning applicable to user-centric domains of the smart internet. We illustrate the application of the S marter C ontext ontology using a personal web case study based on IBM’s smarter commerce initiative. This case study demonstrates how our ontology supports context representation and reasoning to improve the relevance of retailer offers with respect to shopper situations. Our ontology is the core of the S marter C ontext infrastructure, our context management solution that exploits user web interactions as sources of meaningful personal context information, and empowers users to control context gathering and provisioning.','',1,'Norha M. VillegasHausi A. Müller','springer/webservice security.csv','springer','\0'),(118,'Automated Risk Mitigation in Business Processes','2012','1','','Abstract This paper proposes a concrete approach for the automatic mitigation of risks that are detected during process enactment. Given a process model exposed to risks, e.g. a financial process exposed to the risk of approval fraud, we enact this process and as soon as the likelihood of the associated risk(s) is no longer tolerable, we generate a set of possible mitigation actions to reduce the risks’ likelihood, ideally annulling the risks altogether. A mitigation action is a sequence of controlled changes applied to the running process instance, taking into account a snapshot of the process resources and data, and the current status of the system in which the process is executed. These actions are proposed as recommendations to help process administrators mitigate process-related risks as soon as they arise. The approach has been implemented in the YAWL environment and its performance evaluated. The results show that it is possible to mitigate process-related risks within a few minutes.','',2,'Raffaele ConfortiArthur H. M. ter HofstedeMarcello La RosaMichael Adams','springer/bpel security.csv','springer','\0'),(119,'Towards a framework for the development of adaptable service-based applications','2014','3',' Service-based application life-cycle Service-based application adaptation Maintenance process Software process','Abstract Service-oriented computing is a promising computing paradigm which facilitates the composition of loosely coupled and adaptable applications. Unfortunately, this new paradigm does not lend itself easily to traditional software engineering methods and principles due to the decentralised nature of software services. The goal of this paper is to identify a set of engineering activities that can be used to develop adaptable service-based applications. Rather than focusing on the entire service-based application development life-cycle, this paper will focus on adaptation-specific processes and activities and map them to an existing high-level service-based application development life-cycle. Existing software engineering literature as well as research results from service engineering research is reviewed for relevant activities. The result is an adaptation framework that can guide software engineers in developing adaptable service-based applications.','Service Oriented Computing and Applications',1,'Stephen LaneQing GuPatricia LagoIta Richardson','springer/soa security.csv','springer','\0'),(120,'Scalability Patterns for Platform-as-a-Service','2012','6','Cloud;Platform-as-a-Service;Scalability','Platform-as-a-Service is a cloud-based approach that provides enterprises with all the functionalities for developing, deploying, and administering services, without the burden of installing, configuring, and managing the underlying middleware, operating system, and hardware. In this context, scalability becomes a fundamental requirement, and appropriate solutions need to be studied and evaluated. In this paper, we present different scalability patterns for a Platform-as-a-Service infrastructure and a two-level approach to performance monitoring allowing automatic scalability management. We also provide a performance evaluation of the scalability patterns on a Service-Oriented Architecture (SOA) PaaS, which considers the impact on performance of SOA security standards.','Cloud Computing (CLOUD), 2012 IEEE 5th International Conference on',1,'C. A. Ardagna; E. Damiani; F. Frati; D. Rebeccani; M. Ughetti','ieee/service oriented architecture security.csv','ieee','\0'),(121,'Exploiting SAaaS in Smart City Scenarios','2013','0',' Cloud sensors and actuators Smart Cities mobile crowdsensing','Abstract Most of the current shortcomings in relation to Clouds made up of sensing resources can be addressed, as detailed in past work from the authors, following a Sensing and Actuation as a service (SAaaS) approach, i.e. enabling an Infrastructure-oriented (IaaS-like) provisioning model for sensors and actuators. The aforementioned approach matches the technological requirements and constraints springing around certain application domains belonging to the Future Internet research area. One of the most prominent scenarios is computer-assisted data treatment and automation of urban areas and public facilities, going under the umbrella term of a so-called Smart City. Aim of this paper is to provide specific processes, rules and guidelines for the adoption of the SAaaS paradigm in IT infrastructure powering Smart Cities. Such artifacts are for assessing the feasibility of deploying Smart City applications over SAaaS, moreover the design of some specific use cases is presented and discussed.','',1,'Salvatore DistefanoGiovanni MerlinoAntonio Puliafito','springer/service oriented architecture security.csv','springer','\0'),(122,'Comparative study of service-based security-aware business processes automation tools','2013','','Automation; Business processes; Service composition; Web services','The use of business processes to model and design business activities is becoming a reality to a significant number of companies. Meanwhile, the Service-Oriented Architecture (SOA) is being a widely adopted strategy for business processes execution, which often demands communication between different (and remote) services. This fact leads to the need of incorporating security elements into business processes, because sensitive data can be targeted in the communication process. Existing tools currently focus both on the functional automation by translating high-level business processes in executable artifacts and/or on the security automation by translating security requirements into executable security configurations. In this work, we present a comparative study that evaluates these tools using relevant metrics. A solution named BPA-Sec Analyzer was also developed to automatically generate relevant statistics information related to the produced artifacts. An illustrative scenario is introduced to support the comparison/evaluation. © 2013 IEEE.','',1,'Lins F., Damasceno J., Medeiros R., Sousa E., Rosa N.','scopus/service oriented architecture security.csv','scopus','\0'),(123,'Secure integrated framework for business processes','2015','','Business Process Security; Integrated Framework; Secure Framework','Business processes are most widely used industry oriented approaches for service composition. These are capable of solving complex issues in grid computing, cloud computing and heterogeneous networks. Business process can develop and deploy the workflow design with the help of BPEL language. These business processes are lacking into security aspects such as, encryption, decryption, authentication, load balancing activities. There is need of secure integrated framework for business processes, so that its network environment is secured for intended audience. In this paper, a secure integrated framework is proposed for business processes and its communication environment over the network because of their wide scope of application support. © 2015 IEEE.','',2,'Bhandari R., Suman U.','scopus/bpel security.csv','scopus',''),(124,'A Proactive Solution to Manage Web Service Unavailability in Service Oriented Software Systems','2016','0',' Web service availability Proactive solutions Reactive solution Software agents','Abstract A service oriented application consists of component web services which cooperate with each other to offer the desired functionality. Due to the distributed and unpredictable nature of the underlying environment, the component web services have uncertain dependability characteristics. This paper looks into the issue of web service availability. The paper proposes a proactive framework to manage the situation when third party web services become unavailable. Software agents are employed to monitor web services on the provider side. The framework is implemented in J2EE, using JADE environment for creating and deploying software agents. Experimental analysis shows that the proposed solution is effective and behaves considerably well when availability of component web services is varied from 0 % to 100 %.','',1,'Navinderjit Kaur KahlonSalil Vishnu KapurKuljit Kaur ChahalSukhleen Bindra Narang','springer/service oriented architecture security.csv','springer',''),(125,'Security certification-aware service discovery and selection','2012','','Security; Service discovery and selection; SOA; Test-based security certification; Web services','We present a security-enhanced solution to the discovery and selection of services. This solution integrates a test-based certification scheme proving the security properties of services. In particular, we describe two algorithms enabling clients to select the service that best addresses their security requirements. We also present a prototype implementation of our approach and an experimental evaluation of its performances. © 2012 IEEE.','',1,'Anisetti M., Ardagna C.A., Damiani E., Maggesi J.','scopus/soa security.csv','scopus','\0'),(126,'IoT Reference Model','2013','2','','Abstract The first major contribution of the IoT Architectural Reference Model (IoT ARM) is the IoT Reference Model itself. Besides models, the IoT Reference Model provides the concepts and definitions on which IoT architectures can be built. This Chapter introduces the IoT Reference Model as a precondition for working with the Reference Architecture that is introduced in Chap.​ 8 .','',2,'Martin BauerNicola BuiJourik De LoofCarsten MagerkurthAndreas NettsträterJulinda StefaJoachim W. Walewski','springer/bpmn security.csv','springer','\0'),(127,'Secure Cognitive Relay Network: Joint the Impact of Imperfect Spectrum Sensing and Outdated Feedback','2016','0',' Cognitive relay network Physical layer security Imperfect spectrum sensing Outdated feedback Secrecy outage probability','Abstract In this paper, we consider cognitive relay networks with N th best relay and beamforming schemes under the joint impact of imperfect spectrum sensing and outdated channel feedback. Specifically, we examine the secrecy performance by deriving the exact and asymptotic analytical expressions for the secrecy outage probability. Based on the analysis, we observe that these two types of channel impairments, i.e., imperfect spectrum sensing and outdated channel feedback, greatly affect the system performance. Particularly, the outdated channel feedback (i.e., the outdated coefficient \\(\\rho\\,<\\,1\\) ) reduces the secrecy outage diversity gain of the two schemes, i.e., N th best relay and beamforming, to one regardless of the number of relays. Our proposed analysis provides a helpful guideline for security system designers to cope with the unpleasant channel impairments.','Wireless Personal Communications',1,'Xinjie WangEnyu LiDac-Binh HaTiep Minh HoangHao Zhang','springer/soa security.csv','springer',''),(128,'Automated Theorem Proving in GeoGebra: Current Achievements','2015','1',' Secondary education Interactive learning environments Intelligent tutoring systems Automatic theorem proving','Abstract GeoGebra is an open-source educational mathematics software tool, with millions of users worldwide. It has a number of features (integration of computer algebra, dynamic geometry, spreadsheet, etc.), primarily focused on facilitating student experiments, and not on formal reasoning. Since including automated deduction tools in GeoGebra could bring a whole new range of teaching and learning scenarios, and since automated theorem proving and discovery in geometry has reached a rather mature stage, we embarked on a project of incorporating and testing a number of different automated provers for geometry in GeoGebra. In this paper, we present the current achievements and status of this project, and discuss various relevant challenges that this project raises in the educational, mathematical and software contexts. We will describe, first, the recent and forthcoming changes demanded by our project, regarding the implementation and the user interface of GeoGebra. Then we present our vision of the educational scenarios that could be supported by automated reasoning features, and how teachers and students could benefit from the present work. In fact, current performance of GeoGebra, extended with automated deduction tools, is already very promising—many complex theorems can be proved in less than 1 second. Thus, we believe that many new and exciting ways of using GeoGebra in the classroom are on their way.','Journal of Automated Reasoning',1,'Francisco BotanaMarkus HohenwarterPredrag JaničićZoltán KovácsIvan PetrovićTomás RecioSimon Weitzhofer','springer/webservice security.csv','springer',''),(129,'KIPO: the knowledge-intensive process ontology','2015','1',' Knowledge-intensive process Knowledge-intensive process ontology Process representation Foundational ontology','Abstract A business process is a sequence of activities that aims at creating products or services, granting value to the customer, and is generally represented by a business process model. Business process models play an important role in bridging the gap between the business domain and the information technology, increasing the weight of business modeling as first step of software development. However, the traditional way of representing a process is not suitable for the so-called Knowledge-Intensive Processes (KIP). This type of process comprises sequences of activities based on intensive acquisition, sharing, storage and (re)use of knowledge, so that the amount of value added to the organization depends on the actor knowledge. Current research in the literature points to the lack of approaches to make this kind of process explicit and strategies for handling information that is necessary for their understanding and support. The goal of this paper is to present KIPO—a knowledge-intensive process ontology, which encompasses a clear and semantically rich definition of KIPs, and to discuss the results of a case study to evaluate KIPO with regard to its applicability and capability of making all relevant knowledge embedded in a KIP explicit.','Software & Systems Modeling',2,'Juliana Baptista dos Santos FrançaJoanne Manhães NettoJuliana do E. S. CarvalhoFlávia Maria SantoroFernanda Araujo BaiãoMariano Pimentel','springer/bpmn security.csv','springer',''),(130,'Policy chain for securing service oriented architectures','2013','3','Security of Service Oriented Architecture; Security Policy Management and Enforcement','Service Providers using Service Oriented Architecture in order to deliver in-house services as well as on-demand and cloud services have to deal with two interdependent challenges: (1) to achieve, maintain and prove compliance with security requirements stemming from internal needs, 3rd party demands and international regulations and (2) to manage requirements, policies and security configuration in a cost-efficient manner. The deficiencies of current processes and tools force these service providers to trade off profitability against security and compliance. This paper summarizes a novel approach of a policy chain, which links high-level, abstract and declarative security policies on one side and low-level, imperative, and technical security configuration settings on the other side. The paper describes an architecture linking several applications and models via state-machines in order to provide a toolset supporting service providers to build such a holistic policy chain at design time, and to maintain and leverage it during system operation. © 2013 Springer-Verlag.','',1,'Arsac W., Laube A., Plate H.','scopus/service oriented architecture security.csv','scopus','\0'),(131,'FSToolkit: Adopting Software Engineering Practices for Enabling Definitions of Federated Resource Infrastructures','2012','0',' Federation experimentally driven research Resource Broker Domain Specific Modeling','Abstract Today organizations own resources and infrastructures (i.e. networking devices, gateways, wireless devices) that would like to either offer through the cloud model or to combine with resources of other infrastructures. Federation can be enabled by means of a resource broker that matches customer’s requested services and providers’ resources according to the agreed SLA. Users need ways to define complex deployments and request for resources without knowing the underlying infrastructure details. In this paper we present the Federation Scenario Toolkit (FSToolkit) that enables the definition of resource request scenarios, agnostic in term of providers. This work adopts Software Engineering practices considering the concepts of modeling and meta-modeling to define a resource broker and to specify scenarios by applying the Domain Specific Modeling (DSM) paradigm. FSToolkit is developed for experimentally driven research for validating through testing-scenarios new architectures and systems at scale and under realistic environments by enabling federation of resources.','',2,'Christos TranorisSpyros Denazis','springer/bpel security.csv','springer','\0'),(132,'An extension of business process model and notation for security risk management','2015','','','Business process modelling is one of the major aspects in the modern information system development. Recently business process model and notation (BPMN) has become a standard technique to support this activity. Typically the BPMN notations are used to understand enterprise\'s business processes. However, limited work exists regarding how security concerns are addressed during the management of the business processes. This is a problem, since both business processes and security should be understood in parallel to support a development of the secure information systems. In the previous work we have analysed BPMN with respect to the domain model of the IS security risk management (ISSRM) and showed how the language constructs could be aligned to the concepts of the ISSRM domain model. In this paper the authors propose the BPMN extensions for security risk management based on the BPMN alignment to the ISSRM concepts. We illustrate how the extended BPMN could express assets, risks and risk treatment on few running examples related to the Internet store regarding the asset confidentiality, integrity and availability. Our proposal would allow system analysts to understand how to develop security requirements to secure important assets defined through business processes. The paper opens the possibility for business and security model interoperability and the model transformation between several modelling approaches (if these both are aligned to the ISSRM domain model). © 2015 by IGI Global. All rights reserved.','',2,'Altuhhov O., Matulevičius R., Ahmed N.','scopus/bpmn security.csv','scopus',''),(133,'Preserving Confidentiality in Component Compositions','2013','1','','Abstract The preservation of any security property for the composition of components in software engineering is typically regarded a non-trivial issue. Amongst the different possible properties, confidentiality however poses the most challenging one. The naive approach of assuming that confidentiality of a composition is satisfied if it is provided by the individual components may lead to insecure systems as specific aspects of one component may have undesired effects on others. In this paper we investigate the composition of components that each on its own provide confidentiality of their data. We carve out that the complete behaviour between components needs to be considered, rather than focussing only on the single interaction points or the set of actions containing the confidential data. Our formal investigation reveals different possibilities for testing of correct compositions of components, for the coordinated distributed creation of composable components, and for the design of generally composable interfaces, ensuring the confidentiality of the composition.','',2,'Andreas FuchsSigrid Gürgens','springer/bpel security.csv','springer','\0'),(134,'Dynamic Evolution of Context-Aware Systems with Models at Runtime','2012','4','','Abstract Model-driven techniques have proven to yield significant benefits for context-aware systems. Specifically, semantically-rich models are used at runtime to monitor the system context and guide necessary changes. Under the closed-world assumption, adaptations are fully known at design time. Nevertheless, it is difficult to foresee all the possible situations that may arise in uncertain and complex contexts. In this paper, we present a model-based framework to support the dynamic evolution of context-aware systems to deal with unexpected context events in the open world. If model adaptations are not enough to solve uncertainty, our model-based evolution planner guides the evolution of the supporting models to preserve high-level requirements. A case study about a context-aware Web service composition, which is executed in a distributed computing infrastructure, illustrates the applicability of our framework. A realization methodology and a prototype system support our approach.','',1,'Germán H. AlférezVicente Pelechano','springer/service oriented architecture security.csv','springer','\0'),(135,'Ontology-Driven Dynamic Discovery and Distributed Coordination of a Robot Swarm','2012','1',' Service Discovery Semantics Context-awareness Distri- buted Planning Swarm Robotics','Abstract Swarm robotic systems rely heavily on dynamic interactions to provide interoperability between the different autonomous robots. In current systems, interactions between robots are programmed into the applications controlling them. Incorporating service discovery into these applications allows the robots to dynamically discover other devices. However, since most of these mechanisms use syntax-based matching, the robots cannot reason about the offered functionality. Moreover, as contextual information is often not included in the matching process, it is impossible for robots to select the most suitable device under the current context. This paper aims to tackle these issues by proposing a framework for semantic service discovery in a dynamically changing environment. A semantic layer was added to an existing discovery protocol, offering a semantic interface. Using this framework, services can be searched based on what they offer, with services best suiting the current context yielding the highest matching scores.','',1,'Niels BoutenAnna HristoskovaFemke OngenaeJelle NelisFilip De Turck','springer/service oriented architecture security.csv','springer','\0'),(136,'Everything as a Service (XaaS) on the Cloud: Origins, Current and Future Trends','2015','','Anything as a Service; Cloud computing; Everything as a Service; SOA','For several years now, scientists have been proposing numerous models for defining anything \'as a service (aaS)\', including discussions of products, processes, data & information management, and security as a service. In this paper, based on a thorough literature survey, we investigate the vast stream of the state of the art in Everything as a Service (XaaS). We then use this investigation to explore an integrated view of XaaS that will help propose approaches for migrating applications to the cloud and exposing them as services. © 2015 IEEE.','',1,'Duan Y., Fu G., Zhou N., Sun X., Narendra N.C., Hu B.','scopus/soa security.csv','scopus',''),(137,'An Ontology for Run-Time Verification of Security Certificates for SOA','2012','1','Ontologies for security certification;Run-time verification;Semantic Security Certificates;Service Certification;Service Oriented Architecture (SOA);Service Security','Software systems are often certified to guarantee they satisfy particular functional or non-functional requirements, including safety, security or privacy. In this paper, we propose an approach based on the use of ontologies to support the description of the content of security certificates for services. The work frames in the scope of the ASSERT4SOA project, which investigates the way to dynamically search for services satisfying certain security requirements. The ASSERT4SOA Ontology, the main result of this work, supports the interoperability and comparison of heterogeneous certificates and the run-time verification of the compliance of services with the security requirements asserted in their certificates.','Availability, Reliability and Security (ARES), 2012 Seventh International Conference on',1,'S. DAgostini; V. Di Giacomo; C. Pandolfo; D. Presenza','ieee/service oriented architecture security.csv','ieee','\0'),(138,'Developing a NovaGenesis architecture model for service oriented future Internet and IoT: An advanced transportation system scenario','2014','1','Future Internet;ID/LOC splitting;Internet of Things;Name-Oriented Design;NovaGenesis Architecture;Service-Oriented Design;Software-Defined Networking','We are designing a NovaGenesis Architecture Model to support Future Internet services, which are going to address some fundamental issues of the Internet of Things, such as address resolution, mobility, routing, scalability, security, and network control. The aim is to support trillion of things connect to the Internet. In NovaGenesis, we have presented a set of distributed systems where any information processing is seen as service. Services organize themselves based on names and agreements to meet semantics rich goals, policies, regulations, etc. Even networking functionalities are considered as services. Every existence could have one or more names: natural language names or self-certifying names. All the communication, processing, and storage are name-oriented. The protocol stacks are built on demand in a contract-based way. Hence, we can state that NovaGenesis architecture could be an alternative solution for current internet oriented innovations in a scalable manner. The aim of this architecture is the coverage of Internet and sensors oriented smart objects. The paper discusses the proposed model in the context of an Advanced Rural Transportation System.','Internet of Things (WF-IoT), 2014 IEEE World Forum on',1,'A. M. Alberti; D. Singh','ieee/service oriented architecture security.csv','ieee','\0'),(139,'Special issue on evolutionary computing and complex systems','2013','0','','','Soft Computing',1,'Alexandru-Adrian TantarEmilia TantarPascal BouvryOliver SchützeCarlos A. Coello CoelloPierre Del Moral','springer/service oriented architecture security.csv','springer','\0'),(140,'SOA - Based authentication system for dynamic handwritten signature','2013','','Authentication System; Biometry; Dynamic Signature; Information Security; Service Oriented Architecture','The increased frequency and damage caused by virtual attacks, reveals a need for stronger, easily deployable authentication solutions. This paper describes the architecture of a biometric authentication system based on dynamic handwritten signatures. Our design uses the principles of service-oriented architecture (SOA) and consists of non-intrusive, easy-to-integrate services and software components. Its features are enhanced security, reduced development time for the applications that use it, and modularity with respect to the underlying biometric system. Our experiments demonstrate that the system is a cost-efficient solution capable of handling thousands of authentication requests per minute. © 2013 Springer-Verlag.','',1,'Salinca A., Rusu S.M., Pricochi A.-M.','scopus/service oriented architecture security.csv','scopus','\0'),(141,'Design and Development of Secure Cloud Architecture for Sensor Services','2015','0',' secure cloud sensor service intelligent middleware SOA SASS formal specification xml','Abstract This paper is aimed at the design and development of secure cloud architecture for the Wireless Sensor Networks (WSN), in which the sensor data are represented as services and are accessed by the client applications in a secure manner with a simple authentication solution for sensors (SASS). Currently, sensor system needs an intelligent middleware to integrate with the cloud. Service Oriented Architecture (SOA), which makes use of the web services and XML technologies, will provide a solution to meet the current demands. Web services provide a mechanism for open and flexible interaction between heterogeneous systems with loosely coupled service endpoints. Further a technique based on formal specification is utilized which reduces the data volume of xml documents at a level that can be handled by the resource constrained environment of the wireless sensors. The proposed architecture will provide a scalable infrastructure for integrating heterogeneous sensor networks using a small set of powerful abstractions.','',1,'R. S. PonmagalN. DineshUma Rajaram','springer/service oriented architecture security.csv','springer',''),(142,'Is Node.js a viable option for building modern web applications? A performance evaluation study','2015','0',' Node.js End-to-end JavaScript WebSockets WebRTC Real-time Web Software performance evaluation Mathematics Subject Classification 68M20 Performance evaluation; queueing; scheduling 68M11 Internet topics 68M15 Reliability, testing and fault tolerance 68M14 Distributed systems 68N01 General','Abstract We examine the implications of end-to-end web application development, in the social web era. The paper describes a distributed architecture, suitable for modern web application development, as well as the interactivity components associated with it. Furthermore, we conducted a series of stress tests, on popular server side technologies. The PHP/Apache stack was found inefficient to address the increasing demand in network traffic. Nginx was found more than 2.5 times faster in input/output (I/O) operations than Apache, whereas Node.js outperformed both. Node.js, although excellent in I/O operations and resource utilization, was found lacking in serving static files using its built in HTTP server, while Nginx performed great at this task. So, in order to address efficiency, an Nginx server could be placed in-front and proxy static file requests, allowing the Node.js processes to only handle dynamic content. Such a configuration can offer a better infrastructure in terms of efficiency and scalability, replacing the aged PHP/Apache stack. Furthermore we have found that building cross platform applications based on web technologies, is both feasible and highly productive, especially when addressing stationary and mobile devices, as well as the fragmentation among them. Our study concludes that Node.js offers client-server development integration, aiding code reusability in web applications, and is the perfect tool for developing fast, scalable network applications.','Computing',1,'Ioannis K. ChaniotisKyriakos-Ioannis D. KyriakouNikolaos D. Tselikas','springer/service oriented architecture security.csv','springer',''),(143,'Scalability issues in cloud computing','2012','2','','The following topics are dealt with: ad hoc & sensor networks; agent based systems; autonomous computing; body area network; cloud computing; cluster computing; compiler optimizations; data mining; digital image computing; distributed databases; e-learning; e-commerce; e-governance; green IT; grid computing; image processing; intelligent agents; knowledge management; theoretical computer science; virtualization; machine learning; mobile computing; multicore architecture; multimedia streaming; natural language processing; network security; network management; neural networks; parallel computing; pattern recognition; pervasive computing; power aware computing; semantic Web; service oriented architecture; soft computing; software architecture; social computing; storage management; ubiquitous computing; and Web intelligence.','2012 Fourth International Conference on Advanced Computing (ICoAC)',1,'T. S. Somasundaram; V. Prabha; M. Arumugam','ieee/service oriented architecture security.csv','ieee','\0'),(144,'Ideas for Future Mission Networks (Invited Paper)','2013','0','Cognitive Radio (CR);Core;Dynamic Spectrum Management(DSA);Future Military Networks (FMN);Multilateral Interoperability Program (MIP);Multiple Independent Levels of Security (MLS);P2P;Service Oriented Architecture (SOA);Trusted Platform Module (TPM)','The content of Future Mission Networks (FMN) is in the process of being defined. In this article some ideas are presented which may improve its usefulness compared to the Afghanistan Mission Networks, like how more frequency bands can be used more efficiently by a distributed peer to peer (P2P) network. A P2P network is be believed to be more scalable and more robust to failures compared to a centralized system using a common database. Several hot military research topics are discussed.','MILCOM 2013 - 2013 IEEE Military Communications Conference',1,'T. Maseng','ieee/service oriented architecture security.csv','ieee','\0'),(145,'Service Value Broker Patterns: Integrating Business Modeling and Economic Analysis with Knowledge Management (Short Paper)','2013','0','Business Value;Design Patterns;Knowledge Management;Value Driven Design','Service engineering is an emerging interdisciplinary subject which crosscuts business modeling, knowledge management and economic analysis. To better satisfy service providers\' profiting goals, the service system modeling needs to take care of both the short and long run customer satisfaction. We believe that the ideology of value driven design fits well for this need. We propose to work towards value driven design by introducing a form of service design patterns, we call service value broker(SVB) patterns, with the aim to shorten the distance between economical analysis and IT implementation. SVB patterns allow us to not only study the value added in terms of functional and business aspects, but also reason about the need for brokerage across various domains. In this paper, we focus on modeling the basis of SVB. The analysis is provided with a formal development of SVB to be integrated across a variety of functional and business aspects of services. Placing particular emphasis on scenarios where these can be applied, an example of improvements provided by SVB is also included.','2013 IEEE 6th International Conference on Service-Oriented Computing and Applications',1,'Y. Duan; A. Kattepur; Q. Zagarese; W. Du','ieee/service oriented architecture security.csv','ieee','\0'),(146,'Rational computing protocol based on fuzzy theory','2016','0',' Game theory Private type Cloud computing Fuzzy set Cooperation','Abstract Secure multi-party computing (SMPC) is often used to solve security problems in cloud computing. Rational SMPC is a kind of SMPC in the presence of rational parties, who wish to maximize their utilities. Previous works about rational SMPC only studied the security properties under complete information scenario, where parties’ types are common knowledge. However, parties in practical applications have private types, which is unknown to others. This scenario is called incomplete information. In this paper, rational parties are allowed to have private types, which affect their utilities. Previously, rational parties obtain expected utilities due to unknown private types under incomplete information scenario. However, rational parties prefer to obtain pure utilities in actual life. To solve this contradiction, we use fuzzy theory to confirm the private type of his opponent; then they execute the protocol as if they know the private types just like the execution under complete information scenario. Consequently, they obtain pure utilities other than expected utility. In addition, our protocol can reduce round complexity than previous ones. Consequently, it will improve the security level and efficiency of cloud computing.','Soft Computing',1,'Yilei WangTao LiLufeng ChenPing LiHo-fung LeungZhe LiuQiuliang Xu','springer/service oriented architecture security.csv','springer',''),(147,'An aspect-oriented framework for specification and enforcement of non-functional concerns in WS-BPEL','2012','','AO4BPEL; Aspects; Non-functional concerns; Reliable messaging; Security; Transactions; Web service composition; WS-BPEL','Web Service processes in WS-BPEL have several non-functional requirements such as security and reliable messaging. Although there are many WS-* specifications that address these concerns, their integration with WSBPEL is still open. In this paper, we discuss these non-functional requirements and present a survey on the current support for their specification and enforcement in WS-BPEL engines. Moreover, we introduce an aspect-oriented container framework that uses a declarative deployment descriptor to specify the non-functional requirements. For the enforcement, aspects in AO4BPEL 2.0 are generated, which intercept the process execution and call dedicated middleware Web Services. Copyright © 2012 Inderscience Enterprises Ltd.','',2,'Charfi A., Schmeling B., Mezini M.','scopus/bpel security.csv','scopus','\0'),(148,'Harvesting and analysis of weak signals for detecting lone wolf terrorists','2013','7','','Abstract Abstract Lone wolf terrorists pose a large threat to modern society. The current ability to identify and stop these kinds of terrorists before they commit a terror act is limited since they are hard to detect using traditional methods. However, these individuals often make use of Internet to spread their beliefs and opinions, and to obtain information and knowledge to plan an attack. Therefore there is a good possibility that they leave digital traces in the form of weak signals that can be gathered, fused, and analyzed. In this article we present an analysis method that can be used to analyze extremist forums to detect digital traces of possible lone wolf terrorists. This method is conceptually demonstrated using the FOI Impactorium fusion platform. We also present a number of different technologies which can be used to harvest and analyze pieces of information from Internet that may serve as weak digital traces that can be fused using the suggested analysis method in order to discover possible lone wolf terrorists.','Security Informatics',1,'Joel BrynielssonAndreas HorndahlFredrik JohanssonLisa KaatiChristian MårtensonPontus Svenson','springer/webservice security.csv','springer','\0'),(149,'Schwierigkeiten mit IT-Projekten der Öffentlichen Verwaltung – Neuere Entwicklungen','2012','3','','Zusammenfassung 2009 hatten wir in dieser Zeitschrift anhand von sieben Vorhaben die Ergebnisse einer Studie über Schwierigkeiten mit IT-Projekten der Öffentlichen Verwaltung (ITÖ) in Deutschland publiziert. Diese Projekte entwickelten sich sehr unterschiedlich. Einige schlugen fehl und fanden bisher keinen Nachfolger. Andere sind immer noch im Gang, wobei die Schwierigkeiten nicht behoben werden konnten und zum Teil noch wachsen. Wieder andere mündeten in erfolgreiche, nachhaltige Systemlösungen. Im vorliegenden Aufsatz werden diese Pfade kurz nachgezeichnet. Die Stichprobe haben wir von sieben auf zehn erweitert, indem drei 2009 noch nicht behandelte Vorhaben aufgegriffen wurden. Aus unseren Beobachtungen leiten wir Vorschläge zur Verbesserung des Entscheidungsprozesses und der Kontrollmaßnahmen ab.','Informatik-Spektrum',1,'Peter Mertens','springer/soa security.csv','springer','\0'),(150,'A guidance process to modernize legacy applications for SOA','2015','1',' SOA Web services Legacy applications Modernization techniques Wrapping techniques Wrapping tools Session-based wrapping Transaction-based wrapping Data-based wrapping Guidance process','Abstract Enterprises willing to move to SOA with Web services to challenge changes in business requirements need to modernize their legacy applications mainly by using wrapping techniques. Indeed, (1) SOA is mainly about reuse of assets; in this regard, legacy applications are running smoothly and performing critical tasks, (2) most of the business functions are locked within them, (3) legacy applications were built at high cost, and we need to preserve these investments, and (4) migration to SOA can give new life to legacy applications. A solution consists in extending the critical business logic of the legacy applications while preserving the investments, through their migration to Web services and SOA environments. This leads IT departments to select an appropriate modernization technique, which requires a guidance process to avoid any failure risk. The process would include analysis, selection of business functions, and wrapping. This work first surveys several types of approaches and automated tools that deal with one of the most modernization technique for SOA that is wrapping legacy applications into Web services. Next, it categorizes the wrapping techniques into session-based, transaction-based, and data-based wrapping techniques with regard to the three distinct parts of an application: presentation, logic, and data. This clear categorization assists in deciding an adequate technique. Then, it describes a practical guidance process for wrapping. Finally, it illustrates the guidance process with a real student information system.','Service Oriented Computing and Applications',1,'Youcef BaghdadiWisal Al-Bulushi','springer/soa security.csv','springer',''),(151,'Low-Cost Web Service Discovery Based on Distributed Decision Tree in P2P Environments','2013','0',' P2P Web service Service discovery QoS Distributed decision tree Range query Load balance','Abstract Peer to Peer (P2P) techniques were widely applied into Web service discovery fields, but most existing schemes only focused on matching the functional attributes of Web services and ignored the non-functional attributes, i.e. quality of services (QoS). In this paper, we present a QoS-aware Web service discovery approach. The approach maps each Web service into virtual space to distribute all QoS attributes among P2P nodes, and then designs a distributed decision tree to support range service query with QoS requirements. Finally, a load balance algorithm is used to reduce range query cost. Experimental results based on synthetic and real datasets show our proposed approach can perform effective service discovery with low cost in P2P environments.','Wireless Personal Communications',1,'Shangguang WangXilu ZhuQibo SunHua ZouFangchun Yang','springer/service oriented architecture security.csv','springer','\0'),(152,'A Game-Theoretic Approach for Dynamic and Adaptive Managers Selection in Service Specific Overlay Networks','2015','0',' Management Self-adaptation Self-organization Regret matching','Abstract The introduction of Service Overlay Networks (SON) enabled service providers to offer new services with end-to-end quality of service guarantees. As a consequence, modern networks have become more service centric, which require the application of service specific management approaches. However, increased heterogeneity of network components and access technologies made management tasks more tedious and complex. In this article, we propose the use of game theory in the management tasks of overlay networks to reduce cost and complexity. We propose a fully distributed, self-organizing, and self-adapting algorithm for overlay nodes to efficiently select their managers. The proposed algorithm copes with the highly decentralized and dynamic nature of SON and adapts to changing network conditions. Extensive simulation results validate the effectiveness of the approach compared to existing solutions and the optimal solution.','Journal of Network and Systems Management',1,'Imad AbdeljaouadAhmed Karmouch','springer/soa security.csv','springer',''),(153,'Securing Data Provenance in the Cloud','2012','1',' Secure Data Provenance Encrypted Cloud Storage Security Privacy','Abstract Cloud storage offers the flexibility of accessing data from anywhere at any time while providing economical benefits and scalability. However, cloud stores lack the ability to manage data provenance. Data provenance describes how a particular piece of data has been produced. It is vital for a post-incident investigation, widely used in healthcare, scientific collaboration, forensic analysis and legal proceedings. Data provenance needs to be secured since it may reveal private information about the sensitive data while the cloud service provider does not guarantee confidentiality of the data stored in dispersed geographical locations. This paper proposes a scheme to secure data provenance in the cloud while offering the encrypted search.','',1,'Muhammad Rizwan AsgharMihaela IonGiovanni RusselloBruno Crispo','springer/service oriented architecture security.csv','springer','\0'),(154,'A Business Process Modeling Notation Extension for Risk Handling','2012','1',' Business Process Modeling Notation Risk Management BPMN Extension','Abstract During the years of prosperity, numerous organizations neglected numerous aspects of risk management. As systematic approach to handling identified risks is crucial to achieving success by the organization, modern business modeling standards and techniques are supposed to take risk-related features into account. The article is devoted to elaborating and exemplifying an extension aimed at risk handling for OMG’s Business Process Modeling Notation (BPMN), one of the most prospective standards for business process modeling. After an introduction, key risk management concepts are discussed. Section 3 discusses extensions introduced within BPMN meta-model, while section 4 exemplifies proposed concepts. The article is concluded with a summary.','',2,'Bartosz MarcinkowskiMichal Kuciapski','springer/bpmn security.csv','springer','\0'),(155,'Integrating Service Matchers into a Service Market Architecture','2014','1',' Service Matching Service Markets Software Architecture On-The-Fly Computing','Abstract Service markets provide software components in the form of services. In order to enable a service discovery that satisfies service requesters and providers best, markets need automatic service matching: approaches for comparing whether a provided service satisfies a service request. Current markets, e.g., app markets, are limited to basic keyword-based search although many better suitable matching approaches are described in literature. However, necessary architectural decisions for the integration of matchers have a huge impact on quality properties like performance or security. Architectural decisions wrt. service matchers have rarely been discussed, yet, and systematic approaches for their integration into service markets are missing. In this paper, we present a systematic integration approach including the definition of requirements and a discussion on architectural tactics. As a benefit, the decision-making process of integrating service matchers is supported and the overall market success can be improved.','',1,'Marie Christin PlateniusSteffen BeckerWilhelm Schäfer','springer/service oriented architecture security.csv','springer','\0'),(156,'Configuring Private Data Management as Access Restrictions: From Design to Enforcement','2012','2',' Access restriction SOA workflow private data','Abstract Service-Oriented Computing (SOC) is a major trend in designing and implementing distributed computer-based applications. Dynamic late biding makes SOC a very promising way to realize pervasive computing, which promotes the integration of computerized artifacts into the fabric of our daily lives. However, pervasive computing raises new challenges which SOC has not addressed yet. Pervasive application relies on highly dynamic and heterogeneous entities. They also necessitate an important data collection to compute the context of users and process sensitive data. Such data collection and processing raise well-known concerns about data disclosure and use. They are a brake to the development of widely accepted pervasive applications. SOC already permits to impose constraints on the bindings of services. We propose to add a new range of constraints to allow data privatization, i.e. the restriction of their disclosure. We extend the traditional design and binding phases of a Service-Oriented Architecture with the expression and the enforcement of privatization constraints. We express and enforce these constraints according to a two phases model-driven approach. Our work is validated on real-world services.','',2,'Aurélien FaravelonStéphanie CholletChristine VerdierAgnès Front','springer/bpel security.csv','springer','\0'),(157,'A smart assistant toward product-awareness shopping','2014','2',' Smart shopping assistant Sensor technique Smart phone Home shopping','Abstract This research employs sensor techniques (i.e., radio-frequency identification system) in developing a smart assistant for home furniture shopping. The implemented assistant provides friendly accessed interface that allows consumers to easily locate the product, confirm the detail information of it, and moreover, provide real-time recommendation(s) in accordance with interests of consumers. Unlike conventional online stores, the system offers the retailer extra spaces for varieties of merchandize, eliminated duplicated products display, etc. In addition, the assistant can avoid an unnecessary crashing of huge shopping carts in a crowded situation. This research discusses a new shopping pattern implemented by a smart assistant with the integration of consumer, retailer, and warehouse sides. In addition, an application is provided on smart phones in conjunction with the system to improve the competiveness in the market and increase the loyalty of their consumers. The experiment results demonstrate that collected data from end users (e.g., consumer, warehouse, and retailer itself) may provide essential information to revise business models.','Personal and Ubiquitous Computing',1,'Chia-Chen ChenTien-Chi HuangJames J. ParkHuang-Hua TsengNeil Y. Yen','springer/soa security.csv','springer','\0'),(158,'Smartphone intelligent applications: a brief review','2015','2',' Smartphone Sensor Mobile agent Internet','Abstract In this deployment-oriented objective review of smartphones (SFs), we briefly discuss their main features at device-level, system-level, and application-level, in an attempt to help with the process. In the background of this paper we point out four main enabling factors. We envisage advanced SF solutions would be able to help us with a better life style and our industries with a brighter productivity: (1) SF is a well-known and socially accepted hybrid device built on decades of maturity and of successful progress of mobile and wireless technologies, (2) SF stands upon the advancing pillar of our natural nomadic life style enhanced with superb connectivity, (3) ever growing personal and health needs are due to change in our social and healthcare systems and require SF’s safety and security features, and finally (4) the computing intelligence is there to be discovered and used for the most needed basic human requirements so that with it we expect to see a variety of integrated intelligence in the form of distributed and multi-agent style using software intensive, lightweight, and agile applications. We also enhance our message by exemplifying few but informative typical application cases for researchers and developers to help to harness this unique technological development opportunity.','Multimedia Systems',2,'Habib F. RashvandKuei-Fang Hsiao','springer/bpel security.csv','springer',''),(159,'A Decentralized Approach for Implementing Identity Management in Cloud Computing','2012','0','cloud computing;grouping algorithm;identity management (IdM);security;service oriented architecture (SOA)','Cloud computing is the next generation of computing paradigm. Along with cloud computing, many related problems come up. And these problems in turn slow the speed of the development of cloud computing down. Among these problems, e.g. interoperability and privacy, identity management and security are strong concerned. Many researchers and enterprises have already done a lot to optimize the identity management and strengthen the security in cloud computing. Most of these studies focus on the usability of identity management and various kinds of method to help improve security. But in this paper, we do some research from a new angle. While the federated solution of identity management helps relieve many problems, it\'s adopted by many platforms and enterprises. The general approach for deploying identity management is a centralized component processing authentication and authorization requests. But with the cloud growing in scale and the increasing number of users, this centralized solution will be the bottleneck of the cloud. In this paper, we propose a decentralized approach for implementing identity management in service oriented architecture in cloud computing and a grouping algorithm as the deploy strategy. Security is another problem involved in this paper. Since many researchers have done many detailed and fruitful studies in security, the security solution illustrated in this paper is specific in the proposed architecture.','Cloud and Green Computing (CGC), 2012 Second International Conference on',1,'J. Chen; X. Wu; S. Zhang; W. Zhang; Y. Niu','ieee/service oriented architecture security.csv','ieee','\0'),(160,'Impact of Policy Design on Workflow Resiliency Computation Time','2015','0',' Workflow satisfiability problem Probabilistic model checker User availability','Abstract Workflows are complex operational processes that include security constraints restricting which users can perform which tasks. An improper user-task assignment may prevent the completion of the workflow, and deciding such an assignment at runtime is known to be complex, especially when considering user unavailability (known as the resiliency problem). Therefore, design tools are required that allow fast evaluation of workflow resiliency. In this paper, we propose a methodology for workflow designers to assess the impact of the security policy on computing the resiliency of a workflow. Our approach relies on encoding a workflow into the probabilistic model-checker PRISM, allowing its resiliency to be evaluated by solving a Markov Decision Process. We observe and illustrate that adding or removing some constraints has a clear impact on the resiliency computation time, and we compute the set of security constraints that can be artificially added to a security policy in order to reduce the computation time while maintaining the resiliency.','',2,'John C. MaceCharles MorissetAad van Moorsel','springer/bpmn security.csv','springer',''),(161,'Adoption of Cloud Computing in Supply Chain Management Solutions: A SCOR-Aligned Assessment','2012','1',' supply chain management SCOR cloud computing','Abstract Efficient supply chains are a vital necessity for many companies. Supply chain management acts on operational processes, divergent and consolidated information flows and interaction processes with a variety of business partners. Efforts of recent years are usually facing this diversity by creating and organizing central information system solutions. Taking in account all the well-known problems of these central information systems, the question arises, whether cloud-based information systems represent a better alternative to establish an IT support for supply chain management. Aim of this paper is to investigate this question. This is done by considering fundamental aspects of cloud-based solutions under the perspectives of the SCOR model. We present the SCOR model shortly and provide a current market perspective on cloud computing and supply chain from the position of logistics and from the perspective of the software industry. Along the five key processes of the SCOR model we evaluate the potential of cloud-based information system architectures, and we discuss successful implemented examples from practice, but also challenges in future implementation. The paper concludes with recommendations for design and implementation to cloud-based information system support for supply chain management.','',2,'Holger Schrödl','springer/bpel security.csv','springer','\0'),(162,'A Generic Logging Template for Infrastructure as a Service Cloud','2013','1','IaaS;cloud monitoring;logging system','Infrastructure as a Service (IaaS) consists of a cloud-based infrastructure to offer consumers raw computation resources such as storage and networking. These resources are billed using a pay-per-use cost model. However, this type of infrastructure is far from being a security haven as the seven main threats defined by the Cloud Security Alliance (CSA) indicate. Using logging systems can provide evidence to support accountability for an IaaS cloud, which helps us mitigating known threats. In this paper, we research to which extent such logging systems help mitigate risks associated with the threats identified by the CSA. A generic architecture \'template\' for logging systems is proposed. This template encompasses all possible instantiations of logging solutions for IaaS cloud. We map existing logging systems to our generic template, and identify a logging solution to mitigate the risks associated with CSA threat number one (related to spam activities). We then argue that the template we suggest can be used to perform a systematic analysis of logging systems in terms of security before deploying them in production systems.','Advanced Information Networking and Applications Workshops (WAINA), 2013 27th International Conference on',1,'W. Wongthai; F. L. Rocha; A. van Moorsel','ieee/service oriented architecture security.csv','ieee','\0'),(163,'Service-oriented digital identity-related privacy interoperability: Implementation framework of Privacy-as-a-Set-of-Services (PaaSS)','2012','','Digital identity; implementation framework; interoperability; privacy; SOA','Protecting digital identity is crucial aspect in order to successfully enable collaboration between heterogeneous and distributed information systems. In this context, privacy could play a key role for digital identity protection and security. Thus, an identity layer in which interoperable privacy is delivered in the shape of a set of services, rather than monolithic applications, would be inevitably responding to the need of collaboration. In this article, we suggest a novel layered service-oriented implementation framework that information systems security projects\' members could borrow to successfully turn digital identity-related privacy requirements into a set of services. Several blocks are distributed amongst five layers and three mapping gateways determine the roadmap of the implementation effort governance. Seven loosely coupled, publicly hosted and available to on-demand calls services are specified to accommodate service-oriented architectures. OMG SoaML diagrams, BPMN process descriptions and SOA-artifacts specifications are provided and explained. © 2012 Springer-Verlag.','',2,'Ayed G.B., Ghernaouti-Hélie S.','scopus/bpmn security.csv','scopus','\0'),(164,'A unified formal model for service oriented architecture to enforce security contracts','2012','1','Aspects; Formal methods; Reference monitors; Security; Service-Oriented Architecture','In this paper we introduce a model as a foundation for heterogeneous services, therefore unifying web services technologies in SOA (Service Oriented Architecture), specifically, SOAP/WS * and RESTful models. This model abstracts away from service implementations, in order to verify and to enforce some important security properties.','',1,'Allam D.','scopus/service oriented architecture security.csv','scopus','\0'),(165,'Designing cloud-based electronic health record system with attribute-based encryption','2015','4',' Electronic health record Attribute-based encryption Cloud computing','Abstract With the development of cloud computing, electronic health record (EHR) system has appeared in the form of patient-centric, in which patients store their personal health records (PHRs) at a remote cloud server and selectively share them with physicians for convenient medical care. Although the newly emerged form has many advantages over traditional client-server model, it inevitably introduces patients’ concerns on the privacy of their PHRs due to the fact that cloud servers are very likely to be in a different trusted domain from that of the patients. In this paper, aiming at allowing for efficient storing and sharing PHRs and also eliminating patients’ worries about PHR privacy, we design a secure cloud-based EHR system, which guarantees security and privacy of medical data stored in the cloud, relying on cryptographic primitive but not the full trust over cloud servers. Based on our proposed basic EHR system, we provide several extensions including adding searchability, supporting revocation functionality and enabling efficient local decryption, which fills the gap between theoretical proposal and practical application.','Multimedia Tools and Applications',1,'Fatos XhafaJingwei LiGansen ZhaoJin LiXiaofeng ChenDuncan S. Wong','springer/service oriented architecture security.csv','springer',''),(166,'A service-oriented gateway for remote monitoring of building sensor networks','2013','2','','This paper proposes a service-oriented gateway architecture for remote monitoring and control of wireless sensor and actuator networks (WSAN). It is specifically designed to enable multi-user, remote monitoring and automation of even complex buildings. The gateway can be effectively exploited to manage energy, comfort, structural health, safety and security of buildings as well as social interactions among building inhabitants. The proposed architecture stands out by leveraging modern web-based approaches like RESTful access and WebSocket sessions. The paper describes the capabilities of the management framework, introduces the remote commands available and also shows a reference implementation of a remote graphical user interface (GUI). © 2013 IEEE.','',1,'Guerrieri A., Geretti L., Fortino G., Abramo A.','scopus/service oriented architecture security.csv','scopus','\0'),(167,'A Model Driven security Engineering approach to support collaborative tools deployment over clouds','2013','','Business process; Cloud computing; MDE; Security model','The development of web 2.0 increases the call for agile and simple business process support. SOA (Service oriented Architecture) provides companies a new model to build their IT applications around their business processes and to combine them dynamically with the services of partner companies. Moreover cloud computing offers new business models and deployment opportunities to support adaptive and scalable execution environment. However, to provide services collaboration from several companies, the security policy associate to each company must be respected. So, the Business Process (BP) provides by these companies services inter-connections should be adapted to the security policy of each company and to the platform where it will be deployed. This leads to propose a new platform based on MDE (Model-Driven Engineering) approach to allow companies to build and deploy safely their BP in the Cloud environments. © Springer-Verlag London 2013.','',1,'Ouedraogo W.F., Biennier F., Ghodous P.','scopus/service oriented architecture security.csv','scopus','\0'),(168,'COAST: An architectural style for decentralized on-demand tailored services','2012','4','client-driven adaptation; decentralized systems; service-oriented architectures; software architecture','Decentralized systems are systems-of-systems whose services are governed by two or more separate organizations under distinct spheres of authority. Coordinated evolution of the various elements of a decentralized system may be difficult, if not impossible, as individual organizations evolve their service offerings in response to organization- and service-specific pressures, including market demand, technology, competitive and cooperative interests, and funding. Consequently, decentralized services offer unique challenges for evolution and adaptation that reach well beyond any\\ one single organizational boundary. However, client-driven service customization and tailoring is a powerful tool for meeting conflicting, independent client demands in an environment where disorderly and uneven service evolution predominates. To this end, we contribute an architectural style, COmputAtional State Transfer (COAST), designed to provide extensive, safe, and secure client-directed customization of decentralized services. COAST combines mechanisms from software architecture, cryptography, security, and programming languages, granting application architects flexible provisioning of their core services and assets while protecting those services and assets from attack and misuse. © 2012 IEEE.','',1,'Gorlick M.M., Strasser K., Taylor R.N.','scopus/service oriented architecture security.csv','scopus','\0'),(169,'IT Security Architecture Approaches for Smart Metering and Smart Grid','2013','1','','Abstract The power grid is currently undergoing changes towards highly volatile and localized energy production and storage, supported by IT and communication components. Smart Metering is going to provide fine-grained measurement and automatic remote reading of consumption and production amounts. It enables flexible tariffing and dynamic load optimization, ultimately aiming at cost and consumption reduction. The related security requirements are mainly authenticity, integrity, and privacy of metering data. Even more challenging is grid automation, which is critical for the safety and availability of the grid. The overall situation calls for an integrated security architecture that not only addresses all relevant security threats but also satisfies functional, safety, performance, process integration, and economic side conditions. In this article, we summarize and evaluate the IT security architecture and security requirements prescribed by the German BSI in their Smart Meter Gateway Protection Profile and related documents. For instance, there are problems regarding the integration of the required security module and multicast communication. We contrast their requirements with alternatives offering better protection against sophisticated local attacks and with a much simpler approach to communication security, which focuses on the core security needs of smart metering and is suitable for grid automation in distribution networks as well. We provide a formal model and analysis of the latter solution w.r.t. communication security.','',1,'David von Oheimb','springer/service oriented architecture security.csv','springer','\0'),(170,'Efficient Privacy Preserving Content Based Publish Subscribe Systems','2012','4','confidentiality, privacy, publish subscribe','The ability to seamlessly scale on demand has made Content-Based Publish-Subscribe (CBPS) systems the choice of distributing messages/documents produced by Content Publishers to many Subscribers through Content Brokers. Most of the current systems assume that Content Brokers are trusted for the confidentiality of the data published by Content Publishers and the privacy of the subscriptions, which specify their interests, made by Subscribers. However, with the increased use of technologies, such as service oriented architectures and cloud computing, essentially outsourcing the broker functionality to third-party providers, one can no longer assume the trust relationship to hold. The problem of providing privacy/confidentiality in CBPS systems is challenging, since the solution to the problem should allow Content Brokers to make routing decisions based on the content without revealing the content to them. The previous work attempted to solve this problem was not fully successful. The problem may appear unsolvable since it involves conflicting goals, but in this paper, we propose a novel approach to preserve the privacy of the subscriptions made by Subscribers and confidentiality of the data published by Content Publishers using cryptographic techniques when third-party Content Brokers are utilized to make routing decisions based on the content. Our protocols are expressive to support any type of subscriptions and designed to work efficiently. We distribute the work such that the load on Content Brokers, where the bottleneck is in a CBPS system, is minimized. We extend a popular CBPS system using our protocols to implement a privacy preserving CBPS system.','',1,'Mohamed Nabeel and Ning Shang and Elisa Bertino','acm/service oriented architecture security.csv','acm','\0'),(171,'2013 International Conference of Information Technology and Industrial Engineering, ITIE 2013','2014','','','The proceedings contain 176 papers. The special focus in this conference is on Information Technology and Industrial Engineering and its related topics. The topics include: construct turbine blade FEM model by UG; application research of SOA in the area of business intelligence system; management and control of sport training system structure; the research of CPFR model classification and factors influencing CPFR model selection; empirical research on e-commerce\'s driving force to growth of logistics industry; improved TOPSIS model based on interval numbers; echo cancellation technique based on adaptive filter for digital repeater; pricing strategies in a dual channel supply chain under asymmetric information; the waltz lifting technology analysis based on human motion; design and implementation of RF matching and filter circuit based on ADS; dynamic measurement on technological innovation efficiency of high technology industry in China; an IHE XDS-based approach for electrocardiograms sharing; two scheduling problems of two agents\' jobs with unit processing time and different release dates; multi-agent based vehicle simulation model for CBTC system testbed; information security strategies for China enterprises in overseas; empirical study on effect of coal mine policies on safety in China; crowd formation detection using Bayesian network classifier; a research on the management of enterprise environmental costs; a planar model based intra prediction method for depth map coding; an outlook for the quantum-based retrieval model; research on fund control during using surplus housing accumulation fund for indemnificatory housing program; the effects of font, structure, and stroke-number on Chinese characters recognition efficiency; computer technology application in the sports field in the context of information; the application of service science in sports field; solving unconstrained binary quadratic programming using binary particle swarm optimization; synchronization research of data based on SyncML and Huffman Coding; Study on the effects of social capital on knowledge transfer in cooperative network; research on evaluation of freight forwarding logistics information system; identify equivalent signal lines for logic verification of combinational circuits; a brief analysis of electromagnetic interference in the underground coal mine safety monitoring system; a new revenue management optimization model for wind power; the study on the ways of the enhancement of corporate soft power based on innovation ability; modeling and optimization of marketing based on artificial neural network; an adaptive control strategy for QoS in wireless multimedia network; the research of Web marketing system based on data warehouse; Research on computer aided design of sports actions; data analysis for sports training based on information technology; research on computer application management system of the University sports; the research on applications of Internet in tourism industry; an adaptive precoding scheme in MIMO systems; application of modern garden project appraisal and supervision platform; research of the emerging E-commerce ecosystem and its symbiotic model; THP technology research based on implicit feedback; research on the path of logistics cost control under the background of globalization; the fit between control mechanism and project characteristic; the research of complex product data warehouse architecture and key management technology based on cloud computing; based on the nonlinear theory of mechanical processing technology system chaos mechanism research; Intelligent human face recognition utilized computer image processing method; security vulnerabilities in computer software testing technology and its application; computer technology application in enterprise information management; showroom design research based on 3D virtual technique; research on software engineering system work steps based on system engineering; research of agent-based business intelligence system; research of basketball tactical training based on multimedia system; network-assisted system of sportunterricht; the design and implementation of dynamic password identity authentication system; algorithm research on automated assessment technology in subjective items; research of speed routing software based on Linux; security management research based on financial database; multimedia application research based on basketball teaching; the apply of image analysis base on scale space; research of financial management system; design of wireless data acquisition system based on ARM; fuzzy DEA model based on independent subsystems and its application; the research of small and micro enterprises\' financial problems in China; the evaluation of innovation talent base on AHP-fuzzy in universities; research on the role of government in the construction of Guangdong industrial transfer parks; evaluation of economic coordination of port informatization; research on incentives of carbon fund investment based on tripartite principal agents; research on selection method of leading enterprise based on fuzzy preference relations; research on labor cost advantage of Chinese manufacturing; the empirical research of search engine optimization in hotel service; the strategy of developing low-carbon buildings in Tianjin; political risks of international electricity trade in GMS; research on intensive use of cultivated land and its driving forces in Gansu; secondary data analysis system development and design for basketball coaches; based on mechanical analysis of sports ball trajectory model; the technique of control and predictive regression analysis; clever urban development and circular economy; an efficient pseudorandom test pattern generator; using BTDB structure to hide branch misprediction cycles; lakeside plaza super-tall structures antiseismic concept design; research on data preparation technique in web usage mining; application of web network management based on mobile agent and on membership function in fuzzy risk assessment of groundwater contamination.','',1,'[No author name available]','scopus/soa security.csv','scopus','\0'),(172,'Cloud-based Smart CDSS for chronic diseases','2013','12',' Activity recognition Social media Cloud computing Healthcare CDSS HL7','Abstract The rise in living standards that has occurred with the advancement of new technologies has increased the demand for sophisticated standards-based health-care applications that provide services anytime, anywhere, and with low cost. To achieve this objective, we have designed and developed the Smart Clinical Decision Support System (Smart CDSS) that takes input from diverse modalities, such as sensors, user profile information, social media, clinical knowledge bases, and medical experts to generate standards-based personalized recommendations. Smartphone-based, accelerometer-based, environment-based activity-recognition algorithms are developed with this system that recognizes users’ daily life activities. For example, social media data are captured for a diabetic patient from his/her social interactions on Twitter, e-mail, and Trajectory and then combined with clinical observations from real encounters in health-care facilities. The input is converted into standard interface following HL7 vMR standards and submitted to the Smart CDSS for it to generate recommendations. We tested the system for 100 patients from Saint Mary’s Hospital: 20 with type-1 diabetes, 40 with type-2 diabetes mellitus, and 40 with suspicions for diabetes but no diagnosis during clinical observations. The system knowledge base was initialized with standard guidelines from online resources for diabetes, represented in HL7 Arden syntax. The system generates recommendations based on physicians’ guidelines provided at the hospital during patient follow-ups. With support from the Azure cloud infrastructure, the system executed the set of guidelines represented in Arden syntax in a reasonable amount of time. Scheduling and executing the 3–5 guidelines called medical logic modules (MLMs) required less than a second.','Health and Technology',1,'M. HussainA. M. KhattakW. A. KhanI. FatimaM. B. AminZ. PervezR. BatoolM. A. SaleemM. AfzalM. FaheemM. H. SaddiqiS. Y. LeeK. Latif','springer/soa security.csv','springer',''),(173,'Safena and QBPM: A Proposition for Modeling and Enacting Processes in Supply Chain Network','2011','0','BPMN, UML, business process modeling','Proceedings of the 2011 ACM Symposium on Research in Applied Computation','',2,'Katarzyna Antosz and Sławomir Świrad and Dorota Nieć and Piotr Osiński and Katarzyna Zapart','acm/bpel security.csv','acm','\0'),(174,'Agent-based development for business processes','2012','','','Due to the ever-changing business environment, the supporting IT-systems that execute business processes within organisations must be increasingly flexible and adaptable if those organisations are to remain competitive in today\'s environment. On the other hand, despite offering promising solutions to autonomy, flexibility and adaptability, intelligent agent technology still faces many challenges in being adopted by the industry. Due to their distinct properties, agent-based systems provide a powerful platform for business process execution. Our work focuses in this area with the aim to bridge the gap between business process modelling and agent-oriented development, and consequently contributes to bring benefits to both communities. More specifically, we propose a method for a seamless transition from business process models in Business Process Modelling Notation (BPMN) to agent-oriented models in the Prometheus methodology. © Springer-Verlag Berlin Heidelberg 2012.','',2,'Dam H.K., Ghose A.','scopus/bpmn security.csv','scopus','\0'),(175,'Managing Heterogeneous Access Control Models Cross-Organization','2015','0',' Access control Collaborative system Heterogeneous security policy Web service Heterogeneous access control ABAC XACML WSO2','Abstract Business process collaboration has gained a lot of attention due to the great need for integrating business process of different organizations. The most suitable issue to secure this collaboration is using access control model. However access control model diversity makes it more complex to collaborate cross-organization, especially when each organization refuses to change its security policies, prefers to preserve its access control model and needs to protect its information assets. To meet this problem we propose a flexible architecture based on Attribute Based Access Control (ABAC) model to ensure heterogeneity of access control cross-organization and on specified collaboration contract between these organizations. To validate our approach we have used web services technology, and we have implemented a prototype based on open source platforms WSO2.','',1,'Samira HaguoucheZahi Jarir','springer/service oriented architecture security.csv','springer',''),(176,'The Importance of Teaching Systematic Analysis for Conceptual Models: An Experience Report','2015','0',' Conceptual modeling Models Analysis Education','Abstract In this paper, we report on our experience in teaching conceptual modeling at a master-level course at the University of Trento. We use our experiences to argue that systematic model analysis is an important factor that influences learning and understanding of conceptual modeling techniques. In particular, we have observed this effect with the i * goal-oriented language. In previous years students were required to perform only modeling as part of their projects, while in the last year they were also required to apply systematic analysis. We observe that i * analysis not only allows students to evaluate the satisfaction of goals in their model, but also to better understand their models, helping to refine models until they are more meaningful and more likely to fulfill their intended purpose.','',2,'Elda PajaJennifer HorkoffJohn Mylopoulos','springer/bpmn security.csv','springer',''),(177,'Ibidas: Querying Flexible Data Structures to Explore Heterogeneous Bioinformatics Data','2013','1','','Abstract Nowadays, bioinformatics requires the handling of large and diverse datasets. Analyzing this data demands often significant custom scripting, as reuse of code is limited due to differences in input/output formats between both data sources and algorithms. This recurring need to write data-handling code significantly hinders fast data exploration. We argue that this problem cannot be solved by just data integration and standardization alone. We propose that the integration-analysis chain misses a link: a query solution which can operate on diversely structured data throughout the whole bioinformatics workflow, rather than just on data available in the data sources. We describe how a simple concept (shared ’dimensions’) allows such a query language to be constructed, enabling it to handle flat, nested and multi-dimensional data. Due to this, one can operate in a unified way on the outputs of algorithms and the contents of files and databases, directly structuring the data in a format suitable for further analysis. These ideas have been implemented in a prototype system called Ibidas. To retain flexibility, it is directly integrated into a scripting language. We show how this framework enables the reuse of common data operations in different problem settings, and for different data interfaces, thereby speeding up data exploration.','',1,'Marc HulsmanJan J. BotArjen P. de VriesMarcel J. T. Reinders','springer/webservice security.csv','springer','\0'),(178,'Jasmin: An alternative for secure modularity inside the Digital Home','2012','','Application management; Embedded systems; Home network; Isolation; Modularity; Native components; Security; SOA','The Digital Home (DH) is emerging as a distributed platform hosting services for the end user. This promising home environment depends on availability of numerous value-added services for the DH. Therefore DH implies to fullfil several requirements. (i) New services should easily invoke existing ones so as to build rich services. (ii) The Platform should be adapted to resource-constrained DH devices. (iii) Service providers should easily develop and deploy services onto the DH platform that must be shared between many providers without any security and reliability flaws. We propose Jasmin: a DH middleware following the SOA paradigm [9] to host applications based on the MIND framework that implements the Fractal [3] component model. Applications run inside isolation containers with selectable isolation levels on top of an OS abstraction layer. Our evaluation shows that Jasmin is suitable for legacy code reuse, urges clean design, and automates dynamic application deployment. Jasmin selected virtualization container technology to implement the highest level of isolation containers. Jasmin not only has a low resource usage, but also incurs a very low overhead on hosted applications, making it appropriate for embedded environments. Copyright © 2012 ACM.','',1,'Anne M., Attouchi K., Henry-De-Villeneuve D., Pulou J.','scopus/soa security.csv','scopus','\0'),(179,'The RBAC model and implementation architecture in multi-domain environment','2013','','Composite services; Domains; Implementation architecture; RBAC; Service oriented','Nowadays in the IT convergence environment, the Service Oriented Architecture has its unique significance. The RBAC model has a variety of advantages in protecting the security of services. When the network is extended to a certain scale, it must be divided into multi domains for convenient management. However, the study to the RBAC model can be applied in multi-domain environment is still lacked. Corresponding feasible implementation architectures for the individual and composite services are also in weak. In this paper, we proposed a domain model and a domain based RBAC model can better adapt to the multi-domain security requirements. Then based on the model we designed feasible and efficient access control architectures respectively focusing on the individual services and different type of composite services. The evaluation cases showed the proposed model and implementation architectures achieved desired effects and the performances are in promising. © 2013 Springer Science+Business Media New York.','',1,'Yang Z., Wang J.-X., Yang L., Yang R.-G., Kou B.-S., Chen J.-K., Yang S.-M.','scopus/service oriented architecture security.csv','scopus','\0'),(180,'Vino4TOSCA: A Visual Notation for Application Topologies Based on TOSCA','2012','2',' TOSCA Modeling Visual Notation Application Topologies','Abstract A major difficulty in enterprise computing is the modeling of complex application topologies consisting of numerous individual components and their relationships. Especially in the context of cloud computing, the Topology and Orchestration Specification for Cloud Applications (TOSCA) has been proposed recently for standardization to tackle this issue. However, TOSCA currently lacks a well-defined visual notation enabling effective and efficient communication in order to transport the semantics of the encoded information to human beings. In this paper, we propose a visual notation for TOSCA based on established usability research which provides additional concepts for visual modularization and abstraction of large application topologies.','',2,'Uwe BreitenbücherTobias BinzOliver KoppFrank LeymannDavid Schumm','springer/bpel security.csv','springer','\0'),(181,'Security Considerations in Cloud Computing Virtualization Environment','2013','1',' Cloud Computing Services Cloud Computing Architecture Virtualization Security Layer Security Requirement','Abstract Almost cloud service providers are having their own architectures for providing a variety of cloud services to their customers, cloud service clients. These various architectures and services increase the complexity of security management policies, frameworks, and systems, because they would require different aspects of security solutions for their own architectures and services. Consequently, such compatibility issues make us difficult to design a common security framework, security management system, or security evaluation system. Recognizing the need to solve such issues, we analyze common security elements to be required for cloud computing virtualization, and identify requirements for information protection in this paper. We also identify possible threats that may occur depending on different functions and roles over the cloud virtualization environments, and define security elements and requirements to deal with those issues. We show a set of common directions or approaches to prevent any possible treats to cloud computing, and provide more efficient and systematic method of managing and operating cloud computing system.','',1,'Sang-Soo YeoJong Hyuk Park','springer/service oriented architecture security.csv','springer','\0'),(182,'Extending OpenStack Access Control with Domain Trust','2014','6',' Distributed Access Control Identity Management Security in Cloud and Grid Systems Trust Management','Abstract OpenStack has been rapidly established as the most popular open-source platform for cloud Infrastrusture-as-a-Service in this fast moving industry. In response to increasing access control requirements from its users, the OpenStack identity service Keystone has introduced several entities, such as domains and projects in addition to roles, resulting in a rather complex and somewhat obscure authorization model. In this paper, we present a formalized description of the core OpenStack access control (OSAC). We further propose a domain trust extension for OSAC to facilitate secure cross-domain authorization. We have implemented a proof-of-concept prototype of this trust extension based on Keystone. The authorization delay introduced by the domain trusts is 0.7 percent on average in our experiments.','',1,'Bo TangRavi Sandhu','springer/service oriented architecture security.csv','springer','\0'),(183,'Networked enterprise business model alignment: A case study on smart living','2015','3',' Business model Alignment Implementation Smart living Health and care platforms Case study','Abstract One of the first steps in innovation projects and entrepreneurial initiative involves formulating a Business Model (BM) that describes the value creation, delivery and capturing logic of a business idea. However, when formulating a BM for networked enterprises, the alignment of the collective BM, supporting the joint service or product on offer, and the underlying operational processes of the networked businesses, need to be taken into account. This paper analyses the concept of Business Model Alignment (BMA) based on qualitative case studies of two Smart Living projects in Finland and China. To begin with, a Business Model framework (STOF) is applied to describe the high-level BM. Next, the Value, Information and Process (VIP) framework is applied to analyse BMA. The case studies show that an analytical framework, such as the VIP model, helps reveal the hurdles that may undermine BMA and, as a result, obstruct BM implementation. This paper contributes to existing BM literature by identifying the steps that are necessary to move from an abstract, often strategy-driven BM, of collaborating enterprises towards an aligned BM that can be implemented. This paper also contributes to theory formation by identifying the issues that play a role in achieving BMA.','Information Systems Frontiers',2,'Sam SolaimaniHarry BouwmanTimo Itälä','springer/bpmn security.csv','springer',''),(184,'WSACd - A usable access control framework for smart home devices','2015','','DPWS; Policy-based access control; Service architectures; Smart home; Ubiquitous computing; XACML','Computing devices already permeate working and living environments; a trend which is expected to intensify in the coming years. However, the direct interaction smart devices often have with the physical world, along with the processing, storage and communication of private sensitive data pertaining to users’ lives, bring security concerns into the limelight. This paper presents Web Service Access Control for devices (WSACd), a framework that combines access control provided by the eXtensible Access Control Markup Language (XACML) with the benefits of Service Oriented Architectures through the use of the Devices Profile for Web Services (DPWS). Based on standardized technologies, it enables fine-grained policy-based management of the heterogeneous embedded devices that may be found in a smart residential setting. The proposed framework is implemented in full and its performance is evaluated on a test-bed featuring devices expected to be found in a typical residential environment. © IFIP International Federation for Information Processing 2015.','',1,'Fysarakis K., Konstantourakis C., Rantos K., Manifavas C., Papaefstathiou I.','scopus/service oriented architecture security.csv','scopus','\0'),(185,'Secure and seamless session management in mobile and heterogeneous environment','2012','','Device as a service; Mobility and heterogeneity; Secure and unique session; Security as a service; Security continuity; SIP+; Token; Virtual private device network','The Next Generation Network and Services (NGN/NGS) environment becomes more and more heterogeneous and mobile. Furthermore, today user seeks to access his services within a secured session ensuring the continuity and the quality of service. This rapid evolution and requirements raise the issue of guarantying the continuity of user-centric session in an advanced mobility context. This work targets particularly access control and security aspects based on Service Oriented Architecture in mobile and heterogeneous environments. To address the aforementioned challenges, we propose a secure and seamless session management solution that is based on several concepts and mechanisms. First, this solution ensures security management that overcomes session security and uniqueness challenges by gathering ubiquitous, mutualisable, autonomous and stateless service components. Second, we present a multiple and heterogeneous terminal composition by proposing a Virtual Private Device Network (VPDN) concept that is based on secure and auto-managed components. Finally, in addition to these proposed architecture components and concepts, we introduce SIP+ in order to ensure the security continuity within a seamless session during user mobility.','',1,'Hammami A., Simoni N.','scopus/service oriented architecture security.csv','scopus','\0'),(186,'Using Model Driven Security Approaches in Web Application Development','2014','0','','Abstract With the rise of Model Driven Engineering (MDE) as a software development methodology, which increases productivity and, supported by powerful code generation tools, allows a less error-prone implementation process, the idea of modeling security aspects during the design phase of the software development process was first suggested by the research community almost a decade ago. While various approaches for Model Driven Security (MDS) have been proposed during the years, it is still unclear, how these concepts compare to each other and whether they can improve the security of software projects. In this paper, we provide an evaluation of current MDS approaches based on a simple web application scenario and discuss the strengths and limitations of the various techniques, as well as the practicability of MDS for web application security in general.','',1,'Christoph HochreinerZhendong MaPeter KiesebergSebastian SchrittwieserEdgar Weippl','springer/webservice security.csv','springer','\0'),(187,'The BPEL orchestrating framework for secured grid services','2005','8','','Workflow has been considered as a crucial component in several Grid projects. Among many workflow standards, BPEL, Business Process Execution Language, is emerging as a de-facto workflow standard in Grid and Web services communities. In this paper, we present the adoption of standard BPEL to orchestrate Grid services based on OGSI specification. Our approach is based on proxy services, which enable user to interact with OGSI Grid services supporting GSI security mechanisms, OGSI factory mechanism, and notification mechanism. Our proposed architecture is platform-neutral as it does not depend on any specific security architecture. With our implementation, the proxy services witl be generated automatically for each target Grid service. Thus, they are not limited to pre-defined Grid services. In addition, our proxy services also remove design-time binding limitations of BPEL and allow user to define the binding information of proxy services in run-time. As our approach utilizes original BPEL specification without special modification, we believe that developing Grid applications on our architecture will benefit from standard BPEL-compliant tools and generic Web services tools. We illustrate the example of using our proposed framework by orchestrating drug discovery processes using BPEL and Grid services.','International Conference on Information Technology: Coding and Computing (ITCC\'05) - Volume II',2,'P. Amnuaykanjanasin; N. Nupairoj','ieee/bpel security.csv','ieee','\0'),(188,'A framework to monitor cloud infrastructure in service oriented approach','2013','','Cloud; Intrusion detection; Monitoring; Services','Cloud computing processes and stores the organization\'s sensitive data in the third party infrastructure. Monitoring these activities within the cloud environment is a major task for the security analysts and the cloud consumer. The cloud service providers may voluntarily suppress the security threats detected in their Infrastructure from the consumers. The goal is to decouple Intrusion Detection System (IDS) related logic from individual application business logic and adhere to the Service Oriented Architecture Standards. This paper provides a framework for Intrusion Detection and reporting service to the cloud consumers based on the type of applications and their necessary security needs. Cloud consumers can choose the desired signatures from this framework to protect their applications. The proposed technique is deployed in existing open source cloud environment with minimum changes. A proof-of-concept prototype has been implemented based on Eucalyptus open source packages to show the feasibility of this approach. Our results show that this framework provides effective way to monitor the cloud infrastructure in service oriented approach. © 2013 IEEE.','',1,'Veigas J.P., Sekaran K.C.','scopus/service oriented architecture security.csv','scopus','\0'),(189,'Towards a Generic Data Model for the Integrated Intelligent Computer-Assisted Language Learning (iiCALL) Environment','2013','1','Computer-Assisted Language Learning, Generic Data Model, Integrated E-Learning, Learning of Foreign Languages, Natural Language Processing, Semantic Web Technologies, iiCALL','The Integrated Intelligent Computer-Assisted Language Learning (iiCALL) environment is a Web-based e-learning platform that enables language learning in common working environments like Web browsers or email clients. Business logic and language issues are mainly implemented at the iiCALL server. To meet the challenges for providing high quality and context-related language learning, the iiCALL system is assumed to be semantically interoperable, scalable and flexible. Additionally, existing and well approved technologies and standards have to be taken into consideration. Open technologies for communication are as important as a knowledge-based and service-oriented architecture (SOA). Following an idea coming from the healthcare sector, in particular the development of Health Level Seven International (HL7) version 3, the iiCALL development process concentrates on object-oriented analysis and object-oriented design to achieve a generic data model. Based on the initial architecture and database design, the development process for iiCALL applications is redeveloped, which by abstraction yields to the iiCALL generic data model.','',1,'Harald Wahl and Werner Winiwarter','acm/service oriented architecture security.csv','acm','\0'),(190,'PWWM: A Personal Web Workflow Methodology','2013','0','','Abstract The personal web vision promises to give users a highly personalized experience on the web. This paper proposes and describes a Personal Web Workflow Methodology, designed to elicit, operationalize and execute a personal web user’s goals. Our approach relies heavily on our prior research in goal modeling and operationalization, model matching and merging, and web service monitoring and recovery. We integrate this research with the social networking concept of crowd-sourcing to create a novel methodology for allowing users to produce customized workflows in order to accomplish their unique goals.','',2,'Marsha ChechikJocelyn SimmondsSotirios LiaskosShiva NejatiMehrdad SabetzadehRick Salay','springer/bpel security.csv','springer','\0'),(191,'A scientific workflow management system architecture and its scheduling based on cloud service platform for manufacturing big data analytics','2016','0',' Manufacturing big data Scientific workflow Scheduling algorithm Cloud service platform','Abstract To improve the efficiency and productivity of modern manufacturing, the requirements for enterprises are discussed. The new emerged technologies such as cloud computing and internet of things are analyzed and the bottlenecks faced by enterprises in manufacturing big data analytics are investigated. Scientific workflow technology as a method to solve the problems is introduced and an architecture of scientific workflow management system based on cloud manufacturing service platform is proposed. The functions of each layer in the architecture are described in detail and implemented with an existing workflow system as a case study. The workflow scheduling algorithm is the key issue of management system, and the related work is reviewed. This paper takes the general problems of existing algorithms as the motivation to propose a novel scheduling algorithm called MP (max percentages) algorithm. The simulation results indicate that the proposed algorithm has performed better than the other five classic algorithms with respect to both the total completion time and load balancing level.','The International Journal of Advanced Manufacturing Technology',1,'Xiu LiJingdong SongBiqing Huang','springer/soa security.csv','springer',''),(192,'A semantic web services-based infrastructure for context-adaptive process support','2007','4','','Carrent technologies aimed at supporting processes -whether it is a business or learning process - primarily follow a metadata- and data-centric paradigm. Whereas process metadata is usually based on a specific standard specification - such as the Business Process Modeling Notation (BPMN) or the IMS Learning Design Standard - the allocation of resources is done manually at designtime, and the used data is often specific to one process context only. These facts limit the reusability of process models across different standards and contexts. To overcome these issues, we introduce an innovative Semantic Web Service-based framework aimed at changing the current paradigm to a context-adaptive service-oriented approach. Following the idea of layered semantic abstractions, our approach supports the development of abstract semantic process model - reusable across different contexts and standards - that enables a dynamic adaptation to specific actor needs and objectives. To illustrate the application of our framework and establish its feasibility, we describe a prototypical application in the E-Learning domain. © 2007 IEEE.','',2,'Dietze S., Gugliotta A., Domingue J.','scopus/bpmn security.csv','scopus','\0'),(193,'Internet banking adoption in a developing country: an empirical study in Vietnam','2015','0',' Internet banking TAM TPB model SEM','Abstract Internet banking is growing faster than other e-commerce sectors and has emerged as an evolution in applied banking technology. This study investigates the factors influencing customer intention regarding Internet banking services in Vietnam using elements of an extended technology acceptance model and the theory of planned behaviors. We use structured equation modeling to evaluate the strength of the hypothesized relationships. The results of this study indicate that the use of Internet banking services in Vietnam may be motivated by a set of specific factors (i.e., perceived usefulness, perceived ease of use, perceived credibility, perceived behavioral control, subjective norms, and attitude toward use). These results are expected to help banks understand the critical factors influencing Internet banking usage and to contribute to the creation of competitive promotional campaigns in Vietnam.','Information Systems and e-Business Management',1,'Feng-Teng LinHsin-Ying WuThi Nguyet Nga Tran','springer/service oriented architecture security.csv','springer',''),(194,'Model-Driven Development of Mobile Applications Allowing Role-Driven Variants','2014','2',' model-driven development mobile application Android','Abstract Rapidly increasing numbers of applications and users make the development of mobile applications to one of the most promising fields in software engineering. Due to short time-to-market, differing platforms and fast emerging technologies, mobile application development faces typical challenges where model-driven development can help. We present a modeling language and an infrastructure for the model-driven development (MDD) of Android apps supporting the specification of different app variants according to user roles. For example, providing users may continuously configure and modify custom content with one app variant whereas end users are supposed to use provided content in their variant. Our approach allows a flexible app development on different abstraction levels: compact modeling of standard app elements, detailed modeling of individual elements, and separate provider models for specific custom needs. We demonstrate our MDD-approach at two apps: a phone book manager and a conference guide being configured by conference organizers for participants.','',2,'Steffen VaupelGabriele TaentzerJan Peer HarriesRaphael StrohRené GerlachMichael Guckert','springer/bpel security.csv','springer',''),(195,'Structural analysis of issues in exchanging qualified master data under cloud computing','2015','','Cloud computing; Data quality management; DQM; Master data; Meta-data management; Operational constraints','Various applications including the data quality management (DQM) have been forced to reconsider their structural aspects for deployment since the figures of cloud computing have been revealed more clearly. In enterprise computing, huge efforts to apply service-oriented architecture (SOA) and business process integration (BPI) have been spent to make their information systems more agile and flexible. However, generic principles for implementing the enterprise systems should be updated owing to the advent of cloud computing. Under the practical operations with cloud computing, redeploying qualified data after cleansing, ordering and integration at prior stages depends on commissioning commercial services, despite their features as assets. Therefore, another issue could occur for example, security scope under licensing which is distinguished from the traditional security framework. In this paper, we present the operational issues of master data management (MDM) as one of the sub-fields of DQM. We will touch on the relationship with security requirements under cloud computing and will sketch the formularisation which will become the foundation when considering suitable operational rules. © 2015 Inderscience Enterprises Ltd.','',1,'Kikuchi S.','scopus/service oriented architecture security.csv','scopus',''),(196,'VPML: an approach to detect design patterns of MOF-based modeling languages','2015','2',' Design pattern Modeling MOF UML BPMN QVT GoF VPML','Abstract A design pattern is a recurring and well-understood design fragment. In a model-driven engineering methodology, detecting occurrences of design patterns supports the activities of model comprehension and maintenance. With the recent explosion of domain-specific modeling languages, each with its own syntax and semantics, there has been a corresponding explosion in approaches to detecting design patterns that are so much tailored to those many languages that they are difficult to reuse. This makes developing generic analysis tools extremely hard. Such a generic tool is however desirable to reduce the learning curve for pattern designers as they specify patterns for different languages used to model different aspects of a system. In this paper, we propose a unified approach to detecting design patterns of MOF-based modeling languages. MOF is increasingly used to define modeling languages, including UML and BPMN. In our approach, a pattern is modeled with a Visual Pattern Modeling Language and mapped to a corresponding QVT-Relations transformation. Such a transformation runs over an input model where pattern occurrences are to be detected and reports those occurrences in a result model. The approach is prototyped on Eclipse and validated in two large case studies that involve detecting design patterns—specifically a subset of GoF patterns in a UML model and a subset of Control Flow patterns in a BPMN model. Results show that the approach is adequate for modeling complex design patterns for MOF-based modeling languages and detecting their occurrences with high accuracy and performance.','Software & Systems Modeling',2,'Maged ElaasarLionel C. BriandYvan Labiche','springer/bpmn security.csv','springer',''),(197,'3D vs. 4D Ontologies in Enterprise Modeling','2014','0','','Abstract This paper presents a comparison between a 3D and a 4D ontology, with the purpose of identifying modeling variations that arise from using these different kinds of ontologies. The modeling variations are illustrated by using two enterprise modeling enigmas to which both ontologies are applied. The goal of our comparison is to demonstrate that the choice of an ontology impacts on the representation of real world phenomena and will eventually result in different enterprise models.','',2,'Michaël VerdonckFrederik GaillyGeert Poels','springer/bpmn security.csv','springer',''),(198,'Least privilege analysis in software architectures','2013','0',' Security analysis Least privilege Software architecture','Abstract Due to the lack of both precise definitions and effective software engineering methodologies, security design principles are often neglected by software architects, resulting in potentially high-risk threats to systems. This work lays the formal foundations for understanding the security design principle of least privilege in software architectures and provides a technique to identify violations against this principle. The technique can also be leveraged to analyze violations against the security design principle of separation of duties. The proposed approach is supported by tools and has been validated in four case studies, two of which are presented in detail in this paper.','Software & Systems Modeling',2,'Koen BuyensRiccardo ScandariatoWouter Joosen','springer/bpel security.csv','springer','\0'),(199,'A standardized SOA for clinical data interchange in a cardiac telemonitoring environment','2014','1','Electronic health record (EHR); Healthcare; Healthcare services specification project (HSSP); Interoperability; Telemedicine solution','Care of chronic cardiac patients requires information interchange between patients\' homes, clinical environments, and the electronic health record. Standards are emerging to support clinical information collection, exchange and management and to overcome information fragmentation and actors delocalization. Heterogeneity of information sources at patients\' homes calls for open solutions to collect and accommodate multidomain information, including environmental data. Based on the experience gained in a European Research Program, this paper presents an integrated and open approach for clinical data interchange in cardiac telemonitoring applications. This interchange is supported by the use of standards following the indications provided by the national authorities of the countries involved. Taking into account the requirements provided by the medical staff involved in the project, the authors designed and implemented a prototypal middleware, based on a service-oriented architecture approach, to give a structured and robust tool to congestive heart failure patients for their personalized telemonitoring. The middleware is represented by a health record management service, whose interface is compliant to the healthcare services specification project Retrieve, Locate and Update Service standard (Level 0), which allows communication between the agents involved through the exchange of Clinical Document Architecture Release 2 documents. Three performance tests were carried out and showed that the prototype completely fulfilled all requirements indicated by the medical staff; however, certain aspects, such as authentication, security and scalability, should be deeply analyzed within a future engineering phase. © 2014 IEEE.','',1,'Gazzarata R., Vergari F., Cinotti T.S., Giacomini M.','scopus/service oriented architecture security.csv','scopus','\0'),(200,'Monitoring web services’ quality of service: a literature review','2014','1',' Web service monitoring Web service QoS Vague QoS Fuzzy type-2 QoS monitoring','Abstract Monitoring Quality of Service (QoS) compliance is an important procedure in web service environment. It determines whether users’ expectations are met, and becomes the vital factor for them to decide whether to continue paying for the service or not. The monitoring is performed by checking the actual services performance against the QoS stated in Service Level Agreement (SLA). In relation to that, the need for monitoring vague QoS specifications in SLA has become more apparent nowadays. This paper reviews the published literature on web services QoS monitoring. A total of 60 selected articles were systematically analyzed. There were 23 of the articles selected through restrictive search criteria while the other 37 were selected based on unrestrictive search criteria. The review shows that little evidence exists on monitoring vague QoS specifications of web services. Providing ability for monitoring QoS that is specified vaguely in SLA could give new insights and implications to web services field. This paper concludes with some recommended future works to construct the theory and perform the empirical research.','Artificial Intelligence Review',2,'Mohd Hilmi HasanJafreezal JaafarMohd Fadzil Hassan','springer/bpel security.csv','springer',''),(201,'An Empirical Evaluation of a Usability Measurement Method in a Model Driven Framework','2013','1',' Plastic User Interface Usability Model Empirical Evaluation Model Driven Engineering','Abstract Usability is increasingly considered as a basic determinant of the Interactive Systems (IS) success. An IS that satisfies all the functional requirements can be rejected by end-users if it presents usability problems. Unusable User Interface (UI) is probably the main reason that may lead to the failure in the actual use of an IS. Therefore, several approaches dealing with the evaluation of the user interface usability have been proposed in literature. However, these approaches are focused on the final system and require a large amount of resources to perform the evaluation (end-users, video cameras, questionnaires, etc.). The ability to go back and makes major changes to the design is greatly reduced. It is widely accepted that the evaluation performed at the beginning of the development process is a critical part of ensuring that the product will be used and effective for its intended purpose. In addition, an early usability evaluation would be a significant advantage with regard to saving time and resources. The purpose of the present paper is to investigate the integration of the usability issues at an early stage of the development process. A model based approach is presented and empirically evaluated.','',2,'Lassad Ben AmmarAdel Mahfoudhi','springer/bpmn security.csv','springer','\0'),(202,'A Survey on Testing for Cyber Physical System','2015','0',' Testing Cyber physical systems Survey','Abstract Cyber Physical Systems (CPS) bridge the cyber-world of computing and communications with the physical world and require development of secure and reliable software. It asserts a big challenge not only on testing and verifying the correctness of all physical and cyber components of such big systems, but also on integration of these components. This paper develops a categorization of multiple levels of testing required to test CPS and makes a comparison of these levels with the levels of software testing based on the V-model. It presents a detailed state-of-the-art survey on the testing approaches performed on the CPS. Further, it provides challenges in CPS testing.','',1,'Sara Abbaspour AsadollahRafia InamHans Hansson','springer/service oriented architecture security.csv','springer',''),(203,'An Agent-Oriented Method for Designing Large Socio-technical Service-Ecosystems','2014','0','business-process aware;cloud;ecosystem;service;socio-technical system;software engineering','The development of large socio-technical systems is now more feasible with the availability of service-oriented cloud computing although this results in a higher complexity level with respect to security and dependability in service-ecosystems. Additionally, the communication between humans and software is more complex too. Developing system architectures that comprise proactive agents are a means to tackle that complexity. However, there is a lack of socio-technical design methods for generating agent-based architectures that get deployed on platforms as a service in Clouds. Such a method must be easy to comprehend and enactable in a pragmatic way. To demonstrate the method, the paper uses a running case based on an emergency healthcare-provision scenario in homes for elderly in sparsely populated areas.','2014 IEEE World Congress on Services',1,'A. Norta; M. Mahunnah; T. Tenso; K. Taveter; N. C. Narendra','ieee/service oriented architecture security.csv','ieee','\0'),(204,'Towards a Forensic-Based Service Oriented Architecture Framework for Auditing of Cloud Logs','2013','5','SOA;cloud;web; forensic','Cloud computing log digital investigations relate to the investigation of a potential crime using the digital forensic evidence from a virtual machine (VM) host operating system using the hypervisor event logs. In cloud digital log forensics, work on the forensic reconstruction of evidence on VM hosts system is required, but with the heterogeneous complexity involved with an enterprise\'s private cloud not to mention public cloud distributed environments, a possible Web Services-centric approach may be required for such log supported investigations. A data cloud log forensics service oriented architecture (SOA) audit framework for this type of forensic examination needs to allow for the reconstruction of transactions spanning multiple VM hosts, platforms and applications. This paper explores the requirements of a cloud log forensics SOA framework for performing effective digital investigation examinations in these abstract web services environments. This framework will be necessary in order to develop investigative and forensic auditing tools and techniques for use in cloud based log-centric SOAs.','2013 IEEE Ninth World Congress on Services',1,'S. Thorpe; T. Grandison; A. Campbell; J. Williams; K. Burrell; I. Ray','ieee/service oriented architecture security.csv','ieee','\0'),(205,'4th International Conference on Enterprise Resource Planning, ERP Future 2015','2016','','','The proceedings contain 12 papers. The special focus in this conference is on Education in Enterprise Systems and Business Process Models. The topics include: Introducing a best practice example for vocational training in universities; business process model semantics in BPMN; integration of risk aspects into business process modeling; towards rigid actor assignment in dynamic workflows; towards a generic resource booking management system; strategic management in the branch of online accounting solution providers; systems in use, system vendors and implementation consultancies; semantic technologies for managing complex product information in enterprise systems; research challenges of industry 4.0 for quality management; security-based approach for transformations of mobile accesses to ERP systems and vertical integration and adaptive services in networked production environments.','',2,'[No author name available]','scopus/bpmn security.csv','scopus',''),(206,'Agent-based interoperability for e-government','2013','','','The provision of valuable e-government services depends upon the capacity to integrate the disperse provision of services by the public administration and thus upon the availability of interoperability platforms. These platforms are commonly built according to the principles of service oriented architectures, which raise the question of how to dynamically orchestrate services while preserving information security. Recently, it was presented an e-government interoperability model that preserves privacy during the dynamic orchestration of services. In this paper we present a prototype that implements that model using software agents. The model and the prototype are briefly described; an illustrative use case is presented; and the advantages of using software agents to implement the model are discussed. © Springer International Publishing Switzerland 2013.','',1,'Marques F., Dias G.P., Zúquete A.','scopus/service oriented architecture security.csv','scopus','\0'),(207,'Towards a business-centric definition of access control policies','2011','','','Security requirements are part of business requirements, either because they derive from forensic rules, or because they derive from the business logic that should be translated into functional requirements to guaranty that a system meets its users\' needs. Extending several notations such as the UML and the BPMN has been proposed as a means to bridge the gap between business processes engineering, security policies design and system engineering. However, a gap remains between these extensions on the one hand and between the large number of access control models on the other hand. Business logic, system engineering and security design thus remain separated when they should be intertwined. In this paper, we address this issue by defining a metamodel for access control to gather the different aspects of access control. We then introduce extensions to the UML et to BPMN that we derive from this metamodel and show that from a business-centric perspective, we can derive functional requirements, and model security to generate actual security policies. © 2011 IEEE.','',2,'Faravelon A., Verdier C., Front A.','scopus/bpmn security.csv','scopus','\0'),(208,'Access Control Architecture Separating Privilege by a Thread on a Web Server','2012','0','Access Control;Runtime Privilege;Security in a Server;Web Server','In Web hosting services, hosting systems use access controls like suEXEC on apache Web servers to separate privilege by each virtual host. However, existing access control architectures on Web servers have a problem in their low performance and are not appropriate for dynamic contents like Web API since these architectures require termination of the process after each HTTP session. System developers are not easy to install existing access controls since these are provided by each interpreter and program execution methods conventionally. In this paper, we propose the access control architecture gmod_process_securityh. In this architecture a server process creates a new thread on the server process when accepting a request. Then, the web server separates privilege by the thread and processes the contents on the thread. The server process installed gmod_process_securityh executes programs faster. System developers can easily install it on web servers since we replace it with the complicated existing access controls. gmod_process_securityh can be installed for Apache HTTP Server on Linux as Apache Module which is widely used.','Applications and the Internet (SAINT), 2012 IEEE/IPSJ 12th International Symposium on',1,'R. Matsumoto; Y. Okabe','ieee/service oriented architecture security.csv','ieee','\0'),(209,'Cloud identity management security issues & solutions: a taxonomy','2014','2',' Cloud computing security Identity management Assessment criteria IDMS taxonomy','Abstract Purpose Cloud computing systems represent one of the most complex computing systems currently in existence. Current applications of Cloud involve extensive use of distributed systems with varying degree of connectivity and usage. With a recent focus on large-scale proliferation of Cloud computing, identity management in Cloud based systems is a critical issue for the sustainability of any Cloud-based service. This area has also received considerable attention from the research community as well as the IT industry. Numerous Cloud Identity Management Systems (IDMSs) have been proposed so far; however, most of those systems are neither widely accepted nor considered highly reliable due to their constraints in terms of scope, applicability and security. In order to achieve reliability and effectiveness in IDMs for Cloud, further extensive research needs to be carried out to critically examine Cloud based IDMSs and their level of security. Methods In this work, we have holistically analyzed Cloud IDMSs to better understand the general as well as the security aspects of this domain. From the security perspective, we present a comprehensive list of attacks that occur frequently in Cloud based IDMSs. In order to alleviate those attacks, we present a well-organized taxonomy tree covering the most desired features essential for any Cloud-based IDMSs. Additionally, we have specified various mechanisms of realization (such as access control polices, encryption, self-service) against each of the features of Cloud IDMSs. We have further used the proposed taxonomy as an assessment criterion for the evaluation of Cloud based IDMSs. Results Our in-depth analysis of various Cloud based IDMSs reveals that most of the systems do not offer support to all the essential features of Cloud IDMS and the ones that do, have their own certain weaknesses. None of the discussed techniques heuristically covers all the security features; moreover, they lack compliance to international standards which, understandably, undermines their credibility. Conclusion Presented work will help Cloud subscribers and providers in understanding the available solutions as well as the involved risks, allowing them to make more knowledgeable decisions while selecting potential Cloud IDMSs that best suits their functional and security requirements.','Complex Adaptive Systems Modeling',1,'Umme HabibaRahat MasoodMuhammad Awais ShibliMuaz A Niazi','springer/service oriented architecture security.csv','springer','\0'),(210,'An environment for service composition, execution and resource allocation','2013','','service composition; Service Oriented Architecture; service request distribution; service security','In recent years the evolution of software architectures led to the rising prominence of the Service Oriented Architecture (SOA) concept. The services can be deployed in distributed environments and executed on different hardware and software platforms. In the paper a configurable and flexible environment, allowing composition, deployment and execution of composite services, which can be applied in the wide range of SOA-based systems is presented. It supports service semantic description, composition and the distribution of service requests guaranteeing services quality, especially efficient allocating communication and computational resources to services. We present an unified approach, which assumes the semantic description of Web service functionalities with an XML-based language - Smart Service Description Language which provides similar features to that of OWL-S or WSDL, however, it was designed to support services execution and monitoring. These unique features allow to design a service execution engine, compatible with the underlying execution environment and providing support for service QoS guarantees. © 2013 Springer-Verlag.','',1,'Kwiatkowski J., Juszczyszyn K., Kolaczek G.','scopus/service oriented architecture security.csv','scopus','\0'),(211,'Web services: Design choices for space ground system integration','2012','0','Integration;REST;SOA;SOAP;Space Ground System;Web Service','The primary role of a ground system in the design of a space ground network is to exchange information between the space fleet and the end users. In order to maintain secure, reliable communications and provide situational awareness, a ground system needs to choreograph services between heterogeneous interfaces of various key elements in the ground system architecture. The choice of Service Oriented Architecture and Web Services provides a cost effective and scalable solution to integrate disparate software elements of the ground system. The two major concepts in web service technology are SOAP and REST. While SOAP is a protocol to transfer information between two end points, REST principles concentrate on representing resource state information using resource identifiers. The paper discusses merits and de-merits of each approach in the integration of a space ground system\'s heterogeneous interfaces. The paper starts with the large grain description of a typical space ground system, followed by a discussion of SOAP and REST principles. A comparison of SOAP and REST based approaches in the design and integration of a ground system is discussed. Finally the paper concludes with a discussion of recent trends in the techniques of web services.','MILCOM 2012 - 2012 IEEE Military Communications Conference',1,'S. Nath','ieee/service oriented architecture security.csv','ieee','\0'),(212,'An Intents-based approach for dynamic service discovery','2016','1',' Services computing Web services Service discovery Intents','Abstract Service discovery has been a very active research field attracting many researchers around the world. Most of the previous research efforts on service discovery have been based on the ternary classification of participant roles in web services, including service providers, brokers, and consumers. This classification is insufficient because it fails to make a difference between application developers and end users who both belong to service consumers. As a result, application developers usually take the responsibility of seeking services while end users who ultimately use the application are ignored. In order to address this issue, this paper presents an Intents-based approach for dynamic service discovery. The proposed approach is motivated from two industrial protocols: Android Intents and web Intents. It improves the two protocols by a generic model from the aspects of architecture, intent messages and their resolving process, Intents services, and user agents. It classifies the implicit intents into authoritative and naïve intents and is compatible with the current web service triangular architecture. This paper also illustrates a way of creating Intents services from SOAP and REST web services and presents two cases to demonstrate some benefits of the proposed approach.','Service Oriented Computing and Applications',1,'Cheng ZhengWeiming ShenHamada H. Ghenniwa','springer/soa security.csv','springer',''),(213,'FRWSC: a framework for robust Web service composition','2016','0',' Web service composition SOAP errors Runtime failure BPEL Service replacement','Abstract The deployment of Web services in a highly dynamic environment brings about a number of research challenges. In dynamic Web services composition, failures and changes to atomic services cannot be detected before invocation. Hence, the failure or even the change in an atomic service may lead to the overall failure of the composite service. In addition, SOAP error code is not sufficient for the client to analyze the failure reason and handle it. In this work, we introduce a framework to deal with unexpected failures during runtime composition. The proposed framework is built on top of composite services stack as an interface between the composite service and its external service partners. The evaluation results show that by using the proposed framework, it is possible to avoid composite service failures that are caused by changes or failures in atomic services.','Service Oriented Computing and Applications',1,'Mohamed El KholyAhmed El Fatatry','springer/soa security.csv','springer',''),(214,'SeSaMe: Towards a Semantic Self Adaptive Middleware for Smart Spaces','2013','2','','Abstract Smart spaces are inherently complex and dynamic systems, where diverse devices, sensors, actuators and computational elements need to interact with one another. A middleware infrastructure can provide suitable abstractions that simplify the task, and allow designers to ignore the details of the underlying elements. Unfortunately, however, existing middleware solutions do not generalize well to different kinds of spaces, since they often fail to address the scalability and dynamism of such spaces. In this paper we propose SeSaMe, a semantic and self-adaptive middleware infrastructure for highly dynamic and massive smart spaces. SeSaMe establishes a “backbone” to let components connect to the system without any prior knowledge of its topology. It is capable of maintaining the system’s overall reliability, even when multiple components leave or fail unexpectedly, and of coping with message congestion, by dynamically altering the system’s topology. SeSaMe also provides a simple declarative language for defining how one wants the system to evolve over time, and semantic technologies for harmonizing the interaction of different kinds of components. The main new features of SeSaMe are exemplified on two example smart spaces with significantly different characteristics.','',1,'Luciano BaresiSam GuineaAdnan Shahzada','springer/service oriented architecture security.csv','springer','\0'),(215,'Scope-Aware Delegations in Distributed Social Networks','2015','1',' Security Delegation Semantic web Social web WebID','Abstract Swiftly meeting challenges by distributing tasks to the most suitable knowledge workers is an important matter, especially for network-centric organizations. In such distributed work environments delegations help to solve tasks faster, but also require measures to prevent delegatees from exceeding assigned competencies. By providing universal identification, WebID by W3C can assist in establishing a basis for distributed collaboration. Yet, it does not allow users for delegating access rights to others in a controlled way to act on their behalves. This paper presents the DASC approach to enable scope-aware delegations in distributed social networks using WebID. We introduce a vocabulary to describe delegations including associated constraints and demonstrate a prototypical implementation of DASC within an existing WebID identity provider.','',2,'Anna ScholtzStefan WildMartin Gaedke','springer/bpmn security.csv','springer',''),(216,'8th International Conference on Dependability and Complex Systems, DepCoS-RELCOMEX 2013','2013','','','The proceedings contain 50 papers. The special focus in this conference is on Dependability and Complex Systems. The topics include: Application level execution model for transparent distributed computing; risk assessment aspects in mastering the value function of security measures; reduction of computational cost in mutation testing by sampling mutants; reliability analysis of discrete transportation systems using critical states; a reference model for the selection of open source tools for requirements management; a probabilistic approach to the count-to-infinity problem in distance-vector routing algorithms; a quality estimation of mutation clustering in C# programs; using virtualization technology for fault-tolerant replication in LAN; quantification of simultaneous-AND gates in temporal fault trees; improving of non-interactive zero-knowledge arguments using oblivious transfer; virtual environment for implementation and testing private wide area network solutions; optimization of privacy preserving mechanisms in mining continuous patterns; technical and program aspects on monitoring of highway flows; integral functionals of semi-Markov processes in reliability problems; generating repair rules for database integrity maintenance; optimization algorithm for the preservation of sensor coverage; towards evolution methodology for service-oriented systems; The LVA-index in clustering; the end-to-end rate adaptation application for real-time video monitoring; discrete transportation systems quality performance analysis by critical states detection; freshness constraints in the RT framework; transformational modeling of BPMN business process in SOA context; reliability assessment of supporting satellite system EGNOS; an approach to automated verification of multi-level security system models; a web service-based platform for distributed web applications integration; universal platform for composite data stream processing services management; proposal of cost-effective tenant-based resource allocation model for a SaaS system; automatic load testing of web application in SaaS model; on testing wireless sensor networks; towards precise architectural decision models; K-induction based verification of real-time safety critical systems; dependability aspects of autonomic cooperative computing systems; life cycle cost through reliability and verification of info communication system components for modeling and control of saturated traffic in megalopolis.','',2,'[No author name available]','scopus/bpmn security.csv','scopus','\0'),(217,'Achieving high-performance video analytics with lightweight cores and a sea of hardware accelerators','2014','','','High performance and energy efficient video analytics systems that can extract rich metadata from voluminous visual content, will enable a variety of high-value surveillance, driver assistance, video tagging, and first person analytics systems. These big-data applications are pervasive across retail, automotive, medical, agriculture and security domains. However, current trends in general purpose and multicore architectures will not keep pace with the growing computational demands of cutting edge visual perception algorithms. Hardware acceleration is crucial to surpassing what is realizable on modern multicore and GPGPU architectures. In this paper we detail a Sea-of-Accelerators, SoA, platform that combines a mix of macro-accelerators, microaccelerators, and lightweight processors to achieve high performance and energy efficiency in video analytics applications. In this paper, we describe a framework for video and image analytics and highlight its benefits with a case study of a customized visual saliency accelerator. We describe the architecture of a full custom macro-accelerator that is suitable when raw performance is of critical importance. As an alternative, we illustrate the composition of an accelerator from a constituent of loosely coupled microaccelerators and evaluate the performance achievable when performance and flexibility are competing objectives. © 2014 IEEE.','',1,'Irick K.M., Chandramoorthy N.','scopus/soa security.csv','scopus','\0'),(218,'Putting It All Together: Using the ArtDeco Approach in the Wine Business Domain','2012','0','','Abstract This chapter summarises the results achieved by the ArtDeco project and presents the overall approach for developing the models that the large-scale middleware infrastructure designed during the project uses to drive the behaviours of the information systems of a sample networked enterprise operating in the domain of wine production. This domain is sufficiently wide to cover many business aspects that highlight the ability of the proposed infrastructure to adapt its behavior to the evolving execution context by reacting to unexpected events with a very limited human intervention. The same approach has been experimented also in different domains, including fashion industry and value added services for TLC providers.','',2,'Eugenio ZimeoValentina MazzaGiorgio OrsiElisa QuintarelliAntonio RomanoPaola SpoletiniGiancarlo TretolaAlessandro AmiranteAlessio BottaLuca CavallaroDomenico ConsoliEster GiallonardoFabrizio Maria MaggiGabriele Tiotto','springer/bpmn security.csv','springer','\0'),(219,'Spatio-temporal enabled urban decision-making process modeling and visualization under the cyber-physical environment','2015','0',' decision-making process meta-model process chain SensorML emergency management 关键词 决策过程 元模型 过程链 传感器建模语言 应急管理 100105','Abstract Urban management is increasingly dependent on the construction of cyber-physical systems, which have been widely deployed in multiple fields, including agriculture, transportation, and health care. Cyberphysical systems provide a large volume of big sensory data. Thus, the application of big data for urban emergency decision-making has become a challenge. Traditional decision-making models are unable to overcome several technical problems, including spatio-temporal information support and access to real-time service for disaster management and emergency response. In this paper, we propose a spatio-temporal enabled urban decision-making process modeling method in the cyber-physical environment and discuss the development off our basic metadata components, the definition of eleven-tuple information description structure. A prototype system is designed for modeling registering, management, visualization, and other functions. Decision-making processes are implemented as composite process chains through three phases, i.e., decision-making process modeling, instantiation of the decision-making process chain and execution of the decision-making process chain. For application to gas leak events, the decision-making process is executed to confirm the feasibility of the proposed decision-making process modeling method and the flexibility of the eleven-tuple information structure.','Science China Information Sciences',1,'Wei WangChuanBo HuNengCheng ChenChangJiang XiaoChao WangZeQiang Chen','springer/soa security.csv','springer',''),(220,'A Web Services Based Solution for Online Loan Management via Smartphone','2012','0',' Web services E-finance Unified Modeling Language Case studies Tools and applications','Abstract Small microfinance institutions (in underdeveloped countries), despite their determination to expand into rural areas, are limited by geographic isolation and high transaction costs. For this, a solution has been proposed to access some features of the enterprise application via Smartphone. This solution is based on a service-oriented architecture in which the main features are developed as web services. The invocation of the methods is performed from a Smartphone or a PC, while the execution will be on a server that returns an understandable result through WSDL (Web Service Description Language) generated by web services, where the transport is provided by SOAP (Simple Object Access Protocol).','',1,'Théophile K. DagbaErcias LohounmèAnge Nambila','springer/service oriented architecture security.csv','springer','\0'),(221,'Preference based service adaptation using service substitution','2013','2','','In many applications such as service-oriented computing, users often prefer some compositions over the others based on their preferences over non-functional attributes such as security and cost. After a composition is deployed, apart from changes in the functional requirements, service-oriented architectures often have to deal with changes in the user preferences over the non-functional attributes and/or repository of available components. We formulate the problem of adaptation as iterative substitution of appropriate components in a composition, and provide two algorithms that produce a sequence of increasingly preferred adaptations with time: a fast algorithm that searches for preferred adaptations by improving the valuation of the relatively more important attributes, and another that is computationally more intensive but guaranteed to produce at least one preferred adaptation, if one exists. © 2013 IEEE.','',1,'Santhanam G.R., Basu S., Honavar V.','scopus/service oriented architecture security.csv','scopus','\0'),(222,'Cooperative caging and transport using autonomous aquatic surface vehicles','2012','6',' Marine robotics Cooperative control Cooperative caging Field robotics','Abstract We present a study on the cooperative control of two autonomous surface vehicles performing a caging and transport mission on the water surface. The two vehicles, connected to each other by means of a floating flexible rope, are required to capture a floating target from a given location, and transport it to a designated position. We focus on the coordination and control strategy to meet these requirements, and on its implementation on two under-actuated vehicles. We describe a multi-layered control architecture which achieves the goal, followed by simulation studies and field experiments with the two vehicles caging and transporting a floating target on the surface of a lake.','Intelligent Service Robotics',1,'Filippo ArrichielloHordur K. HeidarssonStefano ChiaveriniGaurav S. Sukhatme','springer/soa security.csv','springer','\0'),(223,'Web-Based Authoring and Secure Enactment of Bioinformatics Workflows','2009','3','BPEL;Grid;scientific workflows;security;web2.0','The recent advances in the field of bioinformatics present a number of challenges in the secure and efficient management and analysis of biological data resources. Workflow technologies aim to assist scientists and domain experts in the design of complex, long running, data and computing intensive experiments that involve many data processing and analysis tasks. In this paper we present a bioinformatics workflow authoring and execution environment that intends to greatly facilitate the whole lifecycle of such experiments. The main contributions of this work are a Web based, easy to use, graphical workflow designer and a BPEL compliant execution environment. The ethical and security requirements when dealing with sensitive personal data that are inherent in the field of bioinformatics impose the introduction of ldquocredentials delegationrdquo in the workflow execution and we describe its design and implementation through bridging Grid security mechanisms with business workflows technologies.','Grid and Pervasive Computing Conference, 2009. GPC \'09. Workshops at the',2,'S. Sfakianakis; L. Koumakis; G. Zacharioudakis; M. Tsiknakis','ieee/bpel security.csv','ieee','\0'),(224,'Cirrus: A Disruption-Tolerant Cloud','2012','0','','Abstract Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, virtual machines, applications, and services) that can be rapidly and elastically provisioned, to quickly scale out, and rapidly released to quickly scale in. However, commercially available cloud services such as public grids target the needs for the broader customer base and do not meet the specialized requirements of real-time, data-centric applications, such as sensor data aggregation, messaging, media streaming and commodity exchange, that need to process very large volumes of diverse, streaming data in near real time. To make matters worse, end-to-end communication paths between real-time data providers and consumers are no longer guaranteed, due to either node unavailability or service unavailability. The DTN paradigm has shown to promote interoperable and reliable communications in the presence of disruptions, however, is not directly applicable to cloud computing. A new cloud computing model is therefore needed for the above scenarios. This paper proposes a novel concept, that of a generalized cloud, Cirrus , defined as a computing cloud with the following characteristics: (i) abiding by the NIST Cloud Definition, (ii) providing specialized, core Cloud services targeted to real-time, data centric applications, (iii) allowing for the elastic use of Cirrus cloud resources by ad-hoc networks and (iv) allowing for the elastic incorporation of nomadic and/or severely resource constrained devices, in Cirrus. Cirrus is built on top of DTN application-layer extensions, such as the Bundle Protocol (BP). As a result, Cirrus behaves as an ”overlay Cloud”, elastically forming, expanding and shrinking over networks of dynamic topology that may contain both fixed and ad-hoc infrastructure, thus providing a more fair and de-centralized Cloud Computing solution that is not exclusive to ”big players” in the field.','',1,'Eleftheria Katsiri','springer/service oriented architecture security.csv','springer','\0'),(225,'Proceedings - 12th IEEE International Conference on Trust, Security and Privacy in Computing and Communications, TrustCom 2013','2013','','','The proceedings contain 256 papers. The topics discussed include: efficient fair UC-secure two-party computation on committed inputs; on the design of a trust enhanced distributed authorisation architecture for service oriented architectures; a framework for authentication and authorization credentials in cloud computing; building confidence in information-trustworthiness metrics for decision support; on the application of supervised machine learning to trustworthiness assessment; on the application of supervised machine learning to trustworthiness assessment; an online query authentication system for outsourced databases; card-present transactions on the Internet using the smart card web server; a direct insight into victims of cybercrime; S2Logger: end-to-end data tracking mechanism for cloud data provenance; privacy protected data forwarding in human associated delay tolerant networks; and word n-gram based classification for data leakage prevention.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus','\0'),(226,'DNS configuration detection model','2014','0','Domain Name System;configuration errors;detection','The domain name system (DNS) plays a crucial role in the Internet. However, DNS configuration errors seriously affect the performance of DNS recently. In order to know current DNS configuration, we have studied and classified common configuration problems, proposed a DNS configuration detection model and detected the top 500 zones of China. The detection results show that DNS configuration errors are widespread. Percentages of misconfigured NS records in the top 500 zones, SOA records and MX records are all over 25%. And more than 25% of the zones do not allow TCP connection. Moreover, percentages of each configuration error class of the zones, such as delegation inconsistency, lame inconsistency and diminished server redundancy are all over 5%, especially delegation inconsistency, which accounts for 28%. Therefore, the DNS configuration is expected to improve to avoid DNS attack.','Systems and Informatics (ICSAI), 2014 2nd International Conference on',1,'K. Lu; K. Dong; C. Wang; H. Xu','ieee/soa security.csv','ieee','\0'),(227,'Runtime Enforcement of Dynamic Security Policies','2014','0',' Security enforcement Security policy Aspect-Oriented Programming Dynamicity','Abstract The security policies of an application can change at runtime due to several reasons, as for example the changes on the user preferences, the lack of enough resources in mobile environments or the negotiation of security levels between the interacting parties. As these security policies change, the application code that copes with the security functionalities should be adapted in order to enforce at runtime the changing security policies. In this paper we present the design, implementation and evaluation of a runtime security adaptation service. This service is based on the combination of autonomic computing and aspect-oriented programming, where the security functionalities are implemented as aspects that are dynamically configured, deployed or un-deployed by generating and executing a security adaptation plan. This service is part of the INTER-TRUST framework, a complete solution for the definition, negotiation and run-time enforcement of security policies.','',1,'Jose-Miguel HorcasMónica PintoLidia Fuentes','springer/service oriented architecture security.csv','springer','\0'),(228,'A Multi-agent Approach to Professional Software Engineering','2013','3',' Agent Framework MAS Development Industrial Adoption','Abstract The community of agent researchers and engineers has produced a number of interesting and mature results. However, agent technology is still not widely adopted by industrial software developers or software companies—possibly because existing frameworks are infused with academic premises that rarely apply to industrial settings. In this paper, we analyse the requirements of current industry-driven software projects and show how we are able to cope with these requirements in the Java Intelligent Agent Componentware agent framework, JIAC V. We argue that the lack of industry-grade requirements and features in other agent frameworks is one of the reasons for the slow acceptance of agent technology in the software industry. The JIAC V framework tries to bridge that gap—not as a final solution, but as a stepping stone towards industrial acceptance.','',2,'Marco LützenbergerTobias KüsterThomas KonnerthAlexander ThieleNils MasuchAxel HeßlerJan KeiserMichael BurkhardtSilvan KaiserJakob TonnMichael KaisersSahin Albayrak','springer/bpmn security.csv','springer','\0'),(229,'Doctoral dissertations in logistics and supply chain management: a review of Nordic contributions from 2009 to 2014','2016','0',' Doctoral dissertations Collection of articles Monographs Dissertation score Logistics and supply chain management','Abstract The purpose of this paper is to identify and analyze Nordic doctoral dissertations in logistics and supply chain management (SCM) published from the years 2009–2014. The paper is based on a detailed review of 150 doctoral dissertations. Compared with previous studies, this paper identifies a trend toward: more dissertations based on a collection of articles than monographs; more dissertations focusing on inter-organizational SCM issues; a shift from a focal company perspective to functional aspects and supply chain-related research; and finally, a continued decreased focus on the philosophy of science. A score for measuring the significance of article-based dissertations is also proposed.','Logistics Research',1,'Christopher RajkumarLone KavinXue LuoJan Stentoft','springer/service oriented architecture security.csv','springer',''),(230,'Research on IOT RESTful Web Service Asynchronous Composition Based on BPEL','2014','0','BPEL;IOT Architecture;Internet of Things;RESTful Web Service;Service Asynchronous Composition','In recent years, The Internet of Things(IOT) is one of the hottest research topics. It was originally defined as connected all the things through the sensing devices to the Internet. In addition, Service-Oriented methodology has gradually drawn people\'s attention. Therefore, integrated The IOT with Service-Oriented methodology is very important. But now IOT service composition is mostly synchronous and service model is more complex. RESTful web services have been widely recognized and used because of their lightweight and succinct. RESTful web services introduce a new kind of abstraction, the resource, so that they are hard to compose using the Business Process Execution Language (BPEL). In order to compose asynchronous RESTful web services and make use of various IOT services, this paper proposes an asynchronous RESTful web service recursive measure, which is based on the BPEL extention. First, design the architecture of IOT RESTful web services, the architecture is divided into six layers so that it can integrate The IOT and RESTful web services effectively. Second, we show how to invoke the RESTful web services from the IOT and publish a BPEL process as a RESTful web service by extending BPEL. Finally, through an experiment to verify the correctness and validity of the proposed method in this paper.','Intelligent Human-Machine Systems and Cybernetics (IHMSC), 2014 Sixth International Conference on',2,'L. Zhang; S. Yu; X. Ding; X. Wang','ieee/bpel security.csv','ieee',''),(231,'A Framework for Improving Trust in Dynamic Service-Oriented Systems','2012','1','component;provenance;service-oriented computing;trust','Large-scale data processing systems frequently require users to make timely and high-value business decisions based upon information that is received from a variety of heterogeneous sources. Such heterogeneity is especially true of service-oriented systems, which are often dynamic in nature and composed of multiple interacting services. However, in order to establish user trust in such systems, there is a need to determine the validity and reliability of all the data sources that go into the making of a decision. This paper analyses the concept of provenance and discusses how the establishment of personalized provenance recording and retrieval systems can be used to increase the utility of data and engender user trust in complex service-based systems. An overview of current provenance research is presented, and a real-world project to address the abstract concepts of trust and data quality in industrial and clinical settings is presented. From this, we conclude that the addition of provenance into data processing and decision making systems can have a tangible benefit to improving the trust of system users.','Object/Component/Service-Oriented Real-Time Distributed Computing Workshops (ISORCW), 2012 15th IEEE International Symposium on',1,'P. Townend; C. C. Venters; L. Lau; K. Djemame; V. Dimitrova; A. Marshall; J. Xu; C. Dibsdale; N. Taylor; J. Austin; J. McAvoy; M. Fletcher; S. Hobson','ieee/service oriented architecture security.csv','ieee','\0'),(232,'CloudThinking as an Intelligent Infrastructure for Mobile Robotics','2014','2',' Mobile robotics Cloud-based approaches Computer Thinking','Abstract Mobile robotics is a transforming field that presents a varying set of challenges. The discussion on the autonomy of (self-powered) robots is not settled, and as the communication infrastructure evolves, centralized concepts become more attractive over distributed concepts. This paper presents the CloudThinking architecture applied to intelligent cloud-based robotic operation. CloudThinking offloads most of complex robotic tasks to a central cloud, which retrieves inputs from the environment as a whole in order to instruct the robots to perform its actions. CloudThinking is a natural approach to the orchestration of multiple specialized robotic systems, defining the best mechanisms for reaching a goal. Furthermore, this architecture provides a set of automatic features which can be useful for application developers. These features can fully exploit novel cloud tools development as it becomes available, providing a time-resilient infrastructure of easy upgrade. The resulting approach has the potential to create a different set of market for robotic application developers.','Wireless Personal Communications',1,'Rui L. AguiarDiogo GomesJoão Paulo BarracaNuno Lau','springer/service oriented architecture security.csv','springer','\0'),(233,'Preserving Data Flow Correctness in Process Adaptation','2010','5','BPEL;Correctness-by-Construction;Data Flow Correctness;Process Adaptation','In services and cloud computing, processes need to be continually adapted to changing environments and requirements. Undisciplined process adaptation could easily lead to data flow anomalies, e.g., input missing for some activities in the process. In this paper, we study the problem of data-flow-correctness-preserving adaptation and propose three important criteria that can maintain the data flow correctness in process adaptation. We demonstrate our approach by using a typical process adaptation scenario in BPEL.','Services Computing (SCC), 2010 IEEE International Conference on',2,'W. Song; X. Ma; S. C. Cheung; H. Hu; J. Lü','ieee/bpel security.csv','ieee','\0'),(234,'How much security for switching a light bulb — The SOA way','2012','1','DPWS;Devices Profile for Web Services;Internet of Things;Pervasive Computing;SOA for devices;Security','What visions of technologies such as the Internet of Things (IoT), Pervasive Computing (PC) or Ambient Intelligence (AI) have in common is that they employ a very high amount of critically resource-constrained devices. This of course raises a whole set of new security challenges. Instead of proposing another middleware for IoT, PC or AI, and presenting a security approach for it we focus on existing, widely-adopted security mechanisms and concepts and give a comprehensive overview. Furthermore, we examine the Web Service security suite as an example for a comprehensive security framework on application level. We use an intentionally kept simple scenario including light bulbs and switches to demonstrate necessary security mechanisms and properties and to judge applicability of the presented existing security techniques and frameworks.','2012 8th International Wireless Communications and Mobile Computing Conference (IWCMC)',1,'S. Unger; S. Pfeiffer; D. Timmermann','ieee/service oriented architecture security.csv','ieee','\0'),(235,'Replication Infrastructure for RESTful Web Services','2012','0','','Abstract This paper describes a proposal for replication of RESTful web services. It focuses on the exploitation of specific features of RESTful web services in the context of replication. The features imposed by the REST architectural style that are crucial to replication include: resource orientation, explicit resource identification, and fixed interface with well understood semantics of operations. We propose a replication infrastructure for RESTful web services in the form of interceptors between consumers and providers. Interceptors in the case of HTTP protocol take the form of proxy servers. The concept has been materialized in a prototype implementation.','',1,'Marcin BazydłoSzymon FrancuzikCezary SobaniecDariusz Wawrzyniak','springer/service oriented architecture security.csv','springer','\0'),(236,'A Pragmatic Approach towards Safe and Secure Medical Device Integration','2014','0',' medical device integration remote control safety-critical cybersecurity risk-based approach','Abstract Compared to other safety-related domains, harmonizing efforts regarding electronic device integration and interaction – in terms of real-time and remote control – are conducted less ambitious in the medical device sector. There are a couple of reasons for this restrained progress. Traditionally, medical devices are either both small-sized and self-sufficient or they are highly integrated parts of a complete setup provided by one vendor. Especially when equipping critical care facilities such as intensive care units, producer and brand diversity is low, whereas the pressure of competition is high. The results are proprietary communication and control solutions when connecting devices in order to interact. On the other hand, any modern hospital heavily relies on highly available critical medical devices providing and sharing data but also on confidentiality and integrity of vitally important information. This paper discusses a pragmatic risk-based approach to handle integration problems facing the current situation described above, while focusing on future development challenges. The background of this paper is a project for defining a safe and secure integration interface that – open to integration partners – enables to monitor and remote-control a critical medical device.','',1,'Christoph Woskowski','springer/service oriented architecture security.csv','springer','\0'),(237,'IoT6 – Moving to an IPv6-Based Future IoT','2013','7',' IoT M2M IPv6 CoAP architecture interoperability building automation','Abstract IoT6 is a research project on the future Internet of Things. It aims at exploiting the potential of IPv6 and related standards to overcome current shortcomings and fragmentation of the Internet of Things. The main challenges and objectives of IoT6 are to research, design and develop a highly scalable IPv6-based Service-Oriented Architecture to achieve interoperability, mobility, cloud computing integration and intelligence distribution among heterogeneous smart things components, applications and services. The present article starts by a short introduction on IPv6 capabilities for the Internet of Things and information on the current deployment of IPv6 in the world. It continues with a presentation of the IoT6 architecture model and its concept of service discovery. Finally, it illustrates the potential of such IPv6-based architecture by presenting the integration of building automation components using legacy protocols.','',1,'Sébastien ZieglerCedric CrettazLatif LadidSrdjan KrcoBoris PokricAntonio F. SkarmetaAntonio JaraWolfgang KastnerMarkus Jung','springer/service oriented architecture security.csv','springer','\0'),(238,'Homeland Security Exercise and Evaluation Program - Enterprise platform (HSEEP-EP): An innovative service oriented architecture approach','2012','0','HSEEP;SOA;exercises;service oriented architecture;web services','Federal Emergency Management Agency (FEMA) and the Department of Homeland Security, Science and Technology Directorate (DHS S&T) and are working together, in collaboration with MIT Lincoln Laboratory (MIT LL) to modernize and transform the existing Homeland Security Exercise and Evaluation Program (HSEEP) Toolkit into an agile enterprise platform for integrating existing and future capabilities in support of HSEEP. The architecture for the new HSEEP enterprise platform (HSEEP-EP) focuses on a service oriented approach that relies on emerging web-based technologies to create an innovative and flexible platform for the development and consumption of HSEEP capabilities. This paper provides a technical description of the architecture, core services, and methods for interfacing with architecture components. This paper will also discuss concepts for fielding and transitioning the new HSEEP Toolkit to DHS and State/Local communities.','Homeland Security (HST), 2012 IEEE Conference on Technologies for',1,'A. Norige; S. Yenson; G. Elkin; J. Mapar; J. Legary','ieee/service oriented architecture security.csv','ieee','\0'),(239,'QoS-Based Reputation Feedback Fusion under Unknown Correlation','2014','0','','Abstract Due to the flood of web services that offer similar functionalities, service consumers are left with a challenging selection decision. A popular approach to assist them with the service selection task is based on the reputation of web services. However, the propagation of reputation feedback in an open and distributed system of web services yield correlated reputation estimates. The existing web service reputation literature still lacks a system that handles the aggregation of reputation feedback under unknown correlation. To fill this gap, we employ two data fusion algorithms, the covariance intersection and ellipsoidal intersection, to aggregate QoS-based reputation feedback. Our experimental results endorse the advantageous capability and scalability of the proposed methods in aggregating reputation estimates, and show an enhanced performance when compared with the Kalman filter method.','',1,'Mohamad MehdiNizar BouguilaJamal Bentahar','springer/service oriented architecture security.csv','springer','\0'),(240,'Security oriented service composition: A framework','2012','2','Software service;security compatibility;security ontology;security properties','This paper argues that in order to address the challenges of security compatibility checking between the client\'s software and the service software in a service oriented software environment, the followings have to be achieved: (i) services need to be specified together with their security policies along with importance of stakeholders (users and providers), and (ii) the security compatibility needs to be analyzed in terms of security requirements and capabilities of the interacting systems at the time of service composition. With these objectives in mind, this paper proposes a framework for security compatibility of service consumptions. The framework is based on a method of abstracting security policies using an ontology, and a rule based technique for automatically checking the security compatibility between interacting software systems.','Innovations in Information Technology (IIT), 2012 International Conference on',1,'K. M. Khan; A. Erradi; S. Alhazbi; J. Han','ieee/service oriented architecture security.csv','ieee','\0'),(241,'Anti-fragile Cloud Solutions','2016','0','','Abstract To better understand how to achieve anti-fragility to downtime, the chapters of Part II discuss how to realize the four design principles and the one operational principle from Chap. 4 in different types of systems. The current chapter focuses on how to realize the principles in customer-facing web-scale solutions in the cloud. Much of the discussion is based on design and operational patterns described by Michael T. Nygard and Netflix’s realization of these patterns in its cloud-based streaming service.','',1,'Kjell Jørgen Hole','springer/microservice security.CSV','springer',''),(242,'Risk Management Lifecycle Implementation Services in SOA','2015','0','A model for IT risk management in SOA;IT Risk Management;SOA Implementation Risks;SOA Lifecycle Risks','A structured environment of IT risk management can influence an improving the flexibility and adaptability of business processes and information technology, including information systems in a secure manner. As with all other technologies, the adoption of SOA involves risk. These risks often manifest themselves during an implementation of the SOA solution and arise mainly due to insufficient detail in the SOA project. In this paper, we present the main ideas about the impact of IT risks on the life cycle of the implementation of service-oriented architecture and how we could minimize these impacts by using a model of managing IT risks.','Information Technology - New Generations (ITNG), 2015 12th International Conference on',1,'E. L. Monteiro; P. C. d. Silva','ieee/service oriented architecture security.csv','ieee',''),(243,'Sometimes It’s Better to Be STUCK! SAML Transportation Unit for Cryptographic Keys','2013','0',' SAML XML Key Transportation Key Distribution SAML Extension','Abstract Over the last decade the Security Assertion Markup Language (SAML) framework evolved to a versatile standard for exchanging security statements about subjects. Most notably, SAML facilitates the authentication of users, and is thus deployed in both Webservice (SOAP, WS-Security) and REST-based (SAML SSO webbrowser profile, SAML Bearer token in OAuth) services. This paper recommends an extension to the SAML framework which provides an easy way to transport cryptographic key material bound to assertions issued by particular subjects. The proposal fits into existing solutions and is fully compliant with the Security Assertion Markup Language, XML Digital Signature and XML Encryption standards.','',1,'Christopher MeyerFlorian FeldmannJörg Schwenk','springer/webservice security.csv','springer','\0'),(244,'Extending the MOF for the Adaptation of Hooks, Aspects, Plug-Ins and Add-Ons','2015','0',' Meta meta modeling Meta model extensions Conceptual languages Abstract syntax Meta object facility','Abstract Conceptual modeling languages are valuable means for analyzing, designing and controlling information systems. In recent years, some languages became de facto standards in their particular field of application, which simultaneously leads to an increasing demand for domain-specific extensions in order to both benefit from dissemination and apposite concepts. However, recent studies reveal a remarkable lack of methodical support for language extensibility, which hampers systematic extension design, comprehensibility and interoperability. This research article therefore aims to outline different meta model extension mechanisms based on an analogy to extension principles from the field of Software Engineering. The techniques of hooking, aspects, plug-ins and add-ons are presented and their adaptation is elaborated by the definition of additional extension packages within the Meta Object Facility (MOF) in order to provide constructs for the definition of extensible meta models.','',2,'Richard BraunWerner Esswein','springer/bpel security.csv','springer',''),(245,'QoS of Web Services Architecture','2015','0','Middleware, QoS, SOAP, Service Oriented Architecture, UDDI, Web services, XML','This paper, web services architectures gives a compatible and scalable structure for web service interactions. The rapid development of web services and applications in various domains such as B2B, e-commerce, banking has led to the best quest for design in a QoS of web service architecture that can meet industry standards. Organizations to design and develop a best suitable QoS web service architecture to meet the industry demands various QoS web service parameters, reliable, quick services required for access the web services. In this paper we proposed a modified 3-tier architecture with a new component quality service manager that can fall in the core layer (i.e middle ware technology). This new component is concerned with the most important QoS parameters such as availability, reliability, adaptability, performance, response time, security and integrity. As a case study we have taken multimedia application and infrastructural components in multimedia applications. The improved quality parameters such as bandwidth, and access time, throughput by using round robin algorithm in the web server interface applications/services. We proposed this new architecture that would help the organizations in best possible QoS service architecture solutions','',1,'M. Swami Das and A. Govardhan and D. Vijaya lakshmi','acm/service oriented architecture security.csv','acm',''),(246,'An Architecture and Reference Implementation of an Open Health Information Mediator: Enabling Interoperability in the Rwandan Health Information Exchange','2013','1',' interoperability national health information system architecture enterprise service bus health information exchange','Abstract Rwanda, one of the smallest and most densely populated countries in Africa, has made rapid and substantial progress towards designing and deploying a national health information system. One of the more challenging aspects of the system is the design of an architecture to support: interoperability between existing health information systems already in use in the country; incremental extension into a fully integrated national health information system without substantial re-engineering; and scaling, from a single district in the initial phase, to national level without requiring a fundamental change in technology or design paradigm. This paper describes the key requirements and the design of the current architecture using the ISO/IEC/IEEE 42010 standard architecture descriptions. The architecture takes an Enterprise Service Bus approach. A partial implementation and preliminary analysis of the architecture is given. Since these challenges are experienced by other developing African countries, the next steps involves creating a generic architecture that can be reused for health information exchange in other developing African countries.','',1,'Ryan CrichtonDeshendran MoodleyAnban PillayRichard GakubaChristopher J. Seebregts','springer/service oriented architecture security.csv','springer','\0'),(247,'A classification scheme for agent based approaches to dynamic optimization','2014','0',' Dynamic optimization problems (DOPs) Agent-based modeling Agent based systems Agent based dynamic optimization problem solution strategy (ABDOPSS)','Abstract Several papers in the literature employ agent-based modeling approach for providing reasonable solutions to dynamic optimization problems (DOPs). However, these studies employ a variety of agent-based modeling approaches with different strategies and features for different DOPs. On the other hand, there is an absence in the literature of a formal representation of the existing agent-based solution strategies. This paper proposes a representation scheme indicating how the solution strategies with agent-based approach can be summarized in a concise manner. We present these in a tabular form called “Agent Based Dynamic Optimization Problem Solution Strategy” (ABDOPSS). ABDOPSS distinguishes different classes of agent based algorithms (via communication type, cooperation type, dynamism domain and etc.) by specifying the fundamental ingredients of each of these approaches with respect to problem domain (problems with dynamic objective functions, constraints and etc.). This paper also analyzes 18 generic studies in the literature employing agent-based modeling based on ABDOPSS.','Artificial Intelligence Review',1,'Adil BaykasogluZeynep D. U. Durmusoglu','springer/soa security.csv','springer','\0'),(248,'Proceedings of the 2nd International Workshop on Enterprise Modelling and Information Systems Architectures - Concepts and Applications, EMISA 2007','2007','','','The proceedings contain 15 papers. The topics discussed include: EA model as central part of the transformation into a more flexible and powerful organisation; generating visualizations of enterprise architectures using model transformations; architecture principles - a regulative perspective on enterprise architecture; an approach to use executable models for testing; a federated approach to enterprise architecture model maintenance; modelling of cross-organizational business processes - current methods and standards; service oriented security architecture; using BPEL as a workflow engine for local enterprise applications; design and usage of an it-system for workplace management with ergonomic analysis under health protection aspects; on industrial use of requirements engineering techniques; BPMN-Q: a language to query business processes; UML 2 profiles for ontology charts and diplans issues on metamodelling; viewpoint-based meta model engineering; and OBSE - an approach to ontology-based software engineering in the practice.','',2,'[No author name available]','scopus/bpmn security.csv','scopus','\0'),(249,'Cloud computing in e-Science: research challenges and opportunities','2014','3',' e-Science e-Research Informatics Cloud computing Semantic web Grid computing Workflow Digital research Big data','Abstract Service-oriented architecture (SOA), workflow, the Semantic Web, and Grid computing are key enabling information technologies in the development of increasingly sophisticated e-Science infrastructures and application platforms. While the emergence of Cloud computing as a new computing paradigm has provided new directions and opportunities for e-Science infrastructure development, it also presents some challenges. Scientific research is increasingly finding that it is difficult to handle “big data” using traditional data processing techniques. Such challenges demonstrate the need for a comprehensive analysis on using the above-mentioned informatics techniques to develop appropriate e-Science infrastructure and platforms in the context of Cloud computing. This survey paper describes recent research advances in applying informatics techniques to facilitate scientific research particularly from the Cloud computing perspective. Our particular contributions include identifying associated research challenges and opportunities, presenting lessons learned, and describing our future vision for applying Cloud computing to e-Science. We believe our research findings can help indicate the future trend of e-Science, and can inform funding and research directions in how to more appropriately employ computing technologies in scientific research. We point out the open research issues hoping to spark new development and innovation in the e-Science field.','The Journal of Supercomputing',1,'Xiaoyu YangDavid WallomSimon WaddingtonJianwu WangArif ShaonBrian MatthewsMichael WilsonYike GuoLi GuoJon D. BlowerAthanasios V. VasilakosKecheng LiuPhilip Kershaw','springer/soa security.csv','springer','\0'),(250,'8th IFIP WG 8.1. Working Conference on Practice of Enterprise Modeling, PoEM 2015','2015','','','The proceedings contain 33 papers. The special focus in this conference is on Evolving Enterprises and Securing Enterprises. The topics include: Towards guiding the use of enterprise modeling in the context of business and IT alignment; towards a generic goal model to support continuous improvement in SME construction companies; a risk-based approach supporting enterprise architecture evolution; pattern-based security requirements derivation from secure tropos models; analyzing attack strategies through anti-goal refinement; eliciting security requirements for business processes of legacy systems; testing a selection of BPMN tools for their support of modelling guidelines; consistently formalizing a business process and its properties for verification; dealing with risks and workarounds; case-based development of consumer preferences using brand personality and values co-creation; modelling users feedback in crowd-based requirements engineering; factors influencing productization of enterprise modeling; methods in designing and developing capabilities; benefits of enterprise architecture management; using value models for business risk analysis in e-service networks; analyzing trust requirements in socio-technical systems; an experience report of improving business process compliance using security risk-oriented patterns; towards an OSS adoption business impact assessment; the concepts of decision making; modeling DevOps deployment choices using process architecture design dimensions; simplicity is not simple; agile modelling method engineering and towards DW support for formulating policies.','',2,'[No author name available]','scopus/bpmn security.csv','scopus',''),(251,'Anomaly Detection with HTM','2016','0','','Abstract We model information and communications technology (ICT) systems as complex adaptive systems. Since we cannot hope to predict all future incidents in complex systems, real-time monitoring is needed to detect local failures before they propagate into global failures with an intolerable impact. In particular, monitoring is required to determine the consequences of injecting artificial errors into production systems and to learn how to avoid or limit the impact of future incidents.','',1,'Kjell Jørgen Hole','springer/microservice security.CSV','springer',''),(252,'Trustworthy Service Selection Using Long-Term Monitoring of Trust Contracts','2013','0','Distributed Systems;Service Contract;Service Selection;Software Services;Trust','Composing a distributed software system out of independently developed and publically hosted services leads to savings in effort, time, and cost. Such an approach requires a careful selection of a set of services for realizing a particular distributed software system. Hence, identifying and quantifying the trust of such publically available services becomes a prerequisite for composing distributed software systems. The quantification of the trust associated with a service is a challenging task due to the subjective nature of trust, lack of standards, and associated uncertainty. Moreover, the trust of a service is not a static value and should be updated periodically. To achieve a proper quantification of a trust associated with a service, there is a need to periodically collect, monitor, and aggregate various evidences available about that service. This paper augments previously defined quantification of the trust by monitoring and aggregating various available evidences. This enhanced approach is used to improve the service selection process. Publically available mobile app services from the Android marketplace are utilized, as the dataset, to empirically validate this approach.','Enterprise Distributed Object Computing Conference (EDOC), 2013 17th IEEE International',1,'L. S. Gallege; D. U. Gamage; J. H. Hill; R. R. Raje','ieee/service oriented architecture security.csv','ieee','\0'),(253,'A framework for medical and health care databases and data warehouses conceptual modeling support','2016','0',' Medical Databases Medical data warehouses UML extension UML profile Medical image annotation','Abstract To improve their knowledge of diseases, physicians need to study and learn from their patients and from their related medical records. Physicians continue to initiate this learning process by taking into account the history of the patient’s medical problems and physical examination findings in the patient’s medical record, which illustrates the importance of medical and health care databases. In other side, the evolution of medical data volume needs to be modeled using data warehouses. A medical data warehouse is a particular database targeted toward decision support. It takes data from various medical databases and other data sources and transforms it into new structures that fit better for the task of performing the decision making. For this reason, the medical database and data warehouse models needed to produce a formal description, a conceptual schema of all the data generated in medical and health care institutions, and how all of the data were related. However, it is still difficult to find references models, since classical conceptual modeling does not incorporate the specificity of the medical field. The design phase is the most important activity in the successful building of a database and a data warehouse. To address these shortcomings, this paper proposes a new modeling framework based on an UML profile, called medical profile. This profile was proposed to standardize the task of medical data modeling, using the Unified Modeling Language (UML) extensibility mechanisms. Our proposal is aligned with model driven architecture (MDA), thus permitting to define and clarify all concepts and elements related to medical field including the medical image annotation process. To show the benefits of our profile, we develop an example related to the medical image annotation process. Finally, we also need to verify whether our framework is considered by the specialists as a potential aid. We evaluate our framework impact by inquiring the specialists about the degree of confidence in our framework. By analyzing the obtained results, we can argue that the proposed framework presented a high acceptance regarding the specialists’ interests.','Network Modeling Analysis in Health Informatics and Bioinformatics',1,'Mouhamed Gaith AyadiRiadh BouslimiJalel Akaichi','springer/soa security.csv','springer',''),(254,'Decentralized Web Service Orchestration: A Reflective Approach','2008','0','BPEL4WS, composite web services, decentralized orchestration, reflection, throughput, web service orchestration','Proceedings of the 2008 ACM Symposium on Applied Computing','',2,'Ricardo Jiménez-Peris and Marta Patiño-Martínez and Ernestina Martel-Jordán','acm/bpel security.csv','acm','\0'),(255,'Cognitive mechanism related to line drawings and its applications in intelligent process of visual media: a survey','2016','1',' line drawings cognitive computation visual media intelligent process','Abstract Line drawings, as a concise form, can be recognized by infants and even chimpanzees. Recently, how the visual system processes line-drawings attracts more and more attention from psychology, cognitive science and computer science. The neuroscientific studies revealed that line drawings generate similar neural actions as color photographs, which give insights on how to efficiently process big media data. In this paper, we present a comprehensive survey on line drawing studies, including cognitive mechanism of visual perception, computational models in computer vision and intelligent process in diverse media applications. Major debates, challenges and solutions that have been addressed over the years are discussed. Finally some of the ensuing challenges in line drawing studies are outlined.','Frontiers of Computer Science',1,'Yongjin LiuMinjing YuQiufang FuWenfeng ChenYe LiuLexing Xie','springer/soa security.csv','springer',''),(256,'A High-Level Service Composition Model for Building Applications on Sensor Networks','2013','1','Business Process;Sensor Networks;Service Oriented Analysis;Service orchestration;abstract composition','Recently, Sensor Networks (SNs) have become an emergent technology for various applications areas such as security and surveillance applications, traffic control, logistics, energy control in public and private buildings, etc. However, designing and constructing new applications using these technologies are still a very hard task. There is no standard API to access to the large variety of sensors and actuators which have also very different functionalities and capabilities. Applications are in general very specific and tightly coupled with the underlying infrastructure. Reuse is also very difficult or even impossible. This paper aims to provide a high-level environment based on a three levels model to program such infrastructure. At the lower level, sensors and actuators are encapsulated by lightweight web services, accessible through gateways. On top of this layer, abstract blocks denote sensors and actuators participating in the composite service along with a semantic description. Finally, these blocks are orchestrated as abstract graphs describing complex applications. This environment has been prototyped using service standards such as BPMN and BPEL within the context of the VITRO European project and validated by several use cases.','Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE), 2013 IEEE 22nd International Workshop on',2,'Z. Movahedi; B. Defude','ieee/bpel security.csv','ieee','\0'),(257,'Monitoring Web Services for Conformance','2013','0','AOP;ActiveBPEL;MREG;Service monitoring;WS-Policy','In this article, we paid more attention on researching how to monitor Web services for checking conformance, where an AOP-based run-time monitoring framework was proposed and explored. In the framework, WS-Policy was firstly used to express the monitoring requirement, then monitoring requirement was described as AOP monitoring logic, Active BPEL engine was extended to weave the monitoring logic and the service core execution logic dynamically, a checking algorithm was introduced to analyze whether the user\'s monitoring requirement was satisfied according to MREG (Monitoring Requirement Expression Graph) and EMSC (Extended Message Sequence Charts), and finally, some control and modification measures were adopted in order to rise the quality of the service composition.','Service Oriented System Engineering (SOSE), 2013 IEEE 7th International Symposium on',2,'B. Li; S. Ji; L. Liao; D. Qiu; M. Sun','ieee/bpel security.csv','ieee','\0'),(258,'On the Practicality of Practical Byzantine Fault Tolerance','2012','0',' Byzantine Fault Tolerance Reliability Distributed Systems','Abstract Byzantine Fault Tolerant (BFT) systems are considered to be state of the art with regards to providing reliability in distributed systems. Despite over a decade of research, however, BFT systems are rarely used in practice. In this paper, we describe our experience, from an application developer’s perspective, trying to leverage the publicly available, highly- studied and extended “PBFT” middleware (by Castro and Liskov), to provide provable reliability guarantees for an electronic voting application with high security and robustness needs. We describe several obstacles we encountered and drawbacks we identified in the PBFT approach. These include some that we tackled, such as lack of support for dynamic client management and leaving state management completely up to the application. Others still remaining include the lack of robust handling of non-determinism, lack of support for web-based applications, lack of support for stronger cryptographic primitives, and more. We find that, while many of the obstacles could be overcome, they require significant engineering effort and time and their performance implications for the end-application are unclear. An application developer is thus unlikely to be willing to invest the time and effort to do so to leverage the BFT approach.','',1,'Nikos ChondrosKonstantinos KokordelisMema Roussopoulos','springer/service oriented architecture security.csv','springer','\0'),(259,'Design proposal of a photonic multicast Bloom filter node','2012','1',' Bloom filter Information-centric networking All-optical processing Optical packet switching','Abstract This paper presents the design of a hardware accelerated forwarding architecture for processing packets that are labelled with a Bloom Filter (BF)-based header. The architecture consists of a conventional broadcast-and-select all-optical switching fabric, composed of Semiconductor Optical Amplifiers (SOAs), and a hardware-based Serial Processing Unit (SPU) that uses an on-the-fly processing mechanism to forward optical packets. The proposed SPU avoids the use of memory units and uses a small number of logic gates that facilitate a straightforward all-optical implementation using photonic logic gates. The SPU also supports flexible wavelength multicasting by allowing each incoming wavelength to be forwarded to any number of output ports. Contention resolution is provided by the introduction of an Optical Delay Line (ODL) that provides a single-packet optical buffer if the output channel is occupied.','Photonic Network Communications',1,'M. F. AL-NadayR. C. Almeida Jr.K. M. GuildM. J. Reed','springer/soa security.csv','springer','\0'),(260,'RT-SPDM: Real-Time Security, Privacy and Dependability Management of Heterogeneous Systems','2015','1',' SOAs DPWS Event calculus Formal methods Security validation Metrics composition JADE Jess OSGi Policy-based access control','Abstract The need to manage embedded systems, brought forward by the wider adoption of pervasive computing, is particularly vital in the context of secure and safety-critical applications. This work presents RT-SPDM, a framework for the real-time management of devices populating ambient environments. The proposed framework utilizes a formally validated approach to reason the composability of heterogeneous embedded systems, evaluate their current security, privacy and dependability levels based on pre-defined metrics, and manage them in real-time. An implementation of Event Calculus is used in the Jess rule engine in order to model the ambient environment context and the rule-based management procedure. The reasoning process is modeled as an agent’s behavior and applied on an epistemic multi-agent reasoner for ambient intelligence applications. Agents monitor distinct embedded systems and are deployed as OSGi bundles to enhance the real-time management of embedded devices. A Service Oriented Architecture is adopted, through the use of the Devices Profile for Web Services standard, in order to provide seamless interaction between the framework’s entities, which exchange well-formed information, determined by the OASIS CAP standard. Proof-of-concept implementations of all entities are developed, also investigating user-friendly GUIs for both the front-end and back-end of the framework. A preliminary performance evaluation on typical embedded devices confirms the viability of the proposed approach.','',1,'Konstantinos FysarakisGeorge HatzivasilisIoannis AskoxylakisCharalampos Manifavas','springer/service oriented architecture security.csv','springer','\0'),(261,'Web Services Verification and Prudent Implementation','2012','1',' Web Services Security Policy Automated deployment','Abstract Alice&Bob notation is widely used to describe conversations between partners in security protocols. We present a tool that compiles an Alice&Bob description of a Web Services choreography into a set of servlets. For that we first compute for each partner an executable specification as prudent as possible of her role in the choreography. This specification is expressed in ASLan language, a formal language designed for modeling Web Services tied with security policies. Then we can check with automatic tools that this ASLan specification verifies some required security properties such as secrecy and authentication. If no flaw is found, we compile the specification into Java servlets that real partners can use to execute the choreography.','',2,'Tigran AvanesovYannick ChevalierMohammed Anis MekkiMichaël Rusinowitch','springer/bpel security.csv','springer','\0'),(262,'Secure and authenticated access to LLN resources through policy constraints','2015','','Body sensor networks; DPWS; Policy-based access control; SAML; Security; Web services; XACML','Ubiquitous devices comprising several resource-constrained sensors and actuators while having the long desired Internet connectivity, are becoming part of many solutions that seek to enhance user’s environment smartness and quality of living. Their intrinsic resource limitations however constitute critical requirements, such as security, a great challenge. When these nodes are associated with applications that might have an impact in user’s privacy or even become life threatening, the security issues are of primary concern. Access to these resources should be appropriately controlled to ensure that such wearable nodes are adequately protected. On the other hand, it is very important to not restrict access to only a very closed group of entities. This work presents a service oriented architecture that utilizes policy-based, unified, cross-platform and flexible access control to allow authenticated entities consume the services provided by wearable nodes while protecting their valuable resources. © IFIP International Federation for Information Processing 2015.','',1,'Rantos K., Fysarakis K., Soultatos O., Askoxylakis I.','scopus/service oriented architecture security.csv','scopus','\0'),(263,'Data encryption framework model with watermark security for data storage in public cloud model','2014','2','Cloud Data Storage; Cloud Encryption; Data Confidency; Data Privacy; Encryption Model; Watermark Security','Cloud computing technology is a new concept of providing dramatically scalable and virtualized resources. It implies a SOA (Service Oriented Architecture) type, reduced information technology overhead for the end level user, greater flexibility model, reduced total cost of ownership and on-demand service providing structure. From the user point of view, one of the main concerns is cloud security from the unknown threats. The lack of physical access to servers constitutes a completely new and disruptive challenge for investigators. The Clients can store, transfer or exchange their data using public cloud model. This paper represents the encryption method for public cloud and also the cloud service provider\'s verification mechanism using the third party auditors with framework model. The Cloud Data Storage is one of the mandatory services which are acquiring in this rapid development business world. © 2014 IEEE.','',1,'Boopathy D., Sundaresan M.','scopus/service oriented architecture security.csv','scopus','\0'),(264,'SLA Management & Monitoring Based-eTOM and WS-Composite for IMS Networks','2011','1','','The scope of IMS QoS management is limited to session initialization and QoS provisioning, thus lacking follow-up or monitoring functionality; neither does it tackle user differentiation. A tempting approach would be to leverage the standard 3GPP architecture by Assurance services based on TMForum\'s eTOM framework. This scenario would however expose a set of general business processes and would require a projection of IMS processes towards the eTOM. The work presented here follows this strategy, providing monitoring functionality to IMS services based on eTOM processes able to provide SLA assessment and Assurance services. The distributed architecture involves the BPEL language for orchestration and SOA components.','New Technologies, Mobility and Security (NTMS), 2011 4th IFIP International Conference on',2,'B. Raouyane; M. Errais; M. Bellafkih; D. Ranc','ieee/bpel security.csv','ieee','\0'),(265,'Enabling Privacy-Preserving Image-Centric Social Discovery','2014','5','Cloud computing;Image;Privacy-preserving;Social discovery','The increasing popularity of images at social media sites is posing new opportunities for social discovery applications, i.e., suggesting new friends and discovering new social groups with similar interests via exploring images. To effectively handle the explosive growth of images involved in social discovery, one common trend for many emerging social media sites is to leverage the commercial public cloud as their robust backend data center. While extremely convenient, directly exposing content-rich images and the related social discovery results to the public cloud also raises new acute privacy concerns. In light of the observation, in this paper we propose a privacy-preserving social discovery service architecture based on encrypted images. As the core of such social discovery is to compare and quantify similar images, we first adopt the effective Bag-of-Words model to extract the \"visual similarity content\" of users\' images into image profile vectors, and then model the problem as similarity retrieval of encrypted high-dimensional image profiles. To support fast and scalable similarity search over hundreds of thousands of encrypted images, we propose a secure and efficient indexing structure. The resulting design enables social media sites to obtain secure, practical, and accurate social discovery from the public cloud, without disclosing the encrypted image content. We formally prove the security and discuss further extensions on user image update and the compatibility with existing image sharing social functionalities. Extensive experiments on a large Flickr image dataset demonstrate the practical performance of the proposed design. Our qualitative social discovery results show consistency with human perception.','Distributed Computing Systems (ICDCS), 2014 IEEE 34th International Conference on',1,'X. Yuan; X. Wang; C. Wang; A. Squicciarini; K. Ren','ieee/service oriented architecture security.csv','ieee','\0'),(266,'Smart Cities via Data Aggregation','2014','0',' Resilient IoT Adaptive and scalable sensing Social IoT Smart city sensing toolkit Sensing zoom-in','Abstract Cities have an ever increasing wealth of sensing capabilities, recently including also internet of things (IoT) systems. However, to fully exploit such sensing capabilities with the aim of offering effective city-sensing-driven applications still presents certain obstacles. Indeed, at present, the main limitation in this respect consists of the vast majority of data sources being served on a “best effort” basis. To overcome this limitation, we propose a “resilient and adaptive IoT and social sensing platform”. Resilience guarantees the accurate, timely and dependable delivery of the complete/related data required by smart-city applications, while adaptability is introduced to ensure optimal handling of the changing requirements during application provision. The associated middleware consists of two main sets of functionalities: (a) formulation of sensing requests: selection and discovery of the appropriate data sources; and (b) establishment and control of the necessary resources (e.g., smart objects, networks, computing/storage points) on the delivery path from sensing devices to the requesting applications. The middleware has the intrinsic feature of producing sensing information at a certain level of detail (geographical scope/timeliness/accuracy/completeness/dependability) as requested by the applications in a given domain. The middleware is assessed and validated at a proof-of-concept level through innovative, dependable and real-time applications expected to be highly reproducible across different cities.','Wireless Personal Communications',1,'Javier PoncelaPanagiotis VlacheasRaffaele GiaffredaSuparna DeMassimo VecchioSeptimiu NechiforRaquel BarcoMari Carmen Aguayo-TorresVera StavroulakiKlaus MoessnerPanagiotis Demestichas','springer/service oriented architecture security.csv','springer','\0'),(267,'A smart citizen healthcare assistant framework','2013','1',' Health informatics Social care systems Personal health assistance service Resident assessment instrument Minimum data set Care plan u_Health m_Health Personal health records Enterprise mashup Distributed database management system','Abstract This paper focuses on the development of a citizen-oriented lifelong healthcare assistant system, which will support not only health Care Delivery Organizations (CDOs) but also health care providers. In other words this work proposes an u_Health system that will enhance not only the health care services but it will also provide individuals with the opportunity to manage their health needs via a “Five Cs” comprehensive and consistent scheme. Its goal is to take advantage of the ongoing emerging technologies by including them in the process of healthcare with the synergy among health experts’ and the continuous interactive-exchange of knowledge and information in connection with the providers’ and the users’ experiences. Acting in this direction, the smart citizen healthcare assistant ( sCHcA ) framework proposes the infrastructure and the tools necessary in order to achieve the continuous monitoring and provision of care no matter where the individual may be. Specifically, this article presents a platform for a mobile mashup system that can be established on a CDO server and it will extend to a group of interrelated widgets that will work as a mobile service. The system will be able to create, install and operate as an integrated construction that will monitor and gather data from various health sensors and then send them to the CDO server and further may implement individuals’ health matters. Healthcare professionals and organizations can further exploit this novel integrated tele-monitoring mechanism. Moreover, they may also utilize it as a ubiquitous individual home health care service and facilitate vulnerable groups, those living in remote areas, patients suffering from incurable diseases and long-term patients.','Health and Technology',1,'Stella C. Christopoulou','springer/soa security.csv','springer','\0'),(268,'262--264','2012','0','','Automatic recognition of people and their activities has very important social implications, because it is related to the extremely sensitive topic of civil liberties. Society needs to address this issue of automatic recognition and find a balanced solution that is able to meet its various needs and concerns. In the post 9/11 period, population security and safety considerations have given rise to research needs for identification of threatening human activities and emotional behaviours.Timely identification of human intent is one of the most challenging areas of \"all-hazards\" risk assessment in the protection of critical infrastructure, business continuity planning and community safety. The \"all-hazards\" approach is used extensively by the public and private sector, including Public Safety Canada (PS Canada -- formerly PSEPC), Emergency Management Ontario (EMO), US Federal Emergency Management Agency (FEMA) and US Department of Homeland Security (DHS).There is a clear need for industry and the research community to addresses fundamental issues involved in the prevention of human-made disasters, namely the variable context-dependent, real-time detection/identification of potential threatening behaviour of humans, acting individually or in crowded environments.Such an industry and academia forum will have to discuss development and commercialization of new multimodal (video and infrared, voice and sound, RFID and perimeter intrusion) intelligent sensor technologies for location and socio-cultural context-aware security risk assessment and decision support in human-crowd surveillance applications in environments such as school campuses, hospitals, shopping centers, subways or railway stations, airports, sports and artistic arenas etc. Due to the complexity of the surveillance task, there is a clear need for the development of a distributed intelligent surveillance system architecture, which combines visual and audio surveillance based on wireless sensor nodes equipped with video or infrared (IR) cameras, audio detectors, or other object detection and motion sensors with location aware wireless sensor network solutions. The integration of visual, sound and radio tracking methods results in a highly intelligent, proactive, and adaptive surveillance and security solution sensor networks. Task-directed sensor data collection and observation planning algorithms need to be developed to allow for a more elastic and efficient use of the inherently limited sensing and processing capabilities. Each task a sensor has to carry out determines the nature and the level of the information that is actually needed. There is a need for \"selective environment perception\" methods that focus on object parameters that are important for the specific decision to be made for the task at hand and avoid wasting effort to process irrelevant data.Multisensor data fusion techniques should be investigated for the dynamic integration of the multi-thread flow of information provided by the heterogeneous network of surveillance sensors into a coherent multimodal model of the monitored human crowd.In the context of crowds, robust tracking of people represents an important challenge. The numerous sources of occlusions and the large diversity of interactions that might occur make difficult the long-term tracking of a particular individual over an extended period of time and using a network of sensors. Realtime image processing and computer-vision algorithms need to be studied for the identification, tracking and recognition of gait and other relevant body-language patterns of the human agents who can be deemed of interest for security reasons. Real-time signal processing algorithms have to be designed for the identification and evaluation of environmental and human-subject multimodal parameters (such as human gait, gestures, facial emotions, human voice, background sound, ambient light, etc.) that provide the contextual information for the specific surveillance activity.A multidisciplinary, context-aware, situation-assessment system, including human behaviour, cognitive psychology, multicultural sociology, learning systems, artificial intelligence, distributed multimedia and software design elements, has to be ultimately developed for the real-time evaluation of the activity and emotional behaviour of the human subjects identified as being potentially of security interest in the monitored dynamic environment.The development of such a complex system requires the seamless integration of new and improved surveillance techniques and methodologies supporting both functional and non functional requirements for surveillance networks. Functional requirements are signal processing functions and data fusion, archiving and tracking human behaviours, assessment and interpretation functions of the data, and supporting human decision makers, among others. Non-functional requirements include interoperability, scalability, availability, and manageability.The partial and heterogeneous sensor-views of the environment have to fuse into a coherent Virtualized Reality Environment (VRE) model of the explored environment. Being based on information about real/physical world objects and phenomena, as captured by a variety of sensors, VREs have more \"real content\" than the pure Virtual Reality environments entirely based on computer simulations. The VREs model of the explored environment allows human operators to combine their intrinsic reactive-behaviour with higher-order world model representations of the immersive VRE systems.A synthetic environment will eventually be needed to provide efficient multi granularity-level function-specific feedback and human-computer interaction interfaces for the human users who are the final assessors and decision makers in the specific security monitoring situation.An ideal system should provide efficient multi granularity-level function-specific feedback for the human users who are the final assessors and decision makers in the specific security monitoring situation.The rate at which surveillance systems can currently disseminate data to evaluate new threats is mainly limited due to the developed and implemented nature of existing systems and their limited ability to operate with other systems. IBM\'s Service-Oriented Architecture (SOA) provides the much needed deployment ready solution which supports the integration of external systems developed by diverse industrial and institutional partners.','',1,'','acm/soa security.csv','acm','\0'),(269,'A novel platform architecture for web applications by spinning off end-to-end communications','2015','0','','This paper describes a demonstration of a novel architecture that frees service providers from having to design a direct connectivity mechanisms between end users. To confirm the applicability and validity of our proposed architecture, we assumed three use cases: machine-to-machine home security, content distribution service and real time network game services. The results of our implementation confirm that this architecture is versatile enough to be used for a variety of purposes.','2015 IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS)',1,'M. Mori; Y. Sueda; T. Ohba; T. Hishiki; A. Koike; M. Aihara','ieee/service oriented architecture security.csv','ieee',''),(270,'A Self-disclosure Framework for Social Mobile Applications','2014','0','','With the growing interest in social media, attention should be given to privacy and trust issues. Social applications are usually proposed and developed without clear measures related to privacy and trust issues. In this paper, we propose a framework for data sharing in social mobile applications that helps users having dynamic control of their information sharing on social networks. We also show how this framework can be implemented by means of a simulation console and an example.','2014 6th International Conference on New Technologies, Mobility and Security (NTMS)',1,'A. Ali-Eldin; J. van den Berg','ieee/service oriented architecture security.csv','ieee','\0'),(271,'Distributed Orchestration of Web Services under Security Constraints','2012','0',' Web services automatic composition security distributed orchestration formal methods','Abstract We present a novel approach to automated distributed orchestration of Web services tied with security policies. The construction of an orchestration complying with the policies is based on the resolution of deducibility constraint systems and has been implemented for the non-distributed case as part of the AVANTSSAR Validation Platform. The tool has been successfully experimented on several case-studies from industry and academia.','',2,'Tigran AvanesovYannick ChevalierMohammed Anis MekkiMichaël RusinowitchMathieu Turuani','springer/bpel security.csv','springer','\0'),(272,'A novel mechanism for secure e-tendering in an open electronic network','2013','1','Cryptography;Session key;Steganography','It is considered a good practice when traditional paper-based business documents and processes are migrated to digital systems. As evident from the past 3-4 decades of digital revolution, using available or new digital technology has plenty of advantages in achieving business objectives. Electronic Tendering (e-tendering), is one such application through which calls, proposals, bids and reviews are exchanged between interested parties for securing a project that is published via a tender management system. Few e-tendering systems exist that automate all the processes. Although, techniques have been developed to provide the basic exchange of documents and messaging service, very little research and application has been done in the area of authentication, secure exchange of data, and storage of tender applications in multi-user environments. Our work focuses on developing a holistic solution for meeting the security requirements of e-tendering system. We first investigate the main drawbacks of using SSL for such applications, and also highlight the threats, attacks and implementation issues encountered in implementing systems without SSL. In this paper we propose a novel mechanism to overcome the drawbacks, focusing on the e-tendering steps related to authentication, submission of bid proposal, data transmission and key exchange between trusted parties, and secure data storage. In each of these steps, we identify the possible attacks and propose novel ways to apply techniques so that the security needs are met. We believe that our application of techniques, use of key exchange in e-tendering, and other algorithms provides a practical mechanism for secure e-tendering in open electronic networks. The prototype we have developed shows that our framework is very usable, and could easily be adapted as a secure e-trading system in practice.','Computer Science & Education (ICCSE), 2013 8th International Conference on',1,'A. Damsika; D. Ranasinghe; D. Kulkarni','ieee/service oriented architecture security.csv','ieee','\0'),(273,'Internet of Things','2013','0',' M2M IoT WoT','Abstract This chapter addresses the Internet of Things (IoT); from the concept and fundamental characteristics to the advantages of machine-to-machine communications, as well as the key requirements for the IoT. Examples of the IoT are illustrated, including their core technologies. Architectural models for the IoT are presented to identify related functionalities. This chapter also introduces recent efforts towards standardization of the various technical aspects.','',1,'Gyu Myoung LeeNoel CrespiJun Kyun ChoiMatthieu Boussard','springer/service oriented architecture security.csv','springer','\0'),(274,'The MPI Structure of Chimere','2012','0',' ozone production Chimere domain partitioning grid computing Chemistry Transport Model','Abstract The multiscale three dimensional Chemistry and Transport Model (CTM) package Chimere has been ported onto the segment of the European Grid Initiative platform available to the Virtual Organization COMPCHEM as part of the MPI parallelization activities of the European project EGI-Inspire. The model adopted by the package, its structure, the parallel restructuring made to execute it on EGI and an analysis of some of the main factors affecting its parallel performances are illustrated and discussed.','',1,'Antonio LaganàStefano CrocchiantiGiorgio TentellaAlessandro Costantini','springer/service oriented architecture security.csv','springer','\0'),(275,'A Security-enabled Grid System for MINDS Distributed Data Mining','2014','1',' Distributed Data Mining Security-enabled Grid Access Control MINDS','Abstract Interest has been increasing in mining information from a huge amount of data for various purposes such as business processes, scientific discoveries, and security. MINDS (Minnesota INtrusion Detection System) is a tool utilizing data mining techniques to identify both known and unknown network intrusions. While performing well with a high degree of accuracy in detecting intrusions, MINDS is intrinsically limited due to its centralized design. At the same time, there are increasing needs for coordinating multiple distributed sites to find correlations of suspicious events and for sharing distributed anomaly data in different administrative domains since network intrusions become more sophisticated and harder to identify by a single site analysis. In this work, we consider a distributed model of MINDS to eliminate the limitations that the current MINDS suffers from due to its centralized nature. We utilize Grid technologies to achieve the distribution of services. In addition, we develop security frameworks for authentication and access control since it is important to preserve privacy and sensitivity of data regardless of distribution. To verify the feasibility of our approach, we also present our experimental results conducted in a local testbed with four nodes and in a wide-area setting in PlanetLab with 20 nodes geographically dispersed.','Journal of Grid Computing',1,'Seonho KimJinoh KimJon B. Weissman','springer/soa security.csv','springer','\0'),(276,'Doctoral Colloquium: Integrating Web Content into Mashups on Desktop and Mobile Devices','2012','0',' mashups web applications web technologies mobile devices','Abstract Mashups, web application hybrids that combine content from different services, are exploiting pervasiveness of the Internet and offering great value for the end user. Constantly evolving web technologies and new web services open up unforeseen possibilities for mashup development. Combining dynamic scripts with binary software is an interesting option. However, developing mashups with current methods and tools for existing deployment environments is challenging. This work concentrates on these challenges and finds ways to solve and circumvent issues related to mashups. Another important topic is analyzing the impact of new web technologies on mashup development. This research presents the mashups as a new breed of web applications that are intended for parsing the web content into easily accessed form on both regular computers as well as on other platforms, e.g. on embedded devices.','',1,'Arto Salminen','springer/service oriented architecture security.csv','springer','\0'),(277,'Composition and Execution of Secure Workflows in WSRF-Grids','2008','2','BPEL;Business Process Management;Grid Computing;Security;WSRF;Workflow','BPEL is the de-facto standard for business process modeling in today\'s enterprises and is a promising candidate for the integration of business and Grid applications. While BPEL works well for traditional web services, it has a number of drawbacks with respect to the more complex world of WSRF- based Grid computing, especially where security is concerned. In this paper, a solution that extends the BPEL security approach to encompass secure Grid application interactions is presented. The proposed approach is capable of handling both web service and Grid service resources and their corresponding security mechanisms. The BPEL language is extended by security-related settings. An implementation of a GSI-compliant BPEL engine that can also manage the lifetime of proxy certificates is presented.','Cluster Computing and the Grid, 2008. CCGRID \'08. 8th IEEE International Symposium on',2,'T. Dörnemann; M. Smith; B. Freisleben','ieee/bpel security.csv','ieee','\0'),(278,'A test-based security certification scheme for Web services','2013','11','Model-based testing; Security certification; Service-Oriented Architecture; Symbolic transition systems; Web services','The Service-Oriented Architecture (SOA) paradigm is giving rise to a new generation of applications built by dynamically composing loosely coupled autonomous services. Clients (i.e., software agents acting on behalf of human users or service providers) implementing such complex applications typically search and integrate services on the basis of their functional requirements and of their trust in the service suppliers. A major issue in this scenario relates to the definition of an assurance technique allowing clients to select services on the basis of their nonfunctional requirements and increasing their confidence that the selected services will satisfy such requirements. In this article, we first present an assurance solution that focuses on security and supports a test-based security certification scheme for Web services. The certification scheme is driven by the security properties to be certified and relies upon a formal definition of the service model. The evidence supporting a certified property is computed using a model-based testing approach that, starting from the service model, automatically generates the test cases to be used in the service certification. We also define a set of indexes and metrics that evaluate the assurance level and the quality of the certification process. Finally, we present our evaluation toolkit and experimental results obtained applying our certificationsolution to a financial service implementing the Interactive Financial eXchange (IFX) standard. © 2013 ACM.','',1,'Anisetti M., Ardagna C.A., Damiani E., Saonara F.','scopus/service oriented architecture security.csv','scopus','\0'),(279,'Reusability of Data Flow Designs in Complex CSCL Scripts: Evaluation Results from a Case Study','2012','1',' reusability data flow complex CSCL scripts workflow','Abstract Several approaches have addressed the consistency and automatic enactment dimensions of CSCL scripts with data flow, but they have not appropriately tackled the problem of reusing such learning designs. For instance, workflow-based solutions such as LeadFlow4LD only capture particular case behaviors, instead of describing generic data flow situations. This limitation hinders the reusability of these designs because the workflow needs to be adapted for specific technical, teaching and social contexts. This adaptation is complex and time consuming, especially with a large number of students. In order to show the relevance of this problem, this paper analyzes the LeadFlow4LD approach through a real-world complex CSCL script. The study characterizes the reuse effort of CSCL scripts with and without data flow definition, in different social context settings. The findings illustrate how the data flow representation may affect the particularization of complex CSCL scripts, and pave the path for alternative, higher abstraction level representations of data flows, to reduce the reuse effort.','',2,'Osmel BordiésEloy VillasclarasYannis DimitriadisAdolfo Ruiz-Calleja','springer/bpmn security.csv','springer','\0'),(280,'Towards a formal analysis of dynamic reconfiguration in WS-BPEL','2013','2','π-calculus; BP-calculus; dynamic reconfiguration; formal methods; RBAC; WS-BPEL','The BP-calculus is a formalism based on the π-calculus, which is encoded in WS-BPEL. The BP-calculus is intended to specifically model and verify Service Oriented Applications (SOA). One important feature of SOA is the ability to compose services which may evolve dynamically or at runtime. Dynamic reconfiguration of services increases their availability but, simultaneously, it complicates validation, verification, and evaluation to some extent. In this paper, we formally model and analyze dynamic reconfigurations and their requirements in BP-calculus and we show how reconfigurable components can be modeled using handlers that are essential parts of WS-BPEL language. Besides, we consider security rules and their formal specification as required to implement dynamic reconfiguration. © 2013-IOS Press and the authors. All rights reserved.','',2,'Abouzaid F., Mazzara M., Mullins J., Qamar N.','scopus/bpel security.csv','scopus','\0'),(281,'Prioritizing Consumer-Centric NFPs in Service Selection','2014','0',' Service Oriented Architecture (SOA) Web Services Non- Functional Properties (NFPs) Service Selection','Abstract Service Selection continues to be a challenge in Service Oriented Architecture (SOA). In this paper, we propose a consumer-centric Non- Functional Properties (NFP) based services selection approach that relies on an externally-validated set of NFP descriptions integrated with the Web Service Description Language (WSDL). Our approach is based on three steps: (1) a Filtering step based on Hard NFPs defined in the consumer’s request, (2) a Matchmaking step to discover the functionally-equivalent services, and (3) a Ranking step that sorts the resulting set of services based on the Soft NFPs defined by the consumer. The evaluation of our proposed service selection approach shows that the prioritization of NFP usage enhances the performance time of the service selection process while satisfying the functional and the nonfunctional requirements of the consumer.','',2,'Hanane BechaSana Sellami','springer/bpel security.csv','springer',''),(282,'Secure communication using dynamic VPN provisioning in an Inter-Cloud environment','2012','2','','Most of the current cloud computing platforms offer Infrastructure as a Service (IaaS) model, which aims to provision basic virtualised computing resources as on-demand and dynamic services. Nevertheless, a single cloud does not have limitless resources to offer to its users, hence the notion of an Inter-Cloud enviroment where a cloud can use the infrastructure resources of other clouds. However, there is no common framework in existence that allows the service owners to seamlessly provision even some basic services across multiple cloud service providers, albeit not due to any inherent incompatibility or proprietary nature of the foundation technologies on which these cloud platforms are built. In this paper we present a novel solution which aims to cover a gap in a subsection of this problem domain. Our solution offers a security architecture that enables service owners to provision a dynamic and service-oriented secure virtual private network on top of multiple cloud IaaS providers. It does this by leveraging the scalability, robustness and flexibility of peer-to-peer overlay techniques to eliminate the manual configuration, key management and peer churn problems encountered in setting up the secure communication channels dynamically, between different components of a typical service that is deployed on multiple clouds. We present the implementation details of our solution as well as experimental results carried out on two commercial clouds.','2012 18th IEEE International Conference on Networks (ICON)',1,'A. Sajjad; A. Zisman; M. Rajarajan; S. K. Nair; T. Dimitrakos','ieee/service oriented architecture security.csv','ieee','\0'),(283,'Enterprise Application Integration - The Cloud Perspective','2013','0',' Enterprise application integration cloud integration integration styles enterprise service bus open-source ESB systems integration patterns messaging business process integration','Abstract So far, asynchronous messaging has proven to be the best strategy for enterprise application integration (EAI) success. However, building and deploying messaging solutions causes several problems for developers and new technologies and computing paradigms as cloud computing demand for new solutions. There are more than sixty enterprise integration patterns that are designed to effectively develop messaging solutions for enterprises. The tutorial introduces the visual notation framework to describe large-scale integration solutions across different systems and technologies. This includes examples covering a variety of different integration styles and techniques. In a case study we illustrate the application of the patterns in practice and review existing and emerging standards. Also we try to shed light into the future of EAI. In particular cloud integration is an upcoming trend which is discussed in the tutorial, addressing advantages and limitations of this and other modern EAI strategies and architectures. Looking at open-source solutions for enterprise service buses and messaging systems, we also provide practical advice on designing code that connects an application to a messaging system. This provides information to help the practitioner to design EAI or cloud integration solutions by applying the introduced knowledge.','',2,'Jörg LässigMarkus Ullrich','springer/bpel security.csv','springer','\0'),(284,'Formal Consistency Verification Between BPEL Process and Privacy Policy','2006','6','business process, consistency verification, graph transformation, privacy policy','Proceedings of the 2006 International Conference on Privacy, Security and Trust: Bridge the Gap Between PST Technologies and Business Services','',2,'Yin Hua Li and Hye-Young Paik and Boualem Benatallah','acm/bpel security.csv','acm','\0'),(285,'Embedding ‘Break the Glass’ into Business Process Models','2012','0',' Security process model annotation language immediate context','Abstract Break the Glass (BTG) is an important feature for authorization infrastructures, as it provides flexible access control in exceptional cases. Current realizations have two drawbacks: They neglect the need to manage authorization steps, and they do not take immediate process context into account. Our approach in turn embeds BTG functionality into business processes (BPs): The steps to perform BTG and the obligations compensating a BTG access for data are parts of the BPs. To support process designers in embedding BTG steps and obligations, we introduce an expressive annotation language for specifying BTG tasks for BP models. In particular, our language allows process designers to take BP context into account and to specify security constraints for role holders performing BTG tasks. Using our approach, one can efficiently specify and use context-aware BTG functionality for BPs.','',2,'Silvia von StackelbergKlemens BöhmMatthias Bracht','springer/bpmn security.csv','springer','\0'),(286,'Contracts + Goals = Roles?','2012','0',' i * Business Contracts Role Modeling Formal Methods','Abstract The concept of role has been investigated in various fields of computer science as well as social sciences. While there is no clear consensus on how roles should be represented, a survey of the literature suggests that we should address both responsibilities and rights in the modeling of roles [1]. Based on this, we argue that the responsibilities and rights of roles can be captured by leveraging the notions of business contract and goal (in the sense of the goals of an actor being constrained by the rights associated with the role played by the actor) in the realm of requirements engineering. We leverage existing work on the formalization of business contracts [2] and the formulation of goals in the i * modeling framework [3]. We devise formal techniques for reasoning about the composition and substitutability of roles and illustrate them through a running example.','',2,'Lam-Son LêAditya Ghose','springer/bpmn security.csv','springer','\0'),(287,'Design and implementation of ONVIF-based event service for DM 814x camera','2015','','camera; Event service; ONVIF; webservice','Nowadays, IP-based physical security products like IP network camera (IPNC) are becoming essential in construction of a modern security system. In order to guarantee interoperability among them, ONVIF has been a de facto standard communication framework. In addition to core specification, ONVIF defines many services. ONVIF Event service is supposed to provide notification messages to registered clients when events happen, which is an essential mechanism to be support to make IPNC intelligent. Currently, we are developing a smart IPNC based on TI DM814x media processor. In this paper, we report our efforts to implement ONVIF Event service for the smart IPNC. First, we design S/W architecture, necessary data structures, and workflow of ONVIF Event service according to ONVIF Event service specification. Then, we implement the design about ONVIF Event service by extending TI\'s IPNC reference RDK S/W package. Testing via an Open source ONVIF client verifies our implementation works properly. © 2015 IEEE.','',1,'Phan C.C., Nguyen T.B., Chung S.-T.','scopus/webservice security.csv','scopus',''),(288,'Suggestions for security technology improvement on regional power grid energy management system','2012','','Concurrent versions system (CVS); Energy management system (EMS); Regional power grid; Security configuration; Service-oriented architecture (SOA)','In view of the easily ignored safety problems in the power grid automation of the energy management system (EMS) itself, suggestions for improvement are made while verifying those for realizing the systemic alarming mechanism that is loosely coupled with the EMS platform. As the security configuration files of EMS usually lack systematic design, the safe hierarchical modular design for EMS is provided first. All the security installations are reorganized and packed based on their character and importance. The security configuration management is practiced based on the concurrent versions system (CVS). The data-mining technology is used for searching EMS fault in advance. Finally, case studies on EMS in Guangdong power grid have verified the rationality of the above-mentioned suggestions. © 2012 State Grid Electric Power Research Institute Press.','',1,'Gu H., Liu Y., Xiong W., Huang X., Yin Y.','scopus/service oriented architecture security.csv','scopus','\0'),(289,'A fine-grained context-aware access control model for health care and life science linked data','2016','0',' Context-aware access control Fine-grained Semantic scope Health care and life science linked data','Abstract Health Care and Life Sciences (HCLS) have long been a test-bed for the standards proposed by the W3C to build the Semantic Web. One of the challenges to HCLS Linked Data is access control. In this paper, we present a fine-grained context-aware access model for HCLS Linked Data based on Semantic Web tools. The model consists of two basic components: ontology base and access policy. Ontology base refers to a set of ontologies that include subject ontology, resource ontology, environment ontology, and action ontology. In the access policy module, we describe the access policy with eXtensible Access Control Markup Language (XACML) model, which allows users to achieve access rule reproduction by defining the semantic scope and inference rules among different entities. Results of the analysis indicate that indicates that our model expands the scopes of authorization rules for users. Inference of semantic authorization rules is also realized. These rules enable fine-grained access to data and meet the need for dynamic change of HCLS Linked Data. Finally, we show the process of authorization and present a system framework. Simulation experiments verify the acceptability of our model in protecting secured data.','Multimedia Tools and Applications',1,'Zhengtao LiuJiandong Wang','springer/soa security.csv','springer',''),(290,'Bioelectromagnetic simulation for everyone','2013','1',' Computational electromagnetics Software engineering Web service System design Mathematics Subject Classification 68M14 68U35','Abstract Cloud computation technologies open a new perspective for scientific computing. Sophisticated software can now be made available as an on-demand service, reducing costs of maintenance and improving availability of the software to end-users. The paper presents a web based service system for electromagnetic computations. The back-end of the system is built of open-source scientific code. The service is targeted on medical staff and electromagnetic safety engineers which usually are not familiar with electromagnetic field simulation methods but its design allows it to be extended for more demanding, scientific-oriented users. The primary goal of the system is user friendliness for medical and engineering staff combined with flexibility, scalability and extendibility for scientists developing simulation software. These goals were achieved with help of carefully designed concept of configurable usage-scenarios (workflows). The purpose of this paper is to present in detail the concept and implementation of scientific scenarios.','Computing',1,'Jacek StarzyńskiRobert SzmurłoBartosz Chaber','springer/webservice security.csv','springer','\0'),(291,'Mobile Platform for Executing Medical Business Processes and Data Collecting','2013','0',' data collecting business process electronic health record integration SOA REST','Abstract Medicine becomes more and more complex domain. The process from patient registration through to the provision of the right treatment becomes complex and sophisticated, and any mistakes or inaccuracies can have a significant consequences for both the patient and the care professionals. This paper presents a MMDCP — Medical Mobile Data Collecting Platform, which aims is to reduce the error rate and speed up the process of data collection. Since medical staff should have the access to medical data from any place of the healthcare facility, the MMDCP provides it’s users the mobility. The proposed platform also distinguishes itself with flexibility, simplicity of maintenance and integration.','',2,'Jerzy BrzezińskiAnna KobusińskaJacek KobusińskiAndrzej StroińskiKonrad Szałkowski','springer/bpel security.csv','springer','\0'),(292,'Cost-Aware Reorganization Service for Multiagent Systems','2012','0','','Abstract Reorganization in Multigent Systems is aimed at providing support to dynamically adapt the structure and the behaviour of organizations. Current reorganization approaches are mainly focused on providing reorganization solutions that take the benefits of the future organization into account but that do not include the impact of the reorganization costs in the process. Therefore, the costs for achieving future instances of an organization cannot be computed until the reorganization process ends. Organization transition provides a paradigm for relating two different instances of the same organization at different moments. In this paper, we provide a Reorganization Facilitator Service that implements a cost-aware reorganization mechanism that is based on organization transitions. This service provides the associated costs for transition from a current organization to a future organization and the sequence of steps required for this transition. The paper also presents two different examples of organization transition in order to illustrate the use of the proposed service.','',1,'Juan M. AlberolaVicente JulianAna Garcia-Fornes','springer/service oriented architecture security.csv','springer','\0'),(293,'Decidability of Equivalence of Symbolic Derivations','2012','2',' Security protocol Dolev–Yao model Observational equivalence Symbolic derivation Subterm deduction system','Abstract We give in this paper an alternative, and we believe simpler, proof of a deep result by Mathieu Baudet, namely that the equivalence of symbolic constraints is decidable for deduction systems on a finite signature modulo a subterm convergent equational theory.','Journal of Automated Reasoning',1,'Yannick ChevalierMichaël Rusinowitch','springer/service oriented architecture security.csv','springer','\0'),(294,'Self-managed micro-containers for service-based applications in the cloud','2013','','Cloud Computing; FCAPS; Mobility; Monitoring; Self-Management; Service Containers','Cloud computing enables an economic model for virtual resources provisioning based on Internet protocols. For this paradigm, service oriented Architecture (SOA) is a pillar block to build applications. For service-based applications in the cloud, management becomes a challenging task since it involves an increasing number of layers and a huge number of parameters to take into account. In this paper, we propose a framework that generates self-managed and scalable micro-containers. These micro-containers are enhanced with the resiliency of cellular organisms assuring the fault, configuration, accounting, performance and security constraints (FCAPS) described for each service. The proposed intelligent managed micro-container (IMMC) has a self-monitoring service that allows it to take decisions to enhance its scalability based on migration and replication transactions. These transactions are performed using a Mobility service offered by our IMMC. The primary evaluation that we conducted using our framework are encouraging. © 2013 IEEE.','',1,'Mohamed M., Belaid D., Tata S.','scopus/service oriented architecture security.csv','scopus','\0'),(295,'A Framework for Realizing Artifact-Centric Business Processes in Service-Oriented Architecture','2012','0','','Abstract Over the past few years, the artifact-centric approach to workflow modeling has been beneficially evidenced for both academic and industrial researches. This approach not only provides a rich insight to key business data and their evolution through business processes, but also allows business and IT stakeholders to have a single unified view of the processes. There are several studies on the modeling and its theoretical aspects; however, the possible realization of this approach in a particular technology is still in its fancy stage. Recently, there exist proposals to achieve such realization by converting from artifact-centric model to activity-centric model that can be implemented on existing workflow management systems. We argue that this approach has several drawbacks as the transformation, which is unidirectional, poses loss of information. In this paper, we propose a framework for the realization of artifact-centric business processes in service-oriented architecture achieving a fully automated mechanism that can realize the artifact-centric model without performing model transformation. A comprehensive discussion and comparison of our framework and other existing works are also presented.','',2,'Kan NgamakeurSira YongchareonChengfei Liu','springer/bpel security.csv','springer','\0'),(296,'Tailored e-Health services for the dementia care setting: a pilot study of ‘eHealthMonitor’','2015','1',' e-health Web portal Dementia Caregiver','Abstract Background The European eHealthMonitor project (eHM) developed a user-sensitive and interactive web portal for dementia care: the eHM Dementia Portal (eHM-DP). It aims to provide targeted and personalized support for informal caregivers of people with dementia in a home-based care setting. The objective of the pilot study was to obtain feedback on the eHM-DP from two user perspectives (caregivers and medical professionals), focusing on caregiver empowerment, decision aid, and the perceived benefits of the eHM-DP. Methods The study on the eHM-DP was conducted from March 2014 to June 2014. The methodological approach followed a user-participatory design with a total number of 42 participants. The study included caregivers of people with dementia and medical professionals (MPs) from the metropolitan region of Erlangen-Nürnberg (Bavaria, Germany). Study participants were interviewed face-to-face with semi-structured, written interviews. Results Caregivers indicated a high degree of perceived support by the eHM-DP and of provided decision aid. In total, 89 % of caregivers and 54 % of MPs would use the eHM-DP if access were provided. The primary benefits participants perceived were the acquisition of individualized information, computerized interaction between caregivers and MPs, empowerment in health-related decisions and comprehensive insights into the progress of the disease. Major recommendations for improving the eHM-DP encompassed: an active search functionality based on predefined terms, the implementation of a chatroom for caregivers, an upload function and alerts for MPs, as well as the overall design. Conclusions Our study is the first to have provided new insights and results on an interactive and needs-oriented web portal, endeavouring towards empowerment and assistance in decision making for caregivers as well as MPs within the realm of caring for patients with dementia. The acceptance and willingness to use the eHM-DP emphasizes the potential of eHealth services for community-based dementia care settings.','BMC Medical Informatics and Decision Making',1,'Sandra SchallerVelislava Marinova-SchmidtJasmin GobinManfred Criegee-RieckLena GriebelSabine EngelVeronika SteinElmar GraesselPeter L Kolominsky-Rabas','springer/service oriented architecture security.csv','springer',''),(297,'A mashup based framework for multi level healthcare interoperability','2012','2',' Interoperability Process interoperability Healthcare Collaboration Web 2.0 Mashups Systems design','Abstract Healthcare delivery is evolving from disease-centered to patient-centered care delivery where patients are active participants in their healthcare delivery. This calls for more communication and collaboration among all healthcare actors. There is also an increasing demand for personalized healthcare systems that provide effective information management, facilitate communication and collaboration, and support applications to meet user requirements. To address these challenges, we need to advance the integration and interoperability of healthcare applications in a controlled manner. Drawing upon a conceptual model from a collaborative care case study, we identified a set of interoperability requirements and developed a Mashup based interoperability framework. Our framework allows patients and other healthcare actors to engage in collaborative processes through online applications facilitated by mashups. We then use proof-of-concept implementations to demonstrate how our framework is able to facilitate different types of interoperability. We believe that collaborative technologies such as mashups can implement process interoperability requirements to support collaborative care delivery, particularly for asynchronous care delivery.','Information Systems Frontiers',1,'Payam SadeghiMorad BenyoucefCraig E. Kuziemsky','springer/service oriented architecture security.csv','springer','\0'),(298,'Identifying factors affecting software development cost and productivity','2012','4',' Cost estimation Software development cost Software development productivity Estimation models Function points','Abstract Software systems of today are often complex, making development costs difficult to estimate. This paper uses data from 50 projects performed at one of the largest banks in Sweden to identify factors that have an impact on software development cost. Correlation analysis of the relationship between factor states and project costs was assessed using ANOVA and regression analysis. Ten out of the original 31 factors turned out to have an impact on software development project cost at the Swedish bank including the: number of function points, involved risk, number of budget revisions, primary platform, project priority, commissioning body’s unit, commissioning body, number of project participants, project duration, and number of consultants. In order to be able to compare projects of different size and complexity, this study also considers the software development productivity defined as the amount of function points per working hour in a project. The study at the bank indicates that the productivity is affected by factors such as performance of estimation and prognosis efforts, project type, number of budget revisions, existence of testing conductor, presentation interface, and number of project participants. A discussion addressing how the productivity factors relate to cost estimation models and their factors is presented. Some of the factors found to have an impact on cost are already included in estimation models such as COCOMO II, TEAMATe, and SEER-SEM, for instance function points and software platform. Thus, this paper validates these well-known factors for cost estimation. However, several of the factors found in this study are not included in established models for software development cost estimation. Thus, this paper also provides indications for possible extensions of these models.','Software Quality Journal',1,'Robert LagerströmLiv Marcks von WürtembergHannes HolmOscar Luczak','springer/soa security.csv','springer','\0'),(299,'Interactive Web Documents','2012','1',' ODF HTML XForms SCXML Web application Rich internet application Document-centric Workflow Collaboration','Abstract Documents allow end-users to encapsulate information related to a collaborative business process into a package that can be saved, emailed, digitally signed, and used as the basis for interaction in an activity or an ad hoc workflow. While documents are used incidentally today in web applications, for example in HTML presentations of content stored otherwise in back-end systems, they are not yet the central artifact for developers of dynamic, data intensive web applications. This paper unifies the storage and management of the various artifacts of web applications into an Interactive Web Document (IWD). Data, presentation, behavior, attachments, and digital signatures collected throughout the business process are unified into a single composite web resource. We describe a standards-based approach to packaging multiple resources into IWD archives based on the Open Document Format, a REST-based protocol for interacting with IWDs, and an extensible interaction controller architecture.','Computer Science - Research and Development',2,'John M. BoyerCharles F. WiechaRahul P. Akolkar','springer/bpel security.csv','springer','\0'),(300,'Methods and software tools to support combined binary code analysis','2014','0','','Abstract Methods and tools for binary code analysis developed in the Institute of System Programming, Russian Academy of Sciences, and their applications in algorithm and data format recovery are considered. The executable code of various general-purpose CPU architectures is analyzed. The analysis is performed given no source codes, debugging information, and specific OS version requirements. The approach implies collecting a detailed machine instruction level execution trace; a method for successively increasing presentation level; extraction of algorithm’s code followed by structuring of both code and data formats it processes. Important results are obtained, viz. an intermediate representation is developed that allows carrying out most preliminary processing tasks and algorithm code extraction without having to focus on specifics of a given machine; and a method and software tool are developed for automated recovery of network message and file formats. The tools are integrated into the unified analysis platform that supports their combined use. The architecture behind the platform is also described. Examples of its application to real programs are given.','Programming and Computer Software',1,'V. A. PadaryanA. I. GetmanM. A. SolovyevM. G. BakulinA. I. BorzilovV. V. KaushanI. N. LedovskikhYu. V. MarkinS. S. Panasenko','springer/soa security.csv','springer','\0'),(301,'A visual language for modeling multiple perspectives of business process compliance rules','2016','0',' Business process compliance Extended Compliance Rule Graphs Business process modeling Smart processes','Abstract A fundamental challenge for enterprises is to ensure compliance of their business processes with imposed compliance rules stemming from various sources, e.g., corporate guidelines, best practices, standards, and laws. In general, a compliance rule may refer to multiple process perspectives including control flow, time, data, resources, and interactions with business partners. On one hand, compliance rules should be comprehensible for domain experts who must define, verify, and apply them. On the other, these rules should have a precise semantics to avoid ambiguities and enable their automated processing. Providing a visual language is advantageous in this context as it allows hiding formal details and offering an intuitive way of modeling the compliance rules. However, existing visual languages for compliance rule modeling have focused on the control flow perspective so far, but lack proper support for the other process perspectives. To remedy this drawback, this paper introduces the extended Compliance Rule Graph language, which enables the visual modeling of compliance rules with the support of multiple perspectives. Overall, this language will foster the modeling and verification of compliance rules in practice.','Software & Systems Modeling',2,'David KnupleschManfred Reichert','springer/bpmn security.csv','springer',''),(302,'Upgradation of Business Applications with Autonomic Computing','2013','0','CRM, ERP, autonomic computing, e-commerce, multi-agent architecture, service oriented architecture','Autonomic computing has come a long way since its inception a decade ago and has been positioned as a venerable and value-adding technology for producing and sustaining self-managing, real-time, and resilient systems for the future. A series of concerted efforts by multiple IT companies and academic research laboratories across the world have brought in a number of advancements in this discipline with vigorous study and research. A variety of proven and potential mathematical and computational concepts have been selected and synchronized to arrive at noteworthy improvements in the autonomic systems design, development, deployment, and delivery methods. Having understood the unique value-proposition and the significant achievements in the autonomic computing space, business executives and IT experts are consciously embracing the autonomic idea, which is very generic to be easily embedded in any kind of business and IT systems. However, the penetration of this technology into both IT and business applications has not been as originally envisaged by its creators due to various reasons.The business environment is still filled and saturated with large-scale packaged and monolithic applications. If the autonomic capabilities are innately squeezed into business and IT applications, then there can be major differentiators in how those applications function in seamlessly and spontaneously automating business operations. Both, existing as well as emerging applications can be targeted to become autonomic in their operations, outputs, and outlooks. In this paper, we have described how the leading enterprise packages (ERP, CRM, SCM, and so on.) can be enabled to be adaptive, highly available, secure, and scalable in their actions and reactions. The well-known enterprise applications such as CRM, Online Retail, and Marketing with focus on self-optimization characteristics are described here. A detailed analysis of a Discount Manager in an online retail scenario is also explained. The simulation results obtained clearly show how embedded autonomic capability is very close to human thinking and decision-making ability.','',1,'Devasia Kurian and Pethuru Raj Chelliah','acm/service oriented architecture security.csv','acm','\0'),(303,'Interoperable integration of building automation systems using RESTful BACnet Web services','2015','','','Building automation domain is affected by a diversity of standards and technologies. With the upcoming Internet of Things heading for a pervasive network of interconnected smart things and the need for efficient and intelligent energy management systems, the necessity of integrating these heterogeneous building automation environments soars. Thus, standardized, interoperable, secure, and scalable solutions are required. Well-established Web service technologies based on the Internet Protocol act as key enabler to realize this vision. In this work, an approach for the seamless and interoperable integration of building automation systems based on RESTful BACnet/WS is presented. In order to ease the integration process, the BAC-net/WS specification is described as formal, machine-readable object model. Additionally, most common building blocks of building automation systems including logical as well as physical resources are specified in the form of type definitions to unify integration. Furthermore, a proof-of-concept implementation of a BACnet/WS server is realized in order to illustrate the functional capability of the presented approach.','Industrial Electronics Society, IECON 2015 - 41st Annual Conference of the IEEE',1,'D. Schachinger; C. Stampfel; W. Kastner','ieee/service oriented architecture security.csv','ieee',''),(304,'Service Oriented Architecture - Collaborative Educational Framework','2013','0','Modeler;Process choreography;Service Oriented Architecture','The Service orientation with the educational institutions is a boon to the existing conventional model. There are many advantages which can be measured under the parameters like reusability, resource sharing, time, cost etc. The implementation of SOA may also arise various security issues like privacy, availability etc. The study in this paper analyses and highlights the dynamics of SOA implementation. It is an empirical analysis which adopts a case study method to understand the implication issues of Service Oriented Architecture with the Educational Information system.','Cloud & Ubiquitous Computing & Emerging Technologies (CUBE), 2013 International Conference on',1,'R. Kamatchi','ieee/service oriented architecture security.csv','ieee','\0'),(305,'Architecture of automotive electronic cloud manufacturing based on AUTOSAR','2012','3','Automotive electronics; Automotive open system architecture; Cloud manufacturing; Service oriented architecture','To meet the requirements of real-time and security in the future automotive electronics manufacturing, on the support of cloud manufacturing architecture, combined with Service Oriented Architecture(SOA) and Automotive Open System Architecture(AUTOSAR), the request description package approach, the protocol adapter modification method and service invocation method selection for automotive electronic cloud manufacturing oriented to service were studied and solved. A future automobile electronic cloud manufacturing architecture oriented to network, intelligence and services was put forward to meet safety and real-time requirements of automotive electronics manufacturing. An example was used to prove the feasibility of proposed architecture.','',1,'Ji L., Wang L.-F., Liao C.-L.','scopus/service oriented architecture security.csv','scopus','\0'),(306,'CoNSIS: Demonstration of SOA interoperability in heterogeneous tactical networks','2012','0','SOA;Web services;publish/subscribe;service discovery','The Coalition Network for Secure Information Sharing (CoNSIS) conducted a large scale experiment in Germany in June 2012. During this experiment, multiple aspects of interoperability in the tactical domain were tested in practice. This paper presents the challenges faced by Task 2, which focuses on service orientation, and the use of Web services technology as a means to achieve interoperability between nations. Furthermore, it describes how these challenges were addressed by the different information infrastructures involved. We also present our experiences with several central Web service standards, and describe some lessons learned when it comes to utilizing these standards in tactical networks.','Communications and Information Systems Conference (MCC), 2012 Military',1,'T. H. Bloebaum; K. Lund','ieee/service oriented architecture security.csv','ieee','\0'),(307,'On access control of cloud service chains','2014','','','Service-oriented architecture may be regarded as an incubator for small resources entrepreneurs to bid and work on bigger projects. It also helps large enterprise to trade their resources at various levels. This has opened new gateways for renting out resources. Sometimes a single service is sold at different levels making the Cloud service a supply chain of added value. This supply chain which is built on the same resources but varying claims of ownership, poses novel challenges related to security, trust and privacy of data. There is still no popular system of governing body which can glue together the participating stakeholders through mutual trust and organizational policies. A governing mechanism that can preserve stakeholders\' privacy issues and resolve their conflicts throughout the emerging service chains is also non-existent. In this paper we are introducing a mechanism of access control for such Cloud service chains. Building on our pevious work of SLA-based privacy model, we have discussed the realization of Role-based Access Control (RBAC) to services of federated-cloud. The main advantage of RBAC is that it provides an efficient control to resources and data access. We have also provided a preliminary analysis of this on-going research. © 2014 IEEE.','',1,'Abbasi K.M., Ul Haq I., Malik A.K., Khalid S., Fazil S., Durad H.','scopus/service oriented architecture security.csv','scopus','\0'),(308,'VxBPEL_ODE: A Variability Enhanced Service Composition Engine','2014','1',' Service Oriented Architecture Service Compositions Variability Management VxBPEL','Abstract Service compositions have become a powerful development paradigm to create distributed applications out of autonomous Web services. Since such applications are often deployed and executed in open and dynamic environments, variability management is a crucial enabling technique. To address the adaptation issue of service compositions, we proposed VxBPEL, an extension of BPEL for supporting variability, and a variability-based adaptive service composition approach which employs VxBPEL for variability implementation. In this paper, we present a VxBPEL engine for supporting the execution of VxBPEL service compositions. The engine is called VxBPEL_ODE and is implemented by extending a widely recognized open source BPEL engine, Apache ODE. We discuss key issues of developing VxBPEL_ODE, and three real-life service compositions are employed to evaluate and compare its performance with another VxBPEL engine we developed in our previous work. VxBPEL_ODE, together with analysis, design, and run-time management tools for VxBPEL, constitutes a comprehensive supporting platform for variability-based adaptive service compositions.','',2,'Chang-Ai SunPan WangXin ZhangMarco Aiello','springer/bpel security.csv','springer',''),(309,'SmartMal: A Service-Oriented Behavioral Malware Detection Framework for Smartphones','2013','1','Malware;Security;Service-oriented;Smartphones','This paper presents SmartMal-A novel service-oriented behavioral malware detection framework for vehicular and mobile devices. The highlight of SmartMal is to introduce Service Oriented Architecture (SOA) concepts and behavior analysis into the malware detection paradigms. The proposed framework relies on client-server architecture, the client continuously extracts various features and transfers them to the server, and the server\'s main task is to detect anomalies using state-of-art detection algorithms. Multiple distributed servers simultaneously analyze the feature vector using various detectors and information fusion is used to concatenate the results of detectors. We also propose a cycle-based statistical approach for mobile device anomaly detection. We accomplish this by analyzing the users\' regular usage patterns. Empirical results suggest that the proposed framework and novel anomaly detection algorithm are highly effective in detecting malware on Android devices.','High Performance Computing and Communications & 2013 IEEE International Conference on Embedded and Ubiquitous Computing (HPCC_EUC), 2013 IEEE 10th International Conference on',1,'C. Wang; Z. Wu; A. Wang; X. Li; F. Yang; X. Zhou','ieee/service oriented architecture security.csv','ieee','\0'),(310,'A Software Development Process Model for Cloud by Combining Traditional Approaches','2015','0',' Cloud computing Software development Process','Abstract Even though cloud computing is a technological paradigm that has been adopted more and more in various domains, there are few studies investigating the software development lifecycle in cloud computing applications and there is still not a comprehensive software development process model developed for cloud computing yet. Due to the nature of cloud computing that is completely different from the traditional software development, there is a need of suggesting process models to perform the software development systematically to create high quality software. In this study, we propose a new conceptual Software Development Life Cycle Model for Cloud Software Development that incorporates characteristics of different process models for traditional software development. The proposed model takes traditional model’s specific characteristics into account and also considers cloud’s specific nature i.e. advantages and challenges as well.','',1,'Tuna HacalogluP. Erhan ErenDeepti MishraAlok Mishra','springer/service oriented architecture security.csv','springer',''),(311,'Evolving security requirements in multi-layered service-oriented- architectures','2012','4','AOP; Evolution; REST; Security; SOA','Due to today\'s rapidly changing corporate environments, business processes are increasingly subject to dynamic configuration and evolution. The evolution of new deployment architectures, as illustrated by the move towards mobile platforms and the Internet Of Services, and the introduction of new security regulations (imposed by national and international regulatory bodies, such as SOX1 or BASEL2) are an important constraint in the design and development of business processes. In such a context, it is not sufficient to apply the corresponding adaptations only at the service orchestration or at the choreography level; there is also the need for controlling the impact of new security requirements to several architectural layers, specially in cloud computing, where the notion of Platforms as Services and Infrastructure as Services are fundamental. In this paper we survey several research questions related to security cross-domain and cross-layer security functionality in Service Oriented Architectures, from an original point of view. We provide the first insights on how a general service model empowered with aspect oriented programming capabilities can provide clean modularization to such cross-cutting security concerns. © Springer-Verlag Berlin Heidelberg 2012.','',1,'Idrees M.S., Serme G., Roudier Y., De Oliveira A.S., Grall H., Südholt M.','scopus/service oriented architecture security.csv','scopus','\0'),(312,'Taming the Raven – Testing the Random Access, Visualization and Exploration Network RAVEN','2012','0',' Testing Distributed Systems Parallel Systems High-Performance Computing TTCN-3','Abstract The Random Access, Visualization and Exploration Network (RAVEN) aims to allow for the storage, analysis and visualisation of peta-bytes of scientific data in (near) real-time. In essence, RAVEN is a huge distributed and parallel system. While testing of distributed systems, such as huge telecommunication systems, is well understood and performed systematically, testing of parallel systems, in particular high-performance computing, is currently lagging behind and is mainly based on ad-hoc approaches. This paper surveys the state of the art of software testing and investigates challenges of testing a distributed and parallel high-performance RAVEN system. While using the standardised Testing and Test Control Notation (TTCN-3) looks promising for testing networking and communication aspects of RAVEN, testing the visualisation and analysis aspects of RAVEN may open new frontiers.','',1,'Helmut Neukirchen','springer/service oriented architecture security.csv','springer','\0'),(313,'Multiagent trust management of web services: the “asynchronous computing environment profile unification methodology” (acepum)','2015','','SOA;methodology;trust management;web services','Web services are considered as a major challenge for the information technology industry as they emerge from integration of several technologies adaptable within different architectures and platforms. Web Services are deployed within heterogeneous distributed environments; specifically B-2-B interactions are considered as critical-mission processes and services, the main goal for these processes is to provide a secured inter-organizational computing environment. Ion the web, we deploy web services on the web for the purpose of achieving reusability, interoperability, and standards utilization. Web services are based on interactions of peers where loosely coupled systems interact in anonymous computing environments. The environments of web services are considered more vulnerable to faults and incidents than tightly coupled services. In this paper; I introduce a token-based methodology which is utilized for the purpose of achieving trust between end points of communication. I introduce the Asynchronous Computing Environment Profile Unification Methodology (ACEPUM) as a vulnerability reduction methodology which audits the environment profile variables; this approach introduces several levels of trust management routines that addresses different aspects of security requirements.','2015 World Congress on Internet Security (WorldCIS)',1,'K. A. Abuosba','ieee/soa security.csv','ieee',''),(314,'Context-aware multimedia services modeling: an e-Health perspective','2014','3',' Body sensor network e-Health Sensor networks Internet-based services User context Context modeling','Abstract In this paper we present an e-Health framework model that can dynamically provide context-aware multimedia services to a user. The framework collects live user context by analyzing sensory data obtained from a body sensor network and multimedia content available from live heterogeneous Internet-based services. Finally, we share the implementation details and test results.','Multimedia Tools and Applications',1,'Md. Abdur RahmanM. Shamim HossainAbdulmotaleb El Saddik','springer/service oriented architecture security.csv','springer','\0'),(315,'Multiparty Session Types Meet Communicating Automata','2012','12','','Abstract Communicating finite state machines (CFSMs) represent processes which communicate by asynchronous exchanges of messages via FIFO channels. Their major impact has been in characterising essential properties of communications such as freedom from deadlock and communication error, and buffer boundedness. CFSMs are known to be computationally hard: most of these properties are undecidable even in restricted cases. At the same time, multiparty session types are a recent typed framework whose main feature is its ability to efficiently enforce these properties for mobile processes and programming languages. This paper ties the links between the two frameworks to achieve a two-fold goal. On one hand, we present a generalised variant of multiparty session types that have a direct semantical correspondence to CFSMs. Our calculus can treat expressive forking, merging and joining protocols that are absent from existing session frameworks, and our typing system can ensure properties such as safety, boundedness and liveness on distributed processes by a polynomial time type checking. On the other hand, multiparty session types allow us to identify a new class of CFSMs that automatically enjoy the aforementioned properties , generalising Gouda et al’s work [12] (for two machines) to an arbitrary number of machines.','',2,'Pierre-Malo DeniélouNobuko Yoshida','springer/bpmn security.csv','springer',''),(316,'Compliance validation of secure service compositions','2014','1','BPMN; Compliance; SecureBPMN; Security; Validation','In this chapter, we present the Composition Security Validation Module (CSVM). The CSVM provides a service for checking the compliance of secure and trustworthy composition plans to the service designer. As proof-of-concept we created a prototype in which the CSVM module is deployed on the SAP NetWeaver Cloud and two CSVM Connectors are built supporting two well-known BPMN tools: SAP NetWeaver BPM and Activiti Designer.The Aniketos Secure Composition Framework supports the specification of secure and trustworthy composition plans in term of BPMN. The diversity of security and trust properties that is supported by the Aniketos framework allows, on the one hand, for expressing a large number of security and compliance requirements. On the other hand, the resulting expressiveness results in the risk that high-level compliance requirements (e. g., separation of duty) are not implemented by low-level security means (e. g., role-based access control configurations). © Springer International Publishing Switzerland 2014.','',2,'Brucker A.D., Compagna L., Guilleminot P.','scopus/bpmn security.csv','scopus','\0'),(317,'Challenges and Implementation on Cross Layer Design for Wireless Sensor Networks','2016','0',' Cross layer design (CLD) survey Wireless sensor networks Architecture Performance Unified','Abstract Cross-layer design (CLD) has emerged as an important area in wireless sensor networks (WSNs). Cross-layer enables interaction between different non- adjacent layers and, thereby, exchanging information between layers,\n which, indeed is not possible in traditional architectures. CLD is used for enhancing the performance of the existing architectures by utilizing the flexible prospects of the protocol layers to improve system performance and to satisfy QoS demands of the applications. The CLD leads to increase in network efficiency and optimized network throughput. In this paper, the various cross-layer design methodologies for WSNs have been reviewed, which have basically been designed to enhance the network performance in WSN. At the end, the paper proposes a CLD based on ongoing research.','Wireless Personal Communications',1,'Rajeev RanjanShirshu Varma','springer/service oriented architecture security.csv','springer',''),(318,'OPC unified architecture: A service-oriented architecture for smart grids','2012','1','Automation; Communication; OPC UA; Service-Oriented Architectures; Smart Grids; Standardization','In this paper, the OPC UA is introduced as a key technology for realizing a variety of Smart Grid use cases enabling relevant tasks of automation and control. OPC UA is the successor of the established Classic OPC specification and state of the art regarding information exchange in the industrial automation branch. One of its key improvements over the Classic OPC is that the area of application is no longer restricted to industrial automation but OPC UA can be applied almost in every domain facing challenges in automated control. This improvement stems from a more generic and object-oriented approach. For the adoption of OPC UA to Smart Grids, two of the most important data models - the Common Information Model (CIM) and the IEC 61850 - have been identified to be integrated into OPC UA communication. In this contribution, basic OPC UA features and functionalities (information modeling, communication services, and information security) are introduced and discussed in the context of Smart Grids. © 2012 IEEE.','',1,'Lehnhoff S., Rohjans S., Uslar M., Mahnke W.','scopus/service oriented architecture security.csv','scopus','\0'),(319,'Mapping Study about Usability Requirements Elicitation','2013','1',' Usability MDD Non-functional Requirements Mapping Study','Abstract The HCI community has developed guidelines and recommendations for improving the usability system that are usually applied at the last stages of the software development process. On the other hand, the SE community has developed sound methods to elicit functional requirements in the early stages, but usability has been relegated to the last stages together with other non-functional requirements. Therefore, there are no methods of usability requirements elicitation to develop software within both communities. An example of this problem arises if we focus on the Model-Driven Development paradigm, where the methods and tools that are used to develop software do not support usability requirements elicitation. In order to study the existing publications that deal with usability requirements from the first steps of the software development process, this work presents a mapping study. Our aim is to compare usability requirements methods and to identify the strong points of each one.','',2,'Yeshica Isela OrmeñoJose Ignacio Panach','springer/bpmn security.csv','springer','\0'),(320,'A Risk-Evaluation Assisted System for Service Selection','2015','','Databases; Protocols; Prototypes; Registers; Security; Service-oriented architecture; Silicon','With the rapid adoption of Service Oriented Architecture (SOA), increasingly more application-level services are developed through composing service components offered by different service providers. While such application development mode offers advantages in terms of cost-effectiveness and flexibility, application developers cannot understand or deal with risks potentially resulting from vulnerabilities within composed services due to non-transparency of the service providers. Furthermore, some of the vulnerabilities in practice are deeply hidden in dependency structures underlying composed services, thus making even the service providers fail to know the vulnerabilities. This paper proposes a risk-evaluation assisted service selection system, called Risk Evaluation-as-a-Service(or REaaS), which aims to assist application developers to understand vulnerability risks hidden within alternative services when the developers at first attempt to adopt their applications. In particular, for a given application developer\'s service selection requirement, REaaS produces a ranking list based upon vulnerability risks of alternative services to serve as a guideline regarding which service has the lowest potential risks (e.g., Bugs) for this application deployment. REaaS achieves this goal through the following three steps: 1) generating a package dependency graph for each alternative service, 2) assigning threat-degrees to packages in each dependency graph, and 3) analyzing each dependency graph and evaluating service-risk of each service. We have built a REaaS prototype and used real case study to demonstrate the practicality of REaaS. © 2015 IEEE.','',1,'Zhai E., Gu L., Hai Y.','scopus/service oriented architecture security.csv','scopus',''),(321,'A message interaction security mechanism based on SOA','2012','1','Message layer security mechanisms; SOA; SOAP; Web Services','At present, SOA (Service-Oriented Architecture) is already widely applied in the enterprise commercial development as it is loose coupling, cross-platform, language-independent, supporting organic businesses architecture. Security for communication between services has become a key technology which restricts SOA and Web services to continue to develop. Network attackers can keep the signature and certification sections of the message unchanged and modify the SOAP messages by removing or adding some elements in the head or the body part at the same time. Current security mechanisms rarely consider the effective use of the structure of the SOAP message itself to detect this type of tampering attacks. Here we give a mechanism using the structured information of SOAP Further to spot XML tampering attacks and make the appropriate details of the principle and implementation. Experiments prove that using this mechanism we can choose different security levels more flexibly without affecting the system efficiency while maintaining the security. © 2012 IEEE.','',1,'Wei R., Qiao L., Yang Z.','scopus/service oriented architecture security.csv','scopus','\0'),(322,'Command and control information systems semantic interoperability using a canonical messaging approach','2012','0',' canonical messaging command and control information system integration semantic interoperability','Abstract In presence of rapid development of information and communications technology (ICT) able to increase data processing, much more data can be stored, used and/or mediated and disseminated. Today, information and knowledge become a resource of strategic importance in complex systems, both business and military. On the other hand the question of credibility of the collected data arises: complex systems have to deal with an increasing access to information with less knowledge about their origins and their quality. Due to this lack of information on information, contemporary organizations suffer from organizational indifference. In this paper the ways and means for ensuring semantic interoperability in order to achieve information superiority in complex systems are examined, with special emphasis to military systems using Command and Control Information Systems (C2IS). Canonical messages (canonical intermediaries) based on canonical forms (canonical data models and formats) reduce the number of transformation maps that system must create and manage. An approach based on canonical messaging within the military domain is presented: Multilateral Interoperability Programme (MIP). If implemented correctly and consistently it should lead to achievement of information superiority.','Central European Journal of Computer Science',1,'Darko GalinecWilliam SteingartnerDanijel Macanga','springer/soa security.csv','springer','\0'),(323,'Research on the application in disaster reduction for using cloud computing technology','2013','','Cloud Computing; Disaster Reduction; Service; SOA; Virtualization','Cloud Computing technology has been rapidly applied in different domains recently, promotes the progress of the domain\'s informatization. Based on the analysis of the state of application requirement in disaster reduction and combining the characteristics of Cloud Computing technology, we present the research on the application of Cloud Computing technology in disaster reduction. First of all, we give the architecture of disaster reduction cloud, which consists of disaster reduction infrastructure as a service (IAAS), disaster reduction cloud application platform as a service (PAAS) and disaster reduction software as a service (SAAS). Secondly, we talk about the standard system of disaster reduction in five aspects. Thirdly, we indicate the security system of disaster reduction cloud. Finally, we draw a conclusion the use of cloud computing technology will help us to solve the problems for disaster reduction and promote the development of disaster reduction.','',1,'Tao L., Fan Y., Wang X.','scopus/soa security.csv','scopus','\0'),(324,'Towards User Centric Data Governance and Control in the Cloud','2012','2','','Abstract Cloud Computing, i. e. providing on-demand access to virtualised computing resources over the Internet, is one of the current mega-trends in IT. Today, there are already several providers offering cloud computing infrastructure (IaaS), platform (PaaS) and software (SaaS) services. Although the cloud computing paradigm promises both economical as well as technological advantages, many potential users still have reservations about using cloud services as this would mean to trust a cloud provider to correctly handle their data according to previously negotiated rules. Furthermore, the virtualisation causes a location independence of offered services which could interfere with domain specific legislative regulations. In this paper, we present an approach of putting the cloud user back into power when migrating data and services into and within the cloud. We outline our work in progress, that aims at providing a platform for developing flexible service architectures for cloud computing with special consideration of security and non-functional properties.','',1,'Stephan GroßAlexander Schill','springer/service oriented architecture security.csv','springer','\0'),(325,'Quality Measures for ETL Processes','2014','1',' ETL business process quality measures','Abstract ETL processes play an increasingly important role for the support of modern business operations. These business processes are centred around artifacts with high variability and diverse lifecycles, which correspond to key business entities. The apparent complexity of these activities has been examined through the prism of Business Process Management, mainly focusing on functional requirements and performance optimization. However, the quality dimension has not yet been thoroughly investigated and there is a need for a more human-centric approach to bring them closer to business-users requirements. In this paper we take a first step towards this direction by defining a sound model for ETL process quality characteristics and quantitative measures for each characteristic, based on existing literature. Our model shows dependencies among quality characteristics and can provide the basis for subsequent analysis using Goal Modeling techniques.','',2,'Vasileios TheodorouAlberto AbellóWolfgang Lehner','springer/bpel security.csv','springer',''),(326,'Policy Chain for Securing Service Oriented Architectures','2013','1',' Security of Service Oriented Architecture Security Policy Management and Enforcement','Abstract Service Providers using Service Oriented Architecture in order to deliver in-house services as well as on-demand and cloud services have to deal with two interdependent challenges: (1) to achieve, maintain and prove compliance with security requirements stemming from internal needs, 3rd party demands and international regulations and (2) to manage requirements, policies and security configuration in a cost-efficient manner. The deficiencies of current processes and tools force these service providers to trade off profitability against security and compliance. This paper summarizes a novel approach of a policy chain, which links high-level, abstract and declarative security policies on one side and low-level, imperative, and technical security configuration settings on the other side. The paper describes an architecture linking several applications and models via state-machines in order to provide a toolset supporting service providers to build such a holistic policy chain at design time, and to maintain and leverage it during system operation.','',1,'Wihem ArsacAnnett LaubeHenrik Plate','springer/service oriented architecture security.csv','springer','\0'),(327,'On the Synthesis of Secure Services Composition','2014','1',' Synthesis of Functional and Secure Processes Secure Service Composition Partial Model Checking Process Algebras Quantitative Security','Abstract Web service composition is one of the main research challenges of the last decades. Several frameworks have been developed to compose services in order to meet requirements and constraints imposed by a service consumer. Hereafter, we survey research work on evaluation and automatic synthesis of service composition with a particular eye to security aspects. Furthermore, we describe our logical approach based on the partial model checking technique and open system analysis for the synthesis of secure service orchestrators that are also able to exploit some cryptographic primitives. We also show two implementations able to automatically generate an orchestrator process that composes several services in such a way to guarantee both functional and security requirements.','',2,'Jose A. MartínFabio MartinelliIlaria MatteucciErnesto PimentelMathieu Turuani','springer/bpel security.csv','springer',''),(328,'Towards an energy management system of systems: An industrial case study','2012','1','EcoStruxure;Energy Management;Schneider Electric;Service-Oriented Architecture;System of Systems','A cloud based on energy related information, which is provided as services from all system components from the shop floor to the management systems, is a desire of the industry business. This paper is based on the first part of a Case Study applied to the multinational company Schneider Electric, focused to a System of Systems approach for Energy Management. It presents a State-of-the-Art analysis of some general topics related to System of Systems, Energy Management, and European Projects in order to understand the new architecture approached today, and their care towards Energy Efficiency. This background helped to start a Case Study, which in its first part regards to Energy Efficiency tools from machine builders and the next step to EcoStruxure program. This approach explains its methodology and architecture inside the industry business. It is concluded generally that Schneider Electric, as one sample of the companies providing solutions for the industry, care about developing products, services, and projects oriented to an Energy Efficient world.','IECON 2012 - 38th Annual Conference on IEEE Industrial Electronics Society',1,'D. Mora; M. Taisch; A. W. Colombo','ieee/service oriented architecture security.csv','ieee','\0'),(329,'On the Design of a Trust Enhanced Distributed Authorisation Architecture for Service Oriented Architectures','2013','0','','Authorisation systems play a vital role in protecting access to resources in distributed systems. Traditionally, authorisation is performed at the user level to determine whether a user has the necessary privileges to access a requested resource. However, when it comes to the user\'s platform, it is often assumed that the system hosting the user and the software running on it are \'trusted\' and that it will behave correctly. In this paper, we propose a comprehensive trust enhanced distributed authorisation architecture that provides a holistic framework for authorisation taking into account the state of a user platform. The model encompasses the notions of \'hard\' and \'soft\' trust to determine whether a platform can be trusted for authorisation. We first explain the rationale for the overall model and then describe our hybrid model with \'hard\' and \'soft\' trust components, followed by a description of the system architecture. We then illustrate proposed architecture in the context of a simple scenario involving a social networking system.','2013 12th IEEE International Conference on Trust, Security and Privacy in Computing and Communications',1,'A. Krishna; V. Varadharajan; N. Tarr','ieee/service oriented architecture security.csv','ieee','\0'),(330,'A Review of Monitoring Techniques for Service Based Applications','2013','0','Business Activity Monitoring;Composite Service;Monitoring;Service-Based Application;Service-Infrastructure','A Service-Based Application (SBA) is composed of a number of loosely coupled services available on the network which provide the desired functionalities. Service Based Applications execute in dynamic business environments and have to address evolving requirements. Hence they should be flexible to identify violations and adapt to changes in business requirements or context. Monitoring is the key element for adaptation. A Service Based Application can be viewed in terms of three layers i.e., Business Process Management Layer, Service Composition Layer and Service Infrastructure Layer. Application performance depends on the combined performance of components and their interactions within the SBA layers. Therefore it necessitates to constantly monitor the health of the application by monitoring activities occurring in SBA layers. In this paper we present a view of the monitoring approaches across the three layers.','2013 2nd International Conference on Advanced Computing, Networking and Security',1,'S. Saralaya; R. DSouza','ieee/service oriented architecture security.csv','ieee','\0'),(331,'Cloud Computting: New Research Perspectives for Computers and Law','2012','0',' Cloud computing automated agents contractual negotiations','Abstract Cloud computing represents a new business paradigm whereby a series of computing resources are offered as a service, available on-demand, on a pay-per-use basis, over the Internet. In this paper, we propose a hypothesis of how Cloud computing can be described as a complex system and we describe the various risks and opportunities connected with the current implementation Cloud computing. We then present a preliminary model for the implementation an automated system of certification based upon the formalization of contractual rules and consumers’ preferences.','',1,'Daniele BourcierPrimavera De Filippi','springer/service oriented architecture security.csv','springer','\0'),(332,'Architecting the smart grid as a holarchy','2012','3','Architecture; Prosumer; Smart Grid','The ever increasing concerns for energy security, energy efficiency, and sustainable energy is offering various challenges for the power grid. With increasing penetration of the distributed generations, the electricity power system is facing an era of prosumerization, whereby all stakeholders can autonomously produce, consume, import and/or export power. The classical power grid with top-down organization and control does not fit this dynamics, hence reorganizing the rather old architecture of the system is indispensable. In this paper, we propose a generic architecture of the smart grid that fits the new scenario based on the concepts of holons. The proposed architecture of the system is composed of autonomous prosumers that are organized bottom-up in a recursive manner involving various aggregation layers, forming a dynamically reconfigurable system. A corresponding control architecture that employs a holonic approach to simultaneously capture the autonomy of the prosumers, the recursion and the dynamic reconfiguration of the proposed system is also proposed. We extend our work by proposing a service oriented architecture (SOA) framework to support our control architecture.','',1,'Negeri E., Baken N.','scopus/service oriented architecture security.csv','scopus','\0'),(333,'Using Agent Technology for Ambient Assisted Living','2013','1',' Multi-Agent Systems Ambient Assisted Living Argumentation Alzheimer disease','Abstract The goal of this paper is to provide some arguments in favor of the use of agent technology in real word applications. It does so through the, as much as possible, detailed description of a multi-agent system in the context of a real world application in the domain of ambient assisted living. It discusses development issues involving the use of the platform JADE and integrating computational argumentation and web services. It also gives some feedback concerning the experience of engineering such systems, especially when integrated in a more complex system with other components, but also concerning the perception of real users when using the system in an everyday life context.','',1,'Nikolaos I. SpanoudakisPavlos Moraitis','springer/service oriented architecture security.csv','springer','\0'),(334,'Stateless security filtering of optical data signals: An approach based on code words','2013','','all-optical network; code words; optical logic gates; optical stateless filtering; optical traffic identifier; SOA','In this paper, we propose an optical stateless filtering architecture which allows the traffic filtering at the optical layer. Indeed, each traffic stream will be identified by a unique identifier composed of a set of code words. In the core node, a set of optical filtering rules will be applied to this traffic stream based on its corresponding identifier in order to accept or reject the traffic stream. The stateless filtering process is based on the logical comparison between the received traffic identifier and the optical filtering signal which are composed of a set of code words. The proposed architecture is composed by two main components. The first component is an encoder implemented in the edge node, which generates traffic stream identifiers. And, the second component is the optical stateless filtering module which is implemented in the core node. © 2013 IFIP.','',1,'Sliti M., Boudriga N.','scopus/soa security.csv','scopus','\0'),(335,'Alloy4SPV : A Formal Framework for Software Process Verification','2014','0','','Abstract In this paper we present a framework for software process verification called Alloy4SPV which uses a subset of UML2 Activity Diagrams as a process modeling language. In order to achieve software process verification, we i) define a formal model of our process modeling language using first-order logic, ii) we give it a formal semantics based on the fUML standard, and iii) we implement this formalization using the Alloy language [1]. In order to ease its adoption by process modelers, our framework comes with a graphical tool and a ready to use and customizable set of software process properties. We categorize these properties into two categories, syntactical and behavioral. We extend the set of behavioral properties we identified from the literature with two new categories that we defined, namely, organizational properties which relate to resource management and planning during process execution and business properties which are project/process specific properties.','',2,'Yoann LaurentReda BendraouSouheib BaarirMarie-Pierre Gervais','springer/bpel security.csv','springer',''),(336,'Risk assessment for a video surveillance system based on Fuzzy Cognitive Maps','2014','1',' Security Risk assessment Video surveillance Fuzzy cognitive maps','Abstract For various IT systems security is considered a key quality factor. In particular, it might be crucial for video surveillance systems, as their goal is to provide continuous protection of critical infrastructure and other facilities. Risk assessment is an important activity in security management; it aims at identifying assets, threats and vulnerabilities, analysis of implemented countermeasures and their effectiveness in mitigating risks. This paper discusses an application of a new risk assessment method, in which risk calculation is based on Fuzzy Cognitive Maps (FCMs) to a complex automated video surveillance system. FCMs are used to capture dependencies between assets and FCM based reasoning is applied to aggregate risks assigned to lower-level assets (e.g. cameras, hardware, software modules, communications, people) to such high level assets as services, maintained data and processes. Lessons learned indicate, that the proposed method is an efficient and low-cost approach, giving instantaneous feedback and enabling reasoning on effectiveness of security system.','Multimedia Tools and Applications',1,'Piotr SzwedPawel SkrzynskiWojciech Chmiel','springer/service oriented architecture security.csv','springer','\0'),(337,'Proceedings - 7th International Workshop on Modeling in Software Engineering, MiSE 2015','2015','','','The proceedings contain 14 papers. The topics discussed include: reconciling a component and process view; modularity for uncertainty; incremental and commutative composition of state-machine models of features; compositional reliability analysis for probabilistic component automata; a field study of modellers at work; ARCA - automated analysis of autoSAR meta-model changes; MASC: modelling architectural security concerns; towards executing dynamically updating finite-state controllers on a robot system; identifying instances of model design patterns and antipatterns using model clone detection; mining correlations of ATL model transformation and metamodel metrics; towards application and evolution of model-based heuristics for improving SOA service design; software modelling languages: a wish list; adding temporal intention dynamics to goal modeling: a position paper; and dice: quality-driven development of data-intensive cloud applications.','',1,'[No author name available]','scopus/soa security.csv','scopus',''),(338,'Secure and Authenticated Access to LLN Resources Through Policy Constraints','2015','0',' Body sensor networks Policy-based access control XACML SAML DPWS Web services Security','Abstract Ubiquitous devices comprising several resource-constrained sensors and actuators while having the long desired Internet connectivity, are becoming part of many solutions that seek to enhance user’s environment smartness and quality of living. Their intrinsic resource limitations however constitute critical requirements, such as security, a great challenge. When these nodes are associated with applications that might have an impact in user’s privacy or even become life threatening, the security issues are of primary concern. Access to these resources should be appropriately controlled to ensure that such wearable nodes are adequately protected. On the other hand, it is very important to not restrict access to only a very closed group of entities. This work presents a service oriented architecture that utilizes policy-based, unified, cross-platform and flexible access control to allow authenticated entities consume the services provided by wearable nodes while protecting their valuable resources.','',1,'Konstantinos RantosKonstantinos FysarakisOthonas SoultatosIoannis Askoxylakis','springer/service oriented architecture security.csv','springer',''),(339,'Enhancing Agent Intelligence through Evolving Reservoir Networks for Predictions in Power Stock Markets','2012','0',' Data Mining Power Stock Markets Reservoir Computing Multi-Agent System Neuroevolution','Abstract In recent years, Time Series Prediction and clustering have been employed in hyperactive and evolving environments –where temporal data play an important role– as a result of the need for reliable methods to estimate and predict the pattern or behavior of events and systems. Power Stock Markets are such highly dynamic and competitive auction environments, additionally perplexed by constrained power laws in the various stages, from production to transmission and consumption. As with all real-time auctioning environments, the limited time available for decision making provides an ideal testbed for autonomous agents to develop bidding strategies that exploit time series prediction. Within the context of this paper, we present Cassandra , a dynamic platform that fosters the development of Data-Mining enhanced Multi-agent systems. Special attention was given on the efficiency and reusability of Cassandra , which provides Plug-n-Play capabilities, so that users may adapt their solution to the problem at hand. Cassandra ’s functionality is demonstrated through a pilot case, where autonomously adaptive Recurrent Neural Networks in the form of Echo State Networks are encapsulated into Cassandra agents, in order to generate power load and settlement price prediction models in typical Day-ahead Power Markets . The system has been tested in a real-world scenario, that of the Greek Energy Stock Market.','',1,'Kyriakos C. ChatzidimitriouAntonios C. ChrysopoulosAndreas L. SymeonidisPericles A. Mitkas','springer/service oriented architecture security.csv','springer','\0'),(340,'Testing web services in the cloud','2012','','','Cloud Computing makes it possible for users to access a wide range of web services in the public domain and to embed these global services in their local applications. This promises to save a significant amount of individual development cost. The biggest obstacle to using this technology is the problem of trust. To gain trust in the services offered they have to be extensively tested, either by the user himself or by a trusted agent. This chapter deals with the testing of web services in the cloud. There are many similarities to testing web services in a local service-oriented architecture, but there are also significant differences. In a company specific SOA, testers can gain access to the source. This is not true of the cloud. There is no possibility of accessing the source. Therefore, testers must rely solely on the specification contained in the service level agreement - SLA - and the web service interface definition - WSDL or REST - to base their test upon. Testing in the cloud is strictly a black-box test. The goal of a cloud service test is also not to find errors but to assess the suitability of the service to the purpose of the user. It may be necessary to test several services in order to find that one best suited to the requirements of the user. To judge suitability it is necessary to define an ideal usage profile, including performance, security and other non-functional criteria, and to compare that with the actual profile of each potential service. For this both static and dynamic analysis methods must be applied. The chapter presents an automated approach to assessing cloud services and selecting that one most suitable to the user\'s application. © 2013, IGI Global.','',1,'Sneed H.M.','scopus/service oriented architecture security.csv','scopus','\0'),(341,'The impact of SOA on a system design for a telemedicine healthcare system','2015','0',' SOA healthcare system SOA in telemedicine system SOA Tele-Wound','Abstract Telemedicine \n systems have been rapidly increasing in number and size over the past decades. This increasing trend intensifies the need for tele-medicine in the area of national healthcare system. The increasing size of distributed telemedicine systems creates problems of data integration, vendor lock-in, and interoperability. In this paper, we present a next generation telemedicine system architecture, which is based on service oriented architecture (SOA). \n We believe SOA can resolve several problems in today’s telemedicine systems. In the current infrastructure of telemedicine, several problems have been identified such as users becoming limited to a single vendor. \n Therefore, we performed requirements analysis and evaluation to propose a robust solution to avoid the problem of vendor locking and interoperability.','Network Modeling Analysis in Health Informatics and Bioinformatics',1,'Asadullah Shaikh','springer/soa security.csv','springer',''),(342,'Distributed Accounting in Scope of Privacy Preserving','2013','0','','Abstract Accounting is an essential part of distributed computing infrastructures, regardless whether these are more service-driven like Clouds or more computing oriented like traditional Grid Computing environments. Those infrastructures have evolved over more than the last decade and additional. beside the further development towards service-oriented architectures, the business aspect of especially Cloud Computing solutions becomes more and more relevant. In this paper we focus on user-centric aspects like privacy preserving methods to hide the users behaviour and to collect only necessary information for billing, under the assumption that an accounting system has to be integrated in the computing infrastructure and that a central interface is still desirable for billing and financial clearing.','',1,'Marcus HilbrichRené Jäkel','springer/service oriented architecture security.csv','springer','\0'),(343,'Automatic Ontology User Profiling for Social Networks from URLs Shared','2013','0',' Twitter Social Networks Ontology RDF OWL NoSQL','Abstract User profiling, defined as the inference of user interests, intentions, characteristics, behaviors and preferences, is nowadays one of the most important keys in personalized services on Internet, such as segmented target advertisements. In this paper, we propose a scalable and automated technique for user ontology profiling in social networks by extracting URL content shared by users in tweets. The new approach models a user profile as a semantic ontology where user interests and intentions are represented. OpenDNS and DBpedia collective knowledge databases are utilized in order to find the interests and intentions categories of the user profile ontology, enhancing the performance of our method and taking the collective categorization of the websites. User profile ontology evolves constantly and is populated with assertions of individuals and relationships of interest and intention from these collective knowledge repositories. Experimental results indicate strongly that the proposed method automatically generates, correctly, the interests and intentions of a user profile.','',2,'Paula PeñaRafael Del HoyoJorge Vea-MurguíaCarlos GonzálezSergio Mayo','springer/bpel security.csv','springer','\0'),(344,'An Effective Model for Indirect Trust Computation in Pervasive Computing Environment','2014','1',' Recommendation model Pervasive computing Malicious recommendation detection','Abstract The performance of indirect trust computation models (based on recommendations) can be easily compromised due to the subjective and social-based prejudice of the provided recommendations. Eradicating the influence of such recommendation remains an important and challenging issue in indirect trust computation models. An effective model for indirect trust computation is proposed which is capable of identifying dishonest recommendations. Dishonest recommendations are identified by using deviation based detecting technique. The concept of measuring the credibility of recommendation (rather than credibility of recommender) using fuzzy inference engine is also proposed to determine the influence of each honest recommendation. The proposed model has been compared with other existing evolutionary recommendation models in this field, and it is shown that the model is more accurate in measuring the trustworthiness of unknown entity.','Wireless Personal Communications',1,'Naima IltafAbdul GhafoorUsman ZiaMukhtar Hussain','springer/service oriented architecture security.csv','springer','\0'),(345,'Mobile application webservice performance analysis: Restful services with JSON and XML','2011','2','Android; JSON; Mobile Applications; Performance; Webservices; XML','Mobile devices are growing on a pace without precedents. It is estimated that by 2013 there will be about 1.1 Billion Smartphones on use. This quick growth on Smartphone numbers and the appearance of marketplaces where mobile applications can easily be bought or downloaded is turning mobile development into a big market. As the number of users grows in a fast pace, so does the demand for new applications, leading to faster development cycles in order to produce faster results. In many cases, mobile applications are connected to pre-existing systems and it is necessary to find a quick, but stable, secure and light way to establish a communication between the mobile application and the pre-existing background system. This article aims to show how restful Webservices, combined with JSON, may help developers to fill this gap while keeping security, stability and speed. © 2011 Springer-Verlag.','',1,'Rodrigues C., Afonso J., Tomé P.','scopus/webservice security.csv','scopus','\0'),(346,'CDCGM Track Report','2013','1','Cloud Computing;Distributed Intelligent Managed Element Networks;Distributed Services Management;Many-core Servers;Parallel Computing;Services Virtualization;grid computing','The Convergence of distributed clouds, grids and their management conference track focuses on virtualization and cloud computing as they enjoy wider acceptance. A recent IDC report predicts that by 2016, $1 of every $5 will be spent on cloud-based software and infrastructure. Three papers address key issues in cloud computing such as resource optimization and scaling to address changing workloads and energy management. In addition, the DIME network architecture proposed in WETICE2010 is discussed in two papers in this conference, both showing its usefulness in addressing fault, configuration, accounting, performance and security of service transactions with in the service oriented architecture implementation and also spanning across multiple clouds. While virtualization has brought resource elasticity and application agility to the services infrastructure management, the resulting layers of orchestration and the lack of end-to-end service visibility and control spanning across multiple service provider infrastructure have added an alarming degree of complexity. Hopefully, reducing the complexity in the next generation datacenters will be a major research topic in this conference.','Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE), 2013 IEEE 22nd International Workshop on',1,'R. Mikkilineni; G. Morana','ieee/service oriented architecture security.csv','ieee','\0'),(347,'Formal Modeling of Mobile Computing Systems Based on Ambient Abstract State Machines','2013','1','','Abstract In this paper, we present a high-level definition of a formal method in terms of ambient abstract state machine rules which makes it possible to describe formal models of mobile computing systems and complex service oriented architectures in two abstraction layers. This means that while the algorithms and local interactions of executable components ( agents ) are specified in terms of abstract state machines; the long-term interactions as well as movements of various components via various administrative domains are given in terms of ambient calculus in our approach.','',1,'Károly Bósa','springer/service oriented architecture security.csv','springer','\0'),(348,'Using the NIST Reference Model for Refining Logical Architectures','2014','0',' Cloud Computing Logical Architectures Reference Model NIST Model Requirements','Abstract The emergence of the Internet as a ubiquitous means of communication fostered the growth of new business and service models based on Cloud Computing. Information and Communication Technology companies use reference models to define their Cloud Computing strategies. NIST Cloud Computing Reference Architecture is one of these reference models that assist in the design of business, services, and architecture models. This paper aims to present the use of NIST reference architecture in the design of Cloud Computing architectures by employing a method that enables the application of the reference architecture to the refinement of logical architectures.','',1,'António PereiraRicardo J. MachadoJosé Eduardo FernandesJuliana TeixeiraNuno SantosAna Lima','springer/service oriented architecture security.csv','springer','\0'),(349,'Service-oriented trust and reputation architecture','2012','','','As the Future Internet arrives, more complex, service-based applications are spreading. These applications pose several challenges, including the huge amount of entities that must interact and their heterogeneity. The success of these applications depends on the collaboration and communication of these entities, that might belong to different organizations and administrative domains. Therefore, trust and reputation become two crucial issues. We propose the specification and design of a service-based security architecture that stresses the delivery of trust and reputation services to any application that might require them.','',1,'Moyano F., Fernandez-Gago C., Lopez J.','scopus/service oriented architecture security.csv','scopus','\0'),(350,'Patterns and tools for business process monitoring customization','2015','0',' Business process Monitoring Customization','Abstract In a cross-organizational service-based process provisioning scenario, one provider is likely to execute a given business process to serve several customers. Each customer may hold different expectations about the way this process can be monitored. We present a solution allowing the provider to support the requirements of different customers on the monitoring of a given process, i.e., offering them the opportunity to customize the way a process will be monitored. We propose a multi-dimensional classification model of patterns for process monitoring and rules to compose the patterns to design customized monitoring infrastructures. The fit for purpose of the patterns is evaluated empirically, whereas the feasibility of our solution is demonstrated by a tool supporting process monitoring customization adhering to our pattern design and composition methodology.','Service Oriented Computing and Applications',2,'Marco ComuzziSamuil Angelov','springer/bpel security.csv','springer',''),(351,'Design and implementation of mobile digital campus based on mobile internet','2013','0','WAP;mobile digital campus;mobile internet;web application','Mobile digital campus construction of Three Gorges University is taken as an example to discuss the meanings of mobile digital campus, and how to design and implement mobile digital campus. Mobile digital campus is a development direction, which can not be ignored in the construction of mobile digital campus in the future, and it promotes functions and really does effective extension for traditional digital campus. In this paper, from the beginning of construction of mobile digital campus of Three Gorges University, firstly, the importance and necessity is put forward for mobile digital campus, secondly, the whole architecture of mobile digital campus is designed, including WAP portal and relative interfaces, thirdly, implementation technology of mobile portal and mobile application are introduced, finally, analysis and consideration are raised from aspects of security and reliability, meanwhile, combined with practical experience, development direction is also discussed.','Mechatronic Sciences, Electric Engineering and Computer (MEC), Proceedings 2013 International Conference on',1,'Rui Zhang; Xiyan Wu; Zhipin Dan','ieee/service oriented architecture security.csv','ieee','\0'),(352,'A property-based testing framework for encryption programs','2014','0',' software testing encryption programs test oracles metamorphic testing (MT)','Abstract In recent years, a variety of encryption algorithms were proposed to enhance the security of software and systems. Validating whether encryption algorithms are correctly implemented is a challenging issue. Software testing delivers an effective and practical solution, but it also faces the oracle problem (that is, under many practical situations, it is impossible or too computationally expensive to know whether the output for any given input is correct). In this paper, we propose a property-based approach to testing encryption programs in the absence of oracles. Our approach makes use of the so-called metamorphic properties of encryption algorithms to generate test cases and verify test results. Two case studies were conducted to illustrate the proposed approach and validate its effectiveness. Experimental results show that even without oracles, the proposed approach can detect nearly 50% inserted faults with at most three metamorphic relations (MRs) and fifty test cases.','Frontiers of Computer Science',1,'Chang-ai SunZuoyi WangGuan Wang','springer/soa security.csv','springer','\0'),(353,'Data flow-oriented process mining to support security audits','2012','1','','The automated execution of dynamically-evolving business processes in service-oriented architectures requires audit methods to assert that they fulfill required security properties. Process mining techniques can provide models for the actual process behavior, but mostly disregard the dynamics of processes running in highly flexible environments and neglect the data flow perspective. This research plan is on novel data-oriented mining techniques to tackle these shortcomings in order to support effective security audits. © 2012 Springer-Verlag.','',1,'Stocker T.','scopus/service oriented architecture security.csv','scopus','\0'),(354,'Interoperability Description of Web Services Based Application Servers','2012','0',' Interoperability Distributed programming Web services System integration and implementation','Abstract Web services standards were designed to enable interoperability of heterogeneous application servers in the Service Oriented Architecture. Although the standards proved to be highly successful, there are still difficulties in effective services integration. The paper presents a methodology that enables description of application servers interoperability in order to improve the service integration process. The methodology proposes a systematic classification of Web services standards, versions and configuration options, and uses the classification for interoperability rating. Concrete integrations are rated by developers that specify integration scope, configuration complexity and required expertise level. The methodology was implemented in a web system that enables definition of standards and configuration options as well as rating of integrations. As a part of the research, interoperability experiments were executed and registered in the system.','',1,'Paweł L. Kaczmarek','springer/service oriented architecture security.csv','springer','\0'),(355,'An Automated Semantically Enabled Fuzzy Based SLA in Cloud Computing Environment Using Multi-agent System','2015','0',' Service level agreement (SLA) Multi-agent system Fuzzy ontology Quality of service (QoS)','Abstract In order to make reservations for cloud services, consumers and providers need to work on Service Level Agreements (SLAs) to achieve negotiation. Since cloud computing represents a category of distributed system, negotiation should be established between service providers and consumers in a faster and reliable manner. Automated Negotiation is such a process that is closely associated with Multi-agent Systems. We propose A Negotiation system using fuzzy ontology is addressed by us in this research work where the cloud service specification and consumer requirements with vagueness are stored on cloud ontology. Here, each party needs to choose its own agent in order for negotiation. Agents have both consumer’s and provider’s details and their hard and soft preferences for a particular service. Agents need to negotiate on the basis of a set of Quality of Service (QoS) parameters like duration, availability, price etc. as required by the user. On completion of the negotiation process, user receives a feedback from the agent regarding the probability of negotiation. This negotiation framework is dynamic and efficient in nature.','',1,'Manoranjan ParhiBinod Kumar PattanayakManas Ranjan Patra','springer/service oriented architecture security.csv','springer',''),(356,'A decentralized approach for implementing identity management in cloud computing','2012','3','cloud computing; grouping algorithm; identity management (IdM); security; service oriented architecture (SOA)','Cloud computing is the next generation of computing paradigm. Along with cloud computing, many related problems come up. And these problems in turn slow the speed of the development of cloud computing down. Among these problems, e.g. interoperability and privacy, identity management and security are strong concerned. Many researchers and enterprises have already done a lot to optimize the identity management and strengthen the security in cloud computing. Most of these studies focus on the usability of identity management and various kinds of method to help improve security. But in this paper, we do some research from a new angle. While the federated solution of identity management helps relieve many problems, it\'s adopted by many platforms and enterprises. The general approach for deploying identity management is a centralized component processing authentication and authorization requests. But with the cloud growing in scale and the increasing number of users, this centralized solution will be the bottleneck of the cloud. In this paper, we propose a decentralized approach for implementing identity management in service oriented architecture in cloud computing and a grouping algorithm as the deploy strategy. Security is another problem involved in this paper. Since many researchers have done many detailed and fruitful studies in security, the security solution illustrated in this paper is specific in the proposed architecture. © 2012 IEEE.','',1,'Chen J., Wu X., Zhang S., Zhang W., Niu Y.','scopus/service oriented architecture security.csv','scopus','\0'),(357,'Model-Based Adaptation of Software Communicating via FIFO Buffers','2015','0','','Abstract Software Adaptation is a non-intrusive solution for composing black-box components or services (peers) whose individual functionality is as required for the new system, but that present interface mismatch, which leads to deadlock or other undesirable behaviour when combined. Adaptation techniques aim at automatically generating new components called adapters. All the interactions among peers pass through the adapter, which acts as an orchestrator and makes the involved peers work correctly together by compensating for mismatch. Most of the existing solutions in this field assume that peers interact synchronously using rendezvous communication. However, many application areas rely on asynchronous communication models where peers interact exchanging messages via buffers. Generating adapters in this context becomes a difficult problem because peers may exhibit cyclic behaviour, and their composition often results in infinite systems. In this paper, we present a method for automatically generating adapters in asynchronous environments where peers interact using FIFO buffers.','',2,'Carlos CanalGwen Salaün','springer/bpel security.csv','springer',''),(358,'Modeling and enforcing secure object flows in process-driven SOAs: An integrated model-driven approach','2014','5','Model-driven development; Process modeling; Secure object flows; Security engineering; Service-oriented architecture; SoaML; UML; Web services','In this paper, we present an integrated model-driven approach for the specification and the enforcement of secure object flows in process-driven service-oriented architectures (SOA). In this context, a secure object flow ensures the confidentiality and the integrity of important objects (such as business contracts or electronic patient records) that are passed between different participants in SOA-based business processes. We specify a formal and generic metamodel for secure object flows that can be used to extend arbitrary process modeling languages. To demonstrate our approach, we present a UML extension for secure object flows. Moreover, we describe how platform-independent models are mapped to platform-specific software artifacts via automated model transformations. In addition, we give a detailed description of how we integrated our approach with the Eclipse modeling tools. © 2012 Springer-Verlag.','',1,'Hoisl B., Sobernig S., Strembeck M.','scopus/service oriented architecture security.csv','scopus','\0'),(359,'Building European software architecture community: how far have we come?','2013','1','','','Software & Systems Modeling',1,'Muhammad Ali BabarIan GortonFlavio Oquendo','springer/service oriented architecture security.csv','springer','\0'),(360,'Special issue on Semantic Information Management guest editorial','2013','0','','','Information Systems Frontiers',1,'Gabriele KotsisIsmail Khalil','springer/service oriented architecture security.csv','springer','\0'),(361,'An Efficient Search Strategy for Service Provider Selection in Complex Social Networks','2012','3','path search;service provider selection;social networks;trustworthiness','The trustworthiness of service providers plays an important role when a consumer selects a service. This paper studies the problem of how to efficiently search and select trustworthy service providers for users in social networks consisting of service providers and consumers. A trust value between two participants can be derived by existing methods from the optimal trust path between them in a social network. When more than one trust factors are taken into consideration, the exact optimal trust path selection algorithm is NP-complete. Although several heuristic algorithms have been proposed to find approximate solutions, their time complexities are still too high to be acceptable in practice, especially when they are used in very large scale social networks. Focusing on reducing trust path searching time, this paper proposes an efficient preprocessing-based search strategy. It exploits structural properties of the social networks and builds an advanced data structure from preprocessing, which can be used to simplify and accelerate the trust path searching. Experimental results show our strategy is very efficient and nearly achieves a constant time complexity. The computed trustworthiness based on our method has excellent performance close to that of the best existing heuristic algorithm.','Services Computing (SCC), 2012 IEEE Ninth International Conference on',1,'Y. Xu; J. Liu; M. Tang; B. Cao; X. Liu','ieee/service oriented architecture security.csv','ieee','\0'),(362,'Autonomic care platform for optimizing query performance','2013','0','','Abstract Background As the amount of information in electronic health care systems increases, data operations get more complicated and time-consuming. Intensive Care platforms require a timely processing of data retrievals to guarantee the continuous display of recent data of patients. Physicians and nurses rely on this data for their decision making. Manual optimization of query executions has become difficult to handle due to the increased amount of queries across multiple sources. Hence, a more automated management is necessary to increase the performance of database queries. The autonomic computing paradigm promises an approach in which the system adapts itself and acts as self-managing entity, thereby limiting human interventions and taking actions. Despite the usage of autonomic control loops in network and software systems, this approach has not been applied so far for health information systems. Methods We extend the COSARA architecture, an infection surveillance and antibiotic management service platform for the Intensive Care Unit (ICU), with self-managed components to increase the performance of data retrievals. We used real-life ICU COSARA queries to analyse slow performance and measure the impact of optimizations. Each day more than 2 million COSARA queries are executed. Three control loops, which monitor the executions and take action, have been proposed: reactive, deliberative and reflective control loops. We focus on improvements of the execution time of microbiology queries directly related to the visual displays of patients’ data on the bedside screens. Results The results show that autonomic control loops are beneficial for the optimizations in the data executions in the ICU. The application of reactive control loop results in a reduction of 8.61% of the average execution time of microbiology results. The combined application of the reactive and deliberative control loop results in an average query time reduction of 10.92% and the combination of reactive, deliberative and reflective control loops provides a reduction of 13.04%. Conclusions We found that by controlled reduction of queries’ executions the performance for the end-user can be improved. The implementation of autonomic control loops in an existing health platform, COSARA, has a positive effect on the timely data visualization for the physician and nurse.','BMC Medical Informatics and Decision Making',1,'Kristof SteurbautSteven LatréJohan DecruyenaereFilip De Turck','springer/service oriented architecture security.csv','springer','\0'),(363,'Experiences with Arthron for Live Surgery Transmission in Brazilian Telemedicine University Network','2013','0',' New Technology and its Usefulness eHealth and Telemedicine Systems','Abstract The increasing network bandwidth capacity and the diminishing costs of related services have led to a rising number of applications in the field of Information and Communication Technology. A special case is applications based on video streaming. Telemedicine can be highlighted in some scenarios for applying this technology, such as clinical sessions, second medical opinion, interactive lessons or virtual conferences. These scenarios often imply a dedicated transmission environment. A restriction in such solutions is the inability to handle multiple video streams. Thus, this paper presents a low-cost infrastructure for video collaboration in healthcare and based on open technologies. The proposed infrastructure enables remote management of simultaneous multiple streams. We also discuss results of experiments held in the Lauro Wanderley Academic Hospital, Brazil. One of the results is the contribution for teaching experiences, particularly by allowing students to remotely regard surgical procedures and providing real-time interaction. Finally, we present new prospects for using the developed technology on other applications in Telemedicine and Telepresence.','',1,'Tatiana A. TavaresGustavo H. M. B. MottaGuido Souza FilhoErick Mello','springer/webservice security.csv','springer','\0'),(364,'Recover Fault Services via Complex Service-to-Node Mappings in Wireless Sensor Networks','2015','1',' WSN Faulty recovery Context awareness Knowledge granularity Bloom Filter','Abstract With the motivation of seamlessly extending wireless sensor networks to the external environment, service-oriented architecture comes up as a promising solution. However, as sensor nodes are failure prone, this consequently renders the whole wireless sensor network to seriously faulty. When a particular node is faulty, the service on it should be migrated into those substitute sensor nodes that are in a normal status. Currently, two kinds of approaches exist to identify the substitute sensor nodes: the most common approach is to prepare redundancy nodes, though the involved tasks such as maintaining redundancy nodes, i.e., relocating the new node, lead to an extra burden on the wireless sensor networks. More recently, other approaches without using redundancy nodes are emerging, and they merely select the substitute nodes in a sensor node’s perspective i.e., migrating the service of faulty node to it’s nearest sensor node, though usually neglecting the requirements of the application level. Even a few work consider the need of the application level, they perform at packets granularity and don’t fit well at service granularity. In this paper, we aim to remove these limitations in the wireless sensor network with the service-oriented architecture. Instead of deploying redundancy nodes, the proposed mechanism replaces the faulty sensor node with consideration of the similarity on the application level, as well as on the sensor level. On the application level, we apply the Bloom Filter for its high efficiency and low space costs. While on the sensor level, we design an objective solution via the coefficient of a variation as an evaluation for choosing the substitute on the sensor level.','Journal of Network and Systems Management',1,'Qian LiWenjia NiuGang LiEndong TongYue HuPing LiuLi Guo','springer/soa security.csv','springer',''),(365,'Systematic literature review of the objectives, techniques, kinds, and architectures of models at runtime','2016','0',' Models Runtime Literature review','Abstract In the context of software development, models provide an abstract representation of a software system or a part of it. In the software development process, they are primarily used for documentation and communication purposes in analysis, design, and implementation activities. Model-Driven Engineering (MDE) further increases the importance of models, as in MDE models are not only used for documentation and communication, but as central artefacts of the software development process. Various recent research approaches take the idea of using models as central artefacts one step further by using models at runtime to cope with dynamic aspects of ever-changing software and its environment. In this article, we analyze the usage of models at runtime in the existing research literature using the Systematic Literature Review (SLR) research method. The main goals of our SLR are building a common classification and surveying the existing approaches in terms of objectives, techniques, architectures, and kinds of models used in these approaches. The contribution of this article is to provide an overview and classification of current research approaches using models at runtime and to identify research areas not covered by models at runtime so far.','Software & Systems Modeling',2,'Michael SzvetitsUwe Zdun','springer/bpel security.csv','springer',''),(366,'RT-SPDM: Real-time security, privacy and dependability management of heterogeneous systems','2015','1','DPWS; Event calculus; Formal methods; JADE; Jess; Metrics composition; OSGi; Policy-based access control; Security validation; SOAs','The need to manage embedded systems, brought forward by the wider adoption of pervasive computing, is particularly vital in the context of secure and safety-critical applications. This work presents RT-SPDM, a framework for the real-time management of devices populating ambient environments. The proposed framework utilizes a formally validated approach to reason the composability of heterogeneous embedded systems, evaluate their current security, privacy and dependability levels based on pre-defined metrics, and manage them in real-time. An implementation of Event Calculus is used in the Jess rule engine in order to model the ambient environment context and the rule-based management procedure. The reasoning process is modeled as an agent’s behavior and applied on an epistemic multi-agent reasoner for ambient intelligence applications. Agents monitor distinct embedded systems and are deployed as OSGi bundles to enhance the real-time management of embedded devices. A Service Oriented Architecture is adopted, through the use of the Devices Profile for Web Services standard, in order to provide seamless interaction between the framework’s entities, which exchange well-formed information, determined by the OASIS CAP standard. Proof-of-concept implementations of all entities are developed, also investigating user-friendly GUIs for both the front-end and back-end of the framework. A preliminary performance evaluation on typical embedded devices confirms the viability of the proposed approach. © Springer International Publishing Switzerland 2015.','',1,'Fysarakis K., Hatzivasilis G., Askoxylakis I., Manifavas C.','scopus/service oriented architecture security.csv','scopus',''),(367,'Using Social Network Technology to Provide e-Administration Services as Collaborative Tasks','2012','1',' Social Network Collaborative Tasks E-administration Recommendation Mechanism AI Planning OpenSocial','Abstract This paper presents an approach employing social network technology to facilitate e-administration within collaborative communities. E-administration services are provided through task coordination between specific participants. Task activities are performed by gadgets acting on behalf of participants. Task assignment is based on participant roles and relations in the community, explicitly defined within the social network. Interaction between gadgets is governed by rules based on participant roles, dictating the obligations and responsibilities of each party. Whenever the execution of a certain gadget depends on the previous execution of a series of other gadgets, a recommendation mechanism employing AI planning is used to provide a plan according to which gadgets should be combined. The implementation of a social network platform supporting e-administration based on extending the OpenSocial API is also presented. The proposed platform has been utilized to develop a social network for the academic community, featuring pilot implementation of specific e-administration services.','',2,'Ourania HatziMara NikolaidouPanagiotis Katsivelis-PerakisValentino HudhraDimosthenis Anagnostopoulos','springer/bpel security.csv','springer','\0'),(368,'Managing Expectations: Runtime Negotiation of Information Quality Requirements in Event-Based Systems','2014','1',' event-based systems quality of information self-adaptive systems runtime negotiation malleability','Abstract Interconnected smart devices in the Internet of Things (IoT) provide fine-granular data about real-world events, leveraged by service-based systems using the paradigm of event-based systems (EBS) for invocation. Depending on the capabilities and state of the system, the information propagated in EBS differs in content but also in properties like precision, rate and freshness. At runtime, consumers have different dynamic requirements about those properties that constitute quality of information (QoI) for them. Current approaches to support quality-related requirements in EBS are either domain-specific or limited in terms of expressiveness, flexibility and scope as they do not allow participants to adapt their behavior. We introduce the generic concept of expectations to express, negotiate and enforce arbitrary requirements about information quality in EBS at runtime. In this paper, we present the model of expectations, capabilities and feedback based on generic properties. Participants express requirements and define individual tradeoffs between them as expectations while system features are expressed as capabilities. We discuss the algorithms to (i) negotiate requirements at runtime in the middleware by matching expectations to capabilities and (ii) adapt participants as well as the middleware. We illustrate the architecture for runtime-support in industry-strength systems by describing prototypes implemented within a centralized and a decentralized EBS.','',1,'Sebastian FrischbierPeter PietzuchAlejandro Buchmann','springer/service oriented architecture security.csv','springer','\0'),(369,'Security issues in cloud environments: a survey','2014','30',' Clouds Cloud computing Issues Security Survey','Abstract In the last few years, the appealing features of cloud computing have been fueling the integration of cloud environments in the industry, which has been consequently motivating the research on related technologies by both the industry and the academia. The possibility of paying-as-you-go mixed with an on-demand elastic operation is changing the enterprise computing model, shifting on-premises infrastructures to off-premises data centers, accessed over the Internet and managed by cloud hosting providers. Regardless of its advantages, the transition to this computing paradigm raises security concerns, which are the subject of several studies. Besides of the issues derived from Web technologies and the Internet, clouds introduce new issues that should be cleared out first in order to further allow the number of cloud deployments to increase. This paper surveys the works on cloud security issues, making a comprehensive review of the literature on the subject. It addresses several key topics, namely vulnerabilities, threats, and attacks, proposing a taxonomy for their classification. It also contains a thorough review of the main concepts concerning the security state of cloud environments and discusses several open research topics.','International Journal of Information Security',1,'Diogo A. B. FernandesLiliana F. B. SoaresJoão V. GomesMário M. FreirePedro R. M. Inácio','springer/soa security.csv','springer',''),(370,'Enabling DevOps Collaboration and Continuous Delivery Using Diverse Application Environments','2015','0',' Continuous delivery Pipeline Requirements Topology DevOps','Abstract Aiming to provide the means for efficient collaboration between development and operations personnel, the DevOps paradigm is backed by an increasingly growing collection of tools and reusable artifacts for application management. Continuous delivery pipelines are established based on these building blocks by implementing fully automated, end-to-end application delivery processes, which significantly shorten release cycles to reduce risks and costs as well as gaining a critical competitive advantage. Diverse application environments need to be managed along the pipeline such as development, build, test, and production environments. In this work we address the need for systematically specifying and maintaining diverse application environment topologies enriched with environment-specific requirements in order to implement continuous delivery pipelines. Beside the representation of such requirements, we focus on their systematic and collaborative resolution with respect to the individual needs of the involved application environments.','',1,'Johannes WettingerVasilios AndrikopoulosFrank Leymann','springer/microservice security.CSV','springer',''),(371,'Decentralized Governance of Distributed Systems via Interaction Control','2012','0','','Abstract This paper introduces an abstract reference model, called interaction control (IC), for the governance of large and heterogeneous distributed systems. This model goes well beyond conventional access control, along a number of dimensions. In particular, the IC model has the following characteristics: (1) it is inherently decentralized, and thus scalable even for a wide range of stateful policies; (2) it is very general, and not biased toward any particular type of policies; thus providing a significant realization of the age-old principle of separation of policy from mechanism ; and (3) it enables flexible, composition-free, interoperability between different policies. The IC model, which is an abstraction of a mechanism called law-governed interaction (LGI), has been designed as a minimalist reference model that can be reified into a whole family of potential control mechanisms that may support different types of communication, with different performance requirements and for different application domains.','',2,'Naftaly H. Minsky','springer/bpel security.csv','springer','\0'),(372,'Introduction to the Fifth Workshop on Non-Functional Properties and Service Level Agreements Management in Service-Oriented Computing (NFPSLAM-SOC 2011)','2012','0','','Abstract Nowadays businesses as well as the Web require information to be available in real-time in order to reply to requests, make effective decisions and generally remain competitive. This in turn requires data to be processed in realtime. In general in service-oriented architecture (SOA) one is less concerned with latency in data processing. Clearly, there are investigations of service-level agreements (SLA) and quality of service (QoS) to guarantee service delivery. Research around non-functional properties and service-level agreements for serviceoriented computing has reached a level of maturity. There are approaches for describing properties, managing SLAs and even for selecting and composing services based on NFPs. Beyond these classical topics SOA inspired extensions are enabling new and creative domains like the Internet of Things, real-time business or real-time Web. These new domains impose new requirements on SOA, such as a huge data volume, mediation between various data structures and a large number of sources that need to be procured, processed and provided. Questions like how to pick the right service out of tens of thousands of services if we talk about sensor networks or how to provide results with almost near zero-latency describe actual questions and challenges we are currently facing. Therefore, we have to look into new ways for processing data, converting and composing data coming from various sources and for enabling an easy and lightweight way to impose it on various sets of devices.','',1,'Flavio De PaoliIoan TomaCarlos PedrinaciMarcel Tilly','springer/service oriented architecture security.csv','springer','\0'),(373,'A software system infrastructure and integrated service implementation model of manufacturing integrated service platform','2012','5','Distributed software architecture; Electronic business service; Implementation model; Integrated service; Preponderant resource sharing; Service-oriented architecture; Virtual design and manufacture; Web service','For expediently integrating service partners and software modules to enhance the openness and service level of the manufacturing integrated service platform, the browser/server/database architecture is presented as its software architecture, on this basis, its function structure is divided into preponderant manufacturing resource sharing system, intelligentized and independent design system for the industry, virtual design and manufacture center, electronic business and logistics service system etc, some of these modules are emphatically described. And based on SOA service model and Web Service architecture, integrated service implementation model of manufacturing integrated service platform is established. This solution has effectively integrated hardware and software, service providers, service consumers, service supporters and function modules of the platform. So the thirdparty operators can provide manufacturing enterprises with many integrated services, example for innovative design and manufacture of key products, merchandise catalogue services, security and authentication services, electronic payment services, logistics information services, sharing and utilizing of preponderant manufacturing resources. It is easily learning, using and extending in the future, and breaks through the traditional service mode which is based on information delivery model.','',1,'Xie P., Rui Z., Cao J.','scopus/service oriented architecture security.csv','scopus','\0'),(374,'Integrated care concept using smart items and cloud infrastructure','2015','','BPMN; Cloud computing; Cloud security; Health care; Sensors; Smart items','In this paper, we explain the OpSIT approach of an integrated cloud system targeting health care facilities and their care staff. Main objective is providing a platform that integrates different smart items in order to support care processes. Therefore, knowledge of the business processes and their related tasks is highly necessary and can be properly gained with the use of Business Process Modeling Notation. We present two independent use cases which are integrated with a secure hybrid cloud system using different access levels and mechanisms, smart gateways for pre-processing and smart items for measuring. The considered smart items are smart blister dispenser, smart emergency button and smart watch. © 2015 The Authors.','',2,'Schubert J., Ghulam S., Prieto-González L.','scopus/bpmn security.csv','scopus',''),(375,'Revisiting lower and upper bounds for selective decommitments','2013','4','','In [6,7], Dwork et al. posed the fundamental question of existence of commitment schemes that are secure against selective opening attacks (SOA, for short). In [2] Bellare, Hofheinz, and Yilek, and Hofheinz in [13] answered it affirmatively by presenting a scheme which is based solely on the non-black-box use of a one-way permutation needing a super-constant number of rounds. This result however opened other challenging questions about achieving a better round complexity and obtaining fully black-box schemes using underlying primitives and code of the adversary in a black-box manner. Recently, in TCC 2011, Xiao ([23]) investigated on how to achieve (nearly) optimal SOA-secure commitment schemes where optimality is in the sense of both the round complexity and the black-box use of cryptographic primitives. The work of Xiao focuses on a simulation-based security notion of SOA. Moreover, the various results in [23] focus only on either parallel or concurrent SOA. In this work we first point out various issues in the claims of [23] that actually re-open several of the questions left open in [2,13]. Then, we provide new lower bounds and concrete constructions that produce a very different state-of-the-art compared to the one claimed in [23]. © 2013 International Association for Cryptologic Research.','',1,'Ostrovsky R., Rao V., Scafuro A., Visconti I.','scopus/soa security.csv','scopus','\0'),(376,'Prognosis: Cloudy with SAAS','2012','0','','Most of the IT industry recognized the power of cloud and grid computing. Next generation of SAAS applications is already drastically increasing business performance and offers unimaginable information integration, fusing with new and existing applications, leveraging newest social communication platforms and professional services. This new wave of global IT infrastructure is rapidly changing the way the users work, think and collaborate. New web technologies like HTML5 and sophisticated JavaScript libraries are providing rich user interfaces which perform like classical desktop systems and in combination with scalable and flexible architecture open new possibilities for better, faster and more controlled integration of information sources. This brings some challenges and issues which must be addressed before potential information loss, security vulnerability or unintended sharing. How will next generation of software look like and where is it shifting to? Several answers are emerging, let\'s take a look.','MIPRO, 2012 Proceedings of the 35th International Convention',1,'B. Kraut','ieee/service oriented architecture security.csv','ieee','\0'),(377,'An information-theoretic treatment of passive haptic media','2016','0',' Haptic rendering Information theory Haptic information loss Haptic filter Haptic coding','Abstract Haptic rendering has been long considered as the process of estimating the force that stems from the interaction of a user and an object. Even if this approach follows the principles of natural haptic interaction, it places severe limitations in processing haptic media. This paper presents an information theoretic framework that aims to provide a new view of haptic rendering that can accommodate for open-loop synthetic haptic media, where interaction-based rendering is a special case. As a result, using the proposed information-theoretic approach, the haptic signal can be precomputed as a force field, stored and then filtered by taking into account device and perceptual capabilities of the receiver in order to lower the required bandwidth of the resulting stream, thus opening new possibilities for the representation and processing of haptic media.','Multimedia Tools and Applications',1,'Konstantinos MoustakasAris S. Lalos','springer/soa security.csv','springer',''),(378,'Novel hybrid WDM/TDM PON architectures to manage flexibility in optical access networks','2013','0',' Optical access PON architectures Hybrid WDM/TDM Flexibility Dynamic bandwidth allocation','Abstract Different hybrid WDM/TDM PON architectures are compared in terms of flexibility, simplicity (affecting the cost), insertion loss (affecting the reach) and security. Special attention is given to the flexibility aspect in next generation optical access networks by designing different architectures with a different degree of flexibility, which are able to cope with different ranges of dynamic bandwidth allocation (DBA) possibilities. This paper assesses the degree of architectural flexibility needed to deal with some important flexibility advantages. It is shown that mostly a partially flexible architecture fulfils the needs. The architectures are then further evaluated from a cost and reach perspective. In this way, we provide a complete comparison considering all the key aspects of access network design. It is shown that a hybrid WDM/TDM PON with a partially flexible architecture in the first remote node can be an interesting candidate for next-generation optical access networks.','Telecommunication Systems',1,'Bart LannooGoutam DasAbhishek DixitDidier ColleMario PickavetPiet Demeester','springer/soa security.csv','springer','\0'),(379,'An Adaptive Enterprise Service Bus Infrastructure for Service Based Systems','2014','0',' enterprise service bus service-based systems adaptation mediation','Abstract Service-based systems (SBS) increasingly need adaptation capabilities to agilely respond to unexpected changes (e.g. regarding quality of service). The Enterprise Service Bus (ESB), a recognized infrastructure to support the development of SBS, provides native mediation capabilities (e.g. message transformation) which can be used to perform adaptation actions. However, the configuration of these capabilities cannot usually be performed at runtime. To deal with this limitation, Adaptive ESB Infrastructures have been proposed which leverage their mediation capabilities to deal with adaptation requirements in SBSs in an automatic and dynamic way at runtime. This paper presents a JBossESB-based implementation of an Adaptive ESB Infrastructure and demonstrates its operation by describing their main functionalities. The paper also presents an evaluation of the implemented solution.','',1,'Laura GonzálezJorge Luis LabordeMatías GalnaresMauricio FenoglioRaúl Ruggia','springer/service oriented architecture security.csv','springer','\0'),(380,'Architecting Web Service Attack Detection Handlers','2012','2','messaging attacks;security;web services','There is a wealth of research on web service attack types and different techniques to mitigate them. However, there is little discussion on reusable methods for implementing these known techniques. In this paper, we introduce two handler architectures that can be reused to implement a broad set of known attack countermeasures. While structurally similar, the architectures differ in the information they require for attack detection, in the needed changes to or restructuring of the message and its content, and in their invocation order among other handlers deployed on the application server and used by the web service. We present the handler architecture designs and how they address the specific web service attack types. We discuss the benefits of their attachment to the Web service. Also, we cover their implementation and deployment details on a JBoss application server and provide a case study to document the results of test runs.','Web Services (ICWS), 2012 IEEE 19th International Conference on',1,'A. Andrekanic; R. Gamble','ieee/service oriented architecture security.csv','ieee','\0'),(381,'An Industrial Control Systems incident response decision framework','2015','','','The integration of Industrial Control Systems (ICS) with Information and Communication Technologies (ICT) systems has resulted in tremendous increase in the number of ICS security incidents. Current ICS incident response practices can hardly be applied into ICS directly as the two systems are fundamentally different in terms of system complexity, criticality, flexibility and dependability. This paper addresses this challenges by proposing an ICS incident response decision framework. It is based on decision-making theory and has descriptive, predictive and prescriptive models that particularly address ICS incident response decision-making. This framework is implemented using a service-oriented architecture (SOA) that provides incident response decision making as services and offers standardized interfaces to integrate with existing incident management systems.','Communications and Network Security (CNS), 2015 IEEE Conference on',1,'Ying He; L. A. Maglaras; H. Janicke; K. Jones','ieee/service oriented architecture security.csv','ieee',''),(382,'A Comprehensive Ontology for Knowledge Representation in the Internet of Things','2012','13','Internet of Things;IoT Services;Ontology;Ontology Modelling;Service Testing','Semantic modeling for the Internet of Things has become fundamental to resolve the problem of interoperability given the distributed and heterogeneous nature of the \"Things\". Most of the current research has primarily focused on devices and resources modeling while paid less attention on access and utilisation of the information generated by the things. The idea that things are able to expose standard service interfaces coincides with the service oriented computing and more importantly, represents a scalable means for business services and applications that need context awareness and intelligence to access and consume the physical world information. We present the design of a comprehensive description ontology for knowledge representation in the domain of Internet of Things and discuss how it can be used to support tasks such as service discovery, testing and dynamic composition.','2012 IEEE 11th International Conference on Trust, Security and Privacy in Computing and Communications',1,'W. Wang; S. De; R. Toenjes; E. Reetz; K. Moessner','ieee/service oriented architecture security.csv','ieee',''),(383,'Managing Entire Lifecycles of e-Science Applications in the GridSpace2 Virtual Laboratory – From Motivation through Idea to Operable Web-Accessible Environment Built on Top of PL-Grid e-Infrastructure','2012','3',' virtual laboratories computational science application development collaborative research','Abstract The GridSpace2 environment, developed in the scope of the PL-Grid Polish National Grid Initiative, constitutes a comprehensive platform which supports e-science applications throughout their entire lifecycle. Application development may involve multiple phases, including writing, prototyping, testing and composing the application. Once the application attains maturity it becomes operable and capable of being executed, although it may still be subject to further development – including actions such as sharing with collaborating researchers or making results publicly available with the use of dedicated publishing interfaces. This paper describes each of these phases in detail, showing how the GridSpace2 platform can assist the developers and publishers of computational experiments.','',2,'Eryk CiepielaPiotr NowakowskiJoanna KocotDaniel HarężlakTomasz GubałaJan MeiznerMarek KasztelnikTomasz BartyńskiMaciej MalawskiMarian Bubak','springer/bpel security.csv','springer','\0'),(384,'Cloud storage service in digital campus','2013','0','cloud storage;digital campus','With the development of information technology, the research of digital campus faces more and more new challenges and opportunities. The construction of digital campus is now focusing on the development of personal digital spaces, personal interactive information systems, and open platforms for interactive participation and knowledge sharing. Being the foundation of the digital campus infrastructure, cloud storage service supports the storage, synchronization and sharing of mass data in a fast and secure way. In this paper we illustrate the contents and implementation of cloud storage service in digital campus.','Software Engineering and Service Science (ICSESS), 2013 4th IEEE International Conference on',1,'Yu Peng; Yu Zhang; Xiong Lv; Li Bi','ieee/service oriented architecture security.csv','ieee','\0'),(385,'ConHA: An SOA-based API gateway for consolidating heterogeneous HA clusters','2013','','API gateway; cluster; consolidation; high availability','Server and cluster consolidating is very common in cloud computing era. However, it is not easy to consolidate heterogeneous high-availability (HA) clusters due to the lack of unified administrative tool for managing various kinds of high-availability clusters developed by different vendors. To solve this problem, an SOA-based API gateway, ConHA, is proposed in this paper. ConHA provides unified web service APIs and the functionalities for managing heterogeneous HA cluster. ConHA is designed in a scalable and extensible way. The security issues are also discussed in this paper. © 2013 IEEE.','',1,'Li M., Zhang Q., Chu H., Hu X., Xu F.','scopus/soa security.csv','scopus','\0'),(386,'A semantic model to support security matching in cloud environments','2013','1','Cloud computing; Ontology; Security policies; Semantic','Despite its technological advances, cloud computing\'s adoption is not as wide as expected. Security is still a big concern that prevents many to \"cloudify\" their applications and put their data in the hands of a cloud provider. Also, interoperable scenarios fostered by SOA technologies exacerbate the security question, as customers have to deal with multiple providers who, in their turn, must establish mutual trust relationships in order to interoperate. In the last few years, policies are being used as a means to build networks of trustiness among cloud providers. Standards and specifications on security management through policies have also appeared. We argue that the main problem with this approach is that policies are expressed through syntactic languages which, if processed by computers, show well-known limitations. We then propose an approach that leverages on the semantic technologies to enrich security policies with semantic contents enabling machine reasoning. The framework we developed caters for the security needs of both customers and providers, and aims at making a smart match between what is requested and what is offered in terms of security. On the customer side, no extra effort is required other than specifying their security policies according to well-established security notations; an automatic procedure is charged of adding semantic content to the policies.','',1,'Di Modica G., Tomarchio O.','scopus/service oriented architecture security.csv','scopus','\0'),(387,'SDE-driven service provision control','2012','','Differential Evolution; Service Provision Control; Stochastic differential equation','The service-oriented architecture (SOA) allows distributed resources to be provided through standard service interfaces, resulting in easy and flexible access to domain-specific functionality. Depending on resource availability and the demand for services, a service-providing host may choose to provide one or several services in the direction of maximizing its service-providing utility. This is known as the service provision control (SPC) problem. With the help of stochastic differential equations (SDEs), this problem will be tackled in this paper within a stochastic optimization framework. Differential evolution (DE) algorithm will be further utilized to identify near-optimal service-providing policies. Experimental study has been conducted based on an example inspired by Cyber security. The experiment results show that our approach is effective in tackling the SPC problem and may be therefore suitable for many practical applications. © 2012 Springer-Verlag.','',1,'Chen G., Pang S., Sarrafzadeh A., Ban T., Inoue D.','scopus/service oriented architecture security.csv','scopus','\0'),(388,'An autonomic approach to extend the business value of a legacy order fulfillment system','2015','','autonomic computing; legacy software systems; self-adaptive systems; self-managing systems; service-oriented architecture; software evolution; software maintenance; systems interoperability; systems of systems','In the modern retailing industry, many enterprise resource planning (ERP) systems are considered legacy software systems that have become too expensive to replace and too costly to re-engineer. Countering the need to maintain and extend the business value of these systems is the need to do so in the simplest, cheapest, and least risky manner available. There are a number of approaches used by software engineers to mitigate the negative impact of evolving a legacy systems, including leveraging service-oriented architecture to automate manual tasks previously performed by humans. A relatively recent approach in software engineering focuses upon implementing self-managing attributes, or \'autonomic\' behavior in software applications and systems of applications in order to reduce or eliminate the need for human monitoring and intervention. Entire systems can be autonomic or they can be hybrid systems that implement one or more autonomic components to communicate with external systems. In this paper, we describe a commercial development project in which a legacy multi-channel commerce enterprise resource planning system was extended with service-oriented architecture an autonomic control loop design to communicate with an external third-party security screening provider. The goal was to reduce the cost of the human labor necessary to screen an ever-increasing volume of orders and to reduce the potential for human error in the screening process. The solution automated what was previously an inefficient, incomplete, and potentially error-prone manual process by inserting a new autonomic software component into the existing order fulfillment workflow. © 2015 IEEE.','',1,'Mulcahy J.J., Huang S.','scopus/service oriented architecture security.csv','scopus',''),(389,'Dynamic intelligence towards merging cloud and communication services','2014','0','','','Information Systems Frontiers',1,'Ching-Hsien HsuJianhua MaMohammad S. Obaidat','springer/service oriented architecture security.csv','springer','\0'),(390,'On a Classification Approach for SOA Vulnerabilities','2009','7','SOA;Security;Vulnerability Classification;Vulnerability Management','Vulnerabilities in operating systems and Web applications have been and are being put into various classifications, leading to a better understanding of their causes and effects, and to improved vulnerability management tool support. In a service-oriented architecture (SOA), additional vulnerabilities exist in the implementations of new standards such as BPEL and SOAP. Attackers can exploit these vulnerabilities to interfere with the business processes, which are executed as orchestration of services. We describe our approach and ongoing work of creating a SOA vulnerability classification.','2009 33rd Annual IEEE International Computer Software and Applications Conference',2,'L. Lowis; R. Accorsi','ieee/bpel security.csv','ieee','\0'),(391,'Formal Verification of Finite State Transactional Security Policy','2014','0',' transaction isolation security policy finite edit automata formal verification','Abstract Security policy helps to ensure that system always takes the desired input action sequence and works in a proper manner. Formal verification of finite state transactional security policy is necessary to check whether the given policy conforms to the specification. One way to specify finite state transactional security policy is by using a filter automaton. A filter automaton is an action sequence transformer that maps an input action sequence into another, so that the output action sequence obeys the specified policy. A method for verification of finite state transactional security policy enforced by filter automata is being proposed. The observable actions finite security automaton and the observable actions finite truncation automaton are used to verify a finite state transactional security policy.','',1,'N. RajamanickamR. NadarajanAtilla Elçi','springer/service oriented architecture security.csv','springer','\0'),(392,'A Web Service trust evaluation model based on small-world networks','2014','4','Small-world networks; SOA; Subjective logic; Trust model; Web Services','As a popular innovation, Web Service provides a flexible solution to integrate diverse online applications with existing Internet protocols and open standards. The availability and flexibility of Web Service enable its potential to handle dynamic requests in distributed online collaboration. However, this potential is limited by Web Service\'s security concerns due to its uncertainty, openness and fraudulence. A solution to this problem, Trust, an important social concept in all human interactions, has been proven to be a promising way to resolve the security issues raised by these distributed collaborations. This paper introduces a novel evaluation model of Web Service by leveraging trust as an approach. We first incorporate a trust management module into the standard Service Oriented Architecture (SOA). Then, after transforming a Web Service network to a small-world network based on the trust relationships of service entities, we propose a trust evaluation model with an amendatory subjective logic. The simulation experiments we ran compared our trust evaluation model with two other popular models. The result shows our proposed model outperforms in terms of both detection capability and stability. © 2013 Elsevier B.V. All rights reserved.','',1,'Liu F., Wang L., Gao L., Li H., Zhao H., Men S.K.','scopus/service oriented architecture security.csv','scopus','\0'),(393,'Link Prediction in Dynamic Networks of Services Emerging during Deployment and Execution of Web Services','2012','1','','Abstract We propose an approach, according to which the Web services interoperability and resulting composition schemes may be used to create the network structures reflecting the patterns according to which the services interact during execution of composition and execution queries. We show how to create so-called networks of Web services which allow to effectively use the network structural analysis and optimization techniques to solve the network composition problems. The service network is created on the basis of the semantic bindings between the services in the repository joined with the actual patterns of the service usage resulting from composition queries. Next we show how available techniques of dynamic network structure prediction and analysis may help to assess the future service usage and resource consumption of the service execution layer. Our approach is illustrated by the real data gathered from the PlaTel platform, dedicated to the complex service planning, management, provision, composition, execution and validation.','',1,'Adam GrzechKrzysztof JuszczyszynPaweł StelmachŁukasz Falas','springer/service oriented architecture security.csv','springer','\0'),(394,'Zukunftsfähige Softwaresysteme','2016','1','','Zusammenfassung Software ist heute allgegenwärtig: Man findet sie in fast allen Produkten und Diensten der heutigen Gesellschaft und Industrie. Die Abhängigkeit von Software ist nahezu total geworden. In den vergangenen zwei Jahrzehnten hat sich Software für die Unternehmen von Systembausteinen zu signifikanten Investitionsgütern entwickelt, welche die Chancen und Risiken der Unternehmen stark mitbestimmen. Viele Softwaresysteme haben eine lange Lebensdauer und müssen während dieser Zeit kontinuierlich neuen Anforderungen angepasst werden. Dabei sind zunehmende Anforderungen an Qualitätseigenschaften – wie Sicherheit, Verfügbarkeit, gesetzliche Vorschriften usw. – nachweisbar zu erfüllen. Dies stellt sehr hohe Anforderungen an die Software selbst und an ihre Evolutionsstrategie. Kurz gefasst muss die Software zukunftsfähig sein, d. h. sie muss sowohl die heutigen Anforderungen optimal erfüllen, aber gleichzeitig ihre erfolgreiche Evolution für längere Zeit gewährleisten. Dieser Beitrag beschreibt eine praktisch erprobte Evolutionsstrategie – die Managed Evolution . Die Managed Evolution ist eine stark architekturzentrierte Evolutionsstrategie für mittlere bis sehr große Informationssysteme in allen Anwendungsgebieten. Sie zeichnet sich dadurch aus, dass sie eine enge Zusammenarbeit der Geschäftseinheiten und der IT-Abteilungen aufweist.','Informatik-Spektrum',1,'Frank J. Furrer','springer/soa security.csv','springer',''),(395,'Trust as a facilitator in cloud computing: a survey','2012','15',' Cloud computing Cloud taxonomy Trust evaluation Reputation system Trust management Trust models','Abstract Abstract Cloud computing offers massively scalable, elastic resources (e.g., data, computing power, and services) over the internet from remote data centres to the consumers. The growing market penetration, with an evermore diverse provider and service landscape, turns Cloud computing marketplaces a highly competitive one. In this highly competitive and distributed service environment, the assurances are insufficient for the consumers to identify the dependable and trustworthy Cloud providers. This paper provides a landscape and discusses incentives and hindrances to adopt Cloud computing from Cloud consumers’ perspective. Due to these hindrances, potential consumers are not sure whether they can trust the Cloud providers in offering dependable services. Trust-aided unified evaluation framework by leveraging trust and reputation systems can be used to assess trustworthiness (or dependability) of Cloud providers. Hence, cloud-related specific parameters (QoS + ) are required for the trust and reputation systems in Cloud environments. We identify the essential properties and corresponding research challenges to integrate the QoS + parameters into trust and reputation systems. Finally, we survey and analyse the existing trust and reputation systems in various application domains, characterizing their individual strengths and weaknesses. Our work contributes to understanding 1) why trust establishment is important in the Cloud computing landscape, 2) how trust can act as a facilitator in this context and 3) what are the exact requirements for trust and reputation models (or systems) to support the consumers in establishing trust on Cloud providers.','Journal of Cloud Computing: Advances, Systems and Applications',1,'Sheikh Mahbub HabibSascha HaukeSebastian RiesMax Mühlhäuser','springer/service oriented architecture security.csv','springer',''),(396,'Access control for a Smart Grid SOA','2012','6','Access control; Service-oriented Computing; Smart Grid; Web services','In the future Smart Grid numerous stakeholders within the electric power grid need to exchange information in order to realize applications like customer energy feedback, billing and invoicing of variable tariffs, demand side management and efficient charging of electric vehicles. Using a Service-oriented Architecture (SOA) based on Web services promises a convenient way to provide a data infrastructure capable to realize the required interactions in a flexible way. A main concern in such an architecture is how access to data can be controlled in order to prevent security or privacy violations. Access control depends strongly on authentication and authorization mechanisms. Therefore this paper contributes i) a SOA for the Smart Grid and ii) an access control mechanism that is taken into consideration from the early beginning of the system design. Furthermore, a proof of concept implementation and a scalability analysis are used to investigate the requirements on computational resources in a large scale deployment. © 2012 Infonomics Society.','',1,'Jung M., Hofer T., Döbelt S., Kienesberger G., Judex F., Kastner W.','scopus/service oriented architecture security.csv','scopus','\0'),(397,'Trusted Interaction Patterns in Large-scale Enterprise Service Networks','2010','2','human involvement in SOA;interaction patterns;mixed systems;online help and support;trust','The evolution towards cross-organizational collaboration and interaction patterns has led to the emergence of scalable, Web services-based composition infrastructures. The success of service-oriented architecture (SOA) was mainly influenced by the standardization of composition languages such as BPEL. However, compositions require humans to be in the loop and ways to interface with people in a service-oriented manner. In this paper, we discuss Human-Provided Services (HPS) enabling the seamless integration of human capabilities in SOA. In complex and large-scale environments, processes might span interactions among partially unknown participants residing in different organizational units. To address the problem of trusted selection of participants, we introduce a mining approach for the automatic inference of trust relations. Unlike a security-based view on trust, our approach relates to the emergence of trust across humans and services from a social perspective.','2010 18th Euromicro Conference on Parallel, Distributed and Network-based Processing',2,'F. Skopik; D. Schall; S. Dustdar','ieee/bpel security.csv','ieee','\0'),(398,'Improving the Quality of Architecture Design Through Peer-Reviews and Recombination','2015','0',' Software architecture design Design quality Peer-review Recombination Architectural design decision','Abstract Software architecture reviews help improve the quality of architecture design decisions. Traditional reviews are considered expensive and time-consuming. We assert that organizations can consider leveraging peer-reviews and recombination (i.e., promoting design improvement through sharing design ideas) activities to improve the quality of architectures and getting staff trained. This paper reports a case study aimed at exploring the potential impact of combining peer-review and recombination on the quality of architecture design and design decisions made by novice architects, who usually have limited practical experience of architecture design. The findings show that the use of peer-review and recombination can improve both the quality of architecture design and documented decisions. From the decision-making perspective, this study also identifies the main types of challenges that the participants faced during architectural decision making and reasoning. These findings can be leveraged to focus on the types of training novice architects may need to effectively and efficiently address the types of challenges identified in this study.','',1,'Mojtaba ShahinMuhammad Ali Babar','springer/service oriented architecture security.csv','springer',''),(399,'Cyber-physical systems challenges: a needs analysis for collaborating embedded software systems','2016','1',' Cyber-physical systems Computation Embedded systems Challenges Internet of Things Modeling and simulation','Abstract Embedding computing power in a physical environment has provided the functional flexibility and performance necessary in modern products such as automobiles, aircraft, smartphones, and more. As product features came to increasingly rely on software, a network infrastructure helped factor out common hardware and offered sharing functionality for further innovation. A logical consequence was the need for system integration. Even in the case of a single original end manufacturer who is responsible for the final product, system integration is quite a challenge. More recently, there have been systems coming online that must perform system integration even after deployment—that is, during operation. This has given rise to the cyber-physical systems (CPS) paradigm. In this paper, select key enablers for a new type of system integration are discussed. The needs and challenges for designing and operating CPS are identified along with corresponding technologies to address the challenges and their potential impact. The intent is to contribute to a model-based research agenda in terms of design methods, implementation technologies, and organization challenges necessary to bring the next-generation systems online.','Software & Systems Modeling',1,'Pieter J. MostermanJustyna Zander','springer/service oriented architecture security.csv','springer',''),(400,'Security testing of orchestrated business processes in SOA','2015','','Orchestrated Business Process; Security; SOA; Vulnerability','Service Oriented Architecture (SOA) has been widely used during the past decade due to its ability to seamlessly integrate various applications developed using different technologies. Web services based on open standards are the most commonly used technology to realize an SOA. Business processes are executed by appropriate orchestration of various services from different departments that belong to a single organization or from multiple organizations. Security is an important quality attribute that has to be built into any application that is developed using SOA. XML is the underlying technology for Web Service Description Language (WSDL), SOAP protocol and Business Process Execution Language (BPEL). It is highly probable that an attacker could inject malicious information into these XML files to modify the flow of the business process. Further, SOAP was not designed with security in mind, it is possible to tamper the SOAP messages while they are in transit. There exist a number of such potential vulnerabilities which lead to possible security breach in the individual services. In an orchestrated business process, there are possibilities of more vulnerabilities. One of the existing tools namely WS-Attacker is only capable of testing the security of individual web services alone. In spite of the widespread usage of SOA, currently there is limited automatic tool support for testing the security provided by an entire SOA application involving service orchestration. In this context, this paper focuses on designing and implementing a plug-in for WS-Attacker to analyze a few security vulnerabilities present in SOA business processes. © 2014 IEEE.','',2,'Hariharan C., Babu C.','scopus/bpel security.csv','scopus',''),(401,'A survey on quality attributes in service-based systems','2016','2',' Quality attributes Service-based systems Software design Survey Empirical study','Abstract Service-based systems have become popular in the software industry. In software engineering, it is widely acknowledged that requirements on quality attributes (e.g., performance, security, reliability) significantly impact the design of software systems. This study explores the role of quality attributes during the design of service-based systems. We investigate the significance of quality attributes when designing service-based systems and how quality attributes are addressed through design decisions, across application domains, and related to other aspects of software development, e.g., architecture documentation. We conducted a descriptive survey. The survey was done as an online questionnaire targeting practitioners. Furthermore, we included researchers with practical design experience. We obtained 56 valid responses. Most survey participants consider quality attributes and functionality as equally important and treat quality attributes explicitly rather than implicitly. Furthermore, dependability is the most relevant quality attribute in service-based systems; we do not find quality attributes that are particularly important in specific application domains. Most quality attributes are addressed by ad hoc decisions, rather than established architecture or design patterns or technologies. Only few decision alternatives are considered when making architectural decisions to address quality attributes. Our results partially confirm anecdotal evidence from current literature, but also strengthen previous claims by providing empirical evidence. Our results point to future research directions (e.g., exploring the impact of decision types on how well quality attributes can be achieved) and implications for practitioners (e.g., training makes a difference to how quality attributes are treated).','Software Quality Journal',1,'David AmellerMatthias GalsterParis AvgeriouXavier Franch','springer/soa security.csv','springer',''),(402,'Applications of ontologies in requirements engineering: a systematic review of the literature','2015','3',' Ontologies Requirements engineering Systematic literature review','Abstract There is an increase use of ontology-driven approaches to support requirements engineering (RE) activities, such as elicitation, analysis, specification, validation and management of requirements. However, the RE community still lacks a comprehensive understanding of how ontologies are used in RE process. Thus, the main objective of this work is to investigate and better understand how ontologies support RE as well as identify to what extent they have been applied to this field. In order to meet our goal, we conducted a systematic literature review (SLR) to identify the primary studies on the use of ontologies in RE, following a predefined review protocol. We then identified the main RE phases addressed, the requirements modelling styles that have been used in conjunction with ontologies, the types of requirements that have been supported by the use of ontologies and the ontology languages that have been adopted. We also examined the types of contributions reported and looked for evidences of the benefits of ontology-driven RE. In summary, the main findings of this work are: (1) there are empirical evidences of the benefits of using ontologies in RE activities both in industry and academy, specially for reducing ambiguity, inconsistency and incompleteness of requirements; (2) the majority of studies only partially address the RE process; (3) there is a great diversity of RE modelling styles supported by ontologies; (4) most studies addressed only functional requirements; (5) several studies describe the use/development of tools to support different types of ontology-driven RE approaches; (6) about half of the studies followed W3C recommendations on ontology-related languages; and (7) a great variety of RE ontologies were identified; nevertheless, none of them has been broadly adopted by the community. Finally, we conclude this work by showing several promising research opportunities that are quite important and interesting but underexplored in current research and practice.','Requirements Engineering',1,'Diego DermevalJéssyka VilelaIg Ibert BittencourtJaelson CastroSeiji IsotaniPatrick BritoAlan Silva','springer/service oriented architecture security.csv','springer',''),(403,'An Extension to UDDI for the Discovery of User Driven Web Services','2016','0','','Abstract Service registries are used by web service providers to publish services and registries are used by requestors to find them in an SOA (Service Oriented Architecture). The following drawbacks are presented in the main existing service registry specifications, UDDI (Universal Description, Discovery and Integration). First, only abstract, unscalable and inefficient definition of the web services publications is present in all UBR (Universal Business Registry) nodes. Second, it matches only the business name and service name given in the WSDL document to collect service information. In order to overcome these difficulties, author have proposed an efficient and effective UDDI architecture called E-UDDI, which extends the UDDI design by incorporating a QoS in additional bag in the business entity data structure. Moreover, to enable service customer for easily finding more appropriate service information, an effective service matching mechanism is adopted in the E-UDDI so that the user can take the decisions. Service discovery and publishing is improved considerably in the proposed system by means of an effective UDDI registry with flexible and more suitable service searching facility.','',1,'Anu Saini','springer/service oriented architecture security.csv','springer',''),(404,'Test-Enhanced Life Cycle for Composed IoT-Based Services','2013','0',' SOA IoT Test Life Cycle Composition Deployment','Abstract Major challenges in developing services for the Internet of Things (IoT) are based on heterogeneous interfaces and radio technologies. This paper proposes a knowledge driven service life cycle, which enables a structured utilisation of semantic descriptions for re-usability and testing. Furthermore the approach facilitates the process of encapsulating IoT resources into services.','',2,'Daniel KuemperEike Steffen ReetzDaniel HölkerRalf Tönjes','springer/bpmn security.csv','springer','\0'),(405,'Formalisation and Implementation of the XACML Access Control Mechanism','2012','4',' PBAC XACML formal semantics CASE tools','Abstract We propose a formal account of XACML, an OASIS standard adhering to the Policy Based Access Control model for the specification and enforcement of access control policies. To clarify all ambiguous and intricate aspects of XACML, we provide it with a more manageable alternative syntax and with a solid semantic ground. This lays the basis for developing tools and methodologies which allow software engineers to easily and precisely regulate access to resources using policies. To demonstrate feasibility and effectiveness of our approach, we provide a software tool, supporting the specification and evaluation of policies and access requests, whose implementation fully relies on our formal development.','',1,'Massimiliano MasiRosario PuglieseFrancesco Tiezzi','springer/service oriented architecture security.csv','springer','\0'),(406,'Cross-layer optimization with MIPv6-based multiple mobile routers for cognitive networks','2016','0',' Cognitive Radio Networks (CRN) Cross-layer optimization Mobile router (MR) Mobile IPv6 (MIPv6)','Abstract To allow secondary and primary concurrent transmissions achieving the increment of optimal mobile network performance in heterogeneous cognitive networks, this paper proposes a cross-layer optimization framework with a distributed cooperative MIPv6-based multiple mobile routers using adaptive opportunistic route optimization entitled Mobile IPv6 Route Optimization for Cognitive radio networks (MIROC) protocol. A gripping slant of MIROC protocol is the benefit to develop mobile cognitive routers based on MIPv6. The proposed protocol is elaborated in details from angular RO and multiangular routing which can be utilized in practical network deployment. The performance in M/M/n and M/M/∞ Queue and evaluation of cognitive mobile Network with multiple mobile routers using stochastic process in Markov chain model are analyzed.','Wireless Networks',1,'Dan Ye','springer/soa security.csv','springer',''),(407,'Addressing the evolution of automated user behaviour patterns by runtime model interpretation','2015','0',' System behaviour evolution Routine task automation Models at runtime Runtime interpretation of models','Abstract The use of high-level abstraction models can facilitate and improve not only system development but also runtime system evolution. This is the idea of this work, in which behavioural models created at design time are also used at runtime to evolve system behaviour. These behavioural models describe the routine tasks that users want to be automated by the system. However, users’ needs may change after system deployment, and the routine tasks automated by the system must evolve to adapt to these changes. To facilitate this evolution, the automation of the specified routine tasks is achieved by directly interpreting the models at runtime. This turns models into the primary means to understand and interact with the system behaviour associated with the routine tasks as well as to execute and modify it. Thus, we provide tools to allow the adaptation of this behaviour by modifying the models at runtime. This means that the system behaviour evolution is performed by using high-level abstractions and avoiding the costs and risks associated with shutting down and restarting the system.','Software & Systems Modeling',1,'Estefanía SerralPedro ValderasVicente Pelechano','springer/service oriented architecture security.csv','springer',''),(408,'Personality assessment using multiple online social networks','2015','0',' Online social networks Personality Facebook LinkedIn','Abstract Personality plays an important role in various aspects of our daily life. It is being used in many application scenarios such as i) personalized marketing and advertisement of commercial products, ii) designing personalized ambient environments, iii) personalized avatars in virtual world, and iv) by psychologists to treat various mental and personality disorders. Traditional methods of personality assessment require a long questionnaire to be completed, which is time consuming. On the other hand, several works have been published that seek to acquire various personality traits by analyzing Internet usage statistics. Researchers have used Facebook, Twitter, YouTube, and various other websites to collect usage statistics. However, we are still far from a successful outcome. This paper uses a range of divergent features of Facebook and LinkedIn social networks, both separately and collectively, in order to achieve better results. In this work, the big five personality trait model is used to analyze the five traits: openness to experience, conscientiousness, extroversion, agreeableness, and neuroticism. The experimental results show that the accuracy of personality detection improves with the use of complementary features of multiple social networks (Facebook and LinkedIn, in our case) for openness, conscientiousness, agreeableness, and neuroticism. However, for extroversion we found that the use of only LinkedIn features provides better results than the use of only Facebook features or both Facebook and LinkedIn features.','Multimedia Tools and Applications',1,'Shally BhardwajPradeep K. AtreyMukesh K. SainiAbdulmotaleb El Saddik','springer/service oriented architecture security.csv','springer',''),(409,'Towards Unified Vulnerability Assessment with Open Data','2013','1','CVE;OVAL;SCAP;SOA;cloud computing;computer security;vulnerability assessment','Continuous and comprehensive vulnerability management is a difficult task for administrators. The difficulties are not because of a lack of tools, but because they are designed without service-oriented architecture viewpoint and there is insufficient trustworthy machine-readable input data. This paper presents a service-oriented architecture for vulnerability assessment systems based on the open security standards and related contents. If the functions are provided as a service, various kinds of security applications can be interoperated and integrated in loosely-coupled way. We also studied the effectiveness of the available public data for automated vulnerability assessment. Despite the large amount of efforts that goes toward describing machine-readable assessment test in conformity to the OVAL standard, the evaluation result proves inadequate for comprehensive vulnerability assessment. Only about 12% of all the known vulnerabilities are covered by existing OVAL tests, while some popular client applications in the Top 30 with most unique vulnerabilities are covered more than 90%.','Computer Software and Applications Conference Workshops (COMPSACW), 2013 IEEE 37th Annual',1,'A. Nakamura','ieee/service oriented architecture security.csv','ieee','\0'),(410,'Concurrent home multimedia conferencing platform using a service component architecture','2015','0',' Concurrent Ubiquitous Home multimedia conferencing Platform Service component architecture','Abstract Recent advances in audio/video processing, communication protocols, and Internet technologies have allowed for high-quality multimedia conferencing services at relatively low cost in the digital home. This paper presents a high concurrent and ubiquitous home multimedia conferencing platform using a service component architecture. For the proposed architecture, we focus on the design of a home multimedia conferencing platform framework, as well as home conferencing components, session management for media signaling, load balancing, and concurrent control for conferencing process management. We also present an efficient network address translation and a firewall traversal schema. High concurrency of the proposed architecture is achieved by coordinated distributed home conferencing services and concurrent control for conferencing process management. The performance of the proposed home multimedia conferencing platform has been evaluated, and the results show that the proposed architecture greatly improves the concurrency.','Multimedia Tools and Applications',2,'Cheng BoHu XiaoxiaoZhang ShichengChen Junliang','springer/bpel security.csv','springer',''),(411,'Performance evaluation of a massively parallel ESB-oriented architecture','2012','','ESB-Oriented Architecture; Massively Parallel Processing; Multithreading; Performance Evaluation','Enterprise Service Bus (ESB) is an SOA-based software architecture for business application integration in distributed and heterogeneous environments. Most of open-source or commercial solutions offer the same set of basic services such as message transformation, message routing, security, etc... however, none of them take advantage of the multicore/multiprocessor technologies which make possible the massively parallel processing. This work concerns performance evaluation of a massively parallel ESB oriented architecture (denoted MPAB). After a brief description of its main components, we present the results of this evaluation based on operational analysis. © 2012 IEEE.','',1,'Benosman R., Albrieux Y., Barkaoui K.','scopus/soa security.csv','scopus','\0'),(412,'Proposal for Interoperability Standards Applications in the Health Sector','2015','0',' CDA HL7 HCEU Interoperation PIX SOA XDS','Abstract The technological framework of the health sector is complex and problematic; each actor has created islands of information, where the exchange of information with other actors is the exception, where this provides a sea of technological heterogeneity and information systems providers with different stages of development even inside institutions. This scheme is not very effective in coordinating policies and implements concrete joint projects to improve the global search. In this scenario the efforts are not coordinated, processes are duplicated, yield is lost and increase costs. This paper presents the results of a technology proposal that allows solving this problematic.','',1,'Alejandro Paolo DazaBrayan S. Reyes DazaOctavio J. Salcedo Parra','springer/service oriented architecture security.csv','springer',''),(413,'Software-as-a-service (SaaS): Perspectives and challenges','2014','11','customization; multi-tenancy architecture; redundancy and recovery; SaaS architecture; scalability; software-as-a-service','Software-as-a-service (SaaS) has received significant attention recently as one of three principal components of cloud computing, and it often deals with applications that run on top of a platform-as-a-service (PaaS) that in turn runs on top of infrastructure-as-a-service (IaaS). This paper provides an overview of SaaS including its architecture and major technical issues such as customization, multi-tenancy architecture, redundancy and recovery mechanisms, and scalability. Specifically, a SaaS system can have architecture relating to a database-oriented approach, middleware-oriented approach, service-oriented approach, or PaaS-oriented approach. Various SaaS customization strategies can be used from light customization with manual coding to heavy customization where the SaaS system and its underlying PaaS systems are customized together. Multi-tenancy architecture is an important feature of a SaaS and various trade-offs including security isolation, performance, and engineering effort need to be considered. It is important for a SaaS system to have multi-level redundancy and recovery mechanisms, and the SaaS system needs to coordinate these with the underlying PaaS system. Finally, SaaS scalability mechanisms include a multi-level architecture with load balancers, automated data migration, and software design strategies. © 2014 Science China Press and Springer-Verlag Berlin Heidelberg.','',1,'Tsai W.T., Bai X.Y., Huang Y.','scopus/service oriented architecture security.csv','scopus','\0'),(414,'Developing a Service Oriented IT Platform for Synchromodal Transportation','2014','0',' Service Oriented Architecture SOA Synchromodal IT platform Logistics Multimodal Transportation','Abstract Due to rapid global economic growth and competition, there is an increased pressure on logistic companies. On one hand, they have to be flexible and agile, to meet Service Level Agreements (SLA’s) with clients, while on the other hand they have to comply with government regulations and environment protection laws. Better utilization of different modes of transport and improved decision making can contribute to solving both these challenges. This requires increased co-operation between logistic service providers (LSPs). Our aim is to develop an IT platform which facilitates increased cooperation between logistic partners and allows them to function in a synchromodal way. We use the principles of Service Oriented Architecture (SOA) to design the IT platform. Using this platform, a single consignment can be fulfilled using different modes of transport and unforeseen problems in transportation can be dealt with. A consortium of leading Dutch logistic companies will be the test bed for this research.','',1,'Prince Mayurank Singh','springer/service oriented architecture security.csv','springer','\0'),(415,'Service-oriented intelligent group decision support system: Application in transportation management','2014','2',' Service-oriented architecture Group decision support system Transportation Management Artificial intelligence','Abstract In today’s ever changing consumer driven market economy, it is imperative for providers to respond expeditiously to the changes demanded by the customer. This phenomenon is no different in the transportation sector in which a service-oriented Group Decision Support System (GDSS) provides an important role in transportation enterprise to effectively manage and rapidly respond to the varying needs of the customer. In this paper, we explore the integration problem of service-oriented system and intelligence technology through the use of a GDSS. Initially, we analyze a service-oriented architecture and then, propose the design architecture of a service-oriented GDSS. Next, we put forward a general framework that integrates the intelligent techniques as a component into the architecture of service oriented GDSS. In addition, we illustrate how Artificial Intelligence techniques can resolve the conflicts of distributed group decisions. The paper is concluded by providing a number of applications in the railway management system that demonstrates the benefits of the utilization of a service oriented intelligent GDSS.','Information Systems Frontiers',1,'Shiwei HeRui SongSohail S. Chaudhry','springer/service oriented architecture security.csv','springer','\0'),(416,'Towards Enabling Behavioral Trust among Participating Cloud Forensic Data Center Agencies','2012','1','','Abstract In this position paper, the authors present some of the concerns with respect to monitoring and managing the behavioral trust of participants in a forensic cloud data center environment. The basic idea of the approach is to view the interaction process of collaborating forensic cloud data centers overseeing an existing investigation or a set of such investigations across distinct jurisdictions. This work is an important first step to support the need for enabling trustable cloud digital investigations among participating law enforcement agencies.','',1,'Sean ThorpeTyrone GrandisonIndrajit RayAbbie Barbir','springer/service oriented architecture security.csv','springer','\0'),(417,'Towards a BPEL model-driven approach for Web services security','2012','0','AOP;BPEL;Security;UML;Web Services','By handling the orchestration, composition and interaction of Web services, the Business Process Execution Language (BPEL) has gained tremendous interest. However, such process-based language does not assure a secure environment for Web services composition. The key solution cannot be seen as a simple embed of security properties in the source code of the business logic since the dynamism of the BPEL process will be affected when the security measures get updated. In this context, several approaches have emerged to tackle such issue by offering the ability to specify the security properties independently from the business logic based on policy languages. Nevertheless, these languages are complex, verbose and require programming expertise. Owing to these difficulties, specifying and the enforcing BPEL security policies become very tedious tasks. To mitigate these challenges, we propose in this paper, a novel approach that takes advantage of both the Unified Modeling Language (UML) and the Aspect Oriented Paradigm (AOP). By elaborating a UML extension mechanism, called UML Profile, our approach provides the users with model-based capabilities to specify aspects that enforce the required security policies. On the other hand, it offers a high level of flexibility when enforcing security hardening solutions in the BPEL process by exploiting the AOP approach. We illustrate our approach through an example of the dynamic generation and integration of model-based security aspects in a BPEL process.','Privacy, Security and Trust (PST), 2012 Tenth Annual International Conference on',2,'H. Tout; A. Mourad; H. Yahyaoui; C. Talhi; H. Otrok','ieee/bpel security.csv','ieee','\0'),(418,'Research on innovating, evaluating and applying multicast routing technique for routing messages in service-oriented routing','2012','0','','MANET (short for Mobile Ad-Hoc Network) consists of a set of mobile network nodes, network configuration changes very fast. Each node will act as a router to maintain network operation. There is no central node for controlling entire network. So routing in MANET is very important.','Ultra Modern Telecommunications and Control Systems and Workshops (ICUMT), 2012 4th International Congress on',1,'Nguyen Thanh Long; Nguyen Duc Thuy; Pham Huy Hoang','ieee/service oriented architecture security.csv','ieee','\0'),(419,'OSIRIS-SR: A Safety Ring for self-healing distributed composite service execution','2012','3','','The advent of service-oriented architectures has strongly facilitated the development and deployment of large-scale distributed applications. The middleware for orchestrating applications that consist of several distributed services has to be inherently distributed as well, in order to provide a high degree of scalability and to avoid any single point of failure. Self-healing execution of composite services requires replicated control metadata and instance data in a way that does not affect adaptivity and elasticity of the middleware. In this paper, we present OSIRIS-SR, a decentralized approach to self-healing composite service execution in a distributed environment. OSIRIS-SR exploits dedicated node monitors, organized in a self-organizing Safety Ring, for the replication of control data. Moreover, OSIRIS-SR leverages virtual stable storage for managing composite service instance data in a robust way. We present the architecture of OSIRIS-SR\'s Safety Ring and discuss how it provides self-healing composite service execution. The performance evaluation shows that the additional gain in robustness has only marginal effects on the scalability characteristics of the system.','2012 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS)',1,'N. Stojnić; H. Schuldt','ieee/service oriented architecture security.csv','ieee','\0'),(420,'Modeling information systems from the viewpoint of active documents','2015','0',' Information System Web information system Document-centric process and data modeling Process algebra Information system architecture web services Service-oriented architectures Zachman framework','Abstract The development of document handling by organizations at the level of business processes and business information systems leads to the phenomenon that the majority of documents and their contents remain in semi-structured format and definite minorities of documents are directly mapped onto structured databases. The rapidly evolving technology on the database field provides the opportunity to manage directly the semi-structured documents in line with the requirements of business processes. A continuum of possible document formats may exist in business environments. The documents can be categorized by the organization of the underlying data collections and according to the necessity and capability of data included in documents as whether wholly or partially is to be structured. The most modern database technology yields tools for handling and retrieving data making use of semi-structured and unstructured data. Our proposed approach (1) on one hand provides a theoretical framework for modeling IS to shape into some structure, (2) on the other hand yields guidance for design method to employ it for practical application with the extension of specific elementary models. The proposed modeling method that places the emphasis onto the documents and their symbiotic life with processes helps in understanding the behavior of most modern information systems. As a result, the combination of document-centric modeling and the enterprise architecture approach gives an opportunity for a unified modeling approach that keeps an eye on Conway’s thesis that states that software architecture congruent with the structure of development team, and this statement may be paraphrased that the overall document structure may reflect the structure of the specific organization.','Vietnam Journal of Computer Science',1,'Bálint MolnárAndrás Benczúr','springer/service oriented architecture security.csv','springer',''),(421,'Restoring security of evolving software models using graph transformation','2015','2',' Evolution Graph transformation Model transformation Model-based software engineering security','Abstract Security certification of complex systems requires a high amount of effort. As a particular challenge, today’s systems are increasingly long-living and subject to continuous change. After each change of some part of the system, the whole system needs to be re-certified from scratch (since security properties are not in general modular), which is usually far too much effort. When models for software get changed, this can lead to security weaknesses that are also part of the software system that is derived from those models. Hence, it is important to check the models with respect to security properties and correct them respectively. To address this challenge, we present an approach which not only finds security weaknesses but can also correct them in a tool-supported way. As time goes by, a diverse number of changing requirements that may be security-related and non-security-related lead to an evolving system that met its security requirements at design time but can contain vulnerabilities with respect to meanwhile updated security knowledge. Supported by patterns we can describe and detect potential flaws that may arise in models, such as inconsistencies in security requirements. Potential violations can be formalized in the patterns as well as the correction alternatives to fix these. It is based on graph transformation and can be applied to different types of models and violations. For flaw detection, these patterns are used as the left-hand sides of graph transformation rules. Using graph transformation, we can further correct the models and establish that they no longer violate the security requirements under investigation. The approach is supported by a tool which can check whether these patterns arise in models and assist the user in correcting the security vulnerabilities.','International Journal on Software Tools for Technology Transfer',2,'Jens BürgerJan JürjensSven Wenzel','springer/bpmn security.csv','springer',''),(422,'SOA in the CoNSIS coalition environment: Extending the WS-I Basic Profile for using SOA in a tactical environment','2012','','autarchy; fully distributed; NNEC; non-hierarchical; schema-based compression; SOAP-based security mechanisms','This article describes the elements necessary to allow SOA based CCIS systems to operate in a mobile tactical environment. All elements which are mandatory to allow a SOA based implementation to react to bandwidth limited, jammed and temporarily unavailable network connections and to span a common information domain across various coalition partners are listed in comparison to the WS-I Basic Profile. © 2012 Military Univ of Tech.','',1,'Seifert H., Franke M., Diefenbach A., Sevenich P.','scopus/soa security.csv','scopus','\0'),(423,'Reliable Messaging for BPEL Processes','2006','2','','There are currently two specifications that address reliable messaging in Web services: WS-reliablemessaging and WS-reliability. Both specifications consider the general case of Web services as being black boxes with WSDL interfaces. In this paper, we address the reliable messaging requirements of composite Web wervices in BPEL. In such Web services, the BPEL programmer sees not only the WSDL interface but also the implementation, i.e., the process definition. BPEL processes have several reliable messaging requirements, which cannot be supported by current reliable messaging specifications. The most challenging of those requirements is to support ordered message delivery between many endpoints. Current reliable messaging specifications support only reliable messaging between two endpoints. This paper presents several approaches to support multi-party reliable messaging and introduces a reliable messaging Web service for BPEL that is integrated with a BPEL engine by using a process container framework. This Web service supports the reliable messaging requirements of BPEL processes and its implementation is based on Sandesha, which is an open source implementation of WS-ReliableMessaging','2006 IEEE International Conference on Web Services (ICWS\'06)',2,'A. Charfi; B. Schmeling; M. Mezini','ieee/bpel security.csv','ieee','\0'),(424,'Development of manufacturing execution system service oriented software architecture','2013','0','manufacturing execution system;service oriented architecture;software architecture;view model','This paper discusses and the main features of MES software architecture. Based on considered requirements we offer implementation of one of the possible options of the software architecture. In addition, generic scheme and architectural principles were proposed. Paper describes the level of service and the level of client that uses services, design pattern for a client that effectively meets the architectural requirements and shows the possibility of joint development using given architecture.','Control and Communications (SIBCON), 2013 International Siberian Conference on',1,'K. A. Nechaev; V. V. Matveev; D. D. Zykov','ieee/service oriented architecture security.csv','ieee','\0'),(425,'Modeling security requirements in service based business processes','2012','4','BPMN; Business Process Modeling; Non-functional properties; Security','Non-functional concerns such as security are essential in business process management and in service based realizations of business processes. Many works and efforts addressed these concerns on the service layer by developing a number of XML-based standards such as WS-Security and other WS-*standards. However, there are non-functional properties that are on the business process layer and need therefore to be specified in business process models. We notice nevertheless that current business process modeling languages lack appropriate means for specifying non-functional properties such as security for example. In this paper, we present a model driven approach for the development of service based business processes which supports both functional and non functional concerns. We also introduce the concept of profiles to BPMN in analogy to UML Profiles. Based on that, we present a BPMN profile to specify security properties in business process models and illustrate its usage through an example. © 2012 Springer-Verlag Berlin Heidelberg.','',2,'Turki S.H., Bellaaj F., Charfi A., Bouaziz R.','scopus/bpmn security.csv','scopus','\0'),(426,'Towards a BPEL model-driven approach for web services security','2012','','AOP; BPEL; Security; UML; Web Services','By handling the orchestration, composition and interaction of Web services, the Business Process Execution Language (BPEL) has gained tremendous interest. However, such process-based language does not assure a secure environment for Web services composition. The key solution cannot be seen as a simple embed of security properties in the source code of the business logic since the dynamism of the BPEL process will be affected when the security measures get updated. In this context, several approaches have emerged to tackle such issue by offering the ability to specify the security properties independently from the business logic based on policy languages. Nevertheless, these languages are complex, verbose and require programming expertise. Owing to these difficulties, specifying and the enforcing BPEL security policies become very tedious tasks. To mitigate these challenges, we propose in this paper, a novel approach that takes advantage of both the Unified Modeling Language (UML) and the Aspect Oriented Paradigm (AOP). By elaborating a UML extension mechanism, called UML Profile, our approach provides the users with model-based capabilities to specify aspects that enforce the required security policies. On the other hand, it offers a high level of flexibility when enforcing security hardening solutions in the BPEL process by exploiting the AOP approach. We illustrate our approach through an example of the dynamic generation and integration of model-based security aspects in a BPEL process. © 2012 IEEE.','',2,'Tout H., Mourad A., Yahyaoui H., Talhi C., Otrok H.','scopus/bpel security.csv','scopus','\0'),(427,'Verification Requirements for Secure and Reliable Cloud Computing','2013','0','Cloud computing;service level agreements;verification requirements','Cloud computing has been widely adopted in a large variety of applications. This brings besides others also many new challenges in the fields of security and reliability. Like any other security and correctness sensitive computer system, it is beneficial to fully verify cloud solutions to ensure their correctness. Verification and validation of distributed systems has been widely studied, however, it has not been analyzed whether verification approaches in distributed systems can be directly applied to cloud computing or not. In this study, we present a comparison of verification requirements for distributed computing and cloud computing to establish the need of a specialized verification model/architecture for cloud computing. We differentiate the verification in distributed and cloud systems based on their business models, architecture models, programming models and security models. We argue that service level agreements (SLAs), which span across the cloud, become more critical in the verification process. Based on our study, we present an abstract verification model focusing specifically on cloud computing, paving the way to an implementation of a viable verification model which can practically verify complex cloud systems.','Cloud and Green Computing (CGC), 2013 Third International Conference on',1,'W. A. Ghumman; J. Lässig','ieee/service oriented architecture security.csv','ieee','\0'),(428,'Improving Access Control for Mobile Consumers of Services by Use of Context and Trust within the Call-Stack','2012','0',' Trust Web Services Distributed Trust Management Mobile Clients Call-Stack','Abstract Access control is a key issue in the deployment of systems within corporations. To comply with legal and business requirements and to prevent unauthorized access, the identification and authentication of all users is required. This is typically achieved by using an access control system that performs the identification & authentication of each user at the point of entry into the system. However, as the systems evolve and thus become more complex it is difficult to ensure reliable access control, especially if they are accessed via mobile devices. This paper focuses on improving the existing access control approach for service-oriented systems by applying the concept of device comfort to service providers. Similar to the concept of device comfort, service providers are empowered to decide if they feel comfortable with requests sent to them. This paper presents and evaluates the idea of integrating trust evaluations into service-oriented systems by requiring each service provider to evaluate the trustworthiness of requests and to share their evaluations as part of the call-context within the call-stack.','',1,'Min LuoRalph Deters','springer/service oriented architecture security.csv','springer','\0'),(429,'From Cloud Governance to IoT Governance','2013','3','Cloud computing;Cloud governance;Internet of things;IoT governance','Recent migration towards the cloud has lead to boom of initiatives that address key issues related to it. One of these issues, integrating various available cloud services while providing automated lifecycle management, was addressed by cloud governance. However, while mostly until now computers and phones were linked to the internet, new devices like tablets, sensors, smart devices (embedded devices) are now making their way into this environment. This, in turn, raises questions related to managing, governing these devices. Similarly to how cloud governance extends SOA governance, this article will detail the way in which IoT governance extends cloud governance.','Advanced Information Networking and Applications Workshops (WAINA), 2013 27th International Conference on',1,'A. Copie; T. F. Fortis; V. I. Munteanu; V. Negru','ieee/service oriented architecture security.csv','ieee','\0'),(430,'On the comprehension of workflows modeled with a precise style: results from a family of controlled experiments','2015','0',' Family of experiments Precise and Ultra-light styles UML activity diagrams Workflow modeling','Abstract In this paper, we present the results from a family of experiments conducted to assess whether the level of formality/precision in workflow modeling, based on UML activity diagrams, influences two aspects of construct comprehensibility: correctness of understanding and task completion time. In particular, we have considered two styles for workflow modeling with different levels of formality: a precise style (with specific rules and imposed constraints) and an ultra-light style (no rules, no imposed constraints). Experiments were conducted with 111 participants (Bachelor and Master students). In each experiment, participants accomplished comprehension tasks on two workflows, modeled either with the precise style or with a lighter variant. The main results from our data analysis can be summarized as follows: (i) all participants achieved a significantly better comprehension of workflows written in the precise style, (ii) the style had no significant impact on task completion time, (iii) more experienced participants benefited more, with respect to less experienced ones, from the precise style, as for their correctness of understanding, and (iv) all participants found the precise style useful in comprehending workflows.','Software & Systems Modeling',2,'Gianna ReggioFilippo RiccaGiuseppe ScannielloFrancesco Di CerboGabriella Dodero','springer/bpel security.csv','springer',''),(431,'Unique Identity Enabled Service Delivery through NSDG','2012','0',' NSDG Aadhaar Authentication Unique Identity Service Delivery Aadhaar-enabled Service Delivery','Abstract Unique Identity (Aadhaar) is issued by Unique Identification Authority of India (UIDAI) to the residents of India. With Aadhaar enrolment happening in full swing across the country, there is a strong need to formulate and furnish Aadhaar-enabled Service Delivery for the citizens. The National e-Governance Service Delivery Gateway (NSDG) as a messaging middleware provides Integrated Service Delivery based on Service Oriented Architecture for various government services. By positioning NSDG as Authentication User Agency (AUA) in Aadhaar Authentication Ecosystem, it can cater Aadhaar Authentication Service to all the government departments who wish to offer Aadhaar-enabled services and benefit schemes to the citizens. NSDG as AUA will provide Aadhaar authentication in conjunction with service access portal authentication process. With this NSDG can deliver Aadhaar-enabled Services to citizens based on online identity verification, thus improving efficiency, reliability and transparency in service delivery to the citizens. In this paper we will present integration of Aadhaar Authentication service with Messaging service of NSDG and its benefits.','',1,'Swapnil ShrivastavaZia SaquibGopinath P.Peeyush Chomal','springer/service oriented architecture security.csv','springer','\0'),(432,'SOA framework for geriatric remote health care using wireless sensor network','2013','2','Healthcare services; Privacy; Sensor web enablement; Vital signs; Wireless sensor network','Remote healthcare system is widely used in developed and developing countries. Rapid development in network technologies and Sensor Web Enablement (SWE) provide anytime anywhere access of healthcare data. But Sensor Web Enablement faces challenges such as privacy, security, scalability etc. This paper proposes a framework that addresses above issues. The proposed framework comprises of Wireless Body Sensor Network (WBSN), Service Oriented Architecture (SOA) and web services to provide health services to the doctors, caregivers and patients. In order to address the privacy issues of sensitive health data, the proposed framework uses role based authorization technique to formulate the rules and decide whether to allow or deny the user access request. The proposed framework has been implemented using Java. Experimental results show that the proposed SOA framework guarantees high quality service with average response time of 0.237 ms and average throughput of 87%. © 2013 The Authors. Published by Elsevier B.V.','',1,'Ganapathy K., Priya B., Priya B., Dhivya A., Prashanth V., Vaidehi V.','scopus/service oriented architecture security.csv','scopus','\0'),(433,'Reinforcing Math Knowledge by Immersing Students in a Simulated Learning-By-Teaching Experience','2014','3',' Intelligent tutoring systems Learning-by-teaching Mathematics Student model Software agent Teachable agents','Abstract We often understand something only after we’ve had to teach or explain it to someone else. Learning-by-teaching (LBT) systems exploit this phenomenon by playing the role of tutee . BELLA, our sixth-grade mathematics LBT systems, departs from other LTB systems in several ways: (1) It was built not from scratch but by very slightly extending the ontology and knowledge base of an existing large AI system, Cyc. (2) The “teachable agent”—Elle—begins not with a tabula rasa but rather with an understanding of the domain content which is close to the human student’s. (3) Most importantly, Elle never actually learns anything directly from the human tutor! Instead, there is a super-agent (Cyc) which already knows the domain content extremely well. BELLA builds up a mental model of the human student by observing them interact with Elle. It uses that Socratically to decide what Elle’s current mental model should be (what concepts and skills Elle should already know, and what sorts of mistakes it should make) so as to best help the user to overcome their current confusions. All changes to the Elle model are made by BELLA, not by the user—the only learning going on is BELLA learning more about the user—but from the user’s point of view it often appears as though Elle were attending to them and learning from them. Our main hypothesis is that this may prove to be a particularly powerful and effective illusion to maintain.','International Journal of Artificial Intelligence in Education',1,'Douglas B. LenatPaula J. Durlach','springer/webservice security.csv','springer','\0'),(434,'Proceedings of the 2012 IEEE 6th International Conference on Software Security and Reliability, SERE 2012','2012','','','The proceedings contain 31 papers. The topics discussed include: an autonomic framework for integrating security and quality of service support in databases; VRank: a context-aware approach to vulnerability scoring and ranking in SOA; security impacts of virtualization on a network testbed; CRAX: software crash analysis for automatic exploit generation by modeling attacks as symbolic continuations; a study of using two-parameter generalized pareto model to analyze the fault distribution of open source software; DESERVE: a framework for detecting program security vulnerability exploitations; on the effective use of security test patterns; toward systematic construction of timing diagrams from UML/MARTE behavioral models for time-triggered embedded software; a precise information flow measure from imprecise probabilities; using weighted attributes to improve cluster test selection; and mobile application and device power usage measurements.','',1,'[No author name available]','scopus/soa security.csv','scopus','\0'),(435,'Intelligent based large scale multi agent\'s resource management on shopping service with security','2012','1','Agent based grid service for shopping service;Agent\'s Resource Management Technique;Grid service deployment Life Cycle;Integrated Agent Migration based Hash Search;Service Oriented Computing','Grid computing is an Internet based large scale computing network. It works with resources and services for the purpose sharing in the network from their own or lease based. Power of Grid computing is everywhere present over the world for computing the solution for the problem through Resource management technique (RMT). RMT consist of Resource requester, resource matchmaker for a task, Resource provider and Agent-based resource manager. Agent-based resource manager produce enhanced Resource discovery service. Agent is software, decision maker for grid service. Grid service is requiring when, where, what type, alternate service arrangement and how to discover the services for public / private grid network. Multiple Agents are available in between the grid supplier and client. Multiple Agents communicated together through message passing via grid network. Large scale agent in the sense number of agents is large with big data handling capability. In each grid site active optimized agents are presented for execute the job. Each agent has a unique ID and different role in grid computing network. In some situation agents are used to migrate the one supplier to another supplier easily that is work replacement carried out by multi agent. Overloaded agent\'s host is relocating the service to other agent\'s host named as agent migration. Little work and idle agents are waiting for upcoming job. For deploying the application via host, first predict the best agent from a lot of distributed active agents. Buyer or consumer asks the service request from the supplier or seller. In this pairing service, the multi agents are acting as bridge between Buyer and supplier. List of Intelligent based large scale multi agents are deployment agent, task agent, mobility agent, optimization agent, matchmaker agent, mobile agent, supplier agent, resource agent, application agent. Agent software is used to replace the difficulty of shopping & shipment application (service) through Servic- Oriented Computing (SOC). Shopping process fully will take care by grid agents. Agents are assigning for grid Trust purpose and Security problems also overcome by the agents based on pseudo random number RSA algorithm through Grid Security Infrastructure (GSI).','2012 Nirma University International Conference on Engineering (NUiCONE)',1,'R. Surendran; B. P. Varthini','ieee/service oriented architecture security.csv','ieee','\0'),(436,'A Computational Model of XACML–Based Access Control Management in Distributed Networks','2014','0',' distributed access control enforcement XACML rule combining algorithms networks of parallel multiset string processors information dynamics developmental systems','Abstract In this paper, we propose a novel approach to enforcing eXtensible Access Control Markup Language (XACML) policy specifications in distributed environments. Our approach is based on a formal language theoretic construction, a variant of networks of parallel language processors. The language processors form teams, send and receive information through component and team level filters. The hierarchical nature of the network supports multiple levels of nesting. Consequently, different security needs can be defined at varying levels of granularity. We use various context conditions for filtering information, thus controlling information flow. Our theoretical contributions include establishing the connection between the growth of the number of strings at the components of the networks and the growth functions of developmental systems.','',1,'Katalin Anna Lázár','springer/service oriented architecture security.csv','springer','\0'),(437,'Aligning service-oriented architectures with security requirements','2012','1','alignment; evolution; security requirements; SOA','Aligning requirements and architectures is a long-standing concern in software engineering. Alignment is crucial in the area of systems evolution, wherein requirements and system architectures keep changing after system deployment. We address a specific alignment problem, namely, checking the compliance of a service-oriented architecture-representing a composite service-with security requirements. Service-oriented architectures are dynamic (services can be replaced on-the-fly), and assessing compliance with security requirements is key, since non-compliance may lead to sanctions as well as privacy violation. After motivating and describing the problem, we propose algorithms to check two specific security requirements: non-disclosure and non-repudiation. We illustrate the approach using an e-government scenario. © 2012 Springer-Verlag.','',1,'Salnitri M., Dalpiaz F., Giorgini P.','scopus/service oriented architecture security.csv','scopus','\0'),(438,'Another look at the middleware for dependable distributed computing','2012','2',' Middleware Dependability Cloud computing Large-scale systems','Abstract Key concepts of reliable distributed computing developed during the 1980s and 1990s (e.g., transactions, replication) influenced the standards based middleware such as CORBA and Java EE. This middleware has evolved steadily over the years with message passing facilities to support construction of loosely coupled systems. However, the way networked computing is being used for business and social uses is undergoing rapid changes as new ways of constructing distributed execution environments from varieties of resources, ranging from computational, storage, network to application level services, provided by globally distributed service providers are emerging. In light of these developments, the paper examines what core concepts, components, and techniques that will be required in the next-generation middleware for dependable distributed computing. The paper puts forward the case for five topics for further research: better coordination facilities for loosely coupled systems, restructuring of the middleware stack for supporting multi-tenancy, replication in the large, negotiation, and enforcement of service agreements, and accountability.','Journal of Internet Services and Applications',1,'Mark LittleSantosh ShrivastavaStuart Wheater','springer/service oriented architecture security.csv','springer','\0'),(439,'Cloud Infrastructure for Higher Education: The Sullivan Experience','2014','0','Cloud Migration;Cloud Security and Cloud Service Provider;IaaS;PaaS;SLA;SaaS','The growth in data traffic within higher institutions has always been accompanied with the adoption of a more scalable IT infrastructure. With the increasing budgetary constraints, cloud computing (a disruptive technology) presents an attractive means to address the scalability challenges while realizing the potential of ubiquitous IT services. The on-demand business proposition of the cloud provides virtualized resources (software, platform, and infrastructure) with far-reaching efficiencies that have lowered the initial and operating IT costs for both small and large organizations. In migrating to the cloud environments, various organizations encounter challenges and experiences which are worthy of considerations by new entrants and established users. In this paper, we present the experiences of Sullivan University in transitioning to the complex cloud environment, in which a mixture of pilot and phased conversion steps were deployed in the migration process.','Information and Computer Technology (GOCICT), 2014 Annual Global Online Conference on',1,'E. Udoh; M. Khan; M. Grosse; D. Arnette','ieee/service oriented architecture security.csv','ieee','\0'),(440,'Intelligible software delivery in smart environments supported by a macro and micro context awareness model','2013','0',' Context-awareness Smart environment Service delivery Intelligibility','Abstract Smart environments help to increase the autonomy and quality of life of people with special needs (PwSN) through adapted assistive services. In conjunction with context awareness and service delivery mechanisms, it is possible to dynamically deliver services to users by taking into account contextual information, e.g., user’s locations, devices’ states, current activities. However, implementing such systems in actual smart spaces is not trivial. The micro and macro context awareness model helps in defining layers on which contextual information are processed as close as possible from their sources (micro), without losing the benefits of information processing at a systemic level (macro). This paper describes the micro and macro context awareness model and its uses in the implementation of a service provision system for smart environments. Transparency and intelligibility are important factors in context awareness system, which help developers to fully understand the full behavior of the systems and help users to learn how the systems work. We therefore accompanied our micro and macro model with an intelligibility model which allow the generation of explanations describing the system’s behaviors according to the processed context. Finally, results coming from the evaluations of the micro/macro model and comparison with related works are presented.','Health and Technology',1,'Charles Gouin-VallerandPatrice RoyBessam AbdulrazakSylvain GirouxAnind Dey','springer/soa security.csv','springer','\0'),(441,'Dynamic provisioning in multi-tenant service clouds','2012','2',' Service-oriented architecture Service clouds Cloud computing Multi-tenant systems','Abstract Cloud-based systems promise an on-demand service provisioning system along with a “pay-as-you-use” policy. In the case of multi-tenant systems this would mean dynamic creation of a tenant by integrating existing cloud-based services on the fly. Presently, dynamic creation of a tenant is handled by building the required components from scratch. Although multi-tenant systems help providers save cost by allocating multiple tenants to the same instance of an application, they incur huge reconfiguration costs. Cost and time spent on these reconfiguration activities can be reduced by re-constructing tenants from existing tenant configurations supported by service providers. Multi-tenant cloud-based systems also lack the facility of allowing clients to specify their requirements. Giving clients the flexibility to specify requirements helps them avoid spending an excessive amount of time and effort looking through a list of services, many of which might not be relevant to them. Moreover, dynamic provisioning in the cloud requires an integrated solution across the technology stack (software, platform and infrastructure) combining functional, non-functional and resource allocation requirements. Existing research works in the area of web service matching, although numerous, still fall short, since they usually consider each requirement type in isolation and cannot provide an integrated solution. To that end, in this paper we investigate the features needed for dynamic service provisioning on the cloud. We propose a novel User Interface-Tenant Selector-Customizer (UTC) model and approach, which enables cloud-based services to be systematically modeled and provisioned as variants of existing service tenants in the cloud. Our approach considers functional, non-functional and resource allocation requirements, which are explicitly specified by the client via the user interface component of the model. To the best of our knowledge, ours is the first such integrated approach. We illustrate our ideas using a realistic running example, and also present a proof-of-concept prototype built using IBM’s Rational Software Architect modeling tool. We also present experimental results demonstrating the applicability of our matching algorithm. Our results show significant reduction in matching time with the help of an elimination process that reduces the search space needed for performing matching.','Service Oriented Computing and Applications',1,'Lakshmi RamachandranNanjangud C. NarendraKarthikeyan Ponnalagu','springer/soa security.csv','springer','\0'),(442,'Fault-Tolerant Control, Fault Diagnosis and Recovery in Runtime of Business Docking Service Composition Flow in the Cloud Environment','2014','0',' Fault-tolerant control Fault diagnosis Business docking service composition flow Services choreography and orchestration','Abstract In the design and remote maintenance of district and city petition business docking platform, loose coupling environment of service composition flow, and autonomy of distributed resources can easily lead to failures of inter-process interaction, the platform running will gradually changes form trouble-free operation to operation with fault, so we design a docking platform with fault-isolation and fault-tolerance control based on services choreography and orchestration, and a remote monitoring system based on fault-diagnosis by fussy inference. More than two years’ operation and remote maintenance verify the effectiveness of the fault-tolerant control mode in the process of business docking services composition. Achieve the goal, that the improving of fault-recovery mechanism and the changing of business docking requirements won’t affect each other. Accordingly, it reduces the complexity of maintenancing services composition software, provides application value in business docking service mode for service computing and cloud computing, and SaaS-level monitoring and repair method.','',1,'Jianhua HanSilu HeHengxin LiJianping Huang','springer/service oriented architecture security.csv','springer','\0'),(443,'Adaptive and Secure Load-Balancing Routing Protocol for Service-Oriented Wireless Sensor Networks','2014','0','Congestion control;load balance;multipath;service-oriented architecture;wireless sensor networks (WSNs)','Service-oriented architectures for wireless sensor networks (WSNs) have been proposed to provide an integrated platform, where new applications can be rapidly developed through flexible service composition. In WSNs, the existing multipath routing schemes have demonstrated the effectiveness of traffic distribution over multipaths to fulfill the quality of service requirements of applications. However, the failure of links might significantly affect the transmission performance, scalability, reliability, and security of WSNs. Thus, by considering the reliability, congestion control, and security for multipath, it is desirable to design a reliable and service-driven routing scheme to provide efficient and failure-tolerant routing scheme. In this paper, an evaluation metric, path vacant ratio, is proposed to evaluate and then find a set of link-disjoint paths from all available paths. A congestion control and load-balancing algorithm that can adaptively adjust the load over multipaths is proposed. A threshold sharing algorithm is applied to split the packets into multiple segments that will be delivered via multipaths to the destination depending on the path vacant ratio. Simulations demonstrate the performance of the adaptive and secure load-balance routing scheme.','IEEE Systems Journal',1,'S. Li; S. Zhao; X. Wang; K. Zhang; L. Li','ieee/service oriented architecture security.csv','ieee','\0'),(444,'Healthcare interoperability-lessons learned from the manufacturing standards sector','2009','1','','The high cost of healthcare in America is well-known, with imperfect interoperability adding as much as $77.8 billion/year to that cost, according to one study [1]. One of the principal causes of this high cost is the large amount of \"paperwork\" - the administrative expenses incurred for each medical procedure. While the debate continues about whether the country would be better off with a single-payer medical system or the current private insurance approach, there are a number of ways to reduce the administrative costs without excessive risk. These costs are essentially about getting information in the right form, to the right place, at the right time - a challenge that is by no means unique to the healthcare industry. This presentation identifies some of the approaches that have been successful in the manufacturing sector to make the sharing of information - interoperability - more efficient. Manufacturing technology has been developing and improving for decades. Principles like lean manufacturing, paperless design, ISO 9000 performance practices and Taguchi methods are a given for today\'s major manufacturers. With trends toward global manufacturing and outsourcing, practices have now evolved to Internetbased communication of engineering designs, inventory levels, purchase orders, and a wide variety of other logistical, financial and technical data. Supporting all this, a suite of standards has been developed, deployed, and winnowed down to some that really help, leaving others that seemed promising but failed to meet expectations by the wayside. So what can we learn from all those years of development, deployment, and trial and error? There are a few \"lowhanging fruit\" that the healthcare community can take advantage of to save years of expensive experimentation. Large, universal solutions tend to be difficult to implement. An expensive lesson that cannot be overemphasized is to avoid the temptation to design a comprehensive, universal solution \"from soup to nuts.\" Choose solutions that can be adopted in bite-size chunks, and ensure that those solutions are extensible. Take advantage of solutions that are already in use in the eCommerce/eBusiness sector. For example, the Open Application Group, Inc. (OAGi) is an open industry consortium that has defined a comprehensive set of \"Business Object Documents,\" or BODs, to exchange information about commercial orders, requests for bids, inventory levels, capacities, and much more. These are in use by auto makers, retailers, governments, and service providers in over 40 countries. As communication needs are being revisited in the healthcare sector, it makes sense to review the catalog of messages from OAGi to see which ones can be used \"out of the box\" and which might be adapted to this industry. As another example, the Object Management Group (OMG) has developed a language called BPMN to describe the flow of business processes and information in a neutral, open way. This allows business partners using a variety of commercial project management tools to integrate their respective procedures. This could be especially useful, given the flow of patients, goods, and information in a clinical environment. Finally, we should build the information exchange protocols on top of established communications layers, using middleware standards including Web Services (from W3C, the World Wide Web Consortium) and ebXML (from UN/CEFACT and OASIS). These international standards are supported by a wide selection of commercial tools that make the goal of seamlessly communicating with your business partners both more achievable and affordable. Build testing into your solution. Often, standards are developed without giving attention to the testing that is critical to a successfully deployed standards-based solution. Several types of testing are needed: validation testing to ensure the standard itself can meet the needs of the users and is of high quality; conformance testing to ensure that software applications meet all of, or a known portion of a standard; and interoperability testing to ensure that different implementations have compatible interpretations of the standard to the extent that meaningful information is transferred from one application to another. Standards that are developed with testing in mind are less expensive to test later on. Having poor interoperability is expensive. Studies at NIST (National Institute of Standards and Technology) such as \"Economic Impact of Inadequate Infrastructure for Supply Chain Integration\" [2] have shown wasted expenses in the billions of dollars directly attributable to data exchange errors. Achieving interoperability is not easy. A NIST report, \"Concepts for Automating Systems Integration\" [3] identifies 23 different dimensions of interoperability problems, only one of which is syntactic conflict (which most people think of when integrating systems). We need to approach this problem with an appreciation of the degree of complexity it presents. Assume the world will always be heterogeneous. \"Integration\" is a process, not an end state (so we must pay attention to the process). It is important to make the integration process itself easy and fluid, because there will constantly be a need to re-integrate a distributed system as technology, tools, and requirements evolve. © 2009 IEEE.','',2,'Ray S.R.','scopus/bpmn security.csv','scopus','\0'),(445,'Where does model-driven engineering help? Experiences from three industrial cases','2013','8',' Model-driven engineering Domain-specific language Simulation Experience report Eclipse Complex systems','Abstract There have been few experience reports from industry on how Model-Driven Engineering (MDE) is applied and what the benefits are. This paper summarizes the experiences of three large industrial participants in a European research project with the objective of developing techniques and tools for applying MDE on the development of large and complex software systems. The participants had varying degrees of previous experience with MDE. They found MDE to be particularly useful for providing abstractions of complex systems at multiple levels or from different viewpoints, for the development of domain-specific models that facilitate communication with non-technical experts, for the purposes of simulation and testing, and for the consumption of models for analysis, such as performance-related decision support and system design improvements. From the industrial perspective, a methodology is considered to be useful and cost-efficient if it is possible to reuse solutions in multiple projects or products. However, developing reusable solutions required extra effort and sometimes had a negative impact on the performance of tools. While the companies identified several benefits of MDE, merging different tools with one another in a seamless development environment required several transformations, which increased the required implementation effort and complexity. Additionally, user-friendliness of tools and the provision of features for managing models of complex systems were identified as crucial for a wider industrial adoption of MDE.','Software & Systems Modeling',2,'Parastoo MohagheghiWasif GilaniAlin StefanescuMiguel A. FernandezBjørn NordmoenMathias Fritzsche','springer/bpmn security.csv','springer','\0'),(446,'Resilient and trustworthy dynamic data-driven application systems (DDDAS) services for crisis management environments','2015','1','Cloud computing; RDaaS; Resilience; Service-oriented computing; Trust and security','Future crisis management systems need resilient and trustworthy infrastructures to quickly develop reliable applications and processes, and ensure end-to-end security, trust, and privacy. Due to the multiplicity and diversity of involved actors, volumes of data, and heterogeneity of shared information; crisis management systems tend to be highly vulnerable and subject to unforeseen incidents. As a result, the dependability of crisis management systems can be at risk. This paper presents a cloud-based resilient and trustworthy infrastructure (known as rDaaS) to quickly develop secure crisis management systems. The rDaaS integrates the Dynamic Data-Driven Application Systems (DDDAS) paradigm into a service-oriented architecture over cloud technology and provides a set of resilient DDDAS-As-A Service (rDaaS) components to build secure and trusted adaptable crisis processes. The rDaaS also ensures resilience and security by obfuscating the execution environment and applying Behavior Software Encryption and Moving Technique Defense. A simulation environment for a nuclear plant crisis management case study is illustrated to build resilient and trusted crisis response processes. © The Authors. Published by Elsevier B.V.','',1,'Badr Y., Hariri S., Al-Nashif Y., Blasch E.','scopus/service oriented architecture security.csv','scopus',''),(447,'Efficient Querying and SOAP Based Streaming of Multimedia Content Using WEB Services','2014','0','SOA;multimedia streaming;web service','Web service standards provides a standard support for interoperability and reusability among various platforms, but in case of streaming multimedia data the current web service standards in terms of data transfer is not well supported. At present mostly Universal Description Discovery and Integration (UDDI) is used for publishing and discovery of multimedia web services providing a key word based search for the user. The web service standards used for delivering the multimedia streaming objects is also not sufficient due to very large object size and also the processing and delivering continuous stream of large scale data is difficult and time consuming to variety of client devices. This paper describes about the Service Oriented Architecture, in using an efficient querying mechanism which is specified in an extension of WSDL using the multimedia content metadata and its descriptions for querying the best service. Transmission of streaming data requires a message exchange protocol (MEP) to be defined and then implement the MEP in their SOAP HTTP bindings of the web service. Processing the demand for non functional requirements such as efficiency and security in streaming increases and the performance of SOAP is impacted by XML processing and communication overheads. To overcome these we go for various compression schemes for SOAP messages, so that the transfer overhead is reduced. By the new querying mechanism the efficiency of finding services can be improved as irrelevant data can be eliminated and by creating the MEP, efficiency is increased in terms of resource consumption.','Intelligent Computing Applications (ICICA), 2014 International Conference on',1,'S. G. C. Isaac; V. U. Devi','ieee/service oriented architecture security.csv','ieee','\0'),(448,'Security and safety of assets in business processes','2012','1','BPMN; monitoring; resource modeling; safety; security','Business processes and service compositions are defined independent of the realizing systems. The visualization of security and safety constraints on the business process model level appears to be a promising approach to system independent specification of the security and safety requirements. Such requirements can be realized through business process annotation and used for communication or documentation, but they also can have an execution semantics that allows for automating the security and safety controls. In this paper, we present a tool-supported framework that extends modeling and execution of business processes with specification, execution and monitoring of the security and safety constraints that are used to protect business assets. We illustrate our approach on basis of a case study modeling a supply chain for perishable goods. © 2012 ACM.','',2,'Monakova G., Brucker A.D., Schaad A.','scopus/bpmn security.csv','scopus','\0'),(449,'Design and implementation of a secure service-oriented workflow platform','2014','1','Security; Service-oriented architecture; Workflow','The current focus of enterprises on automating processes has led to the extensive application of workflow management systems. To integrate traditional workflow management systems with others has previously been difficult; however, rapid development of Web services has solved the communication problems among heterogeneous platforms and allows for the efficient integration of legacy systems. This paper emphasizes the design and implementation of a secure service-oriented workflow platform effectively integrating heterogeneous platforms. Moreover, current system architectures could adopt the developed WSSecurity application framework rapidly and inexpensively.','',1,'Chang T.-K., Huang J.-S.','scopus/service oriented architecture security.csv','scopus','\0'),(450,'Using secureBPMN for modelling security-aware service compositions','2014','','Access Control; BPMN; Confidentiality; SecureBPMN','Today, many systems are built by orchestrating existing services,custom developed services, as well as interaction with users. Theseorchestrations, also called composition plans, are often described usinghigh-level modelling languages that allow for simplifying 1) the implementationof systems by using generic execution engines and 2) the adaptionof deployed systems to changing business needs. Thus, compositionplans play an important role for both communicating business requirementsbetween domain experts and system experts, and serving as abasis for the system implementation.At the same time, ICT systems need to fulfil an increasing numberof security and compliance requirements. Thus, there is a demand forintegrating security and compliance requirements into composition plans.We present SecureBPMN, a language for modelling security propertiesthat can easily be integrated into languages used for describing serviceorchestrations. Moreover, we integrate SecureBPMN into BPMN and,thus, present a common language for describing service orchestration(in terms of business process models) together with their security andcompliance requirements. © Springer International Publishing Switzerland 2014.','',2,'Brucker A.D.','scopus/bpmn security.csv','scopus','\0'),(451,'20th International Science Conference Computer Networks, CN 2013','2013','','','The proceedings contain 58 papers. The special focus in this conference is on Computer Networks. The topics include: Experimental results of dynamic load scheduling in the CMS data acquisition system; client-side processing environment based on component platforms and web browsers; modelling the pertubation of traffic based on Ateb-functions; spatial econometrics models in web server\'s performance; empirical web performance evaluation with MWING system and turning bands method; a note on the local minimum problem in wireless sensor networks; lessons learned from the deployment of wireless sensor networks; analysis and optimization of LEACH protocol for wireless sensor networks; simulation comparison of LEACH-based routing protocols for wireless sensor networks; routing protocols for border surveillance using zigbee-based wireless sensor networks; quantitative risk analysis for data storage systems; onion routing efficiency for web anonymization in various configurations; monitoring system\'s network activity for rootkit malware detection; the concept of using multi-protocol nodes in real-time distributed systems for increasing communication reliability; communication performance tests in distributed control systems; some problems of integrating industrial network control systems using service oriented architecture; spectrum access game for cognitive radio networks with incomplete information; performance modeling of opportunistic networks; differential two-pulses position modulation for synchronized wireless optical communications; a robust method for automatic PCI assignment in LTE; network coding-based QoS and security for dynamic interference-limited networks; simple communication with FPGA device over Ethernet interface; evaluation and development perspectives of stream data processing systems; a two-phase alignment algorithm for matching 3D structures of proteins; transfers of entangled qudit states in quantum networks; an analysis of the ping-pong protocol operation in a noisy quantum channel; modeling data stream intensity in distributed stream processing system; modeling operation of web service; total volume distribution for multiserver queueing systems with random capacity demands; tandem queueing system with correlated input and cross-traffic; analytical and numerical means to model transient states in computer networks; scheduler for virtualization of links with partial performance isolation; biometric voice identification based on fuzzy kernel classifier; automatic speech segmentation for automatic speech translation; WSN power conservation using mobile sink for road traffic monitoring; optimizing data collection for object tracking in wireless sensor networks; data security in microprocessor units; hardware aspects of data transmission in coal mines with explosion hazard; users in IT product development process; automatic customer segmentation for social CRM systems; practical aspects of log file analysis for E-commerce; multi-criteria index selection for grouped SQL queries and applying the bidding mechanism in web services with quality of service.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus','\0'),(452,'Enhancing Aspect-Oriented Business Process Modeling with Declarative Rules','2015','0',' Business process modelling Aspect orientation Cross-cutting concerns Declarative rules','Abstract When managing a set of inter-related business processes, typically a number of concerns can be distinguished that are applicable to more than one single process, such as security and traceability. The proper enforcement of these cross-cutting concerns may require a specific configuration effort for each of the business processes involved. Aspect-Oriented Business Process Modelling is an approach that aims at encapsulating these concerns in a model-oriented way. However, state-of-the-art techniques lack efficient mechanisms that allow for the specification of concerns in such a way that they can be executed in parallel to other parts of the process. Moreover, existing techniques exclusively focus on the formulation of mandatory concerns. To address these limitations, this paper proposes a new approach to encapsulate both optional and mandatory concerns, which can be executed concurrently with other process functionalities. One core element of the new approach is that it extends current Aspect-Oriented Business Process Modelling approaches with declarative rules. Thus, this hybrid approach allows for a sophisticated management of cross-cutting concerns.','',2,'Amin JalaliFabrizio Maria MaggiHajo A. Reijers','springer/bpmn security.csv','springer',''),(453,'Coping with the Complexity of SOA Systems with Message Forensics','2012','0','SOA;forensics;message mediation;messaging network','This paper introduces an approach to construct SOA (Service Oriented Architecture) systems using the so called a synchronous messaging network. An asynchronous messaging network (or simply messaging network) refers to an overlay network (over LAN, VPN, Internet, etc.) that allows exchanging well-formatted asynchronous messages (typically in XML) between the service providers and consumers in the system. The proposed approach aims at reducing the operation and maintenance cost of the system by using a messaging network enhanced with the capability to store, inspect and analyze selected portions of the exchanged messages under the strict control of security and privacy. Complexity makes any information system vulnerable to design flaws, operation error, and security problems. The proposed approach facilitates analyzing these problems associated with complex SOA systems through the message-store analysis. We consider that the application of computer forensics to the message store in SOA helps the system administrator to identify and fix various problems. The requirements for the messaging network for SOA systems are also presented.','Advanced Information Networking and Applications Workshops (WAINA), 2012 26th International Conference on',1,'T. Hayashi; A. Kara; T. Miyazaki; J. Iwase; H. Fukuhara; T. Saburi; M. Hisada','ieee/service oriented architecture security.csv','ieee','\0'),(454,'IRIS-CoMan: Scalable and Reliable Control and Management Architecture for SDN-Enabled Large-Scale Networks','2015','0',' Software-defined network (SDN) SDN controller SDN management Scalability Reliability Middlebox','Abstract A software-defined network (SDN) enables agile network control and configuration as well as shortens the network function deployment time. Despite the projected benefits of an SDN, the abstractions toward the remote and centralized control tend to impose excessive control traffic overhead in order for the controller to acquire global network visibility as well as extend the legacy network’s inaccurate and unreliable management problems into the control plane. In addition, many recent SDNs facilitate multiple management pillars (such as customized interfaces and protocols) so that user applications can directly communicate to the data plane to measure and monitor specific information. Not only logical control centralization, but also virtualization of the underlying computing and network resources add demands of more flexible and programmable monitoring functions per the virtual domain. A complex combination of multiple and heterogeneous management channels introduces the significant scalability, control tuning, and reliability problems in SDN. In this paper, to address the above control and management problems, we propose a highly scalable and reliable SDN control and management architecture, called IRIS Control and Management (IRIS-CoMan). It builds an intelligent agent based hybrid SDN architecture by providing a control and management abstraction and filtering layer. It serves an essential component for the reliable, scalable, and secure SDN deployment. We present design, implementation, deployment, and feasibility evaluation results of IRIS-CoMan.','Journal of Network and Systems Management',1,'Taesang ChoiByungjoon LeeSaehoon KangSejun SongHyungbae ParkSangsik YoonSunhee Yang','springer/soa security.csv','springer',''),(455,'Defining and observing the compliance of service level agreements: A model driven approach','2010','1','BPMN; Domain specific language; IT service management; ITIL; MDA; Metamodels; Process model; Service level agreements; Service level management','IT Service Management (ITSM) is the set of processes that allow planning, organizing, directing and controlling the provisioning of IT services. Among the concerns of ITSM, namely within the service level management process, are the requirements for services availability, performance, accuracy, capacity and security, which are specified in terms of service-level agreements (SLA). SLA definition and monitoring are open issues within the ITSM domain. This paper overviews an ongoing research initiative concerned with three specific problems in this context: (1) SLAs in the context of ITSM are informally specified in natural language; (2) SLAs specifications are not grounded on models of ITSM processes; (3) SLAs compliance verification in IT services is not performed at the same level of abstraction as service design. To mitigate those problems, we propose a model-based approach to IT services SLA specification and compliance verification. The specification part will be based on a SLA language - a domain specific language (DSL) for defining quality attributes as non functional requirements (NFRs) in the context of ITSM. Its metamodel will be an extension of the metamodel of the adopted process modeling language. As such, it will be possible to ground SLA definition on the corresponding IT service model constructs. SLA monitoring and compliance validation will occur at the same abstraction level as service specification, therefore being understood by all stakeholders. © 2010 IEEE.','',2,'Correia A., E Abreu F.B.','scopus/bpmn security.csv','scopus','\0'),(456,'Towards Intelligent Assembly and Manufacturing Environment – Modular ICT Support for Holonic Manufacturing System','2012','0',' knowledge management ontology holonic manufacturing system autonomous system modular system','Abstract This paper discusses the possibilities of a modular and more transparent knowledge management concept for a holonic assembly and manufacturing environment that enhances representation of past and present status of the production system thus allowing autonomous reasoning to be applied. The modular ICT approach is developed for a holonic manufacturing system (HMS). The main characteristics of the system are that it is an open system and has characteristics of a complex system. The system itself is an adaptive system, where different services are needed depending on theevolution of the production system itself. The research approach represented here aims to enhance knowledge management and process control by facilitating the move from technology based solutions to conÞgurable systems and processes where the digital models and modular knowledge management systems can be conÞgured based on the need - not based on the closed legacy systems and Þxed process planning. The principles of modularization such as functionalities and interfaces, are used to deal with interactions of the full system.','',1,'Minna LanzEeva JärvenpääPasi LuostarinenFernando GarciaReijo Tuokko','springer/service oriented architecture security.csv','springer','\0'),(457,'Context-aware Composition of Semantic Web Services','2014','9',' Context-aware computing Context modeling Semantic Web Services Service design Service discovery Service composition','Abstract Service-based systems are usually conceived and executed in highly dynamic environments, characterized by complex and continuously evolving users’ requirements and surrounding conditions. To address this dynamicity, these systems should be designed keeping in mind the different execution contexts where they could be used. This typically impacts service discovery and composition with the aim of dynamically forging the system behavior better fitting a given context. This paper proposes a design approach based on a semantic model for context representation. It is an extension of the OWL-S ontology aimed at enriching the expressiveness of each section of a typical OWL-S semantic service description, by means of context conditions and adaptation rules. By having access to continuously updated context information, these descriptions can be exploited by a discovery/composition tool to automatically find the atomic or composite services that can be better-tuned to the requestor’s behaviors and to the particular situations of the surrounding environment.','Mobile Networks and Applications',1,'Angelo FurnoEugenio Zimeo','springer/soa security.csv','springer','\0'),(458,'Building programmable wireless networks: an architectural survey','2014','8','','Abstract In recent times, there is increasing consensus that the traditional Internet architecture needs to be evolved for it to sustain unstinted growth and innovation. A major reason for the perceived architectural ossification is the lack of the ability to program the network as a system. This situation has resulted partly from historical decisions in the original Internet design which emphasized decentralized network operations through colocated data and control planes on each network device. The situation for wireless networks is no different resulting in a lot of complexity and a plethora of largely incompatible wireless technologies. With traditional architectures providing limited support for programmability, there is a broad realization in the wireless community that future programmable wireless networks would require significant architectural innovations. In this paper, we will present an unified overview of the programmability solutions that have been proposed at the device and the network level. In particular, we will discuss software-defined radio (SDR), cognitive radio (CR), programmable MAC processor, and programmable routers as device-level programmability solutions, and software-defined networking (SDN), cognitive wireless networking (CWN), virtualizable wireless networking (VWN) and cloud-based wireless networking (CbWN) as network-level programmability solutions. We provide both a self-contained exposition of these topics as well as a broad survey of the application of these trends in modern wireless networks.','EURASIP Journal on Wireless Communications and Networking',1,'Junaid QadirNadeem AhmedNauman Ahad','springer/service oriented architecture security.csv','springer','\0'),(459,'Beyond visualization of big data: A multi-stage data exploration approach using visualization, sonification, and storification','2013','2','Analytics; Big data; Sonification; Visualization','As the sheer volume of data grows exponentially, it becomes increasingly difficult for existing visualization techniques to keep pace. The sonification field attempts to address this issue by enlisting our auditory senses to detect anomalies or complex events that are difficult to detect via visualization alone. Storification attempts to improve analyst understanding by converting data streams into organized narratives describing the data at a higher level of abstraction than the input stream that they area derived from. While these techniques hold a great deal of promise, they also each have a unique set of challenges that must be overcome. Sonification techniques must represent a broad variety of distributed heterogeneous data and present it to the analyst/listener in a manner that doesn\'t require extended listening - as visual \"snapshots\" are useful but auditory sounds only exist over time. Storification still faces many human-computer interface (HCI) challenges as well as technical hurdles related to automatically generating a logical narrative from lower-level data streams. This paper proposes a novel approach that utilizes a service oriented architecture (SOA)-based hybrid visualization/ sonification/storification framework to enable distributed human-in-the-loop processing of data in a manner that makes optimized usage of both visual and auditory processing pathways while also leveraging the value of narrative explication of data streams. It addresses the benefits and shortcomings of each processing modality and discusses information infrastructure and data representation concerns required with their utilization in a distributed environment. We present a generalizable approach with a broad range of applications including cyber security, medical informatics, facilitation of energy savings in \"smart\" buildings, and detection of natural and man-made disasters. © 2013 SPIE.','',1,'Rimland J., Ballora M., Shumaker W.','scopus/service oriented architecture security.csv','scopus','\0'),(460,'Formal Approaches for Synthesis of Web Service Business Protocols','2013','0','','Abstract In this paper, we consider the web service business protocol synthesis problem, i.e., the automated construction of a new target protocol by reusing some existing ones. We review recent research works and challenges and discuss the associated computational problems both in bounded and unbounded settings.','',2,'Lhouari NourineFarouk Toumani','springer/bpel security.csv','springer','\0'),(461,'Security solution frames and security patterns for authorization in distributed, collaborative systems','2015','','Access control; Authorization; Distributed systems; Distributed systems security; Security engineering; Security patterns; Security solution frames; Software engineering','The design of an authorization infrastructure is one of the most important aspects of engineering a secure software system. Unlike other system types, distributed systems - and especially distributed collaborative systems - can require custom, fine-grained authorization models and enforcement approaches that are able to take into account a range of semantic subtleties. In this paper we present a comprehensive, pattern-oriented software engineering approach to authorization for general distributed systems - with particular applicability to distributed collaborative systems - that allows developers to build custom, application-specific conceptual authorization models in a simple yet extensible manner, and to make informed decisions regarding their enforcement in software, as well as how their supporting rule/policy infrastructure should be designed. Our authorization approach is embodied in two instances of a new pattern-based security engineering construct called a security solution frame, which groups together related patterns - both security \"product\" and micro-process patterns - in different sub-structures, horizontally and vertically, for a single high-level security policy (in our case authorization and policy management). By applying specific micro-process patterns in each solution frame, developers are guided in using relevant \"product\" patterns to progressively construct a distributed authorization infrastructure - from abstract concepts toward concrete designs, via a number of levels of abstraction implying solution refinement and corresponding to stages of the development life-cycle. The summary-form \"product\" patterns encapsulated in each frame also help developers to form a holistic, \"global\" view when analyzing existing infrastructures. We illustrate and evaluate the proposal in the context of greenfield system development by applying our solution frames to design the authorization infrastructure of a (new) distributed system for secure file sharing and collaborative editing; and also use our solution frames to briefly analyze and capture the design decisions underlying two existing distributed authorization infrastructures: one based on UCON for collaborative Grid systems and another based on ZBAC for SOA-based systems. © 2015 Elsevier Ltd. All rights reserved.','',1,'Uzunov A.V., Fernandez E.B., Falkner K.','scopus/soa security.csv','scopus',''),(462,'Improving Web Service Security and Privacy','2011','3','privacy;security','This paper proposes a scheme that allows the webservice providers to carry out fine-grained access control onthe data hosted by them. Through data tracking, the schemealso automatically detects the data flows that might lead toattacks on online services. Compared with existing schemes,the proposed scheme is more flexible in managing the data onthe service provider. The scheme relieves the programmersfrom enforcing access control and detecting data flow violationin their applications.','2011 IEEE World Congress on Services',1,'X. Ye; L. Zhong','ieee/webservice security.csv','ieee','\0'),(463,'A speculation on a framework that provides highly organized services for manufacturing','2015','','PLM;SCM;analitics;efficiency;manufacturing;service','Recently, a movement that seeks a novel level of manufacturing occurs in many countries such as Industrie 4.0 in Germany. The goal of such activities is to improve efficiency in every field of manufacturing by applying the ICT. One of the issues in this movement is vertical integration of services from plant floor to decision making via some BI tools for visualization. We propose a framework that can accommodate any kinds of services and provide a session control that enables a session with any combination of services on the framework, since the existing SOA software is not good enough in flexibility of adopting services and processing data with low latency. We also assume that the framework runs on data centers said “cloud”, and issues regarding security are considered as well.','2015 IEEE International Conference on Automation Science and Engineering (CASE)',1,'T. Sakakura','ieee/service oriented architecture security.csv','ieee',''),(464,'Overall security solutions for OPC UA based monitoring and control application','2014','','Framework; OPC UA; PKI; SOA; Webservice','Together with the global trend, the currently popular accessing model is using Service Oriented Architecture (SOA), working based on available IT infrastructure following the industrial standard OPC UA, in order to create a new environment providing monitoring, controlling and managing industrial manufacturing system effectively. In this paper, we propose a framework based on the combination between SOA and OPC UA for the designing, improving software systems applied to monitoring, controlling and managing production assembly lines. Also, we provide secuirty solution that are proposed and applied to control and monitoring system based on OPC UA standard. Basing on the proposed framework, software developers can easily implement to design, to build monitoring, controlling systems and to manage different industry assembly lines, ensuring the characteristics of inheriting developing and improving the systems flexibly, being able to enlarge and link among different systems. © Springer International Publishing Switzerland 2014.','',1,'Tu N.T.T., Thang H.Q.','scopus/service oriented architecture security.csv','scopus','\0'),(465,'On-the-Fly Change Propagation for the Co-evolution of Business Processes','2013','2','','Abstract In large organisations multiple stakeholders may modify the same business process. This paper addresses the problem when stakeholders perform changes on process views which become inconsistent with the business process and other views. Related work addressing this problem is based on execution trace analysis which is performed in a post-analysis phase and can be complex when dealing with large business process models. In this paper we propose a design-based approach that can efficiently check consistency criteria and propagate changes on-the-fly from a process view to its reference process and related process views. The technique is based on consistent specialisation of business processes and supports the data- and control flow perspective. This technique reduces the steps performed in the evolution of business processes by embedding the consistency checks and change propagation into the change enactment phase of the evolution.','',2,'Shamila MafaziGeorg GrossmannWolfgang MayerMarkus Stumptner','springer/bpmn security.csv','springer','\0'),(466,'New XACML-AspectBPEL approach for composite web services security','2013','3','AOP; BPEL; RBAC; Security; Web services security; XACML','Web services technology is the latest evolution in distributed computing. With all of the advantages of web services, one of the main hurdles remains security in composite web services. In this paper, we tackle this problem through a new approach towards the integration of security into the BPEL (Business Process Execution Language) process of composite web services. Our approach allows specifying the XACML (eXtensible Access Control Markup Language) policies that determine join points in a BPEL process where security is needed. Subsequently, BPEL flows with the needed security are generated into AspectBPEL security aspects to be weaved in the aforementioned process. The main contributions of our approach are: (a) describing dynamic security policies using a standard language XACML, (b) generating automatically the AspectBPEL aspects of the XACML policies and (c) separating the business and security concerns of composite web services, hence developing and updating them separately at the BPEL side. Copyright © 2013 Inderscience Enterprises Ltd.','',2,'Ayoubi S., Mourad A., Otrok H., Shahin A.','scopus/bpel security.csv','scopus','\0'),(467,'Service Acquisition for Mobile Users in Future Internet','2014','0',' Mobile service acquisition Providers cooperation Service provisioning Service roaming e-Negotiations','Abstract Mobility offers a great deal of advantages. However, mobile users are currently restricted by the network coverage of providers, their access network technologies and the networking capabilities of mobile devices. Moreover, mobile users have to be involved in time consuming and inflexible manual interactions with internet access service providers in order to sign long term contracts. In this paper, a novel framework, which liberates mobile users from predefined, long-term contracts, is presented. This framework enables mobile users to dynamically acquire any kind of Internet Service, irrespectively of their location and the mobile device used. This is based on the automation of the service acquisition process and the collaboration of providers that is required to satisfy end-users’ requests. The flexible communication and negotiation framework that was defined enables automated negotiations between all parties and can be used as basis towards automated service acquisition for mobile users in future internet.','Wireless Personal Communications',1,'Giannis KoumoutsosKleanthis Thramboulidis','springer/service oriented architecture security.csv','springer','\0'),(468,'20th European Conference on System and Software Process Improvement, EuroSPI 2013','2013','','','The proceedings contain 31 papers. The special focus in this conference is on System and Software Process Improvement. The topics include: Making software safety assessable and transparent; simulating global software development processes for use in education; research prototypes versus products; an analysis of the software development processes of open source E-learning systems; an automated approach for fault injection testing of BPEL orchestrations; a framework to support software quality trade-offs from a process-based perspective; discovering and studying collaboration networks in software repositories; the many facets of high-performing software teams; tailoring the software product management framework for use in a healthcare organization; review of critical success factors related to people in software process improvement; a proposal for the improvement predictability of cost using earned value management and quality data; involvement of stakeholders in software processes improvement to reduce change resistance; evidence of agile adoption in software organizations; definitions of agile software development and agility; a meta-framework for sustaining the value of innovation in multi-cultural settings; fostering innovation and entrepreneurship in European VET; customer-driven software product development software products for the social media world - a case study; framework to assist healthcare delivery organisations and medical device manufacturers establish security assurance for networked medical devices and experience with an integrated risk management process in the medical regulatory environment.','',2,'[No author name available]','scopus/bpel security.csv','scopus','\0'),(469,'Validation of User Intentions in Process Models','2012','2',' requirement modeling goal-oriented process engineering inconsistency detection','Abstract Goal models and business process models are complementary artifacts for capturing the requirements and their execution flow in software engineering. Usually, goal models serve as input for designing business process models, and it requires mappings between both types of models. Due to the large number of possible configurations of elements from both goal models and business process models, developers struggle with the challenge of maintaining consistent configurations of both models and their mappings. Managing these mappings manually is error-prone. In our work, we propose an automated solution that relies on Description Logics and automated reasoners for validating mappings that describe the realization of goals by activities in business process models. The results are the identification of two inconsistency patterns – strong inconsistency and potential inconsistency, and the development of the corresponding algorithms for detecting inconsistencies.','',2,'Gerd GrönerMohsen AsadiBardia MohabbatiDragan GaševićFernando Silva ParreirasMarko Bošković','springer/bpel security.csv','springer','\0'),(470,'Extracting and analyzing the implemented security architecture of business applications','2013','4','reverse engineering; software security; static analysis; threat modeling','Security is getting more and more important for the software development process as the advent of more complex, connected and extensible software entails new risks. In particular, multi-tier business applications, e.g., based on the Service-Oriented Architecture (SOA), are vulnerable to new attacks, which may endanger the business processes of an organization. These applications consist often of legacy code, which is now exported via Web Services, although it has originally been developed for internal use only. The last years showed great progress in the area of static code analysis for the detection of common low level security bugs, such as buffer overflows and cross-site scripting vulnerabilities. However, there is still a lack of tools that allow an analyst to assess the implemented security architecture of an application. In this paper, we propose a technique that automatically extracts the implemented security architecture of Java-based business applications from the source code. In addition, we carry out threat modeling on this extracted architecture to detect security flaws. We evaluate and discuss our approach with the help of two commercial real-world case studies, one taken from the e-government domain and the other one from logistics. © 2013 IEEE.','',1,'Berger B.J., Sohr K., Koschke R.','scopus/service oriented architecture security.csv','scopus','\0'),(471,'SecureBPMN: Modeling and enforcing access control requirements in business processes','2012','27','BPMN; Process security; RBAC; SecureBPMN','Modern enterprise systems have to comply to regulations such as Basel III resulting in complex security requirements. These requirements need to be modeled at design-time and enforced at runtime. Moreover, modern enterprise systems are often business-process driven, i.e., the system behavior is described as high-level business processes that are executed by a business process execution engine. Consequently, there is a need for an integrated and tool-supported methodology that allows for specifying and enforcing compliance and security requirements for business process-driven enterprise systems. In this paper, we present a tool chain supporting both the design-time modeling as well as the run-time enforcement of security requirements for business process-driven systems. Copyright 2012 ACM.','',2,'Brucker A.D., Hang I., Lückemeyer G., Ruparel R.','scopus/bpmn security.csv','scopus',''),(472,'Establishing Distributed Governance Infrastructures for Enacting Cross-Organization Collaborations','2016','0',' Decentralized autonomous organizations E-governance Smart contract Open cloud ecosystem Service orientation','Abstract The emergence of blockchain 2.0 technology enables novel agile business networking collaborations for decentralized autonomous organizations (DAO). Smart contracts are enactable by service-oriented cloud computing and blockchain technology for governing DAOs that engage in business collaborations. The distributed governance infrastructure (DGI) for such governance involves an ecosystem of agents, policies, services, and so on. To the best of our knowledge, a formal investigation of the lifecycle for establishing such a DGI has not been explored so far. This paper fills the gap by establishing a formalized DGI intended for the enactment of smart contracts for electronic communities of DAOs. The evaluation of the DGI-lifecycle is performed by means of model checking and discussing what pre-existing systems and also by means of discussing what pre-existing solutions exist for an application-system implementation.','',1,'Alex Norta','springer/service oriented architecture security.csv','springer',''),(473,'Composing Security Protocols: From Confidentiality to Privacy','2015','0','','Abstract Security protocols are used in many of our daily-life applications, and our privacy largely depends on their design. Formal verification techniques have proved their usefulness to analyse these protocols, but they become so complex that modular techniques have to be developed. We propose several results to safely compose security protocols. We consider arbitrary primitives modeled using an equational theory, and a rich process algebra close to the applied pi calculus. Relying on these composition results, we derive some security properties on a protocol from the security analysis performed on each of its sub-protocols individually. We consider parallel composition and the case of key-exchange protocols. Our results apply to deal with confidentiality but also privacy-type properties ( e.g. anonymity) expressed using a notion of equivalence. We illustrate the usefulness of our composition results on protocols from the 3G phone application and electronic passport.','',1,'Myrto ArapinisVincent ChevalStéphanie Delaune','springer/service oriented architecture security.csv','springer',''),(474,'A Protocol for the Atomic Capture of Multiple Molecules on Large Scale Platforms','2012','3','','Abstract With the rise of service-oriented computing, applications are more and more based on coordination of autonomous services. Envisioned over largely distributed and highly dynamic platforms, expressing this coordination calls for alternative programming models. The chemical programming paradigm, which models applications as chemical solutions where molecules representing digital entities involved in the computation, react together to produce a result, has been recently shown to provide the needed abstractions for autonomic coordination of services. However, the execution of such programs over large scale platforms raises several problems hindering this paradigm to be actually leveraged. Among them, the atomic capture of molecules participating in concurrent reactions is one of the most significant. In this paper, we propose a protocol for the atomic capture of these molecules distributed and evolving over a large scale platform. As the density of possible reactions is crucial for the liveness and efficiency of such a capture, the protocol proposed is made up of two sub-protocols, each of them aimed at addressing different levels of densities of potential reactions in the solution. While the decision to choose one or the other is local to each node participating in a program’s execution, a global coherent behaviour is obtained. Proof of liveness, as well as intensive simulation results showing the efficiency and limited overhead of the protocol are given.','',1,'Marin BertierMarko ObrovacCédric Tedeschi','springer/service oriented architecture security.csv','springer','\0'),(475,'Exploring the ambient assisted living domain: a systematic review','2016','0',' Ambient assisted living Active assisted living AAL Systematic literature review Assistive technologies Assistive needs Elderly','Abstract Ambient assisted living (AAL) is focused on providing assistance to people primarily in their natural environment. Over the past decade, the AAL domain has evolved at a fast pace in various directions. The stakeholders of AAL are not only limited to patients, but also include their relatives, social services, health workers, and care agencies. In fact, AAL aims at increasing the life quality of patients, their relatives and the health care providers with a holistic approach. This paper aims at providing a comprehensive overview of the AAL domain, presenting a systematic analysis of over 10 \n years of relevant literature focusing on the stakeholders’ needs, bridging the gap of existing reviews which focused on technologies. The findings of this review clearly show that until now the AAL domain neglects the view of the entire AAL ecosystem. Furthermore, the proposed solutions seem to be tailored more on the basis of the available existing technologies, rather than supporting the various stakeholders’ needs. Another major lack that this\n review is pointing out is a missing adequate evaluation of the various solutions. Finally, it seems that, as the domain of AAL is pretty new, it is still in its incubation phase. Thus, this review calls for moving the AAL domain to a more mature phase with respect to the research approaches.','Journal of Ambient Intelligence and Humanized Computing',1,'Davide CalvaresiDaniel CesariniPaolo SernaniMauro MarinoniAldo Franco DragoniArnon Sturm','springer/soa security.csv','springer',''),(476,'Towards RESTful Communications in Self-managing Pervasive Systems','2013','0',' RESTful services Sensors Web Application pervasive computing','Abstract The presence of heterogeneous communication protocols and interfaces prevents from giving self-managing capabilities to service systems. This paper proposes the exploitation of the widely adopted HTTP protocol to create a shared platform that fosters the definition of services that can be easily integrated and controlled. Such services will be provided with RESTful interface and interaction style to gather data and control behavior of sensors to support the development of sensor services integrated with other services in pervasive systems.','',1,'Meherun Nesa LuckyChristina TziviskouFlavio De Paoli','springer/service oriented architecture security.csv','springer','\0'),(477,'BPM Supported Privacy by Design for Cross-Organization Business Processes','2015','0',' BPM Privacy by design Process design Resource lifecycle analysis','Abstract Satisfying privacy related obligations within IT systems that involve multiple organizations is one of the most important, yet challenging tasks in security engineering. When systems involve multiple actors, resources and computing devices, identifying data flows, actors’ liabilities and accesses on data become fundamental requisites for taking appropriate design choices to preserve privacy. To facilitate these tasks, principles such as Privacy by Design have been proposed. However, applying such principles implies rethinking the whole project development lifecycle in order to fulfil at the same time privacy, technical and administrative requirements from early stages of systems design. This paper reports our work on a project undertaken by the Province of Trento (Italy) on integrating social, health and other assistance services for elders. Within the project, we used business processes to support systems’ design and development, from analysis to execution, while at the same time fulfilling privacy related objectives. Specifically, we show how by modelling cross-organization processes and by focusing on involved actors and managed resources, we can provide the necessary tools to involve analysts, designers, project managers and privacy experts during systems’ design and support them to satisfy both privacy and technical requirements. The resulting process models are also used for partial automation and integration of involved services.','',2,'Jovan StevovicPaolo SottoviaMaurizio MarcheseGiampaolo Armellin','springer/bpmn security.csv','springer',''),(478,'Exemplary Use Cases Based on the Generic Data Model for the Integrated Intelligent Computer-Assisted Language Learning (iiCALL) Environment','2014','0','Computer-Assisted Language Learning, Generic Data Model, Integrated E-Learning, Learning of Foreign Languages, Natural Language Processing, Semantic Web Technologies, iiCALL','Based on the idea of Health Level Seven International (HL7) version 3 and its initial architecture and database design, a generic data model for the Integrated Intelligent Computer-Assisted Language Learning (iiCALL) environment has been developed. Open technologies for communication and a knowledge-based and service-oriented architecture (SOA) are key factors of iiCALL. The development process of iiCALL concentrates on object-oriented analysis and object-oriented design. According to the development process of HL7, use-case driven development yields to a message information model which is explained in detail for exemplary use cases.','',1,'Harald Wahl and Werner Winiwarter','acm/service oriented architecture security.csv','acm','\0'),(479,'Incorporating Security Features in Service-Oriented Architecture Using Security Patterns','2015','0','SOA, Security Patterns, Service Composition, Web Services','Service-Oriented Architecture is an architectural style where different heterogeneous components share information with each other by using special types of messages based on the protocol known as Simple Object Access Protocol. Various technologies, such as Common Object Request Broker Architecture, Java 2 Platform, Enterprise Edition, Java Message Service etc. are applied to realize Service-Oriented Architecture for different applications. Besides these approaches, two other techniques, REpresentational State Transfer, and web services are applied for the realization of Service-Oriented Architecture. Web services provide a platform independent communication scheme between applications. The security preservation among the composition of services is an important task for Service-Oriented Architecture. In this study, an attempt is made to incorporate security features in Service- Oriented Architecture with the help of software security patterns. This scheme is described by developing an architectural model integrated with security goals and security patterns. The structural and behavioral aspects of composition of web services incorporated with security features are presented using a Unified Modeling Language class diagram and a sequence diagram respectively. At the end of this study, an evaluation is performed between identified security patterns and critical security properties along with Service-Oriented Architecture design principles. A case study of an online banking system is considered to explain the use of security patterns.','',1,'Ashish Kumar Dwivedi and Santanu Kumar Rath','acm/service oriented architecture security.csv','acm',''),(480,'Cost Efficiency Strategy in the Software-as-a-Service Market: Modeling Results and Related Implementation Issues','2013','0',' Competition Economic Analysis IT-Enabled Services Pricing Strategy Service Science Software-as-a-Service Strategy','Abstract We model competition between software-as-a-service (SaaS) vendors by focusing on several key features of SaaS. These include: differences in vendor offerings; incomplete information for the clients side about the vendor’s capability to offer well-fitting services, and the clients’ learning costs and options to switch. Our findings suggest pricing strategies that will be effective for the SaaS vendor. High cost efficiency in the operations of the SaaS business model is key for the vendor to gain leverage to retain the client by making its switching costs too high, and to achieve high profitability in the process by implementing the appropriate strategies in the appropriate customer segments. We also extend the analysis by considering a broader set of implementation issues related to mechanism design choices in the SaaS market that arise around our modeling approach.','',1,'Robert J. KauffmanDan Ma','springer/service oriented architecture security.csv','springer','\0'),(481,'A Formal Model of Service Network and Its Description Using Pi-calculus','2012','0','Formal Model;Pi-calculus;Service Network','The concept of service network really helps to achieve dynamic, flexible, self-service composition. Service network is composed of nodes. The channel structure of nodes reflects the interaction between services and the dynamic structure of service composition. Besides a brief review and summary of the recent research of service composition and the formal description of interface, this paper defines the abstract service, service and the channel between them as the basic of service network. The definition of abstract service and service is given through the formal description of the syntax and semantic structure of channel. The relationship between channels is defined upon the definition mentioned above. All of the concept mentioned above can be described by Pi-calculus, and the validity of them is explained through an example at the end. The formal model presented in this paper provides the theoretical foundation for several works that base on service network, such as the dynamic service composition, the authentication of the correctness and consistency of service composition, and security of service composition.','Computer Science & Service System (CSSS), 2012 International Conference on',1,'J. Hu; Z. Y. Feng','ieee/service oriented architecture security.csv','ieee','\0'),(482,'Publishing and discovering context-dependent services','2013','33',' Service publication Service discovery Service ranking Context-awareness Trustworthy service provision','Abstract In service oriented computing, service providers and service requesters are main interacting entities. A service provider publishes the services it wishes to make public using service registries. A service requester initiates a discovery process to find the service that meets its requirements using the service registries. Current approaches for the publication and discovery do not realize the essential relationship between the service contract and the conditions in which the service can guarantee its contract. Moreover, they do not use any formal methods for specifying services, contracts, and compositions. Without a formal basis it is not possible to justify through a rigorous verification the correctness conditions for service compositions and the satisfaction of contractual obligations in service provisions. In our recent works, we have identified the role of contextual information, trustworthiness information and legal rules in service provision. This paper focuses on the publication and discovery of trustworthy context-dependent services as supported by the novel framework FrSeC . It introduces a novel ranking algorithm that ranks trustworthy context-dependent services according to the degree they match service requesters requirements. Finally, this paper introduces a prototype implementation for the matching and ranking of services as supported by FrSeC .','Human-centric Computing and Information Sciences',1,'Naseem IbrahimMubarak MohammadVangalur Alagar','springer/service oriented architecture security.csv','springer',''),(483,'A Life-Cycle Model for Software Service Engineering','2013','0',' Software service engineering service variability cloud standards','Abstract Applying existing life-cycle models to software service engineering, we identify shortcomings: they do not focus on engineering activities, lack a clear underlying definition of software services, do not address both service roles of consumer and provider, and assume longevity and sequence of activities. We present a life-cycle model for software service engineering to tackle these shortcomings. We illustrate the model’s prescriptive use by applying it to assess software service variability and software service standardization .','',1,'Erik WitternRobin Fischer','springer/service oriented architecture security.csv','springer','\0'),(484,'Architecture for a universal mobile communication module','2013','3','','The current trend in the field of supervisory control systems is focusing attention on mobile devices. The main objective is to meet requirements such as security access, connection speed, mobility and portability of applications. One trend is the use of mobile devices and the associated limitations on the development of the application. The main objective of this paper is to describe and analyze the problems arising in the development of visualization applications for mobile devices, focusing on the communication module. The solution to this problem is described in the Scrum lifecycle model that was used to create the application and its modules. Another objective was to highlight the issue of supervisory control of applications for mobile devices based on the operating system.','Applied Machine Intelligence and Informatics (SAMI), 2013 IEEE 11th International Symposium on',1,'I. Zolotová; L. Laciňák; T. Lojka','ieee/service oriented architecture security.csv','ieee','\0'),(485,'Active Linking Attacks','2015','0','','Abstract We study linking attacks on communication protocols. We observe that an active attacker is strictly more powerful in this setting than previously-considered passive attackers. We introduce a formal model to reason about active linking attacks, formally define security against these attacks and give conditions for both security and insecurity of protocols. In addition, we introduce a composition-like technique that allows to obtain security proofs by only studying small components of a protocol.','',1,'Henning SchnoorOliver Woizekowski','springer/webservice security.csv','springer',''),(486,'Multi-user web service selection based on multi-QoS prediction','2014','8',' Web services Service selection QoS Multi-user QoS prediction','Abstract In order to find best services to meet multi-user’s QoS requirements, some multi-user Web service selection schemes were proposed. However, the unavoidable challenges in these schemes are the efficiency and effect. Most existing schemes are proposed for the single request condition without considering the overload of Web services, which cannot be directly used in this problem. Furthermore, existing methods assumed the QoS information for users are all known and accurate, and in real case, there are always many missing QoS values in history records, which increase the difficulty of the selection. In this paper, we propose a new framework for multi-user Web service selection problem. This framework first predicts the missing multi-QoS values according to the historical QoS experience from users, and then selects the global optimal solution for multi-user by our fast match approach. Comprehensive empirical studies demonstrate the utility of the proposed method.','Information Systems Frontiers',1,'Shangguang WangChing-Hsien HsuZhongjun LiangQibo SunFangchun Yang','springer/service oriented architecture security.csv','springer','\0'),(487,'DFCloud: A TPM-based secure data access control method of cloud storage in mobile devices','2012','1','ARM TrustZone;TPM;cloud storage service;security','Using the cloud storage services, users can access their data in any time, at any place, even with any computing device including mobile devices. Although these properties provide flexibility and scalability in handling data, security issues should be handled especially when mobile devices try to access data stored in cloud storage. Currently, a typical cloud storage service, Dropbox, offers server-side data encryption for security purpose. However, we think such method is not secure enough because all the encryption keys are managed by software and there is no attestation on the client software integrity. Moreover, a simple user identification based on user ID and Password is also easy to be compromised. Data sharing which is critical in enterprise environment is significantly restricted because it is not easy to share encryption key among users. In this paper, we propose DFCloud, a secure data access control method of cloud storage services to handle these problems found in the typical cloud storage service Dropbox. DFCloud relies on Trusted Platform Module (TPM) [1] to manage all the encryption keys and define a key sharing protocol among legal users. We assume that each client is mobile device using ARM TrustZone [2] technology. The DFCloud server prototype is implemented using ARM Fastmodel 7.1 and Open Virtualization software stack for ARM TrustZone. For DFCloud client, TPM functions are developed in the secure domain of ARM TrustZone because most ARM-based mobile devices are not equipped with TPM chip. The DFCloud framework defines TPM-based secure channel setup, TPM-based key management, remote client attestation, and a secure key share protocol across multiple users/devices. It is shown that our concept works correctly through a prototype implementation.','Cloud Computing Technology and Science (CloudCom), 2012 IEEE 4th International Conference on',1,'J. Shin; Y. Kim; W. Park; C. Park','ieee/service oriented architecture security.csv','ieee','\0'),(488,'Systems-Theoretic View of Component-Based Software Development','2012','2',' Systems theory supervisory control theory component-based software development component model formal method hierarchical control controller synthesis','Abstract This paper investigates component-based software development in the perspective of systems theory. In the proposed systems-theoretic view, a complex system is organized hierarchically from horizontal and vertical aggregations of components, but more important is the explicit control at each level of the hierarchy. Control actions are then determined by controllers that enforce constraints imposed on components and their interaction, and thus reduce their degree of autonomy. Not only the system behavior is restrained but nonfunctional properties emerge at each level. The finer the exercised control, the richer emergent properties should be. Therefore, achieving nonfunctional properties, such as liveness, predictability, safety and security, corresponds to solving control problems. The supervisory control theory initiated in the early and mid eighties is a mathematical apparatus that helps to accomplish this task in a rigorous way.','',2,'Daniel CôtéMichel Embe JiagueRichard St-Denis','springer/bpel security.csv','springer','\0'),(489,'Value-centric design of the internet-of-things solution for food supply chain: Value creation, sensor portfolio and information fusion','2015','13',' Internet-of-things (IoT) Food supply chain Value-centric design Sensor portfolio Information fusion Industrial information integration engineering (IIIE)','Abstract The revolution of Internet-of-Things (IoT) is reshaping the modern food supply chains with promising business prospects. To be successful in practice, the IoT solutions should create “income-centric” values beyond the conventional “traceability-centric” values. To accomplish what we promised to users, sensor portfolios and information fusion must correspond to the new requirements introduced by this income-centric value creation. In this paper, we propose a value-centric business-technology joint design framework. Based on it the income-centric added-values including shelf life prediction, sales premium, precision agriculture, and reduction of assurance cost are identified and assessed. Then corresponding sensor portfolios are developed and implemented. Three-tier information fusion architecture is proposed as well as examples about acceleration data processing, self-learning shelf life prediction and real-time supply chain re-planning. The feasibilities of the proposed design framework and solution have been confirmed by the field trials and an implemented prototype system.','Information Systems Frontiers',1,'Zhibo PangQiang ChenWeili HanLirong Zheng','springer/service oriented architecture security.csv','springer',''),(490,'Modeling and enforcing secure object flows in process-driven SOAs: an integrated model-driven approach','2014','5',' Process modeling Secure object flows Security engineering Service-oriented architecture Model-driven development UML SoaML Web services','Abstract In this paper, we present an integrated model-driven approach for the specification and the enforcement of secure object flows in process-driven service-oriented architectures (SOA). In this context, a secure object flow ensures the confidentiality and the integrity of important objects (such as business contracts or electronic patient records) that are passed between different participants in SOA-based business processes. We specify a formal and generic metamodel for secure object flows that can be used to extend arbitrary process modeling languages. To demonstrate our approach, we present a UML extension for secure object flows. Moreover, we describe how platform-independent models are mapped to platform-specific software artifacts via automated model transformations. In addition, we give a detailed description of how we integrated our approach with the Eclipse modeling tools.','Software & Systems Modeling',2,'Bernhard HoislStefan SobernigMark Strembeck','springer/bpel security.csv','springer',''),(491,'An XRI naming system for dynamic and federated clouds: a performance analysis','2011','0',' Cloud computing Cloud name space Cloud naming system Cloud federation XRI XRDS','Abstract Cloud platforms are dynamic, self-optimizing, continuously changing environments where resources can be composed with other ones in order to provide many types of services to their users, e.g., companies, governments, organizations, and desktop/mobile clients. In order to enable cloud platforms to manage and control their assets, they need to name, identify, and resolve their virtual resources in different operating contexts. In such a scenario, naming, resource location, and information retrieval raise several issues regarding name space management. This paper aims to propose a standard practice for the implementation of a cloud naming system based on the eXtensible Resource Identifier (XRI) technology. More specifically, by means of the development of a Cloud Name Space Management (CNSM) front-end interacting with the OpenXRI architecture, we investigate its performance simulating typical cloud name space management tasks.','Journal of Internet Services and Applications',1,'Antonio CelestiMassimo VillariAntonio Puliafito','springer/microservice security.CSV','springer',''),(492,'Modeling Security Features of Web Applications','2014','0',' UML-based web engineering secure web engineering web applications UML security Energy Management System Smart Home','Abstract Securing web applications is a difficult task not only, because it is hard to implement bulletproof techniques, but also because web developers struggle to get an overview of how to avoid security flaws in a concrete application. This is aggravated by the fact that the description of a web application’s security concept is often scattered over lengthy requirements documents, if documented at all. In this chapter, we extend the graphical, UML-based Web Engineering (UWE) language to model security concepts within web applications, thus providing the aforementioned overview. Our approach is applied to a case study of an Energy Management System that provides a web interface for monitoring energy consumption and for configuring appliances. Additionally, we give an overview of how our approach contributes to the development of secure web applications along the software development life cycle.','',2,'Marianne BuschNora KochSantiago Suppan','springer/bpmn security.csv','springer',''),(493,'SOA based cloud computing trust model research with a curve fitting method','2012','','Cloud computing; Curve fitting; Quantification; Trust model','This paper proposes a cloud computing trust model based-on SOA by combining the characteristics of SOA, and discusses the relation between the service and users in the cloud computing. Meanwhile, proposes a curve fitting based trust selecting and updating mechanism to ensure the authenticity and accuracy of the trust relation. Finally, verifies the rationality of the trust model in terms of the curve fitting function and mathematical experiment analysis of this trust model. © 2012 IEEE.','',1,'Ye R., Wu Q.','scopus/soa security.csv','scopus','\0'),(494,'An architecture for managing large fleets on inexpensive OBUs','2012','','Architecture; Concepts; Fleet; GNSS; ICT; Inexpensive; Manageability; Management; Mobile; Network; OBU; Operation; OTA; Phone; Protocol; Services; Smartphone; SOA; Telematics','There are various concepts for designing powerful and / or cost-efficient on-board units used for applications like tracking, pay as you drive, tolling, or 3rd party telematics applications. Usually, these devices are designed to be cost efficient, meaning powerful enough for the task they shall perform. If however, large fleets of devices have to managed, other aspects gain importance; \"Manageability\" is the generic term for most of these aspects. This paper outlines concepts based on services and services management as one key concept for managing large fleets of OBUs with potentially heterogeneous service profiles reliably. Within this paper we will show that it is necessary to analyse three distinct parts separately. Hardware of the unit needs to support the management and OTA concepts OS and file system need to support update of all elements with failsafe recovery Communication Protocols play an important role for safety, robustness and channel management. Backend functionalities need to include security, services management, status monitoring and act as gateway for third party provisioning of services and data. Overall Process management for profiles, user, and certification issues are topics often underestimated. Know how gained from GNSS RUC and mobile network management is the foundation for a qualified management of the issues mentioned.','',1,'Vierroth V., Funk M.A.','scopus/soa security.csv','scopus','\0'),(495,'Interoperable support for collaborative, mobile, and accessible health care','2012','13',' Collaborative care delivery Ontology Process interoperability People and process interoperability','Abstract E-Health systems, through their use of Internet and wireless technologies, offer the possibility of near real-time data integration to support the delivery and management of health care. In practice, the wide range of choice in technologies, vendors, protocols, formats, and information representations can make even simple exchanges of information between systems problematic. Much of the focus on healthcare interoperability has been on resolving interoperability issues of system to system information exchanges. But issues around people to people interactions and people to system interactions are just as important to address from an interoperability point of view. In this paper, we identify interoperability deficiencies in collaborative care delivery and develop a methodology in two parts. In the first part, an ontology is developed to represent collaborative care delivery. In the second part, the ontology is used to design an architecture for interoperable clinical information system design. We then use a case study in palliative care to provide a proof of concept of the methodology. The case study provides an inventory of the interoperability requirements for palliative care and a perspective on the design and implementation of a people oriented clinical information system that supports collaborative health care delivery in palliative care.','Information Systems Frontiers',1,'Alain MoutthamCraig KuziemskyDishant LangayanLiam PeytonJose Pereira','springer/service oriented architecture security.csv','springer',''),(496,'Sensor Function Virtualization to Support Distributed Intelligence in the Internet of Things','2015','2',' Internet of Things Cloud WSN 6LoWPAN CoAP Sensor function virtualization','Abstract It is estimated that—by 2020—billion devices will be connected to the Internet. \n This number not only includes TVs, PCs, tablets and smartphones, but also billions of embedded sensors that will make up the “Internet of Things” and enable a whole new range of intelligent services in domains such as manufacturing, health, smart homes, logistics, etc. To some extent, intelligence such as data processing or access control can be placed on the devices themselves. Alternatively, functionalities can be outsourced to the cloud. In reality, there is no single solution that fits all needs. Cooperation between devices, intermediate infrastructures (local networks, access networks, global networks) and/or cloud systems is needed in order to optimally support IoT communication and IoT applications. Through distributed intelligence the right communication and processing functionality will be available at the right place. The first part of this paper motivates the need for such distributed intelligence based on \n shortcomings in typical IoT systems. The second part focuses on the concept of sensor function virtualization, a potential enabler for distributed intelligence, and presents solutions on how to realize it.','Wireless Personal Communications',1,'Floris Van den AbeeleJeroen HoebekeGirum Ketema TeklemariamIngrid MoermanPiet Demeester','springer/service oriented architecture security.csv','springer',''),(497,'Modelling and analysis using GROOVE','2012','16',' Graph-based modelling Graph transformation Tool application Model transformation State space exploration','Abstract In this paper we present case studies that describe how the graph transformation tool groove has been used to model problems from a wide variety of domains. These case studies highlight the wide applicability of groove in particular, and of graph transformation in general. They also give concrete templates for using groove in practice. Furthermore, we use the case studies to analyse the main strong and weak points of groove .','International Journal on Software Tools for Technology Transfer',2,'Amir Hossein GhamarianMaarten de MolArend RensinkEduardo ZambonMaria Zimakova','springer/bpel security.csv','springer',''),(498,'Quality of service in manufacturing networks: a service framework and its implementation','2012','6',' Manufacturing networks Quality of service Networked resource service management Bees algorithm Communication networks','Abstract Due to the continuous growth in the application of networks in manufacturing, quality of service (QoS) has become an important issue. In this paper, the concept of QoS for manufacturing networks is discussed. To provide overall performance assurance for manufacturing networks, a service framework integrating the QoS mechanisms of the networked resource service management function and the communication networks is proposed. The novel framework maps an application to resource services and then to communication networks, adopts an intelligent optimisation algorithm for QoS management of resource services, and provides QoS schemes for data transfer across communication networks. A prototype implementation has been realised and a set of simulation experiments conducted to evaluate the validity of the framework. The results obtained demonstrate the ability of the framework to satisfy the various performance requirements posed by such applications and provide efficient overall performance assurance for manufacturing networks.','The International Journal of Advanced Manufacturing Technology',1,'Wenjun XuZude ZhouD. T. PhamQuan LiuC. JiWei Meng','springer/soa security.csv','springer','\0'),(499,'Composite web QoS with workflow conditional pathways using bounded sets','2013','1',' Bounded set Composite services Quality of service Path-based Reliability Workflow','Abstract In our previous work (Dillon and Mansour 2009 ), a stochastic reliability model of atomic web services was proposed. Using the well-known classic two-state bounded set technique, we developed a service-oriented model that dynamically calculates the reliability of composite web services with rollback recovery (Mansour and Dillon in IEEE Trans Serv Comput 4(4), 2011 ). In order to improve the Quality of Service, fault tolerance techniques have been introduced using recovery block adaptation. Our workflow was based on series-parallel structures that constitute parts of existing structures. It is worth mentioning that major service-oriented systems contain larger and more complex structures than the simple series and parallel ones. This is a limitation in our previous approach. In order to consider more realistic service-oriented systems, other main structures, such as AND, XOR and Loop, should be included into our model. In this article, our previous structures are generalized to include AND, XOR and Loops. In addition to generalized structures, we extended the existing two-state bounded set technique to include three-state systems. This extension was especially motivated by XOR-based structures. A comparative study between bounded set techniques and a new stochastic model is also presented. Our simulation results accurately reflect the performance of the new proposed model and confirm our theoretical studies. Furthermore, Monte Carlos simulations were performed and the results obtained clearly validate our stochastic model.','Service Oriented Computing and Applications',1,'Houwayda Elfawal-MansourA. MansourT. Dillon','springer/soa security.csv','springer','\0'),(500,'A Framework for Cost-Aware Cloud Data Management','2012','0',' Cloud data services cloud data management cost-aware data management cloud economics','Abstract The emerging world of offering information services through the cloud necessitates the coalescence of existing research and business technologies into the provision of all-inclusive solutions for data management. This paper proposes a framework that can support cost-aware data management in the cloud. Users and cloud providers can use the framework to receive and provide services that comply with agreements on data service cost and requirements and allow for profit while being efficient in terms of performance. The proposed framework includes modules that incorporate the notion of monetary cost in current data management, but also modules that take optimization decisions for future data management taking into account both monetary cost and performance. The framework dictates the design of a middleware application that can be plugged on top of a cloud data management system. Such a middleware receives the user’s workload and preferences for cost and query performance and controls data management so that the user is satisfied and the cloud provider is viable and, furthermore, profitable. An initial realization of part of the framework as a middleware application has already been constructed, tested and published with promising results.','',1,'Verena Kantere','springer/service oriented architecture security.csv','springer','\0'),(501,'A Multi-layer Anomaly Detector for Dynamic Service-Based Systems','2015','1',' Anomalies Monitor Complex event processor Service oriented architecture Secure!','Abstract Revealing anomalies to support error detection in complex systems is a promising approach when traditional detection mechanisms (e.g., based on event logs, probes and heartbeats) are considered inadequate or not applicable. The detection capability of such complex system can be enhanced observing different layers to achieve richer information that describes the system status. Relying on an algorithm for statistical anomaly detection, in this paper we present the definition and implementation of an anomaly detector able to monitor data acquired from multiple layers, namely the Operating system and the Application Server, of a remote physical or virtual node. As case study, such monitoring system is applied to a node of the Secure! crisis management service-based system. Results show the monitor performance, the intrusiveness of the probes, and ultimately the improved detection capability achieved observing data from the different layers.','',1,'Andrea CeccarelliTommaso ZoppiMassimiliano ItriaAndrea Bondavalli','springer/service oriented architecture security.csv','springer',''),(502,'WS-PGRADE/gUSE Generic DCI Gateway Framework for a Large Variety of User Communities','2012','77',' Science gateway Customized interface Workflow Distributed computing infrastructures','Abstract The WS-PGRADE/gUSE generic DCI gateway framework has been developed to support a large variety of user communities. It provides a generic purpose, workflow-oriented graphical user interface to create and run workflows on various DCIs including clusters, Grids, desktop Grids and clouds. The framework can be used by NGIs to support small user communities who cannot afford to develop their own customized science gateway. The WS-PGRADE/gUSE framework also provides two API interfaces (Application Specific Module API and Remote API) to create application-specific science gateways according to the needs of different user communities. The paper describes in detail the workflow concept of WS-PGRADE, the DCI Bridge service that enables access to most of the popular European DCIs and the Application Specific Module and Remote API concepts to generate application-specific science gateways.','Journal of Grid Computing',1,'Peter KacsukZoltan FarkasMiklos KozlovszkyGabor HermannAkos BalaskoKrisztian KaroczkaiIstvan Marton','springer/soa security.csv','springer',''),(503,'Web service selection based on QoS using tModel working on feed forward network','2014','1','feedforward neural network; QoS; service: oriented architecture; tModel; web service repository builder','This paper address the selection of web services using tmodel of SOA which is designed using feed forward network. This construction will be done using XML language. Ontology provides a terminology about concepts and their relationships within a domain along with the activities taking place in that domain, and the theories, elementary principles governing that domain. Using supervised learning method of feed forward neural network, ontologies of different domain can be matched. Feed forward neural network can be used for pattern matching with back propagation techniques. Pattern defined here will be quality parameter. This quality parameter can be selected using tModel structure of UDDI. Web service Provider present in UDDI can differentiate services using Quality categorization by labeling the qualities i.e. performance, security. This differentiation be done using QoS ontology for service Identification. The registered service descriptions by the service provider contain the semantic profile and QoS parameters. ANN matching model consists of training phase and matching phase based on ontology domain. © 2014 IEEE.','',1,'Karande A.M., Kalbande D.R.','scopus/service oriented architecture security.csv','scopus','\0'),(504,'Integrated Process Oriented Requirements Management','2015','0',' Process management Requirements management Enterprise modeling IEM MO 2 GO Process assistant','Abstract Within current software development projects requirements are usually derived from a technical point of view. Since these systems are part of an already existing enterprise environment and their goal is to support business processes, the focus should be shifted towards these overlaying business processes. Therefore we propose a holistic method that focuses on business processes and using them as a vantage point from which requirements are elicitated and linked to them. Based on these interconnected dependencies, functional requirements without a business relation can be identified. Furthermore, this also allows identifying aspects that are not yet covered by any requirements as well as process-oriented monitoring throughout all project phases. Existing business process management tools were extended to incorporate this method which was successfully applied within a software development project in a large, international company.','',2,'Nikolaus WintrichPatrick GeringMalte Meissner','springer/bpmn security.csv','springer',''),(505,'Toward a modular and efficient distribution for Web service handlers','2013','','distributed computing; parallel computing; pipelining; service-oriented architecture; Web service; Web service handler','Over the last few decades, distributed systems have architecturally evolved. One recent evolutionary step is SOA. The SOA model is perfectly engendered in Web services, which provide software platforms for building applications as services. Web services utilize supportive capabilities such as security, reliability, and monitoring. These capabilities are typically provisioned as handlers, which incrementally add new features. Even though handlers are very important, the method of utilization is crucial for obtaining potential benefits. Every attempt to support a service with an additional handler increases the chance of an overwhelmingly crowded handler chain. Moreover, a handler may become a bottleneck because of its comparably higher processing time. In this paper, we present the Distributed Handler Architecture to provide an efficient, scalable, and modular architecture. The performance and scalability benchmarks show that the distributed and parallel handler executions are very promising for suitable handler configurations. The paper is concluded with remarks on the fundamentals of a promising computing environment for Web service handlers. Copyright © 2012 John Wiley & Sons, Ltd. Copyright © 2012 John Wiley & Sons, Ltd.','',1,'Yildiz B., Fox G.C.','scopus/service oriented architecture security.csv','scopus','\0'),(506,'Mobile web information systems (MobiWIS 2013)','2015','0','','','Computing',1,'Florian DanielGeorge A. PapadopoulosPhilippe Thiran','springer/soa security.csv','springer',''),(507,'Data Flow-Oriented Process Mining to Support Security Audits','2012','1','','Abstract The automated execution of dynamically-evolving business processes in service-oriented architectures requires audit methods to assert that they fulfill required security properties. Process mining techniques can provide models for the actual process behavior, but mostly disregard the dynamics of processes running in highly flexible environments and neglect the data flow perspective. This research plan is on novel data-oriented mining techniques to tackle these shortcomings in order to support effective security audits.','',2,'Thomas Stocker','springer/bpel security.csv','springer','\0'),(508,'The Performance of Public Key-Based Authentication Protocols','2012','0',' Public-key infrastructure (PKI) Kerberos Authentication Performance Transaction time','Abstract Kerberos has revolved over the past 20 years. Kerberos and its variants have been extensively used in a variety of commuting systems since 1999. Among them, there have been several techniques and protocols to integrate public key cryptography into Kerberos. Public-Key Cross Realm Authentication in Kerberos (PKCROSS) is one of these protocols. It has been proposed to simplify the administrative burden of maintaining cross-realm keys so that it improves the scalability of Kerberos in large multi-realm networks. Public Key Utilizing Tickets for Application Servers (PKTAPP) is another protocol that has been suggested to improve the scalability issue of PKCROSS. Performance evaluation is a fundamental consideration in the design of security protocols. But, the performance of these two protocols has been poorly understood in a large-scale network. In this paper, we present an efficient way to study the performance of PKCROSS and PKTAPP. Our thorough performance analysis of these two protocols shows that PKTAPP does not scale better than PKCROSS. In this paper, we report our recent results of when PKCROSS still outperforms than PKTAPP in multiple remote realms.','',1,'Kaiqi Xiong','springer/service oriented architecture security.csv','springer','\0'),(509,'Performance enhancement of WS-security using Participant Domain Name (PDNT)','2012','','OASIS Standard 1.1; Service Oriented Architecture; Simple Object Access Protocol (SOAP); Web Services Security standard (WSS)','This paper proposes a new secure token profile for enhancing existing Web Services Security (WSS) standards which provide message integrity, message confidentiality, user authentication and authorization. Service Oriented Architecture (SOA) is widely adopted, most systems use Web Services implemented using Simple Object Access Protocol (SOAP), an XML document or message exchanges between sender and receiver using HTTP protocol or other communication protocols. Security is critical because the message is transferred around a public network, the Internet. Whilst current Web Services Security Standards protect the message; the location or domain of the message sender is not authenticated, this can be provided using the proposed token profile. Moreover, the proposed token has a performance advantage over existing WSS standards. © 2012 IEEE.','',1,'Cheong C.P., Chatwin C., Young R.','scopus/service oriented architecture security.csv','scopus','\0'),(510,'IMS Management & Monitoring with eTOM Framework and Composite Web Service','2010','1','','IMS (IP Multimedia System) facilitates a rapid deployment of new services enable new revenue streams for service providers, and improves the operating efficiency of the network by a convergence of heterogeneous into an existing IP network. In addition, it enables operators to simultaneously meet the requirements of fixed and mobile telephony. Because IMS “standardization” is limited to architecture, routing, area supply services are not defined will in Assurance and monitoring, contrary to billing and fulfilment. Consequently, the IMS is less clear regarding the monitoring of performance and fault management, leaving these matters to the NGOSS (New Generation Operations Systems and Software) system to manipulate QoS based assurance scenarios. The eTOM (enhanced Telecom Operations Map) descriptions provide the ability to perform a `System Level Monitoring & Management\' capable of tracking the delivery of services in IMS architecture. In this article, we start by monitoring of a supply scenario of service, by integrating new technologies WSOA (Service Oriented Architecture) and BPEL (Business Process Execution Language) in network management.','2010 International Conference on Multimedia Information Networking and Security',2,'B. Raouyane; M. Errais; M. Bellafkih; M. Ramdani','ieee/bpel security.csv','ieee','\0'),(511,'AOSD\'12 Companion - Proceedings of the 11th Annual International Conference on Aspect Oriented Software Development','2012','','','The proceedings contain 11 papers. The topics discussed include: what to do when things go wrong: recovery in complex (computer) systems; objects of the people, by the people, and for the people; aspects as latent topics; implementing language-based virtual machines; a unified formal model for service oriented architecture to enforce security contracts; compositional verification of events and aspects; membranes for AOP: from vision to practice; an aspect-oriented framework for development of dynamic content; tearing down the multicore barrier for web applications; adding high-level concurrency to EScala; a scalable and accurate approach based on count matrix for detecting code clones; Emergo: a tool for improving maintainability of preprocessor-based product lines; experiments with the LARA aspect-oriented approach; and PHANtom: an aspect language for pharo smalltalk.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus','\0'),(512,'Anti-money-laundering system based on mainframe and SOA','2013','','Anti-Money-laundering; Mainframe; Service Oriented Architecture','This paper presents an efficient anti-money laundering warning system. With the development of science and technology, money laundering is becoming more and more intelligent. Since the existing anti-money-laundering process cannot handle this kind of crime effectively, we build a system based on mainframe with SOA architectures. For one thing, as mainframes pioneer massive data processing capacity and high security, we take this advantage to handle magnanimity financial data. For another thing, we build super scalar architecture with SOA technology. Application module is presented by service and service bus can connect independent functional entities which carry out specific tasks. Therefore, the system can adapt to the variation of money laundering means. © 2013 IEEE.','',1,'Shu M., Rui L., Dancheng L., Shuaizhen Z.','scopus/service oriented architecture security.csv','scopus','\0'),(513,'Model-Driven Development of Secure Service Applications','2012','2','Security;UML;Web Service;code generation;model-driven development;security-critical systems','The development of a secure service application is a difficult task and designed protocols are very error-prone. To develop a secure SOA application, application-independent protocols (e.g. TLS or Web service security protocols) are used. These protocols guarantee standard security properties like integrity or confidentiality but the critical properties are application-specific (e.g. \'a ticket can not be used twice\'). For that, security has to be integrated in the whole development process and application-specific security properties have to be guaranteed. This paper illustrates the modeling of a security-critical service application with UML. The modeling is part of an integrated software engineering approach that encompasses model-driven development. Using the approach, an application based on service-oriented architectures (SOA) is modeled with UML. From this model executable code as well as a formal specification to prove the security of the application is generated automatically. Our approach, called SecureMDD, supports the development of security-critical applications and integrates formal methods to guarantee the security of the system. The modeling guidelines are demonstrated with an online banking example.','Software Engineering Workshop (SEW), 2012 35th Annual IEEE',1,'M. Borek; N. Moebius; K. Stenzel; W. Reif','ieee/soa security.csv','ieee','\0'),(514,'Middleware for task resolution and adaptation in pervasive environments','2012','2',' Component-based task Task resolution Monitoring Task adaptation Pervasive environments','Abstract Driven by the heterogeneity of pervasive environments, a user task can be defined independently of devices’ resources as an assembly of abstract components, requiring services from and providing services to each other. To achieve the task’s execution, it has to be resolved in concrete components, which involves automatic matching and selection of components across various devices. Moreover, user tasks in pervasive environments are challenged by the dynamism of their execution environments. Thus, there is a need to adapt them for a continuous execution. Towards these challenges, we propose in this article a middleware that allows for each service of a user task, the best selection of the device and component used for its execution. The task resolution approach considers in addition to the functional aspects of the task, the user preferences, devices capabilities, services requirements and components preferences. The middleware also carries out adaptation of user’s tasks to cope with the dynamicity of pervasive environments. The adaptation consists of a partial reselection of devices and components that are affected by the changes. For this purpose, the middleware uses monitoring mechanisms to detect the changes during the execution of the user tasks.','Evolving Systems',1,'Imen Ben LahmarDjamel BelaïdHamid Mukhtar','springer/soa security.csv','springer','\0'),(515,'Ubiquity and QoS for cloud security','2012','','Architecture Model; Cloud Computing; Cloud Security; QoS; Ubiquity','Cloud computing brings many advantages in terms of externalization, service delivery, elasticity, dependability and scalability. Nevertheless, it can be exposed to several vulnerabilities and security attacks. Therefore, we propose, in our UBIS (Ubiquity and Integration of Services) project, an architectural model that aims to satisfy cloud user requirements and cloud security challenges. For this purpose, our solution is based on two key elements. The former deals with ubiquitous services in Service Oriented Architecture. The latter considers QoS management that includes security aspects based on Event Driven Architecture. © 2012 IEEE.','',1,'Hammami A., Simoni N., Salman R.','scopus/service oriented architecture security.csv','scopus','\0'),(516,'Small-World Based Trust Evaluation Model for Web Service','2012','1','Small-world model;Subjective logic;Trust model;Web service','As popular web applications, web services can provide very flexible application integration taking advantage of existing Internet protocols and open standards. However, there are a few stubborn problems which exist in its architectures, for example, security. Especially in distributed services environment, trust which is a proved way to resolve security problem of web service is crucial to service providers and service customers for protecting service transactions and message delivering. In this paper, a web services trust evaluation model based on small world model is proposed. Firstly, an expanded subjective logic model is proposed. Secondly, a framework of SOA is built upon trust management module. Thirdly, the computing of subjective logic is improved based on small world, and the components in SOA are organized in small world. And then, the trust architecture of web service is presented. Finally, a simulation platform is used to study the evolution process of trust value in the model. The experiments and analysis show that the model can support evolving the web services trust.','Computer Science & Service System (CSSS), 2012 International Conference on',1,'Z. Yu; F. Liu','ieee/service oriented architecture security.csv','ieee','\0'),(517,'A Genetic Algorithm for Automatic Business Process Test Case Selection','2015','0',' Process modeling and design Process testing Test case selection Genetic algorithm','Abstract Process models tend to become more and more complex and, therefore, also more and more test cases are required to assure their correctness and stability during design and maintenance. However, executing hundreds or even thousands of process model test cases leads to excessive test suite execution times and, therefore, high costs. Hence, this paper presents a novel approach for process model test case selection which is able to address flexible user-driven test case selection requirements and which can integrate a diverse set of knowledge sources to select an appropriate minimal set of test cases which can be executed in minimal time. Additionally, techniques are proposed which enable the representation of unique coverage requirements and effects for each process node and process test case in a comprehensive way. For test case selection, a genetic algorithm is proposed. Its effectiveness is shown in comparison with other test case selection approaches.','',2,'Kristof BöhmerStefanie Rinderle-Ma','springer/bpel security.csv','springer',''),(518,'Personalized and adaptable mHealth architecture','2015','','Architecture; Biometrics; Context; Flexibility; Mhealth; Mobile WebService; Privacy; Security','Health monitoring is a field where one\'s health condition (i.e., vital signs) is continually measured so that appropriate action(s) can be taken once an irregularity is found. However, a patient vital sings are highly individual based on various factors such as age, gender, weight, environment, daily activities, and medical conditions. Thus, a generalized mHealth solution can not satisfy the needs of all the users. In this paper, a mHealth architecture is presented which can be configured to individual user needs and demands. © 2014 ICST.','',1,'Siddiqui A., Koch O., Rabie A., Handmann U.','scopus/webservice security.csv','scopus',''),(519,'Cloud-based collaborative creation and simulation of courses of action: Creation of a prototype web application using new HTML5 features','2012','0','Cloud Computing;Service Oriented Architecture (SOA);Simulation','There are many domains that require predefined plans of action in response to certain events. For example, emergency responders have response plans for emergencies such as airplane crashes or other mass casualty incidents, and militaries have plans for disaster relief. In creating these plans, there is a great deal of collaboration required in creation, testing, and training people involved in plan execution. These response plans can be tested in simulations to model their effectiveness and so that domain experts can see potential problems. This paper presents a novel approach for creating such response plans as a collaborative simulation in the cloud.','2012 IEEE Symposium on Computational Intelligence for Security and Defence Applications',1,'E. Torunski','ieee/service oriented architecture security.csv','ieee','\0'),(520,'Runtime Enforcement of Information Flow Security in Tree Manipulating Processes','2012','0',' Semi-structured data information flow control runtime enforcement','Abstract We consider the problem of enforcing information flow policies in Xml manipulating programs such as Web services and business processes implemented in current workflow languages. We propose a runtime monitor that can enforce the secrecy of freely chosen subtrees of the data throughout the execution. The key idea is to apply a generalized constant propagation for computing the public effect of branching constructs whose conditions may depend on the secret. This allows for a better precision than runtime monitors which rely on tainting of variables or nodes alone. We demonstrate our approach for a minimalistic tree manipulating programming language and prove its correctness w.r.t. the concrete semantics of programs.','',2,'Máté KovácsHelmut Seidl','springer/bpel security.csv','springer','\0'),(521,'Implementation and Evaluation of a Multi-tenant Open-Source ESB','2013','2',' Multi-tenancy Enterprise Service Bus (ESB) ESB benchmarking JBI specification Platform as a Service','Abstract Offering applications as a service in the Cloud builds on the notion of application multi-tenancy. Multi-tenancy, the sharing of application instances and their underlying resources between users from different organizational domains, allows service providers to maximize resource utilization and reduce servicing costs per user. Realizing application multi-tenancy however requires suitable enabling mechanisms offered by their supporting middleware. Furthermore, the middleware itself can be multi-tenant in a similar fashion. In this work we focus on enabling multi-tenancy for one of the most important components in service-oriented middleware, the Enterprise Service Bus (ESB). In particular, we discuss the prototype realization of a multi-tenant aware ESB, using an open source solution as the basis. We then evaluate the performance of our proposed solution by an ESB-specific benchmark that we extended for multi-tenancy purposes.','',1,'Steve StrauchVasilios AndrikopoulosSantiago Gómez SáezFrank Leymann','springer/service oriented architecture security.csv','springer','\0'),(522,'c-Eclipse: An Open-Source Management Framework for Cloud Applications','2014','3','','Abstract Cloud application portability and optimal resource allocation are of great importance in the realm of Cloud infrastructure provisioning. c-Eclipse is an open-source Cloud Application Management Framework through which users are able to define the description, deployment and management phases of their Cloud applications in a clean and intuitive graphical manner. It is built on top of the well-established Eclipse platform and it adheres to two highly desirable features of Cloud applications: portability and elasticity. In particular, c-Eclipse implements the open, non-proprietary OASIS TOSCA specification for describing the provision, deployment and re-contextualization of applications across different Cloud infrastructures, thereby ensuring application portability. Furthermore, c-Eclipse enables Cloud users to specify elasticity policies that describe how the deployed virtualized resources must be elastically adapted at runtime to match the needs of a dynamic application-workload. In this paper, we introduce the architecture and implementation of c-Eclipse, and describe its key characteristics via a use-case scenario that involves a user creating a description of a 3-tier Cloud application, enriching it with appropriate elasticity policies, submitting it for deployment to two different Cloud providers and, finally, monitoring its execution.','',2,'Chrystalla SofokleousNicholas LoulloudesDemetris TrihinasGeorge PallisMarios D. Dikaiakos','springer/bpel security.csv','springer',''),(523,'SOASMM: A novel service oriented architecture Security Maturity Model','2012','','Indicators; Information Security; Maturity Model; Metrics; SOA','Ensuring SOA developed applications security has become crucial to protect against potential damage and is a sign of confidence for companies that would like to start collaboration based on SOA services. The aim of the present paper is to present the principles of a novel tool that supports the assessment of SOA security maturity of organizations: the SOASMM (SOA Security Maturity Model). This model was defined by incorporating information security best practice approaches in the paradigm of service-oriented architecture using an argued approach and mapping models. Security Indicators deduced in our study denote the complexity of security controls as SOA maturity levels get higher. Besides, as the model that we proposed is based on security standards and best practices, it can be further developed to support organizations to evaluate and adjust their security practices according to their SOA migration plan. © 2012 IEEE.','',1,'Kassou M., Kjiri L.','scopus/service oriented architecture security.csv','scopus','\0'),(524,'A security framework for developing service-oriented software architectures','2015','','Formal methods; Model-driven development; Security modeling; Service-oriented architecture','The usually heterogeneous and decentralized nature of entities in the service-oriented architecture has paved the ground for the implementation of approaches distributed according to the constantly changing needs of business. Also, as the distribution of entities and processes increases, the need to provide security over software and hardware sources, which have reached the public thanks to an open space as a result of the service-oriented architecture, is felt. Therefore, security modeling at the level of service-oriented architecture can boost system reliability and enhance its stability once applied and employed. This research provides a secure framework through which to develop software based on the service-oriented architecture. The proposed framework has been modeled using the SoaML profile, which has been introduced for modeling service-oriented environments. The framework\'s security aspects have been tested by the modeling and specification language Alloy, which is based on the first-order logic. Its accuracy has also been well investigated. Tapping into the model-driven development, this framework can provide an answer to existing security challenges for service-oriented architecture software. © 2015 John Wiley & Sons, Ltd.','',1,'Rafe V., Hosseinpouri R.','scopus/service oriented architecture security.csv','scopus',''),(525,'Probabilistic Topic Models for Web Services Clustering and Discovery','2013','1',' Web service Data Representation Clustering Discovery Machine Learning Topic Models','Abstract In Information Retrieval the Probabilistic Topic Models were originally developed and utilized for topic extraction and document modeling. In this paper, we explore several probabilistic topic models: Probabilistic Latent Semantic Analysis (PLSA), Latent Dirichlet Allocation (LDA) and Correlated Topic Model (CTM) to extract latent factors from web service descriptions. These extracted latent factors are then used to group the services into clusters. In our approach, topic models are used as efficient dimension reduction techniques, which are able to capture semantic relationships between word-topic and topic-service interpreted in terms of probability distributions. To address the limitation of keywords-based queries, we represent web service description as a vector space and we introduce a new approach for discovering web services using latent factors. In our experiment, we compared the accuracy of the three probabilistic clustering algorithms (PLSA, LDA and CTM) with that of a classical clustering algorithm. We evaluated also our service discovery approach by calculating the precision (P@n) and normalized discounted cumulative gain (NDCGn). The results show that both approaches based on CTM and LDA perform better than other search methods.','',1,'Mustapha AznagMohamed QuafafouEl Mehdi RochdZahi Jarir','springer/service oriented architecture security.csv','springer','\0'),(526,'A Survey of Context Aware Vertical Handover Management Schemes in Heterogeneous Wireless Networks','2015','0',' Smartphones Heterogeneous wireless networks Seamless mobility Handover management User-centric Network-centric','Abstract Modern smartphones and wireless-enabled devices are equipped with a number of interfaces to access multiple networks in heterogeneous wireless networks. Seamless mobility between these networks can be achieved by optimizing parameters related with vertical handover management\n . This paper presents a detailed review of the recent schemes used for context-aware vertical handover management in heterogeneous wireless networks. In particular, we reviewed user-centric, network centric, and hybrid schemes, and compare them in context of throughput, packet loss ratio, and other advantages such as handover delay, cost, energy, and bandwidth optimization.','Wireless Personal Communications',1,'Murad KhanKijun Han','springer/service oriented architecture security.csv','springer',''),(527,'Towards intelligent GIServices','2015','4',' GIServices Intelligent GIServices GIS·Big data Intelligent systems Artificial intelligence','Abstract Distributed information infrastructures are increasingly used in the geospatial domain. In the infrastructures, data are being collected by distributed sensor services, served by distributed geospatial data services, transformed by processing services and workflows, and consumed by smart clients. Consequently, Geographical Information Systems (GISs) are moving from GISystems to GIServices. Intelligent GIServices are enriched with new capabilities including knowledge representation, semantic reasoning, automatic workflow composition, and quality and traceability. Such Intelligent GIServices facilitate information discovery and integration over the network and automate the assembly of GIServices to provide value-added products. This paper provides an overview of intelligent GIServices. The concept of intelligent GIServices is described, followed by a review of the state-of-the-art technologies and methodologies relevant to intelligent GIServices. Visions on how GIServices can perceive, reason, learn, and act intelligently are highlighted. The results can provide better services for big data processing, semantic interoperability, knowledge discovery, and cross-discipline collaboration in Earth science applications.','Earth Science Informatics',1,'Peng YuePeter BaumannKaylin BugbeeLiangcun Jiang','springer/soa security.csv','springer',''),(528,'End-to-end reliability of service oriented applications','2012','6',' Service oriented architecture Web services Services composition Application reliability','Abstract As organizations move towards adopting a service oriented architecture that permits the coexistence of multiple technology environments, an increasing number of applications will be developed through the assembly of existing software components with standard web service interfaces. These components with web service interfaces may be available in-house, or may be supplied or hosted by external vendors. The use of multiple services, possibly utilizing different technologies, providers, locations, and sources, has implications for the end-to-end reliability of these applications to support a business process. Selecting the best service for individual tasks in a business process does not guarantee the most effective overall solution, particularly if criteria other than functional characteristics are employed. This paper examines reliability issues associated with applications developed within service oriented architecture. It develops a measure for deriving end-to-end application reliability, and develops a model to help select appropriate services for tasks in the business process which accommodate the redundant and overlapping functionality of available services and planned redundancy in task support to satisfy the reliability requirement of the resulting application. A genetic algorithm approach is adopted to select promising services to assemble the application using end-to-end reliability as the criterion of interest. An application to a real-world business process illustrates the effectiveness of the approach.','Information Systems Frontiers',2,'Hangjung ZoDerek L. NazarethHemant K. Jain','springer/bpel security.csv','springer','\0'),(529,'Proactive Enforcement of Data Consistency by Business Processes','2012','0','','Data and its manipulation are essential in business processes (BPs). It is desirable to ensure within BP executions that every update to a database server guarantees to satisfy all relevant data integrity constraints (ICs). Furthermore, the earlier in a BP execution a violation is detected the more dependable the BP is. This paper studies the Process Safety Problem (PSP): will an incoming message be used in a database update causing IC violations? PSP is unsolvable in general. Taking advantage of the design-time \"guard injection\" technique, we propose a runtime proactive enforcement mechanism, called \"process safe guarding\", based on symbolic execution of BPEL processes for a bounded number of steps under \"conservative strategy\". Related challenges are also discussed.','2012 19th Asia-Pacific Software Engineering Conference',2,'X. Liu; J. Su; X. Li','ieee/bpel security.csv','ieee','\0'),(530,'Knowledge based framework: A case study on fast, reliable, and secure web services in UAVs','2014','1','Critical embedded systems; Performance; SOA; UAVs; Web services','Advanced and complex embedded systems as multicore and multiprocessor systems are becoming common and this has stimulated the development of critical applications for them. UAVs (Unmanned Aerial Vehicles) constitute a typical application of a complex critical embedded system. One concept that can result in radically different solutions in UAVs is the use of Service-Oriented Architecture (SOA). The increasing use of SOA in critical applications demands dependable and cost effective techniques to ensure high security. In this paper we develop a different kind of services for avionics with different parameters (security, reliability and performance) to provide the use of SOA in a less critical part in the whole systems. The use of these services and the KBF (Knowledge Based Framework for Dynamically Changing Applications) presented in this paper can give more intelligence to the UAVs and provide a new form of segregating the UAV mission from the vehicle itself. The services were developed and a performance evaluation was conducted showing the benefits in choosing one service or another. © 2014 IEEE.','',1,'Rodrigues D., Chaves A.A., Branco K.R.L.J.C., Ramdhany R., Coulson G.','scopus/service oriented architecture security.csv','scopus','\0'),(531,'Towards outsource-ability enabled BPMN','2015','','BPMN extension; Business process outsourcing; Cloud computing; Genetic algorithm','Business process outsourcing to the Cloud is increasingly being adopted as a strategy to save costs, improve the business process performance, enhance the flexibility in responding to costumers\' needs, etc. However, the adoption of an outsourcing strategy faces several challenges like the enterprise data security, vendor-lock-in and labor union. Weighing the pros and cons of outsourcing one\'s business process is an arduous task. This paper provides for assistance means: it extends the BPMN language to explicitly support the specification of outsourcing criteria, and it presents an automated approach to help decision makers identify those parts of their business process that benefit most from outsourcing to the Cloud.','',2,'Rekik M., Boukadi K., Ben-Abdallah H.','scopus/bpmn security.csv','scopus',''),(532,'Preference Based Service Adaptation Using Service Substitution','2013','1','Web Services, Preference Reasoning, Qualitative Reasoning, Service Adaptation','In many applications such as service-oriented computing, users often prefer some compositions over the others based on their preferences over non-functional attributes such as security and cost. After a composition is deployed, apart from changes in the functional requirements, service-oriented architectures often have to deal with changes in the user preferences over the non-functional attributes and/or repository of available components. We formulate the problem of adaptation as iterative substitution of appropriate components in a composition, and provide two algorithms that produce a sequence of increasingly preferred adaptations with time: a fast algorithm that searches for preferred adaptations by improving the valuation of the relatively more important attributes, and another that is computationally more intensive but guaranteed to produce at least one preferred adaptation, if one exists.','',1,'Ganesh Ram Santhanam and Samik Basu and Vasant Honavar','acm/service oriented architecture security.csv','acm','\0'),(533,'Intercloud Architecture Framework for Heterogeneous Cloud Based Infrastructure Services Provisioning On-Demand','2013','8','Cloud Computing Reference Architecture;Cloud Security;Intercloud Architecture;Intercloud Control and Management Plane;Intercloud Federation Framework;Intercloud Operation Framework;Multi-layer Cloud Services Model','This paper presents on-going research to develop the Intercloud Architecture Framework (ICAF) that addresses problems in multi-provider multi-domain heterogeneous cloud based infrastructure services and applications integration and interoperability, to allow their on-demand provisioning. The paper refers to existing standards and ongoing standardisation activity in Cloud Computing, in particular, recently published NIST Cloud Computing Reference Architecture (CCRA) and ITU-T JCA-Cloud activity. The proposed ICAF defines four complementary components addressing Intercloud integration and interoperability: multi-layer Cloud Services Model that combines commonly adopted cloud service models, such as IaaS, PaaS, SaaS, in one multilayer model with corresponding inter-layer interfaces, Intercloud Control and Management Plane that supports cloud based applications interaction, Intercloud Federation Framework, and Intercloud Operations Framework. The paper briefly describes the Service delivery and lifecycle management as an important ICAF component that provides a basis for consistent management and security of the provisioned on-demand complex cloud based services. The paper describes an implementation of the Intercloud Control and Management Plane in the GEYSERS project to allow optimal provisioning of the combined Network+IT resources in the inter-cloud environment. The proposed architecture is intended to provide an architectural model for developing Intercloud middleware and in this way will facilitate clouds interoperability and integration.','Advanced Information Networking and Applications Workshops (WAINA), 2013 27th International Conference on',1,'Y. Demchenko; C. Ngo; C. de Laat; J. A. Garcia-Espin; S. Figuerola; J. Rodriguez; L. M. Contreras; G. Landi; N. Ciulli','ieee/service oriented architecture security.csv','ieee','\0'),(534,'Rapid modeling and analyzing networks extracted from pre-structured news articles','2012','7',' Rapid network analysis Rapid assessment Network text analysis Dynamic networks Two mode networks Weighted networks','Abstract In the face of uprisings and revolutions happening in several countries within short period of time (Arab Spring 2011), the need for fast network assessments is compelling. In this article we present a rapid network assessment approach which uses a vast amount of pre-indexed news data to provide up-to-date overview and orientation in emerging and ongoing incidents. We describe the fully automated process of preparing the data and creating the dynamic meta-networks. We also describe the network analytical measures that we are using to identify important topics, persons, organizations, and locations in these networks. With our rapid network modeling and analysis approach first results can be provided within hours. In the explorative study of this article we use 108,000+ articles from 600+ English written news sources discussing Egypt, Libya, and Sudan within a time period of 18 months to show an application scenario of our approach. In particular we are looking at the involvement of other countries and their politicians during time periods of major incidents.','Computational and Mathematical Organization Theory',1,'Jürgen PfefferKathleen M. Carley','springer/service oriented architecture security.csv','springer','\0'),(535,'Mitigating Risks Associated with Transitive Trust in Service-Based Identity Propagation','2012','1','access control; identity propagation; service orchestration; SOA security; trust models; Web services','Over the past 20 years, software has evolved from monolithic, stove-piped applications to services that communicate with other distributed components over communications networks. The rise in popularity of Service-oriented Architecture (SOA) and web services has presented unique challenges for securely conveying the identity of end users at every point, especially when mashups, Web service composition and orchestration solutions combine multiple distributed components throughout a network, and where each component may need to know the identity of the end user. Over the past decade, many U.S. government projects have embraced SOA, have identified security risks with certain types of identity propagation, and have built solutions for mitigating the risks. This paper focuses on identity propagation in Web service transactions and describes how several early SOA-based projects utilized \"transitive trust\" approaches. We categorize the security risks found and describe how these projects minimized or mitigated the risks. Finally, we discuss approaches used in current projects and provide guidance for future implementations. © 2012 Copyright Taylor and Francis Group, LLC.','',1,'Smith K.T.','scopus/service oriented architecture security.csv','scopus','\0'),(536,'MathCloud: Publication and Reuse of Scientific Applications as RESTful Web Services','2013','2',' computational web service service-oriented scientific environment software as a service REST service container service catalogue workflow','Abstract The paper presents MathCloud platform which enables wide-scale sharing, publication and reuse of scientific applications as RESTful web services. A unified interface of computational web service based on REST architectural style is proposed. Main components of MathCloud platform including service container, service catalogue, workflow management system, and security mechanism are described. In contrast to other similar efforts based on WS-* specifications, the described platform provides a more lightweight solution with native support for modern Web applications. The platform has been successfully used in several applications from various fields of computational science that confirm the viability of proposed approach and software platform.','',1,'Alexander AfanasievOleg SukhoroslovVladimir Voloshinov','springer/service oriented architecture security.csv','springer','\0'),(537,'Distributed data mining: a survey','2012','23',' Data mining Business intelligence Business analytics Decision support systems Distributed systems Literature review','Abstract Most data mining approaches assume that the data can be provided from a single source. If data was produced from many physically distributed locations like Wal-Mart, these methods require a data center which gathers data from distributed locations. Sometimes, transmitting large amounts of data to a data center is expensive and even impractical. Therefore, distributed and parallel data mining algorithms were developed to solve this problem. In this paper, we survey the-state-of-the-art algorithms and applications in distributed data mining and discuss the future research opportunities.','Information Technology and Management',1,'Li ZengLing LiLian DuanKevin LuZhongzhi ShiMaoguang WangWenjuan WuPing Luo','springer/soa security.csv','springer',''),(538,'myVisitPlanner\n GR: Personalized Itinerary Planning System for Tourism','2014','0','','Abstract This application paper presents myVisitPlanner GR , an intelligent web-based system aiming at making recommendations that help visitors and residents of the region of Northern Greece to plan their leisure, cultural and other activities during their stay in this area. The system encompasses a rich ontology of activities, categorized across dimensions such as activity type, historical era, user profile and age group. Each activity is characterized by attributes describing its location, cost, availability and duration range. The system makes activity recommendations based on user-selected criteria, such as visit duration and timing, geographical areas of interest and visit profiling. The user edits the proposed list and the system creates a plan, taking into account temporal and geographical constraints imposed by the selected activities, as well as by other events in the user’s calendar. The user may edit the proposed plan or request alternative plans. A recommendation engine employs non-intrusive machine learning techniques to dynamically infer and update the user’s profile, concerning his preferences for both activities and resulting plans, while taking privacy concerns into account. The system is coupled with a module to semi-automatically feed its database with new activities in the area.','',1,'Ioannis RefanidisChristos EmmanouilidisIlias SakellariouAnastasios AlexiadisRemous-Aris KoutsiamanisKonstantinos AgnantisAimilia TasidouFotios KokkorasPavlos S. Efraimidis','springer/service oriented architecture security.csv','springer','\0'),(539,'A survey of journey of cloud and its future','2015','','And; API (application programming interface); Cloud computing; CSP (cloud service provider); DC (data-centers); PAAS (platform as a service); SAAS (software as a service); SOA (service-oriented architecture); TC (telecommunications closet); Virtualization','Cloud computing in the past few years has grown from a promising business idea to one of the fastest growing field of the IT industry. Still the IT organization is concern about critical issues (like security, data loss) existing with the implementation of cloud computing, related to security in particular. Consequently issues arise due to client switching to cloud computing. This paper briefs about the role of cloud in IT business enterprise, its woes and its projected solutions. It proposes the use of \'Honey-Comb Infrastructure\' for flexible, secure and reliable storage supported by parallel computing. © 2015 IEEE.','',1,'Shekanayaki K., Chakure A., Jain A.','scopus/service oriented architecture security.csv','scopus','\0'),(540,'Taxonomy and issues for antifragile-based multimedia cloud computing','2016','0',' Cloud computing Quality of service Antifragility Quality of experience Resource allocation','Abstract Cloud computing has become one of the most dynamic and adoptable computing paradigms. Multimedia Cloud Computing (MCC) is one of today’s hot research topic. MCC is proven to be a most dynamic and efficient platform for managing a large amount of multimedia contents with maximum deployment of computing and processing resources at the service provider instead of users. Resilience and dependability are two key constituents to assure the reliability and availability of any service in the presence of errors and system failures. The heterogeneous environment of MCC has given rise to various challenges related to resource allocation and task management. Antifragility is a key to such environments, to let the disorder drive the strength of these systems. This paper is mainly divided into three parts. The first part discusses in detail the available state-of-the-art related to resource management under MCC. Similarly, the second part presents the comprehensive literature review on the task management in MCC. The third part presents the critical analysis and open research issues in MCC which help the researcher to define their research objectives in the field of MCC.','Journal of Reliable Intelligent Environments',1,'Syed Fawad HaiderLaraib AbbasAmjad AliMuddesar IqbalImran RazaSyed Asad HussainDoug Young Suh','springer/service oriented architecture security.csv','springer',''),(541,'Information systems frontiers editorial December 2012','2012','0','','','Information Systems Frontiers',1,'R. RameshH. Raghav Rao','springer/service oriented architecture security.csv','springer','\0'),(542,'Facilitating multi-device usage in mhealth','2013','2','CAP theorem; Health information system; Mhealth; Middleware; Mobile devices; Private cloud; ROA; SOA','Today, it is a common phenomenon for physicians to own multiple mobile devices such as smartphones and tablets in order to seamlessly access the Electronic Health Record (EHR). But, the over reliance on wireless communication channels by mobile devices limits the user expectation since consistent connectivity cannot be guaranteed due to the intermittent connectivity losses in mobile ecosystems. What is even challenging is the presence of the CAP theorem which states that though the following three properties are desired in a distributed environment: consistency, availability, and partition tolerance, only two of the properties can be guaranteed simultaneously. In this paper, we deployed a reliable mHealth architecture that enables healthcare practitioners to employ their multimobile devices to access the EHR. We proposed a middleware platform that synchronizes the medical data on the multi-devices of a single user with careful consideration to the CAP theorem. The architecture is based on mainstream technologies such as: the publish/subscribe technique for real-time data access, medical data encryption for security, and mobile-side caching.','',1,'Lomotey R.K., Deters R.','scopus/soa security.csv','scopus','\0'),(543,'Towards requirements for trust management','2012','1','Trust management;distributed system design;trust management for developers;user-centered design','Research in the field of Trust Management is blooming producing new Trust Frameworks within short time intervals. However, trust researchers do not develop distributed systems. Most developers are not familiar with security procedures and therefore often introduce other security vulnerabilities during implementation. We wish to provide a solution for system designers and developers for applying Trust Management. As a first step of our work we investigated how our users understand the application of trust and reputation in distributed systems. During focus group workshops we collected a set of initial requirements. We learnt that users are familiar with the benefits gained by Trust Management but had not enough knowledge about its application.','Privacy, Security and Trust (PST), 2012 Tenth Annual International Conference on',1,'M. Vinkovits','ieee/service oriented architecture security.csv','ieee','\0'),(544,'A modified (Dual) fusion technique for image encryption using SHA-256 hash and multiple chaotic maps','2015','0',' 2D logistic map Chaos theory DNA SHA-256 Noise resistance MDF','Abstract A Modified Dual Fusion (MDF) technique of image encryption is proposed in this paper to overcome the limitations that exist in the original research work of Q. Zhang et al. (Optik 124:3596–3600, 2013 ). A novel technique of DNA encoding is applied through chaotic maps on pixel level and SHA-256 hash of the plain image is used to generate secret keys to avoid chosen-plaintext attack. Also, in the modified scheme, two random images are generated from chaotic maps to fuse with the plain image after permutation in digital and DNA domains using XOR and addition operations respectively. The simulated experimental results and security analysis show that the proposed cryptosystem has fairly good encryption effect than the original fusion scheme but also has the capability to sustain noise which gets add during transmission over noisy channel. Besides, the paramount factor of improved scheme is suitable for the real time applications.','Multimedia Tools and Applications',1,'Aqeel-ur-RehmanXiaofeng LiaoAyesha KulsoomSami Ullah','springer/service oriented architecture security.csv','springer',''),(545,'Efficient Querying of XML Data Through Arbitrary Security Views','2015','0',' XML access control Security views Materialization Query rewriting XPath Regular XPath XML databases Confidentiality and integrity','Abstract We study the problem of querying virtual security views of XML data that has received a great attention during the past years. A major concern here is that user XPath queries posed on recursive views cannot be rewritten to be evaluated on the underlying XML data. Existing rewriting solutions are based on the non-standard language, “Regular XPath”, which makes rewriting possible under recursion. However, query rewriting under Regular XPath can be of exponential size. We show that query rewriting is always possible for arbitrary security views (recursive or not) by using only the expressive power of the standard XPath. We propose a more expressive language to specify XML access control policies as well as an efficient algorithm to enforce such policies. Finally, we present our system, called SVMAX , that implements our solutions and we show that it scales well through an extensive experimental study based on real-life DTD.','',1,'Houari MahfoudAbdessamad Imine','springer/service oriented architecture security.csv','springer',''),(546,'5th International Conference on Soft Computing for Problem Solving, SocProS 2015','2016','','','The proceedings contain 88 papers. The special focus in this conference is on Soft Computing for Problem Solving. The topics include: Optimization of nonlocal means filtering technique for denoising magnetic resonance images; a production model with stock-dependent demand, partial backlogging, weibull distribution deterioration, and customer returns; chemo-inspired genetic algorithm and application to model order reduction problem; grammatical evolution using fireworks algorithm; gaussian function-based particle swarm optimization; reinforcing particle system effects using object-oriented approach and real-time fluid dynamics for next-generation 3D gaming; searchless fractal image compression using fast DCT and real DCT; study of neighborhood search-based fractal image encoding; an optimized color image watermarking technique using differential evolution and SVD-DWT domain; one day ahead forecast of pan evaporation at pali using genetic programming; optimized scenario of temperature forecasting using SOA and soft computing techniques; software reliability prediction using machine learning techniques; a genetic algorithm based scheduling algorithm for grid computing environments; effect of imperfect debugging on prediction of remaining faults in software; multiple document summarization using text-based keyword extraction; implementation of the principle of jamming for hulk gripper remotely controlled by raspberry pi; differential evolution; multi-objective parametric query optimization for distributed database systems; energy efficient routing protocol for MANET using vague set; data storage security in cloud paradigm; axisymmetric vibrations of variable thickness functionally graded clamped circular plate and performance evaluation of geometric-based hybrid approach for facial feature localization.','',1,'[No author name available]','scopus/soa security.csv','scopus',''),(547,'Learning from Failures: A Lightweight Approach to Run-Time Behavioural Adaptation','2012','0','','Abstract Software integration needs to face signature and behaviour incompatibilities that unavoidably arise when composing services developed by different parties. While many of such incompatibilities can be solved by applying existing software adaptation techniques, these are computationally expensive and require to know beforehand the behaviour of the services to be integrated. In this paper we present a lightweight approach to dynamic service adaptation which does not require any previous knowledge on the behaviour of the services to be integrated. The approach itself is adaptive in the sense that an initial (possibly the most liberal) adaptor behaviour is progressively refined by learning from failures that possibly occur during service interaction.','',2,'José Antonio MartínAntonio BrogiErnesto Pimentel','springer/bpel security.csv','springer','\0'),(548,'Privacy preserving collaborative filtering for SaaS enabling PaaS clouds','2012','5',' Collaborative filtering Privacy Cloud computing Homomorphic cryptosystem Slope one','Abstract Abstract Recommender systems use, amongst others, a mechanism called collaborative filtering (CF) to predict the rating that a user will give to an item given the ratings of other items provided by other users. While reasonably accurate CF can be achieved with various well-known techniques, preserving the privacy of rating data from individual users poses a significant challenge. Several privacy preserving schemes have, so far, been proposed in prior work. However, while these schemes are theoretically feasible, there are many practical implementation difficulties on real world public cloud computing platforms. In this paper, we present our implementation experience and experimental results on two public Software-as-a-Service (SaaS) enabling Platform-as-a-Service (PaaS) clouds: the Google App Engine for Java (GAE/J) and the Amazon Web Services Elastic Beanstalk (AWS EBS). a','Journal of Cloud Computing: Advances, Systems and Applications',1,'Anirban BasuJaideep VaidyaHiroaki KikuchiTheo DimitrakosSrijith K Nair','springer/soa security.csv','springer','\0'),(549,'Digital Ecosystems for Business e-Services in Knowledge-Intensive Firms','2012','1',' Service Digital Ecosystem Knowledge-intensive Business Service Service System Artifact Software as a Service','Abstract In this day and age, firms compete by the skills and knowledge of their employees to deliver a range of customized solutions to meet their clients’ needs. Knowledgeable workers thereby play a pivotal role in today’s knowledge-based economy. In knowledge-intensive business service (KIBS) firms, service providers exchange explicit knowledge with service customers through various delivery channels. Information and communication technologies have led to the development of various delivery channels to provide e-services to customers and, consequently, the emergence of digital ecosystems fostering the flourishing of knowledge-intensive firms. In this paper, we study the development of digital ecosystems of business services. We particularly examine the design of the digital business ecosystem as a holistic system consisting of distributed and fine-grained elements, known as service systems. Based on the challenging characteristics of services, a service system exhibits its computational features in terms of Software-as-a-Service components and exchanges business knowledge encapsulated as business artifacts.','',2,'Youakim BadrYong PengFrédérique Biennier','springer/bpel security.csv','springer','\0'),(550,'Middleware for Internet distribution in the context of cloud computing and the Internet of Things','2016','0','','','Annals of Telecommunications',1,'Gordon BlairDouglas SchmidtChantal Taconet','springer/service oriented architecture security.csv','springer',''),(551,'Fair BPEL processes transaction using non-repudiation protocols','2005','3','','There is a need for protocols to achieve universal interoperability among Web services and to provide a fair and secure environment with non-repudiation. BPEL provides a language for the formal specification of business processes and business interaction protocols. In this paper we propose and verify a non-repudiation protocol using Petri nets for chain-linked business transactions and show that they may be specified in BPEL.','2005 IEEE International Conference on Services Computing (SCC\'05) Vol-1',2,'M. Bilal; J. P. Thomas; M. Thomas; S. Abraham','ieee/bpel security.csv','ieee','\0'),(552,'Bridging the GAP between Software Certification and Trusted Computing for Securing Cloud Computing','2013','1','certification; cloud computing; security; trusted computing technology','Despite the fact that software security certification has important advantages; among these we highlighted that it allows to increase users\' trust by means of attesting security properties. However, in most of cases the system that is subject of certification is considered to be monolithic. This fact implies that existing certification schemes do not provide support for dynamic changes of components as required in Cloud Computing scenarios. In existing certification schemes certificates refer to a particular version of the product or system, changes in the system structure require a process of recertification. We propose a solution based on the combination of software certification techniques and hardware-based certification, as those provided by the Trusted Computing technology. Likewise, the main target of our approach is bringing the gap existing between the software certification and the means for hardware certification, in order to provide a solution for the whole system certification using Trusted Computing technology.','2013 IEEE Ninth World Congress on Services',1,'A. Muñoz; A. Maña','ieee/service oriented architecture security.csv','ieee','\0'),(553,'Providing security to a smart grid prosumer system based on a service oriented architecture in an office environment','2013','','Attacker Model; Office Environment; Prosumer; Security Analysis; Service Oriented Architecture; Smart Grid','The transformation of energy systems into smart grids will provide a lot of new possibilities to all participants. By upgrading energy distribution nets with information and communication technologies (ICT) customers and suppliers will have additional information. It integrates a bi-directional information transport between both, power supply company and customer. This real-time data is used to save costs by reducing energy consumption, to provide a good alignment with fluctuating renewable energy production, or to actively participate in the market by offering surplus production. However, ICT systems are always a subject to potential cyber-attacks and manipulations. Therefore, securing such systems is one of the most important objectives. In this paper we conduct the security analysis of our smart grid prosumer demonstrator, which is implemented using on a service oriented architecture. We analyze the attackers\' motivations and derive an attacker model. We identify weak points of our system with respect to the attacker model and the system architecture. Finally, we propose counter measurements to improve the case study smart grid system. © 2013 IEEE.','',1,'Camek A., Holzl F., Bytschkow D.','scopus/service oriented architecture security.csv','scopus','\0'),(554,'Compositional Network Mobility','2014','1','','Abstract Mobility is a network capability with many forms and many uses. Because it is difficult to implement at Internet scale, there is a large and confusing landscape of mobility proposals which cannot easily be compared or composed. This paper presents formal models of two distinct patterns for implementing mobility, explaining their generality and applicability. We also employ formal verification to show that different instances of the patterns, used for different purposes in a network architecture, compose without alteration or interference. This result applies to all real implementations that are refinements of the patterns.','',1,'Pamela ZaveJennifer Rexford','springer/service oriented architecture security.csv','springer','\0'),(555,'The development and application of e-Geoscience in China','2015','1',' e-Science e-Geoscience Big data Information sharing Cloud computing Internet of Things (IoT) Northeast Asia','Abstract In the era of big data, scientific research is entering a key stage of scientific development under the guidance of a new paradigm, “e-Science”, and the core characteristics of which are collaboration and sharing. In the past decade, e-Science has rapidly developed around the world. There are now e-Science strategic plans, projects and extensive research activities on the national and international scales that encompass particle physics, astronomy, earth science, ecology, marine science, medicine, life sciences and other disciplines. However, there is no uniform and clear understanding of the essence, characteristics, infrastructure and application of e-Geoscience. This paper first discusses and analyzes the development of e-Science in a global context and then explores its development in China. Next, the development of e-Geoscience is discussed, particularly regarding the details of its design and implementation in China, including a conceptual model, a mode of application, a logical hierarchy, and functional and technical systems. Finally, the paper introduces a typical application, called the Northeast Asia Joint Scientific Exploration and Cooperative Research Platform (NAJSECRP), which is operating in research institutions in China, Russia and Mongolia. This platform can not only provide geodata and bibliographies and promote resource sharing but also provides a collaborative research platform for scientific exploration. In practice, this platform has been shown to save costs and improve the efficiency of transnational, interdisciplinary scientific exploration and cooperative research.','Information Systems Frontiers',1,'Yunqiang ZhuPeng PanShifeng FangLi Da XuJia SongJinqu ZhangMin Feng','springer/service oriented architecture security.csv','springer',''),(556,'Proactive autonomous defense shield (PADS) for Infrastructure as a Service (IaaS)','2014','','Hierarchical autonomous- Cloud intrusion detection system; Proactive intrusion detection; Simple object access protocol; Virtual machine monitor','Securing assets in the digital realm has become a challenge as there has been an exponential increment in the companies relying on the next generation technologies such as cloud computing. With the evolution of utility computing and Service Oriented Architecture as well as convergence of virtualization and web services into the notion of cloud computing, the attacks on these systems are indeed becoming more intricate and perplexing. Most inherently susceptible to the attack is Infrastructure as a Service (IaaS). This paper presents a technique of reinforcing the security of virtual machines whilst reducing the instances of false positives.','',1,'Thukral K., Zilpelwar A., Madiajagan M.','scopus/service oriented architecture security.csv','scopus','\0'),(557,'Mobile context-based framework for threat monitoring in urban environment with social threat monitor','2014','2',' Context-awareness Mobile computing GIS Knowledge management INDECT','Abstract Engaging users in threat reporting is important in order to improve threat monitoring in urban environments. Today, mobile applications are mostly used to provide basic reporting interfaces. With a rapid evolution of mobile devices, the idea of context awareness has gained a remarkable popularity in recent years. Modern smartphones and tablets are equipped with a variety of sensors including accelerometers, gyroscopes, pressure gauges, light and GPS sensors. Additionally, the devices become computationally powerful which allows for real-time processing of data gathered by their sensors. Universal access to the Internet via WiFi hot-spots and GSM network makes mobile devices perfect platforms for ubiquitous computing. Although there exist numerous frameworks for context-aware systems, they are usually dedicated to static, centralized, client-server architectures. There is still space for research in the field of context modeling and reasoning for mobile devices. In this paper, we propose a lightweight context-aware framework for mobile devices that uses data gathered by mobile device sensors and performs on-line reasoning about possible threats based on the information provided by the Social Threat Monitor system developed in the INDECT project.','Multimedia Tools and Applications',1,'Szymon BobekGrzegorz J. NalepaAntoni LigȩzaWeronika T. AdrianKrzysztof Kaczor','springer/service oriented architecture security.csv','springer','\0'),(558,'Federation and security aspects for the management of the EHR in Italy','2012','','eHealth; Electronic Health Record; Federation; Security; SOA','The Electronic Health Record (EHR) or Electronic Patient Record is a collection of electronic health information about a patient, created to increase personal safety through more accurate evidence-based decision support. Healthcare organizations, especially in different regions/local governments, can have different architectural solutions and procedures, and thus different access control policies. The requirement of compliance with previously developed architectural solutions binds them to using a single Federated infrastructure model. Since data stored in the EHR Infrastructure concerns the health status of patients, they must be considered critical and their confidentiality and integrity must be protected by proper security support. In this paper we will present the analysis of federation and security aspects and issues for the management of the Electronic Health Record in Italy, suggesting a possible solution. © 2012 Springer-Verlag.','',1,'Buzzi M.C., Donini F., Gebrehiwot A., Lunardelli A., Lucchesi C., Mori P.','scopus/soa security.csv','scopus','\0'),(559,'On enabling integrated process compliance with semantic constraints in process management systems','2012','16',' Adaptive process management systems Semantic constraints Process verification Compliance validation','Abstract Key to broad use of process management systems (PrMS) in practice is their ability to foster and ease the implementation, execution, monitoring, and adaptation of business processes while still being able to ensure robust and error-free process enactment. To meet these demands a variety of mechanisms has been developed to prevent errors at the structural level (e.g., deadlocks). In many application domains, however, processes often have to comply with business level rules and policies (i.e., semantic constraints ) as well. Hence, to ensure error-free executions at the semantic level, PrMS need certain control mechanisms for validating and ensuring the compliance with semantic constraints. In this paper, we discuss fundamental requirements for a comprehensive support of semantic constraints in PrMS. Moreover, we provide a survey on existing approaches and discuss to what extent they are able to meet the requirements and which challenges still have to be tackled. In order to tackle the particular challenge of providing integrated compliance support over the process lifecycle, we introduce the SeaFlows framework. The framework introduces a behavioural level view on processes which serves a conceptual process representation for constraint specification approaches. Further, it provides general compliance criteria for static compliance validation but also for dealing with process changes. Altogether, the SeaFlows framework can serve as formal basis for realizing integrated support of semantic constraints in PrMS.','Information Systems Frontiers',2,'Linh Thao LyStefanie Rinderle-MaKevin GöserPeter Dadam','springer/bpel security.csv','springer',''),(560,'Model Checking of Security-Critical Applications in a Model-Driven Approach','2013','2','','Abstract This paper illustrates the integration of model checking in SecureMDD, a model-driven approach for the development of security-critical applications. In addition to a formal model for interactive verification as well as executable code, a formal system specification for model checking is generated automatically from a UML model. Model checking is used to find attacks automatically and interactive verification is used by an expert to guarantee security properties. We use AVANTSSAR for model checking and KIV for interactive verification. The integration of AVANTSSAR in SecureMDD and the advantages and disadvantages over interactive verification with KIV are demonstrated with a smart card based electronic ticketing example.','',2,'Marian BorekNina MoebiusKurt StenzelWolfgang Reif','springer/bpmn security.csv','springer','\0'),(561,'A Cost-Effective Methodology Applied to Videoconference Services over Hybrid Clouds','2013','1',' videoconference cloud computing hybrid clouds cost-effectiveness analysis','Abstract This paper tackles the optimization of applications in multi-provider hybrid cloud scenarios from an economic point of view. In these scenarios the great majority of solutions offer the automatic allocation of resources on different cloud providers based on their current prices. However our approach is intended to introduce a novel solution by making maximum use of divide and rule. This paper describes a methodology to create cost aware cloud applications that can be broken down into the three most important components in cloud infrastructures: computation, network and storage. A real videoconference system has been modified in order to evaluate this idea with both theoretical and empirical experiments. This system has become a widely used tool in several national and European projects for e-learning and collaboration purposes.','Mobile Networks and Applications',1,'Javier CerviñoPedro RodríguezIrena TrajkovskaFernando EscribanoJoaquín Salvachúa','springer/soa security.csv','springer','\0'),(562,'Research on job security scheduling strategy in cloud computing model','2015','','Cloud computing; Genetic algorithm; Security demand; Security scheduling; Trust level','This paper concentrates on the problem of job security scheduling problem under the cloud computing environment. The Architecture of the cloud computing platform is made up of four layers, including 1) SOA architecture, 2) Management Middleware, 3) Resource virtualization and 4) Physical Resources. Next, we formally describe the problem of the job security scheduling under cloud computing. To guarantee the security level of job scheduling, security demand and trust level are defined in our work. Afterwards, the proposed genetic algorithm based job security scheduling is proposed. The main innovation of our proposed algorithm lies in that we utilize each chromosome to represent a schedule of a set of jobs on several computers, and then each gene is represented as a pair to describe the relationships between jobs and computers. Finally, experimental results demonstrate that our algorithm can effectively schedule jobs with higher level security and lower processing time cost. © 2016 IEEE.','',1,'Zhang H.','scopus/soa security.csv','scopus','\0'),(563,'A guidance model for architecting secure mobile applications','2012','','architectural decisions; architectural knowledge; guidance model; mobile applications; mobility; security','In addition to fast technological advances in the area of mobile devices and its broad adoption in todays developed societies, mobile applications do not only address the consumer electronics market but are also increasingly being used in a business and industry context. Thus, we see a demand for research developing software systems comprising mobile devices with special respect to security concerns. In this paper we want to address this demand from an architectural point of view and make use of the concept of architectural decisions. We present a guidance model that supports on the one hand this decision-making process during architecting mobile applications. On the other hand the presented guidance model serves as a tool to evaluate existing architectures. The guidance model has been created based on an adapted version of Zimmermann\'s SOAD framework, which is used for in the context of service-oriented architectures. The guidance model itself consists of a set of interrelated architectural decisions for recurring design situations. The application of the guidance model is demonstrated along a real-world scenario. The guidance model also takes into account that security concerns are changing and therefore provides an extension mechanism which is presented in this paper. © 2012 ICST Institute for Computer Science, Social Informatics and Telecommunications Engineering.','',1,'Schwittek W., Diermann A., Eicker S.','scopus/service oriented architecture security.csv','scopus','\0'),(564,'Enriching Process Models for Business Process Compliance Checking in ERP Environments','2013','0',' Compliance Checking Application Controls BPM ERP','Abstract In enterprise resource planning (ERP) environments the audit of business process compliance is a complex task as audit relevant context information about the ERP system like application controls (ACs) need to be considered to derive comprehensive audit results. Current compliance checking approaches neglect such information as it is not readily available in process models. Even if ACs are automatically analysed with audit software, the results still need to be linked to related processes. By now, this linking is not methodically supported. To address this gap this paper presents a method to automatically enrich process models with audit relevant information about ACs. The method consists of three phases: process model construction, automated analysis of ACs, and model enrichment. It utilizes two existing artefacts and combines them to provide a comprehensive basis for compliance checking. Moreover, the enriched process models can support auditors in conducting process audits in ERP environments.','',2,'Martin Schultz','springer/bpel security.csv','springer','\0'),(565,'Native structure-based modeling and simulation of biomolecular systems per mouse click','2014','1',' Protein folding RNA folding Native structure-based model Molecular dynamics GridBeans','Abstract Background Molecular dynamics (MD) simulations provide valuable insight into biomolecular systems at the atomic level. Notwithstanding the ever-increasing power of high performance computers current MD simulations face several challenges: the fastest atomic movements require time steps of a few femtoseconds which are small compared to biomolecular relevant timescales of milliseconds or even seconds for large conformational motions. At the same time, scalability to a large number of cores is limited mostly due to long-range interactions. An appealing alternative to atomic-level simulations is coarse-graining the resolution of the system or reducing the complexity of the Hamiltonian to improve sampling while decreasing computational costs. Native structure-based models, also called Gō-type models, are based on energy landscape theory and the principle of minimal frustration. They have been tremendously successful in explaining fundamental questions of, e.g., protein folding, RNA folding or protein function. At the same time, they are computationally sufficiently inexpensive to run complex simulations on smaller computing systems or even commodity hardware. Still, their setup and evaluation is quite complex even though sophisticated software packages support their realization. Results Here, we establish an efficient infrastructure for native structure-based models to support the community and enable high-throughput simulations on remote computing resources via GridBeans and UNICORE middleware. This infrastructure organizes the setup of such simulations resulting in increased comparability of simulation results. At the same time, complete workflows for advanced simulation protocols can be established and managed on remote resources by a graphical interface which increases reusability of protocols and additionally lowers the entry barrier into such simulations for, e.g., experimental scientists who want to compare their results against simulations. We demonstrate the power of this approach by illustrating it for protein folding simulations for a range of proteins. Conclusions We present software enhancing the entire workflow for native structure-based simulations including exception-handling and evaluations. Extending the capability and improving the accessibility of existing simulation packages the software goes beyond the state of the art in the domain of biomolecular simulations. Thus we expect that it will stimulate more individuals from the community to employ more confidently modeling in their research.','BMC Bioinformatics',1,'Benjamin LutzClaude SinnerStefan BozicIvan KondovAlexander Schug','springer/service oriented architecture security.csv','springer','\0'),(566,'Enhancing Service-Oriented Computing with Software Mobility','2012','0','','Abstract Service-oriented computing has emerged as a consensually accepted paradigm for the implementation and integration of distributed systems in heterogeneous environments. However, its basic request/response interaction model is not always adequate for communicating in both highly dynamic, and low bandwidth, networks. To overcome this limitation, we propose the seamless incorporation of software mobility with service-oriented computing to provide a powerful framework for service-oriented architectures to benefit from the advantages of the mobility paradigm. We instantiate the model as a middleware for the mobility of Java computations in Web service environments, and present some programming examples that illustrate the expressiveness of the proposed API. This middleware is currently being successfully used in the development of other service-oriented architectures, namely in the field of dynamic Web service architectures.','',2,'Hervé PaulinoGilberto Camacho','springer/bpel security.csv','springer','\0'),(567,'What can agent-based computing offer service-oriented architectures, and vice versa?','2012','1','','This article serves as a record of a panel discussion held at PRIMA in November, 2010. The panel consisted of two academic and three industry representatives, and thus provided a rare opportunity to discuss the relationship between agent-based computing and service-oriented architectures from both points of view. The basic question for the panel was to identify the key research and industry issues that arise in the deployment of systems based on service-oriented architectures, and in particular to address whether the agent-based computing paradigm offers any resolution of those issues. The question was also posed whether applications based on service-oriented architectures provide a suitable platform for implementing agent-based systems, which are presently limited in application by comparison. This summary is presented with the aim of stimulating further academic and industry collaborative research in this fast growing area which potentially has wide-ranging practical application. © Springer-Verlag Berlin Heidelberg 2012.','',1,'Wobcke W., Desai N., Dignum F., Ghose A., Padmanabhuni S., Srivastava B.','scopus/service oriented architecture security.csv','scopus','\0'),(568,'The CoNSIS approaches to network management and monitoring','2012','0','federation;measurement architecture;network management;protected core networking;service level agreements','Secure information exchange is a key success factor for military operations. International coalition missions are especially challenging because of heterogeneous communication and C2IS equipment. The international project CoNSIS is targeted to fill in technical gaps regarding interoperability which occur in a reference scenario, consisting of a multinational convoy of military and non-governmental vehicles. The convoy forms an ad-hoc radio network and shares a common operational picture with an international headquarter mainly via a satellite link. This paper addresses network management challenges and technical solutions for this federated scenario. Both the core network interconnecting different national headquarters with an international headquarter as well as the ad-hoc radio network of the convoy are addressed in a single, seamless concept. In June 2012, field tests with the convoy were carried out in order to evaluate the different technical solutions.','Communications and Information Systems Conference (MCC), 2012 Military',1,'C. Barz; A. Diefenbach; F. Abut; M. Wilmes; P. Sevenich; P. Simon; N. Bret','ieee/service oriented architecture security.csv','ieee','\0'),(569,'Ontology-Based Querying of Composite Services','2012','0',' Networked Enterprise Business Process Semantic Annotation Ontology Query Language Composite Service','Abstract Enterprises are evolving towards advanced forms of cooperation and networking. This kind of tight cooperation requires the creation of global Business Processes (i.e., cross-enterprise composite services) composed starting from a set of existing local processes (exposed, in turn, as services) found in different enterprises. To this end, in this chapter we present an ontology-based approach for querying business process repositories for the retrieval of process fragments to be reused in the composition of new business processes. The proposed solution is based on a synergic use of a business process modelling framework (BPAL) to represent the workflow logic of business processes, and business ontologies, aimed at capturing the semantics of a business scenario. Both components are grounded in logic programming and therefore it is possible to apply effective reasoning methods to query the knowledge base stemming from the fusion of the two.','',2,'Fabrizio SmithMichele MissikoffMaurizio Proietti','springer/bpel security.csv','springer','\0'),(570,'Cloud Migration for SMEs in a Service Oriented Approach','2013','4','Cloud computing;SMEs;SOA;cloud migration;migration framework','Cloud computing has gained immense momentum during recent years and has ultimately become a viable solutions not only for larger firms, but also for small and medium-sized enterprises (SMEs). For smaller companies to stay competitive, many have therefore decided in favour of adapting cloud solutions. Given the multitude of issues and challenges that occur during the cloud migration phase, this work proposes a novel framework that helps SMEs to master migration related impediments. Firstly, the work takes into account SME specific requirements and articulates their importance during the cloud provider selection phase. The elicitation results demonstrate that factors such as security, reliability, cost, performance as well as flexibility and service and support have a pivotal role to play and require close attention. Secondly, decisive attributes were defined that qualify business components and services as cloud-fit. Finally, the framework itself was proposed, which focuses on a systematic service-oriented approach and helps companies to analyse their existing business processes in the course of cloud migration. The framework was verified in its practicability using a concrete scenario and a subsequent prototypical cloud implementation.','Computer Software and Applications Conference Workshops (COMPSACW), 2013 IEEE 37th Annual',1,'N. Nussbaumer; X. Liu','ieee/service oriented architecture security.csv','ieee','\0'),(571,'Making XML Signatures Immune to XML Signature Wrapping Attacks','2013','2','Cloud; SOA; SOAP; Web Services; WS-Security; XML Signature; XML Signature Wrapping; XSpRES','The increased usage of XML in distributed systems and platforms increases the demand for robust and effective security mechanisms likewise. Recent research work discovered, however, substantial vulnerabilities in the XML Signature standard as well as in the vast majority of the available implementations. Amongst them, the so-called XML Signature Wrapping (XSW) attack belongs to the most relevant ones. With the many possible instances of the XSW attack class, it is feasible to annul security systems relying on XML Signature and to gain access to protected resources as has been successfully demonstrated lately for various Cloud services. This work introduces a comprehensive approach to robust and effective XML Signatures for SOAP-based Web Services denoted as XSpRES. An architecture is presented, which integrates the required enhancements to ensure a fail-safe and sound signature generation and verification. Following this architecture, a hardened XML Signature library has been implemented. The obtained evaluation results show that the developed concept and library provide the targeted robustness against all kinds of known XSW attacks. Moreover, the empirical results underline that these security merits are obtained at low efficiency and performance costs as well as remain compliant with the underlying standards. © Springer International Publishing Switzerland 2013.','',1,'Mainka C., Jensen M., Lo Iacono L., Schwenk J.','scopus/soa security.csv','scopus','\0'),(572,'The intelligent RFID information security integrated antenna arrays system based on SOA','2012','2','Heterogeneous; Information security; RFID; RSA; SOA; WMN','Radio frequency identification (RFID) technology system is quickly evolved many applications to manage personnel can be more efficient for automation systems. We combine the RSA encryption and decryption algorithms to raise the safety and the information security systems. The RFID environment has been communicated to exchange data for heterogeneous wireless networks. In this paper, it is implemented the RFID-based campus system solutions to security and privacy of RFID system for wireless mesh network applications. We propose to enhance the security algorithm combined RFID devices for the antenna arrays system. This paper is also presented the integrated framework for the application and integration systems based on service oriented architecture, and given a specific application of the framework combined with campus system. © Springer Science+Business Media, LLC. 2011.','',1,'Jong G.-J., Peng P.-L., Horng G.-J.','scopus/service oriented architecture security.csv','scopus','\0'),(573,'Supporting Non-functional Requirements in Services Software Development Process: An MDD Approach','2014','0',' MDD Service Oriented Applications Non-functional Properties','Abstract This paper presents the π SOD-M method, an extension to the Service-Oriented Development Method (SOD-M) to support the development of services software by considering their functional and non-functional requirements. Specifically, π SOD-M proposes: (i) meta-models for representing non-functional requirements at different abstraction levels; (ii) model-to-model transformation rules, useful to semi-automatically refine Platform Independent Models into Platform Specific Models; and (iii) rules to transform Platform Specific Models into concrete implementations. In order to illustrate our proposal, the paper also describes how to apply the methodology to develop a proof of concept.','',2,'Valeria de CastroMartin A. MusicanteUmberto Souza da CostaPlácido A. de Souza NetoGenoveva Vargas-Solar','springer/bpel security.csv','springer',''),(574,'Customizing Protocol Specifications for Detecting Resource Exhaustion and Guessing Attacks','2012','0','','Abstract Model checkers for security protocols often focus on basic properties, such as confidentiality or authentication, using a standard model of the Dolev-Yao intruder. In this paper, we explore how to model other attacks, notably guessing of secrets and denial of service by resource exhaustion, using the AVANTSSAR platform with its modelling language ASLan. We do this by adding custom intruder deduction rules and augmenting protocol transitions with constructs that keep track of these attacks. We compare several modelling variants and find that writing deductions in ASLan as Horn clauses rather than transitions using rewriting rules is crucial for verification performance. Providing automated tool support for these attacks is important since they are often neglected by protocol designers and open up other attack possibilities.','',1,'Bogdan GrozaMarius Minea','springer/service oriented architecture security.csv','springer','\0'),(575,'Cyber Physical System: Architecture, applications and research challenges','2013','2','CPS Applications;Cyber Physical Systems (CPS);Research Challenges in CPS;Service Oriented Architecture (SOA)','Cyber world and physical world were considered as two different entities in the past decade. However, researchers have found that these two entities are closely correlated with each other after integration of sensor/actuators in the cyber systems. Cyber systems became responsive to the physical world by enabling real time control emanating from conventional embedded systems, thus emerging a new research paradigm named Cyber Physical System (CPS). In this article, we investigate major challenges in the integration of cyber world with physical world and its applications. In addition, we propose an architecture which contains several modules supporting the CPS. We found that every module in our proposed architecture has its own significance and can be applied to various applications.','Wireless Days (WD), 2013 IFIP',1,'S. H. Ahmed; G. Kim; D. Kim','ieee/service oriented architecture security.csv','ieee','\0'),(576,'Security services efficiency in disadvantaged networks','2015','','Federated mission network; PR4G; Security; Web authentication','Modern coalition operations require efficient cooperation between partners of allied forces. They usually rely on their national systems equipped with software solutions supporting interoperability. Federation of systems built for the purpose of such operations assumes however independence of particular individual ones. In order to support efficient exchange of information between allies there are necessary federated software solutions promoting secure cross-domain information exchange. Lately the concept of Federated Mission Networking following Service Oriented Architecture (SOA) is being developed by NATO. In terms of secure information exchange for SOA-based services it proposes to use Web Authentication standard based on WS-Federation. In the article the authors present the results of tests of this standard efficiency in disadvantaged network environment built with PR4G radios. The architecture of the solution is presented with necessary information exchange relations and their invocation times. © 2015 IEEE.','',1,'Sliwa J., Jasiul B., Podlasek T., Matyszkiel R.','scopus/service oriented architecture security.csv','scopus',''),(577,'Building integrated business environments: analysing open-source ESB','2015','2','e-business; enterprise application integration; ESB; service-oriented architecture; services engineering','Integration and interoperability are two concepts that have gained significant prominence in the business field, providing tools which enable enterprise application integration (EAI). In this sense, enterprise service bus (ESB) has played a crucial role as the underpinning technology for creating integrated environments in which companies may connect all their legacy-applications. However, the potential of these technologies remains unknown and some important features are not used to develop suitable business environments. The aim of this paper is to describe and detail the elements for building the next generation of integrated business environments (IBE) and to analyse the features of ESBs as the core of this infrastructure. For this purpose, we evaluate how well-known open-source ESB products fulfil these needs. Moreover, we introduce a scenario in which the collaborative system ‘Alfresco’ is integrated in the business infrastructure. Finally, we provide a comparison of the different open-source ESBs available for IBE requirements. According to this study, Fuse ESB provides the best results, considering features such as support for a wide variety of standards and specifications, documentation and implementation, security, advanced business trends, ease of integration and performance. © 2013, © 2013 Taylor & Francis.','',1,'Martínez-Carreras M.A., García Jimenez F.J., Gómez Skarmeta A.F.','scopus/service oriented architecture security.csv','scopus',''),(578,'Compositional Development of BPMN','2013','0','','Abstract Business Process Modelling Notation (BPMN) intends to bridge the gap between business process design and implementation. Previously we provided a process semantics to a subset of BPMN in the language of Communicating Sequential Processes (CSP). This semantics allows developers to formally analyse and compare BPMN diagrams using CSP’s traces and failures refinements. In this paper we introduce a comprehensive set of operations for constructing BPMN diagrams, provide them a CSP semantics, and characterise the conditions under which the operations are monotonic with respect to CSP refinements, thereby allowing compositional development of business processes.','',2,'Peter Y. H. Wong','springer/bpel security.csv','springer','\0'),(579,'Modelling and transforming security constraints in privacy-aware business processes','2011','','','Security and privacy are essential for business processes (BPs). In particular, BPs dealing with personally-identifiable information require mechanisms to give data owners control over their data. Currently, business-process-management systems (BPMSs) lack security features important for BPs in SOA. We propose a language sufficiently broad to formulate security constraints. In addition, we considerably ease how data owners can control their security, privacy and trust preferences at process runtime. The BPMS extensions we have implemented transform security-enhanced BPMN schemas into executable secure processes in a versatile manner. © 2011 IEEE.','',2,'Mülle J., Von Stackelberg S., Böhm K.','scopus/bpmn security.csv','scopus','\0'),(580,'DIVANet 2013 - Proceedings of the 3rd ACM International Symposium on Design and Analysis of Intelligent Vehicular Networks and Applications, Co-located with ACM MSWiM 2013','2013','','','The proceedings contain 21 papers. The topics discussed include: improving throughput in highway transportation systems by entry control and virtual queue; dual-mode optimum distance routing scheme for vehicular ad hoc networks; an efficient fault detection and diagnosis protocol for vehicular networks; decision support protocol for intrusion detection in VANETs; security and privacy of electric vehicles in the smart grid context: problem and solution; securing vehicular ad hoc networks with mean field game theory; web services for VANET: a service oriented architecture for infotainment system based on mashup using open APIs; semantic based networking of information in vehicular clouds based on dimensionality reduction; investigating mobile crowdsensing application performance; social drive: a crowdsourcing-based vehicular social networking system for green transportation; and evaluation of dynamic communities in large-scale vehicular networks.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus','\0'),(581,'A novel policy-driven reversible anonymisation scheme for XML-based services','2015','3','Big data; Deanonymiser; Privacy; Reversible anonymisation; XACML; XML-encryption','This paper proposes a reversible anonymisation scheme for XML messages that supports fine-grained enforcement of XACML-based privacy policies. Reversible anonymisation means that information in XML messages is anonymised, however the information required to reverse the anonymisation is cryptographically protected in the messages. The policy can control access down to octet ranges of individual elements or attributes in XML messages. The reversible anonymisation protocol effectively implements a multi-level privacy and security based approach, so that only authorised stakeholders can disclose confidential information up to the privacy or security level they are authorised for. The approach furthermore supports a shared secret based scheme, where stakeholders need to agree to disclose confidential information. Last, it supports time limited access to private or confidential information. This opens up for improved control of access to private or confidential information in XML messages used by a service oriented architecture. The solution provides horizontally scalable confidentiality protection for certain types of big data applications, like XML databases, secure logging and data retention repositories. © 2014 Elsevier Ltd. All rights reserved.','',1,'Ulltveit-Moe N., Oleshchuk V.','scopus/service oriented architecture security.csv','scopus',''),(582,'On Some Challenges in Business Systems Management and Engineering for the Networked Enterprise of the Future','2012','0','','Abstract Business value networks will become increasingly important in the world’s economy in the future. Their appropriate IT support must efficiently realize business collaborations between globally spread organizations. The ability to adapt to changing market and business requirements together with the ability to reflect the business adaptations on the level of the connected ICT systems constitute key challenges for the support of business network formations. In this paper, the evolution of business trends and business process support during the last decades is briefly addressed. After the introduction of a reference model of business value networks, this paper discusses some pressing research challenges that have to be addressed to realize business value networks and their ICT system support in the future.','',2,'Andreas FriesenWolfgang TheilmannMarkus HellerJens LemckeChristof Momm','springer/bpel security.csv','springer','\0'),(583,'Trusted Service Application Framework on Mobile Network','2012','2','Mobile Network;Service-Oriented;Trusted Framework','With the development of information technology and secure applications in key departments (such as national security department, medical establishment), existing mobile network was not dependable enough for service-oriented applications. Facing to the secure requirements in mobile network, a new trusted service application framework was proposed, which included applications analysis, network services, security protocols, error detection and fault tolerance. Combined with natural attribute of trust, trust evaluation model was built. It enhanced reliability and security of mobile network applications. Our experimental results showed this framework not only had advantages but also had a good reference value.','Ubiquitous Intelligence & Computing and 9th International Conference on Autonomic & Trusted Computing (UIC/ATC), 2012 9th International Conference on',1,'X. Gu; Z. Xu; T. Wang; Y. Fang','ieee/service oriented architecture security.csv','ieee','\0'),(584,'Security Paradigms for Cloud Computing','2012','1','Cloud;Cloud Computing;Security Challenges;Security Paradigm;distributed computing;security','Cloud Computing -- some treat it as a catchphrase, others as the next step in evolution of their organization and the Internet. However, what is for sure is that, it is a way of leveraging less expensive services based environment providing cost-effective solutions to various organizations to cater for their computing needs, without investing in computing infrastructure. However, cloud computing, just like other formats of computing, is not free from issues. One of the major barriers in adoption of cloud is security. Once migrated to cloud, you do not know where your data is physically stored, what laws and regulations govern the same and most important of all, who has access to it. This paper explores security issues related to cloud computing and proposes a paradigm for securing cloud. The paper investigates some of the key research challenges of implementing cloud-aware security solutions which can plausibly secure the ever-changing and dynamic cloud environment, followed by conclusion where we try to entail the whole research and try to formulate a practical security paradigm, which will enable the cloud providers and consumers to ensure that their data and valuable assets are safe from otherwise prying eyes.','Computational Intelligence, Communication Systems and Networks (CICSyN), 2012 Fourth International Conference on',1,'A. Behl; K. Behl','ieee/service oriented architecture security.csv','ieee','\0'),(585,'A Scalable Planetary Science Information Architecture for Big Science Data','2014','0','Big Data;Information Architecture','Research has shown that the amount of data now available often overwhelms key functions of an information system. This situation necessitates the design of information architectures that scale to meet the challenges. The Planetary Data System, a NASA funded project, has developed an information architecture for the planetary science community that addresses this and other big science data issues noted in a National Research Council report regarding architectures for big data management and analysis and end-to-end data lifecycle management across diverse disciplines. The report identified enabling technology trends including distributed systems, service-oriented architectures, ontologies, models and information representation, scalable database systems, federated data security mechanisms, and technologies for moving big data. This paper will present the PDS4 information architecture, its successful implementation in a multi-discipline big-data environment.','e-Science (e-Science), 2014 IEEE 10th International Conference on',1,'D. Crichton; J. S. Hughes; S. Hardman; E. Law; R. Beebe; T. Morgan; E. Grayzeck','ieee/service oriented architecture security.csv','ieee','\0'),(586,'A Pedagogical Cloud for Reusability, Interoperability and Portability of Pedagogical Indicators','2014','0',' Computer Environment of Human Learning (CEHL) Cloud computing Pedagogical indicators Tracks analysis Reusability Interoperability Portability Web services','Abstract This paper presents a pedagogical Cloud for analyzing usage learner tracks and managing indicators on educational scenarios execution. This Cloud offers a framework enabling the exploitation and the modeling of the pedagogical indicators in a collaborative and cooperative way. This approach aims to assist the tutor in the reengineering of his pedagogical scenarios through the indicators calculation.','',1,'Mariem ChaabouniMona Laroussi','springer/webservice security.csv','springer','\0'),(587,'Infrastructure for Intelligent Automation Services in the Smart Grid','2014','7',' Home area network Smart energy profile Intelligent automation services Smart grid','Abstract The electricity grid is undergoing a radical transformation from a production-driven to a demand-driven energy delivery platform known as the smart grid. The integration of a large amount of renewable and distributed energy resources, together with new patterns of electricity production, accentuates the need for research in information and communication technologies to control bi-directional energy flows. The European FP7 project: “Energy Demand Aware Open Services for Smart Grid Intelligent Automation” is contributing to this research by providing an intelligent infrastructure for service deployment for the smart grid. The project defines a system architecture that provides interoperability between wireless sensors in home area networks connected over the Internet to a service provider function deployed in a cloud infrastructure. A key component in this infrastructure is the Home Energy Controlling Hub that, on the one hand, provides a platform for monitoring and aggregation of electricity consumption data from devices and appliances and, on the other hand, is the link between the deployed intelligent automation services and the home. To ensure openness and simplicity, the proposed infrastructure is based on the representational state transfer style architecture. This is adopted by implementing the emerging ZigBee IP and Smart Energy Profile 2.0 standards that to a wide extend conform with the Internet Protocol suite and state-of-the art web services development.','Wireless Personal Communications',1,'Rune Hylsberg JacobsenSøren Aagaard Mikkelsen','springer/service oriented architecture security.csv','springer','\0'),(588,'Security measurement in service-based computing systems','2012','0','divergence;equivalence;information;measurement;relations;security','We propose a method for quantitative security analysis of service-based computing systems based on probabilistic and information theoretical approaches. We focus on the pattern of the user\'s behaviours with the service providers. We build probabilistic models from system observations at various levels of abstraction depending on the confidentiality preserving mechanisms applied by the system. The probabilistic models allow us to quantify a system\'s observable behaviours under any given security preserving mechanisms. We present a number of measurements on the confidentiality loss of the computing system. We show how such measurement can be used to determine the degree of protection provided by the computing solution.','2012 Fifth IEEE International Conference on Service-Oriented Computing and Applications (SOCA)',1,'Chunyan Mu; Wen Zeng','ieee/service oriented architecture security.csv','ieee','\0'),(589,'A Framework for Benchmarking BPMN 2.0 Workflow Management Systems','2015','2',' BPMN 2.0 Workflow management systems Benchmarking','Abstract The diverse landscape of Workflow Management Systems (WfMSs) makes it challenging for users to compare different solutions to identify the ones most suitable to their requirements. Thus a comparison framework that would define common grounds in many different aspects, such as price, reliability, security, robustness and performance is necessary. In this paper we focus on the performance aspect, and we present a framework for automatic and reliable calculation of performance metrics for BPMN 2.0 WfMSs. We validate the framework by applying it on two open-source WfMSs. The goal is to contribute to the improvement of existing WfMSs by pinpointing performance bottlenecks, and to empower end users to make informed decisions when selecting a WfMS.','',2,'Vincenzo FermeAna IvanchikjCesare Pautasso','springer/bpel security.csv','springer','\0'),(590,'An event processing approach for threats monitoring of service compositions','2013','','complex event processing; monitoring; network security; security; security patterns; service composition; SOA; threats','The Future Internet will be populated by not just data and devices, but also services. Approaches in Service-Oriented Architectures are allowing new ways for users and developers to manage, control and benefit from the services that are being made available. However, this also introduces new threats for service ecosystems and with wider deployment comes a greater need to identify and tackle threats before they become attacks. In this paper we introduce a new Threat Monitoring approach based on filtering and pattern-detection of a variety of event types. The approach enables threat monitoring across multiple composite services with a capability to integrate dynamic changes from various subsystems and offers high flexibility through the use of CEP (Complex Event Processing). Appropriate events are identified in the context of Service-Oriented Architectures and the Threat Monitoring Module described and implemented as part of the Aniketos platform. This module is able to pull threat descriptions from a repository and apply appropriate detection techniques at run-time in order to identify potential problems. The approach is novel in both its flexibility and applicability. Threats can be chosen by service developers from a community-managed repository and the process extends to both the identification and prediction of threats. The solution is evaluated through a future telecommunication services case study. © 2013 IEEE.','',1,'Ayed D., Asim M., Llewellyn-Jones D.','scopus/service oriented architecture security.csv','scopus','\0'),(591,'Systems and Virtualization Management : Standards and the Cloud (A report on SVM 2012)','2013','1',' Cloud CIM Web services and SOA Network Server Desktop management','Abstract Hosted by the Distributed Management Task Force (DMTF) and collocated with the International Conference on Network and Service Management, SVM 2012 was the sixth International DMTF Academic Alliance Workshop on Systems and Virtualization Management. SVM 2012 was held in Las Vegas, Nevada on October 26, 2012. Featuring presentations surrounding cloud, OVF, open standards, and CIM, SVM 2012 also included a poster session, lightning talks, and a keynote speech given by the DMTF President, Jeff Hilland. This report provides a summary of the highlights that took place at the workshop.','Journal of Network and Systems Management',1,'Mark Carlson','springer/soa security.csv','springer','\0'),(592,'Industrial Cloud – Status und Ausblick','2015','0','Schlüsselwörter Industrial Cloud Cloud Computing Produktionsautomatisierung Automatisierungssystem Automatisierungsdienst Industrial cloud Cloud computing Production automation Automation system Automation service','Zusammenfassung Im Kontext Industrie 4.0 wird Cloud Computing für die Produktion von morgen eine wesentliche Rolle spielen. Der Beitrag gibt deshalb einen Überblick über den aktuellen Stand beim Einsatz und der Entwicklung des Cloud Computing für die Produktionsautomatisierung (Industrial Cloud). Ein besonderer Schwerpunkt des Beitrags sind dabei Anwendungen und Projekte, die sich mit der Verlagerung von Automatisierungsfunktionen aus der Prozessleit- und Steuerungsebene als Cloud-Dienste in eine Industrial Cloud beschäftigen.','HMD Praxis der Wirtschaftsinformatik',1,'Reinhard LangmannMichael Stiller','springer/soa security.csv','springer',''),(593,'Detection of SOA Patterns','2013','1',' Service Oriented Architecture Patterns Specification and Detection Software Quality Quality of Service (QoS) Design','Abstract The rapid increase of communications combined with the deployment of large scale information systems lead to the democratization of Service Oriented Architectures (SOA). However, systems based on these architectures (called SOA systems) evolve rapidly due to the addition of new functionalities, the modification of execution contexts and the integration of legacy systems. This evolution may hinder the maintenance of these systems, and thus increase the cost of their development. To ease the evolution and maintenance of SOA systems, they should satisfy good design quality criteria, possibly expressed using patterns. By patterns , we mean good practices to solve known and common problems when designing software systems. The goal of this study is to detect patterns in SOA systems to assess their design and their Quality of Service (QoS). We propose a three steps approach called SODOP (Service Oriented Detection Of Patterns), which is based on our previous work for the detection of antipatterns. As a first step, we define five SOA patterns extracted from the literature. We specify these patterns using “rule cards”, which are sets of rules that combine various metrics, static or dynamic, using a formal grammar. The second step consists in generating automatically detection algorithms from rule cards. The last step consists in applying concretely these algorithms to detect patterns on SOA systems at runtime. We validate SODOP on two SOA systems: Home-Automation and FraSCAti that contain respectively 13 and 91 services. This validation demonstrates that our proposed approach is precise and efficient.','',1,'Anthony DemangeNaouel MohaGuy Tremblay','springer/service oriented architecture security.csv','springer','\0'),(594,'Foundations and Tools for End-User Architecting','2012','1',' end-user architecture end-user architecting software architecture end-user programming software composition software development tools','Abstract Within an increasing number of domains an important emerging need is the ability for technically naïve users to compose computational elements into novel configurations. Examples include astronomers who create new analysis pipelines to process telescopic data, intelligence analysts who must process diverse sources of unstructured text to discover socio-technical trends, and medical researchers who have to process brain image data in new ways to understand disease pathways. Creating such compositions today typically requires low-level technical expertise, limiting the use of computational methods and increasing the cost of using them. In this paper we describe an approach — which we term end-user architecting — that exploits the similarity between such compositional activities and those of software architects. Drawing on the rich heritage of software architecture languages, methods, and tools, we show how those techniques can be adapted to support end users in composing rich computational systems through domain-specific compositional paradigms and component repositories, without requiring that they have knowledge of the low-level implementation details of the components or the compositional infrastructure. Further, we outline a set of open research challenges that the area of end-user architecting raises.','',2,'David GarlanVishal DwivediIvan RuchkinBradley Schmerl','springer/bpel security.csv','springer','\0'),(595,'A Survey of Requirement Engineering Interactions in Telecommunication Systems','2012','0','3rd Party Componenets;Context Aware Requirements;Distibuted Systems;Goal Oriented;Incremental Requirements;Requirement Engineering;Requirement Tools;Requirements Interaction Management;Security;Service Oriented;Standard;Survey;Telecommunication','Summary form only given. Telecommunication systems are large, distributed, complex, heterogeneous and evolving systems that involve software and hardware components. These traits present a challenge from Requirement Engineering perspective. Telecommunication systems can be abstracted to having infrastructure layer that delivers services and consumer layer where end user devices use these services. As processing power of the telecommunication consumer devices gain more power and demand more bandwidth, it becomes more pervasive, gain importance and the end users will have greater dependencies on it. Telecommunication infrastructure technologies are also evolving on fast pace to deliver to customer needs and level of service expected. A fierce competition exists between new entrants and more established companies to deliver the telecommunication system with the features and constraints at competitive pricing and aggressive scheduling by using new technologies. Within the above facets, there are many stakeholders with conflicting and complex requirements. In many cases, the situation of conflicting requirements is complicated further by the interaction with existing systems. That can create large, complex, and conflicting requirements. This needs more than ad hoc approach to achieve consensus within the constraints of the systems. Requirement Engineering (RE) is the field that addresses these issues and provides paradigms, methodologies, and tools to resolve these issues. All these factors highlight the need for requirement engineering to assist new and evolving telecommunication systems to deliver the desired requirements with shortest period of time, lowest budget and cause the least amount of disruption for current users. There are multiple aspects of requirement engineering in telecommunications like paradigms, methodologies, tools, inter-dependencies and interactions. Since Requirement Engineering is a general field, this paper will focus on telecommunication indu- try current use and interaction with the Requirement Engineering field. This paper surveys the current landscape of telecommunication industry interaction with Requirement Engineering. The aspects of change, complexity, internal and external components present a challenge in requirement engineering to capture and present early stable requirements within known, unknown limitations and accommodation for future needs. Multiple approaches, frameworks, tools and solutions on Requirement Engineering in the telecommunication industry are explored in this paper. The following is an overview of the main topics covered in this paper: (1) Goal Oriented Requirement Engineering. (2) Service Oriented Architecture Requirement Engineering. (3) Context Aware Requirement Engineering. (4) Requirement Interaction Management. (5) Requirement Incremental Change Management. (6) 3rd Party Software and Off the Shelf Components Requirements Management. (7) Security Requirement Engineering. (8) Survey of Requirement Engineering tools in Telecommunications. (9) Currently used Requirement Engineering Standards. (10) Vision for Requirement Engineering Standardization.','Information Technology: New Generations (ITNG), 2012 Ninth International Conference on',1,'A. B. Alnafoosi','ieee/service oriented architecture security.csv','ieee','\0'),(596,'A systematic literature review on challenges in service oriented software engineering','2015','','Challenges; SOSE; SOSE challenges; Systematic literature review','SOSE is gaining recognition by both research communities and industries in recent times, however, its complete adoption is facing numerous challenges that require researchers to identify and overcome. Consequently, this paper embraces a systematic literature review to classify and analyze SOSE Challenges claimed in research communities from January 2009 to October 2014. First, the search string was applied to each selected database and the title, abstract and keywords of the potentially relevant primary studies were examined where 693 primary studies were found relevant. Then, the full texts of the 693 relevant studies were critically reviewed. As a result, 91 primary studies with 122 claimed SOSE challenges were identified and recorded. The results revealed quality of service (QOS) as the major SOSE Challenge, it is responsible for about 45% of the total SOSE challenges claimed for the period under review. Further investigation revealed Security as the main attribute responsible for placing QOS as the major SOSE challenge. It is recommended that research effort is required to improve the security of SOA applications. In addition, other areas that require research effort are Service provision and integration. © 2015 SERSC.','',1,'Ahmed M.M., Letchmunan S.','scopus/soa security.csv','scopus',''),(597,'Service replication taxonomy in distributed environments','2016','0',' Service replication Service-oriented architecture Distributed environments Replication process Quality of service','Abstract Abstract Nowadays, most modern distributed environments, including service-oriented architecture (SOA), cloud computing, and mobile computing, support replication technologies in order to improve operational characteristics of the services provided. Unfortunately, replication requires additional computational resources and a longer design and deployment process to implement service adequately for a specific situation and to enable service providers to maintain high levels of service with a moderate number of replicas. This paper provides a comprehensive review of replication challenges, types, techniques, and algorithms in distributed environments such as SOA, cloud, and mobile. Moreover, the role of replication in enhancing several QoS attributes, including performance, availability, security, scalability, and reliability, is examined. The author believes that the proposed research will help researchers to easily apply and develop the service replication in distributed system.','Service Oriented Computing and Applications',1,'Marwa F. Mohamed','springer/soa security.csv','springer',''),(598,'Runtime Adaptation for Actor Systems','2015','1','','Abstract We study the problem of extending RV techniques in the context of (asynchronous) actor systems, so as to be able to carry out a degree of system adaptation at runtime. We propose extensions to specification logics that provide handles for programming both monitor synchronisations (with individual actors), as well as the administration of the resp. adaptations once the triggering behaviour is observed. Since this added functionality allows the specifier to introduce erroneous adaptation procedures, we also develop static analysis techniques based on substructural type systems to assist the construction of correct adaptation scripts.','',1,'Ian CassarAdrian Francalanza','springer/service oriented architecture security.csv','springer',''),(599,'Atomicity failure and the retrenchment atomicity pattern','2013','1',' Atomic actions Refinement Retrenchment Air traffic control Mondex Compensated transactions Software transactional memory','Abstract The issues surrounding the question of atomicity, both in the past and nowadays, are briefly reviewed, and a picture of an ACID (atomic, consistent, isolated, durable) transaction as a refinement problem is presented. An example of a simple air traffic control system is introduced, and the discrepancies that can arise when read-only operations examine the state at atomic and finegrained levels are handled by retrenchment. Non-ACID timing aspects of the ATC example are also handled by retrenchment, and the treatment is generalised to yield the Retrenchment Atomicity Pattern . The utility of the pattern is confirmed against a number of different case studies. One is the Mondex Electronic Purse, its protocol treated as a conventional atomic transaction. Another is the recovery protocol of Mondex, viewed as a compensated transaction (leading to the view that compensated transactions in general fit the pattern). A final one comprises various unruly phenomena occurring in the implementations of software transactional memory systems, which can frequently display non-ACID behaviour. In all cases the Atomicity Pattern is seen to perform well.','Formal Aspects of Computing',2,'Richard BanachCzesław JeskeAnthony HallSusan Stepney','springer/bpel security.csv','springer','\0'),(600,'Service-Oriented DDoS Detection Mechanism Using Pseudo State in a Flow Router','2013','0','','As distributed denial-of-service (DDoS) attacks have caused serious economic and social problems. In this paper, we propose the Service-oriented DDoS Detection Mechanism using a Pseudo State (SDM-P), which runs on network devices to defend against DDoS attacks without sacrificing performance in terms of data forwarding. In addition, we verified the performance of the SDM-P mechanism by evaluating its performance using a DDoS attack similar to the one that occurred in Korea and the USA on July 7th, 2009.','2013 International Conference on Information Science and Applications (ICISA)',1,'P. Park; S. Yoo; H. Ryu; C. H. Kim; S. i. Choi; J. Ryou; J. Park','ieee/service oriented architecture security.csv','ieee','\0'),(601,'Digital Preservation in Grids and Clouds: A Middleware Approach','2012','1',' Digital preservation Grid Cloud','Abstract Digital preservation is the persistent archiving of digital assets for future access and reuse, irrespective of the underlying platform and software solutions. Existing preservation systems have a strong focus on Grids, but the advent of cloud technologies offers an attractive option. We describe a middleware system that enables a flexible choice between a Grid and a cloud for ad-hoc computations that arise during the execution of a preservation workflow and also for archiving digital objects. The choice between different infrastructures remains open during the lifecycle of the archive, ensuring a smooth switch between different solutions to accommodate the changing requirements of the organization that needs its digital assets preserved. We also offer insights on the costs, running times, and organizational issues of cloud computing, proving that the cloud alternative is particularly attractive for smaller organizations without access to a Grid or with limited IT infrastructure.','Journal of Grid Computing',1,'Peter WittekSándor Darányi','springer/soa security.csv','springer','\0'),(602,'The Safety Transformation in the Future Internet Domain','2012','1','','Abstract Public Safety is nowadays a priority, cornerstone and major concern for governments, majors and policy makers in current (and future) smart cities. Notwithstanding the foregoing, large advances in ICT technologies are foretold to revolutionize our society and enhance our feeling of safety (and hopefully, wellbeing). This chapter presents an introduction to three of the most promising technological pillars considered to be spearheads in this transformation: Internet of things, understood as the data capillarity through billions of sensors, Intelligent Video Analytics and Data Mining Intelligence, the latter two enabling smarter contextual awareness and prediction of potential threats leading to proactive prevention of them. The associated horizontal economic implications of this evolution and its impact into the societal and economic fabric are also tackled. Part of the results and analysis produced in this chapter are the outcome of the work carried out in the FP7 EU project SafeCity, one of the eight Use Cases of the FI Programme.','',1,'Roberto GimenezDiego FuentesEmilio MartinDiego GimenezJudith PertejoSofia TsekeridouRoberto GavazziMario CarabañoSofia Virgos','springer/service oriented architecture security.csv','springer','\0'),(603,'The Feedback Platform for People\'s Livelihood Projects Based on SOA','2012','0','Web Service;construction projects;information feedback platform;rural people\'s livelihood;service-oriented architecture','In order to meet the needs of the rural livelihood construction, the C# is used to realize the information feedback platform of rural people\'s livelihood which is based on B/S architecture. The proposed system is designed as three layers that are the business logic layer (BLL), data processing layer (DAL) and physical layer (Model). The system realizes the basic database operations for browsing, querying and management of feedback data. The system uses the service-oriented architecture (SOA). The proposed system functions are divided into different Web Service which makes the function call converted into service call in the system. It also publishes the service of standard interfaces on the internet which realizes cross-platform on sharing of resources. The feedback platform for rural people\'s livelihood projects provides online message, e-mail, SMS messages and other information feedback methods which can collect the effectiveness evaluation on the prophase, middle and late of rural livelihood construction projects in time.','2012 Fourth International Conference on Multimedia Information Networking and Security',1,'J. Yao; Y. Qiu; P. Zhou; Q. Zhu','ieee/service oriented architecture security.csv','ieee','\0'),(604,'XML digital signature and its role in information system security','2012','0','','XML signature is form of digital signature designed for use in XML transactions. The XML Digital Signature standard defines a schema that is used for storing the result of a digital signature operation applied to (in most cases) XML data. Like non-XML digital signatures, XML signatures add authentication, data integrity, and support for non-repudiation to the data that is object of XML digital signing process. However, unlike non-XML digital signature standards, XML signature has been designed to both account for and take advantage of the Internet and XML. A fundamental feature of XML Signature is the ability to sign only specific portions of the XML content rather than the complete document. This is relevant when a single XML document may have a long history in which the different components are authored at different times by different parties, each signing only those elements relevant to it. This flexibility will also be critical in situations where it is important to ensure the integrity of certain portions of an XML document, while leaving open the possibility for other portions of the document to change. Since data security - in form of data verification and authorization - represents an important part of information system security paradigm this article is addressing the questions and possibilities of XMLDigSig usage in everyday information system security procedures.','MIPRO, 2012 Proceedings of the 35th International Convention',1,'S. Gerić; T. Vidačić','ieee/service oriented architecture security.csv','ieee','\0'),(605,'Concurrency','2014','0','','Abstract Concurrency in computer science is a property of systems in which more than one execution context can be active at the same time.','',2,'Jacopo Mauro','springer/bpel security.csv','springer',''),(606,'A proxy gateway solution to provide QoS in tactical networks and disaster recovery scenarios','2015','','Communications middleware; Disaster recovery; Network proxy; QoS; Tactical networks','Many important public services, such as security and public health, as well as the modern tactical military scenarios, rely on Service-oriented Architectures (SoAs) and commercial off-the-shelf (COTS) components to enable the quick development and deployment of distributed services to respond quickly, reduce costs, and ease system integration. However, SoAs make use of verbose networking technologies and require reliable and relatively high bandwidth communications. Tactical scenarios normally cannot rely on such infrastructure and events like natural disasters can severely damage the network infrastructure in rural and urban environments. Thus, there is a need to develop solutions that provide SoA-based application and services running on heterogeneous and often constrained devices that compose tactical and mobile ad-hoc networks with Quality of Service (QoS) levels that meet their requirements. This paper presents the QoS-enabling features and the gateway operational mode (GM) of ACM NetProxy, the network proxy component of a communications middleware specifically developed to support applications in challenged networks. GM allows nodes in an ad-hoc wireless network to be quickly organized and to shape outbound communications to reduce bandwidth consumption and provide QoS. Experimental results obtained during a test in a field demonstration event show its efficiency. © 2015 ACM.','',1,'Morelli A., Stefanelli C., Tortonesi M., Lenzi R., Suri N.','scopus/service oriented architecture security.csv','scopus','\0'),(607,'Web log analysis: a review of a decade of studies about information acquisition, inspection and interpretation of user interaction','2012','18',' Web log Query log Search log User study','Abstract In the last decade, the importance of analyzing information management systems logs has grown, because log data constitute a relevant aspect in evaluating the quality of such systems. A review of 10 years of research on log analysis is presented in this paper. About 50 papers and posters from five major conferences and about 30 related journal papers have been selected to trace the history of the state-of-the-art in this field. The paper presents an overview of two main themes: Web search engine log analysis and Digital Library System log analysis. The problem of the analysis of different sources of log data and the distribution of data are investigated.','Data Mining and Knowledge Discovery',1,'Maristella AgostiFranco CrivellariGiorgio Maria Di Nunzio','springer/service oriented architecture security.csv','springer',''),(608,'Estimation of Average Latent Waiting and Service Times of Activities from Event Logs','2015','0',' Process mining Performance analysis Latent waiting and service times Convolution of gamma distributions EM algorithm','Abstract Analysis of performance is crucial in the redesign phase of business processes where bottlenecks are identified from the average waiting and service times of activities and resources in business processes. However, such averages of waiting and service times are not readily available in most event logs that only record either the start or the completion times of events in activities. The transition times between events in such logs are the only performance features that are available. This paper proposes a novel method of estimating the average latent waiting and service times from the transition times that employs the optimization of the likelihood of the probabilistic model with expectation and maximization (EM) algorithms. Our experimental results indicated that our method could estimate the average latent waiting and service times with sufficient accuracy to enable practical applications through performance analysis.','',2,'Takahide NogayamaHaruhisa Takahashi','springer/bpmn security.csv','springer',''),(609,'Dynamic Privacy Policy Management in Services-Based Interactions','2014','1','','Abstract Technology advancements have enabled the distribution and sharing of patient personal health data over several data sources. Each data source is potentially managed by a different organization, which expose its data as a Web service. Using such Web services, dynamic composition of atomic data type properties coupled with the context in which the data is accessed may breach sensitive data that may not comply with the users preference at the time of data collection. Thus, providing uniform access policies to such data can lead to privacy problems. Some fairly recent research has focused on providing solutions for dynamic privacy policy management. This paper advances these techniques, and fills some gaps in the existing works. In particular, dynamically incorporating user access context into the privacy policy decision, and its enforcement. We provide a formal model definition of the proposed approach and a preliminary evaluation of the model.','',1,'Nariman AmmarZaki MalikElisa BertinoAbdelmounaam Rezgui','springer/service oriented architecture security.csv','springer','\0'),(610,'MTISS: A novel mobile transportation information service system based on SOA','2013','','','One of the major problems that limits the practical realization of the Intelligent Transportation System is collecting and distributing transportation information rapidly and effectively. Aside from traditional passive means, mobile devices (such as smart phones) could be exploited to collect various types of transportation information from individuals in massive quantities interactively, as well as delivering guidance and navigation signals to the public to achieve purposes like congestion avoidance. This paper proposes a Mobile Transportation Information Service System (MTISS) which integrates client-end applications with SOA-enabled server-end web services. A unified, loosely-coupled and scalable architecture is presented. Then, a prototype on Android platform and Windows Communication Foundation (WCF) is implemented. The key techniques are discussed. Application scenarios and the features of MTISS are addressed. Finally, experiments are conducted to evaluate the overall performance of the MTISS prototype and the results indicate that our system has high usability, scalability and efficiency. © 2013 American Society of Civil Engineers.','',1,'Cui W., Huang Y., Gao Y., Dai X.','scopus/soa security.csv','scopus','\0'),(611,'Aspect Oriented Programming for Modularization of Concerns for Improving Interoperability in Healthcare Application','2013','0',' Aspect Oriented Software Development Aspect Oriented Programming (AOP) modularization code scattering code tangling Service Oriented Architecture (SOA) Healthcare Interoperability','Abstract Service Oriented Architecture (SOA) is an ideal Web Services based solution for achieving efficient healthcare interoperability. However, incorporation of non-functional specifications such as logging, authorization, transaction etc. in web services based interoperable healthcare information system leads to code tangling (significant dependencies between system) and code scattering (code duplication) problems which reduces the revision and reuse of web services. Aspect Oriented Software Development is an emerging developing approach utilizing modularization to support rapid data interchange among various healthcare providers in a heterogeneous distributed environment. The visionary promise of Aspect Oriented Programming (AOP) is to increase overall quality of software design and implementation by decreasing the problems of code scattering and code tangling while maintaining high level of abstraction in enterprise application integration. The introduction of aspects substantially increases modularity and helps in achieving cleaner modularization of concerns. In this research we propose introduction of aspects in healthcare system and show how AOP helps in a cleaner design and substantial code savings in SOA based healthcare interoperability resulting in modularization of crosscutting concerns.','',1,'Usha BatraSaurabh MukherjeeShelly SachdevaPulkit Mehndiratta','springer/service oriented architecture security.csv','springer','\0'),(612,'An experimental investigation on the effects of context on source code identifiers splitting and expansion','2014','1',' Program understanding Identifier splitting and expansion Task context','Abstract Recent and past studies indicate that source code lexicon plays an important role in program comprehension. Developers often compose source code identifiers with abbreviated words and acronyms, and do not always use consistent mechanisms and explicit separators when creating identifiers. Such choices and inconsistencies impede the work of developers that must understand identifiers by decomposing them into their component terms, and mapping them onto dictionary, application or domain words. When software documentation is scarce, outdated or simply not available, developers must therefore use the available contextual information to understand the source code. This paper aims at investigating how developers split and expand source code identifiers, and, specifically, the extent to which different kinds of contextual information could support such a task. In particular, we consider (i) an internal context consisting of the content of functions and source code files in which the identifiers are located, and (ii) an external context involving external documentation. We conducted a family of two experiments with 63 participants, including bachelor, master, Ph.D. students, and post-docs. We randomly sampled a set of 50 identifiers from a corpus of open source C programs and we asked participants to split and expand them with the availability (or not) of internal and external contexts. We report evidence on the usefulness of contextual information for identifier splitting and acronym/abbreviation expansion. We observe that the source code files are more helpful than just looking at function source code, and that the application-level contextual information does not help any further. The availability of external sources of information only helps in some circumstances. Also, in some cases, we observe that participants better expanded acronyms than abbreviations, although in most cases both exhibit the same level of accuracy. Finally, results indicated that the knowledge of English plays a significant effect in identifier splitting/expansion. The obtained results confirm the conjecture that contextual information is useful in program comprehension, including when developers split and expand identifiers to understand them. We hypothesize that the integration of identifier splitting and expansion tools with IDE could help to improve developers’ productivity.','Empirical Software Engineering',1,'Latifa GuerroujMassimiliano Di PentaYann-Gaël GuéhéneucGiuliano Antoniol','springer/soa security.csv','springer','\0'),(613,'Overview of secured web services specifications','2013','1','SOA(Service Oriented Article); SOAP(Simple Object Access Protocol); Web-Service; WS-Federation; WS-Security; WS-Trust; XML','The proliferation of XML based web services in the IT industry not only gives rise to opportunities but challenges too, Namely the challenges of security and a standard way of maintaining it across domains and organisational boundaries, OASIS, W3C and other organisations have done some great work in bringing about this synergy. What this paper looks in are some of the more popular standards in vogue today and clubbed under WS-* specification. This paper will try to give an overview of various frameworks and protocols being used to keep web-services secure. Some of the major protocols looked into are WS-Security SAML, WS-Federation, WS-Trust, XML-Encryption and Signature. This paper will give you a brief introduction to impact of using WS-* on time complexity due to the extra load of encrypting and certificates. Windows communication foundation is one of the best designed toolset for this. © 2013 IEEE.','',1,'Mukherjee S., Beg R., Srivastava A., Khan R.','scopus/soa security.csv','scopus','\0'),(614,'Security Aspects of De-materialized Local Public Administration Processes','2015','0',' BPMN Adaptive business processes Local Public Administration','Abstract De-materialization processes and services of local public administration processes are becoming of paramount importance in the context of Italian and European public administrations. An important aspect of these frameworks is the possibility of providing remote assistance by human operators when needed, in order to ease the access to services for citizens and reduce costs for organizations. In this paper we describe our framework, which is in an advanced state of development and will be tested in several municipalities of the province of Trento (Italy), and focus on the enforcement of security aspects.','',2,'Giancarlo BallaucoPaolo CeravoloErnesto DamianiFulvio FratiFrancesco Zavatarelli','springer/bpmn security.csv','springer','\0'),(615,'Context-Aware Decision Support in Dynamic Environments: Methodology and Case Study','2014','0',' Context-aware decision support ontology in-car information','Abstract Dynamic environments assume on-the-fly decision support based on available information and current situation development. The paper addresses the methodology of context-aware decision support in dynamic environments. Context is modeled as a “problem situation.” It specifies domain knowledge describing the situation and problems to be solved in this situation. The context is produced based on the knowledge extracted from an application ontology, which is formalized as an object-oriented constraint network. The paper proposes a set of technologies that can be used to implement the ideas behind the research. An application of these ideas is illustrated by an example of decision support for tourists travelling by car. In this example, the proposed system generates ad hoc travel plans and assists tourists in planning their attraction attending times depending on the context information about the current situation in the region and its foreseen development.','',1,'Alexander SmirnovTatiana LevashovaAlexey KashevnikNikolay Shilov','springer/service oriented architecture security.csv','springer','\0'),(616,'Event-driven video adaptation: A powerful tool for industrial video supervision','2014','2',' Objects’ tracking Computer vision tools Adaptive scalable video adaptation','Abstract Efficient video content adaptation requires techniques for content analysis and understanding as well as the development of appropriate mechanisms for content scaling in terms of the network properties, terminal devices characteristics and users’ preferences. This is particularly evident in industrial surveillance applications, due to the huge amount of data needed to be stored, delivered and handled. In this paper, we address both issues by incorporating (a) computer vision tools that allows efficient tracking of salient visual objects for long time regardless of the dynamics of the visual environment –via a self initialized tracking algorithm—and (b) an adaptive optimal rate distortion scheme able to allocate different priorities for each detected video object with respect to users’ needs, network platforms capabilities and terminal characteristics. The self initialized tracker firstly appropriately describes visual content, secondly incorporates adaptive mechanisms for automatically update the tracker to adjust to the current conditions and thirdly includes an efficient decision mechanism that estimates the time instances in which adaptation should be activated. For the rate distortion algorithm, an optimal adaptive framework is adopted which is capable of allocating the desired quality to objects of users’ interest without violating the target bit rate of the sequence. The Wavelet Packet Transform (WPT) is adopted towards this purpose. The advantage of the WPT is that it localizes the frequency components of each video object and therefore it offers additionally content adaptability according to video object texture coding. The WPT tree is transmitted only at the first frame of each shot and thus dew bits are required for its encoding. Experimental results and comparisons with other approaches are presented to illustrate the good performance of the proposed architecture. The results cover real-world and complex industrial environments.','Multimedia Tools and Applications',1,'Anastasios Doulamis','springer/service oriented architecture security.csv','springer','\0'),(617,'An automatic clinical document importance estimator for an existing electronic patient record — Architecture and implementation','2013','0','','The goal of the OPTIM project is to optimize the graphical user interface of an electronic health record (EHR) by predicting clinical documents\' relevance and provide a ranked list of relevant documents for the given user at a certain time. This paper describes the architecture of the relevance assignment and ranking prototype and some implementation issues. The prototype\'s design is based on two components: OPTIM Core, with logical representation, estimation server\'s integration and the webservice layer, and the OPTIM WebUI, with the user interface for presenting the results. The prototype was tested in integration with an EHR using a simulated environment. The results were encouraging but yet they revealed a certain lack of security (confidentiality). It has now the capacity of rating 10 documents per second. Nonetheless, the integration of features such as rating clinical relevance based on mathematical models can be included in existing EHR potentially improving their usability.','Proceedings of the 26th IEEE International Symposium on Computer-Based Medical Systems',1,'B. Santos; P. Rodrigues; R. Cruz-Correia','ieee/webservice security.csv','ieee','\0'),(618,'FTG+PM: An Integrated Framework for Investigating Model Transformation Chains','2013','3','','Abstract In this paper, we describe our ongoing work on model transformation chains . Model transformation chains refer to the sequences of model transformations in Model Driven Engineering (MDE). The transformations represent and formalise typical model/software engineering activities, and their chaining is the natural composition of such activities. Model transformation chains found in industrial practice vary widely, depending on the specific domain they are used in. By explicitly modelling development activities, these activities can be analysed and the MDE process may be improved. As a step towards such analyses, we propose an integrated framework to describe all the artifacts involved in model transformation chains, as well as the means to execute “enact” those chains. We describe the Formalism Transformation Graph + Process Model (FTG+PM) which is at the heart of our framework in detail.','',2,'Levi LúcioSadaf MustafizJoachim DenilHans VangheluweMaris Jukss','springer/bpel security.csv','springer','\0'),(619,'Business Process Adaptability Metrics for QoS-Based Service Compositions','2015','0','','Abstract Modern service-oriented software applications, like those envisioned in cloud computing scenarios, operate in highly dynamic and often unpredictable environments that can degrade their quality of service. Therefore, it is increasingly important to efficiently and effectively manage the adaptation of such service compositions while guaranteeing quality attributes, such as availability, performance or cost. Within this context, software metrics to quantify the adaptability of a business process in orchestrating distributed services are highly demanded in conjunction with techniques for evaluating other system quality attributes. This paper proposes a set of software metrics to quantify the adaptability of a service-oriented application when services are composed dynamically trough a business process. The paper also proposes an approach for analyzing tradeoffs between the application adaptability and a quality of service such as availability. The feasibility of the approach is illustrated through a case study carried out with a tool we have developed.','',2,'Raffaela MirandolaDiego Perez-PalacinPatrizia ScandurraMichele BrignoliAndrea Zonca','springer/bpel security.csv','springer',''),(620,'Data Interface All-iN-A-Place (DIANA) for Big Data','2014','0','big data;database systems;file systems;service-oriented architecture;variety;velocity;volume','Variety in Big Data means we have a wide range of data types and sources: e.g. File systems and database systems co-exist for decades as two popular data-accessing interfaces. This work is to unify these two interfaces by presenting a Data Interface All-iN-A-place (DIANA). The first challenge lies in distinguishing structured and un-structured data and diverting them to different underlying platforms. It is demonstrated that a speedup of 5000 in indexing has been achieved at the expense of a slowdown of 100 in extracting attributes. A DIANA-based cloud storage system is constructed for versatile, long distance and large volume big data accessing operations to address \"Volume\" and \"Velocity\" in Big Data. It encapsulates a dynamic multi-stream/multi-path engine at the socket level, which conforms to Portable Operating System Interface (POSIX).','2014 IEEE 13th International Conference on Trust, Security and Privacy in Computing and Communications',1,'F. Z. Wang; T. Dimitrakos; N. Helian; S. Wu; Y. Deng; L. Li; R. Yates','ieee/service oriented architecture security.csv','ieee','\0'),(621,'A Metamodel for the Web Services Standards','2013','1',' Web services WS-* standards WS-Policy Metamodeling','Abstract Web services provide distributed communication in a platform independent way. The WS-* standards define how middleware aspects (security, reliability, transactions, etc.) can be realized through web services. Although the WS-Policy standard family can be used to configure the various WS-* protocols, they are very hard to construct and to maintain manually. In addition, most SOA products and Grid systems implementing these standards provide their own methods for configuring these protocols, making it very difficult to match the various configuration options of different products. This fact inspired us to propose a platform independent metamodel for describing distributed systems of web services including the most important WS-* standards. The present article defines the full metamodel, it specifies the corresponding programming language formally, and it shows the productivity of the framework built around the metamodel through real-life examples. The framework is capable of generating product specific configuration files and source codes, resulting in directly interoperable applications even between different SOA products. The framework could also promote interoperability with Grid systems built on WS-* protocols.','Journal of Grid Computing',1,'Balazs SimonBalazs GoldschmidtKaroly Kondorosi','springer/soa security.csv','springer','\0'),(622,'A Cloud-Based SOA for Enhancing Information Exchange and Decision Support in ITT Operations','2014','0',' port operations inter-terminal transportation RFID WSN wireless sensor networks cloud computing information exchange real- time data decision support','Abstract With the emergence of global markets, the efficiency of port operations has become a decisive factor for the economy and quality of global supply chains. After decades of streamlining terminal operations, ports still experience process and coordination problems due to a lack of information exchange and decision support. To improve the overall efficiency and quality of port operations, innovative information systems for gathering and processing operational data based on identification, sensing and mobile technologies are required to enhance the visibility of operations in information systems. A port-centric information system also requires the integration of external systems, such as traffic control systems, to further consider external factors. In this paper, we present a cloud-based system architecture for the real-time collection, management, and utilization of operational data with a particular focus on inter-terminal transportation. The proposed system architecture is based on widely adopted standards and utilizes the cost-effectiveness and scalability of a cloud computing infrastructure for processing large amounts of operational data. The information system lowers the bounded rationality of actors providing information and decision support as a service to the port community and other stakeholders. As such, this paper is intended to provide a conceptual view on a system for enhancing the management of real-time data to better manage traffic flows and transport modes, enhance the coordination between intra-terminal and inter-terminal/landside operations, and reduce empty handling processes.','',2,'Leonard HeiligStefan Voß','springer/bpel security.csv','springer',''),(623,'QoE loss score value for service migration in context aware environment','2014','0','','The increasing amount of smart devices and handheld devices have widened the amount of information presence all over. The application running on one device can be distributed to a surrounding device for better functionality. A capability that might be enjoyable or frustrating for end user. This paper has identified the factors that contribute to the loss of user experience for seamless application migration in a context aware environment. These are the context information updates, transfer time and resumption time. To quantify the loss of user experience, a Quality of experience (QoE) Loss score value (representing the time that is lost in user experience during migrating process)is introduced. A high QoE loss score value indicates a higher loss of user experience and a lower QoE loss score value indicate a lower loss of user experience. A test-bed setup was implemented and different policies of migration processes in a context aware environment were evaluated.','2014 23rd International Conference on Computer Communication and Networks (ICCCN)',1,'A. Saeed; J. M. Pedersen; R. L. Olsen','ieee/service oriented architecture security.csv','ieee','\0'),(624,'Customized production based on distributed 3D printing services in cloud manufacturing','2016','0',' Cloud manufacturing Customized production 3D printing service Scheduling','Abstract 3D printing features highly digitized interfaces and automated processes for rapid prototyping and product customization. When distributed 3D printing resources are shared, gathered, and applied in a cloud platform, this will be a promising globalized and time-effective environment for customized production. However, how to intelligently and effectively manage and schedule distributed 3D printing services, such as dynamic evaluation, service intelligent matching, planning, and scheduling, in a cloud platform requires further in-depth study. In order to address this issue, this paper proposes a framework for a 3D printing service platform for cloud manufacturing (CMfg). In addition, 3D printing service online integration and 3D model library construction are analyzed. Moreover, some technologies of distributed 3D printing service management are discussed. Finally, some of the application tools and preliminary practices implemented by our team are introduced.','The International Journal of Advanced Manufacturing Technology',1,'Jingeng MaiLin ZhangFei TaoLei Ren','springer/soa security.csv','springer',''),(625,'A parameterized RBAC access control model for WS-BPEL orchestrated composite web services','2011','0','Parameterized RBAC;WS-BPEL;access control;composite web services;web services security','In complex environments multiple web services are needed to interoperate together. Web Services Business Process Execution Language (WS-BPEL) has become the de facto standard for orchestrating composite web services. Unfortunately, WS-BPEL bypasses some business mandatory security requirements such as authentication and authorization. However, there have been some initiatives to address the authorization-bypass security vulnerability in WS-BPEL through integration with access control models such as RBAC. However, the RBAC models used lack expressiveness in role definitions and in roles to permissions mappings. More so, the architectures proposed use sequential authorization that is inefficient for long running business processes. In this paper, we extend the parameterized RBAC model and integrate it with WS-BPEL. The new extended parameterized RBAC model for WS-BPEL provides restriction of access up to the level of the variables of the business process. We also provide a new algorithm for authorization enforcement that addresses limitations of exiting WS-BPEL authorization architectures.','Internet Technology and Secured Transactions (ICITST), 2011 International Conference for',2,'N. Nassr; E. Steegmans','ieee/bpel security.csv','ieee','\0'),(626,'Secure and Privacy-Preserving Execution Model for Data Services','2013','1',' Data Services Privacy Preservation RDF Views','Abstract Data services have almost become a standard way for data publishing and sharing on top of the Web. In this paper, we present a secure and privacy-preserving execution model for data services. Our model controls the information returned during service execution based on the identity of the data consumer and the purpose of the invocation. We implemented and evaluated the proposed model in the healthcare application domain. The obtained results are promising.','',1,'Mahmoud BarhamgiDjamal BenslimaneSaid OulmakhzouneNora Cuppens-BoulahiaFrederic CuppensMichael MrissaHajer Taktak','springer/service oriented architecture security.csv','springer','\0'),(627,'From Consumer Requirements to Policies in Secure Services','2014','0',' security requirements transformation service composition BPMN consumer policy','Abstract Automatic translation of elicited consumer security requirements at high level (problem space) into application or service level security requirements (solution space) has been traditionally the Achilles’ heel of security requirements engineering. Such automated translation would result in significant failure and cost reduction in application development and maintenance, particularly in those complex applications based on compositions and choreographies of services. In this paper we present a framework which makes a step forward to solve this dilemma. The framework supports the engineering of composite service security and trust requirements directly derived from the organisational needs expressed for such service. The followed approach starts with the modelling of organisation actors’ objectives and commitments among these actors, and follows with the transformation of such commitments into security elements in the service business process specification and into a consumer security policy which the service will need to be compliant with.','',2,'Erkuden RiosFrancesco MalmignatiEider IturbeMichela D’ErricoMattia Salnitri','springer/bpmn security.csv','springer','\0'),(628,'A Survey on Near Field Communication (NFC) Technology','2013','33',' Near field communication NFC Survey Communication essentials Ecosystem Business Security Applications Application development Secure element','Abstract Near Field Communication (NFC) as a promising short range wireless communication technology facilitates mobile phone usage of billions of people throughout the world that offers diverse services ranging from payment and loyalty applications to access keys for offices and houses. Eventually NFC technology integrates all such services into one single mobile phone. NFC technology has emerged lately, and consequently not much academic source is available yet. On the contrary, due to its promising business case options, there will be an increasing amount of work to be studied in the very close future. This paper presents the concept of NFC technology in a holistic approach with different perspectives, including communication essentials with standards, ecosystem and business issues, applications, and security issues. Open research areas and further recommended studies in terms of academic and business point of view are also explored and discussed at the end of each major subject’s subsection. This comprehensive survey will be a valuable guide for researchers and academicians as well as for business world interested in NFC technology.','Wireless Personal Communications',1,'Vedat CoskunBusra OzdenizciKerem Ok','springer/service oriented architecture security.csv','springer',''),(629,'Where Did I Go Wrong?','2014','1','','Abstract Business process modeling is still a challenging task — especially since more and more aspects are added to the models, such as data lifecycles, security constraints, or compliance rules. At the same time, formal methods allow for a detection of errors in the early modeling phase. Detected errors are usually explained with a path from the initial to the error state. These paths can grow unmanageably and make the understanding and fixing of errors very time consuming. This paper addresses this issue and proposes a novel explanation of errors: Instead of listing the actions on the path to the error, only the decisions that lead to it are reported and highlighted in the original model. Furthermore, we exploit concurrency to create a compact artifact to explain errors.','',2,'Niels LohmannDirk Fahland','springer/bpel security.csv','springer',''),(630,'Managing Federations and Cooperative Management','2014','0','','','Journal of Network and Systems Management',1,'Brendan JenningsKevin FeeneyJoel J. Fleck II','springer/service oriented architecture security.csv','springer','\0'),(631,'A Light-Weight Framework for Bridge-Building from Desktop to Cloud','2014','0','','Abstract A significant trend in science research for at least the past decade has been the increasing uptake of computational techniques (modelling) for insilico experimentation, which is trickling down from the grand challenges that require capability computing to smaller-scale problems suited to capacity computing. Such virtual experiments also establish an opportunity for collaboration at a distance. At the same time, the development of web service and cloud technology, is providing a potential platform to support these activities. The problem on which we focus is the technical hurdles for users without detailed knowledge of such mechanisms – in a word, ‘accessibility’ – specifically: (i) the heavy weight and diversity of infrastructures that inhibits shareability and collaboration between services, (ii) the relatively complicated processes associated with deployment and management of web services for non-disciplinary specialists, and (iii) the relative technical difficulty in packaging the legacy software that encapsulates key discipline knowledge for web-service environments. In this paper, we describe a light-weight framework based on cloud and REST to address the above issues. The framework provides a model that allows users to deploy REST services from the desktop on to computing infrastructure without modification or recompilation, utilizing legacy applications developed for the command-line. A behind-the-scenes facility provides asynchronous distributed staging of data (built directly on HTTP and REST). We describe the framework, comprising the service factory, data staging services and the desktop file manager overlay for service deployment, and present experimental results regarding: (i) the improvement in turnaround time from the data staging service, and (ii) the evaluation of usefulness and usability of the framework through case studies in image processing and in multi-disciplinary optimization.','',1,'Kewei DuanJulian PadgetH. Alicia Kim','springer/service oriented architecture security.csv','springer','\0'),(632,'Security certification for service-based business ecosystems','2013','2','security certification; service description language; SOA; trust','Modern applications can be easily developed and operated by discovering and consuming cloud services that provide the desired functionality. We observe the emergence of \'Service ecosystems\', i.e. combinations of services which are offered by different providers and which interoperate seamlessly behind the curtains to build applications generating added value compared with single components. However, security and trustworthiness concerns constitute an obstacle for uptake, as trust relations that were in place in traditional component acquisition and operation phases cannot be established in the same forms due to the high number of service providers available and shorter time-to-market requirements. This paper presents our view about how security certification could address these issues, going beyond existing schemes, which mostly address static systems and environments. We show how the combination of recent innovations can lead to the introduction of new security certification schemes that adapt to service-based ecosystems. Such schemes are based on explicit representation of service security features, their machine readability, and an advanced processing and composition support. We present a security-aware service marketplace, allowing consumers to build secure business applications through advanced search and discovery capabilities that consider functional requirements together with certified security features. © The British Computer Society 2013. All rights reserved.','',1,'Lotz V., Di Cerbo F., Bezzi M., Kaluvuri S.P., Sabetta A., Trabelsi S.','scopus/soa security.csv','scopus','\0'),(633,'Study and Design of Enterprise Public Security Platform Based on PKI','2014','0','LDAP;WPKI;application security;authority management;user management','In order to solve the application security problems in the business operation system in a intensive, uniform and regular manner, a public fundamental platform model based on PKI technology is proposed, and some advanced design concepts like SCA, BPEL, etc. Are introduced for enhancing the reconstructing and reusing of the system. According to the characteristics of PKI system structure, it is expanded as the foundation and realizes the support for WPKI technology. The technical realization of unified user management, unified authority management and unified application security management, as well as the approaches of integrating the peripheral business system are given by analyzing the requirements of general security management of the informatization system. Furthermore, we also proposed methods to further maintain the security and stability of platform operation with technologies like queues, connection pool, etc. Those methods provide a much more uniform solution to the application security problems. The feasibility and effectiveness of the platform in improving the application security problems have been discussed by the illustrations and analysis of the core transaction processing flows of this platform.','Distributed Computing and Applications to Business, Engineering and Science (DCABES), 2014 13th International Symposium on',2,'Y. Xiao; Y. Zhao','ieee/bpel security.csv','ieee','\0'),(634,'Agent Participation in Context-Aware Workflows','2013','0',' software agent software architecture context-awareness workflow management ambient intelligence ambient-assisted living','Abstract Smart environments assist users in the activities taking place in their influence areas. These activities are occasionally part of workflows and have multiple physical or computational participants playing different roles. The system has to monitor the development of the activities, and to take the necessary actions for them and the workflow to reach a certain end. These tasks largely depend on obtaining data from sensors, inferring the proper information from those data, and using actuators consequently. The context-aware paradigm pursues helping to develop these applications. In certain situations, computational participants need to take complex decisions. Agents are a convenient way to describe entities with sophisticated and flexible behaviors that adapt to complex and evolving environments and collaborate to reach certain goals. Most works in this area make use of agents for infrastructure-related or domain-specific tasks, whereas this research proposes patterns to integrate agents on top of an existing context-aware architecture in order to exploit its capabilities to improve functionality. A case study on guiding a user along a path illustrates this approach.','',2,'José M. Fernández-de-AlbaRubén Fuentes-FernándezJuán Pavón','springer/bpel security.csv','springer','\0'),(635,'The performance of future designers on the specification of supervisory HCI: case study of a simulated work situation','2012','1',' Human–computer interface (HCI) Specification Supervisory Design error Simulation Ergonomic design project','Abstract This article concerns the performance of future designers on the specification of supervisory human–computer interfaces (HCI). This paper reports the results of a case study of a simulated work situation. Sixty-three groups of 3–5 students (Master’s program in Electrical Engineering and Industrial Informatics) were involved. In this article, we first describe the study context and explain how we ran it. Next, we describe the industrial process to be supervised, composed of five interconnected stations. We then present our informal analysis of the global study. After our informal analysis, the article focuses on a second level of analysis, based on the 63 HCI specification reports produced by the groups. Each report is analyzed according to eight groups of criteria. The results of this second-level analysis are presented and discussed.','Cognition, Technology & Work',1,'Christophe KolskiPierre LosleverMouldi Sagar','springer/service oriented architecture security.csv','springer','\0'),(636,'A view-based monitoring for usage control in web services','2016','0',' Privacy aware SLA Usage control Monitoring Usage flow view Query containment Compliance','Abstract Quality of service (QoS) can be a critical element for achieving the business goals of a service provider, and accepting a service by the customer. The criticality is more pronounced when the service provider handles the non-functional QoS attribute of privacy, i.e., privacy related to the customer’s personal data. In this regard, the customer needs some guarantee(s) from the service provider about confidentiality management, leading to overall quality characterization of the provided service. A service level agreement (SLA) is primarily intended to specify (in terms of clauses) the level of such non-functional QoS delivered to the customer. The aim is to provide customers with tools that show the fulfillment of QoS guarantees, through SLA monitoring process. In this paper, we address the problem of usage control of private data in service based applications ensuring end-to-end QoS capabilities. We propose a query containment based approach to support the monitoring of privacy-aware SLA compliance, that spells out a customer’s privacy rights, and shows how the customer’s private information must be handled by a Web service provider. We introduce the private data usage flow model upon which the monitoring is performed to observe the data usage flow, and capture the privacy vulnerabilities that may lead to non-compliance. The model is built on top of (i) properties and time-related privacy requirements to be monitored, and (ii) a set of identified privacy violations. As proof of concept, a privacy aware SLA monitoring system, which is an easy-to-use, and efficient tool for observing the dynamic private data usage flow is developed. Experiment results indicate the relevance and applicability of the proposed approach.','Distributed and Parallel Databases',2,'Hassina MezianeSalima BenbernouMohand-Said HacidZaki MalikMike Papazoglou','springer/bpel security.csv','springer',''),(637,'Current and Future Challenges of Geospatial Semantic Web','2015','0','','Abstract Geospatial Semantic Web has the potential to improve the intelligence, flexibility, and usability of geospatial applications. In this chapter, we reviewed several applications of geospatial semantic web that we developed recently, which include a natural language interface for geospatial data query, a volunteered geospatial information system, a geospatial interface for transit network, and a spatial decision support system. The protocols, workflows, and algorithms used in the prototypes are covered in previous chapters, so this chapter focuses on the software libraries and the programming aspects of the implementations. The applications demonstrate the effectiveness of Geospatial Semantic Web in integrating data with heterogeneous semantics. Ontology constructs such as classes and properties can be used to map the definitions of the existing data sets to the domain and application ontologies in order to bridge the semantic gap between data sets.','',2,'Chuanrong ZhangTian ZhaoWeidong Li','springer/bpel security.csv','springer',''),(638,'An End-User Oriented Approach for Business Process Personalization from Multiple Sources','2013','1',' business processes personalization lightweight service composition end-user development','Abstract Current service oriented enterprise business process modeling and development technology is conducted by professional IT department, which cannot fulfill the growing requirements of personalized business application by end users. Recent research works about enterprise mashups enable end users to create own business application by assembling and composing widgets, which emphasizes the front-end interface rather than the logical process of business activities. In this paper, we propose an approach for end users to create personalized business process from multiple sources. An integrated framework for modeling, monitoring personalized business process and automated execution is designed. Internal business processes, external web APIs and communication services are all wrapped into this framework for end users to select and compose in a lightweight event-driven fashion. We also design a wizard-based development workspace helping end users without programming skills to build lightweight business application. In addition, an actual business project case is presented to show how our approach is used practically in an enterprise environment.','',2,'Sida XueBudan WuJunliang Chen','springer/bpel security.csv','springer','\0'),(639,'Proceedings - 2012 7th International Conference on Computing and Convergence Technology (ICCIT, ICEI and ICACT), ICCCT 2012','2012','','','The proceedings contain 289 papers. The topics discussed include: the medical image watermarking algorithm based on DFT and logistic map; quality of service approach in homogenous network (UMTS-UMTS) using parameter throughput, jitter and delay; the study of two novel software-based techniques for generating extra input states; research on IEEE 802.11n wireless LANs of multicast traffic characteristics analysis for supporting video streaming; design and implementation of automatic QoS measure framework for web services; formal properties and analysis method of BPEL base on Petri Net; malicious web page detection based on feature classification; a support system for smart selection and examination of initial focus pages in web exploration; an improved line following optimization algorithm for mobile robot; and wireless security method for on-board centered train control system.','',2,'[No author name available]','scopus/bpel security.csv','scopus','\0'),(640,'Synthesis of secure adaptors','2012','8','Adaptor synthesis; Model-based adaptation; Partial model checking; Security verification; Web service orchestration; WS-Security','Security is considered one of the main challenges for software oriented architectures (SOA). For this reason, several standards have been developed around WS-Security. However, these security standards usually hinder interoperability, one of the main pillars of Web service technologies. Software adaptation is a sound solution where an adaptor is deployed in the middle of the communication to overcome signature, behavioural and QoS incompatibilities between services. This is particularly important when dealing with stateful services (such as Windows Workflows or WS-BPEL processes) where any mismatch in the sequence of messages might lead the orchestration to a deadlock situation. We proposed security adaptation contracts as concise and versatile specifications of how such incompatibilities must be solved. Nonetheless, synthesising an adaptor compliant with a given contract is not an easy task where concurrency issues must be kept in mind and security attacks must be analysed and prevented. In this paper, we present an adaptor synthesis, verification and refinement process based on security adaptation contracts which succeeds in overcoming incompatibilities among services and prevents secrecy attacks. We extended the ITACA toolbox for synthesis and deadlock analysis and we integrated it with a variant of CCS, called Crypto-CCS, to verify and refine adaptors based on partial model checking and logical satisfiability techniques. © 2011 Elsevier Ltd. All rights reserved.','',2,'Martín J.A., Martinelli F., Pimentel E.','scopus/bpel security.csv','scopus','\0'),(641,'Introducing Policy-Driven Governance and Service Level Failure Mitigation in Cloud Service Brokers: Challenges Ahead','2014','0',' Cloud computing cloud service brokerage continuous quality assurance policy-driven governance service level failure mitigation','Abstract Cloud service brokerage represents a novel operational model in the scope of cloud computing. A cloud broker acts as an intermediary between a service provider and a service consumer with the goal of adding as much value as possible to the service being provisioned and consumed. Continuous quality assurance is a type of brokerage capability having high value to both providers and consumers of cloud services. At the same time, it can be among the most challenging kinds of capability for cloud service brokers to realise. In this paper we focus on two specific themes within this scope. We present a motivating scenario and outline key research challenges associated with introducing policy-driven governance and service level failure mitigation capabilities in brokers.','',2,'Konstantinos BratanisDimitrios Kourtesis','springer/bpmn security.csv','springer',''),(642,'Model checking Petri nets with names using data-centric dynamic systems','2016','0',' Formal verification Petri nets with names Infinite-state systems First-order temporal logics Data-aware business processes Resource-aware business processes','Abstract Petri nets with name creation and management ( \\({\\nu}\\) -PNs) have been recently introduced as an expressive model for dynamic (distributed) systems, whose dynamics are determined not only by how tokens flow in the system, but also by the pure names they carry. On the one hand, this extension makes the resulting nets strictly more expressive than P/T nets: they can be exploited to capture a plethora of interesting systems, such as distributed systems enriched with channels and name passing, service interaction with correlation mechanisms, and resource-constrained workflow nets that explicitly account for process instances. On the other hand, fundamental properties like coverability, termination and boundedness are decidable for \\({\\nu}\\) -PNs. In this work, we go one step beyond the verification of such general properties, and provide decidability and undecidability results of model checking \\({\\nu}\\) -PNs against variants of first-order \\({\\mu}\\) -calculus, recently proposed in the area of data-aware process analysis. While this model checking problem is undecidable in the general case, decidability can be obtained by considering different forms of boundedness, which still give raise to an infinite-state transition system. We then ground our framework to tackle the problem of soundness checking over workflow nets enriched with explicit process instances and resources. Notably, our decidability results are obtained via a translation to data-centric dynamic systems, a recently devised framework for the formal specification and verification of data-aware business processes working over full-fledged relational databases with constraints. In this light, our results contribute to the cross-fertilization between the area of formal methods for concurrent systems and that of foundations of data-aware processes, which has not been extensively investigated so far.','Formal Aspects of Computing',1,'Marco MontaliAndrey Rivkin','springer/service oriented architecture security.csv','springer',''),(643,'Livelock and Deadlock Detection for PA Inter-organizational Business Processes','2012','0','','Abstract The Public Administration domain is characterized by the dominance of inter-organizational Business Processes. These are a set of interrelated and sequential activities shared and executed by two or more Public Administration officies to achieve a business objective that is of value to citizens or companies in term of services. A Business Process results from the un-trivial integration of internal administration processes, so that structural problems such as livelock or deadlock may easily occur and in reality they are generally solved by involved civil servants. Nevertheless with the shift versus an electronic government this problem becomes particularly relevant. The paper presents a suitable approach for inter-organizational Business Process detection of livelock and deadlock situations. In particular, we introduce an approach to directly verify a Business Process modeled using the BPMN 2.0 semi-formal notation. The verification uses a state evaluation technique with an optimized unfolding algorithm considering specific BPMN 2.0 characteristics. A plug-in for the Eclipse platform has been also developed, which permits to have an integrated environment in which to design Business Process, using the Eclipse BPMN 2.0 Modeler, and to automatically verify it. The approach and the tool prototype have been successfully applied to real scenarios such as family reunion, grant citizenship and buoncer registration.','',2,'Damiano FalcioniAndrea PoliniAlberto PolzonettiBarbara Re','springer/bpmn security.csv','springer','\0'),(644,'A Mapping from Normative Requirements to Event-B to Facilitate Verified Data-Centric Business Process Management','2012','0','','Abstract This paper addresses the problem of describing and analyzing data manipulation within business process workflow specifications.We apply a modeldriven approach. We begin with business requirement specifications, consisting of an ontology and an associated set of normative rules, that define the ways in which business processes can interact. We then transform this specification into an Event-B specification. The resulting specification, by virtue of the Event-B formalism, is very close to a typical loosely coupled component-based implementation of a business system workflow, but has the additional value of being amenable to theorem proving techniques to check and refine data representation with respect to process evolution.','',2,'Iman PoernomoTimur Umarov','springer/bpel security.csv','springer','\0'),(645,'Lab4CE: a Remote Laboratory for Computer Education','2015','0',' Online learning environment Remote laboratory Computer science','Abstract Remote practical activities have been demonstrated to be efficient when learners come to acquire inquiry skills. In computer science education, virtualization technologies are gaining popularity as this technological advance enables instructors to implement realistic practical learning activities, and learners to engage in authentic and problem-based learning. However, virtualization solutions have not been designed especially for education and do not address any pedagogical concern. Since several large-scale studies showed that instructional supports during practical activities are almost as important as technical features, this article investigates the following research question: how the scaffolding around the lab increases students’ engagement in remote practical learning of computer science? To answer this question, we introduce the Lab4CE environment, a remote laboratory for computer education which adopts a distributed, modular and flexible architecture to integrate a set of scaffolding tools and services intended for instructors and learners. An exploratory study conducted with 139 undergraduate students enrolled in the first year of a computer science degree suggests a positive effect of the framework on learners’ engagement when they come to practice system administration, and reveals a significant positive correlation between students’ activity within the system and students’ learning achievement.','International Journal of Artificial Intelligence in Education',1,'Julien BroisinRémi VenantPhilippe Vidal','springer/service oriented architecture security.csv','springer',''),(646,'Out-of-the-Enterprise B2B Gateway Cloud Service for Emerging Markets','2012','2','','Traditionally, in a typical SOA environment, a B2B gateway is at the edge of an enterprise, and is responsible for performing business document exchanges with other enterprises. In the existing model often used in mature markets, the enterprise needs to incur the cost of hosting and maintaining the gateway. However, the scenario for emerging markets is different, since they are not totally reliant on exchanging business documents electronically. Specifically, the SMB enterprises in emerging markets may not be interested in hosting and maintaining the usually bulky gateway products. In this paper, we propose a novel approach wherein SMB enterprises would exchange secured business information to a B2B cloud service hosted outside of the enterprise. This service offers key B2B protocol capabilities and features such as packaging, security and partner on-boarding. In a typical document exchange flow, the SMB enterprise would send it\'s business information to this B2B cloud service which then packages it using the agreed upon B2B protocol and makes it available to the intended recipient enterprise. Using this model for B2B exchanges would work as an incentive to open up SMB enterprises for B2B business and will go a long way in reducing costs for SMB enterprises.','Cloud Computing in Emerging Markets (CCEM), 2012 IEEE International Conference on',1,'U. M. Visweswara; A. Gohad; P. S. Rao','ieee/service oriented architecture security.csv','ieee','\0'),(647,'Media trustworthiness verification and event assessment through an integrated framework: a case-study','2016','0',' Complex event processing Crisis management Image forensics Trend analysis Social media Logo recognition','Abstract Nowadays, information is provided through diverse network channels and, above all, its diffusion occurs in an always faster and pervasive manner. Social Media (SM) plays a crucial role in distributing, in an uncontrolled way, news, opinions, media contents and so on, and can basically contribute to spread information that sometimes are untrue and misleading. An integrated assessment of the trustworthiness of the information that is delivered is claimed from different sides: the Secure! project strictly fits in such a context. The project has been studying and developing a service oriented infrastructure which, by resorting at diverse technological tools based on image forensics, source reputation analysis, Twitter message trend analysis, web source retrieval and crawling, and so on, provides an integrated event assessment especially regarding crisis management. The aim of this paper is to present an interesting case-study which demonstrates the potentiality of the developed system to achieve a new integrated knowledge.','Multimedia Tools and Applications',1,'Irene AmeriniRudy BecarelliFrancesco BrancatiRoberto CaldelliGabriele GiuntaMassimiliano L. Itria','springer/service oriented architecture security.csv','springer',''),(648,'Model Checking Adaptive Multilevel Service Compositions','2012','0','','Abstract In this paper we present a logic-based technique for verifying both security and correctness properties of multilevel service compositions. We define modal μ -calculus formulae interpreted over service configurations. Our formulae characterize those compositions which satisfy a non-interference property and are compliant, i.e., are both deadlock and livelock free. Moreover, we use filters as prescriptions of behavior (coercions to prevent service misbehavior) and we devise a model checking algorithm for adaptive service compositions which automatically synthesizes an adapting filter.','',2,'Sabina Rossi','springer/bpel security.csv','springer','\0'),(649,'Enhancement of security in the hierarchy model of control and automation by applying Single Sign-On approach for web services','2012','','authentication; hierarchy model of control and automation; identity federation; saml; security token; single sign-on; soap; web services security','Information security is an important term in both fields of IT systems and control systems. Thus, security requirements should be always considered in design phase. Modern approaches in manufacturing and automation technology such as: DPWS and OPC UA tend to integrate control system networks to the computer networks by the aid of service-oriented architecture technology. Single Sign-On is a property of access control in information security which focuses on authentication mechanism. It can be performed across federated domains and provides a single entry point for the user that can login only once and become capable of accessing to disparate protected resources in different locations. The Security Assertion Markup Language (SAML) can be used invisibly in background of system and apply as the standard for providing Single Sign-On mechanism by exchanging identity information to different security domains regardless of the specific authentication protocol which is used for identities in that domain. This paper proposes the model for performing of Single Sign-On approach for protected devices and applications that support web services technology and locate across different boundaries of the hierarchy model of control and automation. © 2012 IEEE.','',1,'Jafary P., Lobov A., Lastra J.L.M.','scopus/service oriented architecture security.csv','scopus','\0'),(650,'The research of network database security technology based on webservice','2013','','Authentication; Decryption; Network Database security; Sub-key encryption','Database technology is one of the most widely applied computer technologies, its security is becoming more and more important. This paper introduced the database security, network database security level, studies the security technology of the network database, analyzes emphatically sub-key encryption algorithm, applies this algorithm into the campus-one-card system successfully. The realization process of the encryption algorithm is discussed, this method is widely used as reference in many fields, particularly in management information system security and e-commerce. © 2013 SPIE.','',1,'Meng F., Wen X., Gao L., Pang H., Wang Q.','scopus/webservice security.csv','scopus','\0'),(651,'Security SLAs – An Idea Whose Time Has Come?','2012','4','','Abstract Service Level Agreements (SLAs) have been used for decades to regulate aspects such as throughput, delay and response times of services in various outsourcing scenarios. However, security aspects have typically been neglected in SLAs. In this paper we argue that security SLAs will be necessary for future Internet services, and provide examples of how this will work in practice.','',1,'Martin Gilje JaatunKarin BernsmedAstrid Undheim','springer/service oriented architecture security.csv','springer','\0'),(652,'Leveraging the web of data via linked widgets','2014','1',' Web of Data Linked Data Linked Widgets Web Widgets Mashups','Abstract Machine-readable datasets that have increasingly become available in open formats in recent years have great potential as a foundation for innovative applications and services. Linked Data in particular-a set of best practices for publishing and connecting structured data on the Web-has facilitated significant progress in evolving the Web of documents into a Web of Data. However, although this concept has opened up many opportunities for data sharing and collaboration, integrating data is still a challenging task that requires considerable technical expertise and a profound understanding of the underlying datasets. In this paper, we introduce a novel approach to provide knowledge workers with the necessary tools to leverage the fast growing Linked Data Cloud by creating semantic-aware dataflow processes. To this end, we introduce the “Linked Widget” concept as an enhancement of standard Web Widgets. These widgets are based on a semantic data model that facilitates powerful mechanisms for gathering, processing, integration, and visualization of data in a user-friendly Mashup environment. By allowing knowledge workers to easily create complex Linked Data applications in an adhoc manner, our approach should contribute towards reducing existing barriers of Linked Data adoption.','Journal of Service Science Research',1,'Amin AnjomshoaaElmar KieslingDat Trinh TuanDo Ba LamPeter WetzA. Min Tjoa','springer/soa security.csv','springer','\0'),(653,'Optimal Service Selection Using Trust Based Recommendation System for Service-Oriented Grid','2012','0','QoS;grid service;reputation;similarity computation;trust','Grid computing systems provide a virtual framework for sharing resources across organizational boundaries. Nowadays OGSA(Open Grid Services Architecture) is the most common adopted grid system architecture. This architecture adopts standardized service pattern, which means it views all resources as services and shares all resources through sharing services. With the increasing use of Grid system, service user is in a fix when having to make a choice from a set of services offering the same functionality. Hence service selection is one of the challenges to be addressed in Service Oriented Grid (SOG). In this paper we propose a recommendation system based on trust, reputation and QoS for the SOG. This novel approach uses computation of trustworthiness of services by the mechanism of similarity computation and ranking service providers based on feedback of users.','Cloud and Services Computing (ISCOS), 2012 International Symposium on',1,'N. Nagarathna; M. Indiramma; J. S. Nayak','ieee/service oriented architecture security.csv','ieee','\0'),(654,'A security model of command and control system based on SOA','2014','1','command and control system; information exchange; security; SOA; SOAP','The command and control system based on SOA exists frangibility for information exchange, which has become a bottleneck to limit the development of them. A security policy of information exchange for command and control system is established, which combines with AES encryption, RSA digital signatures and authentication. The simulation results show that this policy ensures the security of the interactive information and improves the efficiency of information security process time. © 2014 IEEE.','',1,'Tian M., Feng Y., Jin X., Zhao Y.','scopus/soa security.csv','scopus','\0'),(655,'Grid portal with compiler service, advanced reservation QoS and job management using mobile services','2015','','Compiler service; GAP; GARUDA Access Portal; Grid GARUDA; Grid portal; GSRM; Login service; Mobile services; QoS; Quality of service; Reservation; SOA-based Grid','This paper highlights the recent developments and implementations in the GARUDA Access Portal (GAP) for utilising the Grid resources effectively. The new features offered are using quality of service (QoS) parameters for selecting high performance computing (HPC) resource available for job submission on GARUDA Grid, reservation of resources for job scheduling, job submission and monitoring using short message service (SMS) through mobile phone, source code compilation in Grid environment, integration of data Grid solution GSRM, enablement of content management system for GARUDA partners, enhanced security mechanism using login service and accounting of jobs. Thereby allowing researchers and application users an easy way of accessing GARUDA Grid infrastructure seamlessly. © 2015 Inderscience Enterprises Ltd.','',1,'Kalasagar B., Arunachalam B., Arackal V.S., Rao B.B.P.','scopus/soa security.csv','scopus',''),(656,'Towards a Formal Model for Cloud Computing','2014','0',' Cloud Computing Bigraphical Reactive Systems Formal Methods Cloud Model Cloud General Bigraph Cloud Customers Bigraph Cloud Services Bigraph','Abstract The use of formal methods is an effective means to improve complex systems reliability and quality. In this context, we adopt one of these methods to formalize cloud computing concepts. We focus on modeling interactions between cloud services and customers. Based on Bigraphical Reactive Systems, the formalization process is realized via the definition of a Cloud General Bigraph (CGB) obtained by associating; primarily, a CCB (Cloud Customers Bigraph) to cloud customers. Then, a Cloud Services Bigraph (CSB) is proposed to formally specify cloud services structure. Finally, juxtaposing these two bigraphs (CSB and CCB) gives rise to the suited CGB. In addition, a natural specification of cloud deployment models is specified. This paper also addresses cloud service dynamics by defining a set of reaction rules on bigraphs in a way that is amenable to reconfigure the designed cloud system.','',1,'Zakaria BenzadriFaiza BelalaChafia Bouanaka','springer/service oriented architecture security.csv','springer','\0'),(657,'Standard-Based Integration of W3C and GeoSpatial Services: Quality Challenges','2014','1','','Abstract In recent years, Service Oriented Computing (SOC) has become one of the leading approaches for the design and implementation of distributed solutions. The key concepts are the notion of service and the possibility to seamlessly combine several modules to offer more sophisticated functionality. Such features were soon recognized by both W3C and OGC as relevant for their purposes, although their standards are incompatible and the seamless communication and exchange of information between these types of services are not directly achievable. The current most accepted solution to address this matter is represented by the development of a wrapper that manages technical issues that arise during the translation of requests and responses between them. However, the design of such a software module presents challenges in terms of infrastructure design and Quality of Service. In this paper we describe some issues to be faced when developing a service wrapper aimed at integrating existing geospatial services into a W3C service-based infrastructure.','',1,'Michela BertolottoPasquale Di GiovanniMonica SebilloGiuliana Vitiello','springer/service oriented architecture security.csv','springer','\0'),(658,'Previous hop data retransmission service for SoR-based public networks','2014','0','Service-oriented route;data retransmission;ns-3','It is a well-known fact that the Internet traffic travels through public networks and these networks are vulnerable and congested. Whenever an error in a packet is detected, the packet should be retransmitted back to the receiver to reduce/overcome the data loss. Automatic repeat request (ARQ) method is a well-known data retransmission method used by protocols such as Transmission Control Protocol (TCP). This method will retransmit data all the way from the sender resulting higher end-to-end retransmission delays in the packet transmission. Nevertheless this method is widely used and operational, it will also introduce unnecessarily duplicate packets further congesting the networks when it retransmit the entire packet stream from an unacknowledged packet after detecting a retransmission requirement. Encryption and public key cryptography are important technologies that are used to preserve data security and integrity, and to reduce information theft on the public networks. These existing technologies have less flexibility over the current security requirements and the conventional routers are unable to provide end services to the users and applications. To address this need, our laboratory introduced the per-hop data encryption protocol for service-oriented router (SoR) based public networks which allows more secured and flexible method to transfer data over public networks [15]. SoRs are introduced to maintain rich information for the next-generation networks by shifting the current Internet infrastructure to an information-based and an open-innovation platform [6]. SoR is a middleware and can be implemented on a Cisco AXP and Juniper JunosV App Engine where it can analyse all packet stream transactions on its interfaces. Using the features of the SoR, in this paper, we propose a previous hop data retransmission service for public networks. This proposing service can provide higher data availability and reliability to the data that traverses through public network- , reducing the end-to-end data retransmission delays. We implemented a prototype of previous hop data retransmission service on the ns-3 simulator. Furthermore, from the evaluations on the test bed topology, it clearly showed that the proposed method was 80.43% faster than the conventional ARQ based retransmission method.','7th International Conference on Information and Automation for Sustainability',1,'R. Tennekoon; J. Wijekoon; E. Harahap; H. Nishi','ieee/service oriented architecture security.csv','ieee','\0'),(659,'Context-Aware Service Ranking in Wireless Sensor Networks','2014','4',' Service context User context Service ranking QoS assessment Fuzzy','Abstract Wireless sensor networks (WSNs) are widely used in practice for comprehensively monitoring and gathering physical information via a multitude of sensors. As the development of WSNs, the integration of them with the external Internet is a urgent need. By wrapping the sensor functionality as a WSN service, the Web service is considered as the most promising technology to incorporate WSNs into the Internet. The quest for selecting the service with the best performance promotes service ranking technology. However, due to the dynamic WSN environment, traditional quality of service (QoS) based ranking approaches for general Web services are no longer suitable for the WSN service. In this article, in order to fit the characteristics of the WSN environment, we propose a context-aware WSN service ranking approach by aggregating the user rating and WSN service context. First, the User QoS Assessment (UQA) and Context QoS Assessment (CQA) are proposed, respectively. Then, through the performance influence on the WSN service by the variations in their context, a Fuzzy mechanism is further developed to aggregate the UQA and the CQA. Finally, the experiments are presented to confirm the validity of the proposed approach.','Journal of Network and Systems Management',1,'Wenjia NiuJun LeiEndong TongGang LiLiang ChangZhongzhi ShiSong Ci','springer/soa security.csv','springer','\0'),(660,'Towards Accountable Services in the Cloud','2012','0','','Abstract Today, it is highly attractive for businesses to use the cloud as the platform to run their enterprise IT and business transactions: scalable infrastructures provide flexibility and cost efficiency, while the participation in service ecosystems allows building applications on demand by exploiting the vast amount of functionality that is ready to be consumed over the cloud. But taking advantage of all these opportunities is still obstructed by trust concerns. Handing over sensitive data to a third-party for processing, together with the complexity of the service ecosystem, the lack of visibility of its structures and the increased dependency on service providers constitute a non-negligible risk for businesses.','',1,'Volkmar LotzAnderson Santana de Oliveira','springer/service oriented architecture security.csv','springer','\0'),(661,'CARS 2015—Computer Assisted Radiology and Surgery Proceedings of the 29th International Congress and Exhibition Barcelona, Spain, June 24–27, 2015','2015','0','','','International Journal of Computer Assisted Radiology and Surgery',1,'','springer/soa security.csv','springer',''),(662,'Business Model for the Security of a Large-Scale PACS, Compliance with ISO/27002:2013 Standard','2015','','Availability; BPMN; DICOM; HIPAA; Integrity','Data security is a critical issue in an organization; a proper information security management (ISM) is an ongoing process that seeks to build and maintain programs, policies, and controls for protecting information. A hospital is one of the most complex organizations, where patient information has not only legal and economic implications but, more importantly, an impact on the patient’s health. Imaging studies include medical images, patient identification data, and proprietary information of the study; these data are contained in the storage device of a PACS. This system must preserve the confidentiality, integrity, and availability of patient information. There are techniques such as firewalls, encryption, and data encapsulation that contribute to the protection of information. In addition, the Digital Imaging and Communications in Medicine (DICOM) standard and the requirements of the Health Insurance Portability and Accountability Act (HIPAA) regulations are also used to protect the patient clinical data. However, these techniques are not systematically applied to the picture and archiving and communication system (PACS) in most cases and are not sufficient to ensure the integrity of the images and associated data during transmission. The ISO/IEC 27001:2013 standard has been developed to improve the ISM. Currently, health institutions lack effective ISM processes that enable reliable interorganizational activities. In this paper, we present a business model that accomplishes the controls of ISO/IEC 27002:2013 standard and criteria of security and privacy from DICOM and HIPAA to improve the ISM of a large-scale PACS. The methodology associated with the model can monitor the flow of data in a PACS, facilitating the detection of unauthorized access to images and other abnormal activities. © 2015, Society for Imaging Informatics in Medicine.','',2,'Gutiérrez-Martínez J., Núñez-Gaona M.A., Aguirre-Meneses H.','scopus/bpmn security.csv','scopus',''),(663,'A New Security Metric for SOA Implementations','2013','2','SOAP security;Service-Oriented Architecture security;Web Serives;XPath Injection','Service Oriented Architecture (SOA) is an architectural style used to handle transactions involving money, identity, and other sensitive and valuable information. Web Services that implement an SOA must be secure. This paper will describe the common vulnerabilities of Web Services and SOA and the best practices that should be followed in securing the software behind them, and then a new security metric, XPath Exposure Ratio, for Web Services and SOA implementations is proposed. In addition to the discussion on how to apply the new metric, the advantages of the new security metric are also illustrated.','Software Security and Reliability-Companion (SERE-C), 2013 IEEE 7th International Conference on',1,'D. Larson; J. Liu','ieee/service oriented architecture security.csv','ieee','\0'),(664,'Using electronic health records for clinical research: The case of the EHR4CR project','2015','10','Clinical research; Clinical trials; Data reuse; Electronic health record; Interoperability; Pharmaceutical industry','Objectives: To describe the IMI EHR4CR project which is designing and developing, and aims to demonstrate, a scalable, widely acceptable and efficient approach to interoperability between EHR systems and clinical research systems. Methods: The IMI EHR4CR project is combining and extending several previously isolated state-of-the-art technical components through a new approach to develop a platform for reusing EHR data to support medical research. This will be achieved through multiple but unified initiatives across different major disease areas (e.g. cardiovascular, cancer) and clinical research use cases (protocol feasibility, patient identification and recruitment, clinical trial execution and serious adverse event reporting), with various local and national stakeholders across several countries and therefore under various legal frameworks. Results: An initial instance of the platform has been built, providing communication, security and terminology services to the eleven participating hospitals and ten pharmaceutical companies located in seven European countries. Proof-of-concept demonstrators have been built and evaluated for the protocol feasibility and patient recruitment scenarios. The specifications of the clinical trial execution and the adverse event reporting scenarios have been documented and reviewed. Conclusions: Through a combination of a consortium that brings collectively many years of experience from previous relevant EU projects and of the global conduct of clinical trials, of an approach to ethics that engages many important stakeholders across Europe to ensure acceptability, of a robust iterative design methodology for the platform services that is anchored on requirements of an underlying Service Oriented Architecture that has been designed to be scalable and adaptable, EHR4CR could be well placed to deliver a sound, useful and well accepted pan-European solution for the reuse of hospital EHR data to support clinical research studies. © 2014 Elsevier Inc.','',1,'De Moor G., Sundgren M., Kalra D., Schmidt A., Dugas M., Claerhout B., Karakoyun T., Ohmann C., Lastic P.-Y., Ammour N., Kush R., Dupont D., Cuggia M., Daniel C., Thienpont G., Coorevits P.','scopus/service oriented architecture security.csv','scopus',''),(665,'The AVANTSSAR Platform for the Automated Validation of Trust and Security of Service-Oriented Architectures','2012','4','','Abstract The AVANTSSAR Platform is an integrated toolset for the formal specification and automated validation of trust and security of service-oriented architectures and other applications in the Internet of Services. The platform supports application-level specification languages (such as BPMN and our custom languages) and features three validation backends (CL-AtSe, OFMC, and SATMC), which provide a range of complementary automated reasoning techniques (including service orchestration, compositional reasoning, model checking, and abstract interpretation). We have applied the platform to a large number of industrial case studies, collected into the AVANTSSAR Library of validated problem cases. In doing so, we unveiled a number of problems and vulnerabilities in deployed services. These include, most notably, a serious flaw in the SAML-based Single Sign-On for Google Apps (now corrected by Google as a result of our findings). We also report on the migration of the platform to industry.','',2,'Alessandro ArmandoWihem ArsacTigran AvanesovMichele BarlettaAlberto CalviAlessandro CappaiRoberto CarboneYannick ChevalierLuca CompagnaJorge CuéllarGabriel ErzseSimone FrauMarius MineaSebastian MödersheimDavid von OheimbGiancarlo Pellegrino','springer/bpel security.csv','springer','\0'),(666,'A Digital Signature Architecture for Web Apps','2013','1','Web technologies;digital signature;electronic commerce;security','This digital signature architecture provides browser-agnostic, client-side signature components and generic server-side signature validation components to help integrate signatures into Web applications. The authors also discuss ways to extend HTML syntax to support signatures.','IT Professional',1,'H. K. B. Ponnapalli; A. Saxena','ieee/service oriented architecture security.csv','ieee','\0'),(667,'Integrating Trust and Economic Theories with Knowledge Science for Dependable Service Automation','2014','0',' Service Automation Economic Theory Trust Theory Knowledge Science','Abstract This paper examines the necessity to integrate Economic Theories and Trust Theories with Knowledge Science for trustworthy service automation in modern day society’s technology-driven environment. Current demands for open user-centric distributed service systems far outweigh the capabilities of existing systems in application areas such as health care, e-business, and consumer-centric power and water distribution systems. The basis of service transactions, whether in traditional market place or on-line system, is trust and lack of trust will have diminishing effect on the economic value. It is essential to identify user perspectives and relate their social psychology to meaningful trust determinants in the system to be automated. Since the systems are typically large, distributed, and deal with many heterogeneous collection of sensory devices and actuators that are specific to each service domain, it is necessary that the experts of the application domain and system developers share their knowledge and wisdom in the creation of the system. Sharing knowledge requires trust, and using the acquired knowledge requires creativity, born out of tacit knowledge, to go beyond risks. Motivated by this triangular web of Economics, Trust, and Knowledge that impacts on consumer-centric service automation, this paper explores their interesting connections, explains the different kinds of trust to be distilled from it, and identifies the design stages where the appropriate trust determinants are to be fostered in order to achieve a dependable service automation system.','',1,'Vangalur AlagarKaiyu Wan','springer/service oriented architecture security.csv','springer','\0'),(668,'SeCoS: Web of Things platform based on a microservices architecture and support of time-awareness','2016','0',' Web of Things Internet of Things time-awareness RFID Schlüsselwörter Web der Dinge Internet der Dinge Zeitaspekte RFID','Abstract New types of RFID applications require an intelligent connection between real world objects and software services. This also requires a new approach in the creation of software applications. This paper describes a novel Web of Things platform. Our approach uses microservices. Each microservice can be developed independently, thereby enabling faster development cycles, easier integration and maintenance. This account summarizes the current field and presents the architecture for a state-of-the-art Web of Things platform with time awareness support that is based on microservices.','e & i Elektrotechnik und Informationstechnik',1,'Herwig ZeinerMichael GollerVíctor Juan Expósito JiménezFlorian SalmhoferWerner Haas','springer/microservice security.CSV','springer',''),(669,'Cloud-basierte Plattformen zur Anwendungsintegration – Angebote und Praxisbeispiel','2015','0','Schlüsselwörter Software-as-a-Service Anwendungsintegration Enterprise Application Integration Cloud-basierte Integrationsplattform Integration-Platform-as-a-Service','Zusammenfassung Der Einsatz von Software-as-a-Service in Unternehmen beschränkt sich nicht mehr nur auf einzelne Pilotprojekte, sondern betrifft zunehmend auch geschäftskritische Anwendungen. Damit entsteht gleichzeitig der Wunsch nach Integration von Software-as-a-Service, etwa der CRM-Lösung Salesforce.com, und traditionellen On-Premise-Anwendungen wie SAP ERP. Diesen Bedarf versprechen „Cloud-basierte Integrationsplattformen“ flexibel und kostengünstig zu adressieren - als Alternative zur direkten Anbindung der Anwendungen oder zu klassischen Enterprise Application Integration-Plattformen. Sie bieten zahlreiche Anwendungsadapter und erlauben den grafischen Entwurf, die Ausführung und die Verwaltung von komplexen Integrationsprozessen in der Cloud. Einige Hersteller liefern Software-Agenten für die sichere Kommunikation zwischen Software-as-a-Service, On-Premise-Anwendungen und Integrationsplattform. Bei manchen Herstellern sind diese Agenten auch die lokale Laufzeitumgebung für Integrationsprozesse, weswegen dann keine kritischen Daten an die Integrationsplattform übertragen werden müssen.','HMD Praxis der Wirtschaftsinformatik',1,'Nico EbertKristin Weber','springer/soa security.csv','springer',''),(670,'Research and Implementation on Autonomic Integration Technology of Smart Devices Based on DPWS','2015','0',' Smart device Devices Profile for Web Services Autonomic integration Web services Service oriented architecture','Abstract Smart devices can take advantage of a specific protocol to provide services, but they do not have open and autonomic integration capability. After analyzing the characteristics of the existing integration middlewares, an autonomic integration technology for smart devices is proposed based on DPWS protocol. According to the requirement background of network monitoring integration system containing different types of network cameras, an autonomic integration prototype of network cameras is designed and implemented. Test results on autonomic discovery and configuration for smart devices show that DPWS is a good and open method to solve the autonomic integration problem and demonstrate that the method is realizable.','',2,'Yan-qin MaoLu JinSu-bin Shen','springer/bpel security.csv','springer',''),(671,'A Comparison of On-Premise to Cloud Migration Approaches','2013','3',' Cloud Migration Cloud Migration Processes On-premise to Cloud Cloud Architecture','Abstract While cloud computing has certainly gained attention, the potential for increased uptake of the technology is still large. As a consequence, how to move and migrate to the cloud is an unanswered question for many organisations. Gaining an understanding of cloud migration processes from on-premise architectures is our aim here. For this purpose, we look at three provider-driven case studies based on the common three layers of cloud computing: Infrastructure (IaaS), platform (PaaS) and software (SaaS) as a service. These shall be complemented by a fourth, independent systems integration perspective. We extract common migration process activities for the layer-specific processes and discuss commonalities, differences and open issues. The results presented are based on expert interviews and focus groups held with major international cloud solution providers and independent consultants.','',1,'Claus PahlHuanhuan XiongRay Walshe','springer/service oriented architecture security.csv','springer','\0'),(672,'Tool Demonstration of the Transformation Judge','2012','0','','Abstract The transformation judge is a novel system for the automatic evaluation and comparison of graph and model transformations that have been submitted as solutions for common transformation tasks such as those accepted as case studies for the transformation tool contest. The most important feature of this system is the correctness check that is done by black-box-testing. But also performance data and other information about the solutions are collected. So, for academic as well as industrial users of transformation tools, the judge could be a good starting point for choosing a particular transformation tool for their respective task, since they can easily explore and compare different solutions for similar tasks. In this demonstration we show the most important use cases of the judge, i.e., uploading of cases and corresponding solutions as well as the automatic evaluation and comparison of solutions.','',1,'Steffen MazanekChristian RutetzkiMark Minas','springer/webservice security.csv','springer','\0'),(673,'A Contextual Privacy-Aware Access Control Model for Network Monitoring Workflows: Work in Progress','2012','0',' Network monitoring access control privacy context workflows','Abstract Network monitoring activities are surrounded by serious privacy implications. The inherent leakage-proneness is harshened due to the increasing complexity of the monitoring procedures and infrastructures, that may include multiple traffic observation points, distributed mitigation mechanisms and even inter-operator cooperation. In this paper, we report a work in progress policy model that aims at addressing these concernes, by verifying access requests from network monitoring workflows, with privacy features already contained since their specification phase. We survey related work, outline some of their limitations, and describe an early version of our proposal.','',1,'Eugenia I. PapagiannakopoulouMaria N. KoukoviniGeorgios V. LioudakisJoaquin Garcia-AlfaroDimitra I. KaklamaniIakovos S. Venieris','springer/service oriented architecture security.csv','springer','\0'),(674,'Landmark-assisted location and tracking in outdoor mobile network','2012','2',' Landmark Geolocation Wireless network','Abstract Modern mobile devices integrating sensors, like accelerometers and cameras, are paving the way to the definition of high-quality and accurate geolocation solutions based on the informations acquired by these sensors, and data collected and managed by GSM/3G networks. In this paper, we present a technique that provides geolocation and mobility prediction of mobile devices, mixing the location information acquired with the GSM/3G infrastructure and the results of a landmark matching achieved thanks to the camera integrated on the mobile devices. Our geolocation approach is based on an advanced Time-Forwarding algorithm and on database correlation technique over Received Signal Strength Indication (RSSI) data, and integrates information produced by a landmark recognition infrastructure, to enhance algorithm performances in those areas with poor signal and low accurate geolocation. Performances of the algorithm are evaluated on real data from a complex urban environment.','Multimedia Tools and Applications',1,'Marco AnisettiClaudio A. ArdagnaValerio BellandiErnesto DamianiMario DöllerFlorian StegmaierTilmann RablHarald KoschLionel Brunie','springer/service oriented architecture security.csv','springer','\0'),(675,'Middleware Services for Web Service Compositions','2005','2','BPEL, middleware, web service composition','Special Interest Tracks and Posters of the 14th International Conference on World Wide Web','',2,'Anis Charfi and Mira Mezini','acm/bpel security.csv','acm','\0'),(676,'Semantic Web Services for University Course Registration','2014','0',' Semantic web services Ontology Course registration Web Service Modeling Language Web Service Modeling Ontology Discovery Service orientation','Abstract Semantic web services, with proper security procedures, have the potential to open up the computing infrastructure of an organization for smooth integration with external applications in a very controlled way, and at a very fine level of granularity. Furthermore, the process of using the provided functionality, consisting of discovery, invocation and execution of web services may be automated to a large extent. In this paper, we show how semantic web services and service-oriented computing can facilitate this integration in the education domain. Specifically, we use the Rule variant of Web Services Modeling Language (WSML) to semantically specify the functionality of web services for on-line course registration, a goal for consuming the provided functionality, as well as the ontologies needed for a shared terminology between the service and goal.','',1,'Şengül ÇobanoğluZeki Bayram','springer/service oriented architecture security.csv','springer','\0'),(677,'A Secure Framework for Business Process Execution','2013','0','Business processes;Secure framework;Web service;Web service composition','A web service is a method of communication between two electronic devices over the World Wide Web. The web service is a software function that provides different business functionality to service consumers. The set of web services can be composed together as a composition operation to fulfill and achieve the complex business requirements with the help of Business Process Execution Language (BPEL) or business processes. The existing business processes are having set of merits such as industry oriented approach and good control over workflow design. The business processes are unable to support for human user interaction, encryption and decryption mechanisms for providing the security for its data processing, therefore, the data process by business processes will not be secure from unauthorized users over the network. In this paper, we propose a secure framework for business processes to provide data security over the network. The proposed framework implements Caesar Cipher technique of cryptography with an example. The proposed technique transmits data in a secure manner over the network.','Computational Intelligence and Communication Networks (CICN), 2013 5th International Conference on',2,'R. Bhandari; U. Suman','ieee/bpel security.csv','ieee','\0'),(678,'An Inductive and Semantic Model of Constraints for Master Data Management under Cloud Computing','2014','0',' Master Data Management Constraints Model Cloud Computing Formularization','Abstract Master Data Management (MDM) has been evaluated under the contexts of Enterprise Architecture (EA), Semantic Web, Service Oriented Architecture (SOA) and Business Process Integration (BPI). However, there have been very few studies on operations of MDM under a Cloud Computing environment. Accordingly, we have analyzed the operational issues caused by migrating the MDM operations into the Cloud Computing environment, in particular into Software as a Service. Furthermore, we have pointed out the insufficient policy of the security framework in regards to the disclosure, and also pointed out the necessity to define a constraints model for security policy that is available in designing the operations of MDM among multiple SaaS/ASP and BPaaS providers. In this paper, we define a more precise constraints model by applying the first order predicate logic and inductive approach. Furthermore, we give explanatory description about the contexts of this formularization.','',1,'Shinji Kikuchi','springer/service oriented architecture security.csv','springer','\0'),(679,'MARV - Data Level Confidentiality Protection in BPEL-Based Web Service Compositions','2011','2','','With services technology being on the rise, the needs for trustworthy and secure data processing emerge. Usually, trust can be established for a data originator and an ultimate data recipient, but how about the data-forwarding parties in between? Especially in inter-organizational service compositions it may be doubted whether all involved partners share the same level of security, especially for data they do not generate nor process themselves. In this paper, we focus on the data confidentiality problem in inter-organizational service compositions, propose a solution based on the Web Services and BPEL specifications, and show how this solution can be applied to real-world scenarios.','Network and Information Systems Security (SAR-SSI), 2011 Conference on',2,'F. Majernik; M. Jensen; J. Schwenk','ieee/bpel security.csv','ieee','\0'),(680,'MOMCC: Market-oriented architecture for Mobile Cloud Computing based on Service Oriented Architecture','2012','14','','The vision of augmenting computing capabilities of mobile devices, especially smartphones with least cost is likely transforming to reality leveraging cloud computing. Cloud exploitation by mobile devices breeds a new research domain called Mobile Cloud Computing (MCC). However, issues like portability and interoperability should be addressed for mobile augmentation which is a non-trivial task using component-based approaches. Service Oriented Architecture (SOA) is a promising design philosophy embraced by mobile computing and cloud computing communities to stimulate portable, complex application using prefabricated building blocks called Services. Utilizing distant cloud resources to host and run Services is hampered by long WAN latency. Exploiting mobile devices in vicinity alleviates long WAN latency, while creates new set of issues like Service publishing and discovery as well as clientserver security, reliability, and Service availability. In this paper, we propose a market-oriented architecture based on SOA to stimulate publishing, discovering, and hosting Services on nearby mobiles, which reduces long WAN latency and creates a business opportunity that encourages mobile owners to embrace Service hosting. Group of mobile phones simulate a nearby cloud computing platform. We create new role of Service host by enabling unskilled mobile owners/users to host Services developed by skilled developers. Evidently, Service availability, reliability, and Service-oriented mobile application portability will increase towards green ubiquitous computing in our mobile cloud infrastructure. © 2012 IEEE.','',1,'Abolfazli S., Sanaei Z., Shiraz M., Gani A.','scopus/service oriented architecture security.csv','scopus',''),(681,'Event-cloud platform to support decision-making in emergency management','2015','1',' Emergency management Cloud-computing Complex-event processing Service-oriented architecture Business process modeling Decision-making support','Abstract The challenge of this paper is to underline the capability of an Event-Cloud Platform to support efficiently an emergency situation. We chose to focus on a nuclear crisis use case. The proposed approach consists in modeling the business processes of crisis response on the one hand, and in supporting the orchestration and execution of these processes by using an Event-Cloud Platform on the other hand. This paper shows how the use of Event-Cloud techniques can support crisis management stakeholders by automatizing non-value added tasks and by directing decision-makers on what really requires their capabilities of choice. If Event-Cloud technology is a very interesting and topical subject, very few research works have considered this to improve emergency management. This paper tries to fill this gap by considering and applying these technologies on a nuclear crisis use-case.','Information Systems Frontiers',1,'Matthieu LaurasFrédérick BenabenSébastien TruptilAurélie Charles','springer/service oriented architecture security.csv','springer',''),(682,'From consumer requirements to policies in secure services','2014','','BPMN; Consumer policy; Requirements; Security; Service composition; Transformation','Automatic translation of elicited consumer security requirements at high level (problem space) into application or service level security requirements (solution space) has been traditionally the Achilles’ heel of security requirements engineering. Such automated translation would result in significant failure and cost reduction in application development and maintenance, particularly in those complex applications based on compositions and choreographies of services. In this paper we present a framework which makes a step forward to solve this dilemma. The framework supports the engineering of composite service security and trust requirements directly derived from the organisational needs expressed for such service. The followed approach starts with the modelling of organisation actors’ objectives and commitments among these actors, and follows with the transformation of such commitments into security elements in the service business process specification and into a consumer security policy which the service will need to be compliant with. © Springer International Publishing Switzerland 2014.','',2,'Rios E., Malmignati F., Iturbe E., D’Errico M., Salnitri M.','scopus/bpmn security.csv','scopus',''),(683,'SMURF: Supporting Multi-tenancy Using Re-aspects Framework','2012','0','Cloud Computing;Multi-tenancy Engineering;Multi-tenancy Reengineering;Re-Aspects;Software-as-a-Service','Software-as-a-service multi-tenancy helps service providers to cut cost, improve resource utilization, and reduce service customization and maintenance time as the tenants share the same service instance. However, existing large-scale business applications inherently do not support multi-tenancy. This hinders these applications\' vendors from adopting the cloud model. Thus reengineering such applications to support multi-tenancy has become a key requirement. Reengineering such applications to support multi-tenancy is a complex and challenging task as it requires a deep understanding of the given application and almost all system modules need to be revisited. In this paper we introduce SMURF, Supporting Multi-tenancy Using Reengineering Aspects \"Re-Aspect\" Framework, to help service providers reengineering their legacy applications to support multi-tenancy. SMURF is based on our new re-aspects concept where a given system modification to disable, modify, replace or inject code is encapsulated in a re-aspect. SMURF realizes given system modifications (captured as re-aspects) by automating both change impact analysis and change propagation processes. We analyze the SaaS multi-tenancy pattern, discuss the set of requirements to migrate a single-tenant application to support multi-tenancy, describe SMURF approach, architecture and implementation details, and present our experimental results of SMURF on a set of open source web applications.','Engineering of Complex Computer Systems (ICECCS), 2012 17th International Conference on',1,'M. Almorsy; J. Grundy; A. S. Ibrahim','ieee/service oriented architecture security.csv','ieee','\0'),(684,'Quantitative trust management to support QoS-aware service selection in service-oriented environments','2013','1','Quality of services; Service selection; Service-oriented architecture; Trust management; Web services','Owing to the black-box nature of services, selecting a trustworthy service that best fits users\' requirements is greatly critical in service-oriented computing. Once a set of services fulfilling users\' functional requirements are founded, one of these services invoked by the users depends mostly on the Quality of Services (QoS), particularly security, trust, and reputation. This paper proposes a trust management model to support service discovery and selection based on QoS. We define a quantitative trust evaluating method for dynamic service discovery and selection. The proposed model makes service consumers get trustworthy services possible. Our mechanism uses consumers\' feedback to describe the trust degree of services and service providers. The service selection using the quantitative measurement rather than consumers\' intuition allows selecting a highly reliable service accomplishing their quality requirements well. Finally, we give experimental results. © 2013 IEEE.','',1,'Kim Y., Doh K.-G.','scopus/service oriented architecture security.csv','scopus','\0'),(685,'Time and Cost Aware Checkpointing of Choreographed Web Services','2015','0',' Web services choreography checkpointing QoS','Abstract Complex business processes can be realized by composing two or more web services into a composite web service. Due to the widespread reachability of Internet, more and more web services are becoming available to the consumers. Quality aware consumers look for resilience in services provisioned on Internet. This paper proposes message logging based checkpointing and recovery for web services to make them resilient to faults. It presents an algorithm that checkpoints services participating in a choreography in such a way that the execution time and cost of service constraints are always met. It identifies checkpoint locations by considering the costs involved in checkpointing, message logging and replaying for service recovery. The cost estimation is carried out using service interaction patterns and QoS values of the services involved. Performance of the proposed checkpointing strategy is corroborated with the results obtained from experiments.','',2,'Vani Vathsala AtluriHrushikesha Mohanty','springer/bpel security.csv','springer',''),(686,'BSWB: To Construct Sound Workflow Model','2011','0','business process;workflow modeling;workflow pattern;workflow soundness;workflow specification','With the development of workflow technology and the mature of corresponding modeling tools, more and more enterprise businesses are processed by workflow system. Although so many model methods, such as WF-net, Petrinet, BPMN and SCXML, etc., are proposed, it is a difficult task to guarantee the soundness property of workflow model. Generally, this problem is handled by soundness analysis after the design of workflow models. In this paper, a new method BUM (bottom-up model), which based on BSWB (Basic Sound Workflow Block), is proposed. Rather than analysis the soundness of workflow specification after the model is built, BSWB uses sound workflow blocks to construct workflow model. Thus, the soundness property can be guaranteed. Additionally, BSWB can construct workflow specification in different abstract levels which is very useful for understanding and maintaining workflow systems. With this method, workflow systems can be designed and maintained flexibly and economically.','2011 Third International Conference on Multimedia Information Networking and Security',2,'H. An; Y. Xu; Z. Ma; L. Liu; X. Chen','ieee/bpmn security.csv','ieee','\0'),(687,'Extending Net-Centricity to Coalition Operations','2013','1','coalition information sharing;distributed applications;service-oriented architectures','To bring the advantages of network-centric warfare to coalition warfighting, we must significantly improve our ability to quickly share critical information while still satisfying security requirements. Here, the authors explore a services-based approach to such information management.','IEEE Intelligent Systems',1,'N. Suri; A. Uszok; R. Lenzi; M. Breedy; J. M. Bradshaw; Y. Fu; J. Hanna; V. T. Combs; A. Sinclair; R. Grant','ieee/service oriented architecture security.csv','ieee','\0'),(688,'Detecting Vulnerabilities in Service Oriented Architectures','2012','0','SOA;benchmarking;security;vulnerabilities;vulnerability detection;web services','The adoption of Service Oriented Architectures (SOAs) in a wide range of organizations, including business-critical systems, opens the door to new security challenges. Although the services used should be secure and reliable, they are often deployed with security bugs that can be maliciously exploited. The problem is that developers are frequently not specialized on security and the common time-to-market constraints limits an in depth test for vulnerabilities. Additionally, research and practice shows that the effectiveness of existing vulnerability detection tools is very poor. The goal of this work is to advance the state-of-the-art by investigating new techniques and tools to effectively detect vulnerabilities in SOAs in an automated manner. Instrumental in this work is to propose a benchmarking approach that allows assessing and comparing vulnerability detection tools, thus helping guiding tools development and improvement, and allowing users to select the most effective ones according to specific needs.','Software Reliability Engineering Workshops (ISSREW), 2012 IEEE 23rd International Symposium on',1,'N. Antunes; M. Vieira','ieee/service oriented architecture security.csv','ieee','\0'),(689,'Processes View Modeling of Identity-related Privacy Business Interoperability: Considering User-Supremacy Federated Identity Technical Model and Identity Contract Negotiation','2012','0','Federated identity;privacy processes;user-centric;user-supremacy','Federated identity is a distributed system that is deployed across multiple parties. Service providers still hold the absolute power over people identities. So, identity-related privacy is considered as a mean to entrench subjects\' control over identities and foster trust among multiple involved parties. Thus, identity-related privacy should interoperable, which can be guaranteed through the capture of requirements from different polices related to identity. In this article, we provide and explain a BPMN processes view of the requirements allowing them to be ready to-implement, clear, easy to-understand by each party wishing to collaborate within or across federated identity systems. We highlight that present-day practitioners should be able to translate requirements with user-supremacy federated identity technical model concepts into a set of rules and take into consideration details of identity contract negotiation in order to successfully deliver processes view. BPMN collaboration and choreography diagrams are used to describe seven processes and a sub-process, which would provide a useful way to gain alignment between requirements and IT.','Advances in Social Networks Analysis and Mining (ASONAM), 2012 IEEE/ACM International Conference on',2,'G. B. Ayed; S. Ghernaouti-Hélie','ieee/bpmn security.csv','ieee','\0'),(690,'SEWSEC: A Secure Web Service Composer using Information Flow Control','2011','1','Dependence Graphs;Information Flow control;Secure Web Service Composition','In this paper, we describe SEWSEC, a Secure Web Service Composer that assists the system designer to secure his composed Web Services. The system designer can use standard tools like BPEL to compose services and configures the security of some exchanged data and internal resources. By abstracting the system to a hierarchy of dependence graphs, SEWSEC applies an Information Flow Control verifying that the configuration ensures an end-to-end security. In case of insecure configuration, SEWSEC helps the designer to modify it and the security code is generated. A use case study on a real system illustrates SEWSEC practical usage, its interoperability with web services standards and its acceptable performance.','2011 6th International Conference on Risks and Security of Internet and Systems (CRiSIS)',2,'H. Zorgati; T. Abdellatif','ieee/bpel security.csv','ieee','\0'),(691,'An open virtual multi-services networking architecture for the future internet','2015','0',' Network virtualization Future Internet Service-oriented architecture Virtual routing Vyatta','Abstract Network virtualization is considered as a promising way to overcome the limitations and fight the gradual ossification of the current Internet infrastructure. The network virtualization concept consists in the dynamic creation of several co-existing logical network instances (or virtual networks) over a shared physical network infrastructure. We have previously proposed a service-oriented hierarchical business model for virtual networking environments. This model promotes the idea of network as a service, by considering the functionalities offered by different types of network resources as services of different levels – services that can be dynamically discovered, used, and composed. In this paper, we propose an open, virtual, multi-services networking architecture enabling the realization of our business model. We also demonstrate the operation of our architecture using a virtualized QoS-enabled VoIP scenario. Moreover, virtual routing and control level performance was evaluated using proof-of-concept prototyping. Several important findings were made in the course of this work; one is that service-oriented concepts can be used to build open, flexible, and collaborative virtual networking environments. Another finding is that some of the existing open source virtual routing solutions such as Vyatta are only suitable for building small to medium size virtual networking infrastructures.','Journal of Internet Services and Applications',1,'May El BarachiNadjia KaraSleiman RabahMathieu Forgues','springer/service oriented architecture security.csv','springer',''),(692,'A Service Delivery Framework to Support Opportunistic Collaborations','2013','1',' opportunistic collaborations services collaboration model-driven engineering Cloud platform','Abstract The wide spread use of computing devices, such as smart phones, cameras, and sensors results in abundance of available information. When such information flows occur in a specific place, at a certain time, and with the participating entities working together or sharing information to achieve common goals, we refer to the outcome of an opportunistic collaboration. In this paper we define and analyse this new collaboration domain and present a framework through which opportunistic collaboration services can be provisioned. We describe in detail the processes that the framework supports, including the modeling of opportunistic collaborations, the collaboration service creation, and the participation management. We evaluate the framework through a use case scenario in the context of participatory journalism in high-profile news events.','',2,'Gregory KatsarosErik WitternBirgit GrayStefan Tai','springer/bpmn security.csv','springer','\0'),(693,'An adaptive agent-based system for deregulated smart grids','2016','0',' Agents Smart grid Energy market','Abstract The power grid is undergoing a major change due mainly to the increased penetration of renewables and novel digital instruments in the hands of the end users that help to monitor and shift their loads. Such transformation is only possible with the coupling of an information and communication technology infrastructure to the existing power distribution grid. Given the scale and the interoperability requirements of such future system, service-oriented architectures (SOAs) are seen as one of the reference models and are considered already in many of the proposed standards for the smart grid (e.g., IEC-62325 and OASIS eMIX). Beyond the technical issues of what the service-oriented architectures of the smart grid will look like, there is a pressing question about what the added value for the end user could be. Clearly, the operators need to guarantee availability and security of supply, but why should the end users care? In this paper, we explore a scenario in which the end users can both consume and produce small quantities of energy and can trade these quantities in an open and deregulated market. For the trading, they delegate software agents that can fully interoperate and interact with one another thus taking advantage of the SOA. In particular, the agents have strategies, inspired from game theory, to take advantage of a service-oriented smart grid market and give profit to their delegators, while implicitly helping balancing the power grid. The proposal is implemented with simulated agents and interaction with existing Web services. To show the advantage of the agent with strategies, we compare our approach with the “base” agent one by means of simulations, highlighting the advantages of the proposal.','Service Oriented Computing and Applications',1,'Nicola CapodieciGiuliano Andrea PaganiGiacomo CabriMarco Aiello','springer/soa security.csv','springer',''),(694,'Design and implementation of police comprehensive information platform based on SOA','2012','0','Service Oriented Architecture (SOA);Web services;comprehensive information platform;information sharing;requestservice platform','Aiming at the problems of traditional mode of information construction and according to the demands of public security business, this paper firstly introduce the principle of Service Oriented Architecture (SOA) framework, and put forward the system structure of request-service platform. Base on SOA framework, the request-service platform which supporting software function loosely coupled can meet the needs of information sharing in the public security business. To resolve the problems of heterogeneous system compatibility and interoperability, this paper also design and preliminarily realized the building of police comprehensive information platform based on SOA framework.','2012 7th IEEE Conference on Industrial Electronics and Applications (ICIEA)',1,'J. Hu','ieee/service oriented architecture security.csv','ieee','\0'),(695,'Designing, formalizing, and evaluating a flexible architecture for integrated service delivery: combining event-driven and service-oriented architectures','2012','4',' Design science EDSOA Integrated service delivery Public/private service network Web services','Abstract An influx of service providers collaborate in networks to meet their clients’ demands. Integrated service delivery (ISD) is a way to let networked service providers offer services to their clients by bundling selected services offered by each provider so that clients do not have to deal with each single provider anymore. Designing such a network is a complicated endeavor as independent organizations need to collaborate and should understand how their activities are dependent on each other. Communication of events is necessary to deal with unpredictable and complex processes in such a network. In contrast with conventional event-driven architecture and service-oriented architecture (SOA) approaches, the hybrid model of event-driven interactions and SOA offers the required flexibility to realize ISD. This flexibility is realized by integrating not only services but also the processes of the different service providers to supply such services. A design science approach has been applied resulting in a detailed and formalized design of an event-driven service-oriented architecture (EDSOA). The EDSOA has been illustrated to show how ISD is realized with support of the architecture in a scenario concerning an application for a temporary residence permit by an immigrant. An evaluative workshop has been conducted which reflected that the following criteria are most important for successful organizational adoption of the EDSOA: expected usefulness, fit with organizational standards, use of trusted technology, and ease of maintenance.','Service Oriented Computing and Applications',2,'Sietse OverbeekMarijn JanssenPatrick van Bommel','springer/bpel security.csv','springer','\0'),(696,'An Integrated Approach for Identity and Access Management in a SOA Context','2011','9','SAML, SOAP, WS-BPEL, WSsecurity, identity and access management','Proceedings of the 16th ACM Symposium on Access Control Models and Technologies','',2,'Waldemar Hummer and Patrick Gaubatz and Mark Strembeck and Uwe Zdun and Schahram Dustdar','acm/bpel security.csv','acm','\0'),(697,'Towards a Service Friendly Cloud Ecosystem','2012','4','cloud governance;cloud management;platform-as-a-service;service lifecycle','After the large penetration of Cloud Computing, more and more developers are taking into account migrating their applications to the Cloud, in order to take advantage of the characteristics of this new environment. In close relation with application migration, an increasing number of development and execution platforms, delivered as PaaS solutions (such as mOSAIC, 4CaaSt, Cloud Foundry, Open Shift, Stackato, and others) are offering their services for development, deployment, and execution of applications that are using in an optimum manner the five characteristics of the Cloud. Following this massive migration of applications, especially from SOA, to Cloud environments, new requirements for application development could be identified in order to enable the construction of complex solutions, and to exploit a business level on the top of various *-as-a-Service layers. The introduction of a centralized component, the Cloud Governance, is necessary in order to enable the development of complex cloud ecosystems. This centralized component is extending, complementing, completing and integrating core features from the PaaS layer, like monitoring, provisioning, negotiation, and others, and integrate features of various Cloud management solutions.','2012 11th International Symposium on Parallel and Distributed Computing',1,'T. F. Fortis; V. I. Munteanu; V. Negru','ieee/soa security.csv','ieee','\0'),(698,'Business Driven BCM SLA Translation for Service Oriented Systems','2012','0','','Abstract A Business Continuity Management (BCM) Impact Analysis derives business-level BCM SLAs which need to be translated at IT-level, infrastructure-level and facility-level services. However, translation of SLAs across a service oriented system is not an easy task. In this patent we present a new Petri-Net based procedure to define and to translate BCM SLAs for service oriented systems. As a result of our approach we are able to introduce a BCM SLA classification schema. We will describe our approach in the context of a use-case.','',1,'Ulrich WinklerWasif GilaniAlan Marshall','springer/service oriented architecture security.csv','springer','\0'),(699,'A Linked Data Framework for Android','2015','0','','Abstract Mobile devices are becoming major repositories of personal information. Still, they do not provide a uniform manner to deal with data from both inside and outside the device. Linked data provides a uniform interface to access structured interconnected data over the web. Hence, exposing mobile phone information as linked data would improve the usability of such information. We present an API that provides data access in RDF, both within mobile devices and from the outside world. This API is based on the Android content provider API which is designed to share data across Android applications. Moreover, it introduces a transparent URI dereferencing scheme, exposing content outside of the device. As a consequence, any application may access data as linked data without any a priori knowledge of the data source.','',1,'Maria-Elena RoşoiuJérôme DavidJérôme Euzenat','springer/service oriented architecture security.csv','springer',''),(700,'Analysing Impact of Scalability and Heterogeneity on the Performance of Federated Cloud Security','2012','0','Cloud computing;performance parameters;security architecture','Nowadays, the notion of virtualization infrastructures is making significant headway in the computing landscape. The business-push to these infrastructures stemming from the Cloud computing paradigm resulted in a more sophisticated concept of rent-a-technology that enabled a series of new-networked business models. This emerging digital globalization has not only raised the legal stakes and ownership concerns; but also highlight the need of providing effective security solutions. These security solutions should be able to scale the application requirements without undue performance and quality overheads to ensure security and privacy of data in the federated Cloud deployments. This paper presents a formal way of testing the impact of scalability and heterogeneity on the federated Cloud security services. The work presented in this paper aims to develop a mean of quantifying the impact on security functions under various operating conditions and parameters of federated Cloud deployments. The results of this work will help businesses to identify the best security architecture that will fit their Cloud architectures and performance requirements.','2012 IEEE 11th International Conference on Trust, Security and Privacy in Computing and Communications',1,'S. Naqvi; A. Michot; M. Van de Borne','ieee/service oriented architecture security.csv','ieee','\0'),(701,'XML Signature Wrapping Angriffe wirksam unterbinden','2012','0','','','Datenschutz und Datensicherheit - DuD',1,'Meiko JensenHolger JunkerLuigi Lo IaconoChristian MainkaJörg Schwenk','springer/soa security.csv','springer','\0'),(702,'Workshop on the Application of Security and Testing to Rich Internet Applications','2015','0','','Web applications and service-oriented architectures represent an increasing part of modern software, and use more advanced techniques such as Ajax and HTML5, CCS3, JavaScript, AJAX, websockets and Client-side data. These new applications, sometimes called \"Rich Internet Applications\" (RIAs), are now being used routinely, either directly or deployed as cloud services. In addition, more and more of these applications and services are accessed from mobile devices; meanwhile, wireless connected devices rapidly grow in number to connect to the \"Internet-of-things\".','',1,'Guy-Vincent Jourdan and Gregor Bochmann and Ettore Merlo and James Miller and Vio Onut and Lin Tan','acm/service oriented architecture security.csv','acm',''),(703,'Challenges for Migrating to the Service Cloud Paradigm: An Agile Perspective','2013','0',' Agile Software Development Software Migration Software Modernization Cloud Computing Service-Oriented Architecture','Abstract Migrating to the Service Cloud Paradigm implies the migration of legacy software systems to a service-oriented architecture with deployment in the cloud. Although this specific software modernization paradigm promises numerous strategic and operational advantages, it poses also many complex organizational and technical challenges, among which is the lack of mature processes, methods and techniques. This paper examines the questions of whether agile methods and techniques could be scaled to fit the migration to the Service Cloud Paradigm and how they could help overcoming the challenges of software modernization in this specific context. The research methodology presented here first extracts the challenges of the migration to Service Cloud Paradigm through a systematic literature review and then, using expert judgment, evaluates how different agile techniques, taken from Scrum and Extreme Programming (XP), could address the identified challenges. As a result, a ranked list of applicable agile techniques is presented and suggestions for their adoption in software modernization projects are drawn.','',1,'Stavros StavruIva KrastevaSylvia Ilieva','springer/service oriented architecture security.csv','springer','\0'),(704,'Information Security Risk Management in a World of Services','2013','0','ISO/IEC 27005;SOA;cloud;controllability;information security;risk management;web services','Service Oriented Architectures (SOA) offer new opportunities for the interconnection of systems. However, for a company, opening its Information System to the \"world\" is not insignificant in terms of security. Whether to use available services or provide its own services, new technologies have introduced new vulnerabilities and therefore new risks. Our work aims to propose an approach for risk management which is based on the ISO/IEC 27005:2011 standard: we propose a development of this standard (by an extension of Annex D) so that it can fully take into account the type \"service\" as web services and cloud services. Indeed, a world of services is not limited to link interconnected systems, it is more a relationship between customer and supplier, where notions of trust, accountability, trace ability and governance are developed. Following this study we introduce a new security criterion, controllability, to ensure that a company keeps control of its information even if it uses such outsourced services.','Social Computing (SocialCom), 2013 International Conference on',1,'V. Lalanne; M. Munier; A. Gabillon','ieee/service oriented architecture security.csv','ieee','\0'),(705,'2012 1st International Workshop on Software Engineering Challenges for the Smart Grid, SE-SmartGrids 2012 - Proceedings','2012','','','The proceedings contain 11 papers. The topics discussed include: OPC unified architecture: a service-oriented architecture for smart grids; establishing a smart grid node architecture and demonstrator in an office environment using the SOA approach; towards a modular and scalable architecture for high-level smart grid applications; challenges on software defect analysis in smart grid applications; a common analysis framework for smart distribution networks applied to survivability analysis of distribution automation; dynamic forecasting and adaptation for demand optimization in the smart grid; initial survey of smart grid activities in the Norwegian energy sector - use cases, industrial challenges and implications for research; GridOPTICS(TM): a design for plug-and-play smart grid software architecture; software models for smart grid; adaptive security and privacy in smart grids: a software engineering vision; and applying formal software engineering techniques to smart grids.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus','\0'),(706,'Tree Based Domain-Specific Mapping Languages','2012','0',' mappings domain-specific languages UML model transformation languages','Abstract Model transformation languages have been mainly used by researchers – the software engineering industry has not yet widely accepted the model driven software development (MDSD). One of the main reasons is the complexity of metamodelling principles the developers are required to know to actually use model transformations in the way the OMG has stated. We offer the basic principles how to create domain-specific model transformation languages which can be used by developers relying only on familiar modelling concepts. We propose to use simple graphical mappings to specify the correspondence between source and target models which are represented using trees based on the concrete syntax of underlying modelling languages. If such principles were followed, then the range of potential users of model transformation languages would increase significantly.','',2,'Elina KalninaAudris KalninsAgris SostaksEdgars CelmsJanis Iraids','springer/bpel security.csv','springer','\0'),(707,'Tailoring Agile in the Large: Experience and Reflections from a Large-Scale Agile Software Development Project','2016','0',' Large-scale agile software development Method tailoring Software development practices','Abstract It is not surprising that agile methods are tailored or customized in various contexts and projects. However, there is little advice for practitioners for how to go about tailoring agile methods in large-scale projects. Henceforth, the aim of this experience report is to highlight some of the challenges with large-scale agile software development and especially how to deal with these challenges involves continuous tailoring of the agile method in use. In so doing, we report from a large-scale agile software development effort involving more than 120 participants in a Governmental organization and running for 3,5 years. The project consisted of three deliverables, partly developed in parallel after a delivery model based on Scrum. After a much troubled start related to scaling challenges and architecture complexity during the first deliverable, the project was turnaround and the second and third deliverables were portrayed fairly successful by both supplier and customer. From a practitioner’s perspective, we found that novel practices emerged through out the project that improved the way of working – especially across teams and stakeholders. Based on this, we describe some guidelines for tailoring agile in the large.','',1,'Knut H. RollandVidar MikkelsenAlexander Næss','springer/service oriented architecture security.csv','springer',''),(708,'Autonomous Sensor Network Architecture Model','2012','1',' role based wireless sensor networks sensors sensor architecture model maintenance free sensor networks dynamic sensor network environment','Abstract To implement a maintenance free and reliable sensor network is necessary in complex sensor systems nowadays. There are studies, which can control developers, who want to build an autonomous sensor network in a dynamically changing environment. The existing solutions have several drawbacks because of the diversity and complexity of the wireless type sensor networks. This paper introduces a sensor network architecture model, which is a good base to implement a simulation environment for the systems before implementing them. The introduced features make the possibility to fine-tune the operational parameters during the planning phase. In this way, the presented sensor network architecture is working based on the presented roles to provide its services.','',1,'András TóthFerenc Vajda','springer/service oriented architecture security.csv','springer','\0'),(709,'TACSA: A web-service based system for coastal surveillance and situational awareness','2015','','SOA framework;homeland security;maritime surveillance;web service','In this paper we present the design aspects of TACSA, a web-service based system for maritime situational awareness regarding coastal surveillance, marine traffic supervision, illegal activities detection, and so forth. TACSA is implemented on the basis of service oriented architecture (SOA). Its software codes are process centric with most of them coming from the reuse of existing programs in conjunction with wrapping of interfaces in compliance with the open standards of web service. A prototype TACSA containing four service tiers is experimentally built. Each service tier, in turn consists of several service components towards different applications in maritime domain. An in-house test with real time observation data taken from surveillance sensors is carried out and the test results demonstrate the effectiveness of this system.','Security Technology (ICCST), 2015 International Carnahan Conference on',1,'Y. M. Dai; K. S. Liu','ieee/service oriented architecture security.csv','ieee',''),(710,'Profit-Maximizing Trustworthiness Level of Composite Systems','2015','0',' Trustworthiness management Trust management Optimal strategies Trust Trust computational model Run-time Composite systems Economics of security','Abstract Service providers face the ever-increasing problem of meeting customer expectations while maximizing profits. This optimal balance is very important for delivering better service quality to users and keeping costs under control through efficient resource allocation. In this paper we suggest optimal strategies for managing system trustworthiness in two different contexts. In the first one the provider has limited information about the users’ trustworthiness preferences, which have to be satisfied on every transaction. In the second context, the provider knows what the effect of possible outcomes on customer’s trust level and, given that the customer will perform a certain number of transactions, would like to know whether the system trustworthiness should be managed at any point in time in order to meet customer’s expectations in a cost-effective way. The optimality of the proposed strategies is demonstrated via both analytical techniques and simulations.','',1,'Costas KalogirosMichalis KanakakisShenja van der GraafWim Vanobberghen','springer/service oriented architecture security.csv','springer',''),(711,'Supporting Requirements Elicitation Practices','2013','0',' Requirements elicitation practices social software','Abstract In this paper, we examine the practices in requirements elicitation activities from the perspective of a developer of software projects. By doing so, we want to contribute to a better understanding of how the main activities between stakeholders can be supported by IT, particularly social software. We have interviewed six key persons from five different software projects and identified the potential roles of social software to improve in five main activities of requirements elicitation. We present these critical points in the context of the cases and discuss them across the cases.','',1,'Mohd Ilias M. ShuhudAlexander RichterAishah Ahmad','springer/service oriented architecture security.csv','springer','\0'),(712,'Managing End-to-End Security Risks with Fuzzy Logic in Service-Oriented Architectures','2013','0','Fuzzy Logic;Reference Models and Design Method;Risk Management;SOA;Security Management','Service-oriented architectures are increasingly deployed in open, distributed and dynamic environments, which require an end-to-end security awareness security at each phase of the service\'s lifecycle. Moreover, the security should not only focus on services without considering the risks and threats that might be caused by elements from business activities or underlying hardware and software infrastructure. In this paper, we adopt a holistic approach to define a security conceptual model that covers all elements at the business, service and infrastructure levels and guides each phase in a typical design method for service-oriented architectures. Since the information security is subject to uncertain and unforeseen threats, we propose a fuzzy logic decision system that helps identify security risks based on the security conceptual model and select appropriate security measures based on security objectives.','2013 IEEE Ninth World Congress on Services',1,'Y. Badr; S. Banerjee','ieee/service oriented architecture security.csv','ieee','\0'),(713,'Introduction to IWDE 2012','2012','0',' Digital Engineering Virtual Reality Software Engineering System Properties','Abstract Digital Engineering is an emerging trend that brings together different experts to develop new products and processes or to enhance existing ones. Functionalities are often non-visible in the development process. Virtual reality is a promising technology to visualize aspects such as quality, security, or safety. Due to the increasing amount of software that is inherited in products or used to control processes different domain experts have to collaborate with software engineers. With the help of Digital Engineering methods and tools, system properties such as reliability and safety can be early included in the development.','',1,'Veit KöppenGunter Saake','springer/service oriented architecture security.csv','springer','\0'),(714,'Long reach colorless WDM OFDM-PON using direct detection OFDM transmission for downstream and OOK for upstream','2014','1',' Wavelength division multiplexing Orthogonal frequency division multiplexing Passive optical network Downstream Upstream Direct detection','Abstract Here we have proposed a novel architecture of wavelength division multiplexed orthogonal frequency division multiplexing (OFDM)-passive optical network (WDM OFDM-PON) which is capable of transmitting 10 Gbps data both in downstream and upstream directions up to 50 km. Here direct detection OFDM is used for downstream unicast transmission and simple on–off keying data is used for upstream unicast transmission. OFDM eliminates inter-symbol interference through use of a cyclic prefix also provides good protection against co-channel interference and impulsive parasitic noise. Since delay interferometer (DI) acts as a optical equalizer and vestigial sideband filter hence a DI is used at central office for successful transmission of 10 Gbps upstream data up to 50 km using reflective semiconductor optical amplifier at optical network unit (ONU) having bandwidth of 1.5 GHz. Since no extra laser source is used at ONU and downstream data is further used for upstream data modulation so colorless scheme is implemented. Simulation is performed for all downstream and upstream channels having data rate of 10 Gbps with a transmission distance of 50 km having acceptable performance.','Optical and Quantum Electronics',1,'Gaurav PandeyAditya Goel','springer/soa security.csv','springer','\0'),(715,'Detection of REST Patterns and Antipatterns: A Heuristics-Based Approach','2014','1',' REST Antipatterns Patterns Design Heuristics Detection','Abstract REST (REpresentational State Transfer), relying on resources as its architectural unit, is currently a popular architectural choice for building Web-based applications. It is shown that design patterns —good solutions to recurring design problems—improve the design quality and facilitate maintenance and evolution of software systems. Antipatterns , on the other hand, are poor and counter-productive solutions. Therefore, the detection of REST (anti)patterns is essential for improving the maintenance and evolution of RESTful systems. Until now, however, no approach has been proposed. In this paper, we propose SODA-R (Service Oriented Detection for Antipatterns in REST ), a heuristics-based approach to detect (anti)patterns in RESTful systems. We define detection heuristics for eight REST antipatterns and five patterns, and perform their detection on a set of 12 widely-used REST APIs including BestBuy, Facebook, and DropBox. The results show that SODA-R can perform the detection of REST (anti)patterns with high accuracy. We also found that Twitter and DropBox are not well-designed, i.e. , contain more antipatterns. In contrast, Facebook and BestBuy are well-designed, i.e. , contain more patterns and less antipatterns.','',1,'Francis PalmaJohann DuboisNaouel MohaYann-Gaël Guéhéneuc','springer/service oriented architecture security.csv','springer','\0'),(716,'Building Your Own Language Runtime','2015','0','','With the growing prominence of cloud computing, and the trend towards microservice architecture in our industry, there is a growing interest in using the best programming languages for the job. Programming has become more popular and accessible than ever, thanks to the development of languages that are tailored for certain application patterns. Established languages like Java, JavaScript, Ruby, Python, and PHP are heavily used, but new languages like Go, Rust, and Julia have also recently burst on the scene. The right choice of programming language can significantly accelerate the time to deploy an application, and improve an application\'s performance and security.','',1,'Angela Lin','acm/microservice security.CSV','acm',''),(717,'A Comprehensive Model for Provenance','2012','1',' Provenance Accountability Security Workflow Systems','Abstract In this paper, we propose a provenance model able to represent the provenance of any data object captured at any abstraction layer and present an abstract schema of the model. The expressive nature of the model enables a wide range of provenance queries. We also illustrate the utility of our model in real world data processing systems.','',1,'Salmin SultanaElisa Bertino','springer/service oriented architecture security.csv','springer','\0'),(718,'Service Composition Management Using Risk Analysis and Tracking','2012','1',' service management risk management service composition','Abstract How to effectively and efficiently monitor, manage, and adapt web services is becoming a significant issue to address. In this paper, we argue that only solving emerging service faults at deployment time or runtime is not enough; on the contrary, we believe that prediction of service faults is equivalently important. We propose a risk-driven service composition management process including four main phases: preparation, planning, monitoring and reaction, and analysis. By applying the proposed approach, risky component services can be removed earlier, and the fault source can be tracked and identified more easily when any failure occurs. We believe the proposed risk-driven approach can effectively and efficiently ensure the robustness of an SOA-based system.','',2,'Shang-Pin MaChing-Lung Yeh','springer/bpel security.csv','springer','\0'),(719,'Automatic Information Flow Analysis of Business Process Models','2012','2','','Abstract We present an automated and efficient approach for the verification of information flow control for business process models. Building on the concept of Place-based Non-Interference, the novelty is that Petri net reachability is employed to detect places in which information leaks occur. We show that the approach is sound and complete, and present its implementation, the Anica tool. Anica employs state of the art model-checking algorithms to test reachability. An extensive evaluation comprising over 550 industrial process models is carried out and shows that information flow analysis of process models can be done in milliseconds.','',2,'Rafael AccorsiAndreas Lehmann','springer/bpel security.csv','springer','\0'),(720,'A Composable, QoS-Aware and Web Services-Based Execution Model for ebXML BPSS Business Transactions','2010','2','B2Bi;WS-BPEL;choreography;ebXML BPSS;orchestration','Adequate IT support for Business-to-Business integration(B2Bi) is indispensable in today\'s globalized world. Agreement among personnel from different enterprises as well as distributed computing issues are major challenges to the automation of B2Bi processes. These challenges can be addressed by applying the choreography language ebXMLBPSS (ebBP) for declaratively specifying B2Bi processes and using Web services and WS-BPEL as dedicated integration technologies. ebBP Business Transactions (BT) are the primary building block of ebBP choreographies and specify the exchange of up to two business documents in a declarative and technology-agnostic way. Composing BTs within choreographies and realization of QoS raise important requirements for the orchestration layer. This paper investigates these requirements and presents a composable, abstract, flexible and QoS-aware execution model that can be implemented using Web Services and BPEL.','2010 6th World Congress on Services',2,'A. Schöenberger; G. Wirtz; C. Huemer; M. Zapletal','ieee/bpel security.csv','ieee','\0'),(721,'LISA 2.0: lightweight internet of things service bus architecture using node centric networking','2016','0',' LISA IoT Interoperability NoTA NCN Mobility','Abstract Internet of things (IoT) technologies are advancing rapidly and a wide range of physical networking alternatives, communication standards and platforms are introduced. However, due to differences in system requirements and resource constraints in devices, there exist variations in these technologies, standards, and platforms. Consequently, application silos are formed. In contrast to the freedom of choice attained by a range of options, the heterogeneity of the technologies is a critical interoperability challenge faced by IoT systems. Moreover, IoT is also limited to address new requirements that arise due to the nature of the majority of smart devices. These requirements, such as mobility and intermittent availability, are hardly satisfied by the current IoT technologies following the end-to-end model inherited from the Internet. This paper introduces a lightweight, distributed, and embedded service bus called LISA which follows a Node Centric Networking architecture. LISA is designed to provide interoperability for resource-constrained devices in IoT. It also enables a natural way of embracing the new IoT requirements, such as mobility and intermittent availability, through node centric networking. LISA provides a simple application programming interface for developers, hiding the variations in platform, protocol or physical network, thus facilitating interoperability in IoT systems. LISA is inspired by network on terminal architecture (NoTA), a service centric open architecture originated by Nokia Research Center. Our extensive experimental results show the efficiency and scalability of LISA in providing a lightweight interoperability for IoT systems.','Journal of Ambient Intelligence and Humanized Computing',1,'Behailu NegashAmir M. RahmaniTomi WesterlundPasi LiljebergHannu Tenhunen','springer/soa security.csv','springer',''),(722,'A Semantic Scoring Approach for Service Offers','2012','0',' Ontologies Quality of Service (QoS) Semantic Web Service Sourcing','Abstract Automating service selection using semantic approaches have been extensively studied in recent years. In fact, given the big number of provider offers, sourcing of the most relevant service to the client intentions is a complex task especially when providers and customers don’t share the same knowledge degree. In particular, differentiating between very similar offers satisfying the same number of client constraints is still a challenging task. In this paper, we present a novel semantic scoring approach that helps clients to select the most appropriate service offer according to their intentions. Our approach detects direct and indirect semantic correspondences between these intentions and the available offers using ontological models. It fairly evaluates these offers and ranks them according to their semantic closeness to the client intentions taking into account both functional and QoS properties. Our ranking is based on a deep examination of provider offers and can distinguish between services that look the same for non expert clients.','',1,'Ikbel GuidaraKaouthar FakhfakhTarak Chaari','springer/service oriented architecture security.csv','springer','\0'),(723,'An extensibility of THEMIS billing system for the cloud computing environment','2012','0','Records;pricing and resource allocation;transaction processing;verification','With the advent and acceptance of cloud computing the ability to record and account for the usage of cloud resources in a convincing and capricious way has become critical for cloud service providers and users alike. The billing process involves receiving billing records from various networks, determining the billing rates associated with the billing records, calculate the cost for each billing record, aggregating this records periodically to generate invoices, sending invoices to the customer, and collecting payments received from the customer. Traditional billing systems are not enough in terms of security capabilities or computational overhead. In this paper, we propose a secure and no obstructive billing system called THEMIS as a remedy for these limitations. The system uses a novel concept of a cloud notary authority for the supervision of billing. Moreover, to provide a falsification-resistive SLA monitoring mechanism, we devised a SLA monitoring module enhanced with a trusted platform module (TPM), called S-Mon. From the perspective of extensibility, THEMIS is moreover applicable to various target services as well to improve the accountability of each service by applying more monitoring techniques to S-Mon. The overall latency of these systems is shorter and the throughput much higher than the Public key Infrastructure.','2012 Fourth International Conference on Advanced Computing (ICoAC)',1,'T. J. Singh; R. Sugumar','ieee/service oriented architecture security.csv','ieee','\0'),(724,'Color tracking with contextual switching: real-time implementation on CPU','2015','1',' Color tracking Covariance matching Mean-shift tracking Real-time processing SSE SIMD optimization','Abstract The paper proposes contributions for mean-shift (MS) and covariance tracking (CT), and makes these two complementary methods cooperate. While MS runs fast and can handle non-rigid objects represented by their color distribution, CT is more time-consuming but achieves a generic tracking by mixing color and texture information. Each method is modified in order to alleviate their intrinsic limitations, and make the tracking adaptive to a changing context. Concerning MS, the colorspace is changed automatically when necessary to enhance the distinction between the object and the background. Regarding CT, the number of features is reduced without loss of accuracy, by using Local Binary Patterns. Finally, their complementary advantages are exploited in a cooperation process, which runs faster than CT alone, and is more robust than MS alone. A comprehensive study is made for their acceleration and their efficient execution on different multi-core CPUs. A speedup of ×2.8 is reached for MS and ×2.6 for CT.','Journal of Real-Time Image Processing',1,'Florence LaguzetAndres RomeroMichèle GouiffèsLionel LacassagneDaniel Etiemble','springer/soa security.csv','springer',''),(725,'A Developer’s View of Application Servers Interoperability','2012','0',' interoperability SOA Web services heterogeneous systems','Abstract The paper describes analysis of application servers interoperability that considers both the available level of integration and the required level of development complexity. Development complexity ranges from simple GUI operations to changes of undocumented features in configuration files. We verify if an integration can be established on a given level of development complexity, rather than verify if it is objectively feasible. The information indicates whether an integration task can be performed by a non-expert developer, which influences development cost and effort. We focus our work on the Web services standards as leading solutions in service integration. We designed a dedicated test environment that covered Web services based application servers, and helper tools for communication monitoring. We present results and conclusions from performed experimental studies. Detailed results were registered in a web system that supplies descriptions covering specification of application servers, used standards, and configuration options.','',1,'Paweł Lech KaczmarekMichał Nowakowski','springer/service oriented architecture security.csv','springer','\0'),(726,'Bringing Common Criteria Certification to Web Services','2013','1','Security Assurance; Security Ceritifcation; Web Services; Common Criteria','Solutions based on service-oriented architecture are gaining popularity. However a wider adoption, especially for business critical functions, is hampered by the trust deficit that exists between consumers and providers, as consumers are shielded from the service architectures and the operation of the service itself. Security certification can be used as a means to bridge this trust deficit. Common Criteria for Information Technology Evaluation (CC) is a widely recognized and used security certification scheme. However, the CC scheme was tailored to provide assurance for traditional software provisioning models and hence cannot be applied to SOA solutions as is. In this paper, we present the limitations of the CC scheme when applied in SOA, the challenges that must be overcome for its adoption and possible directions through which some of those challenges can be met. In particular, we point out that CC scheme should be extended to allow for dynamic evaluation of deployed systems (which includes the operational environment) and for handling assurance of composite services.','2013 IEEE Ninth World Congress on Services',1,'S. P. Kaluvuri; M. Bezzi; Y. Roudier','ieee/service oriented architecture security.csv','ieee','\0'),(727,'ARM Testimonials','2013','0','','Abstract This chapter shows how the IoT ARM is perceived by the IoT community and how the ARM can be placed in relation to existing IoT related standards and research projects. The first sections of this chapter present reverse mappings of existing standards and platforms to the IoT ARM and the last section of this chapter shows a business case evaluation for an example use case in the healthcare domain.','',2,'Edward HoTobias JacobsStefan MeissnerSonja MeyerMiguel-Angel MonjasAlexander Salinas Segura','springer/bpmn security.csv','springer','\0'),(728,'QoS-aware management of monotonic service orchestrations','2014','0',' Web services QoS Algebra Probabilistic models','Abstract We study QoS-aware management of service orchestrations, specifically for orchestrations having a data-dependent workflow. Our study supports multi-dimensional QoS. To capture uncertainty in performance and QoS, we provide support for probabilistic QoS. Under the above assumptions, orchestrations may be non-monotonic with respect to QoS, meaning that strictly improving the QoS of a service may strictly decrease the end-to-end QoS of the orchestration, an embarrassing feature for QoS-aware management. We study monotonicity and provide sufficient conditions for it. We then propose a comprehensive theory and methodology for monotonic orchestrations. Generic QoS composition rules are developed via a QoS Calculus , also capturing best service binding—service discovery, however, is not within the scope of this work. Monotonicity provides the rationale for a contract-based approach to QoS-aware management. Although function and QoS cannot be separated in the design of complex orchestrations, we show that our framework supports separation of concerns by allowing the development of function and QoS separately and then “weaving” them together to derive the QoS-enhanced orchestration. Our approach is implemented on top of the Orc script language for specifying service orchestrations.','Formal Methods in System Design',2,'Albert BenvenisteClaude JardAjay KattepurSidney RosarioJohn A. Thywissen','springer/bpel security.csv','springer',''),(729,'MCMAS: an open-source model checker for the verification of multi-agent systems','2015','0',' Verification Multi-agent systems Model checking','Abstract We present MCMAS, a model checker for the verification of multi-agent systems. MCMAS supports efficient symbolic techniques for the verification of multi-agent systems against specifications representing temporal, epistemic and strategic properties. We present the underlying semantics of the specification language supported and the algorithms implemented in MCMAS, including its fairness and counterexample generation features. We provide a detailed description of the implementation. We illustrate its use by discussing a number of examples and evaluate its performance by comparing it against other model checkers for multi-agent systems on a common case study.','International Journal on Software Tools for Technology Transfer',2,'Alessio LomuscioHongyang QuFranco Raimondi','springer/bpel security.csv','springer',''),(730,'Communication and Collaboration Service Components for Ubiquitous Communication Applications','2013','1','Converged Service Platform;SOA;collaboration;communication;knowledge sharing;service component','Over the past decades we have undergone a series of significant evolution in the computing and communication technologies and have experienced better quality of life. Among these evolutions, the mobile device technology has changed the life-style of people significantly and made new business opportunities. Especially, the widespread use of smartphones accelerates to make ubiquitous communication world. It is needed to apply new technology to the legacy system rapidly and to introduce new applications to the market based on the new functions quickly. This paper describes the Converged Service Platform which provides a playground of applications for application providers, and introduces service components for a ubiquitous communication and collaboration working environment. The Converged Service Platform is designed to support the process of service delivery mechanism which consists of service creation, service execution, and service management based on the Service-Oriented Architecture. The platform focused on supporting communication and collaboration functionalities in the form of service components to make ubiquitous working environment. The service components utilize various communication means such as e-mail, short message, messengers, wired or wireless telephone call and even social network services, and give knowledge sharing functionalities such as file cloud, wiki and etc.','2013 12th IEEE International Conference on Trust, Security and Privacy in Computing and Communications',1,'K. S. Chung; Y. M. Shin','ieee/service oriented architecture security.csv','ieee','\0'),(731,'A DICOM-based 2nd generation molecular imaging data grid implementing the IHE XDS-i integration profile','2012','2',' Preclinical Molecular imaging Distributed data storage Imaging informatics Data grid IHE XDS-i','Abstract Purpose A Molecular Imaging Data Grid (MIDG) was developed to address current informatics challenges in archival, sharing, search, and distribution of preclinical imaging studies between animal imaging facilities and investigator sites. This manuscript presents a 2nd generation MIDG replacing the Globus Toolkit with a new system architecture that implements the IHE XDS-i integration profile. Implementation and evaluation were conducted using a 3-site interdisciplinary test-bed at the University of Southern California. Methods The 2nd generation MIDG design architecture replaces the initial design’s Globus Toolkit with dedicated web services and XML-based messaging for dedicated management and delivery of multi-modality DICOM imaging datasets. The Cross-enterprise Document Sharing for Imaging (XDS-i) integration profile from the field of enterprise radiology informatics was adopted into the MIDG design because streamlined image registration, management, and distribution dataflow are likewise needed in preclinical imaging informatics systems as in enterprise PACS application. Implementation of the MIDG is demonstrated at the University of Southern California Molecular Imaging Center (MIC) and two other sites with specified hardware, software, and network bandwidth. Results Evaluation of the MIDG involves data upload, download, and fault-tolerance testing scenarios using multi-modality animal imaging datasets collected at the USC Molecular Imaging Center. The upload, download, and fault-tolerance tests of the MIDG were performed multiple times using 12 collected animal study datasets. Upload and download times demonstrated reproducibility and improved real-world performance. Fault-tolerance tests showed that automated failover between Grid Node Servers has minimal impact on normal download times. Conclusions Building upon the 1st generation concepts and experiences, the 2nd generation MIDG system improves accessibility of disparate animal-model molecular imaging datasets to users outside a molecular imaging facility’s LAN using a new architecture, dataflow, and dedicated DICOM-based management web services. Productivity and efficiency of preclinical research for translational sciences investigators has been further streamlined for multi-center study data registration, management, and distribution.','International Journal of Computer Assisted Radiology and Surgery',1,'Jasper LeeJianguo ZhangRyan ParkGrant DagliyanBrent LiuH. K. Huang','springer/soa security.csv','springer','\0'),(732,'Business Process Compliance via Security Validation as a Service','2013','1','Business Process Management;Security;Validation','Modern enterprise systems are often process-based, i.e., they allow for the direct execution of business processes that are specified in a high-level language such as BPMN. In this paper, we present a service, called Security Validation as a Service (SVaaS) for validating the compliance of the business processes during design-time. Basically, while modeling a business process the business analyst specifies as well the security and compliance requirements the business process should comply to. By pressing a button, these requirements are validated and the results are presented in a graphical format to the business analysis. At the core of SVaaS lies a rigorous and industrially viable approach in which the security validation business logic is handled server-side (SVaaS Server) in the Cloud, while the client-side user interface that business analysts use is handled by a light-weight SVaaS Connector. As proof-of-concept we created a SVaaS prototype in which the SVaaS Server is deployed on the SAP NetWeaver Cloud and two SVaaS Connectors are built to enable two well-known BPMN tools, SAP NetWeaver BPM and Activiti, to consume SVaaS against industrial relevant business processes.','2013 IEEE Sixth International Conference on Software Testing, Verification and Validation',2,'L. Compagna; P. Guilleminot; A. D. Brucker','ieee/bpmn security.csv','ieee','\0'),(733,'Towards integrated operations for ships','2013','0','integrated operations;mediation;negotiation;service interoperability;wireless connectivity','Maritime customers will benefit greatly from integrated operations between ship and shore. It requires integrating diverse information services within a variety of communication environments, which is a complex task. The common approach to dealing with complex tasks is to use a divide-and-conquer policy and solve problems independently. Since there are mainly two challenges involved - interoperability among heterogeneous applications and connectivity through difficult maritime networks, to handle them separately has become useful. While interoperability and connectivity solutions work well individually, if we put them together in the maritime context, problems arise. We b services based interoperability solution assumes continuous connectivity to the network, which is usually not available in the maritime environment. Though adapting applications to such network conditions will help, existing implementations are mostly specialized and non-generic. Therefore, negotiation between separate solutions is needed: 1) applications must adapt to different connectivity situations but in a service-oriented manner; 2) networks need to mediate the adaptiveness and follow the service-oriented trend. As a concrete example, we suggest to implement the negotiation via incremental deployment from wrapping existing mediation capabilities as We b services towards a possibly service-oriented network architecture, where mediation mechanisms and communication resources are standard services invoked directly by applications.','2013 9th International Wireless Communications and Mobile Computing Conference (IWCMC)',1,'L. Mu; A. Prinz; F. Reichert','ieee/service oriented architecture security.csv','ieee','\0'),(734,'Editorial to the theme issue on model-driven service engineering','2014','0','','','Software & Systems Modeling',2,'Juan Manuel VaraMike PapazoglouIl-Yeol Song','springer/bpmn security.csv','springer',''),(735,'Migratability of BPMN 2.0 Process Instances','2012','1','','Abstract The migration of running process instances allows for a dynamic distribution of individual business processes at runtime. However, a widely-used standardized process description language and an agreed format for the exchange of process instance data are vital for the applicability of such concept. The newly evolved standard of the Business Process Model and Notation (BPMN 2.0) is currently gaining acceptance in many organizations and is supported by a growing number of process engines. In order to leverage BPMN for the dynamic distribution of business processes, this paper presents an analysis on the migratability of running BPMN process instances. The results include a mapping of BPMN 2.0 control flow elements to an existing migration model and a novel migration concept for process instances which contain BPMN-specific elements such as events, pools and user tasks. In addition, the effort for extending a BPMN process engine is evaluated by a prototype implementation based on the open source Activiti process engine .','',2,'Angineh BarkhordarianFrederik DemuthKristof HamannMinh HoangSonja WeichlerSonja Zaplata','springer/bpel security.csv','springer','\0'),(736,'Querying business process model repositories','2014','4',' Business process model Repository Query','Abstract Business process management technology is becoming increasingly popular, resulting in more and more business process models being created. Hence, there is a need for these business process models to be managed effectively. For effective business process model management, being able to efficiently query large amount of business process models is essential. For example, it is preferable to find a similar or related model to customize, rather than building a new one from scratch. This would not only save time, but would also be less error-prone and more coherent with the existing models of the enterprise. Querying large amounts of business process models efficiently is also vital during company amalgamation, in which business process models from multiple companies need to be examined and integrated. This paper provides: an overview of the field of querying business process models; a summary of its literature; and a list of challenges (and some potential solutions) that have yet to be addressed. In particular, we aim to compare the differences between querying business process models and general graph querying. We also discuss literature work from graph querying research that can be used when querying business process models.','World Wide Web',2,'Jianmin WangTao JinRaymond K. WongLijie Wen','springer/bpel security.csv','springer',''),(737,'Robotic disaster recovery efforts with Ad-Hoc deployable cloud computing','2013','','Ad-hoc cloud computing; Autonomous search and rescue; Service-oriented architecture; Soa 3.0; Web service','Autonomous operations of search and rescue (SaR) robots is an ill posed problem, which is complexified by the dynamic disaster recovery environment. In a typical SaR response scenario, responder robots will require different levels of processing capabilities during various parts of the response effort and will need to utilize multiple algorithms. Placing these capabilities onboard the robot is a mediocre solution that precludes algorithm specific performance optimization and results in mediocre performance. Architecture for an ad-hoc, deployable cloud environment suitable for use in a disaster response scenario is presented. Under this model, each service provider is optimized for the task and maintains a database of situation-relevant information. This service-oriented architecture (SOA 3.0) compliant framework also serves as an example of the efficient use of SOA 3.0 in an actual cloud application. © 2013 SPIE.','',1,'Straub J., Marsh R., Mohammad A.F.','scopus/service oriented architecture security.csv','scopus','\0'),(738,'Analysis of End-to-End SOA Security Protocols with Mobile Devices','2013','0','cloud computing;mobile;security;service-oriented architecture;web services','Service Oriented Architecture (SOA) is an architectural style that provides agility to align technical solutions to a modular business Web Services (WS) that are well decoupled from their consumers. This agility is extended to the Cloud model. To achieve a high level of security and a degree of decoupling, SOA encourages the use of standardized transport schemes such as SOAP/HTTP(s) with WS family of standards specifications (commonly referred to as WS-* (WS-star)) to ease the interoperability complexity and security concerns in enterprise networks, which have medium/high bandwidth and reliable/wired networks. However, these protocol standards are ill suited for mobile devices due to their limited computational capabilities, low bandwidth, and intermittent connectivity. In this paper, we present an analysis of WS-* standards, classifying and discussing their inter-dependencies to provide a basis for determining the limitation of mobile device use in SOA and for establishing an architectural consideration baseline for selecting appropriate security mechanisms.','2013 IEEE 14th International Conference on Mobile Data Management',1,'N. Ahmed; M. Linderman; R. Gamble; B. Bahargava','ieee/service oriented architecture security.csv','ieee','\0'),(739,'GEMBus Based Services Composition Platform for Cloud PaaS','2012','1',' Cloud Platform as a Service Services Composition Composable Services Architecture GEMBus (GEANT Multi-domain Bus) Enterprise Service Bus (ESB)','Abstract Cloud Platform as a Service (PaaS) provides an environment for creating and deploying applications using one of popular development platforms. This paper presents a practical solution for building a service composition platform based on the GEMBus (GEANT Multi-domain Bus) that extends the industry accepted Enterprise Service Bus (ESB) platform with automated services composition functionality and core services to support federated network access to distributed applications and resources, primarily targeted for GEANT research and academic community. The ESB is widely used as a platform for SOA and Web Services based integrated enterprise solutions. However in existing practices ESB design is still based on manual development, configuration and integration. GEMBus with its extended functionality and orientation on distributed resources integration can be considered as a logical choice for creating cloud PaaS services composition and provisioning platform. The paper describes Composable Services Architecture that creates a basis for automated services composition and lifecycle management and explains how this can be implemented with GEMBus. The paper describes the combined GEMBus/ESB testbed and provides an example of the simple services composition.','',2,'Yuri DemchenkoCanh NgoPedro Martínez-JuliaElena TorroglosaMary GrammatikouJordi JofreSteluta GheorghiuJoan A. Garcia-EspinAntonio D. Perez-MoralesCees de Laat','springer/bpel security.csv','springer','\0'),(740,'Using Linked Data for Modeling Secure Distributed Web Applications and Services','2014','0',' Modeling Security Identity Protection Linked Data WebID','Abstract The increasing service orientation of today’s Web applications enables swift reaction on new customer needs by adjusting, extending or replacing parts of the Web application’s architecture. While this allows for an agile response to change, it is inappropriate when it comes to security. Security needs to be treated as a first thought throughout the entire lifecycle of a Web application. The recently proposed WAMplus approach does not only offer an expressive, extensible and easy-to-use way to model a Web application architecture, but also puts a strong emphasis on the security. In this paper we present an exemplary implementation of WAMplus using the Sociddea WebID identity management system known from prior work. There, we show how WebID is used to identify, describe and authenticate Web applications and services while taking their protection through WAC and fine-grained data filters into account.','',1,'Falko BrauneStefan WildMartin Gaedke','springer/service oriented architecture security.csv','springer','\0'),(741,'The Impact of Culture Differences on Cloud Computing Adoption','2014','1',' Cloud Computing National Culture Acceptance ERP','Abstract To cut cost, while increasing competitiveness, more and more small and medium-sized enterprises (SMEs) are considering cloud computing technology for supporting their business processes.However, initial cost, possible long term cost, security, accessibility and transformation issues are concerned by the organizations.  By adopting LEADing Practices and Hofstede [16] national culture dimensions, this study provides substantive conclusions about the transformation effects of national culture dimensions on cloud computing acceptance in organizations.','',1,'Fan ZhaoHans-Jürgen ScheruhnMark von Rosing','springer/service oriented architecture security.csv','springer','\0'),(742,'Semantic text mining support for lignocellulose research','2012','3','','Abstract Background Biofuels produced from biomass are considered to be promising sustainable alternatives to fossil fuels. The conversion of lignocellulose into fermentable sugars for biofuels production requires the use of enzyme cocktails that can efficiently and economically hydrolyze lignocellulosic biomass. As many fungi naturally break down lignocellulose, the identification and characterization of the enzymes involved is a key challenge in the research and development of biomass-derived products and fuels. One approach to meeting this challenge is to mine the rapidly-expanding repertoire of microbial genomes for enzymes with the appropriate catalytic properties. Results Semantic technologies, including natural language processing, ontologies, semantic Web services and Web-based collaboration tools, promise to support users in handling complex data, thereby facilitating knowledge-intensive tasks. An ongoing challenge is to select the appropriate technologies and combine them in a coherent system that brings measurable improvements to the users. We present our ongoing development of a semantic infrastructure in support of genomics-based lignocellulose research. Part of this effort is the automated curation of knowledge from information on fungal enzymes that is available in the literature and genome resources. Conclusions Working closely with fungal biology researchers who manually curate the existing literature, we developed ontological natural language processing pipelines integrated in a Web-based interface to assist them in two main tasks: mining the literature for relevant knowledge, and at the same time providing rich and semantically linked information.','BMC Medical Informatics and Decision Making',1,'Marie-Jean MeursCaitlin MurphyIngo MorgensternGreg ButlerJustin PowlowskiAdrian TsangRené Witte','springer/service oriented architecture security.csv','springer','\0'),(743,'UDP4US: Universal Device Pipe for Ubiquitous Services','2015','','Embedded Systems;Interoperability;Middleware','The growing evolution in the development of embedded systems has raised a numerous amount of distributed applications. Such applications have a strong tendency to integrate various types of existing devices. This trend is aligned with the ideas of ubiquitous computing, which is expected to turn devices increasingly independent of people, making the relationship between technologies more natural and intuitive. The different communication rotocols used by these devices target a specific segment, such as multimedia sharing, electronic security, home automation and healthcare. However, this variety increases the complexity of device integration and represents an obstacle to their development. This paper presents an architecture capable of providing compatible services that can be requested using heterogeneous protocols and is based on the fundamentals of the service-oriented architecture. The central component of this architecture is a middleware capable of abstracting requests of different protocols, facilitating dynamic composition of services distributed in heterogeneous LAN. The proposed architecture is detailed in this article. In addition, several experiments were conducted to evaluate the performance of the proposed middleware, in pursuit of their boundaries and aiming to validate the adopted technologies. As far as we know, our work is the first one that provides interoperation between the DLNA and DPWS technologies.','2015 Brazilian Symposium on Computing Systems Engineering (SBESC)',1,'T. Z. Felisberto; E. D. Tramontin; F. d. C. d. Santos; A. S. Morales; F. Siqueira; G. M. d. Ara��jo','ieee/service oriented architecture security.csv','ieee',''),(744,'Building Web services middleware with predictable execution times','2012','2',' Web services middleware predictability of execution real-time systems earliest deadline first scheduling','Abstract Predictability of execution has seldom been considered important in the design of Web services middleware. However, with the paradigm shift brought by cloud computing and with offerings of Platforms and Infrastructure as services, execution level predictability is mandating an increased importance. Existing Web services middleware are optimised for throughput with unconditional acceptance of requests and execution in a best-effort manner. While achieving perceived levels of throughput, they also result in highly unpredictable execution times. This paper presents a generic set of guidelines, algorithms and software engineering techniques that enable service execution to complete within a given deadline. The proposed algorithms accept requests for execution based on their laxity and executes them to meet requested deadlines. An introduced admission control mechanism results in a large range of laxities, enabling more requests to be scheduled together by phasing out their execution. Specialised development libraries and operating systems empower them with increased control over execution. Two widely used Web services middleware products were enhanced using these techniques. The two systems are compared with their unmodified versions to measure the predictability gain achieved. Empirical evidence confirms that the enhancements made enable these systems to achieve more than 90% of the deadlines under any type of traffic, while the unmodified versions achieve less than 10% of the deadlines in high traffic conditions. Predictability of execution achieved through these techniques, would open up new application areas such as industrial control systems, avionics, robotics and financial trading systems to the use of Web services as a middleware platform.','World Wide Web',1,'Vidura Gamini AbhayaZahir TariPeter Bertok','springer/soa security.csv','springer','\0'),(745,'R&D challenges and solutions for highly complex distributed systems: a middleware perspective','2012','4',' Highly complex distributed systems Middleware Quality of service','Abstract Highly complex distributed systems (HCDSs) are characterized by a large number of mission-critical, heterogeneous inter-dependent subsystems executing concurrently with diverse—often conflicting—quality-of-service (QoS) requirements. Creating, integrating, and assuring these properties in HCDSs is hard and expecting application developers to perform these activities without significant support is unrealistic. As a result, the computing and communication foundation for HCDSs is increasingly based on middleware. This article examines key R&D challenges that impede the ability of researchers and developers to manage HCDS software complexity. For each challenge that must be addressed to support HCDSs, the article surveys the state-of-the-art middleware solutions to these challenges and describes open issues and promising future research directions.','Journal of Internet Services and Applications',1,'Jules WhiteBrian DoughertyRichard SchantzDouglas C. SchmidtAdam PorterAngelo Corsaro','springer/soa security.csv','springer','\0'),(746,'Modelling Sensible Business Processes','2015','0',' Sensible processes Process stories Business process modelling Business process management','Abstract In this paper we develop the concept of sensible business process, which appears in opposition to the more traditional concept of mechanistic business process that is currently supported by most business process modelling languages and tools. A sensible business process is founded on a rich model and affords predominant human control. Having developed a modelling tool supporting this concept, in this paper we report on a set of experiments with the tool. The obtained results show that sensible business processes (1) capture richer information about business processes; (2) contribute to knowledge sharing in organisations; and (3) support better process models.','',2,'David SimõesNguyen Hoang ThuanLalitha JonnavithulaPedro Antunes','springer/bpel security.csv','springer',''),(747,'Architecting Interoperable Privacy within User-Centric Federated Digital Identity Systems: Overview of a Service-Oriented Implementation Framework','2012','1','Digital identity; Implementation framework; Privacy; SOA','With the emergence of service-oriented economy, distributed systems and cloud computing, thus the development of service oriented architecture and the adoption open standards become a mean to assure interoperability. Privacy could play a key role for digital identity protection and security. We suggest an implementation framework, Privacy-as-a-Set-of-Services (PaaSS) framework, which could help information system\'s security team to implement digital identity privacy requirements into a set of services. The framework relays on the idea that digital identity privacy business interoperability should be taken into consideration from the outset of the project in order to be able to provide technical interoperability. Business interoperability is a set of requirements that are drawn from global, domestic and business-specific privacy policies, however, technical interoperability is offered through the adoption of open standards and implementation of a set of services and service\'s interfaces that could accommodate SOA. The framework is in accordance of model-driven architecture (MDA) approach and it is composed of five layers and three mapping gateways. Inter- & intra-layers iterations are consequence of SOA delivery lifecycle and strategies alignment. © Springer-Verlag Berlin Heidelberg 2012.','',1,'Ayed G.B., Ghernaouti-Hélie S.','scopus/service oriented architecture security.csv','scopus','\0'),(748,'Agile Service Oriented Architecture with Adaptive Processes Using Semantically Annotated Workflow Templates','2010','0','BPEL;dynamic binding;run time adaptability','Although WS-BPEL is a widely used language for modeling executable business processes in service oriented architectures it is almost impossible to dynamically bind services at runtime taking complex constraints and optimisation goals into account. The approach presented in this paper uses semantically annotated workflow templates and extensions to introduce adaptability which enables agile service oriented architectures. The technological solution will be validated in a critical infrastructure environment where resilience and security play an important role.','Web Services (ICWS), 2010 IEEE International Conference on',2,'W. Halb; H. Zeiner; B. Jandl; H. Lernbeiß; C. Derler','ieee/bpel security.csv','ieee','\0'),(749,'Reengineering component-based software systems with Archimetrix','2014','0',' Reengineering Reverse engineering Software architecture Component-based software systems Architecture reconstruction Design deficiencies Deficiency detection Code metrics CoCoME','Abstract Many software development, planning, or analysis tasks require an up-to-date software architecture documentation. However, this documentation is often outdated, unavailable, or at least not available as a formal model which analysis tools could use. Reverse engineering methods try to fill this gap. However, as they process the system’s source code, they are easily misled by design deficiencies (e.g., violations of component encapsulation) which leaked into the code during the system’s evolution. Despite the high impact of design deficiencies on the quality of the resulting software architecture models, none of the surveyed related works is able to cope with them during the reverse engineering process. Therefore, we have developed the Archimetrix approach which semiautomatically recovers the system’s concrete architecture in a formal model while simultaneously detecting and removing design deficiencies. We have validated Archimetrix on a case study system and two implementation variants of the CoCoME benchmark system. Results show that the removal of relevant design deficiencies leads to an architecture model which more closely matches the system’s conceptual architecture.','Software & Systems Modeling',1,'Markus von DettenMarie Christin PlateniusSteffen Becker','springer/service oriented architecture security.csv','springer','\0'),(750,'Using Bayesian networks for highly available cloud-based web applications','2015','0',' Model-driven engineering Dependability evaluation Service dependability Cloud resource allocation','Abstract Bayesian networks have demonstrated their capability in several applications spanning from reasoning under uncertainty in artificial intelligence to dependability modelling and analysis. This paper focuses on the use of this language for allocating cloud resources to maximise service dependability. This objective is accomplished by the definition of a model-driven approach able to guide the software engineering to define a cloud infrastructure (applications, services, virtual and concrete resources) using a semi-automated process. This process exploits both high-level languages such as UML as well as Bayesian networks. Using all their features (backward analysis, ease of usage, low analysis time), Bayesian networks are used in this process as a driver for the optimization, learning and estimation phases. The paper discusses all the issues that the application of Bayesian networks in the proposed process arises.','Journal of Reliable Intelligent Environments',2,'Stefano Marrone','springer/bpel security.csv','springer',''),(751,'Neural Network Solution for Intelligent Service Level Agreement in E-Health','2013','0',' Service Oriented Architecture Service Level Agreements e-Health a QoS and Neural Network','Abstract In the next twenty years, service-oriented computing will play an important role in sharing the industry and the way business is conducted and services are delivered and managed. This paradigm is expected to have major impact on service economy; the service sector includes health services (e-health), financial services, government services, etc.With increased dependencies on Information and Communications Technology (ICT) in their realization, major advances are required in user (Quality of Services) QoS based allocation of resources to competing applications in a shared environment provisioning though secure virtual machines. In this paper, we pointed in addressing the problem of enabling Service Level Agreement (SLA) oriented resources allocation in data centers to satisfy competing applications demand for computing services. e-Health offers a QoS Health Report designed to compare performance variables to QoS parameters and indicate when a threshold has been crossed. e-Health graphs relevant performance metrics on the same axes as thresholds indicative of SLAs or equivalent requirements. We suggest a methodology which helps in SLA evaluation and comparison. The methodology was found on the adoption of policies both for service behavior and SLA description and on the definition of a metric function for evaluation and comparison of policies. In addition, this paper contributes a new philosophy to evaluate the agreements between user and service provider by monitoring the measurable and immeasurable qualities to extract the decision by using artificial neural networks (ANN).','',1,'Nada Al SalamiSarmad Al Aloussi','springer/service oriented architecture security.csv','springer','\0'),(752,'Network Visualization Survey','2015','0',' Graph Graph theory Data flow Visualization','Abstract This paper compares modern approaches to draw complex graph data that create create compelling visualizations. Graphs are used to represent more and more complex systems that are used across various scientific domains. Some graph visualizations are used to model network topologies or service architectures in information service fields, model genomes in biomedicine or complex molecules in chemistry. Visualizations of graph data play important role in interpreting the meaning of graphed data. The adage “A picture is worth a thousand words” generally refers to the notion that a complex idea can be conveyed with just a single still image and that is actually the main reason for creating visualisations of any kind. Graph drawings from all domains follow the same rules covered by the graph theory. This work outlines different layout strategies used for drawing graph data. Tested graph drawing layouts are compared by standard quality measures to determine their suitability for various areas of usage.','',1,'Ales KomarekJakub PavlikVladimir Sobeslav','springer/service oriented architecture security.csv','springer',''),(753,'How to adapt applications for the Cloud environment','2013','35',' Cloud migration Application adaptation Cloud-enabled applications Data Layer Business Layer Migration types Mathematics Subject Classification 68M01 68P99','Abstract The migration of existing applications to the Cloud requires adapting them to a new computing paradigm. Existing works have focused on migrating the whole application stack by means of virtualization and deployment on the Cloud, delegating the required adaptation effort to the level of resource management. With the proliferation of Cloud services allowing for more flexibility and better control over the application migration, the migration of individual application layers, or even individual architectural components to the Cloud, becomes possible. Towards this goal, in this work we focus on the challenges and solutions for each layer when migrating different parts of the application to the Cloud. We categorize different migration types and identify the potential impact and adaptation needs for each of these types on the application layers based on an exhaustive survey of the State of the Art. We also investigate various cross-cutting concerns that need to be considered for the migration of the application, and position them with respect to the identified migration types. Finally, we present some of the open research issues in the field and position our future work targeting these research questions.','Computing',2,'Vasilios AndrikopoulosTobias BinzFrank LeymannSteve Strauch','springer/bpel security.csv','springer',''),(754,'Coordinating the web of services for a smart home','2013','9','Internet of things; Service composition; Service-oriented architecture','Domotics, concerned with the realization of intelligent home environments, is a novel field which can highly benefit from solutions inspired by service-oriented principles to enhance the convenience and security of modern home residents. In this work, we present an architecture for a smart home, starting from the lower device interconnectivity level up to the higher application layers that undertake the load of complex functionalities and provide a number of services to end-users. We claim that in order for smart homes to exhibit a genuinely intelligent behavior, the ability to compute compositions of individual devices automatically and dynamically is paramount. To this end, we incorporate into the architecture a composition component that employs artificial intelligence domain-independent planning to generate compositions at runtime, in a constantly evolving environment. We have implemented a fully working prototype that realizes such an architecture, and have evaluated it both in terms of performance as well as from the end-user point of view. The results of the evaluation show that the service-oriented architectural design and the support for dynamic compositions is quite efficient from the technical point of view, and that the system succeeds in satisfying the expectations and objectives of the users. © 2013 ACM.','',1,'Kaldeli E., Warriach E.U., Lazovik A., Aiello M.','scopus/service oriented architecture security.csv','scopus','\0'),(755,'Towards Trustworthy Composite Service Through Business Process Model Verification','2010','0','BPMN;model verification;time Petri nets;time property;trustworthy composite service','The Business Process Modeling Notation (BPMN) is a standard for modeling business processes in the early phases of systems development. Model verification is an important means to guarantee the trustiness of composite services. The verification of model, especially the model with strict time constraints, is a challenge in the field of trust composite services. Whether a model is trustworthy depends not only on the model structure but also on quantitative properties such as time properties. In this paper, we propose a mapping from BPMN to time Petri nets, and use the verification techniques on the basis. The algorithm we present can be used to check the model structure and the time choreography.','Ubiquitous Intelligence & Computing and 7th International Conference on Autonomic & Trusted Computing (UIC/ATC), 2010 7th International Conference on',2,'W. Huai; X. Liu; H. Sun','ieee/bpmn security.csv','ieee','\0'),(756,'Intelligence in Interoperability with AIDA','2012','3',' Semantic Interoperability Ambient Intelligence Electronic Health Record','Abstract Healthcare systems have to be addressed in terms of a wide variety of heterogeneous, distributed and ubiquitous systems speaking different languages, integrating medical equipments and customized by different entities, which in turn were set by different people aiming at different goals. Demands of information within the healthcare sector range from clinically valuable patient-specific information to a variety of aggregation levels for follow-up and statistical and/or quantifiable reporting. The main goal is to gathering this information and present it in a readable way to physicians. In this work we show how to achieve interoperability in healthcare institutions using AIDA, an interoperability platform developed by researchers from the University of Minho and being used in some major Portuguese hospitals.','',1,'Hugo PeixotoManuel SantosAntónio AbelhaJosé Machado','springer/service oriented architecture security.csv','springer','\0'),(757,'Modeling Access Control Transactions in Enterprise Architecture','2014','2','','Enterprise architecture (EA) aims to provide management with appropriate indicators and controls to steer and model service-oriented enterprises. However, the management of EA models change is a challenging task due to complex dependencies when dealing with security constraints such as access control. In this paper, we motivate the use of an access control model in EA. More specifically, we present the role-based access control (RBAC) standard as a mean to model access control transactions in EA. To that end, we present (i) how the concepts of RBAC can be modeled into the Archi Mate enterprise architecture modeling language, and (ii) how RBAC\'s enforcementis supported with the DEMO enterprise modeling methodology via the business transaction concept. These attempts will help us to identify the conceptual link between RBAC, Archi Mate, and DEMO meta models in order to create a consistent lightweight model for access control in EA. Finally, we illustrate the application of the proposed approach through the handling of an e-Government scenario.','2014 IEEE 16th Conference on Business Informatics',1,'K. Gaaloul; S. Guerreiro; H. A. Proper','ieee/service oriented architecture security.csv','ieee','\0'),(758,'Investigation on runtime partitioning of elastic mobile applications for mobile cloud computing','2014','16',' Mobile cloud computing Elastic applications Distributed systems Application offloading','Abstract The latest developments in mobile computing technology have increased the computing capabilities of smartphones in terms of storage capacity, features support such as multimodal connectivity, and support for customized user applications. Mobile devices are, however, still intrinsically limited by low bandwidth, computing power, and battery lifetime. Therefore, the computing power of computational clouds is tapped on demand basis for mitigating resources limitations in mobile devices. Mobile cloud computing (MCC) is believed to be able to leverage cloud application processing services for alleviating the computing limitations of smartphones. In MCC, application offloading is implemented as a significant software level solution for sharing the application processing load of smartphones. The challenging aspect of application offloading frameworks is the resources intensive mechanism of runtime profiling and partitioning of elastic mobile applications, which involves additional computing resources utilization on Smart Mobile Devices (SMDs). This paper investigates the overhead of runtime application partitioning on SMD by analyzing additional resources utilization on SMD in the mechanism of runtime application profiling and partitioning. We evaluate the mechanism of runtime application partitioning on SMDs in the SmartSim simulation environment and validate the overhead of runtime application profiling by running prototype application in the real mobile computing environment. Empirical results indicate that additional computing resources are utilized in runtime application profiling and partitioning. Hence, lightweight alternatives with optimal distributed deployment and management mechanism are mandatory for accessing application processing services of computational clouds.','The Journal of Supercomputing',1,'Muhammad ShirazEjaz AhmedAbdullah GaniQi Han','springer/soa security.csv','springer',''),(759,'Policy modeling and compliance verification in enterprise software systems: A survey','2012','0','Compliance Analysis;Policy Modeling;Service Oriented Systems;Software Engineering','During the past few years we are witnessing a paradigm shift in enterprise computing, from the classic host-based service-oriented architecture pattern, to a more complex or elastic computing pattern that facilitates the provision of on-demand computing resources. This new computing paradigm offers numerous advantages but also, poses significant challenges. Advantages are related to the flexibility service providers have on deploying virtual resources on as-needed-basis, providing thus opportunities for large scale computing capabilities, while limiting the total cost of ownership. However, these benefits come at the cost of the user partially losing control over the deployed resources and the cost managing platforms and applications that are now provisioned at an unprecedented rate and interaction complexity. In order to address the above challenges, a service management and service assurance framework is required, whereby policies should be formally modeled, and consequently be verified against runtime system behavior models. In this paper, we survey a number of policy modeling and policy compliance verification techniques and we propose a corresponding basic taxonomy for these.','2012 IEEE 6th International Workshop on the Maintenance and Evolution of Service-Oriented and Cloud-Based Systems (MESOCA)',1,'G. Chatzikonstantinou; K. Kontogiannis','ieee/service oriented architecture security.csv','ieee','\0'),(760,'Medical equipment maintenance support with service-oriented multi-agent services','2012','','Data mining; Multi-agent systems; Ontologies; Service oriented architectures','Service oriented architectures (SOA) have emerged as an approach to handle the complexity of enterprise interoperability. Recently, multi-agent systems have been promoted as a technique to deal with cooperation issues involved in SOA. This cooperation is particularly important in several application domains, in which different companies are involved in a concrete service deployment. Agents, among other issues, offer the possibility to decide, if more than one option is available, providing flexibility and robustness. In this paper, we describe the agent-based cooperation process we have followed to enable partner\'s cooperation in an equipment maintenance workflow. The use of ontologies and relationships with standards is highlighted. The approach is illustrated in an hospital scenario considered in the AIMES project. © Springer-Verlag Berlin Heidelberg 2012.','',1,'Lopez B., Pla A., Daroca D., Collantes L., Lozano S., Meléndez J.','scopus/service oriented architecture security.csv','scopus','\0'),(761,'Proposition of secure service oriented product line','2015','','secure application engineering; secure domain engineerin; Service Oriented Product Line; Software security','SOPL approach (Service Oriented Product Line) can be used in various domains where SOA based applications are needed such as e/m government, e-business, e-learning and so on. This approach is a combination of Service-Oriented Architecture (SOA) and product line. SOA offers a solution to problems of integration and interoperability between services. But the SOA approach doesn\'t follow a specific reuse approach. In Product Line approach, reuse is systematic with two phases domain engineering and application engineering and offers mechanisms for the management of the variability. Ensure secure services are vital in order to establish trust between users and service providers. In this context, we aim to extend SOPL phases with security activities in order to produce secure service-oriented applications and for such activity we indicate means (methods, tools, etc.) that that allow us to perform security activities that we have introduced. In this work, we propose Secure SOPL: a development process that integrates security in the SOPL process. The originality of our work is on the integration of security in SOPL. Notes that existing works are either oriented to the integration of security in classical development processes or they are oriented enrichment of SPL by security activities but not treat the SOPL approach. © 2015 IEEE.','',1,'Achour I., Labed L., Ben Ghezala H.','scopus/service oriented architecture security.csv','scopus',''),(762,'A case study on consistency management of business and IT process models in banking','2014','1',' Business processes Consistency management Process refinement patterns Empirical study','Abstract Organizations that adopt process modeling often maintain several co-existing models of the same business process. These models target different abstraction levels and stakeholder perspectives. Maintaining consistency among these models has become a major challenge for such organizations. Although several academic works have discussed this challenge, little empirical investigation exists on how people perform process model consistency management in practice. This paper aims to address this lack by presenting an in-depth empirical study of a business-driven engineering process deployed at a large company in the banking sector. We analyzed more than 70 business process models developed by the company, including their change history, with over 1,000 change requests. We also interviewed 9 business and IT practitioners and surveyed 23 such practitioners to understand concrete difficulties in consistency management, the rationales for the specification-to-implementation refinements found in the models, strategies that the practitioners use to detect and fix inconsistencies, and how tools could help with these tasks. Our contribution is a set of eight empirical findings, some of which confirm or contradict previous works on process model consistency management found in the literature. The findings provide empirical evidence of (1) how business process models are created and maintained, including a set of recurrent patterns used to refine business-level process specifications into IT-level models; (2) what types of inconsistencies occur; how they are introduced; and what problems they cause; and (3) what stakeholders expect from tools to support consistency management.','Software & Systems Modeling',2,'Moisés Castelo BrancoYingfei XiongKrzysztof CzarneckiJochen KüsterHagen Völzer','springer/bpel security.csv','springer',''),(763,'Experiences by Using AFFINE for Building Collaborative Applications for Online Communities','2013','1',' Agile Software Process Nonfunctional Requirements Engineering Security and Usability User Experience Scrum AFFINE','Abstract Continuous problems and deficits in developing complex and ever-changing (software) systems led to agile methods, e.g. Scrum. Nevertheless, the problem of considering a plethora of different functional as well as nonfunctional requirements (N/FRs) remains unsolved and gains in importance when engineering state-of-the-art software. The current tide of approaches aims at handling every single NFR by an individual process integrated into Scrum, yielding a process complexity which can not be handled properly. Scrum-based AFFINE was designed explicitly to provide an alternative solution to over-complex design- and development-processes and still considering all kinds of NFRs early enough in the process. In this paper, we discuss collected findings by using AFFINE in various projects dealing with the development of software for user-centered online communities towards some evidence of its suitability.','',1,'Mohamed BourimiDogan Kesdogan','springer/service oriented architecture security.csv','springer','\0'),(764,'Data-Aware Service Choreographies Through Transparent Data Exchange','2016','0',' Service choreographies Transparent data exchange Decentralized data flow Data flow optimization','Abstract Our focus in this paper is on enabling the decoupling of data flow, data exchange and management from the control flow in service compositions and choreographies through novel middleware abstractions and realization. This allows us to perform the data flow of choreographies in a peer-to-peer fashion decoupled from their control flow. Our work is motivated by the increasing importance and business value of data in the fields of business process management, scientific workflows and the Internet of Things, all of which profiting from the recent advances in data science and Big data. Our approach comprises an application life cycle that inherently introduces data exchange and management as a first-class citizen and defines the functions and artifacts necessary for enabling transparent data exchange. Moreover, we present an architecture of the supporting system that contains the Transparent Data Exchange middleware, which enables the data exchange and management on behalf of service choreographies and provides methods for the optimization of the data exchange during their execution.','',2,'Michael HahnDimka KarastoyanovaFrank Leymann','springer/bpel security.csv','springer',''); +INSERT INTO `articles` VALUES (765,'How secure is deterministic encryption?','2015','','','This paper presents three curious findings about deterministic public-key encryption (D-PKE) that further our understanding of its security, in particular because of the contrast with standard, randomized public-key encryption (R-PKE): • It would appear to be a triviality, for any primitive, that security in the standard model implies security in the random-oracle model, and it is certainly true, and easily proven, for R-PKE. For D-PKE it is not clear and depends on details of the definition. In particular we can show it in the non-uniform case but not in the uniform case. • The power of selective-opening attacks (SOA) comes from an adversary’s ability, upon corrupting a sender, to learn not just the message but also the coins used for encryption. For R-PKE, security is achievable. For D-PKE, where there are no coins, one’s first impression may be that SOAs are vacuous and security should be easily achievable. We show instead that SOA-security is impossible, meaning no D-PKE scheme can achieve it. • For R-PKE, single-user security implies multi-user security, but we show that there are D-PKE schemes secure for a single user and insecure with two users. © International Association for Cryptologic Research 2015.','',1,'Bellare M., Dowsley R., Keelveedhi S.','scopus/soa security.csv','scopus',''),(766,'Towards a construction of an intelligent business process based on cloud services and driven by degree of similarity and QoS','2016','1',' Business process construction Knowledge and competence management Similarity degrees Cloud services Quality of service Agent-based cloud services','Abstract Knowledge and competence management in companies focus on resources allocation to business activities, knowledge management approaches promise a positive impact on cost structures. Moreover, with cloud computing and multi-agent systems, we can have a positive impact on business process construction. In fact, cloud computing gives us the ability to perceive resources such as unlimited computer resources. Meanwhile, multi-agent systems provide some degree of independence to achieve specific goals. Nowadays, on the web we can find a significant number of services that provide the same functionality. Hence, business process construction by reusing these services has become a challenging problem. The solution proposed in this paper, can be considerate as an enterprise solution to construct a business process using some competence and knowledge management aspects. Furthermore, the solution is based on cloud computing and agents to discover similar services and classify services according to their similarity degrees and their quality of services.','Information Systems Frontiers',2,'Mohammed Nassim LacheheubPr. Ramdane Maamri','springer/bpel security.csv','springer',''),(767,'Investigate on distribution and scatter of surface residual stress in ultra-high speed grinding','2014','6',' Ultra-high-speed grinding Thermomechanical coupling Scatter Residual stress Fatigue life','Abstract The purpose of this study is to investigate the residual stress induced by ultra-high-speed grinding of difficult-to-machine materials considering the thermomechanical coupling effect that is generated due to the friction between diamond tool and workpiece’s surface. A three-dimensional finite element method taking the rotational motion of tool into account is proposed. The simulation consists of three operations including loading, unloading, and cooling. The influences of different grinding conditions (grinding speed and grinding depth) on the residual stress field are analyzed. Results show that the main grinding force comes from normal rather than tangential direction due to the tool’s negative rake angle and their ratio is in the range of 1.2 to 1.7. The residual stress state on the finished surface is either tensile or compressive depending on various grinding condition; even both states may exist simultaneously. Further study shows that the ultra-high speed grinding can obtain lower surface residual tensile stress comparing with the high-speed grinding. Besides, a larger grinding depth is not advantage for obtaining a better machined quality in subsurface layer as the tensile maximum principal stress is also larger. Finally, the effects of different grinding conditions on residual stress scatters are analyzed utilizing mathematical statistic method. Results show that both smaller grinding depth and higher grinding speed are beneficial to achieve a better consistency of residual stress.','The International Journal of Advanced Manufacturing Technology',1,'Jianbin ChenQihong FangLiangchi Zhang','springer/soa security.csv','springer','\0'),(768,'Dynamic policies for supporting quality of service in service-oriented architecture','2010','0','BPEL;SOA;Security Policy;Web Services;Workflow','This paper describes how to simultaneously support both dynamic policies and separation of concerns when developing an SOA application. We propose the DPSL (dynamic policy specification language) for managing and controlling the QoS according to the dynamic behavior of the workflow in SOA. The operation model is compatible with existing SOA standards, such as the WSDL, WS-Policy, WS-SecurityPolicy, and the BPEL. The implementation and experimental results demonstrate the feasibility of the proposed architecture.','Electronics and Information Engineering (ICEIE), 2010 International Conference On',2,'C. Wu-Lee; G. H. Hwang','ieee/bpel security.csv','ieee','\0'),(769,'Provisioning of Inter-Domain QoS-Aware Services','2015','0',' service provisioning inter-domain QoS service composition','Abstract Cooperation among service providers, network providers, and access providers in the Internet allows the creation of new services to offer to customers that are in other domains, thus increasing revenue. However, the Internet heterogeneous environment, where each provider has its own policies, infrastructure and business goals, hinders the deployment of more advanced communication services. This paper presents a Quality of Service (QoS) for Inter-Domain Services (QIDS) model that allows inter-domain QoS-aware services to be defined, configured, and adapted in a dynamic and on-demand fashion, among service providers. This is accomplished by: 1) the use of a common communication channel (business layer) where service providers publish and search for services, and interact with each other to contract and manage these services; 2) the templates to specify the business and technical characteristics of the services; 3) the automatic composition of services using service elements (smaller services) according to performance and service-specific QoS parameters; and 4) the creation and enforcement of configuration rules for the underlying infrastructure. A prototype was implemented to validate QIDS and performance tests were conducted on an inter-domain Border Gateway Protocol (BGP)/Multiprotocol Label Switching (MPLS) Virtual Private Network (VPN) scenario.','Journal of Computer Science and Technology',1,'Fernando MatosAlexandre MatosPaulo SimõesEdmundo Monteiro','springer/soa security.csv','springer',''),(770,'Building a Flexible Service Architecture for User Controlled Hybrid Clouds','2012','1','Cloud Computing;Federated Cloud;Information Dispersal;Secure Cloud Storage','Virtualization and broadband Internet connections enabled existing technologies to form up under the nebulous term cloud. Cloud computing promises near infinite scalability and cost reduction by pay per use agreements. However for data outsourced to existing cloud solutions - which can be considered synonymous with unknown locations and potentially hostile environments - the security protection objectives can not be guaranteed. We present an approach that enables users to benefit from cloud computing and retain data sovereignty.','Availability, Reliability and Security (ARES), 2012 Seventh International Conference on',1,'A. Strunk; M. Mosch; S. Groß; Y. Thoß; A. Schill','ieee/service oriented architecture security.csv','ieee','\0'),(771,'Test Case Reduction Technique for BPEL-based Testing','2008','2','Business Process Execution Language for Web Services;Reduction Technique;Test Suite','Testing is necessary for evaluating the functional correctness, performance and reliability. The BPEL-based Web service composition having a large number of input parameters and the assigned values of individual parameters, the number of corresponding combination of input parameters is huge. A method needs to be established in order to limit the number of test cases and reduce space- and time-consuming. A reduction technique based on pair-wise combination of input parameters is presented in this paper. Relationship between BPEL (Business Process Execution Language) concepts and HPN (high-level Petri nets) is analyzed. After translation, the equivalent HPN of the Web service composition based on BPEL can be verified on existing mature tool according to the steps to reduce the size of test suite discussed in this paper. The method base on above technique can efficiently limit the number of test cases and reduce space- and time-consuming in theory and in practice.','Electronic Commerce and Security, 2008 International Symposium on',2,'W. Dong','ieee/bpel security.csv','ieee','\0'),(772,'Software Architecture in Distributed Software Development: A Review','2013','0',' Software Architecture Global Software Development Distributed Software Development Knowledge Management','Abstract This paper presents a literature review of distributed software development (DSD) or global software development (GSD) and software architecture. The main focus is to highlight the current researches, observations, as well as practice directions in these areas. The results have been limited to peer-reviewed conference papers and journal articles, and analysis reports that major studies have been performed in software architecture and global software development, while the empirical studies of interfacing distributed/global software development and software architecture has only received very little attention among researchers up to now. This indicates the need for future research in these areas.','',1,'Alok MishraDeepti Mishra','springer/service oriented architecture security.csv','springer','\0'),(773,'Review of Cyber-Physical System Architecture','2012','5','CPS architecture;Cyber-Physical Systems;Service-Oriented Architecture','With the goal of accomplish the ubiquitous intelligence in social life, Cyber-Physical Systems (CPS) are getting growing attentions of researchers and engineers. However, the complexity of computing and physical dynamics bring a lot of challenges in the development of CPS, such as integration of heterogeneous physical devices, system verification, security assurance, and so on. A general or unified architecture plays an important part in the process of CPS design. In this paper, we review the current and previous works of CPS architecture, and introduce the main challenges and techniques of architecture development : real-time control, security assurance, integration mechanism. Then we propose a general CPS architecture based on Service-Oriented Architecture (SOA), the main advantage of this proposed architecture is the integration flexibility of services and components. At the end, we introduce the typical applications of CPS, and suggest the future research areas.','Object/Component/Service-Oriented Real-Time Distributed Computing Workshops (ISORCW), 2012 15th IEEE International Symposium on',1,'L. Hu; N. Xie; Z. Kuang; K. Zhao','ieee/service oriented architecture security.csv','ieee','\0'),(774,'Pairwise testing for software product lines: comparison of two approaches','2012','23',' Model-based engineering and testing Test generation t -wise and pairwise Software product lines Alloy','Abstract Software Product Lines (SPL) are difficult to validate due to combinatorics induced by variability, which in turn leads to combinatorial explosion of the number of derivable products. Exhaustive testing in such a large products space is hardly feasible. Hence, one possible option is to test SPLs by generating test configurations that cover all possible t feature interactions ( t -wise). It dramatically reduces the number of test products while ensuring reasonable SPL coverage. In this paper, we report our experience on applying t -wise techniques for SPL with two independent toolsets developed by the authors. One focuses on generality and splits the generation problem according to strategies. The other emphasizes providing efficient generation. To evaluate the respective merits of the approaches, measures such as the number of generated test configurations and the similarity between them are provided. By applying these measures, we were able to derive useful insights for pairwise and t -wise testing of product lines.','Software Quality Journal',1,'Gilles PerrouinSebastian OsterSagar SenJacques KleinBenoit BaudryYves le Traon','springer/soa security.csv','springer',''),(775,'Quantitative Trust Management to Support QoS-Aware Service Selection in Service-Oriented Environments','2013','0','quality of services;service selection;service-oriented architecture;trust management;web services','Owing to the black-box nature of services, selecting a trustworthy service that best fits users\' requirements is greatly critical in service-oriented computing. Once a set of services fulfilling users\' functional requirements are founded, one of these services invoked by the users depends mostly on the Quality of Services (QoS), particularly security, trust, and reputation. This paper proposes a trust management model to support service discovery and selection based on QoS. We define a quantitative trust evaluating method for dynamic service discovery and selection. The proposed model makes service consumers get trustworthy services possible. Our mechanism uses consumers\' feedback to describe the trust degree of services and service providers. The service selection using the quantitative measurement rather than consumers\' intuition allows selecting a highly reliable service accomplishing their quality requirements well. Finally, we give experimental results.','Parallel and Distributed Systems (ICPADS), 2013 International Conference on',1,'Y. Kim; K. G. Doh','ieee/service oriented architecture security.csv','ieee','\0'),(776,'Based-on Pi-calculus Business Process Modeling','2012','0','Business Process Management System;Pi-calculus','With development of business process management technology and information technology, we can simulate business processes. How to describe business process by structural language and check business process model are the issues. We develop a business processes system by SOA and model business process actions by Pi-calculus and check the model by MWB.','2012 Second International Conference on Business Computing and Global Informatization',1,'H. Xu; W. Chen','ieee/service oriented architecture security.csv','ieee','\0'),(777,'An information flow control approach in composite services','2013','0','Composite services;Information flow control;Information security;Security label;Service chain','Distributed information flow control has several advantages over centralized information flow control for securing composite services in service oriented environments. In this paper, an approach of distributed information flow control which utilizes security labels to convey control information is considered. At first, security labels are formally defined to describe the control information of information flow control. The computation method of security labels is presented as well. Secondly, a label-based information flow control protocol, namely LBIFC, is presented. This protocol is based on request/decision protocol between service providers. Thirdly, both the theoretical analysis and experimental validation of proposed LBIFC are provided. The results show that our solution not only keeps the security capabilities of information flow control, but also reduces the complexity of flow control protocol in composite services.','Information and Communications Technologies (IETICT 2013), IET International Conference on',1,'Bo Yu; Lin Yang; Shuhui Chen; Yongjun Wang; Linru Ma','ieee/service oriented architecture security.csv','ieee','\0'),(778,'QoS Modeling and Automatic Generation from SoaML Service Models for Business Process Execution','2015','','Automated service generation; BPMN 2.0; Business process; QoS; Quality of service; SoaML; Web Services','When Service Oriented applications and services are modeled, the term Quality of Service (QoS) is used to refer to the collection of constraints and quality requirements for a service. It is important that QoS attributes are specified in early stages of the development process, and modeled in a way that can be recognized and understood by all stakeholders. Regarding Service Oriented Architecture (SOA) modeling, QoS usually includes security, performance and availability. There are many options to realize business processes with services, such as collaborations with partners, internal services, third parties services (SaaS) among others. In previous works we have proposed the automatic generation of services specified in the Service Architecture Modeling Language (SoaML) from business processes, and the associated code. As SoaML allows to model functional requirements only, we have extended our proposal to also take into account QoS modeling and generation from SoaML service models, enriching the specification of services with quality characteristics. © 2015 IEEE.','',2,'Delgado A.','scopus/bpmn security.csv','scopus',''),(779,'Representing Threats in BPMN 2.0','2012','1','BPMN;SOA;business process modeling;composite services;dynamic behavior;security;threat;trustworthiness','The Business Process Modeling Notation (BPMN) has become a broadly accepted standard for process modeling, but is mostly being used to express the normal execution flow of business processes. In some situations there is also a need to express threats and unwanted incidents on that same abstraction level, for example to show how deviations from normal process flow should be handled. Enriching BPMN with threat information enables a process-centric threat modeling approach that complements risk assessment and attack scenarios. Though there has been a substantial amount of work enhancing BPMN 1.x with security related information, the opportunities provided by version 2.0 have not received a lot of attention in the security community. This paper shows several options and the benefit of representing threats in BPMN 2.0 for design-time specification and runtime execution of composite services with dynamic behavior. Our goal is to avoid downtime and preserve the overall security and trustworthiness of the composite service in an ever-changing Internet of Services. We have included examples showing the use of error events, escalation events and text annotations for process, collaboration, choreography and conversion diagrams.','Availability, Reliability and Security (ARES), 2012 Seventh International Conference on',2,'P. H. Meland; E. A. Gjære','ieee/bpmn security.csv','ieee','\0'),(780,'Connectivity abstractions and \"service-oriented network\" architecture','2012','2','Connectivity abstractions; P2P overlay; Service architecture; Service-oriented network architecture','Current generation networks have been designed only for network connectivity; they have been stretched to the limit with many afterthought add-on features including quality of service, mobility, programmability, and security so that they can be deployed for business applications and processes. As such, service deployment on current networks are difficult, time consuming and with limited successes. This paper suggests a service architecture based on network connectivity abstraction, user connectivity abstraction and application/service connectivity abstraction. The paper also proposes a service-oriented network (SON) architecture that facilitates the development of services and applications regardless of the underlying network access technologies. The architecture is conceived through the consideration of the essential requirements of generic Internet applications from the service and network providers\' perspective that addresses the Service-Oriented Architecture (SOA) application deployment pattern, user location and device mobility, and the structure of IP-converged networks. © 2012 IEEE.','',1,'Hoang D.B., Pham C.','scopus/service oriented architecture security.csv','scopus','\0'),(781,'Incorporating service and user information and latent features to predict QoS for selecting and recommending cloud service compositions','2016','0',' Cloud-based software service selection QoS prediction Vertical cloud service composition Service similarity Tensor factorization Latent features','Abstract The rapid growth of published cloud services in the Internet makes the service selection and recommendation a challenging task for both users and service providers. In cloud environments, software re services collaborate with other complementary services to provide complete solutions to end users. The service selection is performed based on QoS requirements submitted by end users. Software providers alone cannot guarantee users’ QoS requirements. These requirements must be end-to-end, representing all collaborating services in a cloud solution. In this paper, we propose a prediction model to compute end-to-end QoS values for vertically composed services which are composed of three types of cloud services: software (SaaS), infrastructure (IaaS) and data (DaaS) services. These values can be used during the service selection and recommendation process. Our model exploits historical QoS values and cloud service and user information to predict unknown end-to-end QoS values of composite services. The experiments demonstrate that our proposed model outperforms other prediction models in terms of the prediction accuracy. We also study the impact of different parameters on the prediction results. In the experiments, we used real cloud services’ QoS data collected using our developed QoS monitoring and collecting system.','Cluster Computing',1,'Raed KarimChen DingAli MiriMd Shahinur Rahman','springer/soa security.csv','springer',''),(782,'eWALL: An Intelligent Caring Home Environment Offering Personalized Context-Aware Applications Based on Advanced Sensing','2016','3',' Caring home eHealth Advanced sensing Personalized context-aware applications','Abstract Independent living of senior citizens is one of the main challenges linked to the ageing population. Senior citizens may suffer from a number of diseases, including the decline in cardiopulmonary conditions, weaker muscle functions and a declined neuromuscular control of the movements, which result in a higher risk of fall and a higher vulnerability for cardiovascular and pulmonary diseases. With respect to cognitive functions, senior citizens may suffer from a decline of memory function, less ability to orientate and a declined ability to cope with complex situations. This is by itself a big societal challenge with impact in multiple sectors. In this paper we present an innovative ICT solution, named eWALL, that aims to address these challenges by means of an advanced ICT infrastructure and home sensing environment; thus differentiating from existing eHealth and eCare solutions. The system of eWALL will extend the state-of-the-art of Assistive Platforms and will significantly increase the independent living of seniors.','Wireless Personal Communications',1,'Sofoklis KyriazakosMihail MihaylovBayu AnggorojatiAlbena MihovskaRazvan CraciunescuOctavian FratuRamjee Prasad','springer/service oriented architecture security.csv','springer',''),(783,'GIS in Agriculture','2012','0','','','',1,'Ralf BillEdward NashGörres Grenzdörffer','springer/service oriented architecture security.csv','springer','\0'),(784,'Resilience for Collaborative Applications on Clouds','2012','0',' High-Performance Computing Cloud Computing Distributed Computing Scientific Applications Workflows Resilience','Abstract Because e-Science applications are data intensive and require long execution runs, it is important that they feature fault-tolerance mechanisms. Cloud and grid computing infrastructures often support system and network fault-tolerance. They repair and prevent communication and software errors. They allow also checkpointing of applications, duplication of jobs and data to prevent catastrophic hardware failures. However, only preliminary work has been done so far on application resilience, i.e., the ability to resume normal execution following application errors and abnormal executions. This paper is an overview of open issues and solutions for such errors detection and management. It also overviews the implementation of a workflow management system to design, deploy, execute, monitor, restart and resume distributed HPC applications on cloud infrastructures in cases of failures.','',2,'Toàn NguyênJean-Antoine Désidéri','springer/bpel security.csv','springer','\0'),(785,'HiPoLDS: A Security Policy Language for Distributed Systems','2012','0','','Abstract Expressing security policies to govern distributed systems is a complex and error-prone task. Policies are hard to understand, often expressed with unfriendly syntax, making it difficult to security administrators and to business analysts to create intelligible specifications. We introduce the Hierarchical Policy Language for Distributed Systems (HiPoLDS ). HiPoLDS has been designed to enable the specification of security policies in distributed systems in a concise, readable, and extensible way. HiPoLDS’s design focuses on decentralized execution environments under the control of multiple stakeholders. Policy enforcement employs distributed reference monitors who control the flow of information between services. HiPoLDS allows the definition of both abstract and concrete policies, expressing respectively high-level properties required and concrete implementation details to be ultimately introduced into the service implementation.','',1,'Matteo Dell’AmicoGabriel SermeMuhammad Sabir IdreesAnderson Santana de OliveraYves Roudier','springer/service oriented architecture security.csv','springer','\0'),(786,'Information Quality in Dynamic Networked Business Process Management','2015','0','','Abstract The competition in globalized markets forces organizations to provide mass-customized integrated solutions for customers. Mass-customization of integrated solutions by business network requires adaptive interactions between parties to address emerging requirements of customers. These adaptive interactions need to be enabled by dynamic networked business processes (DNBP) that are supported by high quality information. However, the dynamic collaboration between parties can result in information quality (IQ) issues such as information syntactic and semantic misalignment, information leakage, and unclear information ownership. To counter negative consequences of poor IQ on the performance, the orchestrator of business network needs to clearly recognize these IQ issues. In this paper, we develop and evaluate a framework to address potential IQ issues related to DNBP. The development of the framework is based on a three step methodology that includes the characterization of dynamism of networked business processes, the characterization of IQ dimensions, and the exploration of IQ issues. To evaluate the practical significance of the explored IQ issues, we conduct a case study in a service ecosystem that is shaped by a car leasing organization to provide integrated mobility solutions for customers.','',2,'Mohammad R. RasouliRik EshuisJos J. M. TrienekensRob J. KustersPaul W. P. J. Grefen','springer/bpel security.csv','springer',''),(787,'Security modelling along business process model of SOA systems using modified “UML-SOA-Sec”','2012','0','Business Process Modelling;Domain Specific Language;Model Driven Architecture;Security Objectives;Service Oriented Architecture;Unified Modelling Language','In SOA environment, software systems are composed of services which are scattered across enterprises and architectures. Security play vital role during the design, development and operation of SOA applications. However, analysis of today\'s software development approaches reveals that the engineering of security into the system design is often neglected. This may happened due to the fact that the general purpose modelling languages lack the elements for security modelling. As a result, either security is ignored in the model or indicated in a textual way. The post-hoc, low-level integration of security has a negative impact on resulting SOA applications. A Domain Specific Language named “UML-SOA-Sec” is proposed for security modelling along the business process modelling of SOA Applications.','Computer & Information Science (ICCIS), 2012 International Conference on',1,'M. Q. Saleem; J. Jaafar; M. Fadzil Hassan','ieee/service oriented architecture security.csv','ieee','\0'),(788,'The Aniketos Service Composition Framework: Analysing and ranking of secure services','2014','','BPMN; Secure service composition; Service availability; Service modelling','Modern applications are inherently heterogeneous: they are built by composing loosely coupled services that are, usually, offered and operated by different service providers.While this approach increases the flexibility of the composed applications, it makes the implementation of security and trustworthiness requirements much more difficult. Therefore there is a need for new approaches that integrate security requirements right from the beginning while composing service-based applications, in order to ensure security and trustworthiness. In this chapter, we present a framework for secure service composition using a model-based approach for specifying, building, and executing composed services. As a unique feature, this framework integrates security requirements as a first class citizen and, thus, avoids the “security as an afterthought” paradigm. © Springer International Publishing Switzerland 2014.','',2,'Brucker A.D., Malmignati F., Merabti M., Shi Q., Zhou B.','scopus/bpmn security.csv','scopus',''),(789,'An architectural design framework for an Electronic Health Record system with hospice application','2012','0','Common Language Runtime;EHR;SOA;Simple Object Access;e-hospice','The goal of the system framework (e-Hospice+) is to create an Electronic Health Record (EHR) System which can be used by medical clinic to provide special healthcare services to hospice care patients. The framework allows both web-based and mobile-based healthcare application frameworks to be created to satisfy a variety of needs of clinical personnel. The web-based applications are performed at the clinic as a main source of information and services to patients and service providers. The mobile-based applications are run on smartphones and used by clinicians during their visits the patients. The EHR data can be exchanged between application servers and smartphones using web services. The design framework focuses on the three key areas: data design, user interface, and data Security and privacy.','e-Health Networking, Applications and Services (Healthcom), 2012 IEEE 14th International Conference on',1,'W. D. Yu; A. Panova','ieee/soa security.csv','ieee','\0'),(790,'GIS for Transportation','2012','0','','','',1,'Tschangho J. KimKeechoo Choi','springer/service oriented architecture security.csv','springer','\0'),(791,'Invited Talk III','2012','0','','Summary form only given. Recently, long running transactions attracted much research attention, because they are adopted in distributed systems, such as service-oriented systems, to ensure consistency. How to model and verify long running transactions is critical to improve the reliability of current distributed systems.','Software Security and Reliability Companion (SERE-C), 2012 IEEE Sixth International Conference on',1,'Ji Wang','ieee/service oriented architecture security.csv','ieee','\0'),(792,'Dynamic Deployment of Sensing Experiments in the Wild Using Smartphones','2013','4','','Abstract While scientific communities extensively exploit simulations to validate their theories, the relevance of their results strongly depends on the realism of the dataset they use as an input. This statement is particularly true when considering human activity traces, which tend to be highly unpredictable. In this paper, we therefore introduce APISENSE , a distributed crowdsensing platform for collecting realistic activity traces. In particular, APISENSE provides to scientists a participative platform to help them to easily deploy their sensing experiments in the wild. Beyond the scientific contributions of this platform, the technical originality of APISENSE lies in its Cloud orientation and the dynamic deployment of scripts within the mobile devices of the participants.We validate this platform by reporting on various crowdsensing experiments we deployed using Android smartphones and comparing our solution to existing crowdsensing platforms.','',1,'Nicolas HadererRomain RouvoyLionel Seinturier','springer/service oriented architecture security.csv','springer','\0'),(793,'Towards the Integration of Ontologies with Service Choreographies','2013','0',' business process service choreography ontology knowledge base annotation recommender system','Abstract This paper discusses the integration of ontologies with service choreographies in view of recommending interest points to the modeler for model improvement. The concept is based on an ontology of recommendations (evaluated by metrics) attached to the elements of the model. The ontology and an associated knowledge base are used in order to extract correct recommendations (specified as textual annotations attached to the model) and present them to the modeler. Recommendations may result in model improvements. The recommendations rely on similarity measures between the captured modeler design intention and the knowledge stored in the ontology and knowledge bases.','',2,'Mario Cortes-CornaxIoana CiuciuSophie Dupuy-ChessaDominique RieuAgnès Front','springer/bpel security.csv','springer','\0'),(794,'From enterprise architecture to business models and back','2014','4',' Business modeling Enterprise architecture Business Model Canvas ArchiMate Business Model Ontology Cost/revenue analysis','Abstract In this study, we argue that important IT change processes affecting an organization’s enterprise architecture are also mirrored by a change in the organization’s business model. An analysis of the business model may establish whether the architecture change has value for the business. Therefore, in order to facilitate such analyses, we propose an approach to relate enterprise models specified in ArchiMate to business models, modeled using Osterwalder’s Business Model Canvas. Our approach is accompanied by a method that supports business model-driven migration from a baseline architecture to a target architecture and is demonstrated by means of a case study.','Software & Systems Modeling',1,'M. E. IacobL. O. MeertensH. JonkersD. A. C. QuartelL. J. M. NieuwenhuisM. J. van Sinderen','springer/service oriented architecture security.csv','springer','\0'),(795,'Tamper-Evident User Profiles for WebID-Based Social Networks','2014','0',' Identity WebID Linked Data Social Networks Trust Security Data Integrity Protection Tamper Detection','Abstract Empowering people to express themselves in global communities, social networks became almost indispensable for exchanging user-generated content. User profiles are essential elements of social networks. They represent their members, but also disclose personal data to companies. W3C’s WebID offers an alternative to centralized social networks that aims at providing control about personal data. WebID relies on trusting the systems that host user profiles. There is a risk that attackers exploit this trust by tampering user profile data or stealing identities. In this paper, we therefore propose the IronClad approach. It improves trustworthiness by introducing tamper-evident WebID profiles. IronClad takes protective measures to publicly discover malicious manipulation of profile data. We exemplarily implement IronClad in an existing WebID identity management platform known from previous work.','',2,'Stefan WildFalko BrauneDominik PretzschMichel RienäckerMartin Gaedke','springer/bpmn security.csv','springer',''),(796,'Improving Interoperability of Digital Certificates for Software & Services','2013','0','ASSERT; ASSERT Profile; Web service; CA','Software certification has been successfully used with traditional \"static\" software. With the introduction of new computing paradigms such as service-oriented computing and cloud computing, the existing way to represent software certifications based in verbose human-oriented documents, exhibits many limitations, to the point of making the approach not useful in practice. The ASSERT4SOA project is currently addressing this problem and has developed a computer-oriented representation for software certifications based on a new type of digital certificates called ASSERT. However, in order to be able to represent the huge heterogeneity of certification schemes and standards, the ASSERT specification has to be extremely flexible and rather complex. This in turn, makes the production of ASSERTs difficult, and moreover, limits their interoperability, as to be interoperable, ASSERTS need to follow certain rules. This paper presents the solution adopted in the project in order to improve the interoperability of independently produced ASSERTS. The solution has been evaluated and has received very positive feedback.','2013 IEEE Ninth World Congress on Services',1,'M. Montenegro; A. Maña','ieee/service oriented architecture security.csv','ieee','\0'),(797,'Aligning Monitoring and Compliance Requirements in Evolving Business Networks','2014','2','','Abstract Dynamic business networks (BNs) are intrinsically characterised by change. Compliance requirements management, in this context, may become particularly challenging. Partners in the network may join and leave the collaboration dynamically and tasks over which compliance requirements are specified may be consequently delegated to new partners or backsourced by network participants. This paper considers the issue of aligning the compliance requirements in a BN with the monitoring requirements they induce on the BN participants when change (or evolution) occurs. We first provide a conceptual model of BNs and their compliance requirements, introducing the concept of monitoring capabilities induced by compliance requirements. Then, we present a set of mechanisms to ensure consistency between the monitoring and compliance requirements when BNs evolve, e.g. tasks are delegated or backsourced in-house. Eventually, we discuss a prototype implementation of our framework, which also implements a set of metrics to check the status of a BN in respect of compliance monitorability.','',2,'Marco Comuzzi','springer/bpel security.csv','springer',''),(798,'The Intelligent RFID Information Security Integrated Antenna Arrays System Based on SOA','2012','2',' RFID RSA Information security Heterogeneous WMN SOA','Abstract Radio frequency identification (RFID) technology system is quickly evolved many applications to manage personnel can be more efficient for automation systems. We combine the RSA encryption and decryption algorithms to raise the safety and the information security systems. The RFID environment has been communicated to exchange data for heterogeneous wireless networks. In this paper, it is implemented the RFID-based campus system solutions to security and privacy of RFID system for wireless mesh network applications. We propose to enhance the security algorithm combined RFID devices for the antenna arrays system. This paper is also presented the integrated framework for the application and integration systems based on service oriented architecture, and given a specific application of the framework combined with campus system.','Wireless Personal Communications',1,'Gwo-Jia JongPeng-Liang PengGwo-Jiun Horng','springer/service oriented architecture security.csv','springer','\0'),(799,'Using Interpolation for the Verification of Security Protocols','2013','0',' Security protocols Symbolic execution Craig’s interpolation Formal methods Verification','Abstract Interpolation has been successfully applied in formal methods for model checking and test-case generation for sequential programs. Security protocols, however, exhibit such idiosyncrasies that make them unsuitable to the direct application of such methods. In this paper, we address this problem and present an interpolation-based method for security protocol verification. Our method starts from a formal protocol specification and combines Craig interpolation, symbolic execution and the standard Dolev-Yao intruder model to search for possible attacks on the protocol. Interpolants are generated as a response to search failure in order to prune possible useless traces and speed up the exploration. We illustrate our method by means of a concrete example and discuss the results obtained by using a prototype implementation.','',1,'Marco RocchettoLuca ViganòMarco VolpeGiacomo Dalle Vedove','springer/service oriented architecture security.csv','springer','\0'),(800,'Revisiting the Anatomy and Physiology of the Grid','2015','1',' DSSA Physiology Anatomy OODT Software architecture','Abstract A domain-specific software architecture (DSSA) represents an effective, generalized, reusable solution to constructing software systems within a given application domain. In this paper, we revisit the widely cited DSSA for the domain of grid computing. We have studied systems in this domain over the last ten years. During this time, we have repeatedly observed that, while individual grid systems are widely used and deemed successful, the grid DSSA is actually underspecified to the point where providing a precise answer regarding what makes a software system a grid system is nearly impossible. Moreover, every one of the existing purported grid technologies actually violates the published grid DSSA. In response to this, based on an analysis of the source code, documentation, and usage of eighteen of the most pervasive grid technologies, we have significantly refined the original grid DSSA. We demonstrate that this DSSA much more closely matches the grid technologies studied. Our refinements allow us to more definitively identify a software system as a grid technology, and distinguish it from software libraries, middleware, and frameworks.','Journal of Grid Computing',1,'Chris A. MattmannJoshua GarciaIvo KrkaDaniel PopescuNenad Medvidovic','springer/service oriented architecture security.csv','springer',''),(801,'DoubleGuard: Detecting Intrusions in Multitier Web Applications','2012','6','Anomaly detection;multitier web application.;virtualization','Internet services and applications have become an inextricable part of daily life, enabling communication and the management of personal information from anywhere. To accommodate this increase in application and data complexity, web services have moved to a multitiered design wherein the webserver runs the application front-end logic and data are outsourced to a database or file server. In this paper, we present DoubleGuard, an IDS system that models the network behavior of user sessions across both the front-end webserver and the back-end database. By monitoring both web and subsequent database requests, we are able to ferret out attacks that an independent IDS would not be able to identify. Furthermore, we quantify the limitations of any multitier IDS in terms of training sessions and functionality coverage. We implemented DoubleGuard using an Apache webserver with MySQL and lightweight virtualization. We then collected and processed real-world traffic over a 15-day period of system deployment in both dynamic and static web applications. Finally, using DoubleGuard, we were able to expose a wide range of attacks with 100 percent accuracy while maintaining 0 percent false positives for static web services and 0.6 percent false positives for dynamic web services.','IEEE Transactions on Dependable and Secure Computing',1,'M. Le; A. Stavrou; B. B. Kang','ieee/service oriented architecture security.csv','ieee','\0'),(802,'Introducing a new algorithm for medical image encryption based on chaotic feature of cellular automata','2013','0','Cellular Automata;Chaotic system;Encryption;Medical Image;Security','Nowadays, with the expansion of telemedicine networks, providing security of medical documents plays an important role in medical society especially in protection of patient privacy. For this reason, medical centers spend a lot of money to improve their information security. One of the methods of improving medical information security is encryption of medical information that can be implemented with various algorithms. Due to the special characteristics of visual data and other information, methods used in image cryptography are limited and in some cases, they suffer from some security flaws and limitations in application. In this paper, according to the chaotic characteristics of cellular automata, new algorithm has been proposed for encryption medical image. The results indicated that the proposed algorithm provided more security as well as higher speed. Moreover, this method hasn\'t any errors in decryption stage. These features are rarely seen simultaneously in one encryption algorithm.','Internet Technology and Secured Transactions (ICITST), 2013 8th International Conference for',1,'I. Ranaee; M. M. Nia; R. Jahantigh; A. Gharib','ieee/service oriented architecture security.csv','ieee','\0'),(803,'IT-Implementation of Subject-Oriented Business Processes','2012','0','','Abstract IT has achieved a high level of penetration in many organizations. Without IT support, many business processes cannot be handled in an economically beneficial way. For this reason, the careful and on-demand mapping of processes to information and communication technology is an important task. This applies for cases where employees are involved, as well as for operations in which a high degree of automation is striven for. A suitable and well-fitting software environment plays a significant role here. However, the challenge in many cases is an existing heterogeneous landscape of systems and services, in which each of the components fulfills specific tasks, and for which all of these components need to be integrated into an overall solution for adequate process support.','',2,'Albert FleischmannWerner SchmidtChristian StaryStefan ObermeierEgon Börger','springer/bpel security.csv','springer','\0'),(804,'José Meseguer: Scientist and Friend Extraordinaire','2015','0','','Abstract José was born in Murcia, Spain, in 1950, and obtained his PhD in Mathematics in 1975 from the University of Zaragoza with a dissertation on “Primitive Recursion in Monoidal Categories” advised by Michael Pfender, with José Luis Viviente and Roberto Moreno-Díaz as co-advisors. In February 1974, at the age of 23, José met Joseph Goguen at the First International Symposium on Category Theory Applied to Computation and Control in San Francisco. This meeting led to many years of close and successful collaboration, as well as a life-long friendship between the two, with their first joint paper [ 24 ] published in 1977.','',2,'Narciso Martí-OlietPeter Csaba ÖlveczkyCarolyn Talcott','springer/bpmn security.csv','springer',''),(805,'Software-as-a-service (SaaS): perspectives and challenges','2014','8',' software-as-a-service SaaS architecture customization multi-tenancy architecture redundancy and recovery scalability','Abstract Software-as-a-service (SaaS) has received significant attention recently as one of three principal components of cloud computing, and it often deals with applications that run on top of a platform-as-a-service (PaaS) that in turn runs on top of infrastructure-as-a-service (IaaS). This paper provides an overview of SaaS including its architecture and major technical issues such as customization, multi-tenancy architecture, redundancy and recovery mechanisms, and scalability. Specifically, a SaaS system can have architecture relating to a database-oriented approach, middleware-oriented approach, service-oriented approach, or PaaS-oriented approach. Various SaaS customization strategies can be used from light customization with manual coding to heavy customization where the SaaS system and its underlying PaaS systems are customized together. Multi-tenancy architecture is an important feature of a SaaS and various trade-offs including security isolation, performance, and engineering effort need to be considered. It is important for a SaaS system to have multi-level redundancy and recovery mechanisms, and the SaaS system needs to coordinate these with the underlying PaaS system. Finally, SaaS scalability mechanisms include a multi-level architecture with load balancers, automated data migration, and software design strategies.','Science China Information Sciences',1,'WeiTek TsaiXiaoYing BaiYu Huang','springer/soa security.csv','springer',''),(806,'Conformance Checking and QoS Optimizing of Web Service Composition','2013','0','','Due to the inherent autonomy and heterogeneity of component Web services it is difficult to predict the behavior of the overall composite service. Besides, the performance of the composed application is determined by the performance of the involved component web services. Therefore, the behavior conformance and non-functional quality of service (QoS) properties are crucial for selecting the web services to take part in the composition. The behavior conformance of component services is the guarantee of the correctness of Web service composition, and QoS properties can identify the best candidate web services from a set of functionally-equivalent services. In this paper, two formal judgmental rules are presented, which check conformance of local behavior of every component service to global interaction. We also use skyline computation to select services for composition effectively and efficiently, reducing the number of candidate services to be considered. We also define aggregation functions, and use a Multiple Attribute Decision Making approach for the utility function to achieve Qos-based optimal service selection. We evaluate our approach experimentally using both real and synthetically generated datasets.','Computational Intelligence and Security (CIS), 2013 9th International Conference on',1,'G. Zhang','ieee/service oriented architecture security.csv','ieee','\0'),(807,'Agile business process development: why, how and when—applying Nonaka’s theory of knowledge transformation to business process development','2014','0',' Agile development Business process Knowledge transformation SECI model','Abstract The traditional way of business process development is via creating a detailed model of a business process in question, acquiring an IT-system to support it, and then implementing it in the organizational practice. Acquiring a system can be done via designing and manufacturing it by the business itself, or via commissioning it to somebody else. Alternatively, a generic system can be bought and configured according to the business process model created. The traditional approach has a number of risks that become visible only during the latest phase of introducing the system in the organizational practice, e.g., when it becomes clear that the system does not fit the business and/or people who work in it. These risks could be mitigated by using an agile approach to the development of business processes. In agile approach: (a) the phases of process modeling, IT-system design, and manufacturing are merged into one, and (b) instead of using one big cycle, a series of smaller development cycles is used. The paper discusses what is needed to implement the agile approach, and in which business situations the agile approach is the most appropriate. Examples of tools to support agile development are presented and analyzed. The results presented in the paper have been achieved based on the knowledge transformation perspective along the lines suggested by Nonaka in SECI model. The modification of this model has been used to understand the risks and requirements connected to a particular process development strategy.','Information Systems and e-Business Management',2,'Ilia BiderAmin Jalali','springer/bpmn security.csv','springer',''),(808,'Robust mutual trust architecture for safety critical service in heterogeneous mobile network environment','2015','0',' Mutual trust architecture Heterogeneous mobile network environment Seamless service safety Mobile Internet device Multiple network interfaces','Abstract Wireless network services are more vigorous than ever due to the rapid development of mobile devices such as smartphones. Most mobile devices are evolving into multi-purpose handsets having multiple interfaces and always on, operating in a state that can receive the data any time through these different interfaces. In line with this trend, safety critical services such as e-commerce and on-line financial service have now mostly been used through the mobile environment. Since the Internet service is made up of interaction between the user and the service provider, service safety is based on mutual trust between them. In other words, the user terminal and the service provider system should have confidence in the identities of each other. In heterogeneous mobile network, the user terminal can get access to the service system through diverse access networks simultaneously. So, service provider cannot distinguish which is a valid access for service. In this paper, we propose a mutual trust architecture that can maintain a sustainable secure relation between the user terminal and the safety critical service system by using both personal and network information.','Telecommunication Systems',1,'Sunghyun YoonSoon Seok LeeSang-Ha Kim','springer/soa security.csv','springer',''),(809,'Identification and study of the relationship between factors and dimensions affecting the security of developed information systems using service-oriented architecture','2014','','Information systems; Service oriented architecture; Web service security','Certain advantages of service-oriented architecture have led to the spread of this type of architecture around the world. However, some special features of this type of architecture have led to more compromise between the security in the information system and other information systems. The purpose of this paper is to identify and examine the impact of factors and dimensions of the information security system that has developed by using service-oriented architecture. In this study, the exploratory and confirmatory factor analysis have been used to identify overt and covert variables. Then, a structured equation model and AMOS software have been used. Finally, the effect of each security dimension of security service-oriented architecture was specified by using the structural equation model. The results indicate that network-level security, web services and message-level security have a significant positive impact on service-oriented architecture. The software output is indicative of the fact that the structured model is fit.','',1,'Reza taghva M., Izadi M.','scopus/service oriented architecture security.csv','scopus','\0'),(810,'Goal-Based Composition of Stateful Services for Smart Homes','2012','0',' process/service composition smart houses/buildings planning techniques','Abstract The emerging trend in process management and in service oriented applications is to enable the composition of new distributed processes on the basis of user requests, through (parts of) available (and often embedded in the environment) services to be composed and orchestrated in order to satisfy such requests. Here, we consider a user process as specified in terms of repeated goals that the user may choose to get fulfilled, organized in a kind of routine. Available services are suitably composed and orchestrated in order to realize such a process. In particular we focus on smart homes, in which available services are those ones offered by sensor and actuator devices deployed in the home, and the target user process is directly and continuously controlled by the inhabitants, through actual goal choices. We provide a solver that synthesizes the orchestrator for the requested process and we show its practical applicability in a real smart home use case.','',1,'Giuseppe De GiacomoClaudio Di CiccioPaolo FelliYuxiao HuMassimo Mecella','springer/service oriented architecture security.csv','springer','\0'),(811,'A Multiple Interfaces and Multiple Services Residential Gateway Scheme','2013','0',' Residential Gateway Multiple Modes Multiple Interfaces Multiple Services','Abstract Residential gateways that interconnect home networks, pubic networks, and smart household devices play a critical role in intelligent home systems. However, the existing gateways could hardly be adapted to emerging multiple access methods and the multiple services’ requirements for future home intelligent environments. This paper introduces the work in progress in constructing a stable and efficient Broadband Multiple Modes Residential Gateway (BMMRG) which supports multiple access interfaces, multiple services, IPv6, security, QoS and remotely web management. It is mainly based on an IXP425 network processor and a Linux kernel. We first present the hardware and software architectures of BMMRG, and then we introduce their in-detailed implementations. In the meantime, an intelligent home system is proposed based on BMMRG and household appliances equipped with wireless and ZigBee adapters. Finally, the effectiveness and feasibility of BMMRG is verified through testing.','',1,'Wenyao YanZhixiao WangKewang ZhangJunhuai LiDeyun Zhang','springer/service oriented architecture security.csv','springer','\0'),(812,'Security Certification of Composite Services: A Test-Based Approach','2013','3','BPEL;Model-based testing;Security certification;Service composition;Web services','Accurate and lightweight evaluation of web service security properties is a key problem, especially when business processes are dynamically built by composing atomic services provided by different suppliers at runtime. In this paper, we tackle this problem by proposing a security certification approach that virtually certifies a composite service for a set of security properties, starting from certificates awarded to the component services.','Web Services (ICWS), 2013 IEEE 20th International Conference on',2,'M. Anisetti; C. A. Ardagna; E. Damiani','ieee/bpel security.csv','ieee','\0'),(813,'Cloud Computing Automation: Integrating USDL and TOSCA','2013','2',' USDL TOSCA cloud service lifecycle service description service management','Abstract Standardization efforts to simplify the management of cloud applications are being conducted in isolation. The objective of this paper is to investigate to which extend two promising specifications, USDL and TOSCA, can be integrated to automate the lifecycle of cloud applications. In our approach, we selected a commercial SaaS CRM platform, modeled it using the service description language USDL, modeled its cloud deployment using TOSCA, and constructed a prototypical platform to integrate service selection with deployment. Our evaluation indicates that a high level of integration is possible. We were able to fully automatize the remote deployment of a cloud service after it was selected by a customer in a marketplace. Architectural decisions emerged during the construction of the platform and were related to global service identification and access, multi-layer routing, and dynamic binding.','',2,'Jorge CardosoTobias BinzUwe BreitenbücherOliver KoppFrank Leymann','springer/bpel security.csv','springer','\0'),(814,'Cloud Resources-Events-Agents Model: Towards TOSCA-Based Applications','2014','0',' Cloud application Resources-Events-Agents (REA) TOSCA Business requirements','Abstract The dilemma for domain experts and developers during design time of a cloud application is ensuring the sufficient programming abstractions between them in mapping the business requirements to cloud specifications. Thus, a modeling language is needed to capture and express the business requirements. Resources-Events-Agents (REA) is a well-known business requirement modeling language that decomposes the information system into three constituents with the set of compliant binary collaborations called, Duality . This study is a preliminary attempt to employ REA for developing cloud applications. In this study, we define a conceptual mapping between REA model and OASIS Topology and Orchestration Specification for cloud Applications (TOSCA) policies, plans and templates. Based on that, we proceed with the process of building business-driven cloud applications. In support of our model, we implement a cloud REA Modeling tool referred to as CREAM, where business requirements are specified in REA, then corresponding cloud application is composed and built. We describe the underlying mapping strategy as well as the details of our tool in support of the proposed approach.','',2,'Soheil QanbariVahid SebtoSchahram Dustdar','springer/bpel security.csv','springer',''),(815,'An Approach for Compliance-Aware Service Selection with Genetic Algorithms','2013','0',' Service-oriented Computing Service Selection Compliance Multi-objective Optimization Genetic Algorithms','Abstract Genetic algorithms are popular for service selection as they deliver good results in short time. However, current approaches do not consider compliance rules for single tasks in a process model. To address this issue, we present an approach for compliance-aware service selection with genetic algorithms. Our approach employs the notion of compliance distance to detect and recover violations and can be integrated into existing genetic algorithms by means of a repair operation. As a proof-of-concept, we present a genetic algorithm incorporating our approach and compare it with related state-of-the-art genetic algorithms lacking this kind of check and recovery mechanism for compliance.','',2,'Fatih KaratasDogan Kesdogan','springer/bpel security.csv','springer','\0'),(816,'Asset monitoring in the service-oriented Internet of Things empowered smartgrid','2012','4',' Smart metering Web services Networked embedded systems Enterprise services Performance assessment','Abstract The smartgrid envisions several sophisticated services that heavily depend on almost real-time monitoring of the assets and the functionality they provide. High-performance smart metering is the flagship of ongoing projects worldwide. In order to succeed, a service-oriented approach must be adopted, tools for simulation and pre-deployment evaluation will need to be created, and finally, adaptive systems targeting self-X behaviour (e.g. self-management, self-optimization, self-monitoring, self-healing, and self-protection) may raise the level of sophistication once the infrastructure is operational. In all of the above, the constraints set by enterprise services need to be respected and collaboratively tune infrastructure’s layers via active monitoring and control in order to enable the best overall system performance. We discuss on considerations and propose directions that could be followed.','Service Oriented Computing and Applications',1,'Stamatis Karnouskos','springer/soa security.csv','springer','\0'),(817,'Evolving Security Requirements in Multi-layered Service-Oriented-Architectures','2012','0',' SOA Evolution AOP REST Security','Abstract Due to today’s rapidly changing corporate environments, business processes are increasingly subject to dynamic configuration and evolution. The evolution of new deployment architectures, as illustrated by the move towards mobile platforms and the Internet Of Services, and the introduction of new security regulations (imposed by national and international regulatory bodies, such as SOX or BASEL) are an important constraint in the design and development of business processes. In such a context, it is not sufficient to apply the corresponding adaptations only at the service orchestration or at the choreography level; there is also the need for controlling the impact of new security requirements to several architectural layers, specially in cloud computing, where the notion of Platforms as Services and Infrastructure as Services are fundamental. In this paper we survey several research questions related to security cross-domain and cross-layer security functionality in Service Oriented Architectures, from an original point of view. We provide the first insights on how a general service model empowered with aspect oriented programming capabilities can provide clean modularization to such cross-cutting security concerns.','',2,'Muhammad Sabir IdreesGabriel SermeYves RoudierAnderson Santana De OliveiraHerve GrallMario Südholt','springer/bpel security.csv','springer','\0'),(818,'Proposal of a Context-Aware Smart Home Ecosystem','2015','0',' Smart home Ecosystem Context-awareness Smart scenario Context modeling Context reasoning Architecture for smart homes Web service SOA Pervasive computing','Abstract Smart homes are more and more popular since they are regarded as synonyms of an ideal and friendly environment. Novel aspects like context awareness and pro-activity are fundamental requirements for development of such systems. Smart scenarios enable switching devices in a desired way when a certain user activity considered as a trigger involves a system activity. Some smart scenarios are proposed. Context modeling and reasoning for smart homes is widely considered. A software architecture including web services is introduced and discussed.','',1,'Radosław KlimekGrzegorz Rogus','springer/service oriented architecture security.csv','springer',''),(819,'DILT: A Hybrid Model for Dynamic Composition and Execution of Heterogeneous Web Services','2015','0',' Web Services Dynamic composition Service Oriented Architecture SOAP services RESTful Services','Abstract Business applications in domains such as e-Governance, require collaboration among both Governmental and non Governmental departments, which raises the need for composing SOAP-based as well as RESTful services. Existing works address this objective using static composition alone. However, it would be beneficial if users can specify the requirements during run-time, based on the outcome of the previous services executed. In general, business applications follow a predefined order and consequently the composition process can follow a template of business activities. Existing works on dynamic web service composition either separate the composition and execution phases distinctly or perform them in an interleaved fashion. The former approach cannot adapt to changes in run-time whereas the latter can select services based on the outcome of previous service executions. However, the interleaved approach does not support business activities that have a specific ordering among them. Hence, a novel hybrid model - Dynamic InterLeaved Template (DILT) - that enables interleaved composition and execution of web services based on predefined workflow templates has been proposed in this paper. This hybrid model lends itself naturally for composing both SOAP-based and RESTful services.','',2,'Kanchana RajaramChitra BabuAkshaya Ganesan','springer/bpel security.csv','springer',''),(820,'Ontology-Based Security Policies for Supporting the Management of Web Service Business Processes','2008','3','Web service;business process;security','Typically, in areas such as e-business and e-government, among others, Web services are used as basic components for building business processes. Participants in a business process may have different computational platforms that should interoperate in order to achieve the process goals. This interoperability is supported by the Web service technology. Thus, the importance of the technology is growing and its use in these areas demands security concern. However, the current approach for building processes from services, based on the Web Services Business Process Execution Language (WS-BPEL), does not consider security. This paper proposes an approach for building processes according to provider capabilities and consumer security requirements. These characteristics are expressed using Web Services Policy Framework (WS-Policy) policies and a Web Ontology Language (OWL) ontology. The main contribution of this paper is the use of semantics-enriched security policies for enriching Web service business processes.','Semantic Computing, 2008 IEEE International Conference on',2,'D. Z. G. Garcia; M. B. Felgar de Toledo','ieee/bpel security.csv','ieee','\0'),(821,'The Weighted Decision Matrix: Tracking Design Decisions in Service Compositions','2014','0','Requirements Engineering;Service Composition;Traceability Matrix','Often, there is a lack of efficient procedures in order to identify design errors when transforming customer requirements into servic-oriented solution. A well-established approach supporting this kind of transformation in classical requirements engineering is the traceability matrix which allows tracing the coverage of customer requirements by system components in general, or services in particular. The matrix shows which services realize which customer requirements. However, the matrix does not show the relevance of a service in order to meet a certain quality aspect (e.g. Security, usability, maintainability, etc.). Since this information is not explicitly covered, it is the system designer who has to keep this knowledge in mind when designing an appropriate set of services that build the overall system. Unfortunately, stakeholders not involved in the design decisions, e.g. Customers, Project managers and developers, have a hard time to understand the significance of the coverage of customer requirements by services in order to meet desired quality aspects. This may cause misinterpretations especially in the early stages of the service system development life-cycle. In this paper, we present a heuristic-based approach to continually monitor and control design decisions and their effects on certain quality aspects. This approach extends the traceability matrix by a weighted decision-matrix.','2014 IEEE 7th International Conference on Service-Oriented Computing and Applications',1,'A. Mazak; B. Kratzwald','ieee/service oriented architecture security.csv','ieee','\0'),(822,'Service-oriented Architecture and Business Process Choreography in an Order Management Scenario: Rationale, Concepts, Lessons Learned','2005','18','B2B, BPEL, HTTP, J2EE, SOAP, WSDL, XML, application server, best practices, business process, order management, process choreography, process integration, service-oriented architecture, telecommunications, web application, web services, workflow','Companion to the 20th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications','',2,'Olaf Zimmermann and Vadim Doubrovski and Jonas Grundler and Kerard Hogg','acm/bpel security.csv','acm',''),(823,'A robust framework for securing composed web services','2016','','Automated verification; Component-based systems; Dependency flow graph; Information flow security; Non-interference','This paper proposes a framework that automatically checks and configures data security in Web Services starting from high level business requirements. We consider BPEL-based composed Web Services. BPEL processes and initial security parameters are represented as component-based models labeled with security annotations. These models are formal and enable automated analysis and synthesis of security configurations, under the guidance of the service designer. The security property considered is the non-interference. The overall approach is practical since security is defined separately from functional processes and automatically verified. We illustrate its utility to solve intricate security problems using a smart grid application. © Springer International Publishing Switzerland 2016.','',2,'Said N.B., Abdellatif T., Bensalem S., Bozga M.','scopus/bpel security.csv','scopus','\0'),(824,'Hybrid Service Compositions: When BPM Meets Dynamic Case Management','2015','0',' Service management Service compositions Service-dominance Business process management Dynamic Case Management','Abstract In organizations’ efforts to achieve process efficiency and agility, disciplines like business process management and case management have been used widely. While the former is a process-driven discipline which routes processes through specific activities, the latter advances through events based on the case data, characterizing it as event-driven and data-driven. However, these two apparently dissimilar approaches can be combined with the common goal to offer flexible service compositions in a service-dominant context. This paper proposes a way to do so through a business-engineering framework for service-dominant business. The structured approach for business design and the subsequent proposed implementation with IT systems will enable organizations, for instance in financial services sector, to leverage service automation. A working prototype for service management is developed as a proof-of-concept demonstrating that the realization of such a mixed approach is practically feasible.','',2,'Konstantinos TraganosPaul Grefen','springer/bpel security.csv','springer',''),(825,'Adaptive pixel value differencing steganography using both vertical and horizontal edges','2015','0',' Image steganography Pixel value differencing steganography Adaptive data hiding Adaptive PVD Horizontal and vertical edges','Abstract This paper proposes two pixel value differencing (PVD) steganography techniques by considering adaptive ranges to improve the security. In the first technique, the image is partitioned into 2 × 2 pixel blocks in a non-overlapping fashion and scanned in raster-scan order. For every 2 × 2 pixel block the left-upper and bottom-right corner pixels are targetted based on their correlation with the other two pixels. Both horizontal and vertical edges are considered. In the second technique, the image is partitioned into blocks with 3 × 3 pixels in an overlapped fashion and scanned in raster-scan order. For a block the central pixel is targetted for embedding. Both the horizontal and vertical edges are inspected, but one of them is considered for data embedding at the target pixel. The ranges are adaptively calculated based upon the local statistics of the blocks. The first technique provides higher hiding capacity and the second technique provides higher peak signal-to-noise ratio value.','Multimedia Tools and Applications',1,'Gandharba Swain','springer/soa security.csv','springer',''),(826,'Transforming Socio-Technical security requirements in SecBPMN security policies','2014','','','Socio-Technical Systems (STSs) are complex systems composed of both social (i.e., humans and organizations) and technical (i.e., hardware and software) elements. Security requirements for STSs define constraints for the sociotechnical interactions and can be specified as a set of security policies that have to be satisfied by the components of the system during their interactions. In this paper, we present how security requirements molded in STS-ml are transformed in security policies expressed in SecBPMN, an extension of BPMN with security annotations.','',2,'Salnitri M., Giorgini P.','scopus/bpmn security.csv','scopus',''),(827,'A Methodology and Tool Support for Widget-Based Web Application Development','2015','0',' Web widgets Web development Community information systems Widgetizing methodology Web application reengineering','Abstract Due to the rapid evolution of Web technologies and standards like WebRTC for the real-time Web, there is a reengineering pressure on many existing Web applications for not getting outdated and for reducing costs and maintainance efforts. In this paper, we propose a methodology designed to support developers through an application reengineering process for achieving modular and scalable Web applications, by bridging the old and the new: a RESTful microservice architecture with a presentation layer composed from widgets. The methodology is based on empirical studies conducted with the help of the widget developer community and proposes an agile development cycle and guidelines for the redesign activities. Based on its principles, we developed a tool that has been used in the methodology evaluation for modeling the widget-based Web applications. The obtained results show that the approach and the proposed architecture are suitable for enabling the future generation of widget-based applications.','',1,'Petru NicolaescuRalf Klamma','springer/microservice security.CSV','springer',''),(828,'Extracting and Analyzing the Implemented Security Architecture of Business Applications','2013','1','reverse engineering;software security;static analysis;threat modeling','Security is getting more and more important for the software development process as the advent of more complex, connected and extensible software entails new risks. In particular, multi-tier business applications, e.g., based on the Service-Oriented Architecture (SOA), are vulnerable to new attacks, which may endanger the business processes of an organization. These applications consist often of legacy code, which is now exported via Web Services, although it has originally been developed for internal use only. The last years showed great progress in the area of static code analysis for the detection of common low level security bugs, such as buffer overflows and cross-site scripting vulnerabilities. However, there is still a lack of tools that allow an analyst to assess the implemented security architecture of an application. In this paper, we propose a technique that automatically extracts the implemented security architecture of Java-based business applications from the source code. In addition, we carry out threat modeling on this extracted architecture to detect security flaws. We evaluate and discuss our approach with the help of two commercial real-world case studies, one taken from the e-government domain and the other one from logistics.','Software Maintenance and Reengineering (CSMR), 2013 17th European Conference on',1,'B. J. Berger; K. Sohr; R. Koschke','ieee/service oriented architecture security.csv','ieee','\0'),(829,'If Usability Evaluation and Software Performance Evaluation Shook Their Hands: A Perspective','2015','0',' Usability evaluation System performance Self-adaptive systems','Abstract The success of interactive systems depends on a variety of factors, including usability and system performances. The balance of these factors is more ideal than a practice, since traditionally these issues have been addressed by two distinct communities – Human-Computer Interaction and Software Engineering – using different processes, methods and tools. Consequently, the traditional approach is to separately address human performances and system performances. We argue that results from early-cycle system performance evaluation should be exploited by interaction designers to produce “performance-informed” design iteration, then leading to a performance-aware self-adaptive interaction environment, according to a vision bridging the two communities.','',1,'Tania Di MascioLaura TarantinoGiovanni De Gasperis','springer/service oriented architecture security.csv','springer',''),(830,'Security (hyper-)properties in workflow systems: From specification to verification?','2014','','','Provable security guarantees for software systems are highly desirable. Our work aims at improving and integrating existing formal verification techniques into a framework for the specification and verification of typical security requirements of large-scale, distributed workflow systems. Challenges include the uniform modelling of different types of security requirements, the decomposition of global security requirements into requirements on subcomponents, and the refinement of an abstract specification towards an implementation. We focus our attention on workflow management systems due to their interesting security requirements and the widespread use of model-driven techniques in this area (e.g. using BPMN diagrams). We build upon existing verification techniques for a specific notion of information flow security, and intend to apply our results to concrete example systems such as a secure web-based conference management system.','',2,'Bauereiss T.','scopus/bpmn security.csv','scopus',''),(831,'Middleware for Internet of Things: A Study','2015','0','Internet of Things;challenges;heterogeneity;interoperability;middleware','The significant progress in smart devices has lead to the shifting of actual Internet to the Internet of Things (IoT). Internet of Things is invading our real lives. In this new Internet vision, trillions of smart dynamic objects and areas will be connected to the Internet and interact between each others to achieve common applications. This new Internet vision requires suitable IoT infrastructure that offers the main Internet of Things functionalities to facilitate the development of IoT applications. Middleware is the software layer between technological and application layers. It is mainly used to afford common services and functions to applications and to abstract implementation details to ease more complex application development. In this paper, we review the main challenges facing Internet of Things middleware and survey the most well known middleware that have been proposed in this field.','2015 International Conference on Distributed Computing in Sensor Systems',1,'G. Fersi','ieee/service oriented architecture security.csv','ieee',''),(832,'Formalizing and appling compliance patterns for business process compliance','2016','5',' Business process compliance Compliance patterns Formal specification Regulatory compliance Compliance management tool support Design-time compliance management','Abstract Today’s enterprises demand a high degree of compliance of business processes to meet diverse regulations and legislations. Several industrial studies have shown that compliance management is a daunting task, and organizations are still struggling and spending billions of dollars annually to ensure and prove their compliance. In this paper, we introduce a comprehensive compliance management framework with a main focus on design-time compliance management as a first step towards a preventive lifetime compliance support. The framework enables the automation of compliance-related activities that are amenable to automation, and therefore can significantly reduce the expenditures spent on compliance. It can help experts to carry out their work more efficiently, cut the time spent on tedious manual activities, and reduce potential human errors. An evident candidate compliance activity for automation is the compliance checking, which can be achieved by utilizing formal reasoning and verification techniques. However, formal languages are well known of their complexity as only versed users in mathematical theories and formal logics are able to use and understand them. However, this is generally not the case with business and compliance practitioners. Therefore, in the heart of the compliance management framework, we introduce the Compliance Request Language (CRL), which is formally grounded on temporal logic and enables the abstract pattern-based specification of compliance requirements. CRL constitutes a series of compliance patterns that spans three structural facets of business processes; control flow, employed resources and temporal perspectives. Furthermore, CRL supports the specification of compensations and non-monotonic requirements, which permit the relaxation of some compliance requirements to handle exceptional situations. An integrated tool suite has been developed as an instantiation artefact, and the validation of the approach is undertaken in several directions, which includes internal validity, controlled experiments, and functional testing.','Software & Systems Modeling',2,'Amal ElgammalOktay TuretkenWillem-Jan van den HeuvelMike Papazoglou','springer/bpel security.csv','springer',''),(833,'Much Ado about Security Appeal: Cloud Provider Collaborations and Their Risks','2012','4',' cloud computing security cloud collaborations data privacy data protection security broker','Abstract The lack of capacity, unplanned outages of sub-contractors, a disaster recovery plan, acquisitions, or other financial goals may force cloud providers to enter into collaborations with other cloud providers. However, the cloud provider is not always fully aware of the security level of a potential collaborative cloud provider. This can lead to security breaches and customers’ data leakage, ending in court cases and financial penalties. In our paper, we analyze different types of cloud collaborations with respect to their security concerns and discuss possible solutions. We also outline trusted security entities as a feasible approach for managing security governance risks and propose our security broker solution for ad hoc cloud collaborations. Our work provides support in the cloud provider selection process and can be used by cloud providers as a foundation for their initial risk assessment.','',1,'Olga WengeMelanie SiebenhaarUlrich LampeDieter SchullerRalf Steinmetz','springer/service oriented architecture security.csv','springer','\0'),(834,'Aspect Separation in Web Service Orchestration: A Reflective Approach and its Application to Decentralized Execution','2007','1','','Web service orchestration is becoming widely spread for the creation of composite Web services using standard specifications such as BPEL4WS. The myriad of specifications and aspects that should be considered in orchestrated Web services are resulting in increasing complexity. This complexity leads to software infrastructures difficult to maintain with interwoven code involving different aspects such as security, fault tolerance, distribution, etc. In this paper, we present ZenFlow a reflective BPEL engine that enables to separate the implementation of different aspects among them and from the implementation of the regular orchestration functionality of the BPEL engine. We illustrate its capabilities and performance exercising the reflective interface through a decentralized orchestration use case.','IEEE International Conference on Web Services (ICWS 2007)',2,'R. Jimenez-Peris; M. Patino-Martinez; E. Martel-Jordan; R. Naranjo-Izquierdo','ieee/bpel security.csv','ieee','\0'),(835,'A Workflow Checking Approach for Inherent Privacy Awareness in Network Monitoring','2012','0',' Network monitoring privacy protection access control workflow verification service decomposition','Abstract Despite the usefulness of network monitoring for the operation, maintenance, control and protection of communication networks, as well as law enforcement, network monitoring activities are surrounded by serious privacy implications. The inherent “leakage-proneness” is harshened due to the increasing complexity of the monitoring procedures and infrastructures, that include multiple traffic observation points, distributed mitigation mechanisms and even inter-operator cooperation. In this paper, an innovative approach aiming at realising the “privacy by design” principle in the area of network monitoring is presented; it relies on service-orientation primitives and abstractions, in order to verify and, when needed, to adjust network monitoring workflows, so that they become inherently privacy-aware before being deployed for execution.','',1,'Maria N. KoukoviniEugenia I. PapagiannakopoulouGeorgios V. LioudakisDimitra I. KaklamaniIakovos S. Venieris','springer/service oriented architecture security.csv','springer','\0'),(836,'ICDMS: An Intelligent Cloud Based Disaster Management System for Vehicular Networks','2012','1',' Disaster Management and Resilience Intelligent Transportation Systems Cloud Computing VANETs Mobile Communications','Abstract The importance of emergency response systems cannot be overemphasized today due to the many manmade and natural disasters in the recent years such as September 2001 and the recent Japan earthquake and tsunami disaster. The overall cost of the Japan disaster alone is estimated to have exceeded 300 billion USD. Transportation and telecommunications play a critical role in disaster response and management in order to minimize loss of human life, economic cost and disruptions. Our research is concerned with developing emergency response systems for disasters of various scales with a focus on transportation systems, which exploit ICT developments. In this paper, we leverage Intelligent Transportation Systems including Vehicular Ad hoc Networks, mobile and Cloud Computing technologies to propose an intelligent disaster management system. The system is intelligent because it is able to gather information from multiple sources and locations, including from the point of incident, and is able to let vehicles make effective strategies and decisions of communication protocols usage. Hybrid vehicular communications based on vehicle-to-vehicle and vehicle-to-infrastructure protocols are opportunistically exploited. The effectiveness of our system is demonstrated through modelling the impact of a disaster on a real city transport environment and comparing it with the case where our disaster management system was in place. We report great benefits derived from the adoption of our proposed system in terms of improved and balanced traffic flow and smooth evacuation.','',1,'Zubaida AlazawiMohmmad B. AbdljabarSaleh AltowaijriAnna Maria VegniRashid Mehmood','springer/service oriented architecture security.csv','springer','\0'),(837,'SLA aware dynamic reconfiguration for the Safe Building Security System','2015','','Design patterns; Dynamic reconfiguration; Monitoring; Service oriented architecture','Service-Oriented Architecture (SOA) facilitates development of Business-to-Business (B2B) applications, by composing suitable services, either statically during design-time or dynamically at run-time. Dynamic reconfiguration in the service-oriented approach, involves replacing the statically composed services with some other ones, during run-time, only when it is necessary. This necessity might arise due to the need to accommodate change in user requirements, sudden unavailability of services or to keep up the non-functional requirements agreed in the Service Level Agreement (SLA). Dynamic composition is another approach, where each service is selected and composed at run-time. This approach provides more flexibility in selecting appropriate services during run-time as opposed to the static composition. However, there is a possibility of an additional overhead, compared to dynamic reconfiguration. This paper discusses an approach for SLA aware dynamic reconfiguration, that happens for the same instance of execution and it has also been captured as a pattern named I-RAILS. The various ways of dynamically reconfiguring the services has been illustrated with a case study application namely the Safe Building Security system. This approach of dynamic reconfiguration of the services is compared with the dynamic service composition. © 2015 SERSC.','',1,'Krishnamurthy V., Babu C.','scopus/service oriented architecture security.csv','scopus',''),(838,'Expert Discovery and Interactions in Mixed Service-Oriented Systems','2012','4','Human-provided services;crowdsourcing;hubs and authorities.;service-oriented expertise provisioning;social trust','Web-based collaborations and processes have become essential in today\'s business environments. Such processes typically span interactions between people and services across globally distributed companies. Web services and SOA are the defacto technology to implement compositions of humans and services. The increasing complexity of compositions and the distribution of people and services require adaptive and context-aware interaction models. To support complex interaction scenarios, we introduce a mixed service-oriented system composed of both human-provided and Software-Based Services (SBSs) interacting to perform joint activities or to solve emerging problems. However, competencies of people evolve over time, thereby requiring approaches for the automated management of actor skills, reputation, and trust. Discovering the right actor in mixed service-oriented systems is challenging due to scale and temporary nature of collaborations. We present a novel approach addressing the need for flexible involvement of experts and knowledge workers in distributed collaborations. We argue that the automated inference of trust between members is a key factor for successful collaborations. Instead of following a security perspective on trust, we focus on dynamic trust in collaborative networks. We discuss Human-Provided Services (HPSs) and an approach for managing user preferences and network structures. HPS allows experts to offer their skills and capabilities as services that can be requested on demand. Our main contributions center around a context-sensitive trust-based algorithm called ExpertHITS inspired by the concept of hubs and authorities in web-based environments. ExpertHITS takes trust-relations and link properties in social networks into account to estimate the reputation of users.','IEEE Transactions on Services Computing',1,'D. Schall; F. Skopik; S. Dustdar','ieee/service oriented architecture security.csv','ieee',''),(839,'Discovery and prioritization of web services based on fuzzy user preferences for QoS','2015','','Fuzzy Discovery;JESS API;PROMETHEE;QoS Parameters;Web Service','Web services are the key technologies for the web applications developed using Service Oriented Architecture (SOA). There are many challenges involved in implementing web services. Some of them are web service selection and discovery which involves matchmaking and finding the most suitable web service from a large collection of functionally-equivalent web services. In this paper a fuzzy-based approach for web service discovery is developed that model the ranking of QoS-aware web services as a fuzzy multi-criteria decision-making problem. To describe the web services available in the registry, ontology is created for each web service; and to represent the functional and imprecise Quality of Service (QoS) preferences of both the web service consumer and provider in linguistics term, fuzzy rule base is created with the help of Java Expert System Shell (JESS) API. To make decisions on multiple and conflicting QoS requirements, enhanced Preference Ranking Organization METHod for Enrichment Evaluation (PROMETHEE) model is adopted for QoS-based web service ranking. To demonstrate the abilities of the proposed framework, a web based system \"E-Recruitment System\" is implemented.','Computer, Communication and Control (IC4), 2015 International Conference on',1,'P. Gohar; L. Purohit','ieee/service oriented architecture security.csv','ieee',''),(840,'Design notations for secure software: a systematic literature review','2015','1',' Security Notation Software design Empirical study','Abstract In the past 10 years, the research community has produced a significant number of design notations to represent security properties and concepts in a design artifact. These notations are aimed at documenting and analyzing security in a software design model. The fragmentation of the research space, however, has resulted in a complex tangle of different techniques. Hence, practitioners are confronted with the challenging task of scouting the right approach from a multitude of proposals. Similarly, it is hard for researchers to keep track of the synergies among the existing notations, in order to identify the existing opportunities for original contributions. This paper presents a systematic literature review that inventorizes the existing notations and provides an in-depth, comparative analysis for each.','Software & Systems Modeling',1,'Alexander van den BergheRiccardo ScandariatoKoen YskoutWouter Joosen','springer/service oriented architecture security.csv','springer',''),(841,'Research on key technology for SaaS','2012','0','configurability;data security;multi tenant;software as a service','Software as a Service is becoming a popular research field in software development for its feature of low costing entry, easy implementation and zero infrastructure. SaaS is a multi tenant model which is different from traditional software in user data security, software development and deployment. This paper firstly analyses SaaS architecture, secondly introduces key technology of SaaS system from user data security, configurability user application and maturity model. Finally, this paper gives the future research directions.','Computer Science & Education (ICCSE), 2012 7th International Conference on',1,'Y. Zhu; J. Zhang','ieee/service oriented architecture security.csv','ieee','\0'),(842,'Defense of DDoS attack for cloud computing','2012','3','Cloud Computing; Cloud-filter; DDoS; SBTA; SOA','Though cloud computing is targeted to provide better utilization of resources using virtualization techniques and to take up much of the work load from the client, it is fraught with security risks. One of most serious threats is Distributed Denial of service attack (DDoS) which is easy to implement and affective. In this paper, we proposed an approach called SBTA which based on the use of SOA to traceback and find the source of DDoS attacks. We further propose a filter approach called Cloud-filter. Experiments show the defense system which is a combination of SBTA and Cloud-filter is effective in Cloud Computing. It was able to trace and identify the source most of these attacks messages of these attacks and reduce the packets that reconstruction path required. It also had a high detection rates with low false positives. © 2012 IEEE.','',1,'Yang L., Zhang T., Song J., Wang J., Chen P.','scopus/soa security.csv','scopus','\0'),(843,'Cooperative red teaming of a prototype surivable service-oriented system','2012','1','Adaptive Security;Red Team Evaluation;Service-Oriented Architecture;Survivability','An increasing number of military systems are being developed using service orientation. Some of the features that make service orientation appealing, like loose coupling, dynamism and composition-oriented system construction, make securing service-based systems more complicated. We have been developing technologies for Advanced Protected Services (APS) to improve the resilience and survival of services under cyber attack. These technologies introduce a layer to absorb, contain, and adapt to cyber attacks before attacks reach critical services. This paper describes an evaluation of these advanced protection technologies using cooperative red teaming. In cooperative red teaming, an independent red team launches attacks on a protected enclave in order to evaluate the efficacy and efficiency of the protection technologies, but the red team is provided full knowledge of the system under test and its protections, and is given escalating levels of access to the system. The red team also operates within agreed upon rules of engagement designed to focus their effort on useful evaluation results. Apart from presenting the evaluation results, we also discuss cooperative red teaming as an effective means of evaluating cyber security.','MILCOM 2012 - 2012 IEEE Military Communications Conference',1,'P. Pal; M. Atighetchi; A. Gronosky; J. Loyall; C. Payne; A. Sinclair; B. Froberg; R. Grant','ieee/service oriented architecture security.csv','ieee','\0'),(844,'Study and design of enterprise public security platform based on PKI','2014','','application security; authority management; LDAP; user management; WPKI','In order to solve the application security problems in the business operation system in a intensive, uniform and regular manner, a public fundamental platform model based on PKI technology is proposed, and some advanced design concepts like SCA, BPEL, etc. Are introduced for enhancing the reconstructing and reusing of the system. According to the characteristics of PKI system structure, it is expanded as the foundation and realizes the support for WPKI technology. The technical realization of unified user management, unified authority management and unified application security management, as well as the approaches of integrating the peripheral business system are given by analyzing the requirements of general security management of the informatization system. Furthermore, we also proposed methods to further maintain the security and stability of platform operation with technologies like queues, connection pool, etc. Those methods provide a much more uniform solution to the application security problems. The feasibility and effectiveness of the platform in improving the application security problems have been discussed by the illustrations and analysis of the core transaction processing flows of this platform. © 2014 IEEE.','',2,'Xiao Y., Zhao Y.','scopus/bpel security.csv','scopus',''),(845,'A data infrastructure reference model with applications: towards realization of a ScienceTube vision with a data replication service','2013','6',' Reference model ScienceTube Data infrastructure Replication','Abstract Abstract The wide variety of scientific user communities work with data since many years and thus have already a wide variety of data infrastructures in production today. The aim of this paper is thus not to create one new general data architecture that would fail to be adopted by each and any individual user community. Instead this contribution aims to design a reference model with abstract entities that is able to federate existing concrete infrastructures under one umbrella. A reference model is an abstract framework for understanding significant entities and relationships between them and thus helps to understand existing data infrastructures when comparing them in terms of functionality, services, and boundary conditions. A derived architecture from such a reference model then can be used to create a federated architecture that builds on the existing infrastructures that could align to a major common vision. This common vision is named as ’ScienceTube’ as part of this contribution that determines the high-level goal that the reference model aims to support. This paper will describe how a well-focused use case around data replication and its related activities in the EUDAT project aim to provide a first step towards this vision. Concrete stakeholder requirements arising from scientific end users such as those of the European Strategy Forum on Research Infrastructure (ESFRI) projects underpin this contribution with clear evidence that the EUDAT activities are bottom-up thus providing real solutions towards the so often only described ’high-level big data challenges’. The followed federated approach taking advantage of community and data centers (with large computational resources) further describes how data replication services enable data-intensive computing of terabytes or even petabytes of data emerging from ESFRI projects.','Journal of Internet Services and Applications',1,'Morris RiedelPeter WittenburgJohannes ReetzMark van de SandenJedrzej RybickiBenedikt von St ViethGiuseppe FiameniGiacomo MarianiAlberto MicheliniClaudio CacciariWillem ElbersDaan BroederRobert VerkerkElena ErastovaMichael LautenschlaegerReinhard Budig','springer/service oriented architecture security.csv','springer','\0'),(846,'Model-based approaches for interoperability of next generation enterprise information systems: state of the art and future challenges','2016','0',' Enterprise information Model-based interoperability Model-driven engineering/architecture Service systems Simulation Semantic approach Social networks','Abstract Enterprise businesses are more than ever challenged by competitors that frequently refine and tailor their offers to clients. In this context, enterprise information systems (EIS) are especially important because: (1) they remain one of the last levers to increase the performance and competitiveness of the enterprise, (2) we operate in a business world where the product itself has reached a limit of performance and quality due to uniform capacity of industrial tools in a globalized economy and (3) the EIS can increase the product value thanks to additional digital services (built on data associated to the product) in order to meet and fit better client’s needs. However, the use of EISs reaches a limit in collaborative environments because enterprises management methods diverge and EISs are mainly inflexible resource packages that are not built with an interoperability objective. Consequently, we need to make EISs interoperable in order to achieve the needed gains competitiveness and performance. This paper contribution can be summarized as follows: (1) it relates existing work and it examines barriers that, at the moment, are preventing further improvements due to current methodological and technological limits, and (2) it proposes a conceptual framework and five challenges that model based approaches must overcome to achieve interoperability between EIS in the near and long term.','Information Systems and e-Business Management',2,'Gregory ZacharewiczSaikou DialloYves DucqCarlos AgostinhoRicardo Jardim-GoncalvesHassan BazounZhongjie WangGuy Doumeingts','springer/bpmn security.csv','springer',''),(847,'The Design of a Configurable Reputation Service','2015','0',' Reputation Reuse, configurable SaaS Variability modeling','Abstract Novel trust and reputation models are frequently proposed by the research community to suit the needs of a specific environment. From the plethora of models that are available, it becomes difficult to know which features can be combined in general-purpose models suitable for commercial use. In order to address this problem, the focus of recent research on trust and reputation systems has been on the identification of common features in order to enable reuse. Organizations who need to use a reputation system within their application domain have to custom build it, which may be challenging for novice developers. This paper defines a strategy to develop a configurable SaaS reputation service that has the ability to support common features, but at the same time accommodate the unique requirements of a variety of online communities. A domain analysis reveals common features that can be arranged and re-organized using variability modeling to enable a SaaS providers to support the configuration of a SaaS reputation service.','',2,'Channel HillebrandMarijke Coetzee','springer/bpel security.csv','springer',''),(848,'Design and implementation for integrated services orchestration bus using SCA over heterogeneous networks','2012','0',' Integrated services Orchestration bus Service component architecture Heterogeneous networks','Abstract As the telecom and IT industries converge, pressure is mounting for convergence of service across the two domains, and future integrated services in the telecom domain are subject to specific requirements such as support for end-to-end communication sessions and mechanisms for service interaction across technological borders including telecom, enterprise, and Internet services. This paper provides an integrated services orchestration bus to handle the interoperation and compositions of services from the different domain and focus on the components lifecycle management, normalized message routing, normalized message parsing and mapping, events serialization processing, JNDI register management, and deploy unit. The multimedia conferencing-use case scenario is illustrated, and also the performance is measured and analyzed. Finally, we give the conclusions and future work.','annals of telecommunications - annales des télécommunications',1,'Cheng BoZhang YangYe BoZhou PengChen Junliang','springer/soa security.csv','springer','\0'),(849,'Anti-money-laundering System Based on Mainframe and SOA','2013','0','Anti-Money-laundering;Mainframe;Service Oriented Architecture','This paper presents an efficient anti-money laundering warning system. With the development of science and technology, money laundering is becoming more and more intelligent. Since the existing anti-money-laundering process cannot handle this kind of crime effectively, we build a system based on mainframe with SOA architectures. For one thing, as mainframes pioneer massive data processing capacity and high security, we take this advantage to handle magnanimity financial data. For another thing, we build super scalar architecture with SOA technology. Application module is presented by service and service bus can connect independent functional entities which carry out specific tasks. Therefore, the system can adapt to the variation of money laundering means.','Computational Intelligence and Communication Networks (CICN), 2013 5th International Conference on',1,'M. Shu; L. Rui; L. Dancheng; Z. Shuaizhen','ieee/service oriented architecture security.csv','ieee','\0'),(850,'Towards an ontology for cloud services','2012','12','Cloud brokerage; Cloud computing; Cloud governance; Cloud management; Semantic cloud','The emergence of cloud computing has created a shift in the service lifecycle, a shift meant to meet the requirements of cloud environments. Anticipating this, cloud governance, a step forward from SOA governance, tries to consolidate an environment where collaboration between various enterprises can be easily achieved. Cloud governance lays the groundwork for enabling easy application development and deployment by providing critical services that range from service management to security, monitoring and audit. As means of support for cloud computing, several ontologies have tried to bridge gaps and provide interoperability. None, however, have taken the time to analyze and define aspects that relate to service lifecycle and cloud governance. In this regard, our article proposes an ontology that is meant to complement existing ones. © 2012 IEEE.','',1,'Fortiş T.-F., Munteanu V.I., Negru V.','scopus/soa security.csv','scopus','\0'),(851,'A Conditional Lexicographic Approach for the Elicitation of QoS Preferences','2012','3',' QoS preferences multicriteria decision making service selection','Abstract In a service-oriented environment, clients can usually choose between several web services offering the same functionality. The web service selection can be automated by allowing clients to specify non-functional requirements such as quality of service. Clients should also be able to indicate how to make tradeoffs when some of these requirements cannot be met. The ability to capture tradeoff preferences is critical for selecting the best fitting web service. In this paper, we propose a method of expressing non-functional preferences, which requires minimal effort on the part of the clients, but offers great flexibility in managing tradeoffs. This method leads to a simple algorithm for selecting web services, which does not require sophisticated multicriteria decision techniques.','',1,'Raluca IordacheFlorica Moldoveanu','springer/service oriented architecture security.csv','springer','\0'),(852,'Design for future: managed software evolution','2015','1',' Software life cycle Design, maintenance and operation Legacy systems Co-evolution Knowledge carrying software','Abstract Innovative software engineering methodologies, concepts and tools which focus on supporting the ongoing evolution of complex software, in particular regarding its continuous adaptation to changing functional and quality requirements as well as platforms over a long period are required. Supporting such a co-evolution of software systems along with their environment represents a very challenging undertaking, as it requires a combination or even integration of approaches and insights from different software engineering disciplines. To meet these challenges, the Priority Programme 1593 Design for Future—Managed Software Evolution has been established, funded by the German Research Foundation, to develop fundamental methodologies and a focused approach for long-living software systems, maintaining high quality and supporting evolution during the whole life cycle. The goal of the priority programme is integrated and focused research in software engineering to develop methods for the continuous evolution of software and software/hardware systems for making systems adaptable to changing requirements and environments. For evaluation, we focus on two specific application domains: information systems and production systems in automation engineering. In particular two joint case studies from these application domains promote close collaborations among the individual projects of the priority programme. We consider several research topics that are of common interest, for instance co-evolution of models and implementation code, of models and tests, and among various types of models. Another research topic of common interest are run-time models to automatically synchronise software systems with their abstract models through continuous system monitoring. Both concepts, co-evolution and run-time models contribute to our vision to which we refer to as knowledge carrying software. We consider this as a major need for a long life of such software systems.','Computer Science - Research and Development',1,'Ursula GoltzRalf H. ReussnerMichael GoedickeWilhelm HasselbringLukas MärtinBirgit Vogel-Heuser','springer/soa security.csv','springer',''),(853,'Database management technology for smart grid dispatching and control systems','2015','1','Data management; Directive position; Horizontal integration; Security defense; Service-oriented architecture (SOA); Standard data interface; Vertical interaction','The architecture of the smart grid dispatching and control system is based on horizontal integration and vertical interaction. It is required to be of security, large capacity and high efficiency. Thus a new database management technology needs to be researched with database management as the core. The characteristics of the real-time database, commercial relation database, time-series memory database, and time-series disk database are described first along with the system\'s requirements on data management, followed by the data management architecture, the key technology of data management, and the interface and maintenance of data accessing. The data management technology has successfully been applied to different levels of the dispatching and control systems with the database as the core, providing powerful support to secure, stable and efficient operation of the system.','',1,'Peng H., Tao H., Yan Y., Wang J., Ji X., Xie X., Liu T.','scopus/service oriented architecture security.csv','scopus',''),(854,'A tool for managing the X1.V1 platform on the cloud','2015','','Cloud computing; Health records','The X1.V1 platform is a service oriented architecture, deployed on a set of Virtual Machines, that integrates services for managing fundamental activities in the ehealth scenario, such as Patient Identification, Clinical Document Repository, Prescription, and many others. The efficient provisioning of such services to citizens and to health professionals requires the adoption of increasingly powerful computing systems, in order to ensure that the growing number of service requests are served in acceptable time, even in case of computational peaks. Porting the X1.V1 platform on the Cloud could address the problem of the computational requirement mutability, since Cloud elasticity allows the reallocation of resources to Virtual Machines when necessary. This paper proposes a framework for managing the execution of the X1.V1 platform on the Cloud. This framework enables an easy, quick, and secure management of the Cloud resources allocation and reallocation to X1.V1 Virtual Machines, in order to enhance the platform performances, optimize resource utilization and, consequently, reduce the whole services cost. The design of the framework is focused on security aspects as well, because unauthorized accesses could lead to serious inefficiencies of the ehealth services. Finally, besides describing the architecture design and implementation of the X1.V1 Cloud manager framework, this paper also presents a set of experimental results which confirm the validity of the proposed approach to solve the X1.V1 platform performance issues in distinct reference scenarios. © 2015 SCPE.','',1,'Marzini E., Mori P., Di Bona S., Guerri D., Lettere M., Ricci L.','scopus/service oriented architecture security.csv','scopus',''),(855,'Towards definition of secure business processes','2012','10','Alignment of modelling languages; Business process model and notation (BPMN); Information systems; Security risk management','Business process modelling is one of the major aspects in the modern system development. Recently business process model and notation (BPMN) has become a standard technique to support this activity. Although BPMN is a good approach to understand business processes, there is a limited work to understand how it could deal with business security and security risk management. This is a problem, since both business processes and security concerns should be understood in parallel to support a development of the secure systems. In this paper we analyse BPMN with respect to the domain model of the IS security risk management (ISSRM). We apply a structured approach to understand key aspects of BPMN and how modeller could express secure assets, risks and risk treatment using BPMN. We align the main BPMN constructs with the key concepts of the ISSRM domain model. We show applicability of our approach on a running example related to the Internet store. Our proposal would allow system analysts to understand how to develop security requirements to secure important assets defined through business processes. In addition we open a possibility for the business and security model interoperability and the model transformation between several modelling approaches (if these both are aligned to the ISSRM domain model). © 2012 Springer-Verlag.','',2,'Altuhhova O., Matulevičius R., Ahmed N.','scopus/bpmn security.csv','scopus',''),(856,'On the Integration of Automatic Deployment into the ABS Modeling Language','2015','0','','Abstract In modern software systems, deployment is an integral and critical part of application development (see, e.g., the DevOps approach to software development). Nevertheless, deployment is usually overlooked at the modeling level, thus losing the possibility to perform deployment conscious decisions during the early stages of development. In this paper, we address the problem of promoting deployment as an integral part of modeling, by focusing on the Abstract Behavioral Specification (ABS) language used for the specification of models of systems composed of concurrent objects consuming resources provided by deployment components. We extend ABS with class annotations expressing the resource requirements of the objects of that class. Then we define a tool that, starting from a high-level declaration of the desired system, computes a model instance of such system that optimally distributes objects over available deployment components.','',2,'Stijn de GouwMichael LienhardtJacopo MauroBehrooz NobakhtGianluigi Zavattaro','springer/bpel security.csv','springer',''),(857,'Decision-Making Based on Incident Data Analysis','2014','3','cloud computing;decision support;risk management;simulation evaluation','The intertwining of service-oriented architectures, service management concepts and cloud computing services leads to a new form of service landscapes. These modern IT service landscapes with loosely coupled services, short-term contracting and on-demand service provisioning have added an additional layer of complexity in service sourcing decision processes and thus require new forms of risk management and decision support for service sourcing. In addition, flexibility has become an important managerial variable in service management, which adds even more complexity to service management decisions. To address this rise of complexity, we analyse service sourcing based on a formal model and propose a risk-aware decision model for service sourcing. We show that our approach supports IT service management with continuous decision support and an effective and always current view on the risk situation of a service portfolio by means of a simulation based on the analysis of incident data from a real-world high demand financial trading platform.','2014 IEEE 16th Conference on Business Informatics',1,'N. Roedder; P. Karaenke; R. Knapper; C. Weinhardt','ieee/service oriented architecture security.csv','ieee','\0'),(858,'An Architecture for E-Government Social Web Applications','2012','0','Accessibility;Java;System Architecture;eGovernment','With the advent Web 2.0 a large number of social web applications, such as Blogs, Wikis and micro blogging services such as Twitter have emerged. These applications are often available as open source software or free services. The use of social web applications in public administration offers the chance to leverage the work of public administrations and to connect public authorities. Unfortunately, available systems do not meet the requirements of public administration. They are implemented in scripting languages like PHP or Perl and do not scale well and also suffer from security issues. Furthermore, e-government applications have to be compliant to auditing standards, guarantee accessibility etc. In this paper a scalable and extensible architecture especially crafted for the use of Web 2.0 applications in public administration is presented. Special emphasis is given to the topic of accessibility.','Complex, Intelligent and Software Intensive Systems (CISIS), 2012 Sixth International Conference on',1,'J. Brüstel; T. Preuss; C. Schwenke; D. Wieczorek','ieee/service oriented architecture security.csv','ieee','\0'),(859,'Application of data synchronization based on ESB','2010','1','ESB;Integration;SOA;WebService','Data synchronization is an important issue which to be resolved in digital campus. This paper, according to the characteristic of Web Services technology, XML technology and SOA(Services Oriented Architecture), puts forward a solution based on Enterprise Service Bus(ESB). We have implemented data synchronization between HR System and LDAP, and verified that the program has a strong practical.','Geoscience and Remote Sensing (IITA-GRS), 2010 Second IITA International Conference on',1,'Zhitong Su; Xiaoli Hou','ieee/webservice security.csv','ieee','\0'),(860,'An infrastructure for smart hospitals','2012','3',' Pervasive access eHospitals RFID systems Photosensors Context-aware services Service Oriented Architecture','Abstract In healthcare facilities most of the daily activities require strict coordination between clinicians, who often operate under heavy workloads and minimal workforce conditions in environments filled with increasingly complex technology. Ubiquitous Computing applications constitute a suitable solution for both reducing medical costs and improving patient safety by better supporting clinical processes. In this study we introduce an intelligent infrastructure for smart hospitals which implements basic services to optimize medical staff/patient interactions and grants ubiquitous and transparent access to clinical data stored in standard clinical databases. This infrastructure relies on the integration of Radio Frequency IDentification (RFID) and photosensor technologies to identify, locate and track clinicians and patients equipped with mobile devices and wearable RFID tags.','Multimedia Tools and Applications',1,'Gennaro Della VecchiaLuigi GalloMassimo EspositoAntonio Coronato','springer/service oriented architecture security.csv','springer','\0'),(861,'Towards Risk-Aware Planning of Service Delivery Operations','2015','0','AI Task Planners;Automation;Risk;Security;Service Delivery;System Administration;Vulnerability','Infrastructure and Application Service Delivery typically comprises of complex workflows such as software installation/configuration, OS configuration, file system management etc. To manage costs as well as SLAs, enterprises constantly look towards automation of these workflows. While declarative approaches for automated workflow planning have been described in the literature, they do not address the risk exposure of the system. We present a novel two-phase risk-aware approach to planning which allows to \"look-ahead\" beyond the desired end state and compute a vulnerability score that measures how vulnerable the system could be in future, if the plan were to be executed now. We demonstrate our approach on a web service migration use-case using SGPlan as the preference-based planner. We also implement an end-to-end framework based on Puppet and validate it on a test bed of virtual machines. The implementation validates the generality of our approach in finding a less-vulnerable plan in scenarios where there are multiple plans.','Services Computing (SCC), 2015 IEEE International Conference on',1,'M. Vasa; A. Jadatharan; B. Srivastava','ieee/service oriented architecture security.csv','ieee',''),(862,'Forensic Process as a Service (FPaaS) for Cloud Computing','2015','','business process execution language (BPEL); cloud computing; cloud forensics; forensic process','Cloud computing is the technology that enables individuals and businesses to utilize computing services (e.g. online file storage, social networking sites, webmail)and a shared pool of resources (e.g. data storage space, networks, user applications) from anywhere over the Internet. Cloud computing has become popular as a cost-effective and convenient computing paradigm. However, cloud computing architecture is at its infancy stage and lacks support for security and forensic investigations. Due to the distributed and virtual nature of cloud, malicious activities can be carried out very easily and are very difficult to subsequently investigate. Cloud forensic investigators currently face challenges as they lack forensic tools and techniques in context of cloud. This highlights the need to develop the new research area of digital forensics in the cloud computing model. This paper presents a cloud forensic process that consists of (i) Identification, (ii) Collection/Acquisition and preservation, (iii) Examination/Processing and analysis, and (iv) Results dissemination phases. In addition, this paper develops the proposed forensic process as a service (FPaaS) using cloud-based Business Process Execution Language (BPEL) that combines the four phases/services into a new composite service called FPaaS. © 2015 IEEE.','',2,'Eleyan A., Eleyan D.','scopus/bpel security.csv','scopus',''),(863,'Goal-based business service composition','2013','0',' Business service Goal model Service discovery Composition Selection Ontology','Abstract As organizations operate under a highly dynamic business world, they can only survive by optimizing their business processes (BPs) and outsourcing complementary functionality to their core business. To this end, they adopt service-orientation as the underlying mechanism enabling BP optimization and evolution. BPs are now seen as business services (BSs) that span organization boundaries and ought to satisfy cross-organizational objectives. As such, various BS design approaches have been proposed. However, these approaches cannot re-use existing business and software services (SSs) to realize the required BS functionality. Moreover, non-functional requirements and their impact on BS design are not considered. This research gap is covered by a novel, goal-oriented method able to discover those BS and SS compositions fulfilling the required BS functional and non-functional goals at both the business and IT level. This method coherently integrates the design steps involved and properly handles the lack of required BS components. It also advances the state-of-the-art in service composition by being able to both select the best composition plan and the best services realizing the plan tasks based on novel plan and service selection criteria.','Service Oriented Computing and Applications',1,'Kyriakos KritikosSylvain KubickiEric Dubois','springer/soa security.csv','springer','\0'),(864,'Model-based security engineering of SOA systems using modified \"UML-SOA-Sec\"','2012','4','Business process modelling; Domain specific language; Model driven security; Security objectives; Service oriented architecture; Unified modeling language','In SOA environment, software systems are composed of services which are scattered across enterprises and architectures. Security play vital role during the design, development and operation of SOA application. However, analysis of today\'s software development approaches reveals that the engineering of security into the system design is often neglected. Currently security is incorporated in SOA applications in an ad-hoc manner and integrated during the applications development phase or administration phase or it is out sourced. In practice security is not defined during the early phases of software development and left onto developers. Properly configuring security requirements in SOA applications is quite difficult for developers because they are not security experts; furthermore, SOA security is cross-domain and all required information is not available at downstream phases. This reveals the importance of adding security objectives in early development phases i.e. at design phase by the business process expert. However, a business process expert is unable to specify security objectives due to lake of security modelling elements in a general purpose modelling languages. As a result, he/she either ignores the security objectives in a business process model or indicates them in textual way. The post-hoc, low-level integration of security has a negative impact on resulting SOA applications. A Domain Specific Language named \"UML-SOA-Sec\" is proposed for the Model driven development of secure SOA systems based on the UML. Aim is to facilitate the business process expert in modelling the security requirements along the business process modelling. This security annotated business process model will facilitate the security expert in specifying the concrete security implementation. As a proof of work; proposed \"UML-SOA-Sec\" is applied to modelling of a typical business process of healthcare system.','',1,'Saleem M.Q., Jaafar J.B., Hassan M.F.','scopus/service oriented architecture security.csv','scopus','\0'),(865,'A Robust Framework for Securing Composed Web Services','2016','0',' Component-based systems Information flow security Non-interference Dependency flow graph Automated verification','Abstract This paper proposes a framework that automatically checks and configures data security in Web Services starting from high level business requirements. We consider BPEL -based composed Web Services. BPEL processes and initial security parameters are represented as component-based models labeled with security annotations. These models are formal and enable automated analysis and synthesis of security configurations, under the guidance of the service designer. The security property considered is the non-interference. The overall approach is practical since security is defined separately from functional processes and automatically verified. We illustrate its utility to solve intricate security problems using a smart grid application.','',2,'Najah Ben SaidTakoua AbdellatifSaddek BensalemMarius Bozga','springer/bpel security.csv','springer',''),(866,'Factors affecting the organizational adoption of service-oriented architecture (SOA)','2014','7',' Service-oriented architecture (SOA) SOA and EAM Service-oriented applications architecture Enterprise architecture IT adoption SOA success South Africa','Abstract Service-oriented architecture (SOA) takes an architectural approach to designing and implementing IT solutions. Although it is fast emerging as one of the major architectural styles to execute enterprise architecture management, academic empirical research on SOA adoption is scarce, with most studies focusing on qualitative analysis. This study investigates organizational SOA adoption in South Africa and combines the perspectives of the diffusion of innovations theory and the technology-organization-environment framework into one comprehensive model of SOA adoption. In order to validate the research instrument and to gauge the state of SOA adoption, an online survey was conducted among enterprise architects in South African organizations. The survey provides insights in the perceived risks, obstacles but also expected benefits of SOA adoption. The results also highlight a number of factors significantly influencing SOA adoption in South Africa. Use of multiple standards and platforms, compatibility, top management support, good governance and strategy, adequate human and financial resources, vendor support for integration and development tools are all significant factors for a fruitful SOA implementation. Finally, all of the above adoption factors as well as cost and complexity were also found to correlate significantly with the degree of success of the SOA implementation as perceived by the IT or EA department.','Information Systems and e-Business Management',1,'Elzavita MacLennanJean-Paul Van Belle','springer/service oriented architecture security.csv','springer','\0'),(867,'QoS Analysis in Heterogeneous Choreography Interactions','2013','0',' Heterogeneous Choreographies Quality of Service Interaction Paradigms Middleware Connectors','Abstract With an increasing number of services and devices interacting in a decentralized manner, choreographies are an active area of investigation. The heterogeneous nature of interacting systems leads to choreographies that may not only include conventional services, but also sensor-actuator networks, databases and service feeds. Their middleware behavior within choreographies is captured through abstract interaction paradigms such as client-service , publish-subscribe and tuple space . In this paper, we study these heterogeneous interaction paradigms, connected through an eXtensible Service Bus proposed in the CHOReOS project. As the functioning of such choreographies is dependent on the Quality of Service (QoS) performance of participating entities, an intricate analysis of interaction paradigms and their effect on QoS metrics is needed. We study the composition of QoS metrics in heterogeneous choreographies, and the subsequent tradeoffs. This produces interesting insights such as selection of a particular system and its middleware during design time or end-to-end QoS expectation/guarantees during runtime. Non-parametric hypothesis tests are applied to systems, where QoS dependent services may be replaced at runtime to prevent deterioration in performance.','',2,'Ajay KattepurNikolaos GeorgantasValérie Issarny','springer/bpmn security.csv','springer','\0'),(868,'Service-oriented network architecture: Significant issues and principles of communication','2015','','Flexible network; Future internet; Service; Service-oriented architecture; Service-oriented network architecture; SOA; SONATE','The internet is not designed for any specific application purposes, rather it is for generic and evolve purposes. Although the architecture of the internet is based on a number of principles including self-describing, datagram packet, the end-to-end argument, diversity in technology, and global addressing, but David D. Clark along with J.H. Saltzer highlighted end-to-end arguments amongst the most influential of all the communication protocol design goals. Also that internet adopted a method of patchwork approach to cope with the needs of evolution and revolution of technology growth with acceptable cost and speed. The future network is expected to host much more than today\'s applications in an efficient manner but experts predicted rigidity as one of the failure factors for current internet (CI). In this paper the authors discuss various issues involved in the flexible network architecture - SONATE (Reuther and Henric, 2008) while incorporating security functionality \'inside\' the architecture. Copyright © 2015 Inderscience Enterprises Ltd.','',1,'Rudra B., Manu A.P., Vyas O.P.','scopus/service oriented architecture security.csv','scopus',''),(869,'A new security metric for SOA implementations','2013','1','Service-Oriented Architecture security; SOAP security; Web Serives; XPath Injection','Service Oriented Architecture (SOA) is an architectural style used to handle transactions involving money, identity, and other sensitive and valuable information. Web Services that implement an SOA must be secure. This paper will describe the common vulnerabilities of Web Services and SOA and the best practices that should be followed in securing the software behind them, and then a new security metric, XPath Exposure Ratio, for Web Services and SOA implementations is proposed. In addition to the discussion on how to apply the new metric, the advantages of the new security metric are also illustrated. © 2013 IEEE.','',1,'Larson D., Liu J.','scopus/service oriented architecture security.csv','scopus','\0'),(870,'User-Controlled Dynamic Access Credential Enrichment for Run-time Service Selection','2012','0','Dynamic Service Selection;Mediated Access Control;Service Access Control','Dynamic run-time selection and sourcing of service components provide considerable potential in todays changing business world. They provide means to counter agility, flexibility and the ability to integrate applications originating from systems of different security domains. While the advantages are obvious strong implications to security in general and authorization and access control in particular do exist. In this paper we present an infrastructure-based approach for en-route dynamic credential enrichment. It enables dynamic replacement of access-restricted service instances by implementing runtime supplementation of security tokens. If authorized, a security intermediary accesses user profiles and retrieves security tokens supplied by identity providers and needed for access control at dynamically selected access-restricted service instances.','e-Business Engineering (ICEBE), 2012 IEEE Ninth International Conference on',1,'C. Fritsch; G. Pernul','ieee/service oriented architecture security.csv','ieee','\0'),(871,'A systematic literature review of service choreography adaptation','2013','5',' Service choreography Choreographies adaptation Choreographies customization Service composition Systematic review','Abstract A service choreography is a distributed service composition in which services interact without a centralized control. Adequate adaptation strategies are required to face complex and ever-changing business processes, given the collaborative nature of choreographies. Choreographies should also be able to adapt to changes in its non-functional requirements, such as response time, and especially for large-scale choreographies, adaptation strategies need to be automated and scale well. However, the body of knowledge regarding choreography adaptation approaches has not yet been consolidated and systematically evaluated. By means of a systematic literature review, in which we examined seven scientific paper sources, we identified and analyzed the state-of-the-art in choreography adaptation. We found 24 relevant primary studies and grouped them into six categories: model-based, measurement-based, multi-agent-based, formal method-based, semantic reasoning-based, and proxy layer-based. We analyzed (i) how each strategy deals with different types of requirements, (ii) what their required degree of human intervention is, (iii) how the different studies considered scalability, (iv) what implementations are currently available, and (v) which choreography languages are employed. From the selected studies, we extracted key examples of choreography adaptation usage and analyzed the terminology they adopted with respect to dynamic adaptation. We found out that more attention has been devoted to functional requirements and automated adaptation; only one work performs scalability evaluation; and most studies present some sort of implementation and use a specific choreography notation.','Service Oriented Computing and Applications',1,'Leonardo A. F. LeiteGustavo Ansaldi OlivaGuilherme M. NogueiraMarco Aurélio GerosaFabio KonDejan S. Milojicic','springer/soa security.csv','springer','\0'),(872,'Aspect of Assembly: From Theory to Performance','2012','2',' AOP runtime adaptation ubiquitous computing CBSE consistency performance','Abstract Ubiquitous computing systems raise numerous challenges in software engineering. Among these, the dynamic variation of open ubiquitous computing environments requires continuous adaptation of applications. Aspect-Oriented Programming is a well-adapted technique to bring together independence of concerns and extensibility for dynamic adaptation. However, the dynamic adaptation has to occur within a reasonable timeframe, which requires a detailed knowledge of the weaving duration. In this paper, we introduce “Aspect of Assembly”, an aspect-oriented approach to develop services- and components-based applications. Then we study the response time of the adaptation process by decomposing the weaving process. The model of the duration of the adaptation process enables us to define a priori constraints to meet temporal requirements for real-world applications. Throughout this paper, we illustrate our work with an actual industrial use case to provide service continuity for a hydrant worker in the water industry.','',1,'Jean-Yves TigliStéphane LavirotteGaëtan ReyNicolas FerryVincent HourdinSana Fathallah Ben AbdennejiChristophe VergoniMichel Riveill','springer/service oriented architecture security.csv','springer','\0'),(873,'100-km-reach, 40 Gb/s/λ downstream and 10 Gb/s/λ upstream, channel-reuse WDM-PON employing tunable laser with back-reflection optical signal detection-based self wavelength management','2015','0',' WDM-PON Channel-reuse Tunable laser Automatic wavelength control Rayleigh backscattering noise','Abstract We experimentally demonstrate a 100-km-reach, channel-reuse wavelength-division-multiplexing passive optical network (WDM-PON) with 40 Gb/s/λ downstream and 10 Gb/s/λ upstream transmission and a back-reflection optical signal detection-based automatic wavelength control method for a tunable laser used in a colorless optical network unit. Channel-reuse, full-duplex, 40 Gb/s/λ downstream and 10 Gb/s/λ upstream transmission on a 100 GHz WDM grid with 100 km reach was achieved. The transmission performance was measured using different optical signal to back-reflection optical signal ratios, optical signal to Rayleigh backscattering noise ratios, and different central wavelength shifts between the upstream and downstream signals in the channel-reuse system.','Optical and Quantum Electronics',1,'Zhiguo ZhangLiqian WangXu JiangXue Chen','springer/soa security.csv','springer',''),(874,'Towards a reference architecture for service-oriented cross domain security infrastructures','2014','','Cross Domain Communications; Ontology; Protocol; Reference Architecture; Security Guard; Service Oriented Architecture; Workflow','Today’s Cross Domain Communication (CDC) infrastructure largely consists of guards built to vendor specifications. Such an infrastructure often fails to provide adequate protections for CDC workflows involving Service Oriented Architectures. Focusing on the transport layer and oblivious to the context of the information exchanges, the guards often rely on rudimentary filtering techniques that require frequent human intervention to adjudicate messages. In this paper, we present a set of key requirements and design principles for a Service Oriented Cross Domain Security Infrastructure in form of a CDC Reference Architecture, featuring domain-associated guards as active workflow participants. This reference architecture will provide the foundation for the development of protocols and ontologies enabling runtime coordination among CDC elements, leading to more secure, effective, and interoperable CDC solutions. © Springer International Publishing Switzerland 2014.','',1,'Zhu W., Vizenor L., Srinivasan A.','scopus/service oriented architecture security.csv','scopus','\0'),(875,'Secure service composition with information flow control in service clouds','2015','2','Data dependencies; Information flow security; Service cloud; Service composition','Service clouds built on cloud infrastructures and service-oriented architecture provide users with a novel pattern of composing basic services to achieve complicated tasks. However, in multiple clouds environment, outsourcing data and applications pose a great challenge to information flow security for the composite services, since sensitive data may be leaked to unauthorized attackers during service composition. Although model checking has been considered as a promising approach to enforce information flow security precisely, its high complexity on modeling and the heavy cost on verification cause great burdens to the process of service composition. In this paper, we propose a distributed approach to composing services securely with information flow control. In our approach, each service component is first verified through model checking, and then a compositional verification procedure is executed to ensure the information flow security along with the composition of these services. The experimental results indicate that our approach can reduce the cost of verification compared with the global verification approach. © 2014 Elsevier B.V. All rights reserved.','',1,'Xi N., Sun C., Ma J., Shen Y.','scopus/service oriented architecture security.csv','scopus',''),(876,'Data-Centric Access Control with Confidentiality for Collaborating Smart Grid Services Based on Publish/Subscribe Paradigm','2013','0','Access Control;Publish/Subscribe;SOA;Smart Grid','With the smart grid coming near, its information systems become more and more open with services as building blocks. Different smart grid services in different control centers collaborate to realize the real-time control and protection of power systems. The publish/subscribe paradigm makes smart grid service collaborations more real-time and flexible because of the space, time and control decoupling of event producer and consumer, which can be used to establish an appropriate communication infrastructure. Unfortunately, a publish/ subscribe-based smart grid service does not know who consumes its events, and consumers do not know who produces the events either. In this environment, the smart grid service cannot directly control access because of anonymous and indirect service interactions. To address the above issues, this paper at first describes the service communication foundation for smart grid services, and then defines their security model supporting data-centric methodology. Based on such model, underpinning network capabilities can be integrated to help smart grid services control access. The key point in our access control solution is to preserve the service interaction characteristics of the publish/subscribe-based smart grid services: anonymous, multicast and session-control. So two special kinds of event types are used to accomplish authorization request and granting with being consistent with the publish/subscribe paradigm. Attaching policy method is adopted to preserve the anonymity feature for collaborating smart grid services. A delegation scheme for brokers to enforce policies is finally constructed based on attribute-based encryption, which also brings confidentiality for smart grid services.','2013 IEEE 33rd International Conference on Distributed Computing Systems Workshops',1,'Y. Zhang; J. l. Chen','ieee/soa security.csv','ieee','\0'),(877,'Advanced approaches for wireless sensor network applications and cloud analytics','2015','0','','Although wireless sensor network applications are still at early stages of development in the industry, it is obvious that it will pervasively come true and billions of embedded microcomputers will become online for the purpose of remote sensing, actuation and sharing information. According to the estimations, there will be 50 billion connected sensors or things by the year 2020. As we are developing first to market wireless sensor-actuator network devices, we have chance to identify design parameters, define technical infrastructure and make an effort to meet scalable system requirements. In this manner, required research and development activities must involve several research directions such as massive scaling, creating information and big data, robustness, security, privacy and human-in-the-loop. In this study, wireless sensor networks and Internet of things concepts are not only investigated theoretically but also the proposed system is designed and implemented end-to-end. Low rate wireless personal area network sensor nodes with random network coding capability are used for remote sensing and actuation. Low throughput embedded IP gateway node is developed utilizing both random network coding at low rate wireless personal area network side and low overhead websocket protocol for cloud communications side. Service-oriented design pattern is proposed for wireless sensor network cloud data analytics.','Intelligent Sensors, Sensor Networks and Information Processing (ISSNIP), 2015 IEEE Tenth International Conference on',1,'G. Ozvural; G. K. Kurt','ieee/service oriented architecture security.csv','ieee',''),(878,'Workflows for quantitative data analysis in the social sciences','2015','1',' e-Social science Quantitative data analysis Scientific workflow Service-oriented architecture Statistical analysis','Abstract The background is given as to how statistical analysis is used by quantitative social scientists. Developing statistical analyses requires substantial effort, yet there are important limitations in current practice. This has motivated the authors to create a more systematic and effective methodology with supporting tools. The approach to modelling quantitative data analysis in the social sciences is presented. Analysis scripts are treated abstractly as mathematical functions and concretely as web services. This allows individual scripts to be combined into high-level workflows. A comprehensive set of tools allows workflows to be defined, automatically validated and verified, and automatically implemented. The workflows expose opportunities for parallel execution, can define support for proper fault handling, and can be realised by non-technical users. Services, workflows and datasets can also be readily shared. The approach is illustrated with a realistic case study that analyses occupational position in relation to health.','International Journal on Software Tools for Technology Transfer',2,'Kenneth J. TurnerPaul S. Lambert','springer/bpel security.csv','springer',''),(879,'A Cyber Security Ontology for BPMN-Security Extensions','2015','','BPMN;Cyber Security Ontology;Security Extension','Every so often a paper is published presenting a new extension for modelling cyber security requirements in Business Process Model and Notation (BPMN). The frequent production of new extensions by experts belies the need for a richer and more expressive representation of security requirements in BPMN processes. One reason for this is that current extensions focus on only specific areas and so fail to provide adequate coverage of the cyber security domain. In this paper, we present our work considering an analysis of existing extensions and identify the security concepts used within each of them. We discuss how there is as yet no single extension which covers a comprehensive range of cyber security concepts. Consequently there is no adequate solution for accurately specifying cyber security requirements within BPMN. In order to address this, we propose a new comprehensive ontology which includes all concepts potentially modellable in BPMN related to cyber security. We explain how this ontology can be used as the basis for developing future BPMN-security extensions, and explore the challenges that must be overcome in order to develop a representation that is both effective and with adequate coverage of security requirements.','Computer and Information Technology; Ubiquitous Computing and Communications; Dependable, Autonomic and Secure Computing; Pervasive Intelligence and Computing (CIT/IUCC/DASC/PICOM), 2015 IEEE International Conference on',2,'C. L. Maines; D. Llewellyn-Jones; S. Tang; B. Zhou','ieee/bpmn security.csv','ieee','\0'),(880,'XSpRES: Robust and effective XML signatures for Web Services','2012','1','Cloud; SOA; Web Services; WS-security; XML Signature; XML Signature Wrapping','XML Encryption and XML Signature are fundamental security standards forming the core for many applications which require to process XML-based data. Due to the increased usage of XML in distributed systems and platforms such as in SOA and Cloud settings, the demand for robust and effective security mechanisms increased as well. Recent research work discovered, however, substantial vulnerabilities in these standards as well as in the vast majority of the available implementations. Amongst them, the so-called XML Signature Wrapping attack belongs to the most relevant ones. With the many possible instances of this attack type, it is feasible to annul security systems relying on XML Signature and to gain access to protected resources as has been successfully demonstrated lately for various Cloud infrastructures and services. This paper contributes a comprehensive approach to robust and effective XML Signatures for SOAP-based Web Services. An architecture is proposed, which integrates the required enhancements to ensure a fail-safe and robust signature generation and verification. Following this architecture, a hardened XML Signature library has been implemented. The obtained evaluation results show that the developed concept and library provide the targeted robustness against all kinds of known XML Signature Wrapping attacks. Furthermore the empirical results underline, that these security merits are obtained at low efficiency and performance costs as well as remain compliant with the underlying standards.','',1,'Mainka C., Jensen M., Iacono L.L., Schwenk J.','scopus/soa security.csv','scopus','\0'),(881,'A high-level service composition model for building applications on sensor networks','2013','2','abstract composition; Business Process; Sensor Networks; Service orchestration; Service Oriented Analysis','Recently, Sensor Networks (SNs) have become an emergent technology for various applications areas such as security and surveillance applications, traffic control, logistics, energy control in public and private buildings, etc. However, designing and constructing new applications using these technologies are still a very hard task. There is no standard API to access to the large variety of sensors and actuators which have also very different functionalities and capabilities. Applications are in general very specific and tightly coupled with the underlying infrastructure. Reuse is also very difficult or even impossible. This paper aims to provide a high-level environment based on a three levels model to program such infrastructure. At the lower level, sensors and actuators are encapsulated by lightweight web services, accessible through gateways. On top of this layer, abstract blocks denote sensors and actuators participating in the composite service along with a semantic description. Finally, these blocks are orchestrated as abstract graphs describing complex applications. This environment has been prototyped using service standards such as BPMN and BPEL within the context of the VITRO European project and validated by several use cases. © 2013 IEEE.','',2,'Movahedi Z., Defude B.','scopus/bpel security.csv','scopus','\0'),(882,'Cloud-Based Code Execution Framework for scientific problem solving environments','2013','3','','Abstract In this paper we present a novel Code Execution Framework that can execute code of different problem solving environments (PSE), such as MATLAB, R and Octave, in parallel. In many e-Science domains different specialists are working together and need to share data or even execute calculations using programs created by other persons. Each specialist may use a different problem solving environment and therefore the collaboration can become quite difficult. Our framework supports different cloud platforms, such as Amazon Elastic Compute Cloud (EC2) and Eucalyptus. Therefore it is possible to use hybrid cloud infrastructures, e.g. a private cloud based on Eucalyptus for general base-level computations using the available local resources and additionally a public Amazon EC2 for peaks and time-dependent calculations. Our approach is to provide a secure platform that supports multiple problem solving environments, execute code in parallel with different parameter sets using multiple cores or machines in a cloud environment, and support researchers in executing code, even if the required problem solving environment is not installed locally. Additionally, existing parallel resources can easily be utilized for ongoing scientific calculations. The framework has been validated by and used in our real project addressing large-scale breath analysis research. Its research-prototype version is available as a PaaS cloud service model. In the future researchers will be able to install this framework on their own cloud infrastructures.','Journal of Cloud Computing: Advances, Systems and Applications',1,'Thomas LudescherThomas FeilhauerPeter Brezany','springer/webservice security.csv','springer','\0'),(883,'Requirements for guidelines systems: implementation challenges and lessons from existing software-engineering efforts','2012','2','','Abstract Background A large body of work in the clinical guidelines field has identified requirements for guideline systems, but there are formidable challenges in translating such requirements into production-quality systems that can be used in routine patient care. Detailed analysis of requirements from an implementation perspective can be useful in helping define sub-requirements to the point where they are implementable. Further, additional requirements emerge as a result of such analysis. During such an analysis, study of examples of existing, software-engineering efforts in non-biomedical fields can provide useful signposts to the implementer of a clinical guideline system. Methods In addition to requirements described by guideline-system authors, comparative reviews of such systems, and publications discussing information needs for guideline systems and clinical decision support systems in general, we have incorporated additional requirements related to production-system robustness and functionality from publications in the business workflow domain, in addition to drawing on our own experience in the development of the Proteus guideline system ( http://​proteme.​org ). Results The sub-requirements are discussed by conveniently grouping them into the categories used by the review of Isern and Moreno 2008. We cite previous work under each category and then provide sub-requirements under each category, and provide example of similar work in software-engineering efforts that have addressed a similar problem in a non-biomedical context. Conclusions When analyzing requirements from the implementation viewpoint, knowledge of successes and failures in related software-engineering efforts can guide implementers in the choice of effective design and development strategies.','BMC Medical Informatics and Decision Making',2,'Hemant ShahRaymond D AllardRobert EnbergGanesh KrishnanPatricia WilliamsPrakash M Nadkarni','springer/bpel security.csv','springer','\0'),(884,'Adaptable, model-driven security engineering for SaaS cloud-based applications','2014','5',' Software-as-a-service Model-driven engineering Adaptive-security Security engineering Tenant-oriented security','Abstract Software-as-a-service (SaaS) multi-tenancy in cloud-based applications helps service providers to save cost, improve resource utilization, and reduce service customization and maintenance time. This is achieved by sharing of resources and service instances among multiple “tenants” of the cloud-hosted application. However, supporting multi-tenancy adds more complexity to SaaS applications required capabilities. Security is one of these key requirements that must be addressed when engineering multi-tenant SaaS applications. The sharing of resources among tenants—i.e. multi-tenancy—increases tenants’ concerns about the security of their cloud-hosted assets. Compounding this, existing traditional security engineering approaches do not fit well with the multi-tenancy application model where tenants and their security requirements often emerge after the applications and services were first developed. The resultant applications do not usually support diverse security capabilities based on different tenants’ needs, some of which may change at run-time i.e. after cloud application deployment. We introduce a novel model-driven security engineering approach for multi-tenant, cloud-hosted SaaS applications. Our approach is based on externalizing security from the underlying SaaS application, allowing both application/service and security to evolve at runtime. Multiple security sets can be enforced on the same application instance based on different tenants’ security requirements. We use abstract models to capture service provider and multiple tenants’ security requirements and then generate security integration and configurations at runtime. We use dependency injection and dynamic weaving via Aspect-Oriented Programming (AOP) to integrate security within critical application/service entities at runtime. We explain our approach, architecture and implementation details, discuss a usage example, and present an evaluation of our approach on a set of open source web applications.','Automated Software Engineering',1,'Mohamed AlmorsyJohn GrundyAmani S. Ibrahim','springer/soa security.csv','springer','\0'),(885,'An Architecture for Data Security in Cloud Computing','2014','6','Cloud computing;data privacy;data security;symmetric cryptography;virtualization','Cloud computing is a more flexible, cost effective and proven delivery platform for providing business or consumer services over the Internet. Cloud computing supports distributed service oriented architecture, multi-user and multi-domain administrative infrastructure. So, it is more prone to security threats and vulnerabilities. At present, a major concern in cloud adoption is towards its security and privacy. Security and privacy issues are of great concern to cloud service providers who are actually hosting the services. In most cases, the provider must guarantee that their infrastructure is secure and clients\' data and applications are safe, by implementing security policies and mechanisms. The security issues are organized into several general categories: trust, identity management, software isolation, data protection, availability reliability, ownership, data backup, data portability and conversion, multi platform support and intellectual property. In this paper, it is discuss about some of the techniques that were implemented to protect data and propose architecture to protect data in cloud. This architecture was developed to store data in cloud in encrypted data format using cryptography technique which is based on block cipher.','Computing and Communication Technologies (WCCCT), 2014 World Congress on',1,'M. Sugumaran; B. B. Murugan; D. Kamalraj','ieee/service oriented architecture security.csv','ieee','\0'),(886,'On the Role of Fitness, Precision, Generalization and Simplicity in Process Discovery','2012','5','','Abstract Process discovery algorithms typically aim at discovering process models from event logs that best describe the recorded behavior. Often, the quality of a process discovery algorithm is measured by quantifying to what extent the resulting model can reproduce the behavior in the log, i.e. replay fitness. At the same time, there are many other metrics that compare a model with recorded behavior in terms of the precision of the model and the extent to which the model generalizes the behavior in the log. Furthermore, several metrics exist to measure the complexity of a model irrespective of the log. In this paper, we show that existing process discovery algorithms typically consider at most two out of the four main quality dimensions: replay fitness , precision , generalization and simplicity . Moreover, existing approaches can not steer the discovery process based on user-defined weights for the four quality dimensions. This paper also presents the ETM algorithm which allows the user to seamlessly steer the discovery process based on preferences with respect to the four quality dimensions. We show that all dimensions are important for process discovery. However, it only makes sense to consider precision, generalization and simplicity if the replay fitness is acceptable.','',2,'Joos C. A. M. BuijsBoudewijn F. van DongenWil M. P. van der Aalst','springer/bpmn security.csv','springer','\0'),(887,'Improving Service Diagnosis through Increased Monitoring Granularity','2013','1','fault localization;online monitoring;residual defect;service framework;simulator','Due to their loose coupling and highly dynamic nature, service-oriented systems offer many benefits for realizing fault tolerance and supporting trustworthy computing. They enable automatic system reconfiguration in case that a faulty service is detected. Spectrum-based fault localization (SFL) is a statistics-based diagnosis technique that can effectively be applied to pinpoint problematic services. It works by monitoring service usage in system transactions and comparing service coverage with pass/fail observations. SFL exhibits poor performance in diagnosing faulty services in cases when services are tightly coupled. In this paper, we study how and to which extent an increase in monitoring granularity can help to improve correct diagnosis of tightly coupled faulty services. We apply SFL in a real service-based system, for which we show that 100% correct identification of faulty services can be achieved through an increase in the monitoring granularity.','Software Security and Reliability (SERE), 2013 IEEE 7th International Conference on',1,'C. Chen; H. G. Gross; A. Zaidman','ieee/service oriented architecture security.csv','ieee','\0'),(888,'Reconfigurable Web Service Composition Using Belief Revision','2012','0',' Service Composition Belief Revision Service Reconfiguration Service Oriented Architecture Web Services','Abstract Web Service Composition is a collection of relevant web services related to the service request. The dynamism in selecting the web services also has several ill impacts like cost, space and time complex. The proposed framework uses a set of beliefs towards each web service, and the revision of those beliefs when there is any transition. The web services selected for composition were based on the level of belief with respect to the other web services. The proposed approach mainly focuses on the reconfiguration of service composition with the help of belief revision algorithm. The algorithm specifies a systematic approach towards service composition.','',1,'Deivamani MallayyaBaskaran Ramachandran','springer/service oriented architecture security.csv','springer','\0'),(889,'Security Assurance of Services through Digital Security Certificates','2013','3','','Service Oriented Computing (SOC) has facilitated a paradigm shift in software provisioning models: software gets consumed as a \"service\" providing enormous benefits, however lack of security assurance of third-party services is hampering their wider adoption in business- and security-critical domains. Security certification typically provides the required assurance, however applying it as is to SOC is infeasible, given that the natural language representation of resulting certificates is a major obstacle for typical SOC scenarios like service discovery, service composition and so on. To overcome the limitations of existing security certificates we present the concept of a digital security certificate for services. It is realized by a language which enables the representation of a security certificate in a structured, machine processable manner that would enable automated reasoning to be performed on them and thus make it feasible for certified security features to be part of typical SOC scenarios.','Web Services (ICWS), 2013 IEEE 20th International Conference on',1,'S. P. Kaluvuri; H. Koshutanski; F. D. Cerbo; A. Maña','ieee/service oriented architecture security.csv','ieee','\0'),(890,'Personalized architectural documentation based on stakeholders’ information needs','2014','1',' Stakeholders Architectural documentation Software architecture Wikis Personalization Recommender systems','Abstract Background The stakeholders of a software system are, to a greater or lesser extent, concerned about its software architecture, as an essential artifact for capturing the key design decisions of the system. The architecture is normally documented in the Software Architecture Document (SAD), which tends to be a large and complex technical description, and does not always address the information needs of every stakeholder. Individual stakeholders are interested in different, sometimes overlapping, subsets of the SAD and they also require varying levels of detail. As a consequence, stakeholders are affected by an information overload problem, which in practice discourages the usage of the architectural knowledge and diminishes its value for the organization. Methods This work presents a semi-automated approach to recommend relevant contents of a given SAD to specific stakeholder profiles. Our approach assumes that SADs are hosted in Wikis, which not only favor communication and interactions among stakeholders, but also enable us to apply User Profiling techniques to infer stakeholders’ interests with respect to particular documents. Results We have built a recommendation tool implementing our approach, which was tested in two experiments with Wiki-based SADs. The experiments aimed at assessing the performance reached by our tool when inferring stakeholders’ interests. To this end, precision and recall metrics were used. Conclusions Although preliminary, the results have shown that the recommendations of the tool help to find the architectural documents that best match the stakeholders’ interests.','Journal of Software Engineering Research and Development',1,'Matias NicolettiJorge Andres Diaz-PaceSilvia SchiaffinoAntonela TommaselDaniela Godoy','springer/soa security.csv','springer','\0'),(891,'6th International Conference on E-Technologies, MCETECH 2015','2015','','','The proceedings contain 19 papers. The special focus in this conference is on Process Adaptation, Legal Issues, Social Computing, eHealth and eBusiness, eEducation and eLogistics. The topics include: Ontology-driven process specialization; towards automating business process compensation scoping logic; specification and detection of business process antipatterns; coping with uncertainty in schema matching: Bayesian networks and agent-based modeling approach; geolocation hazards in geosocial networks; information technology artifacts in the regulatory compliance of business processes; information flow-based security levels assessment for access control systems; understanding consumer participation on companies brand microblogs; recommender engines under the influence of popularity; halo effect on the adoption of mobile payment; a trust certificate model for multi-agent systems; efficient privacy-preserving identity scheme for electronic validation of phase 1 clinical trials; testing policy-based e-health monitoring processes using TTCN-3; parkinson helper emergency notification system using Bayesian belief network; examining the effects of perceived enjoyment and habit on smartphone addiction; teaching enterprise modeling based on multi-media simulation; assessing the potential of RFID technologies on the productivity of a freight forwarder and towards quality-driven SOA systems refactoring through planning.','',1,'[No author name available]','scopus/soa security.csv','scopus',''),(892,'Event driven monitoring of composite services','2013','','BPMN; Complex event processing; Composite services; Monitoring; Security policy; SOA; Trust','The Future Internet will be populated by not just data and devices, but also services. Service-Oriented Architecture (SOA) approaches are allowing new ways for users and developers to manage, control and benefit from the services that are being made available. However, SOA-based applications are highly dynamic and liable to change significantly at runtime. This justifies the need for monitoring composed services throughout the lifetime of service execution. In this paper we present a novel framework for monitoring services at runtime and ensuring that services behave as they have promised. The framework enables monitoring of both atomic and composite services and offers high flexibility through the use of Complex Event Processing (CEP). Services are defined as Business Process Modeling Notation (BPMN) processes which can then be monitored during execution. The use of CEP and monitoring points that are inserted automatically between services allows the method to be more flexible and accurate than existing techniques. © 2013 IEEE.','',2,'Asim M., Llewellyn-Jones D., Lempereur B., Zhou B., Shi Q., Merabti M.','scopus/bpmn security.csv','scopus','\0'),(893,'The AVANTSSAR platform for the automated validation of trust and security of service-oriented architectures','2012','31','','The AVANTSSAR Platform is an integrated toolset for the formal specification and automated validation of trust and security of service-oriented architectures and other applications in the Internet of Services. The platform supports application-level specification languages (such as BPMN and our custom languages) and features three validation backends (CL-AtSe, OFMC, and SATMC), which provide a range of complementary automated reasoning techniques (including service orchestration, compositional reasoning, model checking, and abstract interpretation). We have applied the platform to a large number of industrial case studies, collected into the AVANTSSAR Library of validated problem cases. In doing so, we unveiled a number of problems and vulnerabilities in deployed services. These include, most notably, a serious flaw in the SAML-based Single Sign-On for Google Apps (now corrected by Google as a result of our findings). We also report on the migration of the platform to industry. © 2012 Springer-Verlag Berlin Heidelberg.','',2,'Armando A., Arsac W., Avanesov T., Barletta M., Calvi A., Cappai A., Carbone R., Chevalier Y., Compagna L., Cuéllar J., Erzse G., Frau S., Minea M., Mödersheim S., Von Oheimb D., Pellegrino G., Ponta S.E., Rocchetto M., Rusinowitch M., Torabi Dashti M., Turuani M., Viganò L.','scopus/bpmn security.csv','scopus',''),(894,'PhishTackle-a web services architecture for anti-phishing','2014','','Anti-phishing; E-Commerce security; Phishing; Service-oriented architecture; Web services','Phishing is web based criminal activity of making innocent online users to reveal sensitive information into fake web sites. Such fake web sites lead to fraudulent charges against individuals and corporations. Phishers have a lot of methods to design and host phished web pages, so in reality there cannot be a single solution that can help us combat phishing. As technology advances, the phishing techniques being used are also getting advanced and hence it demands the anti-phishing techniques also to be upgraded and the new techniques are to be included along with the existing methods. But most of the anti-phishing techniques today do not satisfy these criteria. In this paper, we propose service oriented three-layer architecture model for detecting and identifying phishing web sites as it overcomes the shortcomings of existing anti-phishing solutions. This model enables us to separate the user interface layer from the anti-phishing components layer. This is done through web service middleware layer, which provides us with the freedom of building our own anti-phishing components layer in an efficient and flexible way, independent of other layers. Anti-phishing components layer provides a set of reusable components to convert webpage into feature vectors using finest heuristic methods and external repositories of information. The feature vectors act as an input to trained support vector machine classifier to generate phishing label which determines whether a webpage is legitimate or a phishing page. This when experimented, displayed the significance and importance of three-layered architecture model along with combination of heuristics in detection of phishing webpage. This results in high accuracy of 99 % with less than 1 % of false positive rate. © 2013 Springer Science+Business Media New York.','',1,'Gowtham R., Krishnamurthi I.','scopus/service oriented architecture security.csv','scopus','\0'),(895,'DRM cloud framework to support heterogeneous digital rights management systems','2015','0',' Digital rights management Cloud computing Content protection','Abstract The DRM(digital rights management) techniques have been rapidly developed to protect the digital media contents. The growth of smart device and cloud computing makes the environment in which various services can be provided anywhere and anytime, so the DRM technologies have to react to such changes. From this aspect, we previously proposed the architecture of DRM-as-a-Service that provides various functionalities of DRM as some services on the cloud environment, and we referred to it as the DRM Cloud. In this paper, we define a reference model of DRM Cloud to represent some DRM functions that are provided by the DRM Cloud, and several service scenarios are proposed on the DRM Cloud. Also we simulate the DRM Cloud on the testbed and then discuss some security issues and how to handle the interoperability in the DRM Cloud. We conclude that the DRM Cloud allows the content consumers to use many contents with various smart devices, also let the DRM developers and the content service providers reduce the costs of development and business.','Multimedia Tools and Applications',1,'Hyejoo LeeSuwan ParkChangho SeoSang Uk Shin','springer/service oriented architecture security.csv','springer',''),(896,'Detecting and Resolving Firewall Policy Anomalies','2012','21','Firewall;access control;policy anomaly management;visualization tool.','The advent of emerging computing technologies such as service-oriented architecture and cloud computing has enabled us to perform business services more efficiently and effectively. However, we still suffer from unintended security leakages by unauthorized actions in business services. Firewalls are the most widely deployed security mechanism to ensure the security of private networks in most businesses and institutions. The effectiveness of security protection provided by a firewall mainly depends on the quality of policy configured in the firewall. Unfortunately, designing and managing firewall policies are often error prone due to the complex nature of firewall configurations as well as the lack of systematic analysis mechanisms and tools. In this paper, we represent an innovative policy anomaly management framework for firewalls, adopting a rule-based segmentation technique to identify policy anomalies and derive effective anomaly resolutions. In particular, we articulate a grid-based representation technique, providing an intuitive cognitive sense about policy anomaly. We also discuss a proof-of-concept implementation of a visualization-based firewall policy analysis tool called Firewall Anomaly Management Environment (FAME). In addition, we demonstrate how efficiently our approach can discover and resolve anomalies in firewall policies through rigorous experiments.','IEEE Transactions on Dependable and Secure Computing',1,'H. Hu; G. J. Ahn; K. Kulkarni','ieee/service oriented architecture security.csv','ieee',''),(897,'Formal behavioral modeling and compliance analysis for Service-oriented systems','2009','9','','In this paper, we present a framework for formal modeling and verification of service-based business processes with focus on their compliance to external regulations such as Segregation of Duties (SoD) or privacy protection policies. In our framework, control/data flow is modeled using the exogenous coordination language Reo. Reo process models are designed from scratch or (semi-)automatically obtained from BPMN, UML or WS-BPEL specifications. Constraint automata (CA), a semantic model for Reo, provide state-based representations of process workflows and enable their verification by means of model checking technology. Various extensions of CA make it possible to analyze time-, resource- and Quality-of-Service (QoS) process models. © 2009 Springer Berlin Heidelberg.','',2,'Kokash N., Arbab F.','scopus/bpmn security.csv','scopus','\0'),(898,'Computergestützte Prozessauditierung mit Process Mining','2013','0','','Zusammenfassungen Existierende Mechanismen zur Prozessauditierung reichen für einen wirksamen Nachweis der Einhaltung verbindlicher Vorgaben und interner Richtlinien nicht aus. Process-Mining-Verfahren können in diesem Zusammenhang dazu beitragen, die Verlässlichkeit und Aussagekräftigkeit von Analyseergebnissen durch Anwendung von Massendatenanalysen erheblich zu steigern. Dieser Beitrag zeigt am Beispiel eines Einkaufsprozesses die Chancen und derzeitigen Grenzen dieser im Prüfungswesen stark an Bedeutung gewinnenden Technologie.','HMD Praxis der Wirtschaftsinformatik',1,'Thomas Stocker M.Sc.Dr.-Ing. Rafael AccorsiTobias Rother','springer/soa security.csv','springer','\0'),(899,'On Applying FMEA to SOAs: A Proposal and Open Challenges','2014','1',' business-critical services SOA verification validation FMEA','Abstract Service Oriented Architectures (SOAs) are being increasingly used to support business-critical systems, raising natural concerns regarding dependability and security attributes. In critical applications, Verification and Validation (V&V) practices are used during system development to achieve the desired level of quality. However, most V&V techniques suit a structured and documented development lifecycle, and assume that the system does not evolve after deployment, contrarily to what happens with SOA. Runtime V&V practices represent one possible solution for this problem, but they are not possible to implement without the adjustment of traditional V&V techniques. This paper studies the adaptation of Failure Mode and Effects Analysis (FMEA) to SOA environments. A preliminary technique named FMEA4SOA is proposed and a case study is used to illustrate its usage. This process raises many challenges that must be overcome for the FMEA4SOA to become usable and effective V&V in SOA environments. The paper discusses these challenges while proposing a research roadmap.','',1,'Cristiana AreiasNuno AntunesJoão Carlos Cunha','springer/service oriented architecture security.csv','springer','\0'),(900,'A Pattern Approach to Conquer the Data Complexity in Simulation Workflow Design','2014','0','','Abstract Scientific workflows may be used to enable the collaborative implementation of scientific applications across various domains. Since each domain has its own requirements and solutions for data handling, such workflows often have to deal with a highly heterogeneous data environment. This results in an increased complexity of workflow design. As scientists typically design their scientific workflows on their own, this complexity hinders them to concentrate on their core issue, namely the experiments, analyses, or simulations they conduct. In this paper, we present a novel approach to a pattern-based abstraction support for the complex data management in simulation workflows that goes beyond related work in similar research areas. A pattern hierarchy with different abstraction levels enables a separation of concerns according to the skills of different persons involved in workflow design. The goal is that scientists are no longer obliged to specify low-level details of data management in their workflows. We discuss the advantages of this approach and show to what extent it reduces the complexity of simulation workflow design. Furthermore, we illustrate how to map patterns onto executable workflows. Based on a prototypical implementation of three real-world simulations, we evaluate our approach according to relevant requirements.','',2,'Peter ReimannHolger SchwarzBernhard Mitschang','springer/bpel security.csv','springer',''),(901,'Requirements for Ad-hoc Geo-referenced BPM with Microblogging','2014','1',' BPM GIS geo-referenced processes ad-hoc BPM','Abstract There are many scenarios in which business processes will benefit from the integration of geographical information for its management. In this paper we discuss a set of requirements for ad-hoc geo-referenced Business Process Management (BPM), noting in particular the conflicts between spatial and task dependencies when coordinating activities. We suggest the predominance of spatial dependencies and propose the integration of process models in georeferencing tools. We analyse the communication needs of geo-referenced and BPM processes and suggest the adoption of microblogging platforms for coordination support. We also discuss the implementation of an ad-hoc georeferenced BPM tool, specify the microblogging messages needed to coordinate georeferenced activities, and discuss a preliminary formative evaluation of the proposed implementation.','',2,'Pedro AntunesGustavo ZuritaNelson Baloian','springer/bpmn security.csv','springer',''),(902,'BPMashup: Dynamic Execution of RESTful Processes','2013','1','','Introduction While WS*-based Service-Oriented Architecture (SOA) is employed heavily in the enterprise application & integration space, end-user-oriented organizations such as Facebook, Google or Yahoo! adopted the REST paradigm. Web service ecosystems [1] have been established around web service offerings like social networking, where open platforms enable third-party developers to easily leverage the infrastructure provided by the social networks, to build web applications and plugged-in services for a massive user base. Such a web service ecosystem typically comprises a service provider opening up their product public service platform, a set of external value-added-resellers, and a community of users building and sharing customizations [2]. The lower layers of the traditional SOA-based WS* standards stack provide a loosely coupled infrastructure for Web service ecosystems. However, process layers on top of the standards stack introduce a comparatively tight coupling between the process logic and the WSDL interface definition [3], which tends to be brittle.','',2,'Xiwei XuIngo WeberLiming ZhuYan LiuPaul RimbaQinghua Lu','springer/bpel security.csv','springer','\0'),(903,'Service Scheduling Algorithm in Vehicle Embedded Middleware','2014','0',' OSGi middleware SOA vehicle','Abstract Due to different hardware environments of different vehicle electronic control units, the reusability of vehicle electronic software is reduced, which hinders the development of vehicle electronics. First, in this paper, we proposed a SOA-based middleware for vehicular embedded system, which makes it possible for each ECU to dispatch and receive data on the bus by service, it will hide the underlying heterogeneity. Second, on the basis of the vehicular service scheduling algorithm, a priority allocation algorithm based on criticality level is proposed. This algorithm makes the transmission of all interior services more efficient. Third, simulation results show that our algorithm has a higher scheduling ratio when the number of tasks is increased to a certain amount.','',1,'Juan LuoXin JinFeng Wu','springer/service oriented architecture security.csv','springer','\0'),(904,'COAST: An Architectural Style for Decentralized On-Demand Tailored Services','2012','0','client-driven adaptation;decentralized systems;service-oriented architectures;software architecture','Decentralized systems are systems-of-systems whose services are governed by two or more separate organizations under distinct spheres of authority. Coordinated evolution of the various elements of a decentralized system may be difficult, if not impossible, as individual organizations evolve their service offerings in response to organization- and service-specific pressures, including market demand, technology, competitive and cooperative interests, and funding. Consequently, decentralized services offer unique challenges for evolution and adaptation that reach well beyond any one single organizational boundary. However, client-driven service customization and tailoring is a powerful tool for meeting conflicting, independent client demands in an environment where disorderly and uneven service evolution predominates. To this end, we contribute an architectural style, COmputAtional State Transfer (COAST), designed to provide extensive, safe, and secure client-directed customization of decentralized services. COAST combines mechanisms from software architecture, cryptography, security, and programming languages, granting application architects flexible provisioning of their core services and assets while protecting those services and assets from attack and misuse.','Software Architecture (WICSA) and European Conference on Software Architecture (ECSA), 2012 Joint Working IEEE/IFIP Conference on',1,'M. M. Gorlick; K. Strasser; R. N. Taylor','ieee/service oriented architecture security.csv','ieee','\0'),(905,'Securing an Interoperability Architecture for Home and Urban Networking: Implementation of the Security Aspects in the INREDIS Interoperability Architecture','2012','1','authentication;authorization;heterogeneous systems;interoperability','The increasing density of the electronic devices in everyday activities is turning system interoperability into an emerging research scenario with a clear impact on life quality. Interoperability architectures try to overcome the complexity related to the heterogeneous procedures, interfaces and access protocols required to operate devices by providing users a single control point on their electronic environment. The INREDIS project has addressed this challenge by designing a cloud based service-oriented architecture to be deployed both on home and outdoor scenarios aimed to enhance the interoperability capabilities with accessibility features. In this paper we describe the specific security challenges that have been addressed and how a heterogeneous interoperability architecture involving a wide range set of electronic devices could be secured from a unified approach. The deployed infrastructure, built upon server-based security in combination with digital certificates, has provided promising outcomes through the target deployment scenarios. In addition, further research lines on securing interoperability for devices with constrained resources have also been described.','Advanced Information Networking and Applications Workshops (WAINA), 2012 26th International Conference on',1,'R. Gimenez; M. Pous; F. Rico-Novella','ieee/service oriented architecture security.csv','ieee','\0'),(906,'Developing Re-usable Components Based on the Virtual-MVC Design Pattern','2013','1',' Design Patterns Model-View-Controller Service Oriented Architecture Web Services E-Learning','Abstract In modern complex enterprise applications re-usability and interoperability of software components are of vital importance due to the increasing heterogeneous development platforms and variety of end user devices in which computational services need to be exposed. The need of code solutions re-usability led to the development of Design Patterns, which are means to encapsulate proven solutions to recurrent problems and they provide developers with a common language to abstract the logic encrypted under source code implementation structures. In this article we focus on the Model-View-Controller (MVC) design pattern. Although it represented a step forward for components re-usability, the model and view are still coupled compromising the business logic and introducing a degree of complexity for the applications development. We discuss two main variations of the MVC pattern that are aiming to complete decoupling of Model from View, as well as platforms supporting the development of MVC based applications. Our research is based on the original Virtual-MVC design pattern, in which we model the controller as middleware to achieve full decoupling of the model from view. Our main contribution is to demonstrate the development process of re-usable components in the framework of the V-MVC pattern, through a development platform that supports Virtual-MVC based applications.','',1,'Ruth CortezAlexander Vazhenin','springer/service oriented architecture security.csv','springer','\0'),(907,'Social BIMCloud: a distributed cloud-based BIM platform for object-based lifecycle information exchange','2015','1',' Building information modeling Cloud computing Distributed data storage Partial information exchange Social interaction','Abstract Background The architecture, engineering and construction (AEC) industry lacks a framework for capturing, managing, and exchanging project, product, and social information over the lifecycle of a building. The current tools have various limitations, such as lack of interoperability, slow to transfer huge building model files, and possibility of data inconsistency. Methods In this paper, we present a cloud-based BIM server framework namely Social BIMCloud that facilitates BIM information exchange through dynamic merging and splitting of building models. The data model of Social BIMCloud is based on but not limited to IFC. The data model of Social BIMCloud was further extended to accommodate social interactions, by studying the formal modes of communication in the AEC industry. An object-based approach to capture and manage social interactions in AEC projects through a BIM-based visual user interface was also developed and demonstrated. Results Social BIMCloud addresses the issues of inefficient data transfer speed and data inconsistency in a distributed environment by facilitating the storage and partial exchange of integrated nD BIM models. Data interoperability is facilitated through open BIM standards such as IFC and direct integration with construction software. High performance, scalability, fault tolerance, and cost effectiveness are facilitated through data partitioning, data replication strategies, multi-node structures, and pay-per-use tariff systems, respectively, through a cloud-based NoSQL database. Conclusion The Social BIMCloud framework helps to develop and exchange BIM models, which are rich in project information such as social interactions, cost, and energy analyses. This framework improves the communication efficiency between project participants, leading to better designs and less rework. The information captured by this framework could also be useful to determine important metrics such as industry trends, relationships among project participants, and user requirements.','Visualization in Engineering',2,'Moumita DasJack CP ChengSrinath S Kumar','springer/bpel security.csv','springer',''),(908,'Maintaining Trust in Cloud Computing through SLA Monitoring','2014','3',' Service level agreement monitoring cloud computing maintaining trust cloud monitoring SLA monitoring metrics proactive SLA monitoring hierarchical self-monitoring','Abstract Maintaining trust in cloud computing is a significant challenge due to the dynamic nature of cloud computing and the fragility of trust. Trust can be established by conducting successful transactions and meeting all the parameters of the Service Level Agreement (SLA) drawn up between two interacting parties. Trust can be maintained by continuous monitoring of these predefined SLA parameters. There are number of commentaries on SLA monitoring that describe different frameworks for the proactive or reactive detection of SLA violations. The aim of this research is to present an overview of the literature and make a comparative analysis of SLA monitoring in respect of trust maintenance in cloud computing.','',1,'Walayat HussainFarookh Khadeer HussainOmar Khadeer Hussain','springer/service oriented architecture security.csv','springer','\0'),(909,'BSWB: To construct sound workflow model','2011','','business process; workflow modeling; workflow pattern; workflow soundness; workflow specification','With the development of workflow technology and the mature of corresponding modeling tools, more and more enterprise businesses are processed by workflow system. Although so many model methods, such as WF-net, Petrinet, BPMN and SCXML, etc., are proposed, it is a difficult task to guarantee the soundness property of workflow model. Generally, this problem is handled by soundness analysis after the design of workflow models. In this paper, a new method BUM (bottom-up model), which based on BSWB (Basic Sound Workflow Block), is proposed. Rather than analysis the soundness of workflow specification after the model is built, BSWB uses sound workflow blocks to construct workflow model. Thus, the soundness property can be guaranteed. Additionally, BSWB can construct workflow specification in different abstract levels which is very useful for understanding and maintaining workflow systems. With this method, workflow systems can be designed and maintained flexibly and economically. © 2011 IEEE.','',2,'An H., Xu Y., Ma Z., Liu L., Chen X.','scopus/bpmn security.csv','scopus','\0'),(910,'Towards a Formal Integrated Model of Collaborative Healthcare Workflows','2012','3',' Integrated health information systems collaborative workflows infrastructure model CSP formal verification','Abstract Health information systems (HIS) are becoming increasingly integrated through network communication technologies. Collaborative healthcare workflows (CHWF) are inherently complex, involving interactions among human actors, and (legacy) digital and physical systems. They are mission safety critical, privacy sensitive, and open to changes of requirements and environments. The complexity makes the definition, understanding, analysis, management, and monitoring of CHWF a software engineering challenge. We propose an approach to formal modeling and analysis of CHWF. The main problems that the approach addresses are abstraction and separation of concerns through algebraic manipulation. We use the CSP process algebra for modeling and verifying the dynamic interaction behavior of processes, and discuss the relation between the dynamic model and the static model of healthcare cases and resources. We use UML models to visualize the system’s behavior and structure, but definitions of the syntax and semantics of these graphical models and their relation to the CSP models are left for future work.','',2,'Cristiano BertoliniMartin SchäfVolker Stolz','springer/bpel security.csv','springer','\0'),(911,'A taxonomic framework for autonomous service management in Service-Oriented Architecture','2012','2','Key words Service-Oriented Architecture (SOA) Autonomic computing (AC) Cause taxonomy Services Faults Causes Adaptation CLC number TP311','Abstract Since Service-Oriented Architecture (SOA) reveals the black box nature of services, heterogeneity, service dynamism, and service evolvability, managing services is known to be a challenging problem. Autonomic computing (AC) is a way of designing systems that can manage themselves without direct human intervention. Hence, applying the key disciplines of AC to service management is appealing. A key task of service management is to identify probable causes for symptoms detected and to devise actuation methods that can remedy the causes. In SOA, there are a number of target elements for service remedies, and there can be a number of causes associated with each target element. However, there is not yet a comprehensive taxonomy of causes that is widely accepted. The lack of cause taxonomy results in the limited possibility of remedying the problems in an autonomic way. In this paper, we first present a meta-model, extract all target elements for service fault management, and present a computing model for autonomously managing service faults. Then we define fault taxonomy for each target element and inter-relationships among the elements. Finally, we show prototype implementation using cause taxonomy and conduct experiments with the prototype for validating its applicability and effectiveness.','Journal of Zhejiang University SCIENCE C',1,'Du Wan CheunHyun Jung LaSoo Dong Kim','springer/soa security.csv','springer','\0'),(912,'How Do Software Architects Specify and Validate Quality Requirements?','2014','3',' Software architecture empirical study quality requirements validation','Abstract Software architecture is the result of a design effort aimed at ensuring a certain set of quality attributes. As we show, quality requirements are commonly specified in practice but are rarely validated using automated techniques. In this paper we analyze and classify commonly specified quality requirements after interviewing professionals and running a survey. We report on tools used to validate those requirements and comment on the obstacles encountered by practitioners when performing such activity ( e.g. , insufficient tool-support; poor understanding of user’s needs). Finally we discuss opportunities for increasing the adoption of automated tools based on the information we collected during our study ( e.g. , using a business-readable notation for expressing quality requirements; increasing awareness by monitoring non-functional aspects of a system).','',2,'Andrea CaraccioloMircea Filip LunguOscar Nierstrasz','springer/bpel security.csv','springer',''),(913,'FoxOA with FoxSWF illegal and unhealthy information reporting system SOA-based integration calculation’s research and application','2015','','','Summary of current common OA and specific business systems integration computing applications mostly belonging to a tightly coupled system integration methods, its impact system flexibility scalability, the underlying business processes impede adjustment and optimization. This paper presents a new Service-Oriented Architecture (SOA) of OA (FoxOA) with specific business system (FoxSWF) integrated computing solutions. It can not only ensure that the original system data and logical security, but also to achieve loose coupling between systems to facilitate enterprises and business process reengineering and optimization. It implements the complementary advantages of the two systems, protecting existing IT infrastructure investments. © 2015 Taylor & Francis Group, London.','',1,'Li J.Y., Liu Y.F., Liu Y., Zhang L.','scopus/service oriented architecture security.csv','scopus',''),(914,'A framework for benchmarking BPMN 2.0 workflow management systems','2015','','Benchmarking; BPMN 2.0; Workflow management systems','The diverse landscape of Workflow Management Systems (WfMSs) makes it challenging for users to compare different solutions to identify the ones most suitable to their requirements. Thus a comparison framework that would define common grounds in many different aspects, such as price, reliability, security, robustness and performance is necessary. In this paper we focus on the performance aspect, and we present a framework for automatic and reliable calculation of performance metrics for BPMN 2.0 WfMSs. We validate the framework by applying it on two open-source WfMSs. The goal is to contribute to the improvement of existing WfMSs by pinpointing performance bottlenecks, and to empower end users to make informed decisions when selecting a WfMS. © Springer International Publishing Switzerland 2015.','',2,'Ferme V., Ivanchikj A., Pautasso C.','scopus/bpmn security.csv','scopus',''),(915,'Tailoring Agent Platforms with Software Product Lines','2015','0','','Abstract Agent platforms have been conceived traditionally as middleware, helping to deal with various application challenges like agent programming models, remote messaging, and coordination protocols. A middleware is typically a bundle of functionalities necessary to execute multi-agent applications. In contrast to this traditional view, nowadays different use cases also for selected agent concepts have emerged requiring also different kinds of functionalities. Examples include a platform for conducting multi-agent simulations, intelligent agent behavior models for controlling non-player characters (NPCs) in games and a lightweight version suited for mobile devices. A one-size-fits-all software bundle often does not sufficiently match these requirements, because customers and developers want solutions specifically tailored to their needs, i.e. a small but focused solution is frequently preferred over bloated software with extraneous functionality. Software product lines are an approach suitable for creating a series of similar products from a common code base. In this paper we will show how software product line modeling and technology can help creating tailor-made products from multi-agent platforms. Concretely, the Jadex platform will be analyzed and a feature model as well as an implementation path will be presented.','',1,'Lars BraubachAlexander PokahrJulian KalinowskiKai Jander','springer/microservice security.CSV','springer',''),(916,'Using COBIT 5 for Risk to Develop Cloud Computing SLA Evaluation Templates','2015','0',' Cloud computing Cloud users Cloud providers Service level agreements Software as a service Platform as a service Infrastructure as a service Everything as a service COBIT 5 for risk','Abstract The use of cloud services as a business solution keeps growing, but there are significant associated risks that must be addressed. Despite the advantages and disadvantages of cloud computing, service integration and alignment with existing enterprise architecture remains an ongoing priority. Typically, quality of services provided is outlined in a service level agreement (SLA). A deficient template for evaluating, negotiating and selecting cloud SLAs could result in legal, regulatory, and monetary penalties, in addition to loss of public confidence and reputation. This research emphasizes (or advocates) the implementation of the proposed SLA evaluation template aimed at cloud services, based on the COBIT 5 for Risk framework. A gap analysis of existing SLAs was done to identify loopholes, followed by a resultant template where identified gaps were addressed.','',1,'Onyeka IllohShaun AghiliSergey Butakov','springer/service oriented architecture security.csv','springer',''),(917,'TOSCA in a Nutshell: Promises and Perspectives','2014','0','','Abstract How to deploy and flexibly manage complex multi-service applications in the cloud is one of the emerging problems in the cloud era. The OASIS Topology and Orchestration Specification for Cloud Applications (TOSCA) [1] aims at contributing to solve this problem by providing a language to describe and manage complex cloud applications in a portable, vendor-agnostic way. The objective of this paper is twofold: To provide a compact and easy-to-access introduction to TOSCA, and to discuss possible research directions for TOSCA.','',2,'Antonio BrogiJacopo SoldaniPengWei Wang','springer/bpel security.csv','springer',''),(918,'Application and Economic Implications of an Automated Requirement-Oriented and Standard-Based Compliance Monitoring and Reporting Prototype','2010','0','IS security;IT compliance;IT risk management;business process management','Compliance management is a challenging task affected by continuously increasing legal requirements. Compliance with legal requirements can be assured by the incorporation of control activities into business processes. But the maintenance and monitoring of these control activities is a complex, time-consuming and often manual task. However, the timely communication of control exceptions is an important factor for the success of compliance management. The present paper presents an innovative prototypical implementation of an automated compliance monitoring and reporting system. This system is based on established standards and existing technologies. In particular, business processes are notated in BPMN and modeled in XPDL, control activities are linked to risks using COSO, control exceptions are defined using SWRL and access control data is transformed from proprietary models to XACML. The development of the prototype was aligned with common design-science research. The application of the developed prototype and its economic implications are concisely discussed with respect to different business requirements and information needs.','Availability, Reliability, and Security, 2010. ARES \'10 International Conference on',2,'M. Kehlenbeck; T. Sandner; M. H. Breitner','ieee/bpmn security.csv','ieee','\0'),(919,'Architecture evolution and evaluation (ArchEE) capability','2011','','Business Process Modeling Notation (BPMN); Information Technology (IT); Mission Level Modeling (MLM); Qualitative Analysis; Simulation; Systems of Systems Engineering (SoSE)','IT Architectures, rather than being static, must now constantly evolve and adapt to changes driven by new technologies, increasing business partnerships, and end-user expectations. In addition, continuously increasing architecture complexity demands for a rigorous evaluation of performance. ArchEE, a BPMN model-based systems engineering capability, fulfills the emerging SoSE need of making informed evolution decisions of mission oriented IT architectures in a timely manner. The ArchEE model structure facilitates simultaneous evolutions of operational and systems architecture components by different stakeholders. It also enables rapid integration of component models for alternative architectures for a specific mission and its evaluation via simulation. ArchEE uses the same model for qualitative and quantitative analysis throughout the SoSE process. This paper describes and illustrates the ArchEE capability via Fire and Counter-fire battle management scenarios, comparing the mission effectiveness of the new design against the existing systems. © 2011 IEEE.','',2,'Jain P.','scopus/bpmn security.csv','scopus','\0'),(920,'Privacy protection for RBAC in service oriented architecture','2013','','Privacy Protection; Role-based Access Control; Service Oriented Architecture; XACML','Service Oriented Architecture (SOA) changes the way of conducting business by opening their services to the larger business world over the networks. However, the \'open\' and \'interoperable\' properties of SOA make privacy a sensitive security issue. In SOA, service providers (SPs) limit permission of access to specific authorized Access Requestors (ARs). SPs need to verify ARs\' identity information, but ARs may not willing to disclose their privacy to unknown SPs in an open system. To solve this conflict in SOA environment, we propose privacy preserving protocols for role-based access control (RBAC) in the SOA environment. The security analysis demonstrates that our protocols are privacy protected. © 2013 IEEE.','',1,'Ye Y., Yang C.','scopus/service oriented architecture security.csv','scopus','\0'),(921,'Brain Radiation Information Data Exchange (BRIDE): integration of experimental data from low-dose ionising radiation research for pathway discovery','2016','0',' Low-dose ionising radiation Data integration Brain research Omics technologies Systems biology','Abstract Background The underlying molecular processes representing stress responses to low-dose ionising radiation (LDIR) in mammals are just beginning to be understood. In particular, LDIR effects on the brain and their possible association with neurodegenerative disease are currently being explored using omics technologies. Results We describe a light-weight approach for the storage, analysis and distribution of relevant LDIR omics datasets. The data integration platform, called BRIDE, contains information from the literature as well as experimental information from transcriptomics and proteomics studies. It deploys a hybrid, distributed solution using both local storage and cloud technology. Conclusions BRIDE can act as a knowledge broker for LDIR researchers, to facilitate molecular research on the systems biology of LDIR response in mammals. Its flexible design can capture a range of experimental information for genomics, epigenomics, transcriptomics, and proteomics. The data collection is available at: .','BMC Bioinformatics',1,'Christos KarapiperisStefan J. KempfRoel QuintensOmid AzimzadehVictoria Linares VidalSimonetta PazzagliaDimitry BazykaPier G. MastroberardinoZacharias G. ScourasSoile TapioMohammed Abderrafi BenotmaneChristos A. Ouzounis','springer/service oriented architecture security.csv','springer',''),(922,'SONA: A service oriented nodes architecture for developing Cloud Computing applications','2013','0','Cloud Computing advantages/challenges;Cloud Computing applications;Cloud Computing architectures;Service Oriented Nodes Architecture (SONA);Star Architecture','The main goal of this paper firstly is to propose a new definition for the term `Cloud Computing\' which helps understanding it more clearly from the perspective of developing Cloud Computing applications. The second one is to build a general architecture for developing Cloud Computing applications which provides a starting point for further discussion and possible coordination with other work to build a standard methodology for developing Cloud Computing applications. The new architecture, Service Oriented Nodes Architecture (SONA), is a multi-node architecture which is suitable for building/developing Cloud Computing applications from scratch with different contexts. It consists of three nodes (1) Client/Developer Node, (2) Interface/Intermediate Node, and (3) the Cloud Node. All of these nodes have its own functions/roles and is oriented to deliver/use/provide services, so the architecture is called by that name. Also, this paper offers an initial exploratory analysis of key Cloud Computing concepts such as, Cloud Computing definition, advantages/challenges, best suited Cloud Computing applications area, and finally the STAR architecture, which is the base architecture of this work.','Advanced Computing and Communication Systems (ICACCS), 2013 International Conference on',1,'S. A. Zaki Hassan','ieee/service oriented architecture security.csv','ieee','\0'),(923,'Application Traffic Activity Graph Analysis','2012','0','','','',1,'Yu JinEsam SharafuddinZhi-Li Zhang','springer/service oriented architecture security.csv','springer','\0'),(924,'Evaluation and recommendations on IPv6 for the Internet of Things','2015','','6LoWPAN;CoAP;IPv6;Internet of Things;Machine-to-Machine;addressing;cloud computing;integration;interoperability;scalability','This article presents some key achievements and recommendations from the IoT6 European research project on IPv6 exploitation for the Internet of Things (IoT). It highlights the potential of IPv6 to support the integration of a global IoT deployment including legacy systems by overcoming horizontal fragmentation as well as more direct vertical integration between communicating devices and the cloud.','Internet of Things (WF-IoT), 2015 IEEE 2nd World Forum on',1,'S. Ziegler; A. Skarmeta; P. Kirstein; L. Ladid','ieee/service oriented architecture security.csv','ieee',''),(925,'Supporting aspect orientation in business process management','2015','0',' Business process management Aspect-oriented decomposition Process modelling Process enactment Weaving Cross-cutting concerns','Abstract Coping with complexity is an important issue in both research and industry. One strategy to deal with complexity is separation of concerns, which can be addressed using aspect-oriented paradigm. Despite being well researched in programming, this paradigm is still in a preliminary stage in the area of business process management (BPM). While some efforts have been made to introduce aspect orientation in business process modelling, there is no holistic approach with a formal underlying foundation to support aspect-oriented business process design and enactment, and this gap restricts aspect-oriented paradigm from being practically deployed in the area of BPM. Therefore, this paper proposes a sound systematic approach which builds on a formal syntax for modelling aspect-oriented business processes and a Petri Net-based operational semantics for enacting these processes. The approach enables the implementation of software system artefacts as a proof of concept to support design and enactment of aspect-oriented business processes in practice. The approach is demonstrated using a banking case study, where processes are modelled using a concrete notation that conforms to the proposed formal syntax and then executed in a state-of-the-art BPM system where the implemented artefacts are deployed.','Software & Systems Modeling',2,'Amin JalaliChun OuyangPetia WohedPaul Johannesson','springer/bpel security.csv','springer',''),(926,'Access Control for Human Tasks in Service Oriented Architecture','2008','1','Access Control;BPEL;BPEL4People;Business Process;Web Service','Business process management is designed to make business activity coordination easier and more cost effective. WS-BPEL and BPEL4People extension together coordinate the web services and human activities within business process. However, the increasing business integration and legal requirements raise the need for secure business processes. The openness and distribution nature of inter-organisational business processes may result in more security breaches. Existing standards does not provide any support for business process security protection even if the participating organisations already have a working security policy. To address this problem, we extend traditional RBAC model to access control capability into business process environment. And an extension for WS-BPEL is also developed to represent the authorisation information in a formal manner.','e-Business Engineering, 2008. ICEBE \'08. IEEE International Conference on',2,'X. Wang; Y. Zhang; H. Shi','ieee/bpel security.csv','ieee','\0'),(927,'A framework for cloud-based context-aware information services for citizens in smart cities','2014','1',' Smart cities Citizen services Context-awareness Cloud computing Public awareness Decision-making','Abstract Background In the context of smart cities, public participation and citizen science are key ingredients for informed and intelligent planning decisions and policy-making. However, citizens face a practical challenge in formulating coherent information sets from the large volumes of data available to them. These large data volumes materialise due to the increased utilisation of information and communication technologies in urban settings and local authorities’ reliance on such technologies to govern urban settlements efficiently. To encourage effective public participation in urban governance of smart cities, the public needs to be facilitated with the right contextual information about the characteristics and processes of their urban surroundings in order to contribute to the aspects of urban governance that affect them such as socio-economic activities, quality of life, citizens well-being etc. The cities on the other hand face challenges in terms of crowd sourcing with quality data collection and standardisation, services inter-operability, provisioning of computational and data storage infrastructure. Focus In this paper, we highlight the issues that give rise to these multi-faceted challenges for citizens and public administrations of smart cities, identify the artefacts and stakeholders involved at both ends of the spectrum (data/service producers and consumers) and propose a conceptual framework to address these challenges. Based upon this conceptual framework, we present a Cloud-based architecture for context-aware citizen services for smart cities and discuss the components of the architecture through a common smart city scenario. A proof of concept implementation of the proposed architecture is also presented and evaluated. The results show the effectiveness of the cloud-based infrastructure for the development of a contextual service for citizens.','Journal of Cloud Computing',2,'Zaheer KhanSaad Liaquat KianiKamran Soomro','springer/bpel security.csv','springer',''),(928,'The MIDAS Cloud Platform for Testing SOA Applications','2015','0','','While Service Oriented Architectures (SOAs) are for many parts deployed online, and today often in a cloud, the testing of the systems still happens mostly locally. In this paper, we want to present the MIDAS Testing as a Service (TaaS), a cloud platform for the testing of SOAs. We focus on the testing of whole SOA orchestrations, a complex task due to the number of potential service interactions and the increasing complexity with each service that joins an orchestration. Since traditional testing does not scale well with such a complex setup, we employ a Model-based Testing (MBT) approach based on the Unified Modeling Language (UML) and the UML Testing Profile (UTP) within MIDAS. Through this, we provide methods for functional testing, security testing, and usage-based testing of service orchestrations. Through harnessing the computational power of the cloud, MIDAS is able to generate and execute complex test scenarios which would be infeasible to run in a local environment.','2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST)',1,'S. Herbold; A. De Francesco; J. Grabowski; P. Harms; L. M. Hillah; F. Kordon; A. P. Maesano; L. Maesano; C. Di Napoli; F. De Rosa; M. A. Schneider; N. Tonellotto; M. F. Wendland; P. H. Wuillemin','ieee/service oriented architecture security.csv','ieee','\0'),(929,'A Novel Substitution Judgment Method for Mobile Cloud Computing Application System Components','2014','0','Mobile cloud computing;Pi-calculus;service oriented architecture;service substitution','Mobile cloud computing is a novel computing model, which integrates the cloud computing into the mobile environment and overcomes obstacles related to the performance, environment and security discussed in mobile computing. For a mobile cloud computing application system (MCCS), reliable components substitution is an important issue for troubleshooting and system upgrading. In this paper, this issue is equated to MCCS services substitution based on a service-oriented architecture of MCCS. Further, a formal method for modeling MCCS service is proposed based on space-time Pi-calculus, which is presented through introducing location and time operators into classical Pi-calculus. Then, a decision theorem for MCCS service substitution is put forward according to the relationship between service compatibility and substitution. Finally, a case study is performed to show that how to apply this method to ensure MCCS components substitution. The experiment result shows that it is reasonable and feasible.','Cloud Computing Technology and Science (CloudCom), 2014 IEEE 6th International Conference on',1,'P. Wang; L. Yang; G. W. Li; X. Gao','ieee/service oriented architecture security.csv','ieee','\0'),(930,'An approach to automating the integration of the access control policies for web services','2013','1','Access Control Polices; Coordinating; Model Driven Architecture; Model Transformation; Quality of Service; Web services','Access Control Policies are one of the key challenges affecting Service oriented Architectures (SoA). This is due to the nature of SoA, which is based on the distributed invocations of Web services. This makes it crucial to develop a method of on-line assignment for Access Control Policies and Web services. This paper proposes a service referred to as Access Control Policies (AC Polices), which allows the simulation and verification of information flow security for access control policies. It extends an existing approach that was proposed to coordinate invocations of Web services from a performance perspective, to harnesses the capability of Model-Driven Architecture (MDA) to automate the creation and integration of the Protocol Service and Access Control Policies (AC Polices) service, which are computed, generated and integrated automatically into the system. As a proof of the concept, the suggested approach was implemented in the form of an Oracle JDeveloper plugin. The paper concludes with the empirical results, detailing the performance-related aspects of the proposed method. © 2013 IEEE.','',1,'Alodib M.','scopus/service oriented architecture security.csv','scopus','\0'),(931,'VULCAN: Vulnerability Assessment Framework for Cloud Computing','2013','3','Cloud Computing;Ontology;Vulnerability Assessment','Assessing security of software services on Cloud is complex because the security depends on the vulnerability of infrastructure, platform and the software services. In many systems, the platform or the infrastructure on which the software will actually run may not be known or guaranteed. This implies that the security of the software service must be assured regardless of the underlying infrastructure or platform, requiring a large number of combinations. Another common trend in Cloud and Service oriented Architecture (SoA) environments is Service composition, whereby new services can be created rapidly by composing existing services. Once again, the component services must be tested for security levels on a large number of platform and infrastructure combinations. In this paper we propose a novel vulnerability assessment framework for cloud computing systems. We have designed and developed a prototype of our framework. We also present the design and development of our framework with some use cases.','Software Security and Reliability (SERE), 2013 IEEE 7th International Conference on',1,'P. Kamongi; S. Kotikela; K. Kavi; M. Gomathisankaran; A. Singhal','ieee/service oriented architecture security.csv','ieee','\0'),(932,'Service-oriented architecture based on biometric using random features and incremental neural networks','2012','2',' Face verification Random projection Biometrics Large-scale problem ELM Online learning Biometric template protection','Abstract We propose a service-oriented architecture based on biometric system where training and classification tasks are used by millions of users via internet connection. Such a large-scale biometric system needs to consider template protection, accuracy and efficiency issues. This is a challenging problem since there are tradeoffs among these three issues. In order to simultaneously handle these issues, we extract both global and local features via controlling the sparsity of random bases without training. Subsequently, the extracted features are fused with a sequential classifier. In the proposed system, the random basis features are not stored for security reason. The non-training based on feature extraction followed by a sequential learning contributes to computational efficiency. The overall accuracy is consequently improved via an ensemble of classifiers. We evaluate the performance of the proposed system using equal error rate under a stolen-token scenario. Our experimental results show that the proposed method is robust over severe local deformation with efficient computation for simultaneous transactions. Although we focus on face biometrics in this paper, the proposed method is generic and can be applied to other biometric traits.','Soft Computing',1,'Kwontaeg ChoiKar-Ann TohYoungjung UhHyeran Byun','springer/service oriented architecture security.csv','springer','\0'),(933,'Distributed security policies for service-oriented architectures over tactical networks','2015','','','Whilst tactical networks must provide basic functionality over highly restricted networks including basic VHF links and should tolerate outright disruption and partitioning, it is highly desirable to provide access to richer services available within the tactical network, from higher-level units, or through cyber foraging. The resulting requirement to also invoke services asynchronously or to delegate authority while also incorporating constraints and obligations limits the effectiveness of conventional access control mechanisms. Centralised security policy decisions are also undesirable, and as policies will evolve over the course of a mission, mere replication is also insufficient. In this paper we describe a distributed security policy mechanism based on the tactical nodes\' specializations, where policies can be partitioned based on security domains, network layers and kinetic tasks represented by Boyd\'s OODA-loop (Observe, Orient, Decide and Act loop). This permits security policy decisions incorporating services\' protection goals and constraints based on inference mechanisms dealing with mission\'s current context.','Military Communications Conference, MILCOM 2015 - 2015 IEEE',1,'R. R. F. Lopes; S. D. Wolthusen','ieee/service oriented architecture security.csv','ieee',''),(934,'Using SecureBPMN for Modelling Security-Aware Service Compositions','2014','0',' SecureBPMN BPMN Access Control Confidentiality','Abstract Today, many systems are built by orchestrating existing services, custom developed services, as well as interaction with users. These orchestrations, also called composition plans, are often described using high-level modelling languages that allow for simplifying 1) the implementation of systems by using generic execution engines and 2) the adaption of deployed systems to changing business needs. Thus, composition plans play an important role for both communicating business requirements between domain experts and system experts, and serving as a basis for the system implementation. At the same time, ICT systems need to fulfil an increasing number of security and compliance requirements. Thus, there is a demand for integrating security and compliance requirements into composition plans. We present SecureBPMN, a language for modelling security properties that can easily be integrated into languages used for describing service orchestrations. Moreover, we integrate SecureBPMN into BPMN and, thus, present a common language for describing service orchestration (in terms of business process models) together with their security and compliance requirements.','',2,'Achim D. Brucker','springer/bpmn security.csv','springer',''),(935,'Access Control with Hidden Policies and Credentials for Service Computing','2012','1','access control;security','In a services computing environment, a large amount of sensitive data is hosted by service providers. As the owners of data might have different security requirements for their data, many systems allow each data item to have its own access control policy. For privacy and security reasons, some data owners and clients might want their access control policies and credentials to remain secret to the service providers which handle the access control of the data. That is, the service providers cannot comprehend the contents of the access control policies and the credentials. This paper proposed a role-based access control scheme. It uses cryptographic techniques to obscure data\'s access control policies and clients\' credentials. The scheme is efficient as the policy enforcement process only uses the information available on the service provider that carries out the access control. A prototype of the scheme has been implemented and the execution time of the scheme were measured.','Services Computing (SCC), 2012 IEEE Ninth International Conference on',1,'X. Ye; M. Gao','ieee/service oriented architecture security.csv','ieee','\0'),(936,'A Proxy Gateway Solution to Provide QoS in Tactical Networks and Disaster Recovery Scenarios','2015','0','communications middleware, disaster recovery, network proxy, qos, tactical networks','Many important public services, such as security and public health, as well as the modern tactical military scenarios, rely on Service-oriented Architectures (SoAs) and commercial off-the-shelf (COTS) components to enable the quick development and deployment of distributed services to respond quickly, reduce costs, and ease system integration. However, SoAs make use of verbose networking technologies and require reliable and relatively high bandwidth communications. Tactical scenarios normally cannot rely on such infrastructure and events like natural disasters can severely damage the network infrastructure in rural and urban environments. Thus, there is a need to develop solutions that provide SoA-based application and services running on heterogeneous and often constrained devices that compose tactical and mobile ad-hoc networks with Quality of Service (QoS) levels that meet their requirements. This paper presents the QoS-enabling features and the gateway operational mode (GM) of ACM NetProxy, the network proxy component of a communications middleware specifically developed to support applications in challenged networks. GM allows nodes in an ad-hoc wireless network to be quickly organized and to shape outbound communications to reduce bandwidth consumption and provide QoS. Experimental results obtained during a test in a field demonstration event show its efficiency.','',1,'Alessandro Morelli and Cesare Stefanelli and Mauro Tortonesi and Rita Lenzi and Niranjan Suri','acm/service oriented architecture security.csv','acm',''),(937,'A method for intrusion detection in web services based on time series','2015','0','','A prevalent issue in today\'s society that has attracted much attention is anomaly detection in time series. Service-oriented architecture (SOA) and web services are considered as one of the most important technologies. In this paper, we propose a model for intrusion detection in web services based on the autoregressive integrated moving average (ARIMA). First, we apply the ARIMA model to the training data. Second, we forecast their next behavior within a specific confidence interval. Third, we examine the testing data; if any instance falls out of the range of the confidence interval, it might be an anomaly, and the system will notify the administrator. We present experiments and results obtained using real world data.','Electrical and Computer Engineering (CCECE), 2015 IEEE 28th Canadian Conference on',1,'P. Shirani; M. A. Azgomi; S. Alrabaee','ieee/service oriented architecture security.csv','ieee',''),(938,'Change Patterns for Supporting the Evolution of Event-Based Systems','2013','2','','Abstract As event-driven architectures consist of highly decoupled components, they are a promising solution for facilitating high flexibility, scalability, and concurrency of distributed systems. However, the evolution of an event-based system is often challenging due to the intrinsic loose coupling of its components. This problem occurs, on the one hand, because of the absence of explicit information on the dependencies among the constituting components. On the other hand, assisting techniques for investigating and understanding the implications of changes are missing, hindering the implementation and maintenance of the changes in event-based architectures. Our approach presented in this paper aims at overcoming these challenges by introducing primitive change actions and higher-level change patterns, formalized using trace semantics, for representing the modification actions performed when evolving an event-based system. Our proof-of-concept implementation and quantitative evaluations show that our approach is applicable for realistic application scenarios.','',1,'Simon TragatschnigHuy TranUwe Zdun','springer/service oriented architecture security.csv','springer','\0'),(939,'Modelling non functional properties in business process: A service based approach [La modélisation des propriétés non fonctionnelles dans les processus métiers: Une approche basée sur les services]','2013','','BPMN profile; Business process; QOS modeling; SOA','The specificqtion of non functional properties at the modeling of service-oriented applications allows determining the most suitable services for consumers. The term quality of service (QoS) is used to refer these quality requirements and covers security, performance, and availability. Some works proposed extensions of business process modeling languages to integrate non-functional concerns. But these works are generally limited to one specific concern and not to multiple concerns at the same time. In this paper, we propose BPMN4QoS, a BPMN extension that supports expressing non-functional properties. We use this language to define a security profile and a profile for temporal properties. Finally, we illustrate and approve our approach with an example. © 2013 Lavoisier.','',2,'Turki S.H., Charfi A., Bellaaj F., Bouaziz R.','scopus/bpmn security.csv','scopus','\0'),(940,'A framework for enabling trust requirements in social cloud applications','2013','3',' Trust and reputation requirements Social cloud Framework Architecture','Abstract Cloud applications entail the provision of a huge amount of heterogeneous, geographically distributed resources managed and shared by many different stakeholders who often do not know each other beforehand. This raises numerous security concerns that, if not addressed carefully, might hinder the adoption of this promising computational model. Appropriately dealing with these threats gains special relevance in the social cloud context, where computational resources are provided by the users themselves. We argue that taking trust and reputation requirements into account can leverage security in these scenarios by incorporating the notions of trust relationships and reputation into them. For this reason, we propose a development framework onto which developers can implement trust-aware social cloud applications. Developers can also adapt the framework in order to accommodate their application-specific needs.','Requirements Engineering',1,'Francisco MoyanoCarmen Fernandez-GagoJavier Lopez','springer/webservice security.csv','springer','\0'),(941,'Generalized Framework for Secure Web Service Composition','2012','1','BPEL;business processes;secure web services;service composition;web service;web service composition','Web services have generated great interests in researchers recently due to its heterogeneous nature. These are based on existing Internet protocols and open standards. It can provide a flexible solution to the problem of application integration. These can be combined together through service composition to solve critical problems, which exists in current scenarios [3]. The service composition suffers from several limitations of security issues such as lack of native support for encryption, decryption and authorization [12]. In this paper, we have proposed a generalized framework for secure web service composition, which incorporates cryptography techniques. The current scenario get benefited by secure environment over network, prevent unauthorized access of services and support of encryption and decryption mechanism in terms of service composition with the help of proposed framework.','Computational Intelligence and Communication Networks (CICN), 2012 Fourth International Conference on',2,'R. Bhandari; U. Suman','ieee/bpel security.csv','ieee','\0'),(942,'SafeStack: Automatically Patching Stack-Based Buffer Overflow Vulnerabilities','2013','2','Software reliability;attack prevention;buffer overflow vulnerability diagnosis','Buffer overflow attacks still pose a significant threat to the security and availability of today\'s computer systems. Although there are a number of solutions proposed to provide adequate protection against buffer overflow attacks, most of existing solutions terminate the vulnerable program when the buffer overflow occurs, effectively rendering the program unavailable. The impact on availability is a serious problem on service-oriented platforms. This paper presents SafeStack, a system that can automatically diagnose and patch stack-based buffer overflow vulnerabilities. The key technique of our solution is to virtualize memory accesses and move the vulnerable buffer into protected memory regions, which provides a fundamental and effective protection against recurrence of the same attack without stopping normal system execution. We developed a prototype on a Linux system, and conducted extensive experiments to evaluate the effectiveness and performance of the system using a range of applications. Our experimental results showed that SafeStack can quickly generate runtime patches to successfully handle the attack\'s recurrence. Furthermore, SafeStack only incurs acceptable overhead for the patched applications.','IEEE Transactions on Dependable and Secure Computing',1,'G. Chen; H. Jin; D. Zou; B. B. Zhou; Z. Liang; W. Zheng; X. Shi','ieee/service oriented architecture security.csv','ieee','\0'),(943,'An approach to design a SOA services governance architecture for an u-Healthcare system with mobility','2012','2','Privacy; Security; Service governance; Service oriented architecture (SOA); U-Healthcare; Wireless mobile','Ubiquitous health (u-Health) system is focused on the concept of providing medical service and assistance to the patients \"anywhere and anytime\" regardless of their locations. Existing mobile u-Healthcare systems have problems in lacking one or the other S.C.A.L.E. (Scalability, Connectivity, Adaptability, Liability, and Ease-of-use) criterion that any ubiquitous system must support. They become expensive during set up, reconfiguration, and modification as no proper and efficient solution is available. Also, they lack security, privacy, and wireless accessibility features so all these problems can prevent the system from being expanded widely. The objective of this paper is to implement a u-Healthcare system based on wireless mobile technology using Service Oriented Architecture (SOA). Applying Service Governance of Service Oriented Architecture helps make all services more secure, reusable, interoperable, available, and imposes all the features a ubiquitous system should have. A prototype system uSG-Health was developed using the approach for demonstrating the functionality and ability of the proposed u-Healthcare system. Copyright © 2011, IGI Global.','',1,'Yu W.D., Patel J., Mehta V., Joshi A.','scopus/service oriented architecture security.csv','scopus','\0'),(944,'Combining Practical and Dialectical Commitments for Service Engagements','2015','0','','Abstract We understand a service engagement as a form of collaboration arising in a sociotechnical system (STS). Although STSs are fruitfully modeled using normative abstractions such as commitments, a conventional (practical) commitment can capture only part of the story, namely, a debtor’s promise to the creditor to bring about the consequent if the antecedent holds. In contrast, in a dialectical commitment, which we highlight, a debtor asserts to the creditor that the consequent is true if the antecedent is. For example, a customer may dialectically commit to a seller that the product she received is damaged but may not practically commit to damaging the product. We introduce a novel bipartite operationalization of dialectical commitments that separates their objective and subjective aspects and thus avoids the problems arising if we merely treat dialectical like practical commitments. We express that operationalization in temporal logic, developing a verification tool based on NuSMV, a well-known model-checker, to verify if the participants’ interactions comply with the participants’ dialectical commitments. We present a set of modeling patterns that incorporate both practical and dialectical commitments. We validate our proposal using a real-world scenario of contradictory medical diagnoses by different specialists.','',2,'Pankaj R. TelangAnup K. KaliaJohn F. MaddenMunindar P. Singh','springer/bpel security.csv','springer',''),(945,'Docker Cluster Management for the Cloud - Survey Results and Own Solution','2016','0',' Cloud computing Management tools Microservices System integration Docker Container','Abstract Docker provides a good basis to run composite applications in the cloud, especially if those are not cloud-aware, or cloud-native. However, Docker concentrates on managing containers on one host, but SaaS providers need a container management solution for multiple hosts. Therefore, a number of tools emerged that claim to solve the problem. This paper classifies the solutions, maps them to requirements from a case study and identifies gaps and integration requirements. We close some of these gaps with our own integration components and tool enhancements, resulting in the currently most complete management suite.','Journal of Grid Computing',1,'René PeinlFlorian HolzschuherFlorian Pfitzer','springer/soa security.csv','springer',''),(946,'Enabling Message Security for RESTful Services','2012','5','Message Security;Performance;Protocol;REST','The security and dependability of cloud applications require strong confidence in the communication protocol used to access web resources. The mainstream service providers nowadays are shifting to REST-based services in the detriment of SOAP-based ones. REST proposes a lightweight approach to consume resources with no specific encapsulation, thus lacking of meta-data descriptions for security requirements. Currently, the security of RESTful services relies on ad-hoc security mechanisms (whose implementation is error-prone) or on the transport layer security (offering poor flexibility). We introduce the REST security protocol to provide secure service communication, together with its performance analysis when compared to equivalent WS-Security configuration.','Web Services (ICWS), 2012 IEEE 19th International Conference on',1,'G. Serme; A. S. de Oliveira; J. Massiera; Y. Roudier','ieee/service oriented architecture security.csv','ieee','\0'),(947,'Enabling Trustworthy Service Evaluation in Service-Oriented Mobile Social Networks','2014','5','Aggregates;Delay;Mobile communication;Mobile social networks;Resists;Security;Social network services;Wireless communication;distributed system;sybil attack;trust evaluation','In this paper, we propose a Trustworthy Service Evaluation (TSE) system to enable users to share service reviews in service-oriented mobile social networks (S-MSNs). Each service provider independently maintains a TSE for itself, which collects and stores users\' reviews about its services without requiring any third trusted authority. The service reviews can then be made available to interested users in making wise service selection decisions. We identify three unique service review attacks, i.e., linkability, rejection, and modification attacks, and develop sophisticated security mechanisms for the TSE to deal with these attacks. Specifically, the basic TSE (bTSE) enables users to distributedly and cooperatively submit their reviews in an integrated chain form by using hierarchical and aggregate signature techniques. It restricts the service providers to reject, modify, or delete the reviews. Thus, the integrity and authenticity of reviews are improved. Further, we extend the bTSE to a Sybil-resisted TSE (SrTSE) to enable the detection of two typical sybil attacks. In the SrTSE, if a user generates multiple reviews toward a vendor in a predefined time slot with different pseudonyms, the real identity of that user will be revealed. Through security analysis and numerical results, we show that the bTSE and the SrTSE effectively resist the service review attacks and the SrTSE additionally detects the sybil attacks in an efficient manner. Through performance evaluation, we show that the bTSE achieves better performance in terms of submission rate and delay than a service review system that does not adopt user cooperation.','IEEE Transactions on Parallel and Distributed Systems',1,'X. Liang; X. Lin; X. S. Shen','ieee/service oriented architecture security.csv','ieee','\0'),(948,'Approaches to Improve Reliability of Service Composition','2012','0',' Reliability SOA Composition Service Quality of Service','Abstract Nowadays, enterprises realize functionality as systems that are composed of services. This includes even mission critical parts of their business. Hence, the reliability of such systems including their composition and services is increasingly important. However, it is a challenge to establish a high reliability in this context because distribution of functionality increases the potential points of failure. Different approaches exist to increase reliability but they typically act on a restricted scope like network layer or software design. In order to obtain better results, it is often necessary to combine multiple approaches depending on the actual situation and the requirements. This paper classifies commonly used approaches according their scope and rates their effects on the reliability. Thereby, it supports the selection of approaches to improve reliability and finally helps to find a suitable solution for a given situation.','',1,'Jörg HohwillerDiethelm SchlegelGregor Engels','springer/service oriented architecture security.csv','springer','\0'),(949,'Design and evaluation of the ModelHealth toolchain for continuity of care web services','2013','0',' Model-driven development Healthcare information systems Empirical study Software engineering','Abstract Motivation: Systems interoperability is a key challenge in providing continuity of care to all patients. The challenge is addressed with information standards and new approaches to systems integration based on service-oriented architectures. Model-driven development promise utilities that are suitable for software service development in the healthcare domain, but development tools are still immature and their industry uptake is low. The knowledge about how model-driven development tools can become more useful to the healthcare software developers should be strengthened. Approach: This paper presents the ModelHealth toolchain that was created in four design/assess cycles, involving 28 students and 41 professional developers in the period 2007–2010. The toolchain provides design assistance for creating software services based on concepts from the CEN-13940 standard for continuity of care, which facilitates development of interoperable software services. Results: The CEN-13940 standard was successfully incorporated into the ModelHealth Toolchain assisting developers in creating software service design models that adhered to the standard. The developers expressed that improved understanding of the target system, documentation generation, and artifact traceability were essential utilities of the model-driven approach. Conclusion: The paper concludes healthcare domain knowledge can be successfully incorporated in a model-driven development toolchain, providing valuable input to the healthcare software service design process. A set of recommendations on how to incorporate domain specific concepts into model-driven development tools is provided. To our knowledge, no other scientific publications have reported from healthcare specific model-driven tool design and evaluations. Our recommendations extend and nuance existing knowledge on model-driven development tooling in general.','Automated Software Engineering',1,'Ståle Walderhaug','springer/soa security.csv','springer','\0'),(950,'Rationalism with a dose of empiricism: combining goal reasoning and case-based reasoning for self-adaptive software systems','2015','0',' Self-adaptive systems Requirements goal models Goal reasoning Case-based reasoning','Abstract Requirements-driven approaches provide an effective mechanism for self-adaptive systems by reasoning over their runtime requirements models to make adaptation decisions. However, such approaches usually assume that the relations among alternative system configurations, environmental parameters and requirements are clearly understood, which is often not true. Moreover, they do not consider the influence of the current configuration of an executing system on adaptation decisions. In this paper, we propose an improved requirements-driven self-adaptation approach that combines goal reasoning and case-based reasoning. In the approach, past experiences of successful adaptations are retained as adaptation cases, which are described by not only requirements violations and contexts, but also currently deployed system configurations. The approach does not depend on a set of original adaptation cases, but employs goal reasoning to provide adaptation solutions when no similar cases are available. Case-based reasoning is used to provide more precise adaptation decisions that better reflect the complex relations among requirements violations, contexts, and current system configurations by utilizing past experiences. To prevent case-based reasoning from getting trapped in suboptimal adaptation solutions, an additional case mutation mechanism is introduced to mutate existing adaptation solutions when necessary. We conduct an experimental study with an online shopping benchmark to evaluate the effectiveness of our approach. The results show that our approach outperforms both a requirements-driven approach and a case-based approach in terms of satisfaction level of quality constraints. The results also confirm the effectiveness of case mutation for producing better adaptation solutions. In addition, we empirically investigate the evolution process of adaptation solutions. The evolution analysis reveals some general evolution trends of adaptation solutions such as different evolution phases.','Requirements Engineering',1,'Wenyi QianXin PengBihuan ChenJohn MylopoulosHuanhuan WangWenyun Zhao','springer/service oriented architecture security.csv','springer',''),(951,'Business Process Mining from E-Commerce Web Logs','2013','4','','Abstract The dynamic nature of the Web and its increasing importance as an economic platform create the need of new methods and tools for business efficiency. Current Web analytic tools do not provide the necessary abstracted view of the underlying customer processes and critical paths of site visitor behavior. Such information can offer insights for businesses to react effectively and efficiently. We propose applying Business Process Management (BPM) methodologies to e-commerce Website logs, and present the challenges, results and potential benefits of such an approach. We use the Business Process Insight (BPI) platform, a collaborative process intelligence toolset that implements the discovery of loosely-coupled processes, and includes novel process mining techniques suitable for the Web. Experiments are performed on custom click-stream logs from a large online travel and booking agency. We first compare Web clicks and BPM events, and then present a methodology to classify and transform URLs into events. We evaluate traditional and custom process mining algorithms to extract business models from real-life Web data. The resulting models present an abstracted view of the relation between pages, exit points, and critical paths taken by customers. Such models show important improvements and aid high-level decision making and optimization of e-commerce sites compared to current state-of-art Web analytics.','',2,'Nicolas PoggiVinod MuthusamyDavid CarreraRania Khalaf','springer/bpel security.csv','springer','\0'),(952,'Cloud Integration Patterns','2015','0',' Cloud computing SOA Integration Topology Patterns SaaS Public cloud Private cloud Multi-cloud','Abstract Enterprises use the cloud for unlimited resource, scalability and elastic provisioning along with being able to use state of the art commodity or specialized solutions available in the cloud. The challenge of this vision is the proper and safe integration of on-premise IT-Landscapes with data and applications in the cloud. To find solutions for integration of classical and cloud environments two approaches, top-down and bottom-up, were used. In the top-down approach cloud integration patterns were specified based on scenarios. In the bottom-up approach cloud integration patterns were based on case study application requirements. Results of this paper are novel cloud integration patterns for various cloud integration scenarios.','',2,'Danny MerkelFilippos SantasAndreas HeberleTarmo Ploom','springer/bpel security.csv','springer',''),(953,'Design and Implementation of Information Flow-sensitive Business Processes','2008','1','Business Proces Management;Information Flow Control;Service Oriented Architectures;WS-BPEl;Workflow Management','Information flow control consists of planning the interactions of services in order to satisfy different security restrictions concerning the propagation of information in a composition. This paper examines the questions of what the information flow is and how it can be modeled and controlled in service-oriented business processes. We present the design and implementation of a decentralized workflow management solution for the control of information flow. Our contribution targets orchestration-based compositions where centralized workflow descriptions are used to derive distributed and cooperating process fragments. The derived process fragments are deployed on composed services and they enable them to establish P2P interconnections with each other. The deriving operation is governed by the underlying dependencies of composed services and the computation of information flow policies. We present a framework for the modeling and computation of information flow and centralized specifications in order to derive cooperating process fragments. Furthermore, we present a reference architecture for service implementation. The former can be applied to a variety of composition specifications such as WS-BPEL while the latter provides an inexpensive and reasonable support for decentralized workflow management.','on Web Services, 2008. ECOWS \'08. IEEE Sixth European Conference',2,'U. Yildiz; C. Godart','ieee/bpel security.csv','ieee','\0'),(954,'Building a Customizable Business-Process-as-a-Service Application with Current State-of-Practice','2013','1',' Software-as-a-Service Business Process jBPM Multi-tenancy Customization Document Processing','Abstract Application-level multi-tenancy is an increasingly prominent architectural pattern in Software-as-a-Service (SaaS) applications that enables multiple tenants (customers) to share common application functionality and resources among each other. This has the disadvantage that multi-tenant applications are often limited in terms of customizability: one application should fit the needs of all customers. In this paper, we present our experiences with developing a multi-tenant SaaS document processing system using current state-of-practice workflow technologies from the JBoss family. We specifically focus on the customizability w.r.t. the different tenant-specific requirements, and the manageability of the tenant-specific customizations. Our main experiences are threefold: (i) we were insufficiently able to modularize the activities and compositions that constitute the document processing workflow, (ii) we lacked support for describing tenant-level variations independently, and (iii) the workflow engine we employed is too centralized in terms of control, which limits resilience and thereby endangers scalability of the document processing application.','',2,'Fatih GeyStefan WalravenDimitri Van LanduytWouter Joosen','springer/bpel security.csv','springer','\0'),(955,'WS-S Evaluation Based on User Preferences and Ranking Mechanism','2013','0','Ranking mechanism;Security evaluation;Topsis;User preferences','As information security is so important today, the technology of web services security is also becoming more and more important, but the research on Web services security is frail, especially the comprehensive evaluation of WS-Security based on user preferences. This paper aims at it, and describes an integrated evaluation architecture and a method-the use of ranking mechanism combined with multi-criteria decision analysis Tops is for comprehensive evaluation, finally we conduct the corresponding experimental verification, which proves the validity and accuracy of this evaluation method.','Cyber-Enabled Distributed Computing and Knowledge Discovery (CyberC), 2013 International Conference on',1,'C. Ma; Y. Duan; X. Ju; F. Xu','ieee/service oriented architecture security.csv','ieee','\0'),(956,'SOA based secure data transmission over CMEA protocol in manet','2014','','Cluster Based Mobility and Energy Aware (CMEA) protocol; Mobile Adhoc Network (MANET); Multi purpose internet mail extension (MIME); Route discovery; Route reply (RREP); Route request (RREQ); Service Oriented Architecture (SOA)','Mobile Adhoc Networks is a self organizing network composed of mobile terminals connected by wireless links. Adhoc Networks are created dynamically without any preexisting network infrastructure Ad-hoc networks are very useful in situations like emergency search and reuse operations and meetings where people want to quickly share information. This network does not have any central administration, hence there are no designated routes, all the nodes can serve as routers for each other, and data packets are forwarded from node to node to node in multi hop fashion. Cluster based Mobility and Energy Aware (CMEA) routing protocols is used to find the reliable route in a cluster networks. The clustered network avoids path breaks and long path delay. When applying the energy and mobility aware metric over clustered network gives reliable route between Source and Destination. Service Oriented Architecture (SOA) is an evolution of past platforms, preserving successful characteristics of traditional architectures and bringing with it distinct principles that follow service orientation in support service oriented enterprise. It forces the network to improve the reliability, security, integrity etc. By applying the proposed XML technique for encrypting the secure data improves the content delivery over the CMEA network. Therefore SOA based secure data transmission over the reliable route improves the network performance. © 2015 The Authors. Published by Elsevier B.V.','',1,'Dhivya P., Karthik S., Kalaikumaran T.','scopus/service oriented architecture security.csv','scopus','\0'),(957,'A community assessment of privacy preserving techniques for human genomes','2014','4',' Genome-wide association studies Data sharing Privacy protection Differential privacy','Abstract To answer the need for the rigorous protection of biomedical data, we organized the Critical Assessment of Data Privacy and Protection initiative as a community effort to evaluate privacy-preserving dissemination techniques for biomedical data. We focused on the challenge of sharing aggregate human genomic data (e.g., allele frequencies) in a way that preserves the privacy of the data donors, without undermining the utility of genome-wide association studies (GWAS) or impeding their dissemination. Specifically, we designed two problems for disseminating the raw data and the analysis outcome, respectively, based on publicly available data from HapMap and from the Personal Genome Project. A total of six teams participated in the challenges. The final results were presented at a workshop of the iDASH (integrating Data for Analysis, \'anonymization,\' and SHaring) National Center for Biomedical Computing. We report the results of the challenge and our findings about the current genome privacy protection techniques.','BMC Medical Informatics and Decision Making',1,'Xiaoqian JiangYongan ZhaoXiaofeng WangBradley MalinShuang WangLucila Ohno-MachadoHaixu Tang','springer/webservice security.csv','springer','\0'),(958,'Mediating Citizen-Sourcing of Open Government Applications – A Design Science Approach','2015','0','','Abstract A design science approach is followed to develop architectural blueprints for implementing platforms to source open government applications from citizens. Zachman framework is initially used as a guide to categorize and develop the artefacts. After designing the blueprints, their usefulness is demonstrated through prototype implementation, and their potential for problem solution is evaluated from the development perspective as well as communicated to governmental peers. Contributions to research and practice include a set of blueprints covering the top levels of a platform’s enterprise architecture, a reusable sourcing platform prototype, set of validated test cases for following up the implementation process, as well as success factors and lessons learned from the government perspective.','',2,'Mai Abu-El SeoudRalf Klischewski','springer/bpmn security.csv','springer',''),(959,'Comparative Analysis of SOA and Cloud Computing Architectures Using Fact Based Modeling','2013','0',' Cloud Computing SOA Service Oriented Architecture Reference Architecture metamodel ISO Fact Based Modeling','Abstract With the ever-changing dynamic Information and Communications Technology environment and the new shared deployment options for computing, a paradigm shift is occurring that enables ubiquitous and convenient computing on a pay-as-you-go basis. Access on demand is becoming available to networks of scalable, elastic, self-serviceable, configurable physical and virtual resources. On a more narrowly focused IT and business front, there is a parallel shift towards designing information systems in terms of the services available at an interface. The Service Oriented Architecture (SOA) development style is based on the design of services and processes and the realization of interoperability and location transparency in context-specific implementations. This paper analyzes the Cloud Computing and SOA Reference Architectures being developed by ISO ISO/IEC JTC1 SC38 (in collaboration with ITU-T SG13/WP6 for Cloud Computing), and offers a concept comparison using Fact Based Modeling (FBM) methodology. FBM has allowed us to distill the concepts, relationships and business rules - thereby exposing the strengths and weakness of each, and identifying the gaps between the two.','',1,'Baba PipraniDon SheppardAbbie Barbir','springer/service oriented architecture security.csv','springer','\0'),(960,'Supporting incremental behaviour model elaboration','2013','0',' Partial behaviour modelling','Abstract Behaviour model construction remains a difficult and labour intensive task which hinders the adoption of model-based methods by practitioners. We believe one reason for this is the mismatch between traditional approaches and current software development process best practices which include iterative development, adoption of use-case and scenario-based techniques and viewpoint- or stakeholder-based analysis; practices which require modelling and analysis in the presence of partial information about system behaviour. Our objective is to address the limitations of behaviour modelling and analysis by shifting the focus from traditional behaviour models and verification techniques that require full behaviour information to partial behaviour models and analysis techniques, that drive model elaboration rather than asserting adequacy. We aim to develop sound theory, techniques and tools that facilitate the construction of partial behaviour models through model synthesis, enable partial behaviour model analysis and provide feedback that prompts incremental elaboration of partial models. In this paper we present how the different research threads that we have and currently are developing help pursue this vision as part of the “Partial Behaviour Modelling—Foundations for Iterative Model Based Software Engineering” Starting Grant funded by the ERC. We cover partial behaviour modelling theory and construction, controller synthesis, automated diagnosis and refinement, and behaviour validation.','Computer Science - Research and Development',1,'Sebastian UchitelDalal AlrajehShoham Ben-DavidVictor BrabermanMarsha ChechikGuido De CasoNicolas D’IppolitoDario FischbeinDiego GarbervetskyJeff KramerAlessandra RussoGerman Sibay','springer/service oriented architecture security.csv','springer','\0'),(961,'Policy-Controlled Authenticated Access to LLN-Connected Healthcare Resources','2015','0','Authentication;Devices Profile for Web Services (DPWS);Web services;authorization;body sensor networks (BSNs);eXtensible Access Control Markup Language (XACML);healthcare;policy-based access control (PBAC);security','Ubiquitous devices comprising several resource-constrained nodes with sensors, actuators, and networking capabilities are becoming part of many solutions that seek to enhance user\'s environment smartness and quality of living, prominently including enhanced healthcare services. In such an environment, security issues are of primary concern as a potential resource misuse can severely impact user\'s privacy or even become life threatening. Access to these resources should be appropriately controlled to ensure that eHealth nodes are adequately protected and the services are available to authorized entities. The intrinsic resource limitations of these nodes, however, make satisfying these requirements a great challenge. This paper proposes and analyzes a service-oriented architecture that provides a policy-based, unified, cross-platform, and flexible access control mechanism, allowing authorized entities to consume services provided by eHealth nodes while protecting their valuable resources. The scheme is XACML driven, although modifications to the related standardized architecture are proposed to satisfy the requirements imposed by nodes that comprise low-power and lossy networks (LLNs). A proof-of-concept implementation is presented, along with the associated performance evaluation, confirming the feasibility of the proposed approach.','IEEE Systems Journal',1,'K. Rantos; K. Fysarakis; C. Manifavas; I. G. Askoxylakis','ieee/service oriented architecture security.csv','ieee',''),(962,'SmartMal: A service-oriented behavioral malware detection framework for smartphones','2014','','Malware; Security; Service-oriented; Smartphones','This paper presents SmartMal-A novel service-oriented behavioral malware detection framework for vehicular and mobile devices. The highlight of SmartMal is to introduce Service Oriented Architecture (SOA) concepts and behavior analysis into the malware detection paradigms. The proposed framework relies on client-server architecture, the client continuously extracts various features and transfers them to the server, and the server\'s main task is to detect anomalies using state-of-art detection algorithms. Multiple distributed servers simultaneously analyze the feature vector using various detectors and information fusion is used to concatenate the results of detectors. We also propose a cycle-based statistical approach for mobile device anomaly detection. We accomplish this by analyzing the users\' regular usage patterns. Empirical results suggest that the proposed framework and novel anomaly detection algorithm are highly effective in detecting malware on Android devices. © 2013 IEEE.','',1,'Wang C., Wu Z., Wang A., Li X., Yang F., Zhou X.','scopus/service oriented architecture security.csv','scopus','\0'),(963,'Enabling semantic technologies in publish and subscribe middleware','2015','','Middleware; Publish and Subscribe; Semantic Technologies; Service-Oriented Architectures','The Publish and Subscribe (pub/sub) dissemination paradigm has emerged as a popular means of disseminating time-sensitive or filtered information, usually in the form of middleware within the enterprise systems of Service-Oriented Architectures (SOA). Through the use of an event service, or broker, published information is disseminated only to the subscribers interested in that information. However, brokering semantically rich information, especially with resource constrained (e.g. limited memory, bandwidth, etc.) subscribers, has not yet been sufficiently explored. We present a service-oriented approach for enabling semantic technologies in pub/sub systems. We map the explicit client subscriptions to the semantic context of the published data, allowing implicit data to be disseminated to the subscriber while enforcing security policies across semantically related data. To illustrate, we show that semantic technologies not only enable semantically rich content sharing but contribute data reduction suitable for resource constrained clients and security policy enforcement capabilities. © 2015 IEEE.','',1,'Ahmed N., Bryant J., Hasseler G., Paulini M.','scopus/service oriented architecture security.csv','scopus',''),(964,'Secure service composition in sensor Web','2009','2','BPEL;SAML;WS-Security;Workflow;geospatial Web service','Geospatial Web services have become popular. Geospatial processing has been moving into the Web environment. A geospatial workflow, combining a series of geospatial Web services, is common in achieving a complex of computation from simple individual Web services. Web service security is important for guarding sensitive data and assuring correct delivery of data. Many Web services need to be secured in terms of access control and message/data integrity. Workflow security is not a simple problem to be completely handled at individual Web service but has its complexity. This study examines the approaches to enforce security measures on a workflow and to extend workflow scripting language with capabilities in handling security tokens. In this study, workflows are defined in business process execution language (BPEL). A BPEL execution engine was augmented with the extensions to access headers of simple object access protocol (SOAP) messages. The study experimented several strategies to enable the successful passing of security tokens through the engine which is often required. The extensions worked successfully in supporting the passing of security tokens to individual services through the BPEL engine. In future, the solution needs further testing and improvements, examining on multiple security tokens, extending beyond limitations of SOAP binding, and forming standards.','2009 IEEE International Geoscience and Remote Sensing Symposium',2,'G. Yu; L. Di','ieee/bpel security.csv','ieee','\0'),(965,'1000 Years of Coo-BDI','2012','0','','Abstract The idea of extending the BDI architecture with cooperativity started shaping in 2003 when two independent proposals to support cooperation in a BDI setting were presented at DALT. One proposal, Coo-BDI, extended the BDI architecture by allowing agents to cooperate by exchanging and sharing plans in a quite flexible way; the other extended the BDI operational semantics for introducing speech-act based communication, including primitives for plan exchange. Besides allowing a natural and seamless integration with speech-act based communication for BDI languages, the intuitions behind Coo-BDI have proved to be promising and attractive enough to give rise to new investigations. In this retrospective review we discuss papers that were influenced by Coo-BDI and we outline other potential developments for future research.','',2,'Viviana MascardiDavide Ancona','springer/bpel security.csv','springer','\0'),(966,'Orchestration under Security Constraints','2012','0','','Abstract Automatic composition of web services is a challenging task. Many works have considered simplified automata models that abstract away from the structure of messages exchanged by the services. For the domain of secured services (using e.g. digital signing or timestamping) we propose a novel approach to automated composition of services based on their security policies. Given a community of services and a goal service, we reduce the problem of composing the goal from services in the community to a security problem where an intruder should intercept and redirect messages from the service community and a client service till reaching a satisfying state. We have implemented the algorithm in AVANTSSAR Platform [5] and applied the tool to several case studies.','',2,'Yannick ChevalierMohamed Anis MekkiMichaël Rusinowitch','springer/bpel security.csv','springer','\0'),(967,'A study of risk evaluation framework for cloud computing system','2015','','AHP; RBFNN; Risk evaluation; SLA; Virtual machine','Virtualization asks for safer and better quality to service-oriented cloud computing system suppliers. Most of the traditional researching is focus on the risk assessment of the information system and DDoS, but lacking of researching on cloud computing in deep. So that the service-oriented cloud computing system risk evaluation researching is very essential. In this paper, we build a service-oriented cloud computing system risk assessment framework that using distributed dynamic status monitoring of virtual machine system and making risk prediction value to summarizing the fnal risk assessment level of the system as a whole. The model can be used in monitoring, identifying, predicting and evaluating for cloud computing security risk that is having effect on the risk evaluation of virtual machine node and whole cloud system. First we proposed a new method to identifying risk named LSA-GCC that used LSA for analyzing log files and cluster for classifying. The method doing the feed forward risk identifcation by collecting the log of the operating system and WebService that are on VM node level,and the LSA-SAM method can improved the detecting accuracy for abnormal events. Then the risk predictiton method had been proposed that combined with RBFNN(Radial Basis Function Neural Network) and AHP . This method build a risk predicting model by AHP(Analytic Hierarchy Process) that consists of four indicators, that are P (performance), T (Time), A (event statistics) and R (risk identification). Each indicator include some monitoring parameters that can compute the risk indicator value by weight matrix. Experimental results show that MRPGA-RBF risk prediction method can predictive risk value accurately.','',1,'Lin F., Xiahou J., Zeng W.','scopus/webservice security.csv','scopus',''),(968,'Interoperability Assessment Approaches for Enterprise and Public Administration','2013','0',' interoperability assessment eGovernment maturity models','Abstract The need for collaboration among organizations is a reality with which systems, managers and other stakeholders must deal. But this is not an exclusive concern of private administrations, once the increasing need for information exchange among government agencies, the supply of online services to citizens, and the cost reduction of public operations and transactions demand that the government organizations must be ready to provide an adequate interface to their users. This paper presents basic concepts of Enterprise Interoperability, some assessment models and eGovernment practices, models, definitions and concepts, providing an initial analysis of their basic properties and similarities, verifying some possible gaps that may exist.','',2,'José Marcelo A. P. CestariEduardo R. LouresEduardo Alves Portela Santos','springer/bpmn security.csv','springer','\0'),(969,'Mobile network-aware social computing applications: a framework, architecture, and analysis','2013','0',' Social networks Web 2.0 applications Social web services IP packet exchange IP multimedia subsystems Mobility models QoS QoE RSVP MPLS Diffserv','Abstract Advanced socio-technical systems especially handheld and mobile devices are no longer esoteric; rather they are a part of daily life for billions of people worldwide endowing a sense of every time connectedness that helps in realizing the ideology behind social computing applications (such as, Facebook, Twitter, Flickr, YouTube, SecondLife, etc.), i.e., sharing whatever-whenever. With larger bandwidths (3G/4G/WiMax capabilities), powerful processing capabilities, better displays, and user friendly and even haptic interfaces, mobile platforms have shown a promising future for social computing applications. However, advances in web technologies (such as HTML5, AJAX, etc.) have led to the development of complex set of applications with rich user-interfaces that demands a nimble and robust architecture for social computing applications that is adaptive to the network constraints and bottleneck issues. This has resulted in a favorable playground for mobile-aware social computing applications offering practitioners and researchers key architectural challenges with numerous fledgling opportunities. In this article, we elaborate upon the challenges and provide a framework for incorporating cross-layer interaction between social network applications and wireless network capabilities. Specifically, we address the problem of delivering social network content to mobile devices with the required QoS. We propose a generic framework that addresses this issue. We also discuss some suitable wireless network protocols that could be utilized to provide QoS for the delivery of content generated by social computing applications and for reliable interactions between mobile users and social computing applications followed by possible future research directions.','Journal of Ambient Intelligence and Humanized Computing',1,'Seshadri MohanNitin AgarwalLava Al-Doski','springer/soa security.csv','springer','\0'),(970,'InCloud: a cloud-based middleware for vehicular infotainment systems','2016','0',' Infotainment system VANET Middleware Cloud Service oriented architecture','Abstract Smart vehicles form pervasive environment to enhance user experience through multimedia enabled infotainment systems. In order to realize effective infotainment system for vehicles, we need to have context-aware applications that use latest (live) information for enhanced user experience. Such latest information is abundantly available on the Internet due to explosive growth of Web 3.0, which can be accessed through wireless communication infrastructures such as VANETs and LTE. In this paper we propose a cloud-based middleware framework, InCloud , for vehicular infotainment application development. The proposed framework follows service oriented architecture in which data filtering and fusion functionalities are delegated to the cloud. Data filtering and fusion reduce the data flow over wireless link. Furthermore, because most of the processing is done on the cloud, the client becomes lightweight and loosely coupled with Internet resources and underlying platforms in vehicles. We also propose a class-based fusion method for combining information from multiple resources on the Internet. The efficacy of the proposed framework is validated by developing three infotainment applications for vehicles: context-aware music, news, and an enhanced Direction (eDirection) application.','Multimedia Tools and Applications',1,'Mukesh SainiKazi Masudul AlamHaolin GuoAbdulhameed AlelaiwiAbdulmotaleb El Saddik','springer/service oriented architecture security.csv','springer',''),(971,'Security policy conflicts in service-oriented systems','2012','2','Conflict Detection Algorithm; Security Policy','This paper considers methods for knowledge exploitation in security policies for Service-Oriented Architecture (SOA) environments, discovering the modality conflicts in particular. Two algorithms for discovering SOA-specific modality conflicts are proposed. First, a trivial (ad-hoc) approach is presented and further extended by the improved algorithm which offers lower time complexity. The formal verification of the proposal is followed by experimental results confirming the expected supremacy of the improved algorithm. © 2012 Ohmsha, Ltd. and Springer.','',1,'Brodecki B., Szychowiak M., Sasak P.','scopus/service oriented architecture security.csv','scopus','\0'),(972,'Role and task-based access control model for web service integration','2012','3','Access control; Periodic time; RBAC; TBAC; Web service integration','According to the weaknesses of the traditional access control technology for web service integration, and the implement technology of access control in the BPEL-based process. On the basis of traditional RBAC, TBAC and security workflow model, we propose a role and task-based access control model (RTBAC), whose architecture is not user-role-permission but user-role-task-permission, and which adds periodic time and task weight constraint mechanism. The basic concepts of RTBAC and formalization description are introduced and analyzed; moreover the mapping from the BPEL-based process to RTBAC was implemented in this paper. The RTBAC from the tasks in services, and dynamically manage the permissions through tasks and task instances\' status, which permissions\' status will be changed dynamically with the execution of task instance. The RTBAC can meet the need to manage and enforce the strong and efficient access control technology in large-scale web services integration. © 2012 Binary Information Press.','',2,'Yu D.','scopus/bpel security.csv','scopus','\0'),(973,'A scalable planetary science information architecture for big science data','2014','','Big Data; Information Architecture','Research has shown that the amount of data now available often overwhelms key functions of an information system. This situation necessitates the design of information architectures that scale to meet the challenges. The Planetary Data System, a NASA funded project, has developed an information architecture for the planetary science community that addresses this and other big science data issues noted in a National Research Council report regarding architectures for big data management and analysis and end-to-end data lifecycle management across diverse disciplines. The report identified enabling technology trends including distributed systems, service-oriented architectures, ontologies, models and information representation, scalable database systems, federated data security mechanisms, and technologies for moving big data. This paper will present the PDS4 information architecture, its successful implementation in a multi-discipline big-data environment. © 2014 IEEE.','',1,'Crichton D., Hughes J.S., Hardman S., Law E., Beebe R., Morgan T., Grayzeck E.','scopus/service oriented architecture security.csv','scopus','\0'),(974,'Security for Open Distributed Geospatial Information Systems','2012','0','','','',1,'Andreas Matheus','springer/service oriented architecture security.csv','springer','\0'),(975,'Services Collaboration Supported by a B2B Platform in Retail Environment','2014','0',' Future Internet generic enabler business process business architect','Abstract The collaboration between services enables the communication between business entities in an efficient way. In order to achieve the uniformity between the provision and consumption of information we use platforms that can place different actors in the same context and that take advantage of the business architect figure, that defines the business logic implemented through the business process. In this paper it is described a platform that enables business collaboration to the exchange of product information in a retail environment. The proposed system is based on a B2B cloud based platform that provides support for the business logic and the collaboration among business partners. We validate this system through the implementation of some applications that enable farmers, food transportation companies and supermarkets to share information.','',2,'Álvaro Sánchez-PicotTomás RoblesRamón AlcarriaDiego Martín','springer/bpel security.csv','springer',''),(976,'Modulare Softwarearchitektur für Mehrwertanwendungen der deutschen Gesundheitstelematik','2013','0','Schlüsselwörter Gesundheitskarte Telematikinfrastruktur Mehrwertanwendungen Mehrwertdienste Referenzarchitektur Gesundheitswesen Design research Electronic health card Healthcare telematics Value-added applications Value-added services Software architecture Design research','Zusammenfassung Mehrwertanwendungen der elektronischen Gesundheitskarte sollen Patientenorientierung sowie Qualitäts- und Effizienzsteigerungen im Gesundheitswesen ermöglichen. Die Dienste der Gesundheitstelematik, bei der die elektronische Gesundheitskarte nur eine Teilkomponente ist, können dabei beliebig eingebunden werden, etwa um Sicherheitsstandards und Interoperabilität zu gewährleisten. Der gestaltungsorientierte Beitrag präsentiert die Entwicklung und Evaluierung einer Softwarearchitektur für Mehrwertanwendungen. Um die Akzeptanz der Nutzer zu steigern, wurden die Architekturanforderungen direkt bei den Leistungserbringern erhoben. Die Architektur wird anhand des elektronischen Überweisungsmanagements illustriert und evaluiert. Es werden typische Funktionseinheiten von medizinischen Abläufen in sieben Schichten abstrahiert. Die Instanziierung zeigt eine strukturierte Anwendung mit übergreifenden Sicherheitsstandards, die Interoperabilität zwischen heterogenen Bestandssystemen und eine übergreifende Steuerung durch Ärzteverbünde ermöglicht. Die Architektur bietet erstmalig im deutschen Gesundheitswesen die Möglichkeit, eine Vielzahl von Mehrwertanwendungen systematisch, einfach, sicher und zuverlässig zu spezifizieren und zu entwickeln, um sie über die Telematikinfrastruktur zur Verfügung zu stellen.','WIRTSCHAFTSINFORMATIK',1,'Sebastian DünnebeilJun.-Prof. Dr. Ali SunyaevProf. Dr. Jan Marco LeimeisterProf. Dr. Helmut Krcmar','springer/soa security.csv','springer','\0'),(977,'Collaborative spam filtering based on incremental ontology learning','2013','1',' Intelligent intranet Spam filtering Ontology learning Proxy server','Abstract Spam mail filtering is a classic problem to automatically recognize irrelevance between incoming emails and user contexts. This paper proposes a novel proxy server architecture for (i) collaboratively integrating useful features sent from personal email clients. (ii) Improving the filtering performance of SMTP servers. Given a set of spam mails marked by multiple email users, the proxy server can extract two kinds of textual features, which are apriori terms and concept terms based on key phrases. More importantly, by taking into account the semantics and statistical associations, the proxy can aggregate them in a hierarchical cluster structure. As a result, spam ontology can be built, and also, incrementally enriched. Hence, the email clients can be supported to improve their performances of spam filtering by referring to the semantic information from the ontology. For evaluating the proposed system, we have collected a large number of spam mails within a same intranet environment. The system has shown 17.4% lower error rate of filtering than the single email clients.','Telecommunication Systems',1,'Xuan Hau PhamNam-Hee LeeJason J. JungAbolghasem Sadeghi-Niaraki','springer/service oriented architecture security.csv','springer','\0'),(978,'Compliance Validation of Secure Service Compositions','2014','0',' Validation Security BPMN SecureBPMN Compliance','Abstract The Aniketos Secure Composition Framework supports the specification of secure and trustworthy composition plans in term of BPMN. The diversity of security and trust properties that is supported by the Aniketos framework allows, on the one hand, for expressing a large number of security and compliance requirements. On the other hand, the resulting expressiveness results in the risk that high-level compliance requirements (e.g., separation of duty) are not implemented by low-level security means (e.g., role-based access control configurations). In this chapter, we present the Composition Security Validation Module (CSVM). The CSVM provides a service for checking the compliance of secure and trustworthy composition plans to the service designer. As proof-of-concept we created a prototype in which the CSVM module is deployed on the SAP NetWeaver Cloud and two CSVM Connectors are built supporting two well-known BPMN tools: SAP NetWeaver BPM and Activiti Designer.','',2,'Achim D. BruckerLuca CompagnaPierre Guilleminot','springer/bpmn security.csv','springer',''),(979,'105--108','2015','0','SaaS, experience, service design patterns, service design principles, service-oriented architecture','Software as a Service (SaaS) is now recognized as an effective model for the development, deployment, and customization of software. It has been reported that it reduces the costs as well as ensures the long-term sustainability of software systems. Monolithic software systems are seen as a set of interrelated and geographically distributed services over the Internet. Developers and providers can easily customize services while being able to accommodate a large range of stakeholders. At the core of this service orientation of the whole field of software development are the Service-Oriented Architecture (SOA) design principles. These principles detail what we should do, but not how and by whom it has to be done. From a human perspective -- all stakeholders -- we argue that the current SOA design principles can be linked and benefit from the user experience/user-centric design. Such combination can lead to a user experience-centric and SOA-based design approach that guarantees that SaaS is secure, yet trustable, useful, usable and accessible. In this position paper, we reviewed SOA/SaaS from the human dimension with the goal to bridging the gaps between SOA design principles and the User Experience (UX) design communities including Human-Computer Interaction (HCI) and service design. One practical goal is to enhance the SOA, as a technological platform with elements of UX including the social aspects of their interactions within the organizational structure and processes.','',1,'','acm/soa security.csv','acm',''),(980,'ROAD4SaaS: Scalable Business Service-Based SaaS Applications','2013','0',' SOA SaaS Scalability Service Variability','Abstract Software-as-a-Service (SaaS) is a software delivery model gaining popularity. Service Oriented Architecture (SOA) is widely used to construct SaaS applications due to the complementary characteristics in the two paradigms. Scalability has always been one of the major requirements in designing SaaS applications to meet the fluctuating demand. However, constructing SaaS applications using third-party business services raises additional challenges for the scalability of the application due to the partner services’ variability and autonomy. Any approach used to develop scalable service-based SaaS applications that compose business services needs to consider these characteristics. In this paper we present an approach to deploy scalable business service compositions based on the concept of an extensible hierarchy of virtual organisations. The explicit representation of relationships in the organisation allows capturing commonalities and variations of relationships between business services while its extensibility allows scale-out/in the SaaS application instance.','',2,'Malinda KapurugeJun HanAlan ColmanIndika Kumara','springer/bpel security.csv','springer','\0'),(981,'SOA-Scanner: An Integrated Tool to Detect Vulnerabilities in Service-Based Infrastructures','2013','3','SOA;security;security testing;vulnerability detection;web-services','Service Oriented Architectures are nowadays used in a wide range of organizations to support critical daily operations. Although the underlying services should behave in a secure manner, they are often deployed with bugs that can be maliciously exploited. The characteristics of service-based environments open the door to security challenges that must be handled properly, including services under the control of multiple providers and dynamism of interactions and compositions. This paper presents an extensible tool able to widely test such infrastructures for vulnerabilities. The tool is based in an iterative process that uses interface monitoring to automatically monitor and discover the existing services, resources and interactions, and applies different testing approaches depending on the level of access to each existing services. Two case studies has been developed do demonstrate the tool, and results show that the tool can effectively be used in different service-based scenarios, under different access conditions to the target services.','Services Computing (SCC), 2013 IEEE International Conference on',1,'N. Antunes; M. Vieira','ieee/service oriented architecture security.csv','ieee','\0'),(982,'Maintaining Trustworthiness of Socio-Technical Systems at Run-Time','2014','0',' Socio-Technical Systems Trustworthiness Run-Time Maintenance','Abstract Trustworthiness of dynamical and distributed socio-technical systems is a key factor for the success and wide adoption of these systems in digital businesses. Different trustworthiness attributes should be identified and accounted for when such systems are built, and in order to maintain their overall trustworthiness they should be monitored during run-time. Trustworthiness monitoring is a critical task which enables providers to significantly improve the systems’ overall acceptance. However, trustworthiness characteristics are poorly monitored, diagnosed and assessed by existing methods and technologies. In this paper, we address this problem and provide support for semi-automatic trustworthiness maintenance. We propose a trustworthiness maintenance framework for monitoring and managing the system’s trustworthiness properties in order to preserve the overall established trust during run-time. The framework provides an ontology for run-time trustworthiness maintenance, and respective business processes for identifying threats and enacting control decisions to mitigate these threats. We also present use cases and an architecture for developing trustworthiness maintenance systems that support system providers.','',2,'Nazila Gol MohammadiTorsten BandyszakMicha MoffieXiaoyu ChenThorsten WeyerCostas KalogirosBassem NasserMike Surridge','springer/bpmn security.csv','springer',''),(983,'OPC UA server aggregation — The foundation for an internet of portals','2014','0','','Devices in industrial automation systems are becoming more and more intelligent. Consequently, functions such as server services are migrating into the device level. To solve the resulting connection mesh, this paper entails the concept of aggregation of servers connected to devices in an industrial automation scenario. The first section discusses the basic requirements for aggregation and proposes an architecture for server aggregation as a solution. The following section describes the building blocks of the architecture. Finally, the paper presents a prototype based on this architecture model as a proof of concept implementation of the concept introduced in this paper. The last section discusses the results of the prototyping phase including the possible improvements of the same.','Proceedings of the 2014 IEEE Emerging Technology and Factory Automation (ETFA)',1,'D. Großmann; M. Bregulla; S. Banerjee; D. Schulz; R. Braun','ieee/service oriented architecture security.csv','ieee','\0'),(984,'ICT-powered Health Care Processes','2014','0',' Clinical guidelines declarative and stochastic process models adaptability trustworthiness','Abstract The efficient use of health care ressources requires the use of Information and Communication Technology (ICT). During a treatment process, patients have often been tested and partially treated with different diagnoses in mind before the precise diagnosis is identified. To use ressources well it becomes necessary to adapt the prescribed treatments to make use of the tests and partial treatments already performed, rather than always starting from square one. We propose to facilitate this through the design of declarative process models accounting for the involvement of distributed groups of medical specialists and the adaptation of treatments, and through the evaluation of the trustworthiness of models taking account of test results and actual treatments compared to the clinical guidelines.','',2,'Marco CarboneAnders Skovbo ChristensenFlemming NielsonHanne R. NielsonThomas HildebrandtMartin Sølvkjær','springer/bpmn security.csv','springer',''),(985,'An Intelligent Interactive Home Care System: An MPLS-Based Community Cloud','2013','0',' Cloud Computing MPLS ICT RFID Virtualization Smart Sensors Network Capable Application Processor','Abstract In recent years, scholarly research on the use of new technology in healthcare has intensified. Some of the main challenges identified in the literature include the integration of dissimilar signaling systems, network barriers such as bandwidth allocation, battery life in wireless devices, the security and privacy protection associated with data transmission using public network and the user friendliness of the systems, among others. The aim of this paper is to address some of the above concerns by introducing a secure, multiplatform network system capable of providing the dynamic bandwidth allocation required for today’s home healthcare services. It incorporates a user friendly interface by introducing a unique instrument integrated with the community cloud arrangement to provide a more robust system to address the needs of multiple stakeholders.','',1,'Farid Shirazi','springer/service oriented architecture security.csv','springer','\0'),(986,'Towards Cross-Layer Monitoring of Multi-Cloud Service-Based Applications','2013','2',' Cloud computing service-oriented architecture monitoring modeling event processing service dependencies','Abstract Cloud computing is becoming a popular platform to deliver service-based applications (SBAs) based on service-oriented architecture (SOA) principles. Monitoring the performance and functionality of SBAs deployed on multiple Cloud providers (in what is also known as Multi-Cloud setups) and adapting them to variations/events produced by several layers (infrastructure, platform, application, service, etc.) in a coordinated manner are challenges for the research community. This paper proposes a monitoring framework for Multi-Cloud SBAs with two main objectives: (a) perform cross-layer (Cloud and SOA) monitoring enabling concerted adaptation actions; (b) address new challenges raised in Multi-Cloud SBA deployment. The proposed framework is empirically evaluated on a real-world Multi-Cloud setup.','',1,'Chrysostomos ZeginisKyriakos KritikosPanagiotis GarefalakisKonstantina KonsolakiKostas MagoutisDimitris Plexousakis','springer/service oriented architecture security.csv','springer','\0'),(987,'Aspect oriented business process modelling with precedence','2012','3','Aspect Oriented; BPMN; Business Process Modelling; Separation of concerns','Complexity is a major concern which is aimed to be overcome by people through modelling. One way of reducing complexity is separation of concerns, e.g. separation of business process from applications. One sort of concerns are cross-cutting concerns i.e. concerns which are scattered and tangled through one or several models. In business process management, examples of such concerns are security and privacy policies. To deal with these cross-cutting concerns, the aspect orientated approach was introduced in the software development area and recently also in the business process management area. The work presented in this paper elaborates on aspect oriented process modelling. It extends earlier work by defining a mechanism for capturing multiple concerns and specifying a precedence order according to which they should be handled in a process. A formal syntax of the notation is presented precisely capturing the extended concepts and mechanisms. Finally, the relevance of the approach is demonstrated through a case study. © 2012 Springer-Verlag.','',2,'Jalali A., Wohed P., Ouyang C.','scopus/bpmn security.csv','scopus','\0'),(988,'User-Guided Provisioning in Federated Clouds for Distributed Calculations','2015','1','','Abstract Cloud Computing promises to be more flexible, usable, available and simple than Grid, covering also much more computational needs than the ones required to carry out distributed calculations. However, the diversity of cloud providers, the lack of standardised APIs and brokering tools prevent the massive portability of legacy applications to cloud environments. In this work a new framework to effectively schedule distributed calculations in cloud federations is presented. The system takes account of the experience in large and collaborative grid federations to provide several basic features that differentiates it from other approaches, such as the decentralisation, middleware independence, dynamic brokering, on-demand provisioning of specific virtual images, compatibility with legacy applications, efficient accomplishment of short tasks, etc. In this sense, the mechanisms that allow users to consolidate their own resource provisioning in cloud federations are the focus of this work. To demonstrate the suitability of the new approach, a common application to model radiation beams has been scheduled into the EGI FedCloud.','',1,'A. J. Rubio-MonteroE. HuedoR. Mayo-García','springer/service oriented architecture security.csv','springer',''),(989,'A Reliable and Scalable Service Bus Based on Amazon SQS','2013','0',' Cloud based interoperation Cost evaluation Web service based coordination','Abstract Cloud computing infrastructures are becoming a very powerful mean for the implementation of reliable and extensible computing systems. In this paper, we evaluate the viability of migrating a framework for the execution of (scientific) workflows from a cluster-based to a cloud-supported implementation. As a first step, we focus on the viability of adapting the framework message bus (which has a Linda semantics) to the use of the Amazon Simple Queue Service (Amazon SQS). The paper evaluates the performance of the cloud-based bus and studies the influence of the network latency, depending on different geographical locations and configurations. It also compares the cloud-based bus with DRLinda, our former implementation, in terms of economic cost and performance. This comparison allows us to conclude that, under the same conditions, the cloud-based message bus is faster, more scalable and more reliable.','',1,'Sergio HernándezJavier FabraPedro ÁlvarezJoaquín Ezpeleta','springer/service oriented architecture security.csv','springer','\0'),(990,'SaaS-platform for mobile health applications','2012','','e-Health; fearless; M-Diab; M-Fitness; M-Skin; M-Stress; Platform; SaaS; Telehealth; Telemedicine','Involving information and communication technology in health solutions has shown to raise satisfaction for both health care providers and patients. Several research works have been focusing on this issue, since it appears to be the suited solution for reaching an economically and socially viable solution to the increasing number of chronically ill patients which is currently stressing the healthcare systems. In today\'s context, Software as a Service (SaaS), a model in which software and its associated data are hosted centrally and are typically accessed by users using client interfaces, has become a common delivery model for several applications. However, security and privacy issues have to be given more attention in most of these implementation environments. This paper introduces an innovative SaaS-Platform suited for the implementation of mobile health solutions. The platform utilizes state-of-the art technologies in information and communication systems. It follows the principles of services oriented architecture and delivers services as a SaaS. The SaaS-Platform has a four-layer architecture model which includes the middle layer, the application layer, the communication layer and the user layer. At the application layer, solutions can be presented as web-interfaces, mobile-interfaces or client software. Basic tasks such as secure data communication, secure data storage, user management and easy-to-use interfaces are offered by the SaaS-Platform. The architecture and basic functions of the platform will be presented. The implementation of a number of telemedical and e-Health solutions on this Platform has been performed successfully. © 2012 IEEE.','',1,'Berndt R.-D., Takenga M.C., Kuehn S., Preik P., Sommer G., Berndt S.','scopus/service oriented architecture security.csv','scopus','\0'),(991,'Cover page','2014','0','','The following topics are dealt with: visualisation; ERP systems; agile information systems development; data fraud detection; natural language; reusable systems; object-oriented principles; GUI modeling; communication protocols; service-oriented platform; virtual reality; embedded systems; software engineering forensics; software specification; and mobile applications.','Evaluation of Novel Approaches to Software Engineering (ENASE), 2014 International Conference on',1,'','ieee/service oriented architecture security.csv','ieee','\0'),(992,'Architecture for BPEL based requirement driven learning management','2008','0','','With support of multiple learners and multiple roles in a learning activity, IMS Learning Design (LD) specification provides a collaborative scenario for participants. However, IMS LD provides insufficient support for interaction among learning activities and can not dynamically integrate learning resources to meet the continually changing service requirement. In this paper, we propose a BPEL-enhanced requirement driven learning management architecture to address the issues of personalize adaptive learning. Our approach models the learning activity by combining IMS LD with BPEL and matches optimal learning sequence base on CBR (case-based reasoning) method. By providing expandable learning sequences flexibly, it satisfies the different actual demands for personalize learning.','IT in Medicine and Education, 2008. ITME 2008. IEEE International Symposium on',2,'Chaowang Shang; Zongkai Yang; Qingtang Liu; Chengling Zhao','ieee/bpel security.csv','ieee','\0'),(993,'A Web-Service for Automated Software Refactoring Using Artificial Bee Colony Optimization','2012','0',' Discrete Artificial Bee Colony Optimization Search-Based Software Engineering Software Quality Web-Services','Abstract Automated software refactoring is one of the hard combinatorial optimization problems of search-based software engineering domain. The idea is to enhance the quality of the existing software under the guidance of software quality metrics through applicable refactoring actions. In this study, we designed and implemented a web-service that uses discrete version of Artificial Bee Colony (ABC) optimization approach in order to enhance bytecode compiled Java programming language codes, automatically. The introduced service supports 20 different refactoring actions that realize intelligent ABC searches on design landscape defined by an adhoc quality model being an aggregation of 24 object-oriented software metrics.','',1,'Ekin KocNur ErsoyZelal Seda CamlidereHurevren Kilic','springer/service oriented architecture security.csv','springer','\0'),(994,'A review of smart homes in healthcare','2015','4',' Smart homes Assisted living Healthcare Ambient intelligence Activity recognition Human interfaces Artificial intelligence Sensors','Abstract The technology of Smart Homes (SH), as an instance of ambient assisted living technologies, is designed to assist the homes’ residents accomplishing their daily-living activities and thus having a better quality of life while preserving their privacy. A SH system is usually equipped with a collection of inter-related software and hardware components to monitor the living space by capturing the behaviour of the resident and understanding his activities. By doing so the system can inform about risky situations and take actions on behalf of the resident to his satisfaction. The present survey will address technologies and analysis methods and bring examples of the state of the art research studies in order to provide background for the research community. In particular, the survey will expose infrastructure technologies such as sensors and communication platforms along with artificial intelligence techniques used for modeling and recognizing activities. A brief overview of approaches used to develop Human–Computer interfaces for SH systems is given. The survey also highlights the challenges and research trends in this area.','Journal of Ambient Intelligence and Humanized Computing',1,'Mohsen AmiribesheliAsma BenmansourAbdelhamid Bouchachia','springer/soa security.csv','springer',''),(995,'VRank: A Context-Aware Approach to Vulnerability Scoring and Ranking in SOA','2012','1','Context;Ranking and Scoring;Service-Oriented Architecture;Vulnerabilities','With the rapid adoption of the concepts of Service Oriented Architecture (SOA), sophisticated business processes and tasks are increasingly realized through composing distributed software components offered by different providers. Though such practices offer advantages in terms of cost-effectiveness and flexibility, those components are not immune to vulnerabilities. It is therefore important for the administrator of some composed service to evaluate the threats of such vulnerabilities accordingly within limited available information. Since almost all the existing efforts (e.g., CVSS) fail to consider specific context-aware information which is the specific character of SOA, they could not be adopted into SOA for scoring vulnerabilities. In this paper, we present VRank, a novel framework for the scoring and ranking of vulnerabilities in SOA. Different from existing efforts, for a given vulnerability, VRank not only considers its intrinsic properties (e.g., exploitability), but also takes into account the contexts of the services having this vulnerability, e.g., what roles they play in the composed service and how critical it is to the security objective of the service. The resulting scoring and ranking of vulnerabilities are thus highly relevant and meaningful to the composed service. We present the detailed design of VRank, and compare it with CVSS. Our experiments indicate VRank is able to provide much more useful ranking lists of vulnerabilities for complex composed services.','Software Security and Reliability (SERE), 2012 IEEE Sixth International Conference on',1,'J. Jiang; L. Ding; E. Zhai; T. Yu','ieee/service oriented architecture security.csv','ieee','\0'),(996,'Power consumption prediction of web services for energy-efficient service selection','2015','0',' Power consumption prediction Web service Virtual power meter QoS','Abstract Service-oriented computing (SOC) is a popular software paradigm that is widely employed in IT industry. SOC uses “services” as the unit of functionality of a software application. The massive wave of SOC applications involves considerable energy consumption of servers, which should not be ignored in large-scale computing environment. When a service requirement can be answered by several web services, the energy consumption for each service to reply to the service request may be different. When this happens, web service selection (WSS) is often required to choose appropriate services to maximize global energy efficiency of SOC applications. Accordingly, this paper proposes a Virtual Power Meter Supported Power Consumption Prediction method for WSS (VPMSPCP). VPMSPCP facilitates choosing appropriate services to minimize wasteful electrical energy from the overall environment of SOC applications. According to our empirical proof, there is a correlation between the power consumption of a service and the status of the server where this service resides. We take advantage of this discovery to develop VPMSPCP by combining a ridge regression model with a well-known web service power modeling method. There are mainly two steps to establish VPMSPCP. First, we develop a virtual power meter (VPM) for each server. VPM is used to estimate the average power of a server under a certain status. Second, we apply the VPM to develop VPMSPCP which estimates power consumption of a web service according to the current status of the corresponding servers. Experiments show that VPMSPCP performs well in improving energy saving in WSS.','Personal and Ubiquitous Computing',1,'Jin LiuJiaming JiangXiaohui CuiWei YangXiao Liu','springer/soa security.csv','springer',''),(997,'Shifting Primes on OpenRISC Processors with Hardware Multiplier','2013','1','','Abstract Shifting primes have proved its efficiency in CPUs without hardware multiplier such as the located at the MSP430 from Texas Instruments. This work analyzes and presents the advantages of the shifting primes for CPUs with hardware multiplier such as the JN5139 from NXP/Jennic based on an OpenRISC architecture. This analysis is motivated because Internet of Things is presenting several solutions and use cases where the integrated sensors and actuators are sometimes enabled with higher capabilities. This work has concluded that shifting primes are offering advantages with respect to other kind of primes for both with and without hardware multiplier. Thereby, offering a suitable cryptography primitives based on Elliptic Curve Cryptography (ECC) for the different families of chips used in the Internet of Things solutions. Specifically, this presents the guidelines to optimize the implementation of ECC when it is presented a limited number of registers.','',1,'Leandro MarinAntonio J. JaraAntonio Skarmeta','springer/service oriented architecture security.csv','springer','\0'),(998,'A Hybrid Trust Service Architecture for Cloud Computing','2013','0','Cloud Computing;D-S Evidence Theory;Dirichlet Distribution;Service Architecture;Trust','Trust service is a very important issue in cloud computing, and a cloud user needs a trust mechanism in selecting a reliable cloud service provider. Many trust technologies such as SLA, cloud audit, self-assessment questionnaire, accreditation, and so on, are proposed by some research organizations like CSA. However, all of these just provide a initial trust and have many limitations. A hybrid trust service architecture for cloud computing is proposed in this paper, which primary includes two trust modules named the initial trust module and trust-aided evaluation module. After an initial and a basic trust is established in initial trust module, the trust-aided evaluation module will be used to verify the service provider dependable further. The approaches of D-S evidence theory and Dirichlet distribution PDF are introduced to compute the trust degree value as well. The hybrid service architecture can obtain more effects on selecting the reliable service provider and promote the computing efficiency greatly.','Computer Sciences and Applications (CSA), 2013 International Conference on',1,'Z. Yang; X. Qin; Y. Yang; T. Yagink','ieee/service oriented architecture security.csv','ieee','\0'),(999,'A WS-Agreement Based SLA Implementation for the CMAC Platform','2014','0',' SLA WS-Agreement Requirements Negotiation','Abstract The emerging transformation from a product oriented economy to a service oriented economy based on Cloud environments envisions new scenarios where actual QoS (Quality of Service) mechanisms need to be redesigned. In such scenarios new models to negotiate and manage Service Level Agreements (SLAs) are necessary. An SLA is a formal contract which defines acceptable service levels to be provided by the Service Provider to its customers in measurable terms. SLAs are an essential component in building Cloud systems where commitments and assurances are specified, implemented, monitored and possibly negotiable. This is meant to guarantee that consumers’ service quality expectations can be achieved. In fact, the level of customer satisfaction is crucial in Cloud environments, making SLAs one of the most important and active research topics. This paper presents an SLA implementation for negotiation, monitoring and renegotiation of agreements for Cloud services based on the CMAC (Condition Monitoring on A Cloud) platform. CMAC offers condition monitoring services in cloud computing environments to detect events on assets as well as data storage services.','',1,'Adriano GalatiKarim DjemameMartyn FletcherMark JessopMichael WeeksJohn McAvoy','springer/service oriented architecture security.csv','springer','\0'),(1000,'User-hosted SOA infrastructure over XMPP','2014','0','Distributed computing;Middleware;Software architecture;Web services','The proliferation of user-owned connected devices has brought value to mobile application developers, which can make use of locally-available sensors and capabilities and send their information to the web, centralizing the data flows. A more distributed approach would have device capabilities offered directly on the network as services hosted by the user. These pervasive user-hosted services could be made discoverable and available over a public federated service infrastructure. The infrastructure would provide transport over an identity layer, where endpoints are addressed by their identities instead of network identifiers, and on top of which services can be exposed to be consumed by trusted friends or anonymous users, as the hosting user prefers. The work presented in this paper explores the possibility of implementing such a distributed social Service-Oriented Architecture (SOA) over Extensible Messaging and Presence Protocol (XMPP). This SOA, which would expose re-usable coarse-grained software components in a service ecosystem, differs from traditional SOA because it attempts to counter the centralization existing services, in favour of a fully-distributed service ecosystem where each peer can behave both as service consumer and provider. Finally, an analysis is done on how suitable XMPP is to serve as a base protocol for such infrastructure.','2014 IEEE Symposium on Computers and Communications (ISCC)',1,'J. M. Gonçalves; D. Gomes','ieee/service oriented architecture security.csv','ieee','\0'),(1001,'The State of the Art in Code Generation','2013','0','','Abstract Some of the requirements for the Genesys approach presented in Sect. 1.1 are a direct result of examining and evaluating the work that has been done in the field of code generation so far. This chapter provides an overview of the current state of the art in code generation for MD*. It starts off with a brief retrospect on classical compiler construction (Sect. 2.1), which developed ideas and concepts that clearly influence current code generation techniques. Sect. 2.2 elaborates on the conceptual foundations of MD* and on how the associated terminology is used in this book. Afterwards, Sect. 2.3 examines the role of code generation in several existing MD* (and related) approaches, and Sect. 2.4 introduces techniques for actually realizing code generators. Sect. 2.5 presents the state of the art in verifying and validating code generators. Finally, Sect. 2.6 compares Genesys with the approaches and techniques described in the preceding sections.','',2,'Sven Jörges','springer/bpel security.csv','springer','\0'),(1002,'Adaptive Enterprise Service Bus','2012','3',' SOA Software Models Service Composition','Abstract Modern software systems are usually designed in the Service-Oriented Architecture (SOA), which provides methods for system development and integration of existing, reusable services. Due to the growing com-plexity of such systems, there is a need to design them in a way which enables adaptation to changes in the execution environment. This paper presents the Adaptive ESB framework for adaptive execution of services with the use of statistical models representing knowledge about service execution. Statisti- cal models are exploited in many different areas, but applying them to SOA applications requires specific methods for their identification, updating and processing. A statistical model of service execution represents knowledge of how a complex system behaves as a high-level abstraction of a system related to the problem space.','New Generation Computing',2,'Tomasz SzydłoKrzysztof Zieliński','springer/bpel security.csv','springer','\0'),(1003,'Automated Analysis of Scenario-Based Specifications of Distributed Access Control Policies with Non-mechanizable Activities','2013','1','','Abstract The advance of web services technologies promises to have far-reaching effects on the Internet and enterprise networks allowing for greater accessibility of data. The security challenges presented by the web services approach are formidable. In particular, access control solutions should be revised to address new challenges, such as the need of using certificates for the identification of users and their attributes, human intervention in the creation or selection of the certificates, and (chains of) certificates for trust management. With all these features, it is not surprising that analyzing policies to guarantee that a sensitive resource can be accessed only by authorized users becomes very difficult. In this paper, we present an automated technique to analyze scenario-based specifications of access control policies in open and distributed systems. We illustrate our ideas on a case study arising in the e-government area.','',2,'Michele BarlettaSilvio RaniseLuca Viganò','springer/bpel security.csv','springer','\0'),(1004,'A Context-Aware Mashup Integration Guideline for Enterprise 2.0','2012','1',' Enterprise 2.0 Mashup SOA Migration Business Services Crowd Sourcing Social Networks Web 2.0','Abstract Recent advances in Internet Computing have changed the outlook of business and enterprise cooperation models. Many companies have started to leverage their services in order to move toward Enterprise 2.0. In this regard enabling technologies such as Mashups play a significant role to shift away from traditional information management environments towards dynamic and collaborative systems. In this paper, different business aspects of Mashup architecture in enterprise use-cases will be explored and the SWISHGUIDE-framework for capturing the needs and readiness factors of target organization will be introduced. The proposed SWISHGUIDE framework provides a decision-making guideline for transition from traditional information management systems to a successful Enterprise Mashup architecture.','',1,'Gerald BaderAmin AnjomshoaaA Min Tjoa','springer/service oriented architecture security.csv','springer','\0'),(1005,'Semantic Enrichment of Models to Assist Knowledge Management in a PLM Environment','2013','0',' Semantic Interoperability Semantic Annotation BPMN PLM Knowledge Management','Abstract Product Lifecycle Management (PLM) has been considered as an essential concept for improving the product competitive ability in manufacturing enterprises. The PLM solution aims at providing a shared platform for facilitating the management of the knowledge related to any product development process in or across enterprises. However, facing with different standards, enterprise systems and stakeholders, enterprises still need to deal with interoperability issues between those collaborative information systems, encompassing their capability to find the right information during the whole Product Life Cycle (PLC). The objective of this paper is to cope with the major issue of semantic interoperability, by proposing a formalization of semantic annotations and a prototype for facilitating a coherent, complete and contextualized interoperability of knowledge between all enterprise systems and related stakeholders. An example of the instantiation of our method within a real application scenario in manufacturing domain is presented to demonstrate its applicability and use, both at the engineering and the exploitation phases.','',2,'Yongxin LiaoMario LezocheEduardo LouresHervé PanettoNacer Boudjlida','springer/bpmn security.csv','springer','\0'),(1006,'Machine-Readable Privacy Certificates for Services','2013','1',' privacy certification testing','Abstract Privacy-aware processing of personal data on the web of services requires managing a number of issues arising both from the technical and the legal domain. Several approaches have been proposed to matching privacy requirements (on the clients side) and privacy guarantees (on the service provider side). Still, the assurance of effective data protection (when possible) relies on substantial human effort and exposes organizations to significant (non-)compliance risks. In this paper we put forward the idea that a privacy certification scheme producing and managing machine-readable artifacts in the form of privacy certificates can play an important role towards the solution of this problem. Digital privacy certificates represent the reasons why a privacy property holds for a service and describe the privacy measures supporting it. Also, privacy certificates can be used to automatically select services whose certificates match the client policies (privacy requirements). Our proposal relies on an evolution of the conceptual model developed in the Assert4Soa project and on a certificate format specifically tailored to represent privacy properties. To validate our approach, we present a worked-out instance showing how privacy property Retention-based unlinkability can be certified for a banking financial service.','',1,'Marco AnisettiClaudio A. ArdagnaMichele BezziErnesto DamianiAntonino Sabetta','springer/service oriented architecture security.csv','springer','\0'),(1007,'Contract Compliance Monitoring of Web Services','2013','1','','Abstract Design and implementation via contractual specifications helps designers and programmers understand and analyze when the requirements have been elicited according to the client’ desires. In general, software is released when some tests have been successfully passed. However, these tests only cover a finite set of possible executions. But in systems such as web services, which involve a set of heterogeneous parties, it is difficult to identify an appropriate set of tests because their execution tends to be nondeterministic since most rely on underlying software systems where most of the information is hidden due to copyright or security concerns. In this work, we propose that the use of contract specifications, such us C-O Diagrams, allow one to specify and codify a system, where once the software has been released it is still possible to check if the execution conforms to a given contract. To achieve this goal, we purpose a monitoring technique, where all actions specified in a contract are recorded in a log that will be used by the monitor software to check if the contract is being fulfilled and alerting all parties when it is not so that the system can force reparations.','',2,'Gregorio DíazLuis Llana','springer/bpel security.csv','springer','\0'),(1008,'Towards a reference architecture for fuel-based carbon management systems in the logistics industry','2013','3',' Carbon footprinting Logistics carbon management system Architecture Logistics industry','Abstract The current practice in the logistics industry is to calculate the carbon footprint of transportation activities based on the distance covered, using long-term fuel consumption averages per kilometer. However, fuel consumption may actually vary over time, because of differences in road characteristics, traffic situations, driving behavior, etc. Therefore, distance-based emission calculations are not accurate. Our approach is fuel-based and it calculates transport greenhouse gas emissions by obtaining the actual fuel consumption during trips via board computers installed in vehicles. Thus, we propose an architecture for a fuel-based Logistics Carbon Management System (LCMS) that monitors and collects real-time data about the fuel consumption during trips, and, consequently, calculates detailed and accurate carbon footprints of transportation services. Furthermore, this system is integrated with the logistics service provider’s business processes and with typical software applications (e.g., Transport Management Systems and Board Computers). We validate and implement the proposed architecture by means of a prototype.','Information Systems Frontiers',2,'M. E. IacobM. J. van SinderenM. SteenwijkP. Verkroost','springer/bpmn security.csv','springer','\0'),(1009,'A framework for simple object access protocol messages to detect expansion attacks for secure webservice','2013','2','DoS; SOAP; Web services; WS-Security; XML','The world has shrunk in this internet era. The applications in the internet use XML and Web Services which are simple, but powerful standards that enable applications to more efficiently communicate with each other. Unfortunately this advantage is coupled with concerns of Web services security. All the services provided by the internet face security problem. The hackers find a loophole to attack the web service to eliminate the availability of service. One of the most severe threats is Denial of Service attacks which are intended to annihilate the availability of a service. In this study we propose a schema to detect a special type of Denial of Service attack where the hacker modifies the SOAP messages by expanding it. The message expanded thus, takes a huge amount of memory while parsing and thereby denies service to a legitimate request. To overcome this problem, in this study, we propose a new security scheme which adds a digital signature to the message and also limits the upper bound of the length of the SOAP message. © 2013 Science Publications.','',1,'Siluvai I.S.P., Senthil Kumar V.J.','scopus/webservice security.csv','scopus','\0'),(1010,'An adaptable distributed trust management framework for large-scale secure service-based systems','2014','2',' Large-scale service-based systems Security Trust Distributed trust management Adaptability Situation-awareness Security policy Security agent Framework Specification language Mathematics Subject Classification 68N30 68M11 68M14 68U99','Abstract A major advantage of service-based computing systems is the ability to enable rapid formation of large-scale distributed systems by composing available services to achieve the system goals, regardless of the programming languages and platforms used to develop and/or run these services. For these systems, which often involve communications among multiple organizations over various networks, high confidence and adaptability are of primary concern to ensure that users can access these systems anywhere and anytime through various devices, knowing that their security and privacy are well protected under various situations. In this paper, an adaptable distributed trust management framework for large-scale service-based systems is presented. This framework includes a meta-model with a formal specification language for situation-aware security policies, and tools for generating and deploying security agents to evaluate and enforce trust decisions based on security policies, credentials and situational information. With this framework, large-scale service-based systems can incorporate distributed trust management to meet their trustworthiness requirements under various situations.','Computing',1,'Stephen S. YauYisheng YaoArun Balaji Buduru','springer/service oriented architecture security.csv','springer','\0'),(1011,'Cloud4SOA: A Semantic-Interoperability PaaS Solution for Multi-cloud Platform Management and Portability','2013','5',' Cloud computing Platform as a Service (PaaS) interoperability portability semantics vendor lock-in','Abstract Cloud Platform as a Service (PaaS) is a novel, rapidly growing segment in the Cloud computing market. However, the diversity and heterogeneity of today’s existing PaaS offerings raises several interoperability challenges. This introduces adoption barriers due to the lock-in issues that prevent the portability of data and applications from one PaaS to another, “locking” software developers to the first provider they use. This paper introduces the Cloud4SOA solution, a scalable approach to semantically interconnect heterogeneous PaaS offerings across different Cloud providers that share the same technology. The design of the Cloud4SOA solution, extensively presented in this work, comprises of a set of interlinked collaborating software components and models to provide developers and platform providers with a number of core capabilities: matchmaking, management, monitoring and migration of applications. The paper concludes with the presentation of a proof-of-concept implementation of the Cloud4SOA system based on real-life business scenarios.','',1,'Eleni KamateriNikolaos LoutasDimitris ZeginisJames AhtesFrancesco D’AndriaStefano BocconiPanagiotis GouvasGiannis LedakisFranco RavagliOleksandr LobunetsKonstantinos A. Tarabanis','springer/service oriented architecture security.csv','springer','\0'),(1012,'Managing Federations and Cooperative Management: A Report on ManFed.Com 2011','2012','1',' Network management Service management Policy management Security management','Abstract The first IFIP/IEEE international workshop on Managing Federations and Cooperative Management (ManFed.CoM) took place in conjunction with the IFIP/IEEE International Symposium on Integrated Network Management (IM 2011) conference in Trinity College Dublin, Ireland on May 23rd 2011. The multi-mode, loosely coupled, user-centric nature of modern communications and services, coupled with the diversity of operator business models, ensure that modern end-to-end service provision frequently crosses heterogeneous management and administrative domains. Thus, management approaches that can be applied across organizational boundaries are increasingly important in a wide range of application areas. There are a number of significant, common, complex issues which must be addressed in all technologies and applications that involve federated organizations, yet research has heretofore been mostly confined to particular technical or application areas. The first installment of ManFed.Com addressed this gap by bringing together researchers from a broad array of application and technical areas who shared an interest in cross-domain management. The workshop drew out common themes, problems and issues encountered, and the solutions being designed to deal with the problems of managing information systems that span autonomous domains. More than 30 researchers participated in a lively and interactive day of paper presentation, panels and software demonstrations. The success of the inaugural event was such that the organizing committee is now committed to running further installations—we are in the process of preparing a submission to run a the 2nd ManFed.CoM in conjunction with the IEEE/IFIP Network Operations and Management Symposium (NOMS) 2012 conference. We believe that these workshops will help to provide the basis for a common understanding and common approaches to inter-domain management and governance that synthesizes the insights and best-of-breed solutions being developed in the diverse areas in which these problems are encountered. The technical program of ManFed.CoM 2011 was organized as a single track and was composed of two panels of invited experts, two full paper sessions, one short paper session and a demonstration session in which practical software tools were presented. Of the 16 papers submitted, 6 were selected for presentation as full papers, with a further 3 being presented in condensed form as short papers. All the papers submitted underwent a rigorous review process, receiving between 2 and 5 reviews each, with the accepted full papers receiving a minimum score of 7.5 out of 10 from reviewers. The papers presented constituted a good cross-section of current cross-domain management research work—they covered modeling, semantic interoperability, trust management and security, policy based management, business process orchestration, collaboration and delegation and look at management on a number of different layers—from low level network management, all the way up to high level business-driven management.','Journal of Network and Systems Management',1,'Kevin C. FeeneyBrendan JenningsJoel J. Fleck II','springer/soa security.csv','springer','\0'),(1013,'A Service Hardware Application Case Fiducia','2015','0','','Abstract The various perspectives on how requirements for a process-developing IT application are described have led to the long-standing challenge of business IT alignment. For BPM (Business Process Management) modeling at Fiducia for many years, employees in the business departments have been able to compile large, complex processes by involving experts. Such models are not focused on the point of view of each individual employee involved but on the process as a whole. Consequently, the specification is coarse-grained to such an extent that an identification of the employees with a model and how they effectively work along a process cannot be achieved. Moreover, the superficial examination does not allow deriving guidelines for implementing an IT solution based on coarse-grained models. Introducing S-BPM brings the point of view of the individual employee to the center of describing processes. It thereby enables describing how processes actually run from his/her point of view. We have used this capability to empower the employees of the business departments to carry out this description task (modeling) themselves. Based on a sample project, which also includes integrating SAP as a database, I shall describe the difference between the “traditional” approaches to BPM and S-BPM. Since both approaches were used in this project, the benefits can be described precisely. The savings in Euro and time (earlier availability) represent an important factor here besides the quality of the description. By considering the details of the process, the quality of the description is significantly increased, and, last but not least, the identification of the employees in the business departments with their models, who finally were able to create applications by themselves.','',2,'Lothar Hübner','springer/bpmn security.csv','springer',''),(1014,'Towards verification of computation orchestration','2014','2',' Orc Web service orchestration Verification Timed automata U ppaal Constraint logic programming CLP \\({(\\mathcal{R})}\\)','Abstract Recently, a promising programming model called Orc has been proposed to support a structured way of orchestrating distributed Web Services. Orc is intuitive because it offers concise constructors to manage concurrent communication, time-outs, priorities, failure of Web Services or communication and so forth. The semantics of Orc is precisely defined. However, there is no automatic verification tool available to verify critical properties against Orc programs. Our goal is to verify the orchestration programs (written in Orc language) which invoke web services to achieve certain goals. To investigate this problem and build useful tools, we explore in two directions. Firstly, we define a Timed Automata semantics for the Orc language, which we prove is semantically equivalent to the operational semantics of Orc. Consequently, Timed Automata models are systematically constructed from Orc programs. The practical implication is that existing tool supports for Timed Automata, e.g., Uppaal, can be used to simulate and model check Orc programs. An experimental tool has been implemented to automate this approach. Secondly, we start with encoding the operational semantics of Orc language in Constraint Logic Programming (CLP), which allows a systematic translation from Orc to CLP. Powerful constraint solvers like CLP \\({(\\mathcal{R})}\\) are then used to prove traditional safety properties and beyond, e.g., reachability, deadlock-freeness, lower or upper bound of a time interval, etc. Counterexamples are generated when properties are not satisfied. Furthermore, the stepwise execution traces can be automatically generated as the simulation steps. The two different approaches give an insight into the verification problem of Web Service orchestration. The Timed Automata approach has its merits in visualized simulation and efficient verification supported by the well developed tools. On the other hand, the CPL approach gives better expressiveness in both modeling and verification. The two approaches complement each other, which gives a complete solution for the simulation and verification of Computation Orchestration.','Formal Aspects of Computing',2,'Jin Song DongYang LiuJun SunXian Zhang','springer/bpel security.csv','springer',''),(1015,'Deriving role engineering artifacts from business processes and scenario models','2011','10','BPMN; RBAC; Role engineering; UML; XMI','Scenario-driven role engineering is a systematic approach to engineer and maintain RBAC models. Such as every engineering process, this approach heavily depends on human factors and many of the corresponding engineering tasks must be conducted manually. However, based on the experiences we gained from our projects and case studies, we identified several tasks in role engineering that are monotonous, time-consuming, and can get tedious if conducted manually. These tasks include the derivation of candidate RBAC artifacts from business processes and scenario models. In this paper, we present an approach to automatically derive role engineering artifacts from process and scenario models. While our general approach is independent from a specific document format, we especially discuss the derivation of role engineering artifacts from UML activity models, UML interaction models, and BPMN collaboration models. In particular, we use the XMI (XML Metadata Interchange) representation of these models as a tool- and vendorindependent format to identify and automatically derive different role engineering artifacts. © 2011 ACM.','',2,'Baumgrass A., Strembeck M., Rinderle-Ma S.','scopus/bpmn security.csv','scopus',''),(1016,'Business Process Model and Notation - 4th International Workshop, BPMN 2012, Proceedings','2012','','','The proceedings contain 10 papers. The topics discussed include: a platform for research on process model collections; aspect oriented business process modeling with precedence; event-based gateways: open questions and inconsistencies; a BPMN extension for including data quality requirements in business process modeling; BPMN4TOSCA: a domain-specific language to model management plans for composite applications; extending BPMN 2.0 for modeling the combination of activities that involve data constraints; comparison of BPMN2 diagrams; a tool for animating BPMN token flow; and towards SecureBPMN - aligning BPMN with the information assurance and security domain.','',2,'[No author name available]','scopus/bpmn security.csv','scopus','\0'),(1017,'Towards Adapting Choreography-Based Service Compositions Through Enterprise Integration Patterns','2015','0','','Abstract The Future Internet is becoming a reality, providing a large-scale computing environments where a virtually infinite number of available services can be composed so as to fit users’ needs. Modern service-oriented applications will be more and more often built by reusing and assembling distributed services. A key enabler for this vision is then the ability to automatically compose and dynamically coordinate software services. Service choreographies are an emergent Service Engineering (SE) approach to compose together and coordinate services in a distributed way. When mismatching third-party services are to be composed, obtaining the distributed coordination and adaptation logic required to suitably realize a choreography is a non-trivial and error prone task. Automatic support is then needed. In this direction, this paper leverages previous work on the automatic synthesis of choreography-based systems, and describes our preliminary steps towards exploiting Enterprise Integration Patterns to deal with a form of choreography adaptation.','',2,'Amleto Di SalleFrancesco GalloAlexander Perucci','springer/bpmn security.csv','springer',''),(1018,'Secure web service composition with untrusted broker','2014','1','','Composite web services are usually coordinated according to a workflow, composed by several activities, each of which carried out by a service. A way to coordinate this cooperation is orchestration, which implies that the workflow underlying the composite web service is processed by a broker hosting a workflow engine (e.g., BPEL engine). According to the orchestration paradigm, the broker coordinates the invocation of services involved in the composition by passing the needed parameters. In general, all previous proposals for the service orchestration model consider the broker as a trusted entity. As such, they never payed attention to the fact that the broker is able to access several pieces of sensitive data. We believe there is the need to protect them against improper access and usage from partner services as well as the broker. To cope with these issues, in this paper, we propose a protocol based on a selective encryption able to ensure that both the broker and service partners can access only the information needed to fulfill their activities. © 2014 IEEE.','',2,'Carminati B., Ferrari E., Tran N.H.','scopus/bpel security.csv','scopus',''),(1019,'Distributed access control and privacy for the internet of me','2016','','','This article presents an experimental scalable message driven IoT and its security architecture based on Decentralized Information Flow Control. The system uses a gateway that exports SoA (REST) interfaces to the internet simplifying external applications whereas uses DIFC and asynchronous messaging within the home environment.','2016 IEEE International Conference on Consumer Electronics (ICCE)',1,'D. D��az-S��nchez; R. S. Sherratt; F. Almenares; P. Arias; A. M. L��pez','ieee/soa security.csv','ieee',''),(1020,'Behavior-consistent service substitutions in dynamic environments','2014','0','Key words behavior consistency concurrent regular expressions subtyping technology type and effect systems service substitutions CLC number TP 301.2','Abstract In this paper, a novel approach for service substitutions based on the service type in terms of its interface type and behavior semantics is proposed. In order to analyze and verify behavior-consistent service substitutions in dynamic environments, we first present a formal language to describe services from control-flow perspective, then introduce a type and effect system to infer conservative approximations of all possible behaviors of these services. The service behaviors are represented by concurrent behavior expressions (CBEs). Built upon the interpretation of CBEs, behavior-consistent service substitutions are defined and analyzed by subtyping technology. The correctness of the analysis approach is guaranteed by type safety theorem, which is mechanically proved in the Coq proof assistant. Finally, applications in web services show that our method is effective and feasible.','Journal of Shanghai Jiaotong University (Science)',1,'Jun-qing Chen 陈俊清Lin-peng Huang 黄林鹏Cheng-yuan Yu 于程远','springer/soa security.csv','springer','\0'),(1021,'Performance Driven WS Orchestration and Deployment in Service Oriented Infrastructure','2014','0',' Business process WS composition Workflow Deployment Performance Bottleneck','Abstract Composite Web services (WS) can be seen as software systems designed according to workflow-based orchestration of building blocks or simpler WS. Each block has its own specifications concerning both functional and non-functional properties. While the characteristics of each block have a scope limited to its domain, the WS must guarantee service levels that are usually described by global end-to-end metrics. The problem of relating local to global objectives in WS orchestration is hard to approach. In this context, some WS components have to be deployed in distributed service oriented infrastructure mixing heterogeneous systems belonging to private and/or public providers. In this paper we propose a performance-driven technique for designing and deploying composite WS on heterogeneous service oriented infrastructure. Users having different requirements in terms of resource demands and performance objectives are considered. Several WS deployment alternatives, involving both physical and virtual resources provided by the infrastructure, are evaluated to identify the logical (workflow) and physical (deployment) configuration allowing to meet the requirements. In order to demonstrate the suitability of the proposed approach to the service oriented context, an example of a travel management WS is described and the optimal deployment of the components in a hybrid infrastructure is investigated.','Journal of Grid Computing',1,'Salvatore DistefanoGiuseppe Serazzi','springer/soa security.csv','springer','\0'),(1022,'A low-overhead secure communication framework for an inter-cloud environment','2015','','','Most of the current cloud computing platforms offer Infrastructure as a Service (IaaS) model, which aims to provision basic virtualized computing resources as on-demand and dynamic services. Nevertheless, a single cloud provider may not have limitless resources to offer to its users, hence the notion of an Inter-Cloud environment where a cloud can use the infrastructure resources of other clouds. However, there is no common framework in existence that allows the service owners to seamlessly provision even some basic services across multiple cloud service providers, albeit not due to any inherent incompatibility or proprietary nature of the foundation technologies on which these cloud platforms are built. In this paper we present a novel solution which aims to cover a gap in a subsection of this problem domain. Our solution offers a security architecture that enables service owners to provision a dynamic and service-oriented secure virtual private network on top of multiple cloud IaaS providers. It does this by leveraging the scalability, robustness and flexibility of peer-to-peer overlay techniques to eliminate the manual configuration, key management and peer churn problems encountered in setting up the secure communication channels dynamically, between different components of a typical service that is deployed on multiple clouds. We present the implementation details of our solution as well as experimental results detailing the overheads of our solution carried out on two commercial clouds. © Springer International Publishing Switzerland 2015.','',1,'Sajjad A., Rajarajan M., Dimitrakos T.','scopus/service oriented architecture security.csv','scopus',''),(1023,'Definition of standards-based building blocks for multimedia content management','2015','0',' Standards Building Blocks MPEG-M MIPAMS Android Demonstration','Abstract The emergence of new ways of rendering multimedia content from a multiplicity of devices like tablets, smartphones, consoles or smart TVs, opens a complete set of new opportunities for multimedia services providers. It is important that the development of those disruptive services is done in an interoperable way. Existing service-oriented middleware platforms and recently developed standards devoted to the definition and implementation of complex multimedia services may speed up its development. In this context, the identification of different content management scenarios including the high-level functionalities they require is an important aspect to be able to implement services in a flexible and interoperable way. Use of standards and standards-based architectures will be a key aspect to combine services offered by different providers. In this paper, we propose the definition of standards-based building blocks based on the high-level functionalities required by content management and distribution scenarios. This will facilitate provision of complex new services specially focused, but not limited to, the management and distribution of multimedia content.','Multimedia Tools and Applications',1,'Silvia LlorenteJaime DelgadoXavier MaroñasJonathan Florido','springer/service oriented architecture security.csv','springer',''),(1024,'Banks and information technology: marketability vs. relationships','2013','6',' Banking Information technology Relationship banking Stability Systemic risk','Abstract This paper evaluates the impact of information technology (IT) on the operations of banks and the structure of the banking industry, including implications for stability. On the one hand, banks can focus on relationship banking and use IT developments to tailor services to individual needs and build enhanced, albeit modified, relationships with customers. On the other hand, IT better allows banks to exploit economies of scale and scope, which are most evident in transaction banking. Another manifestation of IT is via financial innovations that have enhanced marketability. Stability enters the picture because increased marketability facilitates opportunistic behavior. Together with enhanced herding behavior and changes in industry structure, this could undermine stability and augment systemic risk, calling for a regulatory overhaul.','Electronic Commerce Research',1,'Matej Marinč','springer/soa security.csv','springer','\0'),(1025,'145--150','2012','0','application management, embedded systems, home network, isolation, modularity, native components, security, soa','The Digital Home (DH) is emerging as a distributed platform hosting services for the end user. This promising home environment depends on availability of numerous value-added services for the DH. Therefore DH implies to fullfil several requirements. (i) New services should easily invoke existing ones so as to build rich services. (ii) The Platform should be adapted to resource-constrained DH devices. (iii) Service providers should easily develop and deploy services onto the DH platform that must be shared between many providers without any security and reliability aws. We propose Jasmin: a DH middleware following the SOA paradigm [9] to host applications based on the MIND framework that implements the Fractal [3] component model. Applications run inside isolation containers with selectable isolation levels on top of an OS abstraction layer. Our evaluation shows that Jasmin is suitable for legacy code reuse, urges clean design, and automates dynamic application deployment. Jasmin selected virtualization container technology to implement the highest level of isolation containers. Jasmin not only has a low resource usage, but also incurs a very low overhead on hosted applications, making it appropriate for embedded environments.','',1,'','acm/soa security.csv','acm','\0'),(1026,'Aggregation of trustworthiness properties of BPMN-based composite services','2012','1','','Some of the important characteristics of services environments are being dynamic, distributed, loosely coupled and open. These characteristics result in the existence of different levels of functional and non-functional properties of the services operating in such environments. Consequently, it creates challenges for interacting service consumers that require to only deal with services that are trustworthy. In service compositions, the component services may be mandatory or optional and vary in their contribution to the trustworthiness of the composite service. Composition techniques must be able to select trustworthy components and to dynamically adapt to subsequent changes in the services and the environment. The availability of multiple services providing the same or similar functionality but with different trustworthiness levels helps composite service providers to establish and maintain trustworthy compositions. The paper describes an approach to the aggregation of trustworthiness properties of composite services that are assembled from more fine-grained component services. The approach is developed for composite services based on BPMN business processes but can be extended to other languages.','2012 IEEE 17th International Workshop on Computer Aided Modeling and Design of Communication Links and Networks (CAMAD)',2,'H. Elshaafi; D. Botvich','ieee/bpmn security.csv','ieee','\0'),(1027,'Automata for Analysing Service Contracts','2014','1','','Abstract A novel approach to the formal description of service contracts is presented in terms of automata. We focus on the basic property of guaranteeing that in the multi-party composition of principals each individual gets his requests satisfied, so that the overall composition reaches its goal. Depending on whether requests are satisfied synchronously or asynchronously, we construct an orchestrator that at static time either yields composed services enjoying the required properties or detects the individuals responsible for possible violations. To do that in the asynchronous case we resort to techniques from Operational Research.','',2,'Davide BasilePierpaolo DeganoGian Luigi Ferrari','springer/bpel security.csv','springer',''),(1028,'Internet Based Service Networks','2012','0','','','',1,'LiYing CuiSoundar KumaraRéka Albert','springer/service oriented architecture security.csv','springer','\0'),(1029,'A new method to identify collaborative partners in social service provider networks','2015','1',' Social network Service-oriented computing System integration Collaborative computing Business alliance formation','Abstract The interactions among service providers are represented as a social network to support service-oriented collaborations across multiple manufacturing enterprises. The combination of service-oriented computing and social network facilitates the connection and collaboration within enterprises. It is essential to identify a group of prosperous collaborative partners in a social network in a prompt and efficient way, especially when the number of alternative service providers is large. However, traditional exhaustive searching approaches are inapplicable in identifying a host enterprise and constitutive members due to the prohibitive computations. In this paper, a new and efficient approach has been proposed to identify service providers optimally based on existing social relations. Three innovations in the proposal are (i) a set of new concepts has been defined to construct a social service provider network; (ii) based on remodeling the social graph, the betweenness centrality algorithm has been enhanced to efficiently find the leader who serves as the host enterprise of a given engineering project; (iii) to improve the efficiency of computation, an innovative algorithm is proposed to identify the collaborative partners by confining the searching space in the set of connector nodes. For the validation purpose, the experimental simulation is conducted and the results have demonstrated that the proposed algorithms outperform several existing algorithms in terms of computation time in dealing with the increasing number of enterprises.','Information Systems Frontiers',1,'Yong SunWenan TanLingxia LiWeiming ShenZhuming BiXiaoming Hu','springer/service oriented architecture security.csv','springer',''),(1030,'Taking value-networks to the cloud services: security services, semantics and service level agreements','2013','4',' Security services Trust Collaboration Value networks Resource virtualization Service level agreement Cloud service broker Value chain Web 2.0 Web 3.0','Abstract Cloud services have become an emerging solution for organizations striving to address today’s need for agility, but little research has addressed transitioning multiple, collaborating organizations to what can be referred to as a “value-network cloud.” We know that organizations adopting cloud services to execute business processes must concomitantly reconfigure their security solutions for their integrated intra- and inter-organizational collaborations. We address the question, “What is needed to make it possible for an entire value-network to take secure, collaborative business process executions to the cloud?” Future value-network cloud solutions will require completely new security approaches that will leverage contracted brokering solutions operating as part of the cloud solution. We view value-network cloud security service provisioning as a bundle decision characterized by a mix of communication patterns relevant to intra- and inter-enterprise collaboration. We propose a cloud service broker model—using semantics and SLA based middleware—to serve as a trusted interface between the enterprise, cloud service providers and other organizations collaborating in a value-network. The approach enables IT governance for value-network cloud services. The architectural requirements adapt design principles for infrastructure management tailored from approaches to how business cartels historically conducted secure business dealings.','Information Systems and e-Business Management',1,'Haluk DemirkanMichael Goul','springer/service oriented architecture security.csv','springer','\0'),(1031,'Pattern-Based Context Establishment for Service-Oriented Architectures','2012','3',' SOA requirements engineering secure software development','Abstract A context description of a software system and its environment is essential for any given software engineering process. Requirements define statements about the environment (according to Jackson’s terminology). The context description of a Service-Oriented Architecture is difficult to provide, because of the variety of technical systems and stakeholders involved. We present two patterns for SOA systems and support their instantiation with a structured method. In addition, we show how the pattern can be used in a secure service development life-cycle.','',2,'Kristian BeckersStephan FaßbenderMaritta HeiselRene Meis','springer/bpmn security.csv','springer','\0'),(1032,'A service-oriented integration platform to support a joined-up e-government approach: The Uruguayan experience','2012','1','e-government; interoperability; middleware; security; soa; web services','E-Government Platforms have become a key tool to support the development of e-government in many countries. They usually provide infrastructure and services that facilitate the interconnection between the information systems of public agencies, provide common services that generate economy of scale, and encourage the implementation of multi-agency services. In particular, the Uruguayan E-Government Platform has the general goal of enabling and promoting the development of e-government services in Uruguay. The platform, which follows a joined-up approach, consists of an Interoperability Platform and a set of Crosscutting Services. It implements a service-oriented architecture, leveraging the Web Services technology, to expose, use and combine government functionality implemented by public agencies. This paper presents the Uruguayan E-Government Platform focusing on two components of the Interoperability Platform: the Middleware Infrastructure and the Security System. It also evaluates its first years of operation which have shown that, although there are still many challenges to be addressed, the platform is a key enabler for developing a joined-up e-government approach in Uruguay. © 2012 Springer-Verlag.','',1,'González L., Ruggia R., Abin J., Llambías G., Sosa R., Rienzi B., Bello D., Álvarez F.','scopus/service oriented architecture security.csv','scopus','\0'),(1033,'Dependability infrastructure for SOA applications','2014','1','','This chapter describes two tools for improving dependability of SOA-based applications: ReSP (Reliable SOA Platform) and DyMST (Dynamic Management SOA Toolkit). ReSP is a set of modules to improve dependability in respect to availability and reliability, and to some extent safety. It is comprised of the mechanisms of reliable group communication, replication, recovery, and transaction processing. DyMST is a set of components for failure detection, monitoring and autonomic management, and distributed security policy enforcement. In order to show the dependability aspects of real applications and usage of these tools, two case studies from the medical healthcare domain are presented: Healthcare Integration Platform for the exchange of patients\' medical data among various healthcare units, and Medical Event, and Data Registering Platform for daily work improvement of medical staff. © 2014 Springer-Verlag Berlin Heidelberg.','',1,'Brzeziński J., Dwornikowski D., Kobusińska A., Kobusiński J., Sajkowski M., Sobaniec C., Szychowiak M., Wawrzyniak D., Wojciechowski P.T.','scopus/soa security.csv','scopus','\0'),(1034,'How much security for switching a light bulb the SOA way','2012','','Devices Profile for Web Services; DPWS; Internet of Things; Pervasive Computing; Security; SOA for devices','What visions of technologies such as the Internet of Things (IoT), Pervasive Computing (PC) or Ambient Intelligence (AI) have in common is that they employ a very high amount of critically resource-constrained devices. This of course raises a whole set of new security challenges. Instead of proposing another middleware for IoT, PC or AI, and presenting a security approach for it we focus on existing, widely-adopted security mechanisms and concepts and give a comprehensive overview. Furthermore, we examine the Web Service security suite as an example for a comprehensive security framework on application level. We use an intentionally kept simple scenario including light bulbs and switches to demonstrate necessary security mechanisms and properties and to judge applicability of the presented existing security techniques and frameworks. © 2012 IEEE.','',1,'Unger S., Pfeiffer S., Timmermann D.','scopus/soa security.csv','scopus','\0'),(1035,'A survey of service composition in ambient intelligence environments','2013','8',' Web services Service composition Ambient intelligence Ubiquitous computing','Abstract This article presents a comparative review of systems performing service composition in Ambient Intelligence Environments. Such environments should comply to ubiquitous or pervasive computing guidelines by sensing the user needs or wishes and offering intuitive human-computer interaction and a comfortable non-intrusive experience. To achieve this goal service orientation is widely used and tightly linked with AmI systems. Some of these employ the Web Service technology, which involves well-defined web technologies and standards that facilitate interoperable machine to machine interaction. Other systems regard services of different technologies (e.g. UPnP, OSGi etc) or generally as abstractions of various actions. Service operations are sometimes implemented as software based functions or actions over hardware equipment (e.g. UPnP players). However, a single service satisfies an atomic only user need, so services need to be composed (i.e. combined), in order to provide the usually requested complex tasks. Since manual service composition is obviously a hassle for the user, ambient systems struggle to automate this process by applying various methods. The approaches that have been adopted during the last years vary widely in many aspects, like domain of application, modeling of services, composition method, knowledge representation and interfaces. This work presents a comparative view of these approaches revealing similarities and differences, while providing additional information.','Artificial Intelligence Review',2,'Thanos G. StavropoulosDimitris VrakasIoannis Vlahavas','springer/bpel security.csv','springer','\0'),(1036,'Adding Non-functional Preferences to Service Discovery','2012','0',' Web services QoS preferences process model matching','Abstract The growth of the number of published services rendered searching for a specific service within repositories a critical issue. In this paper, we present an approach to extend structure-based service discovery by making it sensitive to user preferences over service quality defined at different granularity levels of the service structure.','',2,'Fernando LemosDaniela GrigoriMokrane Bouzeghoub','springer/bpel security.csv','springer','\0'),(1037,'Cloud resource provisioning: survey, status and future research directions','2016','1',' Resource provisioning Resource provisioning mechanisms Resource scheduling Resource management Cloud computing Autonomic computing Systematic review','Abstract Cloud resource provisioning is a challenging job that may be compromised due to unavailability of the expected resources. Quality of Service (QoS) requirements of workloads derives the provisioning of appropriate resources to cloud workloads. Discovery of best workload–resource pair based on application requirements of cloud users is an optimization problem. Acceptable QoS cannot be provided to the cloud users until provisioning of resources is offered as a crucial ability. QoS parameters-based resource provisioning technique is therefore required for efficient provisioning of resources. This research depicts a broad methodical literature analysis of cloud resource provisioning in general and cloud resource identification in specific. The existing research is categorized generally into various groups in the area of cloud resource provisioning. In this paper, a methodical analysis of resource provisioning in cloud computing is presented, in which resource management, resource provisioning, resource provisioning evolution, different types of resource provisioning mechanisms and their comparisons, benefits and open issues are described. This research work also highlights the previous research, current status and future directions of resource provisioning and management in cloud computing.','Knowledge and Information Systems',1,'Sukhpal SinghInderveer Chana','springer/soa security.csv','springer',''),(1038,'Towards security awareness in designing service-oriented architectures','2013','','Reference models and design method; Risk management; Security management; Service-oriented architecture','Many information security approaches deal with service-oriented architectures by focusing on security policies, requirements and technical implementation during service design, specification and implementation phases. Nevertheless, service-oriented architectures are increasingly deployed in open, distributed and dynamic environments, which particularly require an end-to-end security at each phase of the service\'s lifecycle. Moreover, the security should not only focus on services without considering the risks and threats that might be caused by elements from business activities or underlying hardware and software infrastructure. In this paper, we develop a model highlighting the dependency between elements at business, service and infrastructure levels, defining the design context. In addition, we develop a holistic approach to define a security conceptual model, including services, security risks and security policies and guides all phases in a typical design method for service-oriented architectures.','',1,'Nassar P.B., Badr Y., Biennier F., Barbar K.','scopus/service oriented architecture security.csv','scopus','\0'),(1039,'Security policies in dynamic service compositions','2012','1','Pervasive systems; Policy composition; Service composition','The paradigm of service composition emerged in the context of service oriented architectures, where it mainly referred to creating value-added services by combinitions of individual services. Nowadays, service composition is getting more and more dynamic and becomes part of pervasive systems. One of the major challenges in this context is to fulfill the security requirements of all involved parties without requiring human interaction to negotiate protection level agreements. In this paper, we propose an approach for composing access control decisions and obligations required by equitable policy domains on the fly. We show that our approach allows a policy-compliant collaboration without requiring the peers to reveal their individual rules and confirm its practicability by a prototype.','',1,'Schütte J., Fhom H.S., Gall M.','scopus/service oriented architecture security.csv','scopus','\0'),(1040,'Designing fault-tolerant SOA based on design diversity','2014','1',' Software fault tolerance Design diversity Service-oriented architecture Systematic literature review Fault-tolerant service composition','Abstract Background Over recent years, software developers have been evaluating the benefits of both Service-Oriented Architecture (SOA) and software fault tolerance techniques based on design diversity. This is achieved by creating fault-tolerant composite services that leverage functionally-equivalent services. Three major design issues need to be considered while building software fault-tolerant architectures based on design diversity: (i) selection of variants; (ii) selection of an adjudication algorithm to choose one of the results; and (iii) execution of variants. In addition, applications based on SOA need to function effectively in a dynamic environment where it is necessary to postpone decisions until runtime. In this scenario, control is highly distributed and involves conflicting user requirements. We aim to support the software architect in the design of fault-tolerant compositions. Methods Leveraging a taxonomy for fault-tolerant systems, this paper proposes guidelines to aid software architects in making key design decisions. The taxonomy is used as the basis for defining a set of guidelines to support the architect in making decisions related to fault tolerance in SOA. The same taxonomy is used in a systematic literature review of solutions for fault-tolerant composite services. The review investigates how existing approaches for fault-tolerant composite services address design diversity issues and also specific issues related to SOA. Results The contribution of this work is twofold: (i) a set of guidelines for supporting the design of fault-tolerant SOA, based on a taxonomy for fault tolerance techniques; and (ii) a systematic literature review of existing solutions for designing fault-tolerant compositions using design diversity. Conclusion Although existing solutions have made significant contributions to the development of fault-tolerant SOAs, there is a lack of approaches for fault-tolerant service composition that support strategies with diverse quality requirements and encompassing sophisticated context-aware capabilities. This paper discusses which design issues have been addressed by existing diversity-based approaches for fault-tolerant composite services. Finally, practical issues and difficulties are summarized and directions for future work are suggested.','Journal of Software Engineering Research and Development',2,'Amanda S NascimentoCecília MF RubiraRachel BurrowsFernando CastorPatrick HS Brito','springer/bpel security.csv','springer',''),(1041,'A Reliable DICOM Transfer Grid Service Based on Petri Net Workflows','2008','2','DICOM;Fault-Tolerance;Grid-Computing;Image Communication;Workflow','Medical grid networks typically deal with extremely sensitive information and therefore require a special diligence in terms of security and reliability. This holds especially true in Medical Imaging, which is why the medical community long established DICOM (Digital Imaging and Communication in Medicine), a world-wide imaging and communication standard for secure and reliable data interchange. Most healthgrid projects today use DICOM with a combination of GridFTP and the Reliable-File-Transfer (RFT) webservice. Due to the multiple protocols and services involved, this solution is not ideally suited in terms of reliability or fault-tolerance. The proposed solution in this paper replaces the GridFTP combination by an end- to-end Grid-enhanced DICOM implementation and models the GridDICOM transfers as complex, Petri-Nets-based workflows. Based on these workflows, a respective workflow engine can autonomously and reliably control transfers including complex fault recovery and optimized routing strategies. A first prototype of the service, the components, and the respective workflows have been developed and successfully tested in MediGRID, the German grid network for life-sciences.','Cluster Computing and the Grid, 2008. CCGRID \'08. 8th IEEE International Symposium on',1,'M. Vossberg; A. Hoheisel; T. Tolxdorff; D. Krefting','ieee/webservice security.csv','ieee','\0'),(1042,'A Cloud-Based Neural Network Simulation Environment','2013','0',' Artificial Neural Network Simulation Cloud computing SOA/SOI Virtual Organization','Abstract We present N2Sky, a novel Cloud-based neural network simulation environment. The system implements a transparent environment aiming to enable arbitrary and experienced users to do neural network simulations easily and comfortably. The necessary resources, as CPU-cycles, storage space, etc., are provided by using Cloud infrastructure. N2Sky also fosters the exchange of neural network specific knowledge, as neural network paradigms and objects, between users following a virtual organization design blue-print. N2Sky is built using the RAVO reference architecture which allows itself naturally integrating into the Cloud service stack (SaaS, PaaS, and IaaS) of service oriented architectures.','',1,'Erich SchikutaErwin Mann','springer/service oriented architecture security.csv','springer','\0'),(1043,'Modeling and Executing Business Processes with Annotated Security Requirements in the Cloud','2011','5','Business Process Execution;Business Process Modeling;Cloud Computing;Security;Web Service Composition','The design, deployment and execution of business process models and their associated security models is expensive and time consuming. This is because these activities usually involve multiple stakeholders that include business domain experts, security experts, web service developers and IT operations teams, and there is no streamlined development environment to allow these stakeholders to work collaboratively on a business process. We have developed a cloud-based model-driven development and execution environment called SSC4Cloud to provide a shared business process modeling workspace and a business process execution environment. More specifically, with the shared modeling workspace, business process models can be developed, refined and shared. Within the shared execution environment, a business process model is translated into a WS-BPEL based executable model, which is then assigned for execution in a virtual machine container from a shared machine cluster. The common model execution environment supports both business process execution and enforcement of the security requirements attached to the business process models.','Web Services (ICWS), 2011 IEEE International Conference on',2,'J. Damasceno; F. Lins; R. Medeiros; B. Silva; A. Souza; D. Aragão; P. Maciel; N. Rosa; B. Stephenson; J. Li','ieee/bpel security.csv','ieee','\0'),(1044,'A Conceptual Architecture for Business-Aware Transaction Management','2012','0','','Abstract Service-Based Applications (SBAs) are created by composing and orchestrating software services into cross-organizational business processes that can execute multiple business-aware transactions. A business-aware transaction must not only ensure data consistency but also coordinate the heterogeneous information systems of separate businesses that typically use different business practices, policies, equipment and technologies so the transaction can complete successfully. However, the lack of a clear approach to managing this class of transaction means management capabilities are often ‘hard-wired’ into the SBA, rendering the potential reuse and customization of SBAs difficult, if not impossible. This paper reviews the functions required for the creation, management and adaptation of them and presents a conceptual architecture with the aim of identifying, at a high-level, functional and technological components of a distributed software architecture to allow Business-Aware Transaction Management and the customization and reuse of SBAs.','',1,'Michael ParkinMike P. Papazoglou','springer/service oriented architecture security.csv','springer','\0'),(1045,'On access control of Cloud service chains','2014','0','','Service-oriented architecture may be regarded as an incubator for small resources entrepreneurs to bid and work on bigger projects. It also helps large enterprise to trade their resources at various levels. This has opened new gateways for renting out resources. Sometimes a single service is sold at different levels making the Cloud service a supply chain of added value. This supply chain which is built on the same resources but varying claims of ownership, poses novel challenges related to security, trust and privacy of data. There is still no popular system of governing body which can glue together the participating stakeholders through mutual trust and organizational policies. A governing mechanism that can preserve stakeholders\' privacy issues and resolve their conflicts throughout the emerging service chains is also non-existent. In this paper we are introducing a mechanism of access control for such Cloud service chains. Building on our pevious work of SLA-based privacy model, we have discussed the realization of Role-based Access Control (RBAC) to services of federated-cloud. The main advantage of RBAC is that it provides an efficient control to resources and data access. We have also provided a preliminary analysis of this on-going research.','Multi-Topic Conference (INMIC), 2014 IEEE 17th International',1,'K. M. Abbasi; I. ul Haq; A. K. Malik; S. Khalid; S. Fazil; H. Durad','ieee/service oriented architecture security.csv','ieee','\0'),(1046,'Security risk analysis of system changes exemplified within the oil and gas domain','2015','1',' Security Risk analysis Change Oil and gas','Abstract Changes, such as the introduction of new technology, may have considerable impact on the risk to which a system or organization is exposed. For example, in the oil and gas domain, introduction of technology that allows offshore installations to be operated from onshore means that fewer people are exposed to risk on the installation, but it also introduces new risks and vulnerabilities. We need suitable methods and techniques to understand how a change will affect the risk picture. This paper presents an approach that offers specialized support for analysis of risk with respect to change. The approach allows links between elements of the target of analyses and the related parts of the risk model to be explicitly captured, which facilitates tool support for identifying the parts of a risk model that need to be reconsidered when a change is made to the target. Moreover, the approach offers language constructs for capturing the risk picture before and after a change. The approach is demonstrated on a case concerning new software technology to support decision making on petroleum installations.','International Journal on Software Tools for Technology Transfer',1,'Atle RefsdalBjørnar SolhaugKetil Stølen','springer/service oriented architecture security.csv','springer',''),(1047,'Assessing and improving quality of QVTo model transformations','2015','0',' Software quality QVTo Model transformations Quality model Developer tooling Test coverage','Abstract We investigate quality improvement in QVT operational mappings (QVTo) model transformations, one of the languages defined in the OMG standard on model-to-model transformations. Two research questions are addressed. First, how can we assess quality of QVTo model transformations? Second, how can we develop higher-quality QVTo transformations? To address the first question, we utilize a bottom–up approach, starting with a broad exploratory study including QVTo expert interviews, a review of existing material, and introspection. We then formalize QVTo transformation quality into a QVTo quality model. The quality model is validated through a survey of a broader group of QVTo developers. We find that although many quality properties recognized as important for QVTo do have counterparts in general purpose languages, a number of them are specific to QVTo or model transformation languages. To address the second research question, we leverage the quality model to identify developer support tooling for QVTo. We then implemented and evaluated one of the tools, namely a code test coverage tool. In designing the tool, code coverage criteria for QVTo model transformations are also identified. The primary contributions of this paper are a QVTo quality model relevant to QVTo practitioners and an open-source code coverage tool already usable by QVTo transformation developers. Secondary contributions are a bottom–up approach to building a quality model, a validation approach leveraging developer perceptions to evaluate quality properties, code test coverage criteria for QVTo, and numerous directions for future research and tooling related to QVTo quality.','Software Quality Journal',1,'Christine M. GerpheideRamon R. H. SchiffelersAlexander Serebrenik','springer/service oriented architecture security.csv','springer',''),(1048,'Model-based system configuration approach for Internetware','2013','0',' Internetware system configuration model-based dynamic scaling','Abstract Internetware, a new software paradigm, enables systems to be built and evolved for better service quality according to changes in the environment. However, at the same time Internetware greatly complicates system management tasks due to the autonomy, cooperation and evolution of its components. In fact, the configuration of large-scale Internet-based software in the real scenarios is likely to involve a large number of components and hundreds of associated configuration options with variables, whose values may be dynamically determined depending on the execution environment, or to cope with needs of customers. In this paper, we firstly analyze the configuration issues of Internetware, and then present a model-based engineering approach to managing the configuration for Internetware systematically. Based on the Architecture Based Composition model, an internetware configuration process model is proposed that abstracts the configuration in the lifecycle of Internetware. Focusing on the fundamental activities in configuration process, the methods and mechanisms of analyzing and performing the configuration in terms of its constraints, dependencies, heterogeneity and dynamics, with supporting tools to realize the configuration automation, are presented. The proposed methods and mechanisms have been implemented, validated and rolled out in IBM software products and Cloud center.','Science China Information Sciences',1,'Ying LiKeWei SunJie YangTianCheng LiuLiangZhao Zeng','springer/soa security.csv','springer','\0'),(1049,'Attribute Based Access Control (ABAC)-Based Cross-Domain Access Control in Service-Oriented Architecture (SOA)','2012','1','Attribute-Based Access Control (ABAC);SOA;access control','The traditional role-based access control model (RBAC) can not meet the requirements of Service Oriented Architectures (SOA) on the distribution and openness, Attribute-Based Access Control (ABAC), which is more fine-grained in access control, is more fit into the SOA open environment. This paper presents an ABAC-based cross-domain access control system, together with the security domain as a attribute with the subject, object, authority, environment attributes as the basis for access to the decision-making, eliminating integration constraints for the SOA framework based on the RBAC, somehow improves the scalability and alterability of the system, solved the problem of cross-domain access control.','Computer Science & Service System (CSSS), 2012 International Conference on',1,'N. Dan; S. Hua-Ji; C. Yuan; G. Jia-Hu','ieee/service oriented architecture security.csv','ieee','\0'),(1050,'SEROSA: SERvice oriented security architecture for Vehicular Communications','2013','4','Access Control; Identity Management; Privacy; Security; Vehicular Communications; Web-Services','Modern vehicles are no longer mere mechanical devices; they comprise dozens of digital computing platforms, coordinated by an in-vehicle network, and have the potential to significantly enhance the digital life of individuals on the road. While this transformation has driven major advancements in road safety and transportation efficiency, significant work remains to be done to support the security and privacy requirements of the envisioned ecosystem of commercial services and applications (i.e., Internet access, video streaming, etc.). In the era when \'service is everything and everything is a service\', Vehicular Communication (VC) systems cannot escape from this ongoing trend towards multi-service environments accessible from anywhere. To meet the diverse requirements of vehicle operators and Service Providers (SPs), we present SEROSA, a service-oriented security and privacy-preserving architecture for VC. By synthesizing existing VC standards and Web Services (WS), our architecture provides comprehensive identity and service management while ensuring interoperability with existing SPs. We fully implement our system and extensively assess its efficiency, practicality, and dependability. Overall, SEROSA significantly extends the state of the art and serves as a catalyst for the integration of vehicles into the vast domain of Internet-based services. © 2013 IEEE.','',1,'Gisdakis S., Laganà M., Giannetsos T., Papadimitratos P.','scopus/service oriented architecture security.csv','scopus','\0'),(1051,'e-Health Informed Foreign Patient and Physician Communication: The Perspective of Informed Consent','2015','0',' Health literacy language barrier Informed Consent e-Health system foreign patient Internet-informed patient','Abstract The rapidly growth of mobility population of exchange students, foreign workers, and tourists raises the communication challenge of foreign patient-physician communication in local hospitals (clinics). Language is not the only one skill during a medical visit, health literacy is another important skill used to understand the medical information delivered by doctors. Skills in understanding and applying information about health issues are critical to the process of patient-physician communication and may have substantial impact on health behaviors and health outcomes. In recent years, the practice of foreigners using mobile apps to search map for location, access transportation information, and lookup translation, have increased steadily. However, the current mobile apps can’t support foreigners for their sudden needs of hospital visits. Take into consideration of language barrier and low health literacy issue, an Internet health information-based patient-centered mobile system, is suggested to mediate the informed consent process of patient-physician communication. Thus, this research aims to enhance foreign visitors’ capabilities in communication during exchange information with local foreign doctors by developing an effective patient-physician communication mobile system. Based on four case studies of patients’ hospital visit experiences in Europe and Asia and their perception toward using the media-mediated communication. We concluded that 1) e-health informed foreign patients’ language skill and health literacy were improved in compare with non-Internet-informed patients group; 2) e-health informed patients’ states of anxiety were reduced; 3) their satisfaction of medical visit were improved; and 4) the process of informed consent was standardized into six parts (Symptom description, Disease judgment, Disease diagnosis, Examination, Treatment, and Healthcare education) for general foreign patient communications.','',1,'Echo HuangShao-Fu LiaoShing-Lung Chen','springer/service oriented architecture security.csv','springer',''),(1052,'Security solutions for Web Service attacks in a dynamic composition scenario','2014','0','SAS API;SOAP;UDDI;WSAS API;WSDL;Web Services','Web Services can be invoked from anywhere through internet without having enough knowledge about the implementation details. In some cases, single service cannot accomplish user needs. One or more services must be composed which together satisfy the user needs. Therefore, security is the most important concern not only at single service level but also at composition level. Several attacks are possible on SOAP messages communicated among Web Services because of their standardized interfaces. Examples of Web Service attacks are oversize payload, SOAPAction spoofing, XML injection, WS-Addressing spoofing, etc. Most of the existing works provide solution to ensure basic security features of Web Services such as confidentiality, integrity, authentication, authorization, and non-repudiation. Very few of the existing works provide solutions such as schema validation and schema hardening for attacks on Web Services. But these solutions do not address and provide attack specific solutions for SOAP messages communicated between Web Service. Hence, it is proposed to provide solutions for two of the prevailing Web Service attacks. Since new types of Web Service attacks are evolving over time, the proposed security solutions are implemented as APIs that are pluggable in any server where the Web Service is deployed.','Advanced Communication Control and Computing Technologies (ICACCCT), 2014 International Conference on',1,'Sindhu S M; Kanchana R','ieee/service oriented architecture security.csv','ieee','\0'),(1053,'Experiences in building a mOSAIC of clouds','2013','26','','Abstract The diversity of Cloud computing services is challenging the application developers as various and non-standard interfaces are provided for these services. Few middleware solutions were developed until now to support the design, deployment and execution of service-independent applications as well as the management of resources from multiple Clouds. This paper focuses on one of these advanced middleware solutions, called mOSAIC. Written after the completion of its development, this paper presents an integrated overview of the mOSAIC approach and the use of its various software prototypes in a Cloud application development process. We are starting from the design concepts and arrive to various applications, as well as to the position versus similar initiatives.','Journal of Cloud Computing: Advances, Systems and Applications',1,'Dana PetcuBeniamino Di MartinoSalvatore VenticinqueMassimiliano RakTamás MáhrGorka Esnal LopezFabrice BritoRoberto CossuMiha StoparSvatopluk ŠperkaVlado Stankovski','springer/service oriented architecture security.csv','springer',''),(1054,'Reputation-Controlled Business Process Workflows','2013','0','BPEL;business process workflows;trust and reputation management','This paper presents a model solution for controlling the execution of BPEL business processes based on reputation constraints at the level of the services, the service providers and the BPEL workflow. The reputation constraints are expressed as part of an SLA and are then enforced at runtime by a reputation monitoring system. We use our model to demonstrate how trust requirements based on such reputation constraints can be upheld in a real world example of a distributed map processing defined as a BPEL workflow.','Availability, Reliability and Security (ARES), 2013 Eighth International Conference on',2,'B. Aziz; G. Hamilton','ieee/bpel security.csv','ieee','\0'),(1055,'Security modeling for service-oriented systems using security pattern refinement approach','2014','1',' Model-driven security Security patterns SOA security Model transformation','Abstract Security is one of the critical aspects of current systems, which are based on loosely coupled and technology-agnostic service-oriented architectures (SOA). Though SOA is the driving force for enterprises to open their ends for global business collaborations, nevertheless it evolves many challenges for modeling and enforcing security. One of the main problems for designing secure systems is the lack of consistent frameworks and methodologies for modeling security concerns. Traditional approaches consider security at the end of system development, which evolves inflexible and un-configurable systems, which are too difficult to maintain and manage. The other major problem with current approaches is that they assume pre-defined and hard-coded security patterns and mechanisms for secure system design. Whereas, the evolving SOA systems require configurable security to realize different security patterns and security policies in a variety of business scenarios. To solve these problems, it is necessary to model security concerns from the beginning of system modeling in a platform-independent way. This paper proposes a pattern refinement approach for security modeling to achieve configurable and declarative security, based on the principles of abstraction, refinement, separation-of-concerns and maintainability to achieve flexible configurations of SOA security. In the proposed approach, a Domain Expert defines abstract policies using common security vocabulary and a Security Expert models security with patterns and refines them for a target architecture in successive systematic refinements. Furthermore, it facilitates the transformation of abstract security models into executable security policies for the target platforms.','Software & Systems Modeling',2,'Mukhtiar MemonGordhan D. MenghwarMansoor H. DeparAkhtar A. JalbaniWaqar M. Mashwani','springer/bpel security.csv','springer',''),(1056,'Integrity in Very Large Information Systems','2013','2',' Information risk management integrity business critical systems data analytics Service-Oriented Architecture','Abstract Multi-national enterprises, like financial services companies, operate large and critical information systems around the globe on a 24/7 basis. In an information-based business, even a single inadequately designed, implemented, tested and operated business application can put the existence of the enterprise at risk. For adequately securing the integrity of business critical information and hence ensuring that such information is meaningful, accurate and timely , we present our risk assessment and controls framework: First, we introduce our criticality rating scheme that is based on the recoverability from integrity failures. For dealing with dependencies among applications, we present our approach based on services given a Service-Oriented Architecture (SOA). Second, we provide an overview of our design-related controls including a data analytics approach to continuously audit the most critical information assets. Finally, we present our learnings from a first implementation of the presented framework.','',1,'Beat LiverHelmut Kaufmann','springer/service oriented architecture security.csv','springer','\0'),(1057,'Security aspects of de-materialized local public administration processes','2015','','Adaptive business processes; BPMN; Local Public Administration','De-materialization processes and services of local public administration processes are becoming of paramount importance in the context of Italian and European public administrations. An important aspect of these frameworks is the possibility of providing remote assistance by human operators when needed, in order to ease the access to services for citizens and reduce costs for organizations. In this paper we describe our framework, which is in an advanced state of development and will be tested in several municipalities of the province of Trento (Italy), and focus on the enforcement of security aspects. © Springer International Publishing Switzerland 2015.','',2,'Ballauco G., Ceravolo P., Damiani E., Frati F., Zavatarelli F.','scopus/bpmn security.csv','scopus',''),(1058,'TransportML platform for collaborative location-based services','2012','2',' Location-based services Web services Service-oriented architecture (SOA) Inter-vehicle communication Global navigation satellite system (GNSS)','Abstract Currently, each geographical area benefits from a set of wide range of local services, usually provided by several local entities, such as snow clearance, road works, public transportation, waste collection, fire fighting, emergency rescue authorities, etc. Despite each service fulfilling its own assigned task, they often suffer from a lack of communication and cooperation among them. Indeed, each service collects road-related information that may be useful to other services. Sharing information collected by each service would allow the acquisition of more knowledge about the driving context that may help drivers making appropriate decisions and, therefore, increase and improve road safety. Recently, wireless communication technologies associated with global navigation satellite systems and location-based information systems are among the powerful technologies used to develop interoperable intelligent transportation systems applications. Furthermore, the evolution of service-oriented infrastructures enables information sharing between applications over the network. In this paper, a distributed platform, called TransportML, for services interaction and cooperation is presented. It is an extended XML platform based on service-oriented architecture principles to recognize, monitor, and collect service information and description over a network. A prototype is developed and tested in urban and highway areas and results are reported to show the benefit of using this platform for sharing road information as well as services’ interactions.','Service Oriented Computing and Applications',1,'Wafaa Ait-Cheik-BihiAhmed Nait-Sidi-MohMohamed BakhouyaJaafar GaberMaxime Wack','springer/soa security.csv','springer','\0'),(1059,'An approach to security-SLA in cloud computing environment','2014','','Cloud Computing Security; Security Management; Security Metrics; Security-SLA','The lack of novel security controls for the cloud might arise from the fact that Cloud Computing is the convergence of many different technological areas, including Utility Computer, Computational Grid, Autonomous Computing, Virtualization and Service Oriented Architectures. These underlying areas have been independently addressed by existing general-purpose security controls, but we noticed that each current cloud security control was mapped to multiple controls from the existing, general-purpose control frameworks. We also noticed a great demand for not only patterns but also specification, monitoring and security management mechanisms for cloud environments. We reason that this scenario might require a different approach, one where the specification of security controls, geared to meet the needs of services users, may be achieved through the use of Security Service Level Agreement - Security-SLA. Security may then be improved by automating the Security-SLA. © 2014 IEEE.','',1,'Da Silva C.A., De Geus P.L.','scopus/service oriented architecture security.csv','scopus','\0'),(1060,'Privacy policy composition of privacy-aware RBAC model for composite WEB services','2013','0','Policy composition;Privacy protection;Services security;Web services composition','Privacy has been acknowledged to be a critical requirement for composite services. In the previous research, we have introduced a privacy-preserving access model, but have no chance to detail the specifying of privacy policies for a composite service. However, the privacy policies in the services should be consistent with each other, and it decides the feasibility and effectiveness of the model. Therefore, this paper proposes a privacy policy composition mechanism that uses the existing policies of the atomic services. Through the definition of policies in the model, the rules to create the user profile and data profile have been derived and the profile samples are given. In the end, an application example is shown to explain that how to use the profiles in the composition engine of the model and then give the implementation of the approach.','Broadband Network & Multimedia Technology (IC-BNMT), 2013 5th IEEE International Conference on',1,'D. Yan; Y. Tian','ieee/service oriented architecture security.csv','ieee','\0'),(1061,'An extension approach that supports attribute based access control for WS-BPEL','2011','0','Attribute;access control;business process','Business processes, the next-generation workflows, have attracted considerable interest in recent years. Several XML-based languages have been proposed for specifying and orchestrating business processes. WS-BPEL (Web Services Business Process Execution Language), which is widely used in business process specification, cannot support authorization policies on the execution of activities. In this paper, we propose an approach that extends WS-BPEL with ABAC (Attribute Based Access Control) model to satisfy the access control requirements of business processes. We introduce an access control framework for Web services in business processes, and through integrating ABAC and WS-BPEL, we make it possible to make access control policies for business processes.','Computer Science and Network Technology (ICCSNT), 2011 International Conference on',2,'Shang Zheng; Zhang Bin','ieee/bpel security.csv','ieee','\0'),(1062,'Multimedia framework to support eHealth applications','2014','1',' eHealth Heterogeneous network Medical imaging Multimedia framework Scalable extension of MPEC-4 AVC/H.264','Abstract Limited bandwidth resources lead to a number of challenges especially for eHealth applications, which are communicated over IP and wireless networks. These multimedia services include high-resolution videos and have very large file sizes that require a high level of compression to overcome this limitation. Therefore, there is an acute demand for the research community to provide an efficient multimedia framework to encode medical videos with high quality specifically under the conditions of an error-prone environment. Both an affordable delivery framework and effective coding techniques are extremely desirable for the delivery of high-quality eHealth video applications for transmission over heterogeneous networks and devices. In this paper, we propose and demonstrate a multimedia framework to support eHealth applications, which has an improved coding scheme that uses an SVC-scalable extension of MPEC-4 AVC/H.264. Simulation results show that the proposed scheme achieves a significant improvement in terms of the PSNR-Y gain and reduces the picture quality degradation caused by artifacts and distortions, compared to the existing scheme.','Multimedia Tools and Applications',1,'Muhammad ShoaibUzair AhmadAtif Al-Amri','springer/service oriented architecture security.csv','springer','\0'),(1063,'Middleware Service Oriented Rescue and Crime Information System (RCIS) Using Heterogeneous Fixed Nodes in WSNs','2012','1',' MANET Middleware RCIS WSN','Abstract A Mobile Adhoc Network (MANET) is a self-configuring infrastructureless network of mobile devices connected by wireless links with routing capabilities. A MANET needs a special mechanism to bear with its ad hoc behaviour. In this paper, a set of heterogeneous nodes in WSN (Wireless Sensor Network), that have different functionality with specific purpose have been considered. These nodes are distributed across the environment and they send the outcome of events that occur in nature. In this network each node has to send a request/response to a Base Node (BN) where all requests/responses are evaluated and the required values are computed for the end user. This activity requires middleware service oriented architecture, Image Processing and Video Processing. Hence this network is fully dependent on the services of middleware in WSNs. The noticeable outcome values or flags are passed on to a special system called Rescue and Crime Information System (RCIS) where all filtered and computed values or flags are displayed in this system with severity of events and required information. The proposed architecture provides universal solutions for most of the natural disasters and criminal activities that occur frequently. Hence this information provided by the RCIS is very essential and effective in handling disasters and crimes.','',1,'N. ChandrakantA. P. BijilP. Deepa ShenoyK. R. VenugopalL. M. Patnaik','springer/service oriented architecture security.csv','springer','\0'),(1064,'A reference software architecture to support unmanned aircraft integration in the national airspace system','2013','2','Reference architecture; Sense and Avoid; Service Oriented Architecture; Testbed; Unmanned Air vehicle','This paper outlines an architecture that provides data and software services to enable a set of Unmanned Aircraft (UA) platforms to operate in a wide range of air domains which may include terminal, en route, oceanic and tactical. The architecture allows a collection of command, control, situational awareness, conflict detection and avoidance, and data management elements to be composed in order to meet different requirement sets as defined by specific UA plat-forms, users, and operating regimes. The architecture discussed is based on a Service Oriented Architecture (SOA) with open standards on the interfaces between elements. Services may include common situational awareness, sense and avoid, weather, data management and flight plan information. Service contracts specify quality of service, interface specifications, service description metadata, security provisions, and governance. Pieces of the architecture have been implemented by MIT Lincoln Laboratory in the form of a Sense and Avoid (SAA) testbed that provides some of the core services. This paper describes the general architecture and a SAA testbed implementation that begins to realize that architecture and quantifies the benefits. The proposed architecture is not directed at a specific program but is intended to provide guidance and offer architectural best practices. © Springer Science+Business Media Dordrecht 2012.','',1,'Heisey C.W., Hendrickson A.G., Chludzinski B.J., Cole R.E., Ford M., Herbek L., Ljungberg M., Magdum Z., Marquis D., Mezhirov A., Pennell J.L., Roe T.A., Weinert A.J.','scopus/service oriented architecture security.csv','scopus','\0'),(1065,'An open and flexible interface proposal and proof of concept implementation to support service orientated architectures and interoperability in the tactical environment','2012','1','business process; Decentralized Operating Procedure; DOP; Interoperability; Lean Services; middleware; SOA','The development of SOAs in the tactical domain has been hindered by a lack of interface standards suitable for the environment of unpredictable and low bandwidth communications, low powered computers and dynamic ad-hoc grouping of tactical participants. Existing commercial SOA standards have assumed reliable access to central servers and services and having relatively static participants. The proposal describes an open and published message-oriented interface created to support the aims of the upcoming MOD Generic Base Architecture1 (GBA) Defence Standard and the associated Land Open Systems Architecture2. The aims are; a) to support multiple open transport protocols, such as HTTP, SMTP, DDS and MQTT; b) to be suitable for integrating together low-level utility functions with their controlling systems (such as water, waste and power) and integrating together high-level mission-support functions (such as ISTAR and C2); c) reduce operator burden by using automated discovery and configuration where possible; d) dynamically integrate with MOD Generic Vehicle Architecture3 platforms to link base and vehicle mission and logistics systems over tactical radio links; e) extensible to support features such as security classification; f) to be lightweight in implementation and bandwidth and not dependent on central servers for operation. The paper will present the proposed interface and describe the features required for a military tactical rather than a commercial environment, and will report the outcome of a MOD-funded proof of concept that uses the proposed interface to interoperate several military systems. © 2012 Copyright Society of Photo-Optical Instrumentation Engineers (SPIE).','',1,'Peach N.','scopus/service oriented architecture security.csv','scopus','\0'),(1066,'Formal Modeling and Evaluation of Stateful Service-Based Business Process Elasticity in the Cloud','2013','5',' Cloud computing stateful service-based business processes elasticity evaluation of elasticity strategies','Abstract Cloud environments are being increasingly used for deploying and executing business processes and particularly Service-based Business Processes (SBPs). One of the expected features of Cloud environments is elasticity at different levels. It is obvious that provisioning of elastic platforms is not sufficient to provide elasticity of the deployed business process. Therefore, SBPs should be provided with elasticity so that they would be able to adapt to the workload changes while ensuring the desired functional and non-functional properties. In this paper, we propose a formal model for stateful SBPs elasticity that features a duplication/consolidation mechanisms and a generic controller to define and evaluate elasticity strategies.','',2,'Mourad AmzianiTarek MellitiSamir Tata','springer/bpel security.csv','springer','\0'),(1067,'eContractual choreography-language properties towards cross-organizational business collaboration','2015','3',' Smart contracting Choreography eSourcing Suitability Expressiveness Cross-organizational B2B Business process Sociotechnical Decentralized autonomous organizations','Abstract Meaningfully automating sociotechnical business collaboration promises efficiency-, effectiveness-, and quality increases for realizing next-generation decentralized autonomous organizations. For automating business-process aware cross-organizational operations, the development of existing choreography languages is technology driven and focuses less on sociotechnical suitability and expressiveness concepts and properties that recognize the interaction between people in organizations and technology in workplaces. This gap our suitability- and expressiveness exploration fills by means of a cross-organizational collaboration ontology that we map as a proof-of-concept evaluation to the eSourcing Markup Language (eSML). The latter we test in a feasibility case study to meaningfully support the automation of business collaboration. The developed eSourcing ontology and eSML is replicable for exploring strengths and weaknesses of other choreography languages.','Journal of Internet Services and Applications',2,'Alex NortaLixin MaYucong DuanAddi RullMerit KõlvartKuldar Taveter','springer/bpel security.csv','springer',''),(1068,'An Efficient and Lightweight Intrusion Detection Mechanism for Service-Oriented Vehicular Networks','2014','2','Intrusion detection;Service Attacks;Service-oriented vehicular;intrusion detection;networks;service attacks;service-oriented vehicular networks','Vehicular ad hoc networks (VANETs) are wireless networks that provide high-rate data communication among moving vehicles and between the vehicles and the road-side units. VANETs are considered as the main wireless communication platforms for the intelligent transportation systems (ITS). Service-oriented vehicular networks are special categories for VANETs that support diverse infrastructure-based commercial infotainment services including, for instance, Internet access, real-time traffic monitoring and management, video streaming. Security is a fundamental issue for these service networks due to the relevant business information handled in these networks. In this paper, we design and implement an efficient and light-weight intrusion detection mechanism, called efficient and light-weight intrusion detection mechanism for vehicular network (ELIDV) that aims to protect the network against three kinds of attacks: denial of service (DoS), integrity target, and false alert\'s generation. ELIDV is based on a set of rules that detects malicious vehicles promptly and with high accuracy. We present the performance analysis of our detection mechanism using NS-3 simulator. Our simulation results show that ELIDV exhibits a high-level security in terms of highly accurate detection rate (detection rate more than 97%), low false positive rate (close to 1%), and exhibits a lower overhead compared to contemporary frameworks.','IEEE Internet of Things Journal',1,'H. Sedjelmaci; S. M. Senouci; M. A. Abu-Rgheff','ieee/service oriented architecture security.csv','ieee','\0'),(1069,'Aligning Security and Business Objectives for Process-Aware Information Systems','2015','0','access control, business process, compliance, cost-minimizing authorization policy, enforcement, obstruction, separation of duty, workflow','Proceedings of the 5th ACM Conference on Data and Application Security and Privacy','',2,'Günter Karjoth','acm/bpmn security.csv','acm',''),(1070,'Dependability certification of services: a model-based approach','2015','2',' BPEL Dependability certification Markov chains Web services Mathematics Subject Classification 68M14 Distributed systems 68M15 Reliability testing and fault tolerance','Abstract The advances and success of the Service-Oriented Architecture (SOA) paradigm have produced a revolution in ICT, particularly, in the way in which software applications are implemented and distributed. Today, applications are increasingly provisioned and consumed as web services over the Internet, and business processes are implemented by dynamically composing loosely coupled applications provided by different suppliers. In this highly dynamic context, clients (e.g., business owners or users selecting a service) are concerned about the dependability of their services and business processes. In this paper, we define a certification scheme that allows to verify the dependability properties of services and business processes. Our certification scheme relies on discrete-time Markov chains and awards machine-readable dependability certificates to services, whose validity is continuously verified using run-time monitoring. Our solution can be integrated within existing SOAs, to extend the discovery and selection process with dependability requirements and certificates, and to support a dependability-aware service composition.','Computing',2,'Claudio A. ArdagnaRavi JhawarVincenzo Piuri','springer/bpel security.csv','springer',''),(1071,'Cloud-Based LED Light Management System and Implementation Based-on Wireless Communication','2013','0',' Wireless Communication Cloud Service LED-based Public Lights Zigbee/3G routers','Abstract In this paper, a LED lighting management system based on wireless communication and sensor network is proposed to improve public lighting system (PLS). A web-based Human-Computer Interaction (HCI) is designed to remotely control, monitor and manage LED lights efficiently. This management system of LED lights provides energy-saving mode, periodical light-checking mode and immediate light-checking mode to reduce the energy consumption of public lighting systems and to enhance the management efficiency. This system will automatically send SMS of state notification to notify administrator when the failure exception of LED lights is occurred. The management system will reduce the maintain cost and more efficient energy-saving than traditional lightings system.','',1,'Yi-Ting ChenYi-Syuan SongMong-Fong HorngChin-Shiuh ShiehBin-Yih Liao','springer/service oriented architecture security.csv','springer','\0'),(1072,'Workflow Management Principles for Interactions Between Petri Net-Based Agents','2015','0',' Workflows Agents Integration Interaction Communication Petri nets','Abstract Software agents can be considered as similar to humans interacting with one another to complete a complex activity or, in an organisational setting, a workflow. More so, agents can view their own behaviour as workflows, which can require other resources in order to be executed. This paper examines and describes an approach to consider agent behaviour as workflows and agents as both workflow engines and workflow resources. This approach can achieve a flexible and more uniform type of agent interaction. The paper describes the approach as a design pattern and blueprint. It also presents a first technical proof-of-concept. The general approach, concepts and prototype are based on and realised with reference Petri nets. This enables a clear transition between the conceptual approach and the practical realisation.','',2,'Thomas WagnerDaniel Moldt','springer/bpmn security.csv','springer',''),(1073,'Secure Grid Micro-Workflows Using Virtual Workspaces','2008','1','BPEL;Grid;Virtualization;Workflow','In this paper, an approach to create virtual cluster environments is presented which enables fine grained service-oriented applications to be executed side by side to traditional batch job oriented Grid applications. Secure execution environments which can be staged into an existing batch job environment are created. A grid enabled workflow engine to build complex application workflows which are executed in the virtual environment is provided. A security concept is introduced allowing cluster worker nodes to expose services to the BPEL engine outside of the private cluster network and thus enabling multi-site workflows in a secure fashion. A prototypical implementation based on Globus Toolkit 4, Virtual Workspaces, ActiveBPEL and Xen is presented.','2008 34th Euromicro Conference Software Engineering and Advanced Applications',2,'T. Dörnemann; M. Smith; E. Juhnke; B. Freisleben','ieee/bpel security.csv','ieee','\0'),(1074,'Internet of Things: The Foundational Infrastructure for a Smarter Planet','2013','0',' IoT Mobile Big Data Cloud Computing Software Defined Environment','Abstract Every day, our world is getting more instrumented and interconnected. Streams of data are continuously being generated by mobile devices, personal computers, networks, sensors, RFID tags, web services, social media and the like. IBM’s newest study reveals how new technologies support the development of the Internet of Things, and how the Internet of Things provides the foundational infrastructure for a smarter planet. Key trends that relate to the Internet of Things include Mobile, Big Data, Cloud Computing, and Smart Networks. The paper describes the latest developments in Mobile, Big Data (including cognitive systems capable to evaluate large amounts of both structured and unstructured data), Cloud Computing and Smarter networks (including software defined environments to cope with the ever increasing workloads in the networks).','',1,'Rob van den Dam','springer/service oriented architecture security.csv','springer','\0'),(1075,'Secure Migration of Legacy Applications to the Web','2014','1',' Software migration Web application User interface Legacy application','Abstract In software engineering, migration of an application is the process of moving the software from one execution platform to another. Nowadays, many desktop applications tend to migrate to the web or to the cloud. Desktop applications are not prepared to face the hostile environment of the web where applications frequently receive harmful data that attempt to exploit program vulnerabilities such as buffer overflows. We propose a migration process for desktop applications with a text-based user interface, which mitigates existing security concerns and enables the software to perform safely in the web without modifying its of the source code. Additionally, we describe an open source tool that facilitates our migration process.','',1,'Zisis KarampaglisAnakreon MentisFotios RafailidisPaschalis TsolakidisApostolos Ampatzoglou','springer/service oriented architecture security.csv','springer','\0'),(1076,'Proceedings of the 2012 International Conference on Recent Advances in Computing and Software Systems, RACSS 2012','2012','','','The proceedings contain 56 papers. The topics discussed include: biometric security based application development and emulation framework - IEEE 802.15.4 for intensive care units; extensive DBA-CAC mechanism for maximizing efficiency in 3GPP: LTE networks; a public key cryptosystem based on number theory; a metrics suite and fuzzy model for measuring coupling in service oriented architecture; surfguard javascript instrumentation-based defense against drive-by downloads; review analyzer: analyzing consumer product reviews from review collections; experimental design on defect analysis in software process improvement; effective visualization of conceptual class diagrams; a novel enhanced bio-inspired harmony search algorithm for clustering; determining the impact of reviews: in view of temporal pattern and component weight assignment algorithm with SVM; and preprocessing and generation of association rules for automated blood cell counter data in haematology.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus','\0'),(1077,'Cyberinfrastructure Support for Engineering Virtual Organization for CyberDesign','2012','0',' Virtual Organizations Knowledge Management Cyberinfrastructure Service-Oriented Software Engineering Data Repository','Abstract Integrated Computational Material Engineering (ICME) is an emerging discipline transforming materials science. Computational engineering accelerates materials development, integrates design and manufacturing, and unifies these with the engineering design optimization process, as well as efficiently employs greater accuracy in simulation-based design. Efforts to realize this enormous and complex goal have catalyzed the development of the Engineering Virtual Organization for Cyber Design (EVOCD), which provides a cyberinfrastructure to accumulate and protect the intellectual property pertaining to selected aspects of materials science and engineering that is generated by the participants of the organization, to enforce the quality of that information, and to manage its complexity. The intellectual property includes experimental data, material models and constants, computational tools and software artifacts, and the knowledge pertaining to multiscale physics-based models for selected properties and processes. EVOCD has been developed using open source components augmented with custom modules such as a secure data repository integrated with online model calibration tools. EVOCD is available at http://icme.hpc.msstate.edu','',1,'Tomasz HauptNitin SukhijaMark F. Horstemeyer','springer/service oriented architecture security.csv','springer','\0'),(1078,'Automated Learning Setups in Automata Learning','2012','1','','Abstract Test drivers are an essential part of any practical active automata learning setup. These components to accomplish the translation of abstract learning queries into concrete system invocations while managing runtime data values in the process. In current practice test drivers typically are created manually for every single system to be learned. This, however, can be a very time-consuming and thus expensive task, making it desirable to find general solutions that can be reused. This paper discusses how test drivers can be created for LearnLib, a flexible automata learning framework. Starting with the construction of application-specific test drivers by hand, we will discuss how a generic test driver can be employed by means of configuration. This configuration is created manually or (semi-)automatically by analysis of the target system’s interface.','',1,'Maik MertenMalte IsbernerFalk HowarBernhard SteffenTiziana Margaria','springer/webservice security.csv','springer','\0'),(1079,'Software quality in the clouds: a cloud-based solution','2014','6',' Security Software quality Cloud computing','Abstract Cloud computing, an on-demand computation model that consists of large data-centers ( Clouds ) managed by cloud providers, offers storage and computation needs for cloud users based on service level agreements (SLAs). Services in cloud computing are offered at relatively low cost. The model, therefore, forms a great target for many applications, such as startup businesses and e-commerce applications. The area of cloud computing has grown rapidly in the last few years; yet, it still faces some obstacles. For example, there is a lack of mechanisms that guarantee for cloud users the quality that they are actually getting, compared to the quality of service that is specified in SLAs. Another example is the concern of security, privacy and trust, since users lose control over their data and programs once they are sent to cloud providers. In this paper, we introduce a new architecture that aids the design and implementation of attestation services. The services monitor cloud-based applications to ensure software quality, such as security, privacy, trust and usability of cloud-based applications. Our approach is a user-centric approach through which users have more control on their own data/applications. Further, the proposed approach is a cloud-based approach where the powers of the clouds are utilized. Simulation results show that many services can be designed based on our architecture, with limited performance overhead.','Cluster Computing',1,'Mohammed HussainHanady M. Abdulsalam','springer/soa security.csv','springer','\0'),(1080,'A distributed architecture for efficient Web service discovery','2016','1',' Distributed service registries Service discovery Service match-making Similarity measure','Abstract Although the definition of service-oriented architecture (SOA) included the presence of a service registry from the beginning, the first implementations (e.g., UDDI) did not really succeed mainly because of security and governance issues. This article tackles the problem by introducing DREAM (Distributed Registry by ExAMple): a publish/subscribe-based solution to integrate existing, different registries, along with a match-making approach to ease the publication and retrieval of services. DREAM fosters the interoperability among registry technologies and supports UDDI, ebXML Registry, and other registries. The publish/subscribe paradigm allows service providers to decide the services they want to publish, and requestors to be informed of the services that satisfy their interests. As for the match-making, DREAM supports different ways to evaluate the matching between published and required services. Besides presenting the architecture of DREAM and the different match-making opportunities, the article also describes the experiments conducted to evaluate proposed solutions.','Service Oriented Computing and Applications',1,'Luciano BaresiMatteo MirazPierluigi Plebani','springer/soa security.csv','springer',''),(1081,'Static Weaving in Aspect Oriented Business Process Management','2015','0',' Business process modelling Aspect orientation Weaving','Abstract Separation of concerns is an important topic in business process modelling that aims to reduce complexity, increase the re-usability and enhance the maintainability of business process models. Some concerns cross over several business processes (known as cross-cutting concerns), and they hinder current modularization techniques to encapsulate them efficiently. Aspect Oriented Business Process Modelling aims to encapsulate these concerns from business process models. Although many researchers proposed different aspect-oriented business process modelling approaches, there is no analysis technique to check these models in terms of soundness. Thus, this paper proposes a formal definitions and semantics for aspect-oriented business process models, and it enables the analysis of these models in terms of soundness at design time through defining a static weaving algorithm. The algorithm is implemented as an artefact that support weaving aspect-oriented business process models. The artefact is used to analyse different scenarios, and the result of analysis reveals the situations that can introduce different problems like deadlock. In addition, an example of such scenario is given that shows how the artefact can detect the problems at design time. Such analysis enables process modellers to discover the problems at design time, so the problems will not be left to be discovered at runtime - which apply a lot of costs to correct them.','',2,'Amin Jalali','springer/bpmn security.csv','springer',''),(1082,'An Emulated Test Framework for Service Discovery and MANET Research Based on ns-3','2012','5','','In this paper we present our framework for emulated evaluation of service discovery protocols in mobile ad-hoc networks (MANETs). Emulation is preferable to simulation when evaluating real world software implementations, as it provides a controlled network environment without requiring modifications to the software. We base our work on the open-source simulator ns-3, which also has support for network emulation. Our own test framework consists of a set of scripts running in Linux Containers, providing a means to bootstrap and populate service discovery protocols with services and queries. Our setup allows us to perform controlled and repeatable service discovery protocol experiments in MANETs with a high degree of automation. Experiment series are set up, controlled, and statistics calculated by scripts, thus enabling complex, large, and real-time evaluations to be performed without human interaction.','2012 5th International Conference on New Technologies, Mobility and Security (NTMS)',1,'M. Skjegstad; F. T. Johnsen; J. Nordmoen','ieee/service oriented architecture security.csv','ieee','\0'),(1083,'Research and analysis of denial of service performance based on service-oriented architecture','2014','0','Denial of Service (DoS);SOA;SOAP message','Denial of Service (DoS) is to make a computer or network unable to provide normal service. With more and more SOA-oriented enterprise information platform appearing, SOA security issues have become increasingly prominent and the safety of SOAP message transmission is an important determinant of SOA Security. However, the loss of Dos attack for SOA brought to society is huge and difficult to estimate. Through the study and analysis of the simulation results, the characteristic of DoS attack on the impact of system resource is summarized, which also provides the reference for the safety technology and theory.','The 26th Chinese Control and Decision Conference (2014 CCDC)',1,'Z. Yuntao; M. Yizhou; H. Yingchun; D. Yue; Y. Jian','ieee/service oriented architecture security.csv','ieee','\0'),(1084,'Cloud services platform of public resources trading integration','2014','','Cloud computing; Measurement of service; One-stop service; SOA','Considering China’s public resources trading platform does not implement in the true sense of integration, information sharing still exist in isolation, security is not strong, large resources, poor timeliness, and efficiency is low, so we put forward a public resources trading platform based on cloud services. This system not only realize the public resources trading center insider, wealth, and the unity of the business process management, meanwhile to achieve resource virtualization, services can be quantified, and one-stop service online. © Institute for Computer Sciences, Social Informatics and Telecommunications Engineering 2014.','',1,'Xiong J., Wang Q., Liu J., Liang Q., Zhou K.','scopus/soa security.csv','scopus','\0'),(1085,'Verification of Artifact-Centric Systems: Decidability and Modeling Issues','2013','3',' artifact-centric systems guard-stage-milestone formal verification','Abstract Artifact-centric business processes have recently emerged as an approach in which processes are centred around the evolution of business entities, called artifacts , giving equal importance to control-flow and data. The recent Guard-State-Milestone (GSM) framework provides means for specifying business artifacts lifecycles in a declarative manner, using constructs that match how executive-level stakeholders think about their business. However, it turns out that formal verification of GSM is undecidable even for very simple propositional temporal properties. We attack this challenging problem by translating GSM into a well-studied formal framework.We exploit this translation to isolate an interesting class of “state-bounded” GSM models for which verification of sophisticated temporal properties is decidable. We then introduce some guidelines to turn an arbitrary GSM model into a state-bounded, verifiable model.','',2,'Dmitry SolomakhinMarco MontaliSergio TessarisRiccardo De Masellis','springer/bpel security.csv','springer','\0'),(1086,'Defining and Observing the Compliance of Service Level Agreements: A Model Driven Approach','2010','0','BPMN;Domain Specific Language;IT Service Management;ITIL;MDA;Metamodels;Process Model;Service Level Agreements;Service Level Management','IT Service Management (ITSM) is the set of processes that allow planning, organizing, directing and controlling the provisioning of IT services. Among the concerns of ITSM, namely within the service level management process, are the requirements for services availability, performance, accuracy, capacity and security, which are specified in terms of service-level agreements (SLA). SLA definition and monitoring are open issues within the ITSM domain. This paper overviews an ongoing research initiative concerned with three specific problems in this context: (1) SLAs in the context of ITSM are informally specified in natural language, (2) SLAs specifications are not grounded on models of ITSM processes, (3) SLAs compliance verification in IT services is not performed at the same level of abstraction as service design. To mitigate those problems, we propose a model-based approach to IT services SLA specification and compliance verification. The specification part will be based on a SLA language - a domain specific language (DSL) for defining quality attributes as non functional requirements (NFRs) in the context of ITSM. Its metamodel will be an extension of the metamodel of the adopted process modeling language. As such, it will be possible to ground SLA definition on the corresponding IT service model constructs. SLA monitoring and compliance validation will occur at the same abstraction level as service specification, therefore being understood by all stakeholders.','Quality of Information and Communications Technology (QUATIC), 2010 Seventh International Conference on the',2,'A. Correia; F. Brito e Abreu','ieee/bpmn security.csv','ieee','\0'),(1087,'A Commutative Model Composition Operator to Support Software Adaptation','2012','1','','Abstract The adaptive software paradigm supports the definition of software systems that are continuously adapted at run-time. An adaptation activates multiple features in the system, according to the current execution context ( e . g ., CPU consumption, available bandwidth). However, the underlying approaches used to implement adaptation are ordered, e . g . the order in which a set of features are turned on or off matters. Assuming feature definition as etched in stone, the identification of the right sequence is a difficult and time–consuming problem. We propose here a composition operator that intrinsically supports the commutativity of adaptations. Using this operator, one can minimize the number of ordered compositions in a system. It relies on an action–based approach, as this representation can support preexisting composition operators as well as our contribution in an uniform way. This approach is validated on the Service–Oriented Architecture domain, and is implemented using first–order logic.','',1,'Sébastien MosserMireille Blay-FornarinoLaurence Duchien','springer/service oriented architecture security.csv','springer','\0'),(1088,'Behavioral Consistency Measurement and Analysis of WS-BPEL Processes','2013','0',' BPEL Processes Behavioral Consistency Process Alignment BPEL Program Dependence Graph','Abstract With the development of services and cloud computing, service-based business processes (e.g., WS-BPEL processes) are paid more attention by practitioners. Business parties usually keep their BPEL processes in a process repository. In order to facilitate the retrieval, maintenance, and reuse of BPEL processes in the repository, we need an appropriate measurement criterion to analyze the behavioral consistency between BPEL processes. In this paper, we propose a novel measurement criterion and corresponding analysis approach to determine the behavioral consistency between two BPEL processes quantitatively. Our measurement and approach are based on BPEL program dependence graphs (BPDGs). We have faithfully implemented our approach in a prototype tool which is used to analyze the behavioral consistency of BPEL processes.','',2,'Xuewei ZhangWei SongJianchun XingQiliang YangHongda WangWenjia Zhang','springer/bpel security.csv','springer','\0'),(1089,'Reconfiguration Mechanisms for Service Coordination','2013','1','','Abstract Models for exogenous coordination provide powerful glue-code , in the form of software connectors, to express interaction protocols between services in distributed applications. Connector reconfiguration mechanisms play, in this setting, a major role to deal with change and adaptation of interaction protocols. This paper introduces a model for connector reconfiguration, based on a collection of primitives as well as a language to specify connectors and their reconfigurations.','',1,'Nuno OliveiraLuís S. Barbosa','springer/service oriented architecture security.csv','springer','\0'),(1090,'Decentralized access permission control using resource-oriented architecture for the Web of Things','2014','3','Access Control;Access Permission;IoT;REST;ROA;Resource-oriented;WoT','As the today\'s Web provides open communication environment for a variety of web resources, the Web of Things (WoT) offers new opportunity and challenges about the interoperation among the smart things. The well-known Web technologies can leverage the Web-enabled things to publish and exchange their resource information over the Web, then the Web-enabled thing should cope with the security threat regarding the information exposures over the Web, particularly, access permissions to the thing\'s resource information. Thus, in this paper we analyse access permission control mechanism considering both the WoT characteristics and the REST-compliant resource-oriented Web architecture. In contrast to existing access control logics, the proposed mechanism utilizes not only the requester information such as the typical identity and the internet addresses, but also the context of the thing itself. Based on this mechanism, we present web-resource structure for access permission control, and describe an exemplary procedure in detail. This research contributes to the flexible and decentralized access permission control for WoT.','16th International Conference on Advanced Communication Technology',1,'S. W. Oh; H. S. Kim','ieee/service oriented architecture security.csv','ieee','\0'),(1091,'Deploying LiveWN Grids in the Greek School Network','2012','0',' Grid computing Scavenging Remote management Open source','Abstract A determinant factor for the introduction of grid technologies in production domains of scale can be the design of easy, fast and, from an operational point of view, realizable deployment procedures. Remote system management technologies, typically used to monitor and manage IT environments, are designed to offer remote software installation functionality that exhibits the aforementioned characteristics; however, previous work has shown that even valuable systems can fail to perform in heterogeneous, geographically distributed environments, especially if they are maintained by organizations affiliated to the public sector. The deployment of grid technologies throughout the Greek School Network can be achieved by combining OpenRSM, a novel open source solution capable to support usable, configurable, infrastructure management use cases in heterogeneous environments and LiveWN, a grid scavenging solution that integrates live technologies with gLite grids.','Journal of Grid Computing',1,'Michael N. KalochristianakisFotis GeorgatosVasilis GkamasGiannis KouretisEmmanouel Varvarigos','springer/soa security.csv','springer','\0'),(1092,'Analytical, computational and conceptual modeling in service science and systems','2013','0',' Service science Service systems Cloud services Service level agreements Service-oriented architecture Software-as-a-service','Abstract While the service economy is growing very fast, more organizations are reorienting their processes, tools, and products towards service-oriented applications. This service-oriented paradigm is creating new challenges and opportunities for organizations. In this article, we discuss service science and systems, and provide a conceptual view of the service ecosystem in the context of analytical, computational and conceptual modeling. As service scientists, our ultimate goal should be to develop and provide a science-based approach to the dynamic, scalable, secure, and knowledge-driven design and development of service ecosystems, while in the process fostering the development of academic researchers and industry professionals to work in diverse, interdisciplinary teams for engineering adaptable solutions to distributed computing problems.','Information Systems and e-Business Management',1,'Haluk DemirkanDaniel Dolk','springer/service oriented architecture security.csv','springer','\0'),(1093,'Unifying and Extending User Story Models','2014','2',' User Story Template Agile Requirements Modeling eXtreme Programming Scrum','Abstract Within Agile methods, User Stories ( US ) are mostly used as primary requirements artifacts and units of functionality of the project. The idea is to express requirements on a low abstraction basis using natural language. Most of them are exclusively centered on the final user as only stakeholder. Over the years, some templates (in the form of concepts relating the WHO, WHAT and WHY dimensions into a phrase) have been proposed by agile methods practitioners or academics to guide requirements gathering. Using these templates can be problematic. Indeed, none of them define any semantic related to a particular syntax precisely or formally leading to various possible interpretations of the concepts. Consequently, these templates are used in an ad–hoc manner, each modeler having idiosyncratic preferences. This can nevertheless lead to an underuse of representation mechanisms, misunderstanding of a concept use and poor communication between stakeholders. This paper studies templates found in literature in order to reach unification in the concepts’ syntax, an agreement in their semantics as well as methodological elements increasing inherent scalability of US-based projects.','',2,'Yves WauteletSamedi HengManuel KolpIsabelle Mirbel','springer/bpmn security.csv','springer',''),(1094,'A service-oriented cloud computing network management architecture for wireless sensor networks','2014','2','Cloud computing; Network management; Service-oriented architecture; Wireless sensor networks','Traditional network management techniques cannot be applied to wireless sensor networks (WSNs) because of their low computing ability, their small memory space, and the limited energy of WSNs. Although WSN network management techniques have been recently proposed, these techniques lack a complete architecture and integrated design for their external interface. In addition, future WSNs may be composed of heterogeneous sensor devices and may use a large number of applications cooperatively. Traditional network management techniques will not meet the resulting requirements. Recent advances in cloud computing and in Service-Oriented Architecture (SOA) provide exciting opportunities for solving this challenge. However, current implementations of cloud computing infrastructures are often isolated from others. To better support the multi-tenancy feature of cloud computing, this paper proposes a Service-Oriented Cloud Computing Network Management Architecture for WSNs (SCNA-WSN) to adopt an SOA and to provide web services for integrating heterogeneous cloud computing infrastructures. In SCNA-WSN, users access each resource as a service, eliminating the need to own the physical infrastructure, platform, or software. External applications can use web services to integrate SCNA-WSN. As a result, users can integrate and use various network management resources depending on system requirements. To protect service privacy and to preserve service scalability, an Advanced Encryption Standard (AES) security mechanism and a multicast overlay network are provided in the proposed SCNA-WSN. The proposed architecture is effective and secure. This architecture can provide sensor services with ubiquity, scalability and reliability. In this paper, we provide not only the theoretic analysis but also the implementation of an example system to demonstrate that an SCNA-WSN can decrease the difficulty of integrating different cloud platforms and heterogeneous sensor devices. Performance evaluations of the bandwidth cost and the service latency are presented. © 2014 Old City Publishing, Inc.','',1,'Chang R.-I., Chuang C.-C.','scopus/service oriented architecture security.csv','scopus','\0'),(1095,'Development of a secured cloud based health information system for antenatal and postnatal clinic in an African country','2016','','Antenatal; Cloud computing; Health information system; Postnatal; Service-oriented architecture','Maternal Mortality Ratio (MMR) in many African countries has consistently been in the range of 500-800 per 100,000 live births over the last two decades. A major challenge in these settings relates to the quality and promptness of antenatal and/or post-natal care given. Recent advancements in technology, notably health information systems (HIS), have helped in the response to many of these challenges. In Africa, and indeed Nigeria, there is yet a comprehensive HIS that cuts across health sector that can address these issues. Hence, this project seeks to design a Secured Cloud-Based Antenatal and Postnatal Clinic System of a Health Information System to assist in efficient utilization of material and human resources and enhance quality of delivery of health services, geared towards improving maternal health. Requirements gathering for the proposed system will be conducted through a study of Antenatal and Postnatal Clinic Systems of existing Cloud Based HIS. System Modeling and Implementation Evaluation would be carried out. The developed HIS will adopt a AGATE architecture (Stakes and objectives of the system Description of the related organizations, processes and information flows, Security requirements, Services of the system, and traceability with operational needs), and a test-run and evaluation of the completed project will be conducted at specified three primary health care facilities in Nigeria. © 2016 The authors and IOS Press. All rights reserved.','',1,'Ajayi P., Omoregbe N., Adeloye D., Misra S.','scopus/service oriented architecture security.csv','scopus',''),(1096,'BPM in the Cloud','2013','0',' BPM business process management cloud SaaS case social collaboration BPMN IT enterprise','Abstract When Salesforce started delivering software in the cloud, they started a big shift in the CRM space. In the meantime, Software as a Service has become the preferred form to deliver software. Now, Business Process Management (BPM) products are starting to make their way to the cloud and they cause a big impact. Here we explore the benefits of cloud computing applied to BPM products. Basically the cloud is making BPM easier, faster and cheaper.','',2,'Tom Baeyens','springer/bpmn security.csv','springer','\0'),(1097,'Standard security does not imply security against selective-opening','2012','11','','We show that no commitment scheme that is hiding and binding according to the standard definition is semantically-secure under selective opening attack (SOA), resolving a long-standing and fundamental open question about the power of SOAs. We also obtain the first examples of IND-CPA encryption schemes that are not secure under SOA, both for sender corruptions where encryption coins are revealed and receiver corruptions where decryption keys are revealed. These results assume only the existence of collision-resistant hash functions. © 2012 International Association for Cryptologic Research.','',1,'Bellare M., Dowsley R., Waters B., Yilek S.','scopus/soa security.csv','scopus',''),(1098,'Achieving Interoperability through Semantic Technologies in the Public Administration','2012','0','','Abstract In this paper we report the experience of using semantic based tools and technologies for (collaboratively) modeling administrative procedures and their related documents, organizational roles, and services, in the Italian Public Administration (PA), focusing in particular on the interoperability aspects faced during the modelling process. This experience, the reported lessons learned and next steps identified, highlight the potential and criticality of using web 2.0 semantic technologies and tools to enhance participatory knowledge sharing, interoperability, and collaboration in the modeling of complex domains in the PA.','',2,'Chiara Di FrancescomarinoMauro DragoniMatteo GerosaChiara GhidiniMarco RospocherMichele Trainotti','springer/bpmn security.csv','springer','\0'),(1099,'System middleware','2015','','','This document defi nes the middleware of a cyberphysical monitoring system for epilepsy and related brain disorders. Taking into account requirements, this document provides insights about the service functionalities of the middleware and the interfaces connecting the different technologies in place within the system middleware. The document is divided into two main parts, the fi rst part describes the functional, non-functional and security aspects of the middleware, while the second part is all necessary information about the middleware architecture. The middleware runs within the Home Gateway, it is the ICT part responsible to connect sensor data to upper software layers (like personal health record service and the tele-alarm and messaging manager). Furthermore it provides the necessary infrastructure (thanks to the inclusion of a data stream management system) for the development of on-line multi-parametric data processing. Upper software layers connected are the Tele-alarm and Messaging Manager and the Personal Health Record. All middleware components follow a SOA (service oriented architecture) paradigm that allows easy scalability of the system. © Springer International Publishing Switzerland 2015.','',1,'Bideaux A., Hey S., Anastasopoulou P.','scopus/service oriented architecture security.csv','scopus',''),(1100,'A review of agent and service-oriented concepts applied to intelligent energy systems','2014','20','Active demand response; Distributed generation; Electrical grid; Multiagent systems (MASs); Power balancing; Renewable energy sources (RESs); Service-oriented architectures (SOAs); Smart grid','The intention of this paper is to provide an overview of using agent and service-oriented technologies in intelligent energy systems. It focuses mainly on ongoing research and development activities related to smart grids. Key challenges as a result of the massive deployment of distributed energy resources are discussed, such as aggregation, supply-demand balancing, electricity markets, as well as fault handling and diagnostics. Concepts and technologies like multiagent systems or service-oriented architectures are able to deal with future requirements supporting a flexible, intelligent, and active power grid management. This work monitors major achievements in the field and provides a brief overview of large-scale smart grid projects using agent and service-oriented principles. In addition, future trends in the digitalization of power grids are discussed covering the deployment of resource constrained devices and appropriate communication protocols. The employment of ontologies ensuring semantic interoperability as well as the improvement of security issues related to smart grids is also discussed. © 2005-2012 IEEE.','',1,'Vrba P., Marik V., Siano P., Leitao P., Zhabelova G., Vyatkin V., Strasser T.','scopus/service oriented architecture security.csv','scopus',''),(1101,'Research on Scientific Data Sharing Platform of Hydrology and Water Resources Based on Service Composition','2012','0',' Service Composition Data Sharing Web Service WSBPEL Hydrology and Water Resources','Abstract According to the demand for scientific data sharing of hydrology and water resources, through the introduction of Web Service and service composition development technology, we carried out a detailed design on the sharing platform from the aspects of service packaging, service registration, service publishing and service composition based on WSBPEL process. In this paper, we achieved the scientific data sharing platform of hydrology and water resources based on service composition in the private network environment of water system. The platform breaks the structure of traditional data sharing platform, and it can reassemble services to generate more complex business services, providing a basis for implementing sharing platform’s development from data sharing to service sharing.','',2,'Dingsheng WanJuan TangDazheng YuYufeng YuXingzhong Guan','springer/bpel security.csv','springer','\0'),(1102,'Interprocedural Information Flow Analysis of XML Processors','2014','1','','Abstract A crucial issue when providing publicly accessible web services is that sensitive data should only be accessible by authorized users. Accessibility of data within an application or information flow can conveniently be formalized as a 2-hyperproperty of a program. Here, we present a technique to interprocedurally analyze information flow in XML processors. Our approach is based on general techniques for program matching, and relational abstract interpretation of the resulting 2-programs. In case of XML processors, the abstract relational semantics then can be practically analyzed by means of finite tree automata.','',2,'Helmut SeidlMáté Kovács','springer/bpel security.csv','springer',''),(1103,'Probabilistic approach for QoS-aware recommender system for trustworthy web service selection','2014','4',' Web service Trust Bayesian network Online learning Dirichlet Beta-Liouville','Abstract We present a QoS-aware recommender approach based on probabilistic models to assist the selection of web services in open, distributed, and service-oriented environments. This approach allows consumers to maintain a trust model for each service provider they interact with, leading to the prediction of the most trustworthy service a consumer can interact with among a plethora of similar services. In this paper, we associate the trust in a service to its performance denoted by QoS ratings instigated by the amalgamation of various QoS metrics. Since the quality of a service is contingent, which renders its trustworthiness uncertain, we adopt a probabilistic approach for the prediction of the quality of a service based on the evaluation of past experiences (ratings) of each of its consumers. We represent the QoS ratings of services using different statistical distributions, namely multinomial Dirichlet, multinomial generalized Dirichlet, and multinomial Beta-Liouville. We leverage various machine learning techniques to compute the probabilities of each web service to belong to different quality classes. For instance, we use the Bayesian inference method to estimate the parameters of the aforementioned distributions, which presents a multidimensional probabilistic embodiment of the quality of the corresponding web services. We also employ a Bayesian network classifier with a Beta-Liouville prior to enable the classification of the QoS of composite services given the QoS of its constituents. We extend our approach to function in an online setting using the Voting EM algorithm that enables the estimation of the probabilities of the QoS after each interaction with a web service. Our experimental results demonstrate the effectiveness of the proposed approaches in modeling, classifying and incrementally learning the QoS ratings.','Applied Intelligence',1,'Mohamad MehdiNizar BouguilaJamal Bentahar','springer/soa security.csv','springer','\0'),(1104,'A proposed case for the cloud software engineering in security','2014','','','This paper presents Cloud Software Engineering in Security (CSES) proposal that combines the benefits from each of good software engineering process and security. While other literature does not provide a proposal for Cloud security as yet, we use Business Process Modeling Notation (BPMN) to illustrate the concept of CSES from its design, implementation and test phases. BPMN can be used to raise alarm for protecting Cloud security in a real case scenario in real-time. Results from BPMN simulations show that a long execution time of 60 hours is required to protect real-time security of 2 petabytes (PB). When data is not in use, BPMN simulations show that the execution time for all data security rapidly falls off. We demonstrate a proposal to deal with Cloud security and aim to improve its current performance for Big Data.','',2,'Chang V., Ramachandran M.','scopus/bpmn security.csv','scopus',''),(1105,'Decision making in security level evaluation process of service-based applications in future internet architecture','2014','2','Anomaly detection; Future internet; Security level evaluation; Service oriented architecture','A method of decision making in security level estimation process of service-based applications in Future Internet architecture is proposed. We demonstrate how distributed services can be composed to form an application run within the Next Generation Network (NGN) infrastructure and their security level may be assessed. Our approach is illustrated by the experiments carried on exemplary application (virtual laboratory Online Lab, using Future Internet IPv6 QoS architecture), in which our method was evaluated against two types of attacks observed with the use of traffic anomaly detection methods. © Springer International Publishing Switzerland 2014.','',1,'Kołaczek G., Juszczyszyn K., Świątek P., Grzech A.','scopus/service oriented architecture security.csv','scopus','\0'),(1106,'Standardization','2012','0','','','',1,'Wolfgang KresseDavid M. DankoKian Fadaie','springer/service oriented architecture security.csv','springer','\0'),(1107,'Accessing SOAP Web Services','2014','0','','Abstract This chapter looks at another mechanism used to access Web services— SOAP —which is similar to XML-RPC and to some extent REST . SOAP is more structured and general than XML-RPC and REST . It is also ostensibly more complex and more difficult to understand because of all of the details about how to format and send requests as XML documents. However, much of the complexity of SOAP is hidden from users as we can programmatically generate code in R (and other languages) to access any SOAP -based Web service and its collection of methods using the genSOAPClientInterface() function. This hides all of the details underlying XML and HTTP while still leaving the user with a lot of flexibility and control. In this chapter, we describe how to access SOAP Web services from within R and how to generate the interfaces from WSDL documents describing the service’s methods and data structures. For more advanced programmers, we also discuss approaches to customize how this code is generated and how to use the . SOAP() function directly to gain more control for more sophisticated applications of SOAP in R .','',1,'Deborah NolanDuncan Temple Lang','springer/webservice security.csv','springer','\0'),(1108,'Hybrid Ontology-Based Matching for Distributed Discovery of SWS in P2P Systems','2014','0','Distributed Discovery;Epidemic Discovery Algorithms;OWL-S;Ontology Matching;P2P Computing;Semantic Web services (SWs);Similarity Measures','Semantic Web services (SWs) paradigm is considered as the most dominant technology of the Service-Oriented Computing (SOC). SWs have emerged as a major technology for deploying automated interactions between distributed and heterogeneous applications. This computing technology can be used to discover new distributed and heterogeneous collaborative applications of large-scale distributed systems in P2P systems. In this paper, we present a scalable P2P approach for distributed discovery of SWs. In this approach, we define a distributed solution based on epidemic discovery algorithm to achieve a specific goal through the distributed discovery of SWs in P2P networks. In order to improve the applicability of the epidemic discovery algorithm for discovering SWs, we propose the matching of ontology OWL-S in the heart of this algorithm which reduces the search space while keeping an acceptable matching quality level. Our matching approach relies on the use of several similarity metrics. Moreover, our matching approach is able to detect complex mappings between activities based on their parameters of OWL-S.','High Performance Computing and Communications, 2014 IEEE 6th Intl Symp on Cyberspace Safety and Security, 2014 IEEE 11th Intl Conf on Embedded Software and Syst (HPCC,CSS,ICESS), 2014 IEEE Intl Conf on',1,'A. Boukhadra; K. Benatchba; A. Balla','ieee/service oriented architecture security.csv','ieee','\0'),(1109,'Towards a Federated Infrastructure for the Global Data Pipeline','2015','0',' Seamless interoperability Data pipeline Federated platforms Service Protocol Physical internet','Abstract Interoperability in logistics is a prerequisite for realizing data pipelines and the Physical Internet. Forecasting data, real time data, and actual positions of shipments, containers, and transport means shared via events have to be harmonized and are expected to improve all types of processes, support synchromodal planning, and improve risk analysis from a compliance and resilience perspective. Technically, several solutions are implemented by organizations and innovations have been validated in so-called Living Labs or demonstrators in various projects. These solutions do not yet provide open systems required for a (global) data pipeline. A federation of solutions is required to construct data pipelines and to support sustainable development of applications on smart devices allowing Small and Medium sized Enterprises to collaborate. This paper proposes a set of platform services and so-called platform protocols to allow interoperability of different platforms for constructing a data pipeline. The proposed services and protocols further extend existing interoperability solutions and services for supply and logistics.','',1,'Wout Hofman','springer/service oriented architecture security.csv','springer',''),(1110,'Process Mining Manifesto','2012','29','','Abstract Process mining techniques are able to extract knowledge from event logs commonly available in today’s information systems. These techniques provide new means to discover, monitor, and improve processes in a variety of application domains. There are two main drivers for the growing interest in process mining. On the one hand, more and more events are being recorded, thus, providing detailed information about the history of processes. On the other hand, there is a need to improve and support business processes in competitive and rapidly changing environments. This manifesto is created by the IEEE Task Force on Process Mining and aims to promote the topic of process mining. Moreover, by defining a set of guiding principles and listing important challenges, this manifesto hopes to serve as a guide for software developers , scientists , consultants , business managers , and end-users . The goal is to increase the maturity of process mining as a new tool to improve the (re)design, control, and support of operational business processes.','',2,'Wil van der AalstArya AdriansyahAna Karla Alves de MedeirosFranco ArcieriThomas BaierTobias BlickleJagadeesh Chandra BosePeter van den BrandRonald BrandtjenJoos BuijsAndrea BurattinJosep CarmonaMalu CastellanosJan ClaesJonathan CookNicola Costantini','springer/bpel security.csv','springer',''),(1111,'A SOA based system development methodology for cloud computing environment: Using uHealthcare as practice','2012','3','Cloud computing; Service oriented architecture (SOA); System development methodology; UHealthcare; Universal healthcare service','Service Oriented Architecture (SOA) uses a structural approach to create services which can be reused and shared. SOA provides agility and cost saving in software development, transforming vertical applications to various software components, which can be reused in applications. Cloud computing expands the software service accessibility and usage via Web services. To move successfully into cloud computing, an architecture supporting the cloud capabilities is needed. The cloud provides a good platform for deploying Web services based on SOA. Customer satisfaction, improved collaboration, enhanced end-to-end user security and enduser authentication, and business growth are some long term benefits supported by modern technologies in both of cloud computing and SOA. The objective of the paper is to study the effective process and effort required to design and implement a SOA based system development methodology and applying it to construct a u-Healthcare system to provide healthcare services including accessing medical records of patients on a universal end-to-end basis. Copyright © 2011, IGI Global.','',1,'Yu W.D., Adiga A.S., Rao S., Panakkel M.J.','scopus/service oriented architecture security.csv','scopus','\0'),(1112,'Composition in Heterogeneous Service Networks: Requirements and Solutions','2012','0',' Service Composition Telecommunication IMS SIP Web Services Web 2.0','Abstract Telecommunication networks are service centric and therefore benefit from service composition techniques in accordance to Service Oriented Architecture (SOA) principles. Furthermore, services in the telecommunication domain are subject to specific requirements and topologies of service usage. Examples are services within end-to-end communication sessions and the need to handle service interaction across technological worlds. This includes telecom, enterprise and Internet services. A common service layer for IT and telecommunication needs to be able to handle compositions of services from multiple technological worlds. This paper provides an analysis of the service usage that is typical for various service technologies and it outlines a composition approach that is made to handle heterogeneous composite services.','',2,'Jörg NiemöllerEugen FreiterKonstantinos VandikasRaphaël QuinetRoman LevenshteynIoannis Fikouras','springer/bpel security.csv','springer','\0'),(1113,'e-Business systems integration: a systems perspective','2012','23',' Systems science Systems engineering Enterprise systems e-Business systems Enterprise architecture Enterprise integration Industrial Information Integration Engineering (IIIE) Warfield version of systems science (WSS)','Abstract Systems science has emerged as a meta-discipline and a meta-language, correspondingly, which can be applied to discuss issues in e-business systems and relevant enterprise architecture and enterprise integration. A lot of researches on enterprise architecture and enterprise integration in e-business systems have their theoretical findings and effective practices naturally influenced by systems theory and relative methodologies. This paper strives to review the contribution of systems theory to enterprise architecture and integration. It also tries to summarize methods or tools applied on enterprise systems level, and to investigate many crucial scopes, concepts and their interrelationship in e-business systems integration activities. Finally, this paper presents new prospects in enterprise architecture and integration for e-business systems. All of these may be useful to deal with the increase complex informatics issues of modern enterprises.','Information Technology and Management',1,'Song WangLing LiKanliang WangJames D. Jones','springer/soa security.csv','springer',''),(1114,'An architecture for integrated intelligence in urban management using cloud computing','2012','25',' Information intelligence Environmental monitoring Data harmonisation Service integration Cloud and computing standards','Abstract With the emergence of new methodologies and technologies it has now become possible to manage large amounts of environmental sensing data and apply new integrated computing models to acquire information intelligence. This paper advocates the application of cloud technologies to support the information, communication and decision making needs of a wide variety of stakeholders in the complex business of the management of urban and regional development. The complexity is evident in the socio-economic and environmental interactions and impacts embodied in the concept of the urban-ecosystem. This highlights the need for more effective integrated environmental management systems. A key to understanding the nature of integrated environmental management systems is the identification of the need for horizontal integration of information across sectoral inter-agency boundaries at the local level, and the need for vertical coordination between levels of governance. This paper offers a user-oriented approach to the specification of requirements for the effective management of urban areas and the potential contributions that can be supported by cloud computing. The commonality of the influence of the drivers of change at the urban level offers the opportunity for the cloud computing community to develop generic solutions that can serve the needs of hundreds of cities throughout Europe and indeed globally. In this respect, different cloud based architecture scenarios are presented which utilise capabilities compliant to various standards in generating information and intelligence for urban governance.','Journal of Cloud Computing: Advances, Systems and Applications',2,'Zaheer KhanDavid LudlowRichard McClatcheyAshiq Anjum','springer/bpel security.csv','springer',''),(1115,'Task Scheduling Optimization in Cloud Computing Applying Multi-Objective Particle Swarm Optimization','2013','5',' Cloud computing Task Scheduling Multi-Objective Particle Swarm Optimization Jswarm Cloudsim','Abstract Optimizing the scheduling of tasks in a distributed heterogeneous computing environment is a nonlinear multi-objective NP-hard problem which is playing an important role in optimizing cloud utilization and Quality of Service (QoS). In this paper, we develop a comprehensive multi-objective model for optimizing task scheduling to minimize task execution time, task transferring time, and task execution cost. However, the objective functions in this model are in conflict with one another. Considering this fact and the supremacy of Particle Swarm Optimization (PSO) algorithm in speed and accuracy, we design a multi-objective algorithm based on multi-objective PSO (MOPSO) method to provide an optimal solution for the proposed model. To implement and evaluate the proposed model, we extend Jswarm package to multi-objective Jswarm (MO-Jswarm) package. We also extend Cloudsim toolkit applying MO-Jswarm as its task scheduling algorithm. MO-Jswarm in Cloudsim determines the optimal task arrangement among VMs according to MOPSO algorithm. The simulation results show that the proposed method has the ability to find optimal trade-off solutions for multi-objective task scheduling problems that represent the best possible compromises among the conflicting objectives, and significantly increases the QoS.','',2,'Fahimeh RamezaniJie LuFarookh Hussain','springer/bpel security.csv','springer','\0'),(1116,'Data Diodes in Support of Trustworthy Cyber Infrastructure and Net-Centric Cyber Decision Support','2013','0',' Data diodes Trusted process control networks Industrial control systems Cyber decision support systems Net-centric systems','Abstract Data diodes provide protection of critical cyber assets by the means of physically enforcing traffic direction on the network. In order to deploy data diodes effectively, it is imperative to understand the protection they provide, the protection they do not provide, their limitations, and their place in the larger security infrastructure. In this work, we study data diodes, their functionalities and limitations. We then propose two critical infrastructure systems that can benefit from the additional protection offered by data diodes: process control networks and net-centric cyber decision support systems. We review the security requirements of these systems, describe the architectures, and study the trade-offs. Finally, the architectures are evaluated against different attack patterns.','',1,'H. OkhraviF. T. SheldonJ. Haines','springer/service oriented architecture security.csv','springer','\0'),(1117,'CASViD: Application Level Monitoring for SLA Violation Detection in Clouds','2012','8','Application Monitoring;Cloud Resource Provisioning;SLA Management;Service Level Agreement','Cloud resources and services are offered based on Service Level Agreements (SLAs) that state usage terms and penalties in case of violations. Although, there is a large body of work in the area of SLA provisioning and monitoring at infrastructure and platform layers, SLAs are usually assumed to be guaranteed at the application layer. However, application monitoring is a challenging task due to monitored metrics of the platform or infrastructure layer that cannot be easily mapped to the required metrics at the application layer. Sophisticated SLA monitoring among those layers to avoid costly SLA penalties and maximize the provider profit is still an open research challenge. This paper proposes an application monitoring architecture named CASViD, which stands for Cloud Application SLA Violation Detection architecture. CASViD architecture monitors and detects SLA violations at the application layer, and includes tools for resource allocation, scheduling, and deployment. Different from most of the existing monitoring architectures, CASViD focuses on application level monitoring, which is relevant when multiple customers share the same resources in a Cloud environment. We evaluate our architecture in a real Cloud testbed using applications that exhibit heterogeneous behaviors in order to investigate the effective measurement intervals for efficient monitoring of different application types. The achieved results show that our architecture, with low intrusion level, is able to monitor, detect SLA violations, and suggest effective measurement intervals for various workloads.','2012 IEEE 36th Annual Computer Software and Applications Conference',1,'V. C. Emeakaroha; T. C. Ferreto; M. A. S. Netto; I. Brandic; C. A. F. De Rose','ieee/service oriented architecture security.csv','ieee','\0'),(1118,'Defining the relationships between IT service management and IT service governance','2016','0',' IT service Service governance Service management Process','Abstract IT service provider organizations need both IT service management (ITSM) and IT service governance (ITSG) to ensure successful service provision for their customers. However, current service science literature has not adequately addressed how these activities differ from each other. Focusing solely on IT service management and ignoring service governance aspects may cause difficulties in measuring the performance of service management, defining and deploying the roles and responsibilities of service management, allocating the resources for right service improvements and adopting the service-oriented process culture. The research problem of this study is: How does IT service management differ from IT service governance? The main contribution of the study is a framework for IT service governance and a roadmap of IT service management frameworks and standards that can be utilized in establishing IT service governance activities. The theory-based framework is validated in an IT service change management case study with five Finnish IT service provider organizations. The results of this study may be used by top management, service directors and the IT service managers of IT service companies to better identify different aspects of IT service management and IT service governance.','Information Technology and Management',1,'Marko JänttiVirpi Hotti','springer/soa security.csv','springer',''),(1119,'Disassembling digital identity-related privacy into a set of services: Soaml-based services design','2012','','Digital identity; privacy requirements; services design; SOA; SoaML','Privacy could play a key role for digital identity protection and security, which are becoming major needs for individuals, organizations and societies. Digital identity management functionalities are increasingly delivered as sets of services, rather than monolithic applications. So, an identity layer in which identity and privacy management are interoperable could be more realistic and an acceptable situation in the context of distributed environments. Such interoperability could be offered through the design of a set of loosely coupled, publicly hosted and available to on-demand calls services and the implementation on open standards basis. The aim of the article is to disassemble digital identity-related privacy requirements that are drawn from global, domestic and business-specific privacy policies into a set of eight ready-to-use, granular and loosely coupled services that could accommodate a service-oriented architecture (SOA). OMG SoaML service architecture, service contract architecture, message type, service contract choreography, composite application components, and provisioning diagrams are provided. © 2012 Springer-Verlag GmbH Berlin Heidelberg.','',1,'Ben Ayed G., Ghernaouti-Hélie S.','scopus/service oriented architecture security.csv','scopus','\0'),(1120,'The Role of Quality Attributes in Service-Based Systems Architecting: A Survey','2013','1',' quality attributes service-based systems survey architecting','Abstract Quality attributes (QA) play a fundamental role when architecting software systems. However, in contrast to QA in traditional software systems, the role of QA when architecting service-based systems (SBS) has not yet been studied in depth. Thus, we conducted a descriptive survey to explore how QA are treated during the architecting of SBS. Data were collected using an online questionnaire targeted at participants with architecting experience. Our survey shows that QA and functional requirements of SBS are mostly considered equally important. Also, QA are usually treated explicitly rather than implicitly. Furthermore, dependability and performance appear to be the most important QA in the context of SBS. Our results partially show that general findings on QA also apply to the domain of SBS. On the other hand, we did not find a confirmation that QA are primary drivers for the architecting of SBS, or that certain application domains would focus on particular QA.','',1,'David AmellerMatthias GalsterParis AvgeriouXavier Franch','springer/service oriented architecture security.csv','springer','\0'),(1121,'Traffic Pattern Analysis for Distributed Anomaly Detection','2012','0',' Service Oriented Architecture Security Anomaly Detection','Abstract Network anomalies refer to situations when observed network traffic deviate from normal network behaviour. In this paper, we propose a general framework which assumes the use of many different attack detection methods and show a way to integrate their results. We checked our approach by the use of network topology analysis methods applied to communication graphs. Based on this evaluation, we have proposed a measure called the AttackScore, which assesses the risk of an on-going attack and distinguishes between the effectiveness of the analytic measures used to detect it.','',1,'Grzegorz KolaczekKrzysztof Juszczyszyn','springer/service oriented architecture security.csv','springer','\0'),(1122,'Obstruction-free authorization enforcement: Aligning security and business objectives','2014','4','Authorizations; binding of duty; deadlock; obstruction; release; separation of duty; workflows','Access control is fundamental in protecting information systems but it can also pose an obstacle to achieving business objectives. We analyze this tradeoff and its avoidance in the context of systems modeled as workflows restricted by authorization constraints, including those specifying Separation of Duty (SoD) and Binding of Duty (BoD). To begin with, we present a novel approach to scoping authorization constraints within workflows with loops and conditional execution. We formalize workflows, authorization constraints, and their enforcement using the process algebra CSP and visualize our constraints by extending the workflow modeling language BPMN. Afterwards, we consider enforcement\'s effects on business objectives. We identify the notion of obstruction, which generalizes deadlock within a system where access control is enforced, and we formulate the existence of an obstruction-free enforcement mechanism as a decision problem. We present complexity bounds for this problem and give an approximation algorithm that performs well when authorizations are evenly distributed among users. We provide tool support for our constraints in an extension of the modeling platform Oryx and report on the performance of our algorithms\' implementation. © 2014 IOS Press and the authors. All rights reserved.','',2,'Basin D., Burri S.J., Karjoth G.','scopus/bpmn security.csv','scopus',''),(1123,'Trust management for service composition in SOA-based IoT systems','2014','0','Internet of things;SOA;Trust management;performance analysis;service composition;social networks','An Internet of Things (IoT) system connects a large amount of tags, sensors, and smart devices often with mobility to facilitate information sharing, enabling a variety of attractive applications. On the one hand, the service oriented architecture (SOA) can provide connectivity and interoperability among heterogeneous IoT devices in the physical network. On the other hand, IoT devices are virtually connected via social networks. In this paper, we analyze the notion of adaptive trust management to support reliable service composition applications in SOA-based IoT systems. Each device records user satisfaction experiences toward devices with which it has interacted, and collects trust feedbacks from other devices sharing social interests. We consider friendship, social contact, and community of interest social relationships to select trust feedbacks. Further we develop a novel adaptive filtering technique to determine the best way to combine direct trust and indirect trust feedbacks dynamically to minimize both convergence time and trust bias. We demonstrate the effectiveness of the proposed trust management through a service composition application in SOA-based IoT systems.','2014 IEEE Wireless Communications and Networking Conference (WCNC)',1,'I. R. Chen; J. Guo; F. Bao','ieee/service oriented architecture security.csv','ieee','\0'),(1124,'Quality of Service Ontology Languages for Web Services Discovery: An Overview and Limitations','2013','1',' Web Services Semantic Web Semantic Web Services QoS Ontology','Abstract Web services discovery, ranking and selection based on QoS parameters is remained a hot topic for research since the start of the semantic web. Quality of service (QoS) plays an important role to resolve the issue of best service among the functional similar services. Semantic web relies on the ontologies for providing metadata schema and the vocabulary of concepts used in semantic annotation; resulting improved accuracy of web search. This is why; the success of semantic web depends on the proliferation of ontologies. Depending on the nature of the application, different companies may use different ontology languages and QoS models for web services selection which lead to the issue of heterogeneity. In this paper we have presented ontology evaluation criteria that if satisfied, can solve the problem of heterogeneity and interoperability. Moreover, ontology developers may also use these criteria to evaluate their developed ontology for the refinements. We have evaluated different ontologies in-order to know their strengths and limitations along with the new research directions.','',1,'Furkh ZeshanRadziah MohamadMohammad Nazir Ahmad','springer/service oriented architecture security.csv','springer','\0'),(1125,'Analysis of Revenue Improvements with Runtime Adaptation of Service Composition Based on Conditional Request Retries','2012','0',' Service Oriented Architecture Optimal Retry Policies Watchdog Timer Hazard Rate','Abstract In this paper we consider the runtime service adaptation mechanism for service compositions that is based on conditional retries. A single retry may be issued while a concrete service within composition is executed. This retry could either invoke the same concrete service or a functionally equivalent service implementing the same task. We determine the optimal moments to terminate the current request and replicate it. The calculation of these moments for each task within the workflow is based on different QoS parameters from Service Level Agreements, like services’ response–time distributions and cost–relating parameters. The calculations are performed taking into account the remaining actual time–to–deadline, and the benefit of conditional retry mechanism is illustrated by simulations. We further discuss the impact of costs and response–time distributions’ parameters to the solution at hand.','',1,'Miroslav ŽivkovićHans van den Berg','springer/service oriented architecture security.csv','springer','\0'),(1126,'Special issue on emerging technologies for the management of diabetes mellitus','2015','0','','','Medical & Biological Engineering & Computing',1,'Konstantia ZarkogianniKonstantina S. Nikita','springer/service oriented architecture security.csv','springer',''),(1127,'Architecting acceß control for busineß proceßes in the cloud','2014','','','Enterprise architecture (EA) aims to provide management with appropriate indicators and controls to steer and model service-oriented enterprises. Nevertheleß, common enterprises architecture frameworks lack of acceß control mechanisms supporting security requirements within organizations. Moreover, the rapid permeation of information technology motivates new computing paradigms such as cloud computing. In this paper, we propose an approach for modeling acceß control requirements in enterprise architecture, and supporting its provisioning in Cloud providers. The idea is to leverage EA paradigms to ensure busineß-IT alignment when modeling acceß control, and deploying acceß control mechanisms in the Cloud. Our approach is illustrated through the handling of an e-Government scenario, in which EA modeling and appropriate Cloud resources provisioning are motivated. © 2014 IEEE.','',1,'Gaaloul K., Yangui S., Tata S., Proper H.A.','scopus/service oriented architecture security.csv','scopus','\0'),(1128,'SaaS-based enterprise application integration approach and case study','2016','0',' Cloud computing SaaS SOA Enterprise application integration (EAI)','Abstract Software-as-a-Service (SaaS) has been well studied, and it is being adopted at a very fast pace. Enterprise application integration (EAI) is the key factor in many enterprises. Traditionally, SOA technique can be applied to EAI, especially the application of Web Service. In this paper, we propose that SaaS can also be applied to the field of EAI. Based on this, we propose the SaaS-based EAI approach which rebuilds one analog of legacy applications into SaaS architecture makes the rest applications be configured, and further solves the EAI problem. Besides, we also update the traditional SaaS maturity model, discuss relationships between SOA and SaaS in EAI, and explain how to further integrate SaaS applications by SOA. We implement an Eclipse plug-in which can introduce SaaS capabilities into traditional Web application automatically. Finally, the proposed approach is proved to be effective through a case study.','The Journal of Supercomputing',1,'BeiLie WangHui LiuJie Song','springer/soa security.csv','springer',''),(1129,'FISA 2015 Track Report: Future Internet Services and Applications','2015','0','','The \"Future Internet Services and Applications\" (FISA) track focuses on three complementary aspects that have to be considered while setting up future Internet services: (i) their modelling, provisioning and management, (ii) data protection, and (iii) data collection, storage and analysis. FISA is in its first edition and results from the fusion of the PASCS (Privacy and Accountability for Software and Cloud Services) and PROMASC (Provisioning and Management of Service Oriented Architecture and Cloud Computing) tracks from the previous WETICE editions. This report briefly presents the main topics of FISA and presents the accepted papers.','2015 IEEE 24th International Conference on Enabling Technologies: Infrastructure for Collaborative Enterprises',1,'H. H. Kacem; A. S. d. Oliveira; M. Sellami; S. Lefebvre','ieee/service oriented architecture security.csv','ieee',''),(1130,'Towards Collaborative Data Management in the VPH-Share Project','2012','0',' virtual physiological human healthcare infrastructure','Abstract The goal of the Virtual Physiological Human Initiative is to provide a systematic framework for understanding physiological processes in the human body in terms of anatomical structure and biophysical mechanisms across multiple length and time scales. In the long term it will transform the delivery of European healthcare into a more personalised, predictive, and integrative process, with significant impact on healthcare and on disease prevention. This paper outlines how the recently funded project VPH-Share contributes to this vision. The project is motivated by the needs of the whole VPH community to harness ICT technology to improve health services for the individual. VPH-Share will provide the organisational fabric (the infostructure), realised as a series of services, offered in an integrated framework, to expose and to manage data, information and tools, to enable the composition and operation of new VPH workflows and to facilitate collaborations between the members of the VPH community.','',1,'Siegfried BenknerJesus BisbalGerhard EngelbrechtRod D. HoseYuriy KaniovskyiMartin KoehlerCarlos PedrinaciSteven Wood','springer/service oriented architecture security.csv','springer','\0'),(1131,'Automatic Code Generation for the Orchestration of Web Services with Reo','2012','6','','Abstract We present a compositional construction of Web Services, using Reo and Constraint Automata as the main “glue” ingredients. Reo is a graphical and exogenous coordination language based on channels. We propose a framework that, taking as input the behavioral description of services (as Constraint Automata), their WSDL interfaces, and the description of their interaction in Reo, generates all the necessary Java code to orchestrate the services in practice. For each Web Service, we automatically generate a proxy that manages the communication between this service and the Reo circuit. Although we focus on Web Services, we can compose different kinds of service-oriented and component technologies at the same time (e.g., CORBA, RPC, WCF), by generating different proxies and connecting them to the same coordinator.','',2,'Sung-Shik T. Q. JongmansFrancesco SantiniMahdi SargolzaeiFarhad ArbabHamideh Afsarmanesh','springer/bpel security.csv','springer','\0'),(1132,'Editorial for special section of grid computing journal on “Cloud Computing and Services Science”','2015','0','','','Cluster Computing',1,'Marten J. van SinderenIvan I. Ivanov','springer/service oriented architecture security.csv','springer',''),(1133,'On semantic annotation of decision models','2013','0',' Service science Model management Structured modeling Semantic annotation Ontologies','Abstract The growth of service sector in recent years has led to renewed research interests in the design and management of service systems. Decision support systems (DSS) play an important role in supporting this endeavor, through management of organizational resources such as models and data, thus forming the “back stage” of service systems. In this article, we identify the requirements for semantically annotating decision models and propose a model representation scheme, termed Semantically Annotated Structure Modeling Markup Language (SA-SMML) that extends Structure Modeling Markup Language (SMML) by incorporating mechanisms for linking semantic models such as ontologies that represent problem domain knowledge concepts. This model representation format is also amenable to a scalable Service-Oriented Architecture (SOA) for managing models in distributed environments. The proposed model representation technique leverages recent advances in the areas of semantic web, and semantic web services. Along with design considerations, we demonstrate the utility of this representation format with an illustrative usage scenarios with a particular emphasis on model discovery and composition in a distributed environment.','Information Systems and e-Business Management',1,'Amit V. DeokarOmar F. El-Gayar','springer/service oriented architecture security.csv','springer','\0'),(1134,'Using Policies for Handling Complexity of Event-Driven Architectures','2014','0','','Abstract Cyber-physical systems and the Internet of Things illustrate the proliferation of sensors. The full potential of ubiquitous sensors can only be realized, if sensors and traditional data sources are integrated into one system. This leads to large, complex systems which are harder to use and manage, and where maintaining desired behavior is increasingly difficult. We suggest a novel approach to handle the complexity of these systems: users focus on the desired behavior of the system and use a declarative policy language (DPL) to state these behaviors. An enhanced message-oriented middleware processes the policies and automatically generates components which execute the policies. We compared our approach against other approaches in a case study and found that it does indeed simplify the use of cyber-physical systems.','',1,'Tobias FreudenreichStefan AppelSebastian FrischbierAlejandro P. Buchmann','springer/service oriented architecture security.csv','springer','\0'),(1135,'Platform-level support for authorization in cloud services with OAuth 2','2014','1','Authorization; Cloud; OAuth 2; Platform as a Service; Security','The OAuth 2 web authorization framework allows services to act on behalf of users when interacting with other services. It avoids sharing username and passwords across services, thus, in principle protecting users from several threats. However, it is known that the implementation of this kind of authorization protocol is tricky, and potentially leads to vulnerable web services. In this paper we present a toolkit for Java-based Cloud platforms which facilitates the deployment of the OAuth 2 authorization framework into existing web services. We developed a set of interceptors, using aspect-oriented programming techniques for SOA, to handle the main OAuth flow. Secondly, we created an Eclipse plug-in to integrate OAuth into cloud services with minimum effort. © 2014 IEEE.','',1,'Sendor J., Lehmann Y., Serme G., De Oliveira A.S.','scopus/soa security.csv','scopus','\0'),(1136,'DSOL: a declarative approach to self-adaptive service orchestrations','2012','4',' Service oriented programming Web service composition Declarative language Self adaptation Fault tolerance Mathematics Subject Classification 68N15 68M15','Abstract Service oriented computing (SOC) has brought a simplification in the way distributed applications can be built. Mainstream approaches, however, failed to support dynamic, self-managed compositions that would empower even non-technical users to build their own orchestrations. Indeed, because of the changeable world in which they are embedded, service compositions must be able to adapt to changes that may happen at run-time. Unfortunately, mainstream SOC languages, like BPEL and BPMN, make it quite hard to develop such kind of self-adapting orchestrations. We claim that this is mostly due to the imperative programming paradigm they are based on. To overcome this limitation we propose a radically different, strongly declarative approach to model service orchestration, which is easier to use and results in more flexible and self-adapting orchestrations. An ad-hoc engine, leveraging well-known planning techniques, interprets such models to support dynamic service orchestration at run-time.','Computing',2,'Gianpaolo CugolaCarlo GhezziLeandro Sales Pinto','springer/bpel security.csv','springer','\0'),(1137,'Notice of Violation of IEEE Publication Principles
Services Selection of Transactional Property for Web Service Composition','2012','0','Service Composition;Web service selection;transactional property','Notice of Violation of IEEE Publication Principles

\"Services Selection of Transactional Property for Web Service Composition\"
by Guojun Zhang
in the Proceedings of the Eighth International Conference on Computational Intelligence and Security, November 2012, pp. 605-608

After careful and considered review of the content and authorship of this paper by a duly constituted expert committee, this paper has been found to be in violation of IEEE\'s Publication Principles.

This paper has copied significant portions of the original text from the paper cited below. The original text was copied without attribution (including appropriate references to the original author(s) and/or paper title) and without permission.

\"TQoS: Transactional and QoS-Aware Selection Algorithm for Automatic Web Service Composition\"
by Joyce El Haddad, Maude Manouvrier, and Marta Rukoz
in the IEEE Transactions on Services Computing, Vol 3, No. 1, March 2010, pp. 73-85

Web service composition enables seamless and dynamic integration of business applications on the web. Due to the inherent autonomy and heterogeneity of component Web services it is difficult to predict the behavior of the overall composite service. Therefore, transactional properties are crucial for selecting the web services to take part in the composition. Transactional properties ensure reliability of composite Web service. In this paper we propose a novel selection approach based on transactional properties of ensuring reliability. We build a model to implement transactional-aware service selection, and use the model composite Web service to guarantee reliable execution. We evaluate our approach experimentally using both real and synthetically generated datasets.','Computational Intelligence and Security (CIS), 2012 Eighth International Conference on',1,'G. Zhang','ieee/service oriented architecture security.csv','ieee','\0'),(1138,'SPADE: Support for Provenance Auditing in Distributed Environments','2012','1','','Abstract SPADE is an open source software infrastructure for data provenance collection and management. The underlying data model used throughout the system is graph-based, consisting of vertices and directed edges that are modeled after the node and relationship types described in the Open Provenance Model. The system has been designed to decouple the collection, storage, and querying of provenance metadata. At its core is a novel provenance kernel that mediates between the producers and consumers of provenance information, and handles the persistent storage of records. It operates as a service, peering with remote instances to enable distributed provenance queries. The provenance kernel on each host handles the buffering, filtering, and multiplexing of incoming metadata from multiple sources, including the operating system, applications, and manual curation. Provenance elements can be located locally with queries that use wildcard, fuzzy, proximity, range, and Boolean operators. Ancestor and descendant queries are transparently propagated across hosts until a terminating expression is satisfied, while distributed path queries are accelerated with provenance sketches.','',1,'Ashish GehaniDawood Tariq','springer/service oriented architecture security.csv','springer','\0'),(1139,'Toward federated mission networking in the tactical domain','2015','','','NATO is currently working on the Federated Mission Networking (FMN) concept, which will become the foundation for establishing mission networks in the future. The realization of the FMN concept is described in the NATO FMN Implementation Plan (NFIP). The information infrastructure outlined in NFIP today builds on the concept of service-oriented architecture in order to achieve interoperability, and bases itself on many of the same standards and specifications as the ones identified through NATO Network Enabled Capabilities (NNEC). The NNEC SOA Baseline [1] identifies a number of core enterprise services that represent the common functionality needed to build an interoperable service-oriented infrastructure in a federation. It further identifies which standards should be used to realize these core services while ensuring interoperability between the federation members. A subset of these capabilities includes messaging services, collaboration services, service discovery, and security services. This article looks into each of these foundational core services, presents the challenges related to extending support for these services into the tactical domain, and identifies potential solutions. © 2015 IEEE.','',1,'Brannsten M.R., Johnsen F.T., Bloebaum T.H., Lund K.','scopus/service oriented architecture security.csv','scopus',''),(1140,'An immersive view approach by secure interactive multimedia proof-of-concept implementation','2015','0',' Virtual window Immersive view Multimedia security Ambient assisted living','Abstract Live media streaming is a field that recently has had a great impact in the scientific community, especially in the case of interactive media streaming. In this paper we propose a reference architecture conceptualizing an immersive view effect by considering heterogeneous tracking devices and enriched movement control over heterogeneous stream image sources. A proof-of-concept prototype implementation of the reference architecture is presented, called Live Interactive FramE (LIFE), illustrating the potential and value of the immersive view concept. Our work is part of the DESEOS research project that aims at applying an Ambient Assisted Living paradigm to a targeted scenario of hospitalised children. The main goal of LIFE is reducing stress and isolation during hospitalisation by enabling an immersive view of school activities via live media streaming. Functional and security aspects of LIFE are presented along with details of implementation and performance evaluation. Conclusions of experiments show that LIFE enables practical secure media streaming solution with optimal video quality settings.','Multimedia Tools and Applications',1,'Pablo AntónAntonio MañaAntonio MuñozHristo Koshutanski','springer/soa security.csv','springer',''),(1141,'Geospatial information security web service based on agent','2010','1','Geospatial information security; Mobile agent; WebService','With the development of remote sensing technology, the use of remote sensing images collected by space platforms is becoming more and more pervasive. There is more and more need to distribute processing of remote sensing images. At present, WebService can figure out non-security remote sensing images network processing, but due to network transmit without non-encryption at client side, which may lead to image information leakage. To settle this problem, we propose a geospatial information security Web service based on mobile agent and WebService. This method can guarantee security image security network processing, which is useful complent of WebService. © 2010 IEEE.','',1,'Sun J., Liu J., Xu Z., Wu Z.','scopus/webservice security.csv','scopus','\0'),(1142,'Formal Verification of the xDAuth Protocol','2016','','Cross domain access control framework;SMT;Z3;formal methods;high-level Petri nets (HLPN);information security;modeling;service oriented architecture (SOA);verification;xDAuth protocol','Service Oriented Architecture (SOA) offers a flexible paradigm for information flow among collaborating organizations. As information moves out of an organization boundary, various security concerns may arise, such as confidentiality, integrity, and authenticity that needs to be addressed. Moreover, verifying the correctness of the communication protocol is also an important factor. This paper focuses on the formal verification of the xDAuth protocol, which is one of the prominent protocols for identity management in cross domain scenarios. We have modeled the information flow of xDAuth protocol using High Level Petri Nets (HLPN) to understand protocol information flow in a distributed environment. We analyze the rules of information flow using Z language while Z3 SMT solver is used for verification of the model. Our formal analysis and verification results reveal the fact that the protocol fulfills its intended purpose and provides the security for the defined protocol specific properties, e.g. secure secret key authentication, Chinese wall security policy and secrecy specific properties, e.g. confidentiality, integrity, authenticity.','IEEE Transactions on Information Forensics and Security',1,'Q. Alam; S. Tabbasum; S. Malik; M. Alam; T. Tanveer; A. Akhunzada; S. Khan; A. Vasilakos; R. Buyya','ieee/service oriented architecture security.csv','ieee',''),(1143,'Effective Management of High Rate Spatio-Temporal Queries in Wireless Sensor Networks','2014','0',' Wireless sensor networks Spatio-temporal queries Optimization Topological relationships Minimum bounding rectangle In-network','Abstract Handling high rate queries have always posed a challenge in wireless sensor networks (WSNs) owing to their resource constrained nature. This paper proposes a scheme that performs centralized and distributed optimization to improve the scalability of the high rate spatio-temporal queries in WSNs. Queries are optimized centrally based on multiple criteria such as spatial topological relationships, temporal and attribute correlations. An energy efficient load balanced clustered tree routing based on minimum bounding rectangle spatial indexing scheme is employed to aid the in-network optimization of queries. Two algorithms have been proposed to carry out a centralized and distributed optimization that works adaptively on queries switching between optimal and sub-optimal modes to handle multiple concurrent queries reliably. Simulation results show that the proposed scheme is highly scalable for large scale spatio-temporal queries and also has the added advantage of minimizing the energy consumption due to query and data transmission.','Wireless Personal Communications',1,'V. S. Felix EnigoV. Ramachandran','springer/service oriented architecture security.csv','springer','\0'),(1144,'An Environment for Service Composition, Execution and Resource Allocation','2013','0',' Service Oriented Architecture service composition service request distribution service security','Abstract In recent years the evolution of software architectures led to the rising prominence of the Service Oriented Architecture (SOA) concept. The services can be deployed in distributed environments and executed on different hardware and software platforms. In the paper a configurable and flexible environment, allowing composition, deployment and execution of composite services, which can be applied in the wide range of SOA-based systems is presented. It supports service semantic description, composition and the distribution of service requests guaranteeing services quality, especially efficient allocating communication and computational resources to services. We present an unified approach, which assumes the semantic description of Web service functionalities with an XML-based language - Smart Service Description Language which provides similar features to that of OWL-S or WSDL, however, it was designed to support services execution and monitoring. These unique features allow to design a service execution engine, compatible with the underlying execution environment and providing support for service QoS guarantees.','',2,'Jan KwiatkowskiKrzysztof JuszczyszynGrzegorz Kolaczek','springer/bpel security.csv','springer','\0'),(1145,'The Ensemble Development Life Cycle and Best Practices for Collective Autonomic Systems','2015','0',' software development life cycle patterns ensembles awareness adaptation autonomic systems','Abstract Collective autonomic systems are adaptive, open-ended, highly parallel, interactive and distributed software systems. Their key features are so-called self-* properties, such as self-awareness, self-adaptation, self-expression, self-healing and self-management. We propose a software development life cycle that helps developers to engineer adaptive behavior and to address the issues posed by the diversity of self-* properties. The life cycle is characterized by three feedback loops, i.e. based on verification at design time, based on monitoring and awareness in the runtime, and the feedback provided by runtime data to the design phases. We illustrate how the life cycle can be instantiated using specific languages, methods and tools developed within the ASCENS project. In addition, a pattern catalog for the development of collective autonomic systems is presented to ease the engineering process.','',2,'Matthias HölzlNora KochMariachiara PuvianiMartin WirsingFranco Zambonelli','springer/bpmn security.csv','springer',''),(1146,'Priority-Oriented Architecture Service Management on OSGi Home-service Platform','2013','0',' Smart home OSGi QoS Management system','Abstract Open Service Gateway initiative (OSGi) platforms integrate a variety of reusable applications and resources, packing them into bundles. These deployed services, which are offered by service providers, can expediently manage home appliances. However, in the user’s daily life, various services or bundles access to other services directly or indirectly, creating a situation that is likely to generate problems involving non-supportable applications or insufficient hardware resources. OSGi platforms are no way to deal with these situations. Although much research has proposed methods to resolve specific issues, almost all of these methods are incomplete or are unsuitable for the limited resources in households. This paper addresses the wide range of such common home-network applications as those involving health care, home automation, and home security; and both our proposed priority-based principles of a management decision-making mechanism and our framework architecture help ensure the quality of service and or emergency responses.','Wireless Personal Communications',1,'Sheng-Tzong ChengChih-Lun ChouGwo-Jiun Horng','springer/service oriented architecture security.csv','springer','\0'),(1147,'User-guided discovery of declarative process models','2011','35','','Process mining techniques can be used to effectively discover process models from logs with example behaviour. Cross-correlating a discovered model with information in the log can be used to improve the underlying process. However, existing process discovery techniques have two important drawbacks. The produced models tend to be large and complex, especially in flexible environments where process executions involve multiple alternatives. This overload of information is caused by the fact that traditional discovery techniques construct procedural models explicitly showing all possible behaviours. Moreover, existing techniques offer limited possibilities to guide the mining process towards specific properties of interest. These problems can be solved by discovering declarative models. Using a declarative model, the discovered process behaviour is described as a (compact) set of rules. Moreover, the discovery of such models can easily be guided in terms of rule templates. This paper uses DECLARE, a declarative language that provides more flexibility than conventional procedural notations such as BPMN, Petri nets, UML ADs, EPCs and BPEL. We present an approach to automatically discover DECLARE models. This has been implemented in the process mining tool ProM. Our approach and toolset have been applied to a case study provided by the company Thales in the domain of maritime safety and security. © 2011 IEEE.','',2,'Maggi F.M., Mooij A.J., Van Der Aalst W.M.P.','scopus/bpmn security.csv','scopus',''),(1148,'Smart Work Industry Best Practices for Business and IT','2012','0','','Abstract Enterprises must respond faster to changing customer expectations and business demands. The major observation is today that we cannot just work harder, and that we cannot just dedicate more resources; thus we must work smarter. Therefore the major question to be answered is: How do businesses evolve to adapt and respond dynamically? We will explain by industry examples how today’s technology approaches enable smarter solutions. These solutions are better adapted to business needs, and they are faster implemented.','',1,'Hans-Peter HoidnPeter Utzinger','springer/service oriented architecture security.csv','springer','\0'),(1149,'A Trial User, Resources and Services Quality Evaluation for Grid Communities Sustainability','2015','0','','Abstract We discuss here the possibility of utilizing the innovative features of GriF (a Grid Framework allowing the guided management, monitoring and results recollection of computational simulations under the form of advanced Grid Services) to the end of empowering the Chemistry, Molecular and Materials Sciences and Technologies communities with a set of quality evaluation functions. For this purpose, the enhanced options offered by GriF in terms of Quality Evaluation have been tested on the trial Virtual Research Environment of the COMPCHEM Virtual Organization for ranking resources, users and services. The results obtained are analysed with the purpose of addressing the Sustainability problems of Virtual Research Communities.','',1,'Carlo ManualiAntonio Laganà','springer/service oriented architecture security.csv','springer',''),(1150,'Based on the agency web service security architecture','2012','','Agent; Service oriented architecture; Web services','Pick the paper describes the service oriented architecture of background, and analyzes the Web services based on service oriented architectures of the application system of safety defects existing. Combined with agent technology and Web service technology, puts forward the respective advantage based on the agency Web service security architecture, and designs the client and the server proxy security processing module, expounds how to handle each module, to realize a SOAP message level security function, news and improve the performance of the system processing news. © The Authors.','',1,'Zhang D., Li X., Zhang S.','scopus/service oriented architecture security.csv','scopus','\0'),(1151,'Levi – A Workflow Engine Using BPMN 2.0','2013','1',' Business process business process management engines business process modeling BPMN 2.0 business process execution workflow engine business-IT gap','Abstract Increasing benefits of business process automation and information technology (IT) based governance encourage organizations to model and manage their day to day business activities using business process management systems, in order to achieve increased efficiency and productivity. Many business process languages, such as Business Process Execution Language (BPEL), use a programming oriented view in process modeling as opposed to human oriented view. Recent standardization of Business Process Model and Notation version 2.0 (BPMN 2.0) provides a way to support inter-operation of business processes at user level, rather than at the software engine level. Wide adoption of the BPMN 2.0 standard is limited by the lack of runtimes natively supporting BPMN 2.0. In this paper we discuss about Levi, a cloud-ready BPMN 2.0 execution engine built using the core concurrent runtime of Apache based open source process engine ODE (Orchestration Director Engine), which executes BPMN 2.0 processes natively.','',2,'Keheliya GallabaUmashanthi PavalanathanIshan JayawardenaEranda SooriyabandaraVishaka Nanayakkara','springer/bpel security.csv','springer','\0'),(1152,'Proposal and development of the Web services input validation model','2012','1','SOA;Web service;input validation;security','The SOA architecture primarily based on Web services is experiencing a steady adoption, although its growth was lower than expected when it was launched, mainly because of security related concerns. Web services inherited many well-known security problems of Web applications and brought new ones. Major data breaches today are consequences of bad input validation at the application level. This paper presents a way to implement an input validation model for Web services which can be used to prevent cross-site scripting and SQL injection through the use of predefined models which specify valid inputs. The proposed WSIVM (Web Services Input Validation Model) consists of an XML schema, an XML specification, and a module for performing input validation according to the schema. A case study showing the effectiveness and performance of this mechanism is also presented.','2012 IEEE Network Operations and Management Symposium',1,'R. B. Brinhosa; C. M. Westphall; C. B. Westphall','ieee/service oriented architecture security.csv','ieee','\0'),(1153,'Rule-Based Security Capabilities Matching for Web Services','2013','2',' Web service Semantic security Subsumption reasoning Security ontology','Abstract A primary problem for security aware Web service discovery is how to discover security capabilities of Web services and how these security capabilities can be matched with security requirements of various requesters. Presently, most approaches are based on syntactic matching, which is prone to result in false negative because of lacking of semantics. In this paper, we propose a rule-based approach to decide whether security capabilities match security requirements. Based on a semantic model of security policy, security capabilities are inferred from security policy of Web services. General Web service security ontology is proposed to semantically model security requirements of various service requesters. The architecture of rule-based matching engine is also presented to describe the whole matching process. The prototype system and case study show that the proposed approach is flexible and feasible.','Wireless Personal Communications',1,'Bo YuLin YangYongjun WangBofeng ZhangYuan CaoLinru MaXiangyang Luo','springer/service oriented architecture security.csv','springer','\0'),(1154,'Towards the derivation of secure business process designs','2015','','BPMN; Business process modelling; Business process security; Goal-to-process transformation; Process derivation; Secure tropos','Security is a critical aspect of business processes that organisations utilise to achieve their goals. Current works on secure business process design mainly focus on annotating existing process models with security related concepts. Meanwhile, little attention is given to the rationale and the alignment of such security choices to high-level organisational security goals. To that end, a goal-to-process transformation approach, with a clear security orientation, is introduced, as part of a wider framework. This transformation process, presented through an illustrative example, uses Secure Tropos goal models as an input to create intermediate, security-annotated process skeletons. These can be then refined, through a series of manual tasks, to create secure BPMN process models. © Springer International Publishing Switzerland 2015.','',2,'Argyropoulos N., Mouratidis H., Fish A.','scopus/bpmn security.csv','scopus','\0'),(1155,'Designing Cooperative Social Applications in Healthcare by Means of SocialBPM','2014','0',' Web 2.0 Social technologies BPMN Social BPM Health social networks','Abstract The appearance of the so-called first-generation of social tools such as blogs, wikis or CMS made possible for the Web to be used as an interaction arena for healthcare purposes. Currently, this interaction has been improved by means of different social networks such as PatientsLikeMe, HealthVault or Inspire, just to cite a few. The business world, not to be left behind, is rapidly catching up with this change in interpersonal communications, allowing third parties (clients, patients, colleagues, providers, etc) to participate in the process execution by performing social operations such as voting, commenting, ranking, sharing, following, inviting, etc. However, this integration is being done in an ad-hoc manner, not existing understandable notations to include social interactions in Business Process Modelling (BPM). Moreover, the user has to face several social applications to perform simple social tasks, i.e., scheduling a meeting and sharing a diagnostic must be done through different applications. While the former problem affects the design phase, the latter affects the execution phase. In this paper we present a case study in order to illustrate how the use of SocialBPM solves these problems, where SocialBPM denotes to the combination of social technologies and BPM. SocialBPM eases both, the cooperative design of social processes, and their cooperative execution.','',2,'Fernando Sánchez-FigueroaJuan Carlos PreciadoJosé María ConejeroRoberto Rodríguez-Echeverría','springer/bpmn security.csv','springer',''),(1156,'An agent based business aware incident detection system for cloud environments','2012','12',' Cloud security Cloud audit Agents','Abstract Abstract Classic intrusion detection mechanisms are not flexible enough to cope with cloud specific characteristics such as frequent infrastructure changes. This makes them unable to address new cloud specific security issues. In this paper we introduce the cloud incident detection system Security Audit as a Service (SAaaS). It is built upon intelligent autonomous agents, which are aware of underlying business driven intercommunication of cloud services. This enables the presented SAaaS architecture to be flexible and to supported cross customer event monitoring within a cloud infrastructure. A contribution of this paper it to provide a high-level design of the SAaaS architecture, an introduction into the proposed Security Business Flow Language (SBFL), a first prototype of an autonomous agent and an evaluation about, which cloud specific security problems are addressed by the presented architecture. It is shown that autonomous agents and behaviour analysis are fertile approaches to detect cloud specific security problems and can create a cloud audit system.','Journal of Cloud Computing: Advances, Systems and Applications',1,'Frank DoelitzscherChristoph ReichMartin KnahlAlexander PassfallNathan Clarke','springer/webservice security.csv','springer',''),(1157,'A design of web log integration framework using NoSQL','2014','','Big Data; Cloud computing; HBase; NoSQL; Security Log aggregation','Webservice is a software technology as the representative method of information communication currently used to create a dynamic system environment that is configured to fulfill its users\' needs. Therefore, analyzing log data that occurred at provision is being used as the significant basic data in webservice research. Thanks to development of Cloud computing technology, it has resulted in centralized points from which data is generated and data enlargement. A research is now implemented to create information from collecting, processing and converting flood of data and to obtain the new various items of information. Against this backdrop, it is justified that collection, storage and analysis of web log data in the existing conventional RDBMS system may be inadequate to process the enlarged log data. This research propose a framework which to integrate web log for storage using HBase, a repository of the Cloud computing- based NoSQL. In addition, data validation must be completed in the pre-process when collecting web log. The validated log is stored in the modeling structure in which takes features of web log into account. According to the results, introduction of NoSQL system is found to integrate the enlargement of log data in more efficient manner. By comparisons with the existing RDBMS in terms of data processing performance, it was proved that the NoSQL- based database had a superior performance. © 2014 IFIP International Federation for Information Processing.','',1,'Jeong H., Choi J., Choi C., You I., Kim P.','scopus/webservice security.csv','scopus','\0'),(1158,'Pseudo-Location Updating System for privacy-preserving location-based services','2013','1','LBS;k-anonymity;privacy;pseudo-location','With the rapid development of location-aware devices such as smart phones, Location-Based Services (LBSs) are becoming increasingly popular. Users can enjoy convenience by sending queries to LBS servers and obtaining service information that is nearby. However, these queries may leak the users\' locations and interests to the un-trusted LBS servers, leading to serious privacy concerns. In this paper, we propose a Privacy-Preserving Pseudo-Location Updating System (3PLUS) to achieve k-anonymity for mobile users using LBSs. In 3PLUS, without relying on a third party, each user keeps pseudo-locations obtained from both the history locations and the encountered users, and randomly exchanges one of them with others when encounters occur. As a result, each user\'s buffer is disordered. A user can obtain any k locations from the buffer to achieve k-anonymity locally. The security analysis shows the security properties and our evaluation results indicate that the user\'s privacy is significantly improved.','China Communications',1,'B. Niu; X. Zhu; H. Chi; H. Li','ieee/service oriented architecture security.csv','ieee','\0'),(1159,'BackStreamDB: A Distributed System for Backbone Traffic Monitoring Providing Arbitrary Measurements in Real-Time','2012','0','','Abstract Monitoring the traffic of wide area networks consisting of several autonomous systems connected through a high-speed backbone is a challenge due to the huge amount of traffic. Keeping logs for obtaining measurements is unfeasible. This work describes a distributed real-time strategy for backbone traffic monitoring that does not employ logs and allows arbitrary metrics to be collected about the traffic of the backbone as a whole. Traffic is sampled by monitors that are distributed across the backbone and are accessed by a Stream Processing Engine (SPE). Besides the distributed monitoring architecture, we present an implementation (BackStreamDB) that was deployed on a national backbone. Case studies are described that show the system flexibility. Experiments are reported in which we evaluated the amount of traffic that can be handled.','',1,'Christian LyraCarmem S. HaraElias P. Duarte Jr.','springer/service oriented architecture security.csv','springer','\0'),(1160,'An overview of modeling and simulation using content analysis','2015','1',' Modeling and Simulation (M&S) Content analysis Simulation research Association for Computing Machinery (ACM) Mathematics Subject Classification 00B99 JEL Classification C8','Abstract Over the past six decades, Modeling and Simulation (M&S) has been used as a method or tool in many disciplines. While there is no doubt that the emergence of modern M&S is highly connected with that of Computing and Systems science, there is no clear evidence of the contribution of M&S to those disciplines. Further, while there is a growing body of knowledge (BoK) in M&S, there is no easy way to identify it due to the multidisciplinary nature of M&S. In this paper, we examine whether M&S is its own discipline by performing content analysis of a BoK in Computer Science. Content analysis is a research methodology that aims to identify key concepts and relationships in a body of text through computational means. It can be applied to research articles in a BoK to identify the prominent topics and themes. It can also be used to explore the evolution of a BoK over time or to identify the contribution of one BoK to another. The contribution of this paper is twofold; (1) the establishment of M&S as its own discipline and the examination of its relationship with the sister disciplines of Computer Science and Systems Engineering over the last 60 years and (2) the examination of the contribution of M&S to the sciences as represented in the Public Library of Science.','Scientometrics',1,'Saikou Y. DialloRoss J. GoreJose J. PadillaChristopher J. Lynch','springer/soa security.csv','springer',''),(1161,'Weaving Aspects and Business Processes through Model Transformation','2014','1',' aspects business process modeling weaving model transformation','Abstract Concerns such as logging, auditing and accounting need to be addressed already in the business process modeling phase and not only in the process implementation phase. Mostly, such concerns are modeled as part of the normal flow in business process models. However, the crosscutting nature of such concerns leads to complex, scattered, and tangled models that are hard to understand and to manage. The lack of appropriate means to modularize crosscutting concerns in business process modeling languages seriously affects understandability, maintainability and reusability. In a previous work we proposed AO4BPMN 1.0 as an aspect-oriented extension of BPMN that allows the modularization of crosscutting concerns. However, there were several open issues in that proposal. First, it lacks a concrete weaving mechanism for composing business processes and aspects. Second, it lacks a well-defined pointcut language to select join points. Third, it does not support BPMN 2.0, which was still under development at that time. In this paper we tackle these issues and present a weaver for AO4BPMN based on model transformation as well as an OCL-based pointcut language.','',2,'Heiko WitteborgAnis CharfiDaniel Colomer CollellMira Mezini','springer/bpel security.csv','springer',''),(1162,'Hypervisor Event Logs as a Source of Consistent Virtual Machine Evidence for Forensic Cloud Investigations','2013','4','','Abstract Cloud Computing is an emerging model of computing where users can leverage the computing infrastructure as a service stack or commodity. The security and privacy concerns of this infrastructure arising from the large co-location of tenants are, however, significant and pose considerable challenges in its widespread deployment. The current work addresses one aspect of the security problem by facilitating forensic investigations to determine if these virtual tenant spaces were maliciously violated by other tenants. It presents the design, application and limitations of a software prototype called the Virtual Machine (VM) Log Auditor that helps in detecting inconsistencies within the activity timelines for a VM history. A discussion on modeling a consistent approach is also provided.','',1,'Sean ThorpeIndrajit RayTyrone GrandisonAbbie BarbirRobert France','springer/service oriented architecture security.csv','springer','\0'),(1163,'The role of agents in Adaptive Service Oriented Architectures','2012','','','This work analyses the role of agent-based software and organisation theoretical solutions in the development of Adaptive Service Oriented Architectures. This solution aims to support integrated, scalable, and re-usable information delivery systems. This technology is required in applications that operate in complex service delivery environments, such as Electronic Government (eGov) systems, emergency response coordinators, social networks, and mobile services. In these scenarios, the intricacy of service orchestration strategies grows proportionally with the number of operational components, complexity of interactions, and degree of dynamism of the environment. We argue that strategies based on fixed workflows are insufficient to support complex content delivery services. To that end, we propose a solution that encompasses an organisation-based system architecture enacted by agent-based software components. It inherently provides the features of contextualisation, adaptiveness, flexible workflow mechanism, and proactiveness based on desirable characteristics of the agent technology. We introduce a conceptual model, detail the technical proposal, and demonstrate how the solution supports the demands of complex content delivery services. © Springer-Verlag Berlin Heidelberg 2012.','',1,'Koch F., Dignum F., Hiel M., Aldewereld H.','scopus/service oriented architecture security.csv','scopus','\0'),(1164,'Model-Based Testing in Cloud Brokerage Scenarios','2014','1',' Model-based Testing Cloud Service Brokerage Cloud Broker Web Service Testing Lifecycle Governance','Abstract In future Cloud ecosystems, brokers will mediate between service providers and consumers, playing an increased role in quality assurance, checking services for functional compliance to agreed standards, among other aspects. To date, most Software-as-a-Service (SaaS) testing has been performed manually, requiring duplicated effort at the development, certification and deployment stages of the service lifecycle. This paper presents a strategy for achieving automated testing for certification and re-certification of SaaS applications, based on the adoption of simple state-based and functional specifications. High-level test suites are generated from specifications, by algorithms that provide the necessary and sufficient coverage. The high-level tests must be grounded for each implementation technology, whether SOAP, REST or rich-client. Two examples of grounding are presented, one into SOAP for a traditional web service and the other into Selenium for a SAP HANA rich-client application. The results demonstrate good test coverage. Further work is required to fully automate the grounding.','',2,'Mariam KiranAndreas FriesenAnthony J. H. SimonsWolfgang K. R. Schwach','springer/bpel security.csv','springer',''),(1165,'Future research directions in design of reliable communication systems','2015','0',' Network reliability Software failures Software-defined networks resiliency Wireless communications reliability Multilayer networks Multilevel and multirealm network resilience Multiple-criteria routing Reliable cloud computing Robust network design','Abstract In this position paper on reliable networks, we discuss new trends in the design of reliable communication systems. We focus on a wide range of research directions including protection against software failures as well as failures of communication systems equipment. In particular, we outline future research trends in software failure mitigation, reliability of wireless communications, robust optimization and network design, multilevel and multirealm network resilience, multiple criteria routing approaches in multilayer networks, resilience options of the fixed IP backbone network in the interplay with the optical layer survivability, reliability of cloud computing networks, and resiliency of software-defined networks. Described research directions are frequently enhanced with examples.','Telecommunication Systems',1,'Jacek RakMario PickavetKishor S. TrivediJavier Alonso LopezArie M. C. A. KosterJames P. G. SterbenzEgemen K. ÇetinkayaTeresa GomesMatthias GunkelKrzysztof WalkowiakDimitri Staessens','springer/service oriented architecture security.csv','springer',''),(1166,'The importance of a standard securit y archit ecture for SOA-based iot middleware','2015','','Authentication; Communication channels; Computer architecture; Service-oriented architecture; Standards','The proliferation of the Internet of Things (IoT) in several application domains requires a well-defined infrastructure of systems that provides services for device abstraction and data management, and also supports the development of applications. Middleware for IoT has been recognized as the system that can provide this necessary infrastructure of services and has become increasingly important for IoT in recent years. The architecture of an IoT middleware is usually based on an SOA (service-oriented architecture) standard and has security requirement as one of its main challenges. The large amount of data that flows in this kind of system demands a security architecture that ensures the protection of the entire system. However, none of the existing SOAbased IoT middleware systems have defined a security standard that can be used as a reference architecture. In this sense, this article discusses the importance of defining a standard security architecture for SOA-based IoT middleware, analyzes concepts and existing work, and makes considerations about a set of security services that can be used to define a security architecture to mitigate the security threats in SOA-based IoT middleware systems. © 1979-2012 IEEE.','',1,'Tiburski R.T., Amaral L.A., Matos E.D., Hessel F.','scopus/service oriented architecture security.csv','scopus',''),(1167,'Spam Filtering Using Automated Classifying Services over a Cloud Computing Infrastructure','2015','0',' Spam analysis Cloud computing Bayesian filtering','Abstract Together with the increase in size of Internet technologies and coped with the need for instant communication between people, unsolicited messages or spam messages represent a serious problem for most system administrators and users. This problem permits the usage of various technologies and techniques in order to solve it and filter volumes of thousands of email messages per day. In this article we present a new solution for spam detection and classification, based on a Cloud supported infrastructure of a service oriented architecture. Our implementation is able to scan and classify a large stream of emails. We also prove that the architecture is scalable across multiple datacenter nodes and it is able to handle a continuous flux of emails, keeping users configuration a top priority.','',1,'Alecsandru PătraşcuIon BicaVictor Valeriu Patriciu','springer/service oriented architecture security.csv','springer',''),(1168,'Towards a Model- and Learning-Based Framework for Security Anomaly Detection','2013','0',' Modelling Profiling Machine Learning IT-Security Runtime-Monitoring Anomaly Detection Clustering','Abstract For critical areas, such as the health-care domain, it is common to formalize workflow, traffic-flow and access control via models. Typically security monitoring is used to firstly determine if the system corresponds to the specifications in these models and secondly to deal with threats, e.g. by detecting intrusions, via monitoring rules. The challenge of security monitoring stems mainly from two aspects. First, information in form of models needs to be integrated in the analysis part, e.g. rule creation, visualization, such that the plethora of monitored events are analyzed and represented in a meaningful manner. Second, new intrusion types are basically invisible to established monitoring techniques such as signature-based methods and supervised learning algorithms. In this paper, we present a pluggable monitoring framework that focuses on the above two issues by linking event information and modelling specification to perform compliance detection and anomaly detection. As input the framework leverages models that define workflows, event information, as well as the underlying network infrastructure. Assuming that new intrusions manifest in anomalous behaviour which cannot be foreseen, we make use of a popular unsupervised machine-learning technique called clustering.','',2,'Matthias GanderBasel KattMichael FeldererRuth Breu','springer/bpel security.csv','springer','\0'),(1169,'3rd Workshop on Smart Surveillance System Applications','2012','0','','','',1,'Iosif Viorel Onut','acm/service oriented architecture security.csv','acm','\0'),(1170,'The Safety-Critical Java memory model formalised','2013','1',' Safety-Critical Java Memory safety Semantics Unifying theories of programming Integration Refinement','Abstract Safety-Critical Java (SCJ) is a version of Java for real-time programming, restricted to facilitate certification of implementations of safety-critical systems. Its development is the result of an international effort involving experts from industry and academia. What we provide here is, as far as we know, the first formalisation of the SCJ model of memory regions. We use Hoare and He’s unifying theories of programming (UTP), enabling the integration of our theory with refinement models for object orientation and concurrency. In developing the SCJ theory, we also make a contribution to UTP by providing a general theory of invariants (an instance of which is used in the SCJ theory). The results presented here are a first essential ingredient to formalise the novel programming paradigm embedded in SCJ, and enable the justification and development of formal reasoning techniques based on refinement.','Formal Aspects of Computing',2,'Ana CavalcantiAndy WellingsJim Woodcock','springer/bpel security.csv','springer','\0'),(1171,'TOSSMA: A Tenant-Oriented SaaS Security Management Architecture','2012','9','Cloud computing;SaaS application security;cloud computing security;multi-tenancy security','Multi-tenancy helps service providers to save costs, improve resource utilization, and reduce service customization and maintenance time by sharing of resources and services. On the other hand, supporting multi-tenancy adds more complexity to the shared application\'s required capabilities. Security is a key requirement that must be addressed when engineering new SaaS applications or when re-engineering existing applications to support multi-tenancy. Traditional security (re)engineering approaches do not fit with the multi-tenancy application model where tenants and their security requirements emerge after the system was first developed. Enabling, runtime, adaptable and tenant-oriented application security customization on single service instance is a key challenging security goal in multi-tenant application engineering. In this paper we introduce TOSSMA, a Tenant-Oriented SaaS Security Management Architecture. TOSSMA allows service providers to enable their tenants in defining, customizing and enforcing their security requirements without having to go back to application developers for maintenance or security customizations. TOSSMA supports security management for both new and existing systems. Service providers are not required to write security integration code to use a specific security platform or mechanism. In this paper, we describe details of our approach and architecture, our prototype implementation of TOSSMA, give a usage example of securing a multi-tenant SaaS, and discuss our evaluation experiments of TOSSMA.','Cloud Computing (CLOUD), 2012 IEEE 5th International Conference on',1,'M. Almorsy; J. Grundy; A. S. Ibrahim','ieee/service oriented architecture security.csv','ieee','\0'),(1172,'A Combined Safety-Hazards and Security-Threat Analysis Method for Automotive Systems','2015','0',' ISO 26262 HARA STRIDE Automotive systems Safety/Security co-engineering','Abstract Safety and Security appear to be two contradicting overall system features. Traditionally, these two features have been treated separately, but due to increasing awareness of mutual impacts, cross domain knowledge becomes more important. Due to the increasing interlacing of automotive systems with networks (such as Car2X), it is no longer acceptable to assume that safety-critical systems are immune to security risks and vice versa. This paper presents the application and method description of a novel approach for combined safety hazard and security threat analysis. In this paper we present a detailed description of the SAHARA method and an application of this method for an automotive system. We analyze the impact of this novel method and highlight the impacts of security threats on safety targets of the system. The paper describes the experiences gained at application of the method and how safety-critical contribution of successful security attacks can be quantified.','',1,'Georg MacherAndrea HöllerHarald SporerEric ArmengaudChristian Kreiner','springer/service oriented architecture security.csv','springer',''),(1173,'Challenges and Modifications for Creating a MoSGrid Science Gateway for US and European Infrastructures','2015','1','data management;international infrastructures;science gateway;security;workflows','The established German MoSGrid science gateway serves the computational chemistry community in the areas of quantum chemistry, molecular dynamics and docking with intuitive user interfaces for jobs, workflows and data as well as metadata management. It is designed independent of the underlying infrastructure and developed on top of gUSE/WS-PGRADE, which is capable of connecting to diverse grid, cloud and batch infrastructures. However, quite a few of its user-friendly features and pre-configured workflows are dependent on the service-oriented grid middleware UNICORE and on installed computational chemistry tools on the target resources. Furthermore, the security mechanisms rely on SAML assertions to provide single sign-on to the different available resources. This paper gives an overview on the challenges and modifications, which have been necessary to provide an international MoSGrid science gateway exploiting XSEDE and PRACE infrastructures. This work was part of the XSEDE-PRACE interoperability project, which selected three use cases out of US- and European-wide applications.','Science Gateways (IWSG), 2015 7th International Workshop on',1,'S. Gesing; J. Krüger; R. Grunzke; S. Herres-Pawlis; A. Hoffmann','ieee/service oriented architecture security.csv','ieee',''),(1174,'A Service Oriented Life Cycle Model for Educational Information System','2012','0','locator, service oriented architecture, web service','The Service Oriented model is developed and adopted by different organizations. The services are open and can be developed and consumed independently. The service life cycle needs to be consumed and updated dynamically in order to maintain the availability and the appropriateness of the services. The Second section of this paper describes the fundamentals of the SOA and the requirements of the security parameters with the same. The third section deals with the service life cycle model related to Educational Information System. The fourth section elaborates the functions of secured service lifecycle information model. The fifth section summarizes the results and the findings of the design and implementation. The conclusion indicates the main advantages of this model.','',1,'R. Kamatchi','acm/service oriented architecture security.csv','acm','\0'),(1175,'Analysis of Communication Models in Web Service Compositions','2006','20','BPEL, asynchronous communications, formal verification, web service composition','Proceedings of the 15th International Conference on World Wide Web','',2,'Raman Kazhamiakin and Marco Pistore and Luca Santuari','acm/bpel security.csv','acm',''),(1176,'Composing domain-specific physical models with general-purpose software modules in embedded control software','2014','0',' Domain specific languages Embedded systems Software composition Composition filters Aspect-oriented programming','Abstract A considerable portion of software systems today are adopted in the embedded control domain. Embedded control software deals with controlling a physical system, and as such models of physical characteristics become part of the embedded control software. In current practices, usually general-purpose languages (GPL), such as C/C++ are used for embedded systems development. Although a GPL is suitable for expressing general-purpose computation, it falls short in expressing the models of physical characteristics as desired. This reduces not only the readability of the code but also hampers reuse due to the lack of dedicated abstractions and composition operators. Moreover, domain-specific static and dynamic checks may not be applied effectively. There exist domain-specific modeling languages (DSML) and tools to specify models of physical characteristics. Although they are commonly used for simulation and documentation of physical systems, they are often not used to implement embedded control software. This is due to the fact that these DSMLs are not suitable to express the general-purpose computation and they cannot be easily composed with other software modules that are implemented in GPL. This paper presents a novel approach to combine a DSML to model physical characteristics and a GPL to implement general-purpose computation. The composition filters model is used to compose models specified in the DSML with modules specified in the GPL at the abstraction level of both languages. As such, this approach combines the benefits of using a DSML to model physical characteristics with the freedom of a GPL to implement general-purpose computation. The approach is illustrated using two industrial case studies from the printing systems domain.','Software & Systems Modeling',2,'Arjan de RooHasan SözerMehmet Akşit','springer/bpel security.csv','springer',''),(1177,'Analysis on countering XML-based attacks in web services','2013','6','Cloud computing; Service oriented architecture; SOAP; Web services security; XML security','Cloud Computing is found to be today\'s most commonly used Service Oriented Architecture (SOA) implementation. Cloud utilizes XML-based technologies like Web Services for accessing and controlling the cloud, these are of particular importance for the security assessment of cloud systems. XML usage in Web Service introduces various vulnerabilities which affects basic security factors such as Confidentiality, Integrity and Availability. Various frameworks aiming at countering the XML based attacks were designed and developed.The Analysis of the frameworks available for countering the XML-based attacks simulated in the SOAP messages is presented benefiting the future researchers and also provides insight of various attack simulations and the countermeasures respectively. The parameters responsible for evaluating the strength of the frameworks were also specified and discussed as part of this work. © 2013 Praise Worthy Prize S.r.l. - All rights reserved.','',1,'Priyadharshini M., Baskaran R., Balaji N., Saleem Basha M.S.','scopus/service oriented architecture security.csv','scopus','\0'),(1178,'Using Improved FOAF to Enhance BPEL-extracted RBAC Capability','2007','0','','Proceedings of the IEEE/WIC/ACM International Conference on Web Intelligence','',2,'Wei Shi and Jian Wu and Ying Li and Zhaohui Wu and Bo Wang','acm/bpel security.csv','acm','\0'),(1179,'Definition and Enactment of Instance-Spanning Process Constraints','2012','1',' Instance-spanning Process Constraints Process-based Compliance Management Process Engine Web-based Business Processes','Abstract Currently, many approaches address the enforcement and monitoring of constraints over business processes. However, main focus has been put on constraint verification for intra-instance process constraints so far, i.e., constraints that affect single instances. Existing approaches addressing instance-spanning constraints only consider certain scenarios. In other words, a holistic approach considering intra-instance, inter-instance, and inter-process constraints is still missing. This paper aims at closing this gap. First of all, we show how the Identification and Unification of Process Constraints (IUPC) compliance framework enables the definition of instance-spanning process constraints in a flexible and generic way. Their enactment and enforcement is demonstrated within a prototypical implementation based on a service-oriented architecture.','',1,'Maria LeitnerJuergen ManglerStefanie Rinderle-Ma','springer/service oriented architecture security.csv','springer','\0'),(1180,'From Software as a good to software as a service: Preparing the evolution of software products into the cloud','2012','3','','Summary form only given. The speed of change in Internet Technologies continues to be impressive and the current “Future Internet” based society increasingly relies on software at all levels. Nevertheless, software systems continue to suffer from aging symptoms caused by the inherent factors of the software modernization process: inevitable; unpredictable; costly; difficult; time- and resource-consuming; poorly supported by tools, techniques or formalisms; poorly understood and maintained; undervalued in traditional software development processes, etc. Furthermore, current technological and business innovations (such as Cloud Computing and Software as a Service (SaaS) concepts) are changing the way in which software is designed, developed, tested, delivered and consumed. All this means that new requirements, never seen before in software development, have to be faced (scalability, multi-tenancy support, usage monitoring, security, SLA compliance, etc.). These challenges are even greater when adapting previously developed software to this new landscape. Different approaches (reverse engineering, ADM, or service-oriented-architecture modernization) have to be analyzed depending on the source language, architecture, target market or available resources. As a result, the complete software life cycle, from requirements to runtime and delivery, has to be re-adapted to the new technological and business conditions, needs and challenges, thus increasing the need of advanced means to support software evolution and adaptation as a key value for the next-generation service-based software modernization. One particular example of complex system modernization is the exposure of legacy systems as SaaS. Model-driven techniques have been used for several years to cope with the challenge of transformation of legacy systems as SaaS. Regardless of the positive features of these techniques, for legacy systems there are many challenges such as are the availability of arc- itectural models describing the system (typically unavailable for legacy systems), the ability to transform the original system into new ones compatible with targeted infrastructures and frameworks, and the support for adaptive deployment. All these features are particular relevant when deploying legacy applications as SaaS on the Web, for instance using different Cloud offerings. Desirable solutions are those that can automate the transformation of existing legacy systems that require being transformed into modern ones exposed as services (SaaS) compatible with modern technology frameworks. This keynote will present the challenges and needs, as well as the results obtained so far in this novel architecture and business model based on the cloud.','2012 IEEE 6th International Workshop on the Maintenance and Evolution of Service-Oriented and Cloud-Based Systems (MESOCA)',1,'L. O. E. Arrieta','ieee/service oriented architecture security.csv','ieee','\0'),(1181,'Continuously tunable, narrow linewidth mm-wave generation from a monolithically integrated triple DFB laser chip','2013','0','','Summary form only given. Generation of stable and tunable mm-wave and THz signals is extremely attractive for applications including tomography, gas sensing and imaging for security systems. Currently photonic methods for generating signals at these frequencies show either very limited tunability, as in the case of passively mode-locked lasers and THz quantum cascade lasers , or poor spectral purity, evinced in the photomixing of two uncorrelated laser sources. In addition, current systems using the combination of a number of discrete optical elements require the use of bulky alignment optics increasing packaging costs and sensitivity to environmental noise sources. In this work a relatively simple arrangement of three DFB laser sources on a single chip is proposed and demonstrated, a schematic of the scheme is shown in Fig. 1(a). Two lasers DFB1 and DFB2 inject into DFB3 whose free running frequency is designed to emit between those of DFB. The result is that Four Wave Mixing (FWM) products of the pairs of lasers DFB and DFB are produced within DFB. These FWM signals then produce feedback signals that coincide in frequency with the complimentary laser source, i.e. the laser pair DFB produce a FWM product equal in frequency to DFB, thus locking their phases and stabilising the optical beating signal. Furthermore, by simply tuning the frequency spacing of DFB and DFB, ensuring that DFB tracks their centre point, the generated beating signal can be continuously tuned over a wide frequency range. This scheme was fabricated on a multi-quantum well AlGaInAsInP material system and the DFB lasers were defined using upper-cladding sidewall modulation gratings in order to generate precise spacing of the three laser wavelengths [3]. Tuning of the laser wavelengths was achieved by direct current injection variation, with integrated SOA sections ensuring the optimal injection amplitude range was maintained. Measurements of the RF signal generated by the beating signal from th- output at DFB show a linewidth reduction of an order of magnitude (to 2.5MHz) when the system is in the phase locked condition. Locking range measurements show a tolerance of ~2GHz on the position of the wavelength of DFB. Furthermore, the locked frequency can be tuned continuously from a few GHz to 40GHz (the maximum measureable frequency of our RF spectrum analyser) as shown in Fig.1 (b).','Lasers and Electro-Optics Europe (CLEO EUROPE/IQEC), 2013 Conference on and International Quantum Electronics Conference',1,'M. Zanola; M. J. Strain; M. Sorel; G. Giuliani','ieee/soa security.csv','ieee','\0'),(1182,'ISICIL: Semantics and Social Networks for Business Intelligence','2013','0',' social semantic web business intelligence social network social network analysis folksonomies semantic wiki','Abstract The ISICIL initiative (Information Semantic Integration through Communities of Intelligence onLine) mixes viral new web applications with formal semantic web representations and processes to integrate them into corporate practices for technological watch, business intelligence and scientific monitoring. The resulting open source platform proposes three functionalities: (1) a semantic social bookmarking platform monitored by semantic social network analysis tools, (2) a system for semantically enriching folksonomies and linking them to corporate terminologies and (3) semantically augmented user interfaces, activity monitoring and reporting tools for business intelligence.','',1,'Michel BuffaNicolas DelaforgeGuillaume ErétéoFabien GandonAlain GiboinFreddy Limpens','springer/service oriented architecture security.csv','springer','\0'),(1183,'Soundness of data-aware, case-centric processes','2016','0','','Abstract In recent years, a plethora of foundational results and corresponding techniques and tools has been developed to support the modeling, analysis, execution and improvement of business processes along their entire lifecycle. A major shortcoming of the analysis techniques is that they solely focus on the control-flow dimension of the process, omitting how business objects (i.e., cases) and their data affect and are manipulated by process instances and their tasks. In this work, we aim at filling this gap. We recast the classical notion of case-centric business process in a data-aware context. An emitter action is used to generate new cases, and while a case flows through the process control-flow, corresponding data are created, updated, and deleted by operating over a full-fledged relational database with constraints. To make our investigation concrete, we ground it on the recently introduced framework of data-centric dynamic systems (DCDSs). We reformulate the standard correctness criterion of soundness into this rich setting, and show that it is in general undecidable to check. We then provide a fine-grained analysis on the role of data in business processes. We substantiate this analysis by introducing a class of case-centric DCDSs that enjoys good modeling principles, and at the same time guarantees decidability of soundness. Decidability is obtained by finding a cutoff on the number of process instances that must be subject to the soundness test. We finally show that the introduced modeling guidelines are strict, in the sense that weakening even one single requirement they pose leads to undecidability.','International Journal on Software Tools for Technology Transfer',2,'Marco MontaliDiego Calvanese','springer/bpmn security.csv','springer',''),(1184,'Anonymity of web service invocations','2014','','','Service Oriented Architectures offer modularity and flexibility, while maintaining a relatively simple communication model. Security is still needed as messages can be intercepted by a potential attacker and the service interaction can be compromised. One research direction to achieve this is to hide the identity of the communication parties by assuring sender and receiver anonymity and by protecting the message content through encryption. This paper describes a solution to ensure anonymous web service access through the use of a proxy-based system. This solution protects the identity of a set of web services by mediating all web service invocation requests and imposing a set of security policies. Since the proxy manages multiple web service instances deployed on multiple devices, it also implements a set of load balancing policies, which help improve performance and prevent overloading. We tested the proposed solution and analyzed the overhead introduced by the proxy within the web service invocation process. Furthermore, we present an analysis of the overhead introduced by the additional security features. © 2014 IEEE.','',1,'Davidoaia B., Leordeanu C., Cristea V.','scopus/service oriented architecture security.csv','scopus','\0'),(1185,'An Efficient Optimization Algorithm of Autonomic Managers in Service-Based Applications','2015','0',' Cloud computing Autonomic managers Service-based applications Optimization','Abstract Cloud Computing is an emerging paradigm in Information Technologies that enables the delivery of infrastructure, software and platform resources as services. It is an environment with automatic service provisioning and management. In these last years autonomic management of Cloud services is receiving an increasing attention. Meanwhile, optimization of autonomic managers remains not well explored. In fact, almost all the existing solutions on autonomic computing have been interested in modeling and implementing of autonomic environments without paying attention on optimization. In this paper, we propose a new efficient algorithm to optimize autonomic managers for the management of service-based applications. Our algorithm allows to determine the minimum number of autonomic managers and to assign them to services that compose managed service-based applications. The realized experiments proves that our approach is efficient and adapted to service-based applications that can be not only described as architecture-based but also as behavior-based compositions of services.','',2,'Leila HaddedFaouzi Ben CharradaSamir Tata','springer/bpel security.csv','springer',''),(1186,'Requirements model driven adaption and evolution of Internetware','2014','0',' requirements information system Internetware adaptation evolution','Abstract Today’s software systems need to support complex business operations and processes. The development of the web-based software systems has been pushing up the limits of traditional software engineering methodologies and technologies as they are required to be used and updated almost real-time, so that users can interact and share the same applications over the internet as needed. These applications have to adapt quickly to the diversified and dynamic changing requirements in the physical, technological, economical and social environments. As a consequence, we are expecting a major paradigm shift in software engineering to reflect such changes in computing environment in order to better address the fundamental needs of organisations in this new era. Existing software technologies, such as model driven development, business process engineering, online (re-)configuration, composition and adaptation of managerial functionalities are being repurposed to reduce the time taken for software development by reusing software codes. The ability to dynamically combine contents from numerous web sites and local resources, and the ability to instantly publish services worldwide have opened up entirely new possibilities for software development. In retrospect to the ten years applied research on Internetware, we have witnessed such a paradigm shift, which brings about many changes to the developmental experience of conventional web applications. Several related technologies, such as cloud computing, service computing, cyber-physical systems and social computing, have converged to address this emerging issue with emphasis on different aspects. In this paper, we first outline the requirements that the Internetware software paradigm should meet to excel at web application adaptation; we then propose a requirement model driven method for adaptive and evolutionary applications; and we report our experiences and case studies of applying it to an enterprise information system. Our goal is to provide high-level guidelines to researchers and practitioners to meet the challenges of building adaptive industrial-strength applications with the spectrum of processes, techniques and facilities provided within the Internetware paradigm.','Science China Information Sciences',1,'Lin LiuChen YangJianMin WangXiaoJun YeYingBo LiuHongJi YangXiaoDong Liu','springer/soa security.csv','springer','\0'),(1187,'Research directions in web systems evolution V: Architecture','2013','0','Web;architecture;evolution;research;systems','The architecture of a Web system affects many of its quality attributes, such as testability, security, and accessibility. The architecture itself is influenced by factors such as system requirements, infrastructure constraints, and interoperability needs. This session is the fifth in a series of special events held at WSE focused on selected aspects of research directions in Web systems evolution, and the first focused on issues related to the role of architecture.','2013 15th IEEE International Symposium on Web Systems Evolution (WSE)',1,'S. Tilley','ieee/service oriented architecture security.csv','ieee','\0'),(1188,'A measurement study of DNSSEC misconfigurations','2015','0',' DNS DNSSEC Domain Name System Authentication Integrity Misconfiguration Validation Signatures Error Unreachability','Abstract DNSSEC offers protection against spoofing of DNS data by providing origin authentication, ensuring data integrity and authentication of non-existence by using public-key cryptography. Although the relevance of securing a technology as crucial to the Internet as DNS is obvious, the DNSSEC implementation increases the complexity of the deployed DNS infrastructure, which may result in misconfiguration. In this article, we measure and analyze the misconfigurations for domains in six zones (.bg, .br, .co, .com, .nl and .se). Furthermore, we categorize these misconfigurations and provide an explanation for their possible causes. Finally, we evaluate the effects of misconfigurations on the reachability of a zone’s network. Our results show that, although progress has been made in the implementation of DNSSEC, over 4 % of evaluated domains show misconfigurations. The domains with the most frequently appearing misconfiguration are often hosted at a very limited set of hosting providers. Of these misconfigured domains, almost 75 % were unreachable from a DNSSEC-aware resolver. This illustrates that although the authorities of a domain may think their DNS is secured, it is in fact not. Worse still, misconfigured domains are at risk of being unreachable from the clients who care about and implement DNSSEC verification, while the publisher may remain unaware of the error and its consequences.','Security Informatics',1,'Niels L. M. van AdrichemNorbert BlennAntonio Reyes LúaXin WangMuhammad WasifFicky FatturrahmanFernando A. Kuipers','springer/soa security.csv','springer',''),(1189,'G-Route: an energy-aware service routing protocol for green cloud computing','2015','1',' Green cloud computing Enegry-efficiency Service routing Service selection','Abstract In this paper, we present the design and implementation of Green Route (G-Route), an autonomic service routing protocol for constructing energy-efficient provider paths in collaborative cloud architectures. The chief contribution of this work resides in autonomously selecting the optimal set of composite service components sustaining the most efficient energy consumption characteristics among a set of providers for executing a particular service request. For ensuring the accountability of the system, the routing decision engine is designed to operate by processing accountable energy measurements extracted securely from within the cloud data centers using trusted computing technologies and cryptographic mechanisms. By pushing green computing constraints into the service routing decision engine, we can leverage the collaborative cloud computing model to maximize the energy savings achieved. This is realized by focusing on a path of providers that execute the service requests instead of directing the green computing efforts towards a single provider site. To the best of our knowledge, G-Route is the first service routing protocol that utilizes the collaborative properties among cloud providers to select “green” service routes and thus, to enhance the energy savings in the overall cloud computing infrastructure . The devised G-Route design is developed and deployed in a real cloud computing environment using the Amazon EC2 cloud platform. The experimental results obtained analyze the protocol convergence characteristics, traffic overhead, and resilience under anomalous service configurations and conditions and demonstrate the capability of the proposed system to significantly reduce the overall energy requirements of collaborative cloud services.','Cluster Computing',1,'Wassim ItaniCesar GhaliAyman KayssiAli ChehabImad Elhajj','springer/soa security.csv','springer',''),(1190,'Transformation challenges: from software models to performance models','2014','3',' Software performance Performance analysis Model transformation UML MARTE profile Layered queueing networks','Abstract A software model can be analysed for non-functional requirements by extending it with suitable annotations and transforming it into analysis models for the corresponding non-functional properties. For quantitative performance evaluation, suitable annotations are standardized in the “UML Profile for Modeling and Analysis of Real-Time Embedded systems” (MARTE) and its predecessor, the “UML Profile for Schedulability, Performance and Time”. A range of different performance model types (such as queueing networks, Petri nets, stochastic process algebra) may be used for analysis. In this work, an intermediate “Core Scenario Model” (CSM) is used in the transformation from the source software model to the target performance model. CSM focuses on how the system behaviour uses the system resources. The semantic gap between the software model and the performance model must be bridged by (1) information supplied in the performance annotations, (2) in interpretation of the global behaviour expressed in the CSM and (3) in the process of constructing the performance model. Flexibility is required for specifying sets of alternative cases, for choosing where this bridging information is supplied, and for overriding values. It is also essential to be able to trace the source of values used in a particular performance estimate. The performance model in turn can be used to verify responsiveness and scalability of a software system, to discover architectural limitations at an early stage of development, and to develop efficient performance tests. This paper describes how the semantic gap between software models in UML+MARTE and performance models (based on queueing or Petri nets) can be bridged using transformations based on CSMs, and how the transformation challenges are addressed.','Software & Systems Modeling',1,'Murray WoodsideDorina C. PetriuJosé MerseguerDorin B. PetriuMohammad Alhaj','springer/service oriented architecture security.csv','springer','\0'),(1191,'Temporal aspects in crisis management and its implications on interface design for situation awareness','2012','4',' Temporality Situation awareness Crisis management Disaster management','Abstract Temporality should be considered in the design of information technology support for crisis management (CM), both because crises are dynamic events and because time is a part of situation awareness (SA). This study has used group interviews to explore how different temporal aspects of CM can be considered in CM design and how they can influence crisis managers SA. A prototype and a scenario were used as mediating materials. The result consists of two parts. The first part is comprised of the participants’ reflections on how timelines can be used to display information in CM information systems. According to the participants, timelines should present: deadlines, information sent to the public, incoming and outgoing information, an overview of where the current activities belong in the CM process and what has been going on since the last shift during shift changes. Timelines should not only display the listed information, but also provide functionality for adjusting the timescale so that information can be presented in alternative temporal perspectives. The second part of the result contains several obstacles that might influence the crisis managers’ ability to obtain SA. Obstacles elicited from the group discussions are: information overflow, fast changes of SA due to incoming information, difficulties to share SA with actors outside the CM centre, forgetting things that need attention and that SA depends on the quality of incoming information. The two parts of the result have been compiled into six design principles for how temporality can be considered in CM systems in order to support SA.','Cognition, Technology & Work',1,'Anna GryszkiewiczFang Chen','springer/service oriented architecture security.csv','springer','\0'),(1192,'Patterns to Enable Mass-Customized Business Process Monitoring','2012','2',' monitoring framework monitoring patterns business process monitoring process customization','Abstract Mass-customization challenges the one-size-fits-all assumption of mass production, allowing customers to specify the options that best fit their requirements when choosing a product or a service. In business process management, to achieve mass-customization, providers offer to their customers the opportunity to customize the way in which a process will be enacted. We focus on monitoring as a specific customization aspect. We propose a multi-dimensional classification of modeling patterns for customized monitoring infrastructures. Patterns enable the provider to offer a set of customizable options to customers and design a monitoring infrastructure that fits the preferences specified by customers on such options. An example in the online advertising industry demonstrates how our framework can improve the services currently offered by providers.','',2,'Marco ComuzziSamuil AngelovJochem Vonk','springer/bpel security.csv','springer','\0'),(1193,'Modeling Responsiveness of Decentralized Service Discovery in Wireless Mesh Networks','2014','3',' Real-time systems Responsiveness Service discovery Wireless mesh networks Markov Models Probabilistic Breadth-First Search','Abstract In service networks, discovery plays a crucial role as a layer where providers can be published and enumerated. This work focuses on the responsiveness of the discovery layer, the probability to operate successfully within a deadline, even in the presence of faults. It proposes a hierarchy of stochastic models for decentralized discovery and uses it to describe the discovery of a single service using three popular protocols. A methodology to use the model hierarchy in wireless mesh networks is introduced. Given a pair requester and provider, a discovery protocol and a deadline, it generates specific model instances and calculates responsiveness. Furthermore, this paper introduces a new metric, the expected responsiveness distance d er , to estimate the maximum distance from a provider where requesters can still discover it with a required responsiveness. Using monitoring data from the DES testbed at Freie Universität Berlin, it is shown how responsiveness and d er of the protocols change depending on the position of nodes and the link qualities in the network.','',1,'Andreas DittrichBjörn LichtblauRafael RezendeMiroslaw Malek','springer/service oriented architecture security.csv','springer','\0'),(1194,'A Framework for Service Morphing and Heterogeneous Service Discovery in Smart Environments','2012','0',' SOA service morphing cross-architecture service directory mobile device support OSGi web services','Abstract The openness and dynamicity of smart environments makes it a necessity to adopt a flexible software architecture. Service oriented architecture (SOA), and more specifically Open Service Gateway Initiative (OSGi), has emerged to be one of the most suitable choices; however, our experience using OSGi exposes its several shortcomings as an SOA platform: 1. The number of services required to be designed and implemented for each sensor, actuator and external system can be prohibitively high; 2. Cross-architecture interaction with non-OSGi software artifacts is challenging and inelegant; 3. There is a need for a more systematic approach to allow mobile devices remote access to OSGi services and enable opportunistic utilizations of local resources. We propose a framework to address these challenges by introducing a mechanism to support morphing a core service implementation of underlying communication protocols and software libraries to customized services using configuration files and a cross-architecture service directory for both OSGi and web services (WS). Our solution allows mobile devices to discover, access and adjust for local resources and results in more open, less cumbersome, and more integrative interactions among computing, communicative, sensing and actuation elements in smart environments.','',2,'Hen-I YangRyan BabbittJohnny WongCarl K. Chang','springer/bpel security.csv','springer','\0'),(1195,'Open Objects for Ambient Intelligence','2012','0',' Ubiquitous Computing End-User Development Events Behaviours Capabilities Workflows Service-Oriented Architecture','Abstract We present the Open Object, a framework for distributing capabilities over a system of inter-connected physical objects. We focus on allowing lightweight objects to not only share their capabilities with other objects but also to outsource capabilities when needed, in order to fulfil a user’s goal. We exemplify our approach with a smart home scenario and a service-oriented implementation.','',1,'Paulo RiccaKostas Stathis','springer/service oriented architecture security.csv','springer','\0'),(1196,'Collaborative Autonomic Management of Distributed Component-Based Applications','2015','0',' Component-based applications Autonomic management Container Collaboration','Abstract Executing component-based applications in dynamic distributed environments requires autonomic management to cope with the changes of these environments. However, using a centralized Autonomic Manager (AM) for monitoring and adaptation of a large number of distributed components is a non trivial task. Therefore, we argue for a distributed management by using an AM for each component. These distributed managers should collaborate to avoid conflicting decisions that may entail the application’s failure. Towards this objective, we propose a collaborative autonomic management of component-based applications in distributed environments. An application is considered as a composite of atomic or composite components. Each component or composite is managed by its AM that holds local strategies for its reconfiguration. An AM is able to collaborate with other managers in different hierarchical levels for the self-management of the whole application. We show the utility of our approach through a use case in the context of Cloud computing.','',2,'Nabila BelhajImen Ben LahmarMohamed MohamedDjamel Belaïd','springer/bpel security.csv','springer',''),(1197,'Experience with Industrial Adoption of Business Process Models for User Acceptance Testing','2013','2','','Abstract Model based testing or the generation of tests from machine readable models has been widely deployed in industry for testing embedded systems and devices. Attempts are being made to extend its use to business systems. However, in spite of its potential for process improvement, its large-scale adoption for testing business systems is not yet seen, mainly due to little data being available on such use. This paper presents the findings from industrial deployment of a business process model based testing approach for User Acceptance Testing of large banking and insurance systems. The approach met with easier acceptance from the user community due to use of business process models and has proved to scale to very large models. It resulted in an overall productivity benefit of 20-30% in test design and planning, in addition to digitization of domain and process knowledge and has been successfully adopted organization-wide. Benefits as well as issues faced in large-scale adoption are discussed along with solutions found and open problems.','',2,'Deepali KholkarPooja YelureHarshit TiwariAjay DeshpandeAditya Shetye','springer/bpmn security.csv','springer','\0'),(1198,'Towards a System for Cloud Service Discovery and Composition Based on Ontology','2015','0',' Cloud computing Services discovery Cloud ontology OWL Cloud composition','Abstract Cloud computing has become a widely used concept. It is characterized by its elasticity, its on demand services and the unlimited resources provided to end users. However, the increase of services number offered by different providers causes sometimes ambiguity problems. So, ontology must be used to relate between different services in order to facilitate their access. Many languages expressing ontology have been proposed namely RDF, OWL, etc. To access them, queries should be expressed using SPARQL. However, generally, users are not familiar with this query language. Therefore, there is a need to an interface allowing them to express their requirements without any expertise in SPARQL language. Besides, given the increase of complex service requirements, it is sometimes necessary to compose services to meet final user requirements. This paper gives related works on Cloud service discovery based on ontology and composition and presents a system ensuring these procedures.','',1,'Rawand GuerfelZohra SbaïRahma Ben Ayed','springer/service oriented architecture security.csv','springer',''),(1199,'Application and economic implications of an automated requirement-oriented and standard-based compliance monitoring and reporting prototype','2010','','Business process management; IS security; IT compliance; IT risk management','Compliance management is a challenging task affected by continuously increasing legal requirements. Compliance with legal requirements can be assured by the incorporation of control activities into business processes. But the maintenance and monitoring of these control activities is a complex, time-consuming and often manual task. However, the timely communication of control exceptions is an important factor for the success of compliance management. The present paper presents an innovative prototypical implementation of an automated compliance monitoring and reporting system. This system is based on established standards and existing technologies. In particular, business processes are notated in BPMN and modeled in XPDL, control activities are linked to risks using COSO, control exceptions are defined using SWRL and access control data is transformed from proprietary models to XACML. The development of the prototype was aligned with common design-science research. The application of the developed prototype and its economic implications are concisely discussed with respect to different business requirements and information needs. © 2010 IEEE.','',2,'Kehlenbeck M., Sandner T., Breitner M.H.','scopus/bpmn security.csv','scopus','\0'),(1200,'Securing an interoperability architecture for home and urban networking: Implementation of the security aspects in the INREDIS interoperability architecture','2012','3','authentication; authorization; heterogeneous systems; interoperability','The increasing density of the electronic devices in everyday activities is turning system interoperability into an emerging research scenario with a clear impact on life quality. Interoperability architectures try to overcome the complexity related to the heterogeneous procedures, interfaces and access protocols required to operate devices by providing users a single control point on their electronic environment. The INREDIS project has addressed this challenge by designing a cloud based service-oriented architecture to be deployed both on home and outdoor scenarios aimed to enhance the interoperability capabilities with accessibility features. In this paper we describe the specific security challenges that have been addressed and how a heterogeneous interoperability architecture involving a wide range set of electronic devices could be secured from a unified approach. The deployed infrastructure, built upon server-based security in combination with digital certificates, has provided promising outcomes through the target deployment scenarios. In addition, further research lines on securing interoperability for devices with constrained resources have also been described. © 2012 IEEE.','',1,'Giménez R., Pous M., Rico-Novella F.','scopus/service oriented architecture security.csv','scopus','\0'),(1201,'A formal framework for service modeling and prototyping','2014','1',' Service formal modeling Service model prototyping Service Component Architecture Abstract State Machines','Abstract Service-oriented Computing is rapidly gaining importance across several application domains due to its capability of composing autonomous and loosely-coupled services. In order to support the engineering of service-oriented software applications, foundational theories, service modeling notations, evaluation techniques fully integrated in a pragmatic software engineering approach are required. This article introduces a framework for modeling and prototyping service-oriented applications. The framework consists of a precise and executable language, SCA-ASM , for model-based design, and of a tool for early and quick design evaluation of service assemblies. The language combines the OASIS/OSOA standard Service Component Architecture (SCA) capability of modeling and assembling heterogeneous service-oriented components in a technology agnostic way, with the rigor of the Abstract State Machine (ASM) formal method able to model notions of service behavior, interactions, orchestration, compensation and context-awareness in an abstract but executable way. The tool is based on existing execution environments for ASM models and SCA applications. An SCA-ASM model of a service-oriented component, possibly not yet implemented in code or available as off-the-shelf, can be (i) simulated and evaluated offline , i.e. in isolation from the other components; or (ii) executed as abstract implementation (or prototype ) together with the other components implementations according to the chosen SCA assembly. As proof of concept, a case study taken from EU research projects has been considered to show the functionalities and potentialities of the proposed framework.','Formal Aspects of Computing',2,'Elvinia RiccobenePatrizia Scandurra','springer/bpel security.csv','springer',''),(1202,'Simulation on Cloud Computing Infrastructures of Parametric Studies of Nonlinear Solids Problems','2012','1',' Parameter Sweep Viscoplastic Solids Cloud Computing','Abstract Scientists and engineers are more and more faced to the need of computational power to satisfy the ever-increasing resource intensive nature of their experiments. Traditionally, they have relied on conventional computing infrastructures such as clusters and Grids. A recent computing paradigm that is gaining momentum is Cloud Computing, which offers a simpler administration mechanism compared to those conventional infrastructures. However, there is a lack of studies in the literature about the viability of using Cloud Computing to execute scientific and engineering applications from a performance standpoint. We present an empirical study on the employment of Cloud infrastructures to run parameter sweep experiments (PSEs), particularly studies of viscoplastic solids together with simulations by using the CloudSim toolkit. In general, we obtained very good speedups, which suggest that disciplinary users could benefit from Cloud Computing for executing resource intensive PSEs.','',1,'Elina PaciniMelisa RiberoCristian MateosAnibal MirassoCarlos García Garino','springer/service oriented architecture security.csv','springer','\0'),(1203,'Notes on Cloud computing principles','2014','3',' Resource allocation Provisioning IT-economics','Abstract This letter provides a review of fundamental distributed systems and economic Cloud computing principles. These principles are frequently deployed in their respective fields, but their interdependencies are often neglected. Given that Cloud Computing first and foremost is a new business model, a new model to sell computational resources, the understanding of these concepts is facilitated by treating them in unison. Here, we review some of the most important concepts and how they relate to each other.','Journal of Cloud Computing',1,'Thomas SandholmDongman Lee','springer/service oriented architecture security.csv','springer','\0'),(1204,'5G Revolution Through WISDOM','2015','1',' WISDOM 5G Human centric mega communications Next generation networking','Abstract This paper proposes and introduces a novel concept WISDOM, representing Wireless Innovative System for Dynamically Operating Mega Communications. The objective of this concept is to let the people seamlessly bridge the virtual and physical worlds by offering the same level of all senses, rich communication experience over fixed and wireless networks. Responding to the needs of connected society of 2020 and beyond, WISDOM shall offer ubiquitous terabit wireless connectivity that will enable human centric mega communications applications over the dynamic, interoperable and secure network of the future. The relation between fifth generation and WISDOM is presented in this paper.','Wireless Personal Communications',1,'Ramjee Prasad','springer/service oriented architecture security.csv','springer',''),(1205,'Evaluation of ASLan Mutation Operators','2013','0','','Abstract The AVANTSSAR validation platform is an automated toolset for validating trust and security aspects of Service-Oriented Architectures (SOAs). Models and security properties are specified in lowlevel AVANTSSAR Specification Language (ASLan) and there are three dedicated model-checkers that can validate if such models satisfy the security properties. However, the implementation may deviate from the specification and may contain some vulnerabilities that an attacker could exploit to violate the defined security properties. We have designed a set of semantic mutation operators to inject such vulnerabilities in an ASLan specification. Here we present the implementation of those mutation operators as Extensible Stylesheet Language Transformation (XSLT) scripts. Then, we evaluate the interest of using semantic mutation operators instead of syntactic ones by comparing the number of mutants that lead to the generation of a test case (i.e., a potential attack) and the resulting test suite for a set of existing ASLan specifications.','',1,'Johan OudinetAlberto CalviMatthias Büchler','springer/service oriented architecture security.csv','springer','\0'),(1206,'An RFID-based traceability system','2015','0',' Traceability system RFID EPCglobal Network Standards Rice supply chain','Abstract Traceability system in the food supply chain is becoming more necessary. RFID and EPCglobal Network Standards are emerging technologies that bring new opportunities to develop the high performance traceability system. This research proposes the analysis, design, and development of the RFID and EPCglobal Network Standards based traceability system that adheres to the requirements of global food traceability in terms of completeness of traceability information. The additional components, including lot management system and electronic transaction management system, encourage the traditional system in order to fulfill the missing information. The proposed system was developed and applied in a rice supply chain. Results from experimentation showed that the additional components can significantly improve the completeness of traceability information. The collaboration between EPCglobal Network Standards and electronic transaction management system can improve the performances in RFID operations.','Telecommunication Systems',1,'Worapot JakkhupanSomjit Arch-intYuefeng Li','springer/soa security.csv','springer',''),(1207,'MAPI: a software framework for distributed biomedical applications','2013','2',' Service-oriented architectures Web-service integration Software framework','Abstract Background The amount of web-based resources (databases, tools etc.) in biomedicine has increased, but the integrated usage of those resources is complex due to differences in access protocols and data formats. However, distributed data processing is becoming inevitable in several domains, in particular in biomedicine, where researchers face rapidly increasing data sizes. This big data is difficult to process locally because of the large processing, memory and storage capacity required. Results This manuscript describes a framework, called MAPI, which provides a uniform representation of resources available over the Internet, in particular for Web Services. The framework enhances their interoperability and collaborative use by enabling a uniform and remote access. The framework functionality is organized in modules that can be combined and configured in different ways to fulfil concrete development requirements. Conclusions The framework has been tested in the biomedical application domain where it has been a base for developing several clients that are able to integrate different web resources. The MAPI binaries and documentation are freely available at http://​www.​bitlab-es.​com/​mapi under the Creative Commons Attribution-No Derivative Works 2.5 Spain License. The MAPI source code is available by request (GPL v3 license).','Journal of Biomedical Semantics',1,'Johan KarlssonOswaldo Trelles','springer/service oriented architecture security.csv','springer','\0'),(1208,'Local governments and cloud computing security','2012','','Cloud computing security; Enterprise architecture; Local governments; Risks assessment; SOA; Systems architecture','The Cloud computing solution has enormous potential to provide companies, industries and economy in general with remarkable benefits but there are certain challenges that have to be taken into account when choosing this solution. The purpose of this paper is to provide results of research about local governments\' Cloud computing security, assisting them in making appropriate risk-based security decisions about how to securely embrace Cloud computing. To ensure that managing information of system-related security risks is consistent with the organization\'s mission/business objectives, and that information security requirements, including necessary security controls, are integrated into the organization\'s enterprise architecture and system development life cycle processes.','',1,'Kindzule I., Zeiris E., Ziema M.','scopus/soa security.csv','scopus','\0'),(1209,'Semantic IPTV Service Discovery System','2012','0','IPTV;Ontologies;SOA;Semantic integration;Service discovery','IPTV deals with multimedia services delivered over IP based networks managed to provide the required level of quality of service and experience, security, interactivity and reliability. Service discovery is an important component of IPTV system, but it is challenging due to the unique domain specifics of IPTV and complexities of IPTV ecosystem. In this paper, we formulate the IPTV service discovery problem under an SOA framework, and propose a novel standards-based semantic IPTV service discovery system. The proposed system is based on unifying the traditionally step-wise iterative process of IPTV service discovery, and a semantic integration of service provider and IPTV service descriptions. For demonstration, we consider a specific discovery scenario involving service providers that offer a combination of standard TV services such as linear TV and VoD content, and also advanced interactive multimedia-based IPTV services. With detailed illustration, we demonstrate that our proposed system provides simple but effective discovery of IPTV services, and possesses several benefits that can potentially enhance end-user experience.','2012 IEEE Eighth World Congress on Services',1,'F. L. Lai; X. Shao; R. Kanagasabai','ieee/service oriented architecture security.csv','ieee','\0'),(1210,'Utilizing PCFGs for Modeling and Learning Service Compositions in Sensor Networks','2012','0','PCFGs;sensor networks;service composition','Service composition in sensor networks combines elementary services with a specific functionality to create a service with higher level functionality. The previous efforts in automating composition were sending full information about all services across the entire sensor network, creating a security risk and imposing significant communication overhead. Furthermore, learning based composition or error detection methods do not consider global information, leading to inefficiencies in the generated composition graphs. In this paper, we propose a probabilistic context-free grammar (PCFG) based modeling technique to construct service compositions. The successful compositions created for the given application are treated as statements belonging to an efficient composition PCFG of this application. The given set of such compositions is used to derive this PCFG automatically. Future composition could be then easily constructed with the help of such PCFG. We present our methodology for achieving such modeling and provide examples of its use to demonstrate its advantage over previous work. We also evaluate the resulting improvements in performance of compositions and in the costs of their creation.','Services Computing (SCC), 2012 IEEE Ninth International Conference on',1,'S. C. Geyik; E. Bulut; B. K. Szymanski','ieee/service oriented architecture security.csv','ieee','\0'),(1211,'A Versatile SOA-based E-Business Platform','2008','0','BPEL;E-Business;SOA;mashups;web services','SOA is an IT architecture style, which has been proved to be able to help enterprise adapt rapid change and intensive competition. But practicing SOA is difficult, time-consuming and costly. Even worse, after a company manages to implement SOA, it still finds itpsilas difficult to apply it to the partners that havenpsilat enabled SOA yet. In this paper, we design an e-business platform featuring Web services-based SOA. Its basic subsystems establish a social and commercial zone by employing mashups; its intelligent agent detects events defined by users and reacts on behalf of users; its business process coordinator directs and coordinates business process through BPEL; its data sharing controller provides data sharing and notification between users. The highlight of this platform is: for SOA-ready enterprises, they can maximize their investment returns on SOA; for SOA-unready ones, they can still enjoy the services that the platform provides.','Electronic Commerce and Security, 2008 International Symposium on',2,'L. Diao; Y. Ma','ieee/bpel security.csv','ieee','\0'),(1212,'QoS- and Resource-Aware Service Composition and Adaptation','2012','0','','Abstract Flexible and adaptive quality-of-service (QoS) is desirable for distributed real-time applications, such as e-commerce, or multimedia applications. The objective of this research is to dynamically instantiate composite services by effectively utilising the collective capabilities of the resources to deliver distributed applications. Related to this objective are the problems of: (1) predicting system and network resources utilisation as well as the user’s changing requirements on the provided services, and (2) finding optimal execution plans for a service that meet end-to-end quality requirements and adapting the available resources in accordance to the changing situation. This paper presents a framework for adaptive QoS and resource management in provisioning composite services. We also develop distributed algorithms for finding the multi-constrained optimal execution plan to enable delivery of QoS-assured composite services.','',1,'Quoc Bao VoMinyi Li','springer/service oriented architecture security.csv','springer','\0'),(1213,'Enhancing model driven security through pattern refinement techniques','2013','','','Security requirements are typically defined at a business abstract level by non-technical security officers. However, in order to fulfill the security requirements, technical security controls or mechanisms have to be considered and deployed on the target system. Based on these security controls security patterns have to be selected. The MDS (Model Driven Security) approach uses security requirement models at a high level of abstraction to automatically generate security artefacts that configure security services. The main drawback of the current MDS solutions is that they consider just one security pattern for each security requirement. Current SOA and cloud services are scattered across multiple heterogeneous security domains. Partners and clients with different security infrastructures are changing continuously, which requires the support of multiple patterns for the same security service. The challenge is to provide configurable security services that can support different patterns. In order to overcome this shortcoming we propose a framework that integrates pattern refinement to the MDS approach. In this approach a security pattern refinement layer is added to the traditional MDS layers. The pattern refinement layer supports the configuration of one security service with different patterns, which are stored in a pattern catalog. For example, our approach enables the generation of security artefacts that configure a non-repudiation service to support both fair non-repudiation and naive non-repudiation patterns. © 2013 Springer-Verlag Berlin Heidelberg.','',1,'Katt B., Gander M., Breu R., Felderer M.','scopus/soa security.csv','scopus','\0'),(1214,'ACaaS: Access control as a service for IaaS cloud','2013','','Access control; Cloud computing; Security','Organizations and enterprises have been outsourcing their computation, storage, and workflows to Infrastructureas-a-Service (IaaS) based cloud platforms. The heterogeneity and high diversity of IaaS cloud environment demand a comprehensive and fine-grained access control mechanism, in order to meet dynamic, extensible, and highly configurable security requirements of these cloud consumers. However, existing security mechanisms provided by IaaS cloud providers do not satisfy these requirements. To address such an emergent demand, we propose a new cloud service called access control as a service (ACaaS), a service-oriented architecture in cloud to support multiple access control models, with the spirit of pluggable access control modules in modern operating systems. As a proof-of-concept reference prototype, we design and implement ACaaSRBAC to provide role-based access control (RBAC) for Amazon Web Services (AWS), where cloud customers can easily integrate the service into enterprise applications in order to extend RBAC policy enforcement in AWS. © 2013 IEEE.','',1,'Wu R., Zhang X., Ahn G.-J., Sharifi H., Xie H.','scopus/service oriented architecture security.csv','scopus','\0'),(1215,'Integration of non-functional requirements in a service-oriented and model-driven approach','2014','0','Business Process Modeling;MDA (Model Driven Architecture);Non-Functional Requirements (NFR);SOA(Service Oriented Architecture);Web services (WS);automatic transformations','To face the problems of scalability and complexity of information systems (IS), conceptual models must be able to understand the requirements needed for its development. Beyond the consideration of functional requirements, other more critical requirements have emerged: Non-functional requirements to reflect complex situations that occur in the real world. In this work, we introduce an approach for the integration of non-functional requirements in the conception of information systems. The proposed approach is an approach based on service-oriented architectures (SOA), model driven architecture (MDA), and automatic transformations of models.','2014 IEEE Eighth International Conference on Research Challenges in Information Science (RCIS)',1,'A. Bouain; A. El Fazziki; M. Sadgal','ieee/service oriented architecture security.csv','ieee','\0'),(1216,'Mobile Cloud Computing in Healthcare System','2015','0',' Mobile Cloud Computing Mobile web services healthcare Cloud Computing Medical Cloud Multi Agent System Multi Agent System','Abstract Mobile Cloud Computing (MCC) is a potential technology for mobile web services. Accordingly, we assume that MCC is likely to be of great avail to healthcare domain. MCC offers new kinds of services and facilities for patients and caregivers. In this regard, we have tried to propose a new mobile medical web service system. The proposed system called Medical Cloud Multi Agent System is a complex system which integrates MCC and Multi Agent System in healthcare with view to improving healthcare system.','',1,'Hanen JemalZied KechaouMounir Ben AyedAdel M. Alimi','springer/service oriented architecture security.csv','springer',''),(1217,'Service provisioning middleware for wireless sensor network','2016','','Middleware; Service provisioning; Service-oriented architecture; Wireless sensor network','Earlier, wireless sensor network (WSN) applications tended to follow the traditional format of being specific to a device. Later, when applications evolved integrating heterogeneous devices, it rendered difficulty in enforcing a common standard among all the diverse devices. In order to handle this, a lot of WSN middleware platforms emerged to bind the application interaction with the heterogeneous devices through heterogeneous interfaces. This started increasing the service-based applications while decreasing the device-based applications. Apart from not only providing the classic task of reading the information from the sensor network, the middleware support were extended to address interoperability, management, security, and privacy. However, still there exists an important issue, which many of the existing middleware fail to address. For instance, the network design scenario varies depending on the application context. However, most of the existing middleware operate on the default network infrastructure and data dissemination protocol to collect the data and perform other tasks on the network. Therefore, there is a requirement to include support for customizing the network configuration for an application requirement with respect to its context. Hence, in this work, a service provisioning middleware based on service-oriented architecture (SOA) is proposed. To support network customization, in the middleware layer, a decision algorithm is proposed. It is used for generating the configuration file according to the application requirement. This service provisioning middleware would serve as a generic model for adapting to the required network environment. © Springer India 2016.','',1,'Sasirekha S., Swamynathan S.','scopus/service oriented architecture security.csv','scopus',''),(1218,'The integration of an RE method and AHP: A pilot study in a large Swiss bank','2013','0','Analytic Hierarchy Process (AHP);Banking;Requirements Engineering;SEAM;Service Oriented Architecture (SOA);Switzerland','This paper reports on a pilot study of the integration between the Systemic Enterprise Architecture Method (SEAM) and the Analytic Hierarchy Process (AHP) in a requirements engineering project. The objective of the project, conducted in one of the major banks in Switzerland, was to select a common SOA tool that could satisfy the needs of two of the bank\'s main business units, investment and private banking. SEAM provided help in identifying stakeholders, eliciting their requirements, and analyzing these requirements. The resulting requirements were then grouped and translated into selection criteria for the alternative SOA tools. Based on these criteria, the stakeholders chose the tool to be purchased using AHP. We describe the project, the challenges we faced and the lessons learned. These relate to the nature and traceability of requirements, to the requirements elicitation process and to the relations between the bank\'s business units.','2013 21st IEEE International Requirements Engineering Conference (RE)',1,'A. Golnam; G. Regev; A. Wegmann; S. Kyriakopoulou','ieee/service oriented architecture security.csv','ieee','\0'),(1219,'Proceedings - 4th IEEE International Conference on Computer and Communication Technology, ICCCT 2013','2013','','','The proceedings contain 43 papers. The topics discussed include: multiplier-less VLSI architecture of 1-D Hilbert transform pair using biorthogonal wavelets for QCM-SS image watermarking; bandwidth enhancement of RMPA using ENG meta materials at THz; efficient public verifiability and data dynamics for storage security in hybrid clouds; enterprise transformation to service oriented architecture from legacy applications; a payload distribution method for high capacity image steganography; independent histogram equalization using optimal threshold for contrast enhancement and brightness preservation; content-based image classification using PSO-SVM in fuzzy topological space; cluster based ant-intelligent search algorithm for unstructured peer-to-peer network; diabetes mellitus forecast using different data mining techniques; hybrid recommender system based on fuzzy clustering and collaborative filtering; and exploiting the anomaly detection for high dimensional data using descriptive approach of data mining.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus','\0'),(1220,'Web services workflow for power system security assessment','2005','5','','This paper presents a service-oriented platform for performing efficient and scalable on-line power system security analysis. This analysis is a complex, large-scale, and compute-intensive problem whose solution requires different distributed resources and functionalities. These can be both high-level services provided by organizations belonging to different functional areas of electric industry and low-level services provided by service providers on the Internet. The platform described in the paper is able to integrate services of different kinds, such as real-time data acquisition from several sources, high computational power and data storage capabilities, to perform complex computations on large scale distributed systems. The paper discusses a Web services-based implementation of the platform, which is centered on a BPEL-modeled workflow enactor able to exploit a grid computing middleware to execute compute intensive code.','2005 IEEE International Conference on e-Technology, e-Commerce and e-Service',2,'Q. Morante; N. Ranaldo; E. Zimeo','ieee/bpel security.csv','ieee','\0'),(1221,'Coupling climate and hydrological models: Interoperability through Web Services','2013','15','Climate; Hydrology; Modeling; Modeling frameworks; Service-oriented architectures','Understanding regional-scale water resource systems requires understanding coupled hydrologic and climate interactions. The traditional approach in the hydrologic sciences and engineering fields has been to either treat the atmosphere as a forcing condition on the hydrologic model, or to adopt a specific hydrologic model design in order to be interoperable with a climate model. We propose here a different approach that follows a service-oriented architecture and uses standard interfaces and tools: the Earth System Modeling Framework (ESMF) from the weather and climate community and the Open Modeling Interface (OpenMI) from the hydrologic community. A novel technical challenge of this work is that the climate model runs on a high performance computer and the hydrologic model runs on a personal computer. In order to complete a two-way coupling, issues with security and job scheduling had to be overcome. The resulting application demonstrates interoperability across disciplinary boundaries and has the potential to address emerging questions about climate impacts on local water resource systems. The approach also has the potential to be adapted for other climate impacts applications that involve different communities, multiple frameworks, and models running on different computing platforms. We present along with the results of our coupled modeling system a scaling analysis that indicates how the system will behave as geographic extents and model resolutions are changed to address regional-scale water resources management problems. © 2013 Elsevier Ltd.','',1,'Goodall J.L., Saint K.D., Ercan M.B., Briley L.J., Murphy S., You H., DeLuca C., Rood R.B.','scopus/service oriented architecture security.csv','scopus',''),(1222,'Collaborative Drawing Annotations on Web Videos','2015','0','','Abstract Collaborative Drawing over a computer network, in particular on videos, usually requires some complex client-server architecture. In this paper, we want to demo an approach with the following distinctive features. On the client side we enable peer-to-peer collaborative video drawing in recent Web browsers supporting WebRTC. Developers can therefore embed it in arbitrary Web pages and users do not need to install any additional software. For persistence we use a microservice driven cloud approach which can be set up easily. All components are open source to facilitate wide use and further development. A use case evaluation showed promising results and will be presented in the demo.','',1,'István KorenPetru NicolaescuRalf Klamma','springer/microservice security.CSV','springer',''),(1223,'Configuring trust model for cloud computing: Decision exploration using fuzzy reasoning','2015','','Cloud computing; decision tree; fuzzy projection; middleware; security threats; trust','The concept of cloud computing enhances the on-demand network access expediently to share a pool of configurable resources. The major advantage of cloud computing has been accomplished by business organizations through the use of shared services, service-oriented architecture and virtualizations. Cloud computing is deployed by the third-party or web-based providers. Therefore, security component would be considered all the layers of the cloud architecture. In this paper, a secured and trusted cloud system is proposed. Security could be embedded in middleware architecture of the cloud system. Threats related to the cloud security are dynamic in nature and recurrently changing the types of attacks encountered over time. Therefore, a computationally intelligent and adaptive decision mechanism based on fuzzy rules is introduced to take a proper decision according to the contextual variables. Fuzzy decision maker identify the anomalies and sustain the trust of the cloud computing. © 2015 IEEE.','',1,'Sarkar M., Banerjee S., Balas V.E.','scopus/service oriented architecture security.csv','scopus',''),(1224,'Proxy Mobile IPv6 Handover Management in Vehicular Networks: State of the Art, Taxonomy and Directions for Future Research','2015','1',' IP mobility in VANET V2I PMIPv6 NEMO Seamless handoff Handover latency','Abstract In vehicular communication networks, to facilitate the variety of intelligent transportation system (ITS) applications, handover management is considered as the one of the most challenging research issues. The most compatible and interoperable handover management solutions are designed based on IP mobility protocols. However, due to the unique characteristics of vehicles such as high velocity, IP mobility management protocols are still unacceptable for ITS real-time applications that are sensitive to network latencies. Thus, whenever the vehicle roams between two domains, which is most likely to occur in vehicular networks, its reachability status will be broken-down causing high handover latency and inevitable traffic loss. Recently, proxy mobile IPv6 (PMIPv6) has been proposed to support the mobility management without any intervention of the mobile user in the mobility-related signaling. As PMIPv6 will be deployed in the wireless technologies for next generation networks (i.e., LTE/LTE-advanced, WiFi and WiMAX), vehicular ad hoc networks (VANETs) are expected to employ PMIPv6 protocol in vehicle to infrastructure connection as well. In this paper, we introduce a comprehensive review of the state of the art of PMIPv6 handover management in VANET. We present a new taxonomy and classify the existing schemes according to different considerations. Finally, we outline several open issues and handoff management design considerations as a direction for future research.','Wireless Personal Communications',1,'Mohammed BalfaqihMahamod IsmailRosdiadee NordinZain A. Balfaqih','springer/service oriented architecture security.csv','springer',''),(1225,'[Front-cover]','2013','0','','The following topics are dealt with: software testing; software verification; software validation; engineering safety system; security system; mutation analysis; test case selection; software refactorings; software defect localization; software reachability; software maintainability; data processing; service-oriented architecture; Web services; combinatorial testing; UML; regression testing; and security testing.','Software Testing, Verification and Validation Workshops (ICSTW), 2013 IEEE Sixth International Conference on',1,'','ieee/service oriented architecture security.csv','ieee','\0'),(1226,'Contribution to a Rigorous Analysis of Web Application Frameworks','2012','1','','Abstract We suggest an approach for accurate modeling and analysis of web application frameworks.','',2,'Egon BörgerAntonio CisterninoVincenzo Gervasi','springer/bpel security.csv','springer','\0'),(1227,'A top-down method for secure SOA-based B2B processes','2010','','B2B; BPMN; SOA; WS-BPEL; WS-CDL','Designing secure B2B processes is a challenging task. The business partners have to agree on a common data format and meaning as well as on the security requirements each partner has to fulfill. In this paper we propose a top-down method to design secure B2B processes in the context of service oriented architectures (SOA). In this method, the Web Services Choreography Description Language (WS-CDL) is used to describe the global behavior of a B2B process, which serves as contractual basis for the collaboration between business partners. The global security requirements are represented in a separate XML-based descriptor document. The local behavior for the individual business partners can be generated from the WS-CDL specification using the abstract Web Services Business Process Execution Language (WS-BPEL). WS-BPEL is used in this step solely to describe externally observable message exchange behavior of each business partner involved, without revealing their internal implementation. These generated abstract WS-BPEL processes are the starting point for implementing new local business processes. The local security requirements for each business partner can be generated from the global security descriptor document. Finally, the implemented WS-BPEL processes are deployed in a suitable WS-BPEL engine.','',2,'Madiesh M., Wirtz G.','scopus/bpmn security.csv','scopus','\0'),(1228,'A Graphical Audit Facility for Data Processing and Its Evaluation with Users','2012','0','','Abstract Personally-identifiable information (PII) is increasingly processed in a distributed way. This makes it much harder for individuals to oversee how their PII is used. In the legal systems of many countries, processing of PII is subject to restrictions. In particular, companies have to inform an individual on how they use his PII, and which external parties they transfer it to. We hypothesize that naïve approaches like log messages or plain text are not sufficient to this end. We in turn have developed a user-friendly auditing facility based on business processes (BPs). It visualizes data processing in real time, using the graphical process models one would deploy on a BP engine for execution. We also propose an approach to let a BP-management system generate the necessary audit events at runtime. An evaluation of realistic scenarios with users shows that our tool helps them to understand how their PII is used.','',2,'Jens MüllerMurat KavakKlemens Böhm','springer/bpel security.csv','springer','\0'),(1229,'Microservices validation: Mjolnirr platform case study','2015','0','Cloud computing;Microservices;PaaS;Services Oriented Architecture;testing;validation','Microservice architecture is a cloud application design pattern that implies that the application is divided into a number of small independent services, each of which is responsible for implementing of a certain feature. The need for continuous integration of developed and/or modified microservices in the existing system requires a comprehensive validation of individual microservices and their co-operation as an ensemble with other microservices. In this paper, we would provide an analysis of existing methods of cloud applications testing and identify features that are specific to the microservice architecture. Based on this analysis, we will try to propose a validation methodology of the microservice systems.','Information and Communication Technology, Electronics and Microelectronics (MIPRO), 2015 38th International Convention on',1,'D. I. Savchenko; G. I. Radchenko; O. Taipale','ieee/microservice security.CSV','ieee',''),(1230,'A Solution for the Naming Problem for Name-Centric Services','2014','0',' Content-Centric Networking Wired/Wireless Environments Service Development Service Management','Abstract In recent past name-centric or content-centric networking (CCN) has gained substantial attention in the networking community. In a further development step name-centric service architecture enables the flexible placement and distribution of services in the network especially in a heterogeneous environment of wired and wireless (sensor) networks. However, the problem of structuring and creating hierarchies for names in name-centric networks is not solved yet. E.g. there is no configuration of service names in name-centric service WSN, no concept of unsolicited names or link-local names in CCN. In IP networks, DHCP or IPv6 auto-configuration is available, but no equivalent technique exists for CCN. We analyze the naming problem in the software development life cycle for name-centric services in WSN and propose a structure, hierarchy, and configuration mechanism for names. The paper introduces the overall concept and preliminary steps of implementation.','',1,'Torsten TeublerMohamed A. HailHorst Hellbrück','springer/service oriented architecture security.csv','springer','\0'),(1231,'[Title page i]','2008','0','','The following topics are dealt with: Web service discovery engine; GLUE2; formal concept analysis; analytical hierarchy process; automatic timed test case generation; WS-BPEL compositions; discrete-event simulations; automatic protocol conformance checking; workflow development security; fault-tolerant composite service; service-oriented enterprise health care integration; information flow-sensitive business processes; mobile networks; aggregate signatures; and intrusion detection.','on Web Services, 2008. ECOWS \'08. IEEE Sixth European Conference',2,'','ieee/bpel security.csv','ieee','\0'),(1232,'Ontology-Based Data Access for Maritime Security','2016','0',' Maritime security EMSec RMSAS Geospatial OBDA Ontop SPARQL R2RML OWL','Abstract The maritime security domain is challenged by a number of data analysis needs focusing on increasing the maritime situation awareness, i.e., detection and analysis of abnormal vessel behaviors and suspicious vessel movements. The need for efficient processing of dynamic and/or static vessel data that come from different heterogeneous sources is emerged. In this paper we describe how we address the challenge of combining and processing real-time and static data from different sources using ontology-based data access techniques, and we explain how the application of semantic web technologies increases the value of data and improves the processing workflow in the maritime domain.','',1,'Stefan BrüggemannKonstantina BeretaGuohui XiaoManolis Koubarakis','springer/service oriented architecture security.csv','springer',''),(1233,'Supporting different process views through a Shared Process Model','2015','0',' Business process modeling Business–IT gap Model synchronization','Abstract Different stakeholders in the business process management (BPM) life cycle benefit from having different views onto a particular process model. Each view can show, and offer to change, the details relevant to the particular stakeholder, leaving out the irrelevant ones. However, introducing different views on a process model entails the problem to synchronize changes in case that one view evolves. This problem is especially relevant and challenging for views at different abstraction levels. In this paper, we propose a Shared Process Model that provides different stakeholder views at different abstraction levels and synchronizes changes made to any view. We present detailed requirements and a solution design for the Shared Process Model. We also present an overview of our prototypical implementation to demonstrate the feasibility of the approach. Finally, we report on a comprehensive evaluation of the approach on real Business–IT modeling scenarios.','Software & Systems Modeling',2,'Jochen KüsterHagen VölzerCédric FavreMoisés Castelo BrancoKrzysztof Czarnecki','springer/bpel security.csv','springer','\0'),(1234,'A web service-based multi-disciplinary collaborative simulation platform for complicated product development','2014','1',' Web service Service broker Register center Multi-disciplinary simulation UDDI','Abstract In a ubiquitous computing environment, computer-aided engineering (CAE) software packages can be encapsulated as a service and be accessible through networks, which is essential to small and medium enterprises (SMEs) for complex product design with limited computing resources. In this paper, a web service-based platform for the multi-disciplinary collaborative simulation (MDCSS) is proposed, which is a software-sharing environment. In MDCSS, although the CAE software packages reside in their remote application program servers, they are registered in the service center to be accessible according to the computing requests. Given the increasing CAE services with the same function, a quality of service (QoS)-aware scheduling method with real-time and countable parameters is proposed to adaptively select the most efficient web service among alternatives. Through an additional layer and an application broker for service scheduling, MDCSS allows allocating services automatically, keeping load balance, and minimizing human intervention. This platform is reusable, scalable, and efficient for implementation, which enables the end user to invoke the remote CAE software ubiquitously in a “pay-as-you-use” fashion.','The International Journal of Advanced Manufacturing Technology',1,'Songhua MaLing Tian','springer/soa security.csv','springer','\0'),(1235,'Delivering scalable video with QoS to the home','2012','13',' QoS SVC H.264 Adaptation Monitoring UPnP PQoS','Abstract User satisfaction is a key factor in the success of novel multimedia services. Yet, to enable service providers and network operators to control and maximize the quality (QoS, QoE) of delivered video streams, quite some challenges remain. In this paper, we particularly focus on three of them. First of all, objectively measuring video quality requires appropriate quality metrics and methods of assessing them in a real-time fashion. Secondly, the recent Scalable Video Coding (SVC) format opens opportunities for adapting video to the available (network) resources, yet the appropriate configuration of video encoding as well as real-time streaming adaptation are largely unaddressed research areas. Thirdly, while bandwidth reservation mechanisms in access/core networks do exist, service providers lack a means for guaranteeing QoS in the increasingly complex home networks (which they are not in full control of). In this paper we offer a broad view on these interrelated issues, by presenting the developments originating in a Flemish research project (including proof-of-concept demonstrations). From a developmental perspective, we propose an architecture combining a real-time video quality monitoring platform, on-the-fly adaptation (optimizing the video quality) and QoS reservation in a heterogeneous home network based on UPnP QoS v3. From a research perspective, we propose a new subjective test procedure that revealed user preference for temporal scalability over quality scalability. In addition, an extensive study on optimizing HD SVC encoding in IPTV scenarios with fluctuating bandwidth showed that under certain bandwidth constraints (prohibiting sufficient fidelity) spatial scalability is a better option than quality scalability.','Telecommunication Systems',1,'Chris DevelderPeter LambertWim Van LanckerStefaan MoensRik Van de WalleJelle NelisDieter VerslypeSteven LatréNicolas StaelensNick VercammenBrecht VermeulenBart MasscheleinTom Van LeeuwenJean-Francois MacqKris StruyveFilip De Turck','springer/service oriented architecture security.csv','springer',''),(1236,'Fuzzy Authentication Using Interaction Provenance in Service Oriented Computing','2015','0','Access Control;Authentication;Events;Fuzzy;Interaction Provenance;Persona;Security','In service oriented computing, authentication factors have their vulnerabilities when considered exclusively. Cross-platform and service composition architectures require a complex integration procedure and limit adoptability of newer authentication models. Authentication is generally based on a binary success or failure and relies on credentials proffered at the present moment without considering how or when the credentials were obtained by the subject. The resulting access control engines suffer from rigid service policies and complexity of management. In contrast, social authentication is based on the nature, quality, and length of previous encounters with each other. We posit that human-to-machine authentication is a similar causal effect of an earlier interaction with the verifying party. We use this notion to propose interaction provenance as the only unified representation model for all authentication factors in service oriented computing. Interaction provenance uses the causal relationship of past events to leverage service composition, cross-platform integration, timeline authentication, and easier adoption of newer methods. We extend our model with fuzzy authentication using past interactions and linguistic policies. The paper presents an interaction provenance recording and authentication protocol and a proof-of-concept implementation with extensive experimental evaluation.','Services Computing (SCC), 2015 IEEE International Conference on',1,'R. Khan; R. Hasan','ieee/service oriented architecture security.csv','ieee',''),(1237,'Framework for the model driven development of secure web services composition','2012','3','Business process modelling; Domain specific language; Model driven security; Security goals; Service oriented architecture; Services composition','Now a day\'s enterprises are implementing their WIS using web services technology by composing the web services. They are using the MDA approach to develop the WIS and UML is used as a modelling language for business process modelling. Security is not defined during the early phases of WIS development i.e. during designing the service composition and left to developers. Properly configuring security requirements for service composition is quite difficult for developers because they are not security experts; furthermore, service composition\'s security is cross-domain and all required information is not available at downstream phases. A Model Driven Security framework is proposed for the development of secure web services composition; where along with the business process modelling, using the UML Activity diagram, business domain expert also model the security objectives. Adding security during the design phase helps to save the time and effort during the implementation and verification of security in the SOA applications. Furthermore, specifying security requirements at abstract level, help the architectural team in choosing the different and potentially better security mechanisms. As a proof of work the proposed framework is applied to a typical business process of healthcare domain.','',1,'Saleem M.Q., Jaafar J.B., Hassan M.F.','scopus/service oriented architecture security.csv','scopus','\0'),(1238,'Robust handwriting extraction and lecture video summarization','2016','0',' Video segmentation Video summarization Notes extraction Image processing','Abstract In e-Learning research, teachers can record lecture videos in e-class and upload these lecture videos to e-Learning system themselves. Once lecture videos and handouts can be generated automatically in traditional classroom, it can help students with self-learning and teacher with lecture content development for e-Learning services. This paper proposed a teaching assistant system based on computer vision that can help in content development for e-Learning services. Lecture videos are taken by using two cameras and merged on both sides so that students can see a clear and complete teaching content. The k-means segmentation is used to extract board area and then connected component technique helps refill the board area which is covered by lecturer’s body. Then we use adaptive threshold to extract handwritings in various light conditions and time-series denoising technique is designed to reduce noise. According to extracted handwritings, the lecture videos can be automatically structured with high level of semantics. The lecture videos are segmented into video clips and all key-frames are integrated as handouts of the education videos.','Multimedia Tools and Applications',1,'Greg C. LeeFu-Hao YehYing-Ju ChenTao-Ku Chang','springer/soa security.csv','springer',''),(1239,'QoS-Aware and Ontology-Driven Autonomic Service Bus','2012','0','Architecture;Autonomic;Collaboration;Enterprise Service Bus;Interoperability;Ontology;Quality of Service','Distributed applications and more generally distributed systems are increasingly based on services that are integrated to implement complex functional processes. Diversity and heterogeneity of these services raise many needs for the integration. To meet these needs, the Enterprise Service Bus has been proposed for the development of standard based collaborative strategies between services and applications. However the lack of semantic, the competitiveness between services and the dynamicity of service-oriented architectures contexts (mobility, increase of consumers and providers of services, etc.) are the reason of unpredictable events such as service unavailability, high overhead and response time, decrease of reliability, security, etc. Those events ask to adapt the established integration strategies to ensure or improve performance and Quality of Service offered by the Enterprise Service Bus. In this context, we propose a QoS-aware and ontology-driven Autonomic Service Bus able to take into account non functional properties\' semantics in order to offer self-configuration and self-adaptation functionalities. Beyond the traditional objectives of enterprise service buses, our proposal includes the use of well known transport and network mechanisms to take into account autonomously both functional and non functional properties asked or offered by services consumers or providers.','Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE), 2012 IEEE 21st International Workshop on',1,'C. Diop; E. Exposito; C. Chassot; D. Jlidi','ieee/service oriented architecture security.csv','ieee','\0'),(1240,'Modeling robustness behavior using aspect-oriented modeling to support robustness testing of industrial systems','2012','18',' Aspect-oriented modeling UML state machines Robustness UML profile Crosscutting behavior Robustness testing','Abstract Model-based robustness testing requires precise and complete behavioral, robustness modeling. For example, state machines can be used to model software behavior when hardware (e.g., sensors) breaks down and be fed to a tool to automate test case generation. But robustness behavior is a crosscutting behavior and, if modeled directly, often results in large, complex state machines. These in practice tend to be error prone and difficult to read and understand. As a result, modeling robustness behavior in this way is not scalable for complex industrial systems. To overcome these problems, aspect-oriented modeling (AOM) can be employed to model robustness behavior as aspects in the form of state machines specifically designed to model robustness behavior. In this paper, we present a RobUstness Modeling Methodology (RUMM) that allows modeling robustness behavior as aspects. Our goal is to have a complete and practical methodology that covers all features of state machines and aspect concepts necessary for model-based robustness testing. At the core of RUMM is a UML profile (AspectSM) that allows modeling UML state machine aspects as UML state machines (aspect state machines). Such an approach, relying on a standard and using the target notation as the basis to model the aspects themselves, is expected to make the practical adoption of aspect modeling easier in industrial contexts. We have used AspectSM to model the crosscutting robustness behavior of a videoconferencing system and discuss the benefits of doing so in terms of reduced modeling effort and improved readability.','Software & Systems Modeling',1,'Shaukat AliLionel C. BriandHadi Hemmati','springer/service oriented architecture security.csv','springer',''),(1241,'Copyright page','2015','','','The following topics are dealt with: distributed systems; communication protocols and services engineering; SDN and security; service-oriented architectures, Web services, peer to peer network; mobile networks; routing; sensor networks, ad hoc networks, Internet of Things; and vehicular networks, ICN, resource sharing.','2015 International Conference on Protocol Engineering (ICPE) and International Conference on New Technologies of Distributed Systems (NTDS)',1,'','ieee/service oriented architecture security.csv','ieee',''),(1242,'An Approach to Automating the Integration of the Access Control Policies for Web Services','2013','2','Access Control Polices;Coordinating;Model Driven Architecture;Model Transformation;Quality of Service;Web services','Access Control Policies are one of the key challenges affecting Service oriented Architectures (SoA). This is due to the nature of SoA, which is based on the distributed invocations of Web services. This makes it crucial to develop a method of on-line assignment for Access Control Policies and Web services. This paper proposes a service referred to as Access Control Policies (AC Polices), which allows the simulation and verification of information flow security for access control policies. It extends an existing approach that was proposed to coordinate invocations of Web services from a performance perspective, to harnesses the capability of Model-Driven Architecture (MDA) to automate the creation and integration of the Protocol Service and Access Control Policies (AC Polices) service, which are computed, generated and integrated automatically into the system. As a proof of the concept, the suggested approach was implemented in the form of an Oracle JDeveloper plugin. The paper concludes with the empirical results, detailing the performance-related aspects of the proposed method.','Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD), 2013 14th ACIS International Conference on',1,'M. Alodib','ieee/service oriented architecture security.csv','ieee','\0'),(1243,'Based-on SOA security policy for transverse networking system','2012','','Interface Standard; Networking System; Policy Security; SOA; TIPS','The transverse networking system based on financial, tax department, treasury, and banks is established for exchanging amounts of critical data. This high integrated and widely open system requires guarantee for higher security. Considering the security of transverse networking system, we combine the national platform based on SOA with P3DR2 dynamic security control mechanism. In this paper, we propose a new security policy for transverse networking system, and the policy enables to reduce the frequency access to national systems by provincial systems using L2 cache; meanwhile system security based on the proposed security policy can also be guaranteed.','',1,'Gu S., Li Z., Liu M., Sallam A., Huang L.','scopus/soa security.csv','scopus','\0'),(1244,'ACaaS: Access Control as a Service for IaaS Cloud','2013','1','access control;cloud computing;security','Organizations and enterprises have been outsourcing their computation, storage, and workflows to Infrastructure-as-a-Service (IaaS) based cloud platforms. The heterogeneity and high diversity of IaaS cloud environment demand a comprehensive and fine-grained access control mechanism, in order to meet dynamic, extensible, and highly configurable security requirements of these cloud consumers. However, existing security mechanisms provided by IaaS cloud providers do not satisfy these requirements. To address such an emergent demand, we propose a new cloud service called access control as a service (ACaaS), a service-oriented architecture in cloud to support multiple access control models, with the spirit of plug gable access control modules in modern operating systems. As a proof-of-concept reference prototype, we design and implement ACaaS_RBAC to provide role-based access control (RBAC) for Amazon Web Services (AWS), where cloud customers can easily integrate the service into enterprise applications in order to extend RBAC policy enforcement in AWS.','Social Computing (SocialCom), 2013 International Conference on',1,'R. Wu; X. Zhang; G. J. Ahn; H. Sharifi; H. Xie','ieee/service oriented architecture security.csv','ieee','\0'),(1245,'On the improvement of active XML (AXML) representation and query evaluation','2013','4',' Active XML AXML representation AXML query evaluation algorithm','Abstract Active XML (AXML) as intensional data aims to exploit potential computing powers of XML, Web services and P2P architecture. It is considered a powerful extension of XML to deal with dynamic XML data from autonomous and heterogeneous data sources on a very large scale via Web services. However, AXML is still at an immature stage and various issues need to be investigated before it can be accepted widely. This paper will focus on two issues facing the current AXML system, namely the representation and the query process. We propose superior representation and improved query evaluation for AXML. For justification purposes, we compare our proposed algorithms with the existing algorithms.','Information Systems Frontiers',1,'Binh Viet PhanEric PardedeWenny Rahayu','springer/service oriented architecture security.csv','springer','\0'),(1246,'Cloud repositories for research data – addressing the needs of researchers','2013','0',' Hybrid cloud storage Fedora repository DuraCloud Cost optimisation Rules engine','Abstract This paper describes the problems and explores potential solutions for providing long term storage and access to research outputs, focusing mainly on research data. The ready availability of cloud storage and compute services provides a potentially attractive option for curation and preservation of research information. In contrast to deploying infrastructure within an organisation, which normally requires long lead times and upfront capital investment, cloud infrastructure is available on demand and is highly scalable. However, use of commercial cloud services in particular raises issues of governance, cost-effectiveness, trust and quality of service. We describe a set of in-depth case studies conducted with researchers across the sciences and humanities performing data-intensive research, which demonstrate the issues that need to be considered when preserving data in the cloud. We then describe the design of a repository framework that addresses these requirements. The framework uses hybrid cloud, combining internal institutional storage, cloud storage and cloud-based preservation services into a single integrated repository infrastructure. Allocation of content to storage providers is performed using on a rules-based approach. The results of an evaluation of the proof-of-concept system are described.','Journal of Cloud Computing: Advances, Systems and Applications',1,'Simon WaddingtonJun ZhangGareth KnightJens JensenRoger DowningCheney Ketley','springer/service oriented architecture security.csv','springer','\0'),(1247,'A cloud-based model for hospital information systems integration','2014','','Cloud Computing; HIS; Integration; SOA','Integration of hospital information systems (HIS) is an important area and one the basic requirements of hospitals since it increases quality of care and at the same time reduces costs of creating, upgrading, updating and keeping up with technology and healthcare industry standards and information technology. Cloud computing with features like multitenancy, massive scalability, elasticity, pay as you go and self-provisioning resources help healthcare organizations achieve their goals. This paper presents a cloud computing model for integration of hospital information systems which is based on service oriented architecture. Having considered the requirements of HIS integration, the proposed model enables convenient access for all system components including both service provider and organizational components. To ensure security and high level of availability required for medical information, a Backup and Recovery Cloud service is included in our model to provide the users with the ability to retrieve information in critical situations. In addition, a minimum level of local basic services is included in our model that makes possible retrieving information when the hospital faces network disconnection from the cloud. A scenario-based evaluation method is used for assessment of the proposed model which shows adopting cloud computing technology is an effective way for integrating health information systems. © 2014 IEEE.','',1,'Setareh S., Rezaee A., Farahmandian V., Hajinazari P., Asosheh A.','scopus/service oriented architecture security.csv','scopus','\0'),(1248,'Challenges of Future e-Infrastructure Governance','2012','0',' e-Infrastructures governance service-orientation','Abstract A shift of interest of both providers and consumers from resource provisioning to a system of infrastructure services as well for a governance system for e-Infrastructures based on a user-centric approach is registered nowadays. Applying service level management tools and procedures in e-Infrastructure service provision practices allow users, service providers and funding agencies to investigate e-Infrastructure services in view of individual use cases. The shift should be sustained by legal structures, strategic and financial plans, as well as by openness, neutrality and diversity of resources and services. e-IRG as an e-infrastructure policy forum envisioned these trends and needs and expressed its position in its recent white paper that is shortly presented and discussed from a perspective of building future research agendas of individual teams.','',1,'Dana Petcu','springer/service oriented architecture security.csv','springer','\0'),(1249,'Intelligent GIS Conceptualization','2014','0',' GIS IGIS Artificial intelligence Inference machine Ontology','Abstract The concept of an intelligent geographic information system (IGIS) is not new. However, the term represents a complex set of ideas and methods that cannot be combined into one method, theory, or concept. This chapter attempts to describe this new domain in geographic information system science and technology. Here, we present selected results of theoretical investigations and technological developments to share the vision of IGIS.','',1,'Vasily V. Popovich','springer/service oriented architecture security.csv','springer','\0'),(1250,'A model for implementing security at application level in service oriented architecture','2014','','Application Level Security in SOA; Service Oriented Architecture (SOA); Service Oriented Computing (SOC); Service Oriented Software (SOS); SOA security policy; Web Services Architecture (WSA)','Securing the communication channels only, cannot guaranty end-to-end security in SOA based systems. To provide complete security, there is need to provide security at application level for SOA based systems. But it is a great challenge for the developer of the web services to implement the security during development of the web services. In this paper we have proposed a model, which will automate the generation of security policies for web services. This system will facilitate and enable the developers of the web services, to generate and implement security policies during the development of the web services, without having intensive knowledge of the security domain and the underlying system. The proposed system will also make the application level experts independent of the security experts for the generation and implementation of the security policy for the development of the web services. © 2014 Academy Publisher.','',1,'Nabi S., Rehman S.U., Fong S., Aziz K.','scopus/service oriented architecture security.csv','scopus','\0'),(1251,'Event Pattern Discovery for Cross-Layer Adaptation of Multi-cloud Applications','2014','1',' Cloud computing SOA adaptation modeling pattern discovery','Abstract As Cloud computing becomes a widely accepted service delivery platform, developers usually resort in multi-cloud setups to optimize their application deployment. In such heterogeneous environments, during application execution, various events are produced by several layers (Cloud and SOA specific), leading to or indicating Service Level Objective (SLO) violations. To this end, this paper proposes a meta-model to describe the components of multi-cloud Service-based Applications (SBAs) and an event pattern discovery algorithm to discover valid event patterns causing specific SLO violations. The proposed approach is empirically evaluated based on a real-world application.','',1,'Chrysostomos ZeginisKyriakos KritikosDimitris Plexousakis','springer/service oriented architecture security.csv','springer','\0'),(1252,'Toward Systematic Integration of Security Policies into Web Services','2011','0','AOP;BPEL;RBAC;Security Policies;Web Services Security','In this paper, we introduce our approach for the automatic generation of BPEL (Business Process Execution Language) aspects from security policies. It is based on a synergy between policies, Aspect-Oriented Programming (AOP) and composition of web services. Our proposed approach allows first to transform security policies into BPEL aspects. Then, the generated aspects are weaved in the BPEL process of the composed web services at runtime [1]. The main contributions of our approach are: (1) Describing dynamic security policies, (2) generating automatically the BPEL aspects, (3) separating the business and security concerns of composite web services, and hence developing them separately (4) allowing the modification of the dynamic security features and web services composition at run time and (5) providing modularity for modeling cross-cutting concerns between web services.','Intelligence and Security Informatics Conference (EISIC), 2011 European',2,'A. Mourad; H. Otrok; S. Ayoubi','ieee/bpel security.csv','ieee','\0'),(1253,'Software Development Methods in the Internet of Things','2013','0','','Abstract In the Internet of Things, billions of networked and software- driven devices will be connected to the Internet. They can communicate and cooperate with each other to function as a composite system. This paper proposes the AMG (abstract, model and generate) method for the development of such composite systems. With AMG, the development of software application can be done in an automatic manner, and therefore reducing the cost and develpment time. The method has been prototyped and tested with use cases.','',2,'Selo Sulistyo','springer/bpel security.csv','springer','\0'),(1254,'Automated validation of trust and security of service-oriented architectures with the AVANTSSAR platform','2012','1','','Cutting-edge network infrastructures such as Service-Oriented Architectures (SOAs) or, more generally, the Internet of Services (IoS) entail a major paradigm shift in the way ICT systems and applications are designed, implemented, deployed and consumed: they are no longer the result of programming components in the traditional meaning but are built by composing services that are distributed over the network and reconfigured and consumed dynamically in a demand-driven, flexible way. However, the new opportunities opened by the IoS will only materialize if concepts, techniques and tools are provided to ensure security. In fact, deploying services in such network infrastructures entails a wide range of trust and security issues, but solving them is extremely hard since making the service components trustworthy is not sufficient: composing services leads to new, subtle and dangerous, vulnerabilities due to interference between component services and policies, the shared communication layer, and application functionality. Thus, one needs validation of both the service components and their composition into secure service architectures.','High Performance Computing and Simulation (HPCS), 2012 International Conference on',1,'L. Viganó','ieee/service oriented architecture security.csv','ieee','\0'),(1255,'A Service-Oriented Middleware for Building Collaborative UAVs','2014','5',' Unmanned aerial vehicles Middleware Collaborative UAVs Service-oriented computing','Abstract For a while, Unmanned Arial Vehicles (UAVs) use was limited to military applications, however recently UAVs are also used for a wide range of civilian applications. Some of these UAV applications may involve multiple UAVs that must cooperate to achieve a common goal. This kind of applications is termed collaborative UAV applications. This paper investigates the collaborative aspects and challenges of multiple UAV systems. One of the main issues for multiple UAV systems is developing an effective framework to enable the development of software systems for collaborative UAV operations. One possible approach is to rely on service-oriented computing and service-oriented middleware technologies to simplify the development and operations of such applications. This paper discusses how the service-oriented middleware approach can help resolve some of the challenges of developing collaborative UAVs. The paper also proposes a service-oriented middleware architecture that can satisfy the development and operations of such applications.','Journal of Intelligent & Robotic Systems',1,'Nader MohamedJameela Al-JaroodiImad JawharSanja Lazarova-Molnar','springer/service oriented architecture security.csv','springer','\0'),(1256,'Parameters for Service Level Agreements Generation in Cloud Computing','2012','1','','Abstract Current Service Level Agreements are lacking completeness. They often leave out parameters that are important for the consumer. In addition, SLAs are predefined by the service providers and the consumer does not have a say in them. The goal of this paper is to find the important parameters that should initially be included in a Service Level Agreement between a cloud service provider and a cloud service consumer. In this paper we are showing a client-centric view of the SLA. Some examples for SLAs of services in the market are illustrated, in order to show the need to specify, which parameters should be included in the SLAs.','',1,'Mariam Rady','springer/service oriented architecture security.csv','springer','\0'),(1257,'Architecture approach for mobile service security','2014','','Compo-nent architecture model; Component based development; Mobile service architecture; Mobile service frameworks; Mobile service security; SOA (service oriented architecture)','Mobile computing is a relatively new field. While the challenges arising from mobility and the limitations of the portable devices are relatively well understood, there is no consensus yet as to what should be done to address these challenges. A comprehensive solution has to address many different aspects, such as the issue of dynamically changing bandwidth, the power, computational, and other limitations of the portable devices, or the varying availability of services in different environments. A Mobile service is pro-grammable application logic accessible using standard Internet protocols. In this paper, we present our architecture for such adaptive mobile service security applications. We motivated the architecture by classifying likely mobile applications and identified common properties. The architecture intends to be more general than previous work with respect to adaptability, flexibility, and user mobility. We developed various pieces of the overall architecture and collected some preliminary experience with adap-tive mobile applications. We give an overview of the intersection of the areas of software architecture and mobile applications. We consider the mobile applications, which represent the computing functionality designed to migrate across hardware devices at runtime and execute on mobile hardware platforms, and the mobile systems, which are computing applications that include mobile software and hardware elements. © 2014 SERSC.','',1,'Chung Y.','scopus/service oriented architecture security.csv','scopus','\0'),(1258,'An architecture framework for enterprise IT service availability analysis','2014','4',' Systems availability Service availability Downtime Noisy-OR System quality analysis Enterprise Architecture ArchiMate Metamodel OCL','Abstract This paper presents an integrated enterprise architecture framework for qualitative and quantitative modeling and assessment of enterprise IT service availability. While most previous work has either focused on formal availability methods such as fault trees or qualitative methods such as maturity models, this framework offers a combination. First, a modeling and assessment framework is described. In addition to metamodel classes, relationships and attributes suitable for availability modeling, the framework also features a formal computational model written in a probabilistic version of the object constraint language. The model is based on 14 systemic factors impacting service availability and also accounts for the structural features of the service architecture. Second, the framework is empirically tested in nine enterprise information system case studies. Based on an initial availability baseline and the annual evolution of the 14 factors of the model, annual availability predictions are made and compared with the actual outcomes as reported in SLA reports and system logs. The practical usefulness of the method is discussed based on the outcomes of a workshop conducted with the participating enterprises, and some directions for future research are offered.','Software & Systems Modeling',2,'Ulrik FrankePontus JohnsonJohan König','springer/bpel security.csv','springer',''),(1259,'An Exposition of Performance-Security Trade-offs in RANETs Based on Quantitative Network Models','2013','0',' Mobile ad hoc network (MANET) Robotic mobile wireless ad hoc network (RANET) Quality-of-service (QoS) Queueing network (QN) Generalised stochastic Petri net (GSPN)','Abstract Security mechanisms, such as encryption and authentication protocols, require extra computing resources and therefore, have an adverse effect upon the performance of robotic mobile wireless ad hoc networks (RANETs). Thus, an optimal performance and security trade-off should be one of the main aspects that should be taken into consideration during the design, development, tuning and upgrading of such networks. In this context, an exposition is initially undertaken on the applicability of Petri nets (PNs) and queueing networks (QNs) in conjunction with their generalisations and hybrid integrations as robust quantitative modelling tools for the performance analysis of discrete flow systems, such as computer systems, communication networks and manufacturing systems. To overcome some of the inherent limitations of these models, a novel hybrid modelling framework is explored for the quantitative evaluation of RANETs, where each robotic node is represented by an abstract open hybrid G-GSPN_QN model with head-of-line priorities, subject to combined performance and security metrics (CPSMs). The proposed model focuses on security processing and state-based control and it is based on an open generalised stochastic PN (GSPN) with a gated multi-class ‘On–Off’ traffic and mobility model. Moreover, it employs a power consumption model and is linked in tandem with an arbitrary QN consisting of finite capacity channel queues with blocking for ‘intra’ robot component-to-component communication and ‘inter’ robot-to-robot transmission. Conclusions and future research directions are included.','Wireless Personal Communications',1,'Guzlan M. A. MiskeenDemetres D. KouvatsosEsmaeil Habibzadeh','springer/service oriented architecture security.csv','springer','\0'),(1260,'Translation error handling for multi-protocol SOA systems','2015','','Arrowhead; Cyber-physical systems; Error handling; Internet of Things; Protocol translation; SOA; Translation','The IoT research area has evolved to incorporate a plethora of messaging protocol standards, both existing and new, emerging as preferred communications means. The variety of protocols and technologies enable IoT to be used in many application scenarios. However, the use of incompatible communication protocols also creates vertical silos and reduces interoperability between vendors and technology platform providers. In many applications, it is important that maximum interoperability is enabled. This can be for reasons such as efficiency, security, end-to-end communication requirements etc. In terms of error handling each protocol has its own methods, but there is a gap for bridging the errors across protocols. Centralized software bus and integrated protocol agents are used for integrating different communications protocols. However, the aforementioned approaches do not fit well in all Industrial IoT application scenarios. This paper therefore investigates error handling challenges for a multi-protocol SOA-based translator. A proof of concept implementation is presented based on MQTT and CoAP. Experimental results show that multi-protocol error handling is possible and furthermore a number of areas that need more investigation have been identified. © 2015 IEEE.','',1,'Derhamy H., Eliasson J., Delsing J., Pereira P.P., Varga P.','scopus/soa security.csv','scopus',''),(1261,'Modelling and Analysis of Dynamic Reconfiguration in BP-Calculus','2012','0','','Abstract The BP-calculus is a formalism based on the π -calculus and encoded in WS-BPEL. The BP-calculus is intended to specificaly model and verify Service Oriented Applications. One important feature of SOA is the ability to compose services that may dynamically evolve along runtime. Dynamic reconfiguration of services increases their availability, but puts accordingly, heavy demands for validation, verification, and evaluation. In this paper we formally model and analyze dynamic reconfigurations and their requirements in BP-calculus and show how reconfigurable components can be modeled using handlers that are essential parts of WS-BPEL language.','',2,'Faisal AbouzaidJohn MullinsManuel MazzaraNicola Dragoni','springer/bpel security.csv','springer','\0'),(1262,'Profitability and cost management of trustworthy composite services','2012','','','Building business solutions may require combining multiple existing services. In SOA paradigm this can be achieved using composite services. Composite services may be in turn recursively composed with other services into higher level solutions. The number of component services that need to be aggregated may be large and dynamically changing. Additionally, the component services may vary in their trustworthiness and cost and in their importance to the value of the composite service. Therefore, determining and maintaining the optimal composition in terms of its short-term and long-term profitability and building and expanding consumer base for composite service providers are challenging goals especially in the competitive business service environments. This paper addresses how to create profitable, consumer-focused and trustworthy composite services through optimising pricing and managing the cost and the trustworthiness of those services. The techniques described support consumer differentiation, prioritisation of offered services and dynamic capacity-dependent component charging. © 2012 Springer-Verlag.','',1,'Elshaafi H., McGibney J., Botvich D.','scopus/soa security.csv','scopus','\0'),(1263,'Trust-based security-level evaluation method for dynamic service-oriented environments','2015','1','anomaly detection; future Internet; security-level evaluation; service-oriented architecture','Summary A method of decision-making in security-level estimation process of service-based applications in future Internet architecture is proposed. We demonstrate how distributed services can be composed to form an application run within the next-generation network infrastructure and their security level may be assessed. Our approach is illustrated by the experiments carried on exemplary application (virtual laboratory online lab, using future Internet IPv6 QoS architecture), in which our method was evaluated against two types of attacks observed with the use of traffic anomaly detection methods. © 2015 John Wiley & Sons, Ltd.','',1,'Kołaczek G., Juszczyszyn K., ͆wiątek P., Grzech A., Schauer P., Stelmach P., Falas Ł.','scopus/service oriented architecture security.csv','scopus',''),(1264,'Preference and Similarity-Based Behavioral Discovery of Services','2013','3','','Abstract We extend Constraint Automata by replacing boolean constraints with semiring-based soft constraints. The obtained general formal tool can be used to represent preference-based and similarity-based queries, which allow a user more freedom in choosing the behavior of the service to finally use, among all possible choices. A user states his preferences through a “soft” query, and obtains results that satisfy this query with different levels of preference. The soft requirements may involve a parameter data of the service operations, or the (names of the) operations themselves. Moreover, we introduce a first implementation of the search procedure by using declarative (soft) Constraint Programming.','',1,'Farhad ArbabFrancesco Santini','springer/service oriented architecture security.csv','springer','\0'),(1265,'Threats management throughout the software service life-cycle','2014','','','Software services are inevitably exposed to a fluctuating threat picture. Unfortunately, not all threats can be handled only with preventive measures during design and development, but also require adaptive mitigations at runtime. In this paper we describe an approach where we model composite services and threats together, which allows us to create preventive measures at design-time. At runtime, our specification also allows the service runtime environment (SRE) to receive alerts about active threats that we have not handled, and react to these automatically through adaptation of the composite service. A goal-oriented security requirements modelling tool is used to model business-level threats and analyse how they may impact goals. A process flow modelling tool, utilising Business Process Model and Notation (BPMN) and standard error boundary events, allows us to define how threats should be responded to during service execution on a technical level. Throughout the software life-cycle, we maintain threats in a centralised threat repository. Re-use of these threats extends further into monitoring alerts being distributed through a cloud-based messaging service. To demonstrate our approach in practice, we have developed a proof-of-concept service for the Air Traffic Management (ATM) domain. In addition to the design-time activities, we show how this composite service duly adapts itself when a service component is exposed to a threat at runtime. © Erlend Andreas Gjære & Per Hakon Meland This work is licensed under the Creative Commons Attribution License.','',2,'Gjære E.A., Meland P.H.','scopus/bpmn security.csv','scopus',''),(1266,'Cellular Networking Technologies in ITS Solutions: Opportunities and Challenges','2012','0',' ITS HSPA LTE 802.11p DSRC connectivity enablement flexible subscription management service enablement OSGi virtualization','Abstract The Intelligent Transport Systems (ITS) domain is already today the leading vertical industry sector for the adoption of cellular connectivity. In-built and brought-in access to mobile telecommunication networks is a key enabler for advanced safety, navigation and infotainment services. The growing complexity of the industry ecosystem as well as the diverse service requirements put on the underlying connectivity and service enablement infrastructure demand for open, flexible and scalable end-to-end ITS solutions. In this paper we present scenarios, solution requirements, service enablers and an end-to-end ITS system architecture, covering in-vehicle and backend components, connectivity solutions and service life-cycle management. While we put specific emphasis on presenting opportunities and challenges relating to cellular ITS solutions, we also point out aspects relating to the required marriage with Dedicated Short Range Communication (DSRC) systems. Complemented by experiences from projects with industry partners and the research community and by reflections on ongoing efforts in ITS standardization, we conclude that only by a combination of cellular and DSRC networking technologies the full range of consumer and business needs will be addressed.','',1,'Andreas FasbenderMartin GerdesSascha Smets','springer/service oriented architecture security.csv','springer','\0'),(1267,'Open Problems in Network Security - IFIP WG 11.4 International Workshop, iNetSec 2011, Revised Selected Papers','2012','','','The proceedings contain 12 papers. The topics discussed include: evoking comprehensive mental models of anonymous credentials; towards usable interfaces for proof based access rights on mobile devices; commercial home assistance (ehealth) services; detecting computer worms in the cloud; efficient and stealthy instruction tracing and its applications in automated malware analysis: open problems and challenges; energy-efficient cryptographic engineering paradigm; towards a similarity metric for comparing machine-readable privacy policies; abstract privacy policy framework: addressing privacy problems in SOA; flexible and dynamic consent-capturing; towards user centric data governance and control in the cloud; and securing data provenance in the cloud.','',1,'[No author name available]','scopus/soa security.csv','scopus','\0'),(1268,'Harmonization of ISO/IEC 9001:2000 and CMMI-DEV: from a theoretical comparison to a real case application','2012','5',' Harmonization Mapping SPI Multi-model CMMI-DEV ISO 9001 GQM','Abstract In the past years, both industrial and research communities in Software Engineering have shown special interest in Software Process Improvement—SPI. This is evidenced by the growing number of publications on the topic. The literature offers numerous quality frameworks for addressing SPI practices, which may be classified into two groups: ones that describe “what” should be done (ISO 9001, CMMI) and ones that describe “how” it should be done (Six Sigma, Goal Question Metrics-GQM). When organizations decide to adopt improvement initiatives, many models may be implied, each leveraging the best practices provided, in the quest to address the improvement challenges as well as possible. This may at the same time, however, generate confusion and overlapping activities, as well as extra effort and cost. That, in turn, risks generating a series of inefficiencies and redundancies that end up leading to losses rather than to effective process improvement. Consequently, it is important to move toward a harmonization of quality frameworks, aiming to identify intersections and overlapping parts, as well as to create a multi-model improvement solution. Our aim in this work is twofold: first of all, we propose a theoretical harmonization process that supports organizations interested in introducing quality management and software development practices or concerned about improving those they already have. This is done with specific reference to CMMI-DEV and ISO 9001 models in the direction “ISO to CMMI-DEV”, showing how GQM is used to define operational goals that address ISO 9001 statements, reusable in CMMI appraisals. Secondly, we apply the theoretical comparison process to a real case, i.e., a Small Enterprise certified ISO 9001.','Software Quality Journal',1,'Maria Teresa BaldassarreDanilo CaivanoFrancisco J. PinoMario PiattiniGiuseppe Visaggio','springer/soa security.csv','springer','\0'),(1269,'Security policy monitoring of composite services','2014','','BPMN; Complex event processing; Monitoring; Secure service composition; Security policy; SOA','One important challenge the Aniketos platform has to address is the effective monitoring of services at runtime to ensure that services behave as promised. A service developer plays the role that is responsible for constructing service compositions and the service provider is responsible for offering them to consumers of the Aniketos platform. Typically, service consumers will have different needs and requirements; they have varying business goals and different expectations from a service, for example in terms of functionality, quality of service and security needs. Given this, it is important to ensure that a service should deliver for which it has been selected and should match the consumer’s expectations. If it fails, the system should take appropriate subsequent reactions, e.g., notifications to the service consumer or service designer.In this chapter, we present the policy-driven monitoring framework which is developed as part of the Aniketos project. The monitoring framework allows different user-specified policies to be monitored simultaneously. The monitoring is performed at the business level, as well as at the implementation level, which allows for checking the policies of composite services as well as atomic ones. The framework sends an alarm in case of policy violation to notify the interested parties and triggers re-composition or re-configuration of the service. © Springer International Publishing Switzerland 2014.','',2,'Asim M., Yautsiukhin A., Brucker A.D., Lempereur B., Shi Q.','scopus/bpmn security.csv','scopus','\0'),(1270,'Managing Clouds, Smart Networks and Services: A Report on APNOMS 2011','2012','3',' Network operations and management Management of clouds Smart networks and services','Abstract This article presents a report on APNOMS 2011, which was held September 21–23, 2011 in Taipei, Taiwan. The theme of APNOMS 2011 was “Managing Clouds, Smart Networks and Services.”','Journal of Network and Systems Management',1,'James Won-Ki HongYuan-Kuang TuChoong Seon HongShian-Shyong TsengYoshiaki KirihaHan-Chieh ChaoMarat ZhanikeevWang-Cheol Song','springer/soa security.csv','springer','\0'),(1271,'Cloud computing setup for a campus environment','2012','2','cloud computing; IaaS; multitenancy; PaaS; SaaS; SOA; virtualization','Cloud computing is the most feasible solution for the problems like spaces to store the information and computing power. No one in this world has enough space to store all the information available. Cloud computing in form of resource sharing can increase the computing power, mobility of data, huge lot of space etc. In this paper the case of BITS Pilani, Dubai Campus (BPDC) has been considered for the cloud applications. There are some cloud applications available in BPDC, one of them has been discussed (implementation, deployment, security etc.) in depth. © 2012 IEEE.','',1,'Kumar N., Mittal R.K.','scopus/soa security.csv','scopus','\0'),(1272,'A Context-Aware Access Control Framework for Software Services','2014','0',' Context-awareness context context-aware access control situation situation-aware access control access control policy','Abstract In the present age, context-awareness is an important aspect of the dynamic environments and the different types of dynamic context information bring new challenges to access control systems. Therefore, the need for the new access control frameworks to link their decision making abilities with the context-awareness capabilities have become increasingly significant. The main goal of this research is to develop a new access control framework that is capable of providing secure access to information resources or software services in a context-aware manner. Towards this goal, we propose a new semantic policy framework that extends the basic role-based access control (RBAC) approach with both dynamic associations of user-role and role-service capabilities. We also introduce a context model in modelling the basic and high-level context information relevant to access control. In addition, a situation can be determined on the fly so as to combine the relevant states of the entities and the purpose or user’s intention in accessing the services. For this purpose, we can propose a situation model in modelling the purpose-oriented situations. Finally we need a policy model that will let the users to access resources or services when certain dynamically changing conditions (using context and situation information) are satisfied.','',1,'A. S. M. KayesJun HanAlan Colman','springer/service oriented architecture security.csv','springer','\0'),(1273,'Time-Dependent Analysis of Attacks','2014','1','','Abstract The success of a security attack crucially depends on time: the more time available to the attacker, the higher the probability of a successful attack; when given enough time, any system can be compromised. Insight in time-dependent behaviors of attacks and the evolution of the attacker’s success as time progresses is therefore a key for effective countermeasures in securing systems. This paper presents an efficient technique to analyze attack times for an extension of the prominent formalism of attack trees. If each basic attack step, i.e. , each leaf in an attack tree, is annotated with a probability distribution of the time needed for this step to be successful, we show how this information can be propagated to an analysis of the entire tree. In this way, we obtain the probability distribution for the entire system to be attacked successfully as time progresses. For our approach to be effective, we take great care to always work with the best possible compression of the representations of the probability distributions arising. This is achieved by an elegant calculus of acyclic phase type distributions, together with an effective compositional compression technique. We demonstrate the effectiveness of this approach on three case studies, exhibiting orders of magnitude of compression.','',1,'Florian ArnoldHolger HermannsReza PulunganMariëlle Stoelinga','springer/webservice security.csv','springer','\0'),(1274,'Static analysis for web service security - Tools & techniques for a secure development life cycle','2015','','Cyber Security; Penetration Testing; RESTFul API; Secure Design; Secure Software Development; Security Code Review; Service Oriented Architecture; SOA; SOAP; Source Code Analysis; Static Analysis Tool; Static Code Analysis; Web Application security; Web Services; Web Services Security','In this ubiquitous IoT (Internet of Things) era, web services have become a vital part of today\'s critical national and public sector infrastructure.With the industry wide adaptation of service-oriented architecture (SOA), web services have become an integral component of enterprise software eco-system, resulting in new security challenges. Web services are strategic components used by wide variety of organizations for information exchange on the internet scale. The public deployments of mission critical APIs opens up possibility of software bugs to be maliciously exploited. Therefore, vulnerability identification in web services through static as well as dynamic analysis is a thriving and interesting area of research in academia, national security and industry. © 2015 IEEE.','',1,'Masood A., Java J.','scopus/service oriented architecture security.csv','scopus',''),(1275,'Semi-formal transformation of secure business processes into analysis class and use case models: An MDA approach','2010','27','BPMN; MDA; Secure business processes; UML','Context: Model-Driven Development (MDD) is an alternative approach for information systems development. The basic underlying concept of this approach is the definition of abstract models that can be transformed to obtain models near implementation. One fairly widespread proposal in this sphere is that of Model Driven Architecture (MDA). Business process models are abstract models which additionally contain key information about the tasks that are being carried out to achieve the company\'s goals, and two notations currently exist for modelling business processes: the Unified Modelling Language (UML), through activity diagrams, and the Business Process Modelling Notation (BPMN). Objective: Our research is particularly focused on security requirements, in such a way that security is modelled along with the other aspects that are included in a business process. To this end, in earlier works we have defined a metamodel called secure business process (SBP), which may assist in the process of developing software as a source of highly valuable requirements (including very abstract security requirements), which are transformed into models with a lower abstraction level, such as analysis class diagrams and use case diagrams through the approach presented in this paper. Method: We have defined all the transformation rules necessary to obtain analysis class diagrams and use case diagrams from SBP, and refined them through the characteristic iterative process of the action-research method. Results: We have obtained a set of rules and a checklist that make it possible to automatically obtain a set of UML analysis classes and use cases, starting from SBP models. Our approach has additionally been applied in a real environment in the area of the payment of electrical energy consumption. Conclusions: The application of our proposal shows that our semi-automatic process can be used to obtain a set of useful artifacts for software development processes. © 2010 Elsevier B.V. All rights reserved.','',2,'Rodríguez A., Guzmán I.G.-R.d., Fernández-Medina E., Piattini M.','scopus/bpmn security.csv','scopus',''),(1276,'Remote Collaboration, Decision Support, and On-Demand Medical Image Analysis for Acute Stroke Care','2015','0',' Acute care Cloud computing Decision support High performance computing Medical image analysis Remote collaboration Stroke Telemedicine','Abstract Acute stroke is the leading cause of disabilities and the fourth cause of death worldwide. The treatment of stroke patients often requires fast collaboration between medical experts and fast analysis and sharing of large amounts of medical data, especially image data. In this situation, cloud technologies provide a potentially cost-effective way to optimize management of stroke patients and, consequently, improve patient outcome. This paper presents a cloud-based platform for Medical Distributed Utilization of Services & Applications (MEDUSA). This platform aims at improving current acute care settings by allowing fast medical data exchange, advanced processing of medical image data, automated decision support, and remote collaboration between physicians in a secure and responsive virtual space. We describe a prototype implemented in the MEDUSA platform for supporting the treatment of acute stroke patients. As the initial evaluation illustrates, this prototype improves several aspects of current stroke care and has the potential to play an important role in the care management of acute stroke patients.','',1,'Renan Sales BarrosJordi BorstSteven KleynenbergCéline BadrRama-Rao GanjiHubrecht de BliekLandry-Stéphane Zeng-EyindangaHenk van den BrinkCharles MajoieHenk MarqueringSílvia Delgado Olabarriaga','springer/service oriented architecture security.csv','springer',''),(1277,'Components of a multi-perspective modeling method for designing and managing IT security systems','2016','0',' IT security Multi-perspective security management Information security modeling Enterprise modeling Domain-specific modeling language','Abstract Information technology (IT) security design and management are a major concern and substantial challenge for IT management. Today’s highly complex business and technological environments and the need to effectively communicate and justify IT security requirements and controls demand methodical support. The modeling method presented in this paper addresses this demand. The method is based on the assumption that enriched enterprise models integrating technological, business, organizational and strategic aspects provide an effective foundation for developing and managing IT security systems and facilitating communication and understanding between stakeholders. The proposed modeling method for designing and managing IT security in organizations accounts for different perspectives and is based on multi-perspective enterprise modeling. The core components of the method, based on analysis of requirements at different levels of abstraction, are: modeling language concepts specifically designed to address security issues, process models that guide the use of the resulting language, and a modeling environment. The method facilitates elaborate representations of the various aspects of IT security at different levels of abstraction and covers the entire lifecycle of IT security systems. It not only supports multi-perspective requirement analysis and design but also enables monitoring and analysis of IT security at runtime. The presented artifact is evaluated with recourse to a research method that enables the configuration of multi-criteria justification procedures.','Information Systems and e-Business Management',2,'Anat GoldsteinUlrich Frank','springer/bpmn security.csv','springer',''),(1278,'Process interoperability in healthcare systems with dynamic semantic web services','2013','2',' Interoperability Ontology Workflow HL7 Web Services Mathematics Subject Classification 68Q55 [Computer Science]: Theory of Computing: Semantics','Abstract Healthcare systems are very complex due to extreme heterogeneity in their data and processes. Researchers and practitioner need to make systems interoperable and integrate for the benefit of all the stakeholders including hospitals, clinicians, medical support staff, and patients. The broader goal of interoperability can only be achieved when standards are practiced.Two different healthcare systems can earn HL7 conformance and compliance but at the same time can be incompatible for interoperability because of varying implementation of HL7 interaction model. This is mainly because workflows in healthcare systems are very complex. Interoperability on one hand requires flexible mechanism for the mapping of business processes to a standard, HL7 in our example. On the other hand it requires deeper understanding of the standard interaction model and gaps created by their incompatible implementations. In this paper we propose a novel technique of dynamically creating semantic web services as overlay on top of the existing services. We used Web Service Modeling Framework as an underlying architecture for HL7 process artifacts implementation as semantic web services. These semantic services are mapped to our proposed interaction ontology. Integrated reasoning mechanism provides necessary execution semantics for more effective and seamless end-to-end communication.The prototype we tested on different processes from the laboratory domain at a local diagnostic laboratory with uninterrupted process flow. The scenario of Result Query Placer interaction flow and its associated process artifacts are executed for the proof of concept.The proposed solution complements the existing data interoperability in HL7 and leads to semantic process interoperability. The achievement of semantic interoperability results in timely delivery of healthcare services to patients saving precious lives.','Computing',1,'Wajahat Ali KhanMaqbool HussainKhalid LatifMuhammad AfzalFarooq AhmadSungyoung Lee','springer/soa security.csv','springer','\0'),(1279,'Towards Cloud Computing: A Literature Review on Cloud Computing and Its Development Trends','2012','20','Cloud Computing;Clouds Security;Development Trends;Serivce Governance;Service-Oriented Architecture','This article contains a review of technical literature relating the definitions, characteristics, operations, security management, service governance, and development trends of cloud computing. The advantages and disadvantages of cloud computing are respectively described to represent the impacts of cloud computing in various fields. The article also explains the structure of clouds in service-oriented architectures and summarizes six major development trends, which can be utilized as a reference for entrepreneurs and researchers.','2012 Fourth International Conference on Multimedia Information Networking and Security',1,'K. Gai; S. Li','ieee/service oriented architecture security.csv','ieee','\0'),(1280,'QoS-aware and ontology-driven autonomic service bus','2012','1','Architecture; Autonomic; Collaboration; Enterprise Service Bus; Interoperability; Ontology; Quality of Service','Distributed applications and more generally distributed systems are increasingly based on services that are integrated to implement complex functional processes. Diversity and heterogeneity of these services raise many needs for the integration. To meet these needs, the Enterprise Service Bus has been proposed for the development of standard based collaborative strategies between services and applications. However the lack of semantic, the competitiveness between services and the dynamicity of service-oriented architectures contexts (mobility, increase of consumers and providers of services, etc.) are the reason of unpredictable events such as service unavailability, high overhead and response time, decrease of reliability, security, etc. Those events ask to adapt the established integration strategies to ensure or improve performance and Quality of Service offered by the Enterprise Service Bus. In this context, we propose a QoS-aware and ontology-driven Autonomic Service Bus able to take into account non functional properties\' semantics in order to offer self-configuration and self-adaptation functionalities. Beyond the traditional objectives of enterprise service buses, our proposal includes the use of well known transport and network mechanisms to take into account autonomously both functional and non functional properties asked or offered by services consumers or providers. © 2012 IEEE.','',1,'Diop C., Exposito E., Chassot C., Jlidi D.','scopus/service oriented architecture security.csv','scopus','\0'),(1281,'Authorization in cross-border eHealth systems','2012','2',' Authorization control Health system interoperability eHealth Service composition Web service collaboration','Abstract Modern eHealth systems require collaborations between individual social entities such as hospitals, medical centers, emergency services and community services. Security and privacy are critical issues in this interoperability challenge. In an eHealth system that crosses different administrative domains, individual organisations usually define their authorization control policies independently. When a collaboration opportunity arises a number of issues may be raised. For example, is the collaboration possible given the authorization policies of collaboration participants? How can policy inconsistencies among collaboration participants be identified and resolved? What kind of authorization control support is needed as the collaboration proceeds? In this paper, we analyze different types of collaborations and provide insights into authorization control in individual organisations as well as in collaboration activities. We propose a model to capture the necessary elements for specifying authorization policy for cross-border collaboration. Based on the model, various inconsistencies between authorization policies from different business units are discussed and handling strategies are suggested according to the intended collaboration types. We also briefly discuss how a description logic reasoner can be used to test whether two set of policies are suitable for collaboration. This work lays a foundation for policy development, negotiation and enforcement for cross-border collaboration.','Information Systems Frontiers',1,'Daisy Daiqin HeJian YangMichael ComptonKerry Taylor','springer/soa security.csv','springer','\0'),(1282,'A novel substitution judgment method for mobile cloud computing application system components','2015','','Mobile cloud computing; Pi-calculus; Service oriented architecture; Service substitution','Mobile cloud computing is a novel computing model, which integrates the cloud computing into the mobile environment and overcomes obstacles related to the performance, environment and security discussed in mobile computing. For a mobile cloud computing application system (MCCS), reliable components substitution is an important issue for troubleshooting and system upgrading. In this paper, this issue is equated to MCCS services substitution based on a service-oriented architecture of MCCS. Further, a formal method for modeling MCCS service is proposed based on space-time Pi-calculus, which is presented through introducing location and time operators into classical Pi-calculus. Then, a decision theorem for MCCS service substitution is put forward according to the relationship between service compatibility and substitution. Finally, a case study is performed to show that how to apply this method to ensure MCCS components substitution. The experiment result shows that it is reasonable and feasible. © 2014 IEEE.','',1,'Wang P., Yang L., Li G.W., Gao X.','scopus/service oriented architecture security.csv','scopus',''),(1283,'Consistent Management of Context Information in Ubiquitous Systems','2014','1',' Distributed resources context-awareness systems ubiquitous and pervasive computing Service Oriented Architecture (SOA)','Abstract In context-aware systems, where the context information tends to be distributed and/or replicated, can be decisive to maintain the correctness of this information, owing to the decisions in context-aware systems are taken on the basis of it. In ubiquitous environments, new challenges are emerging, which can affect to the consistent management of the distributed context information. For instance, the dynamism is a feature that directly affects the availability of the resources deployed in the network, among other quality features, and it implies additional design and development efforts from software engineers. Service Oriented Architecture (SOA), together with replication techniques may help to improve resource availability and strengthen the system against node disconnections, nevertheless, additional techniques must be applied to ensure the consistency of the distributed/replicated resources. In this paper, an approach to support, from the software design stage, the synchronization and consistency management of context information is introduced. This approach follows the SOA model, and provides a common basis for the synchronization of distributed/replicated resources. A case study, related with an ubiquitous system deployed in a hospital where context-aware services can be found, will be described in order to show the feasibility of the proposal.','',1,'Gabriel Guerrero-ContrerasJosé Luis GarridoSara Balderas-DíazCarlos Rodríguez-Domínguez','springer/service oriented architecture security.csv','springer','\0'),(1284,'Knowledge Based Framework: A Case Study on Fast, Reliable, and Secure Web Services in UAVs','2014','0','Critical embedded systems;SOA;UAVs;Web services;performance','Advanced and complex embedded systems as multicore and multiprocessor systems are becoming common and this has stimulated the development of critical applications for them. UAVs (Unmanned Aerial Vehicles) constitute a typical application of a complex critical embedded system. One concept that can result in radically different solutions in UAVs is the use of Service-Oriented Architecture (SOA). The increasing use of SOA in critical applications demands dependable and cost effective techniques to ensure high security. In this paper we develop a different kind of services for avionics with different parameters (security, reliability and performance) to provide the use of SOA in a less critical part in the whole systems. The use of these services and the KBF (Knowledge Based Framework for Dynamically Changing Applications) presented in this paper can give more intelligence to the UAVs and provide a new form of segregating the UAV mission from the vehicle itself. The services were developed and a performance evaluation was conducted showing the benefits in choosing one service or another.','Information Technology: New Generations (ITNG), 2014 11th International Conference on',1,'D. Rodrigues; A. A. Chaves; K. R. L. J. C. Branco; R. Ramdhany; G. Coulson','ieee/service oriented architecture security.csv','ieee','\0'),(1285,'Optimized service discovery using QoS based ranking: A fuzzy clustering and particle swarm optimization approach','2011','5','Fuzzy clustering; Fuzzy expert system; PSO; Quality of Service (QOS); Service oriented architecture; Webservices','Webservices are the key technologies for the web applications developed using Service Oriented Architecture (SOA). Many outsourced webservices can be combined to provide value added services to the users. There are many challenges involved in its implementations. One of the essential challenges is service discovery which involves finding a set of suitable webservice candidates faster. When a large number of functionally-equivalent services have been discovered, it is difficult for users to choose which one is to be invoked. Researchers have proposed various techniques for service discovery like ranking the webservices based on their Quality of Service (QoS). The various parameters of quality are reliability, security, performance, etc. This paper presents an algorithm for building a rule based model for ranking the webservices based on quality of service (QoS) using fuzzy clustering and particle swarm optimization (PSO). In general, the numbers of rules are directly proportional to the number of quality attributes considered for ranking but PSO reduces the number of rules by removing the rules that are having less weightage and will not affect the system. This paper also proposes a new webservice reference that behaves as an expert system. It contains a rule base and a reference engine. The rule base consists of all the rules and a reference engine that triggers all these rules and gives the rank of the service as an output © 2011 IEEE.','',1,'Mohana R., Dahiya D.','scopus/webservice security.csv','scopus','\0'),(1286,'Applying SOA to an E-commerce system and designing a logical security framework for small and medium sized E-commerce based on SOA','2015','','','In the last two decades, as with the growth of internet technologies, E-commerce proves to be the best system for conducting business. The E-commerce systems overshadowed the physical part of markets. E-commerce has the advantages of exposure and most organizations adopted E-commerce rapidly as other technologies. To support growing E-commerce, we require better system integration loom and security structure so that enterprise customers and partners efficiently associated through their nets. Service Oriented Architecture (SOA) may be the answer to their problems. SOA provides an autonomous platform for initiatives to transmit with their clients and collaborators. With the advantages, SOA is also endowed with ease for message tampering and unauthorized access. This causes the security technology implementation of SOA based E-commerce very difficult at other technologies or advances. This paper provides an overview of the various Service Development Approaches (SDA) used for migrating towards SOA and several factors discussed, which considered in the performance evaluation of SDAs. The performance evaluations of SDAs are out of scope, for this research. The primary aim of this editorial is to, identifies and evaluates the flaws in the current security standard for small and medium sized E-commerce system, and proposed a logical security framework for SOA based E-commerce. © 2014 IEEE.','',1,'Luhach A.K., Dwivedi S.K., Jha C.K.','scopus/service oriented architecture security.csv','scopus',''),(1287,'Research on trust mechanism in military information grid','2012','1','authentication; fuzzy logic; grid; trust model','Trust issue is presently a research hotspot in military information grid. This paper first proposes a SOA-based unified identity authentication scheme, which can transplant the existing account systems into the new one by means of account association, to solve the problem of inter-network identity authentication. Then, this paper develops an asymmetric trust model based on fuzzy logic. This model takes into account several factors which may affect trust evaluation in military information grid, such as non-symmetric trust relationship between networks, time self-decay. Thus, the model will be more practical and effective. © 2012 IEEE.','',1,'Yang Q.-S., Ma H.-Y., Tao R., Zhang L., Wang B.-C.','scopus/soa security.csv','scopus','\0'),(1288,'Big Data Semantics in Industry 4.0','2015','0',' Industry 4.0 Cyber-Physical Systems Big Data Semantics Internet of Things Industrial automation Heterogeneity','Abstract The Industry 4.0 is a vision that includes connecting more intensively physical systems with their virtual counterparts in computers. This computerization of manufacturing will bring many advantages, including allowing data gathering, integration and analysis in the scale not seen earlier. In this paper we describe our Semantic Big Data Historian that is intended to handle large volumes of heterogeneous data gathered from distributed data sources. We describe the approach and implementation with a special focus on using Semantic Web technologies for integrating the data.','',1,'Marek ObitkoVáclav Jirkovský','springer/service oriented architecture security.csv','springer',''),(1289,'Event-B patterns and their tool support','2013','6',' Event-B Formal methods Design patterns Formal modelling Model reuse','Abstract Event-B has given developers the opportunity to construct models of complex systems that are correct-by-construction. However, there is no systematic approach, especially in terms of reuse, which could help with the construction of these models. We introduce the notion of design patterns within the framework of Event-B to shorten this gap. Our approach preserves the correctness of the models, which is critical in formal methods and also reduces the proving effort. Within our approach, an Event-B design pattern is just another model devoted to the formalisation of a typical sub-problem. As a result, we can use patterns to construct a model which can subsequently be used as a pattern to construct a larger model. We also present the interaction between developers and the tool support within the associated RODIN Platform of Event-B. The approach has been applied successfully to some medium-size industrial case studies.','Software & Systems Modeling',1,'Thai Son HoangAndreas FürstJean-Raymond Abrial','springer/soa security.csv','springer','\0'),(1290,'Continuous Data Collection Framework for Manufacturing Industries','2015','0',' Factories of future Real-time systems Collaborative networks','Abstract The combination of high-performance and quality with cost-effective productivity, realizing reconfigurable, adaptive and evolving factories leading to sustainable manufacturing industries is one of the emerging research challenges in the domain of Internet of Things. So, it is important to define strategies and technical solutions to allow manufacturing process to autonomously react to the changing factors. Continuous data collection from heterogeneous sources and infusion of such data into suitable processes to enable almost real-time reactive systems is emerging research domain. This research work provides a technical framework for continuous data collection in support of the supply network and manufacturing assets optimization based on collaborative production planning. This research work explores its connection to legacy systems, software components and hardware devices to provide information to the different data consumers. The most relevant achievement of this work is the framework to bridge differences among computing systems, devices and networks allowing uniformity for data access by application decoupling data consumers from data sources.','',1,'Sudeep GhimireRaquel MeloJose FerreiraCarlos AgostinhoRicardo Goncalves','springer/service oriented architecture security.csv','springer',''),(1291,'Virtualization and Scheduling Methods for 5G Cognitive Radio Based Wireless Networks','2016','0',' The fifth generation of cellular wireless standards (5G) Cognitive Radio (CR) Virtualization Resource allocation Scheduling Quality of Services (QoS) Wireless Innovative System for Dynamic Operating Megacommunications (WISDOM)','Abstract The 5G technology is a revolutionary technology, which will offer an “unlimited wireless world interconnection” (Badoi et al. in Wirel Pers Commun 57(3):441–464 2011 . doi: 10.​1007/​s11277-010-0082-9 ; Prasad 2014 ) and a large type of services to a vastly number of users, while using a high performance terminal. These services will most probably be provided to the users as cloud based services, with different Quality of Services (QoS) characteristics. More exactly, based on the user subscription and on the required service, the user will be served with a given QoS. Each type of QoS services class will be assured by a 5G virtual network, having a one-to-one QoS class versus 5G virtual network correspondence. In this context, the virtualization and scheduling methods will play an important role regarding the ability to provide such services in 5G networks. In this paper we present the virtualization concept within 5G networks, while also describing the existing work conducted until now in wireless networks and Future Internet fields. Two virtualization methods are also presented in this paper, based on the spectrum sharing principle used in the Cognitive Radio networks (Badoi et al. in Wirel Pers Commun 57(3):441–464 2011 . doi: 10.​1007/​s11277-010-0082-9 ) and based on partition principle used in Future Internet (Nejbati et al. 2012 ). A combination of these two methods should offer a better granularity of 5G networks virtualization, with the price of an increased complexity.','Wireless Personal Communications',1,'Cornelia-Ionela BadoiNeeli PrasadRamjee Prasad','springer/service oriented architecture security.csv','springer',''),(1292,'Seamless Access to the PL-Grid e-Infrastructure Using UNICORE Middleware','2012','0',' UNICORE Grid PL-Grid','Abstract This chapter provides a brief overview of the UNICORE grid middleware and its utilization in the large Distributed Computing Infrastructure. UNICORE framework, in its recent version implements key grid standards and specifications. The system architecture and capabilities, such as security, workflow and data management are described. The installation of the UNICORE environment in the PL-Grid is presented. Special attention is given to the integration of the UNICORE middleware with the PL-Grid authentication and authorization framework which allows for uniform infrastructure and user management across different middlewares. The solutions for monitoring and accounting of the UNICORE infrastructure is presented.','',1,'Krzysztof BenedyczakMarcin StolarekRadosław RowickiRafał KluszczyńskiMarcelina BorczGrzegorz MarczakMaciej FilochaPiotr Bała','springer/service oriented architecture security.csv','springer','\0'),(1293,'Policies Production System for Ambient Intelligence Environments','2014','0',' Policies Sensor Networks Ambient Intelligence Smart Building Energy Efficiency','Abstract This paper presents a tool for designing Policies that govern the operation of an Ambient Intelligence (AmI) environment in order to minimize energy consumption and automate every-day tasks in smart settlements. This tool works on top of a semantic web services middleware and interacts with the middleware’s ontology in order to facilitate the designing, monitoring and execution of user defined rules that control the operation of a network of heterogeneous sensors and actuators. Furthermore, it gives the user the capability to organize these rules in tasks, in order to aggregate and discern relative rules. The main objective of this system is to provide a better monitoring and management of the resources, so as to achieve energy efficiency and reduce power consumption. The work presented in this paper is part of the Smart IHU project, which is developed at International Hellenic University.','',1,'Nikos P. KotsiopoulosDimitris Vrakas','springer/service oriented architecture security.csv','springer','\0'),(1294,'A Design of Web Log Integration Framework Using NoSQL','2014','0',' Big Data Security Log aggregation Cloud computing NoSQL HBase','Abstract Webservice is a software technology as the representative method of information communication currently used to create a dynamic system environment that is configured to fulfill its users’ needs. Therefore, analyzing log data that occurred at provision is being used as the significant basic data in webservice research. Thanks to development of Cloud computing technology, it has resulted in centralized points from which data is generated and data enlargement. A research is now implemented to create information from collecting, processing and converting flood of data and to obtain the new various items of information. Against this backdrop, it is justified that collection, storage and analysis of web log data in the existing conventional RDBMS system may be inadequate to process the enlarged log data. This research propose a framework which to integrate web log for storage using HBase, a repository of the Cloud computing- based NoSQL. In addition, data validation must be completed in the pre-process when collecting web log. The validated log is stored in the modeling structure in which takes features of web log into account. According to the results, introduction of NoSQL system is found to integrate the enlargement of log data in more efficient manner. By comparisons with the existing RDBMS in terms of data processing performance, it was proved that the NoSQL- based database had a superior performance.','',1,'Huijin JeongJunho ChoiChang ChoiIlsun YouPankoo Kim','springer/webservice security.csv','springer','\0'),(1295,'Optical switch emulation in programmable software router testbed','2013','1',' Optical networks Network programmability Optical switching Optical components Software-defined networking','Abstract A programmable optical router is a key enabler for dynamic service provisioning in Future Internet scenarios. It is equipped with optical switching hardware to forward information at hundreds of Gigabits/s rates and above, controlled and managed through modular and flexible procedures according to emerging standards. The possibility to test such costly optical architectures in terms of logical and physical performance, without implementing complex and expensive testbeds, is crucial to speed-up the development process of high-performance routers. To this purpose, this paper introduces the software-based emulation testbed of a programmable optical router, which is here developed and applied to test optical switching fabrics. Accurate characterization of the optical devices and physical layer aspects is implemented with the Click software router environment. Power loss and optical signal-to-noise-ratio evaluation are provided through accurate software representation of the physical characteristics of the optical devices employed. The scalability of the proposed emulation testbed is also assessed on standard PC hardware. All the obtained results prove the effectiveness of the proposed tool to emulate an optical router at different levels of granularity.','Photonic Network Communications',1,'Ivan AldayaRaul CafiniWalter CerroniCarla RaffaelliMichele Savi','springer/soa security.csv','springer','\0'),(1296,'A scalable Cloud-based system for data-intensive spatial analysis','2015','0',' e-Infrastructure Urban research Cloud computing Geospatial systems Spatial analysis','Abstract Advances in Cloud computing technology and the availability of affordable and easy to use Cloud services are enabling a multitude of scientific applications to use these resources as primary or secondary computing infrastructure. The urban and built environment research domain is one area that can benefit greatly from Cloud computing. The global population growth and increase in the size and population of cities raise many challenges for governments, planners and researchers alike. The Australian Urban Research Infrastructure Network (AURIN— http://​www.​aurin.​org.​au ) project has been tasked with developing an advanced platform (e-Infrastructure) across Australia to tackle these challenges. The platform leverages large-scale Cloud resources to provide federated data access to, at present over 1100 data sets from major and often definitive government and industry data-rich organisations, and for scalable data processing and visualisation. The original AURIN tools were developed using the object modelling system (OMS) and supported integrated workflows to define and enact/re-enact scientific processes. More recently the work has evolved to focus more on delivery of a workbench offering a rich range of tools delivered through an extensible workflow environment. In this paper, we provide the background to AURIN including the scientific drivers that are shaping the work and the realisation of the Cloud-based AURIN environment. We focus in particular on the workflow environment and show how it seamlessly utilizes the Cloud for urban research processes focused especially on data-intensive spatial analysis. We illustrate the utilisation of this workflow environment across a range of case studies reflecting urban research activities.','International Journal on Software Tools for Technology Transfer',1,'R. O. SinnottW. Voorsluys','springer/service oriented architecture security.csv','springer',''),(1297,'HANDY: a hybrid association rules mining approach for network layer discovery of services for mobile ad hoc network','2013','2',' MANET HANDY Service discovery Correlation patterns Semantic discovery Cross-layer design','Abstract Mobile ad hoc network (MANET) is an infrastructure-less network formed between a set of mobile nodes. The discovery of services in MANET is a challenging job due to the unique properties of network. In this paper, a novel service discovery framework called hybrid association rules based network layer discovery of services for ad hoc networks (HANDY) has been proposed. HANDY provides three major research contributions. At first, it adopts a cross-layer optimized design for discovery of services that is based on simultaneous discovery of services and corresponding routes. Secondly, it provides a multi-level ontology-based approach to describe the services. This resolves the issue of semantic interoperability among the service consumers in a scalable fashion. Finally, to further optimize the performance of the discovery process, HANDY recommends exploiting the inherent associations present among the services. These associations are used in two ways. First, periodic service advertisements are performed based on these associations. In addition, when a response of a service discovery request is generated, correlated services are also attached with the response. The proposed service discovery scheme has been implemented in JIST/SWANS simulator. The results demonstrate that the proposed modifications give rise to improvement in hit ratio of the service consumers and latency of discovery process.','Wireless Networks',1,'Noman IslamZubair Ahmed ShaikhAqeel-ur RehmanMuhammad Shahab Siddiqui','springer/soa security.csv','springer','\0'),(1298,'Model-Driven Design of Object and Component Systems','2016','0',' Component-based architecture Object-oriented design Interfaces Contracts Design patterns rCOS UML','Abstract The notion of software engineering implies that software design and production should be based on the types of theoretical foundations and practical disciplines that are established in the traditional branches of engineering. The goal is to make development of complex software systems more predictable and the systems developed more trustworthy - safe, secure and dependable . A number of theories have been well developed in the past half a century, including Abstract Data Types , Hoare Logic , Process Calculi , and I/O automata , and those alike. Based on them, techniques and tools have been developed for software specification, refinement and verification. However, the theoretically sound techniques and tools have not been seamlessly integrated in practical software development, and their impact upon commonly-used software systems is still far from convincing to software engineering practitioners. This is clearly reflected by the challenges of their applications in engineering large-scale systems, including Cyber-Physical Systems (CPS), Networks of Things and Cloud-Based Systems, that have multi-dimensional complexities. Indeed, students are not often shown how the theories, and their underpinned techniques and tools, can better inform the software engineering they are traditionally taught. The purpose of this course to demonstrate such an effort. We present a model-driven design framework for component-based and object-oriented software systems. We identify a set of UML notations and textual descriptions for representing different abstractions of software artefacts produced in different development stages. These abstractions, their relations and manipulations all have formalisations in the rCOS formal method of component and object systems. The aim is to allow the advantage of using precise models for development better appreciated. We organise the lecture notes into three chapters, each having a title page but all the references to literature are given at the end of Part III.','',1,'Zhiming LiuXiaohong Chen','springer/service oriented architecture security.csv','springer',''),(1299,'An Extendable OpenSource Architecture of E-Learning System','2013','','distance learning;electronic learning;layered architecture;open source software;service oriented architecture;system architecture','In this paper, we present an extendable open source architecture and model of an e-Learning system. The system composed of essential e-Learning core components and optional open source extensions. Open source extensions, developed and maintain by open source community, enhance the functionality of e-Learning system. In the other system components, the server side extension manager validates the portability, e-Learning standardization and security issues before approval of any extension to the community of the e-Learning system. The client side extension manager checks for new extensions/ updates and allow/disallow these extensions/updates. The open source development process of system components can improve the security, reliability, quality and evaluation of the system.','e-Learning Best Practices in Management, Design and Development of e-Courses: Standards of Excellence and Creativity , 2013 Fourth International Conference on',1,'M. A. Khan; F. Urrehman','ieee/service oriented architecture security.csv','ieee','\0'),(1300,'Table of contents','2014','0','','The following topics are dealt with: service optimization; cloud service; service workflow; Web service composition; quality of service; ontology; data service generation; service modelling; service protocol; service oriented architecture; service interaction; risk analysis; service operation; service performance indicator; IT service; service selection; service matchmaking; service security and privacy; service level agreement; service negotiation; context awareness; service personalization; service behavior; business process service; service collaboration; composite service execution; service events; service manipulation; and social networking service.','Services Computing (SCC), 2014 IEEE International Conference on',1,'','ieee/service oriented architecture security.csv','ieee','\0'),(1301,'A Feature-Oriented WSDL Extension for Describing Grid Services','2012','0',' Grid service Feature-oriented Software Development Design by Contract QoS Attributes Grid Service Composition','Abstract Grid computing and Feature-oriented Development Software are emerging technologies, which can be combined to analyze, model, and specify Grid services. In a Grid environment, there are a large number of similar resources provided by different parties, that may provide the same functionality, but different Quality of Service (QoS) measures. A feature-based approach is presented to optimize the development of Grid services and Grid service composition. WSDL specification is extended to contain useful description of both functional and non-functional characteristics by mean Design by Contract technique. In this way, Grid users can specify their QoS expectations and select suitable resources and use them for their Grid workflow at design time before its execution on the Grid.','',1,'Natalia TrejoSandra CasasKarim Hallar','springer/service oriented architecture security.csv','springer','\0'),(1302,'Secure and reliable remote access for the European XFEL control system','2012','0','control systems;jddd;opensso;real-time systems;web applications;web services doocs;xfel','The collaboration work between the Stockholm University and DESY in Hamburg regarding the European XFEL is among other things aiming towards to provide access methods to the accelerator control system for the European XFEL project with the possibility of a secure and reliable access from remote places. The requested expansion of the control system has been designed as an extra layer for control and data transmissions integrated with systems for authentication and authorization. This makes it possible to have these remote access methods working side by side with more conventional access methods in the control system. This gives you the possibility to access the control system remotely with traditional, already in use rich clients implemented in Java and expanded with an extra layer for the remote communication or you can use other clients in the future, e.g. web applications. A key focus here is to implement these requirements and at the same time achieve good performance in a secure and reliable way. In this paper we will discuss how we implement these requirements, what parameters and security measures we are using in order to implement a reliable, secure and easy to use secured access layer and how it is integrated to the accelerator control system. The system is designed as a Service-Oriented Architecture (SOA) and implemented with the latest web service technology available at present in order to connect the different nodes such as control system nodes, application servers and different clients for control and monitoring with quality of service (QoS). The architecture and the chosen access security manager (OpenSSO) for authentication and authorization will be described in its parts and how they are integrated. We will present our experiences of the architecture so far, what design choices we have found suitable in order to meet the requirements of a modern control system and what performance we have achieved when transporting data and commands in a reliable wa- .','Real Time Conference (RT), 2012 18th IEEE-NPSS',1,'C. C. W. Robson; C. Bohm; R. Kammering; K. Rehlich','ieee/service oriented architecture security.csv','ieee','\0'),(1303,'Service-Oriented Computing, ICSOC 2011 Workshops - ICSOC 2011 International Workshops, WESOA, NFPSLAM-SOC, and Satellite Events, Revised Selected Papers','2012','','','The proceedings contain 41 papers. The topics discussed include: strategic alignment of business processes; decentralized workflow coordination through molecular composition; using a lifecycle model for developing and executing real-time online applications on clouds; a pragmatic approach for analysis and design of service inventories; artifact-centric modeling using BPMN; asynchronous learning for service composition; engineering energy-aware web services toward dynamically-green computing; semantic matching of WS-security policy assertions; quality prediction in service composition frameworks; ECMAF: an event-based cross-layer service monitoring and adaptation framework; defining an SLA-aware method to test service-oriented systems; data flow-oriented process mining to support security audits; and towards opportunistic service composition in dynamic ad hoc environments.','',2,'[No author name available]','scopus/bpmn security.csv','scopus','\0'),(1304,'Data Privacy Management and Autonomous Spontaneous Security - 6th International Workshop, DPM 2011, and 4th International Workshop, SETOP 2011, Revised Selected Papers','2012','','','The proceedings contain 22 papers. The topics discussed include: privacy challenges in RFID; fake injection strategies for private phonetic matching; a design phase for data sharing agreements; a privacy-protecting architecture for collaborative filtering via forgery and suppression of ratings; secure and privacy-aware searching in peer-to-peer networks; inference-proof view update transactions with minimal refusals; using personal portfolios to manage customer data; using requirements engineering in an automatic security policy derivation process; web services verification and prudent implementation; evolving security requirements in multi-layered service-oriented-architectures; risk-based auto-delegation for probabilistic availability; and distributed orchestration of web services under security constraints.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus','\0'),(1305,'Automating Privacy Enforcement in Cloud Platforms','2013','2','','Abstract Privacy in cloud computing is a major concern for individuals, governments, service and platform providers. In this context, the compliance with regards to policies and regulations about personal data protection is essential, but hard to achieve, as the implementation of privacy controls is subject to diverse kinds of errors. In this paper we present how the enforcement of privacy policies can be facilitated by a Platform as a Service. Cloud applications developers can use non-obtrusive annotations in the code to indicate where personally identifiable information is being handled, leveraging the aspect-oriented programming (AOP) features. Subsequently the evaluation of user defined preferences is performed by trustful components provided by the platform, liberating developers from the burden of designing custom mechanisms for privacy enforcement in their software.','',1,'Peng YuJakub SendorGabriel SermeAnderson Santana de Oliveira','springer/service oriented architecture security.csv','springer','\0'),(1306,'2013 International Conference on Services Science and Services Information Technology, SSSIT 2013','2014','','','The proceedings contain 214 papers. The special focus in this conference is on Services Science and Services Information Technology. The topics include: high-speed rail safety monitoring system based on ZigBee wireless sensor network; application research of soa in the area of business intelligence system; application of web network management based on mobile agent; security mechanism research on hiring excellent staffs in subsidiary company; study on supply chain management strategies of sports goods company; the research of viability of state-owned enterprises; the application of the bionics in agricultural tourism planning; research on inventory control model based on the rising price; China\'s rural economy growth basing on solow model; the empirical analysis on calendar spread arbitrage of CSI 300 stock index futures; opportunism of financial supervision and self-enforcing of supervisory contracts; corporate governance and financial distress prediction; comparison of Hubei and typical provinces on the engine of economic growth; the application of fuzzy set theory in modern information retrieval; the genesis of land finance in china and the solution; research on building the harmonious labor relations in private enterprises; analysis of production line balancing based on double-e; research on sustainable development water-price system in Dalian; an internet transaction integrity risk game model; the postponement strategy oriented towards mass customization and its application; the creation of provincial cultivated land protection fund; research on internal control evaluation system and CSA; research on stock index optimization replication in genetic algorithm; diet safety and management of seafood in china; game analysis on two-echelon supply chain with product quality failure; new understanding of consumer attitude in the context of brand crisis; empirical research of female financial behavior based on self-concept structure; current situation and countermeasures of strategic emerging industries in china; the fourth wave of computing; a tentative probe into crisis stimulus and performance control system; the efficiency of resources allocation on coordinating urban and rural education; research on side payment incentive mechanism in low-carbon economy development; the cause and prevention of the enterprise financing risk; study on flexible performance appraisal index system of nonprofit knowledge organization; the marine tourism safety control system research; adaptive countermeasures for permafrost degradation in northeast China; study on low-rent housing system; a study on sustainable development of resource producing areas in china; grey correlation analysis of Shandong environmental regulation and FDI; research and analysis on lipstick effect of cultural industries in the postcrisis era; the development policy of Wuhan college students technology venture angel fund; comprehensive assessment index system for marine industry; research on network information ecological chain from the view of evolution; a study on agricultural logistics mode of karst region; the appreciation trend and forecast of RMB exchange rate; a group company materials management countermeasure; analysis on the brand strategy of decentralized agricultural production; FDI risk assessment based on the dual fuzzy comprehensive evaluation method; the current status and the coming trends of China\'s SME\'s internet marketing; a price discount in n-stage ordering contract to the supply chain coordination; intergenerational knowledge transfer in workplace; the effectiveness evaluation of inner Mongolia region investment based on DEA model; China population strategy and economic structure adjustment; the study of load matching of passenger in expressway; integrated model and network optimization for China\'s agricultural supply chain; study on strategy management in port scale competition; countermeasures and suggestions on expediting the boomtown construction in low-carbon economy; analysis of vehicle dispatching policy in an automated container terminal; an empirical study of the western region industrial agglomeration measure; application of IAHP to improve the method of job evaluation; on system of enterprise emergency management based on integrating peacetime with wartime; research on Chinese tax policy for energy saving and emission reduction; Psychological contract is psychological drive for professional development of college teachers; Information disclosure, information quality, and controlling large shareholders; infrastructure investment and economic growth empirical analysis in Henan province; labor quota determination, application and improvement research; influencing factors for high-tech industry in Jiangsu Province; the reflection and definition of the macroeconomic policy for China\'s labor migration; the effect of merchandise assortment on retail brand; development of low-carbon industrial park based on the assessment of carbon emission; empirical analysis of equity concentration and company performance; some thoughts on the development of renewable energy in China; The factor analysis of environment policy based on international trade; a new evaluation model based on SEM; study on information ecosystem research in electronic commerce; cognitive model and formal description for survivable system based on SM-PEPA; formal description of cognitive reference model for survivable system based on symbolic trace method; the research of waste cars\' recycling rate regulation under extended producer responsibility; a joint computing model based on Chinese spam text similarity; a perspective on customer equity; the cloud single sign-on authentication based on Kerberos and SAML; analyzing uncertainty and ambiguity in R&D projects using simulation; the data integration of financial management system with digital campus platform; an improved clustering algorithm based on BIRCH and DBSCAN; web spam detection based on tri co-training; design and implementation of a monitor system for application server based on JMX; the application of artificial neural network in constructional engineering cost budget; the construction of the three-dimensional network security defence system based on the T-S model of the neural network; design of integration platform for data sharing in distributed computer network; efficient group method of data handling; research and application of PON technology; the application and optimization of artificial intelligence in robot path planning; the application research on honeypot technology in intrusion detection system; research of WEB data mining and its application in social networks; over the top service of IPTV in cloud computing era; Research of a Zigbee energy balancing routing algorithm; research of image detection based on image segmentation; design of smart home security system based on Zigbee; extension detecting technology applied in medical image segmentation; study on application of multiple intelligences theory in higher college education; research of image segmentation technology on AFM image; design of greenhouse monitoring system based on IOT; image inpainting algorithm in 2d-to-3d video conversion; design of consumption management system based on RFID; the discussion on large capacity rail traffic safety monitoring network and color image segmentation using PSO-based histogram thresholding.','',1,'[No author name available]','scopus/soa security.csv','scopus','\0'),(1307,'Business Process Modeling for Insider Threat Monitoring and Handling','2014','0',' Business Process Business Process Management Insider Threat Monitoring Privacy Social Media','Abstract Business process modeling has facilitated modern enterprises to cope with the constant need to increase their productivity, reduce costs and offer competitive products and services. Despite modeling’s and process management’s widespread success, one may argue that it lacks of built-in security mechanisms able to detect and deter threats that may manifest throughout the process. To this end, a variety of different solutions have been proposed by researchers which focus on different threat types. In this paper we examine the insider threat through business processes. Depending on their motives, insiders participating in an organization’s business process may manifest delinquently in a way that causes severe impact to the organization. We examine existing security approaches to tackle down the aforementioned threat in enterprise business processes and propose a preliminary model for a monitoring approach that aims at mitigating the insider threat. This approach enhances business process monitoring tools with information evaluated from Social Media by examining the online behavior of users and pinpoints potential insiders with critical roles in the organization’s processes. Also, this approach highlights the threat introduced in the processes operated by such users. We conclude with some observations on the monitoring results (i.e. psychometric evaluations from the social media analysis) concerning privacy violations and argue that deployment of such systems should be allowed solely on exceptional cases, such as protecting critical infrastructures or monitoring decision making personnel.','',2,'Vasilis StavrouMiltiadis KandiasGeorgios KaroulasDimitris Gritzalis','springer/bpmn security.csv','springer',''),(1308,'A robustness testing approach for SOAP Web services','2012','3',' Testing Reliability and robustness Web services Benchmarking','Abstract The use of Web services in enterprise applications is quickly increasing. In a Web services environment, providers supply a set of services for consumers. However, although Web services are being used in business-critical environments, there are no practical means to test or compare their robustness to invalid and malicious inputs. In fact, client applications are typically developed with the assumption that the services being used are robust, which is not always the case. Robustness failures in such environments are particularly dangerous, as they may originate vulnerabilities that can be maliciously exploited, with severe consequences for the systems under attack. This paper addresses the problem of robustness testing in Web services environments. The proposed approach is based on a set of robustness tests (including both malicious and non-malicious invalid call parameters) that is used to discover programming and design errors. This approach, useful for both service providers and consumers, is demonstrated by two sets of experiments, showing, respectively, the use of Web services Robustness testing from the consumer and the provider points of view. The experiments comprise the robustness testing of 1,204 Web service operations publicly available in the Internet and of 29 home-implemented services, including two different implementations of the Web services specified by the standard TPC-App performance benchmark. Results show that many Web services are deployed with critical robustness problems and that robustness testing is an effective approach to improve services quality.','Journal of Internet Services and Applications',2,'Nuno LaranjeiroMarco VieiraHenrique Madeira','springer/bpel security.csv','springer','\0'),(1309,'A secure framework for business process execution','2013','','Business processes; Secure framework; Web service; Web service composition','A web service is a method of communication between two electronic devices over the World Wide Web. The web service is a software function that provides different business functionality to service consumers. The set of web services can be composed together as a composition operation to fulfill and achieve the complex business requirements with the help of Business Process Execution Language (BPEL) or business processes. The existing business processes are having set of merits such as industry oriented approach and good control over workflow design. The business processes are unable to support for human user interaction, encryption and decryption mechanisms for providing the security for its data processing, therefore, the data process by business processes will not be secure from unauthorized users over the network. In this paper, we propose a secure framework for business processes to provide data security over the network. The proposed framework implements Caesar Cipher technique of cryptography with an example. The proposed technique transmits data in a secure manner over the network. © 2013 IEEE.','',2,'Bhandari R., Suman U.','scopus/bpel security.csv','scopus','\0'),(1310,'Network and infrastructure considerations for hard and soft information fusion processes','2012','','hard soft information fusion; infrastructure; participatory sensing; service-oriented; SOA','The changing landscape of defense and security applications, as well as existing needs in other domains, has given rise to the need to design and develop information fusion systems that entail the combination of hard (physical sensor) data and observations from humans (soft data) in a distributed networked environment ([1], [2]). Such fusion processes stress both traditional fusion-based algorithmic design strategies as well as imputing requirements onto the design of appropriate decentralized architectures. In designing a framework for such an environment, the system architecture must be considered both at the level of information infrastructure and at the network/software level of implementation. From the information infrastructure perspective, primary concerns include which observations will be fed into the system, the intended goals (e.g. data mining, hypothesis generation/testing), how humans interact with the system (e.g. information gathering, analysis, process evaluation/refinement), and which levels of state estimation and fusion are appropriate at a given stage of the process [3]. Bisantz et al [4] discuss aspects of how humans interact with such new distributed networked information fusion systems and identify \"touch points\" where innovations can support improved system performance. An effective network/software architecture is tightly intertwined with the information infrastructure. The former must meet the functional requirements of the latter without adding unnecessary complexity, prohibiting scalability or extensibility, putting undue performance limitations on the system, or compromising system security. Additionally, the system must have the agility and flexibility to successfully and rapidly complete complex tasks that were not possible to anticipate at design-time. This paper presents an information infrastructure for hard and soft fusion that balances the features offered by the current state of the art in computing paradigms (e.g. SOA, ESB) and data representation (e.g. RDF, OWL, TML, EML) with the requirements of our overarching concept of employment for hard and soft fusion capability. The paper provides guidance on determining the optimal software and network architecture design for enabling human-centric and distributed operations in time-critical, vastly heterogeneous, and highly unpredictable conditions. The designs described have been implemented using both synthetic data from our SYNCOIN data set ([5], [6]) and actual sensor/observational data collected at a Penn State test site. © 2012 ISIF (Intl Society of Information Fusi).','',1,'Rimland J.C., Llinas J.','scopus/soa security.csv','scopus','\0'),(1311,'Automatic Service Categorisation through Machine Learning in Emergent Middleware','2013','0','','Abstract The modern environment of mobile, pervasive, evolving services presents a great challenge to traditional solutions for enabling interoperability. Automated solutions appear to be the only way to achieve interoperability with the needed level of flexibility and scalability. While necessary, the techniques used to determine compatibility, as a precursor to interaction, come at a substantial computational cost, especially when checks are performed between systems in unrelated domains. To overcome this, we apply machine learning to extract high-level functionality information through text categorisation of a system’s interface description. This categorisation allows us to restrict the scope of compatibility checks, giving an overall performance gain when conducting matchmaking between systems. We have evaluated our approach on a corpus of web service descriptions, where even with moderate categorisation accuracy, a substantial performance benefit can be found. This in turn improves the applicability of our overall approach for achieving interoperability in the Connect project.','',2,'Amel BennaceurValérie IssarnyRichard JohanssonAlessandro MoschittiRomina SpalazzeseDaniel Sykes','springer/bpel security.csv','springer','\0'),(1312,'An immunology-inspired multi-engine anomaly detection system with hybrid particle swarm optimisations','2012','0','Anomaly intrusion detection;Fuzzy logic;Hidden Markov model;Immunology;Multiple detection engines','In this paper, multiple detection engines with multi-layered intrusion detection mechanisms are proposed for enhancing computer security. The principle is to coordinate the results from each single-engine intrusion alert system, which seamlessly integrates with a multiple layered distributed service-oriented structure. An improved hidden Markov model (HMM) is created for the detection engine which is capable of the immunology-based self/nonself discrimination. The classifications of normal and abnormal behaviours of system calls are further examined by an advanced fuzzy-based inference process tuned by HPSOWM. Considering a real benchmark dataset from the public domain, our experimental results show that the proposed scheme can greatly shorten the training time of HMM and significantly reduce the false positive rate. The proposed HPSOWM works especially well for the efficient classification of unknown behaviors and malicious attacks.','Fuzzy Systems (FUZZ-IEEE), 2012 IEEE International Conference on',1,'F. Jiang; S. H. Ling; Kit Yan Chan; Z. Chaczko; F. H. F. Leung; M. R. Frater','ieee/service oriented architecture security.csv','ieee','\0'),(1313,'SOA-scanner: An integrated tool to detect vulnerabilities in service-based infrastructures','2013','2','security; security testing; SOA; vulnerability detection; web-services','Service Oriented Architectures are nowadays used in a wide range of organizations to support critical daily operations. Although the underlying services should behave in a secure manner, they are often deployed with bugs that can be maliciously exploited. The characteristics of service-based environments open the door to security challenges that must be handled properly, including services under the control of multiple providers and dynamism of interactions and compositions. This paper presents an extensible tool able to widely test such infrastructures for vulnerabilities. The tool is based in an iterative process that uses interface monitoring to automatically monitor and discover the existing services, resources and interactions, and applies different testing approaches depending on the level of access to each existing services. Two case studies has been developed do demonstrate the tool, and results show that the tool can effectively be used in different service-based scenarios, under different access conditions to the target services. © 2013 IEEE.','',1,'Antunes N., Vieira M.','scopus/service oriented architecture security.csv','scopus','\0'),(1314,'A Metamodel of the B Modeling of Access-Control Policies: Work in Progress','2012','0',' Metamodel access-control IS formal method MDA B','Abstract Verification and validation of access-control policies for information systems is a difficult yet necessary task. In order to take advantage of the formal properties and tools of the B method, we introduce in this paper a metamodel of the B modeling of access control policies. This metamodel lead to the development of a formal prototype of an access control filter combined to the system. It allows verification and validation of policies before implementation.','',2,'Jérémy MilhauMarc FrappierRégine Laleau','springer/bpel security.csv','springer','\0'),(1315,'A Heterogeneous Approach for Developing Applications with FIWARE GEs','2015','0',' Cloud FIWARE Generic enabler Component model Heterogeneous composition','Abstract The European Commission funded FIWARE project aims to support the development of a European cloud, and a rich catalogue of generic components called Generic Enablers (GEs). However, the lack of an efficient approach and tool for developing applications using GEs hinders their adoption. This paper tries to fill this gap by proposing an approach based on a component model, along with its related tool, that allows heterogeneous composition of GEs and non-GE components. The approach is validated with a case study where a content delivery application is developed.','',2,'Simone Di ColaCuong TranKung-Kiu LauAntonio CelestiMaria Fazio','springer/bpel security.csv','springer',''),(1316,'A BPMN extension for the modeling of security requirements in business processes','2007','130','BPMN; Business process; Security requirement','Business Processes are considered a crucial issue by many enterprises because they are the key to maintain competitiveness. Moreover, business processes are important for software developers, since they can capture from them the necessary requirements for software design and creation. Besides, business process modeling is the center for conducting and improving how the business is operated. Security is important for business performance, but traditionally, it is considered after the business processes definition. Empirical studies show that, at the business process level, customers, end users, and business analysts are able to express their security needs. In this work, we will present a proposal aimed at integrating security requirements through business process modeling. We will summarize our Business Process Modeling Notation extension for modeling secure business process through Business Process Diagrams, and we will apply this approach to a typical health-care business process. Copyright © 2007 The Institute of Electronics, Information and Communication Engineers.','',2,'Rodríguez A., Fernández-Medina E., Piattini M.','scopus/bpmn security.csv','scopus',''),(1317,'Formalizing and verifying stochastic system architectures using Monterey Phoenix','2016','0',' Model checking Stochastic system architecture Monterey Phoenix','Abstract The analysis of software architecture plays an important role in understanding the system structures and facilitate proper implementation of user requirements. Despite its importance in the software engineering practice, the lack of formal description and verification support in this domain hinders the development of quality architectural models. To tackle this problem, in this work, we develop an approach for modeling and verifying software architectures specified using Monterey Phoenix (MP) architecture description language. MP is capable of modeling system and environment behaviors based on event traces, as well as supporting different architecture composition operations and views. First, we formalize the syntax and operational semantics for MP; therefore, formal verification of MP models is feasible. Second, we extend MP to support shared variables and stochastic characteristics, which not only increases the expressiveness of MP, but also widens the properties MP can check, such as quantitative requirements. Third, a dedicated model checker for MP has been implemented, so that automatic verification of MP models is supported. Finally, several experiments are conducted to evaluate the applicability and efficiency of our approach','Software & Systems Modeling',1,'Songzheng SongJiexin ZhangYang LiuMikhail AugustonJun SunJin Song DongTieming Chen','springer/service oriented architecture security.csv','springer',''),(1318,'The Role of Data Integrity in EU Digital Signature Legislation — Achieving Statutory Trust for Sanitizable Signature Schemes','2012','0','','Abstract We analyse the legal requirements that digital signature schemes have to fulfil to achieve the Statutory Trust granted by the EU electronic signature laws (“legally equivalent to hand-written signatures”). Legally, we found that the possibility to detect subsequent changes is important for the Statutory Trust. However, detectability was neither adequately nor precisely enough defined in the technical and legal definitions of the term “Data Integrity”. The existing definition on integrity lack a precise notion of which changes should not invalidate a corresponding digital signature and also lack notions to distinguish levels of detection. We give a new definition for Data Integrity including two notions: Authorized changes, these are changes which do not compromise the data’s integrity; and their level of detection. Especially, the technical term “Transparency” introduced as a security property for sanitizable signature schemes has an opposite meaning in the legal context. Technically, cryptography can allow authorized changes and keep them unrecognisably hidden. Legally, keeping them invisible removes the Statutory Trust. This work shows how to gain the Statutory Trust for a chameleon hash based sanitizable signature scheme.','',1,'Henrich C. PöhlsFocke Höhne','springer/webservice security.csv','springer','\0'),(1319,'SAMM: an architecture modeling methodology for ship command and control systems','2016','0',' Architecture modeling Viewpoint UML SysML Ship command and control systems','Abstract Ship command and control systems (SCCSs) are composed of large-scale, complex, real-time and software-intensive systems that complete tasks collaboratively. Open architecture has been introduced to design the architecture of SCCSs and has been refined into functional architecture (FA) and technical architecture (TA) to meet architectural requirements such as adapting fast-speed functional and technical changes. Thereby, specifying the architecture of SCCSs, based on FA and TA, becomes a key issue for stakeholders of the domain. In this paper, we propose an architecture modeling methodology (named as SAMM) for describing the architecture of SCCSs. SAMM is derived by following a systematic and generic framework—modeling Goal, domain-specific Conceptual model, architecture Viewpoint, and architecture description Language (GCVL), which guides domain experts to devise domain-specific architecture modeling methodologies of large-scale software-intensive systems. SAMM contains three viewpoints and 22 models, and a UML/SysML-based architecture description language. An industrial application of SAMM, along with the subsequent application of the derived SAMM architecture model (i.e., a deployed SCCS prototype) was conducted to evaluate SAMM. A questionnaire-based survey was also conducted to subjectively evaluate whether SAMM meets the modeling goals and its applicability. Results show that SAMM meets all modeling goals and is easy to apply.','Software & Systems Modeling',1,'Zhiqiang FanTao YueLi Zhang','springer/service oriented architecture security.csv','springer',''),(1320,'Model-Driven Composition of Information Systems from Shared Components and Connectors','2013','0',' information system engineering component model model-driven engineering','Abstract We introduce CompIS, an approach, model and platform for model-driven component-based information system engineering. Our approach is based on the concept of shared components and connectors between them. To address the data-intensive nature of information systems, our components follow an extended model-view-control structure that also includes data. Component composition is based on configurable connectors, which define the collaboration logic between components and support component composition at the level of the component model, view, control and data. The CompIS UML profile allows to graphically define new components, connectors and compositions. The CompIS platform is a model-driven engineering environment, based on an extended object database that natively integrates the CompIS model. From graphical UML model definitions, the platform automatically generates application code that creates and initialises components and connectors. We present and validate our approach in the eCommerce domain.','',2,'Stefania LeoneAlexandre de SpindlerDennis McLeod','springer/bpel security.csv','springer','\0'),(1321,'Supporting Different Process Views through a Shared Process Model','2013','0','','Abstract Different stakeholders in the Business Process Management (BPM) life cycle benefit from having different views onto a particular process model. Each view can show, and offer to change, the details relevant to the particular stakeholder, leaving out the irrelevant ones. However, introducing different views on a process model entails the problem to synchronize changes in case that one view evolves. This problem is especially relevant and challenging for views at different abstraction levels. In this paper, we propose a Shared Process Model that provides different stakeholder views at different abstraction levels and that synchronizes changes made to any view. We present detailed requirements and a solution design for the Shared Process Model in this paper. Moreover, we also present an overview of our prototypical implementation to demonstrate the feasibility of the approach.','',2,'Jochen KüsterHagen VölzerCédric FavreMoises Castelo BrancoKrzysztof Czarnecki','springer/bpel security.csv','springer',''),(1322,'Design and realization of SOA based management system for open experiment lab','2012','','Management system; Open experimental Lab; SOA','This paper first analyzed the current situations and problems in open experiment labs of higher education and then explored and designed SOA based management system for open experiment lab. This system can meet the needs of functions, performance and security and it has improved quality of experimental teaching and simplified the management work. © 2012 IEEE.','',1,'Ding M., Chai S.','scopus/soa security.csv','scopus','\0'),(1323,'Architecture and organization of e-Assessment cloud solution','2013','21','Cloud Computing;Load Balancing;Performance;eAssessment','All e-Assessment systems have several challenges, such as accurate evaluation, security and data privacy, performance, scalability etc. In this paper we focus on e-Assessment scalability and performance. We propose a SOA architecture of a cloud hosted e-Assessment system which uses scalability and elasticity in order to achieve sustainable performance. Our solution consists of three subsystems, the first for management, the second for reports, and the third for on-demand activities during the assessments. It reduces the overall costs since it uses minimum resources utilized only during the e-Assessment. Better performance is expected to be achieved since the active subsystem for each assessment works with much smaller data compared to the centralized one.','Global Engineering Education Conference (EDUCON), 2013 IEEE',1,'S. Ristov; M. Gusev; G. Armenski; K. Bozinoski; G. Velkoski','ieee/service oriented architecture security.csv','ieee',''),(1324,'An End-to-End Security Auditing Approach for Service Oriented Architectures','2012','3','Service Oriented Architecture;security auditing;taint analysis;trust','Service-Oriented Architecture (SOA) is becoming a major paradigm for distributed application development in the recent explosion of Internet services and cloud computing. However, SOA introduces new security challenges not present in the single-hop client-server architectures due to the involvement of multiple service providers in a service request. The interactions of independent service domains in SOA could violate service policies or SLAs. In addition, users in SOA systems have no control on what happens in the chain of service invocations. Although the establishment of trust across all involved partners is required as a prerequisite to ensure secure interactions, still a new end-to-end security auditing mechanism is needed to verify the actual service invocations and its conformance to the expected service orchestration. In this paper, we provide an efficient solution for end-to-end security auditing in SOA. The proposed security architecture introduces two new components called taint analysis and trust broker in addition to taking advantages of WS-Security and WS-Trust standards. The interaction of these components maintains session auditing and dynamic trust among services. This solution is transparent to the services, which allows auditing of legacy services without modification. Moreover, we have implemented a prototype of the proposed approach and verified its effectiveness in a LAN setting and the Amazon EC2 cloud computing infrastructure.','Reliable Distributed Systems (SRDS), 2012 IEEE 31st Symposium on',1,'M. Azarmi; B. Bhargava; P. Angin; R. Ranchal; N. Ahmed; A. Sinclair; M. Linderman; L. B. Othmane','ieee/service oriented architecture security.csv','ieee','\0'),(1325,'SHERPA: An Air-Ground Wireless Network for Communicating Human and Robots to Improve the Rescuing Activities in Alpine Environments','2015','0',' Air-ground robotic networks Alpine scenarios WiMAX','Abstract Robot-based rescue systems are envisioned now-a-days as a promising solution for saving human lives after the avalanche accidents in alpine environments. To this aim, a European project named “Smart collaboration between Humans and ground-aErial Robots for imProving rescuing activities in Alpine environments (SHERPA)” has been launched. Robots with smart sensors and mobility feature are needed for achieving the goal of this project, therefore, the SHERPA networks need to consider two degrees of freedom: one is throughput for transmitting realtime images and videos and another is range for mobility. In this paper, we design a wireless network infrastructure with the objective to communicate human and robots during the rescue mission in alpine environments. Firstly, we study about the network components, scenario and topology according to this environment. Then we design the network infrastructure for communicating among network components by taking account of the two degrees of freedom. Finally, the performance of the network is analyzed by means of numerical simulations. The simulation results reveal the effectiveness of the proposal.','',1,'Md Arafatur Rahman','springer/service oriented architecture security.csv','springer',''),(1326,'Why Are Business Processes Not Secure?','2013','2','','Abstract Security is simple to understand but hard to ensure. In the times of Internet, this task has been becoming harder every day. To date, computer science has not solved how to prevent the misuse of business processes. While data objects can be protected, a process cannot. The reason is the security of a process depends not only on its individual accesses and can only be accessed upon the process’ termination or when cast into the context of other processes. Many unbelievable scandals encompassing sophisticated and powerful players, from Microsoft to Sony and credit card operators, from leakages in governments to cyber crime and war attacks could not be prevented despite heavy investment in security. The claim here is that the way in which computer science deals with security does not apply to processes. The key discipline in security is “cryptography”, where the “laureate” Prof. Buchmann got his distinction from. This paper is about how cryptography can be applied as a basis to automate security and give participants in a market an equal position and prevent fraud. To complicate the issue, the goal is security in business processes. The reason is obvious. If one makes mistakes or vulnerabilities are left uncovered, huge fraud incidents might happen, the stockowners rebel, the government complains and employees are, in the worst case, deprived from their pension. This is a real, sensitive issue, with unclear solutions, ambivalent in nature, but rigorous in punishment. The issue is not just to protect, but also to deter “bad things”, such as criminal intents. The option to judge people’s intentions is not an option for mankind; it is not an option though for computer science. We need to automate security and establish procedures that, upon the event of misuse, ascertain accountability. The main goal and challenge of security in business processes is, on one hand, to provide well-founded guarantees regarding the adherence to security, privacy and regulatory compliance requirements and, on the other hand, to integrate the corresponding mechanisms into the business process management lifecycle. This paper introduces this research area, its current status and upcoming practical challenges.','',2,'Günter MüllerRafael Accorsi','springer/bpel security.csv','springer','\0'),(1327,'Reactive Service Selection in Dynamic Service Environments','2012','1',' service composition adaptive service selection quality of service','Abstract Due to the highly dynamic nature of services (web services can enter or leave the system at any time, or change their characteristics), adaptation to change during service composition is necessary to meet user needs. Yet current approaches to change handling detect quality violations and service unavailability only after their occurrence (after executing the corresponding service), resulting in undesired situations at execution time from which recovery (usually through costly replanning) might not always be possible. In response, this paper presents a novel reactive selection algorithm, which adapts to changes in the environment efficiently while performing the selection, ensuring that the selected composite service is executable, satisfactory and optimal prior to execution. The algorithm’s effectiveness is demonstrated via experimental results.','',2,'Lina BarakatSimon MilesMichael Luck','springer/bpel security.csv','springer','\0'),(1328,'Automatic Top-Down Role Engineering Framework Using Natural Language Processing Techniques','2015','0',' Role Based Access Control Role engineering Semantic role labeling Natural language processing Privacy policy','Abstract A challenging problem in managing large networks is the complexity of security administration. Role Based Access Control (RBAC) is the most well-known access control model in diverse enterprises of all sizes because of its ease of administration as well as economic benefits it provides. Deploying such system requires identifying a complete set of roles which are correct and efficient. This process, called role engineering, has been identified as one of the most expensive tasks in migrating to RBAC. Numerous bottom-up, top-down, and hybrid role mining approaches have been proposed due to increased interest in role engineering in recent years. In this paper, we propose a new top-down role engineering approach and take the first step towards extracting access control policies from unrestricted natural language requirements documents. Most organizations have high-level requirement specifications that include a set of access control policies which describes allowable operations for the system. It is very time consuming, labor-intensive, and error-prone to manually sift through these natural language documents to identify and extract access control policies. We propose to use natural language processing techniques, more specifically Semantic Role Labeling (SRL) to automatically extract access control policies from these documents, define roles, and build an RBAC system. By successfully applying semantic role labeling to identify predicate-argument structure, and using a set of predefined rules on the extracted arguments, we were able correctly identify access control policies with a precision of 79%, recall of 88%, and \\( F_{1} \\) score of 82%.','',2,'Masoud NaroueiHassan Takabi','springer/bpmn security.csv','springer',''),(1329,'Human Task Management for RESTful Services','2012','0',' Human Task Management REST Hypermedia','Abstract Human task management is an integral part of WS-* based service-oriented solutions like ESBs as human interactions are important for business processes. Also alternative REST-based service-oriented solutions provide support for business processes but lack interoperable human task management solutions. In the PhD project we are investigating possibilities and limits of incorporating human tasks in REST-based service solutions. We present a first approach and discuss the design of the remaining research process including challenges, potential benefits, and open issues.','',2,'Daniel Schulte','springer/bpel security.csv','springer','\0'),(1330,'Implementing Billing as a Service by an IPDR Aggregator System','2016','0',' Internet Protocol Detail Record Cloud computing Aggregated bill Billing as a Service Cellular operators','Abstract In the past decade, mobile Internet applications provided by cellular operators have been shifted from an emphasis on one-way content delivery to attention to two-way multimedia interaction. IP-based multimedia application development is booming in the recent years. Without systematical integration among these business support systems, subscribers may receive several different bills from different service providers periodically so as to makes them bedazzled. Meanwhile, cloud computing typically involves provisioning of dynamically scalable resources to provide a powerful computation. Motivated by the aforementioned facts, we propose an Internet Protocol Detail Record based architecture, which can combine different service bills and utilize cloud computing to calculate collectively aggregated bill, to establish a Billing as a Service for cellular operators. In order to validate the efficiency of clouding computing for the aggregated billing calculation, we also conduct performance evaluations for the billing computation over the traditional relational database and our proposed system.','Wireless Personal Communications',1,'Jenq-Shiou LeuWen-Bin HsiehYun-Sun Yee','springer/service oriented architecture security.csv','springer',''),(1331,'Reliable, Secure, and Transacted Web Service Compositions with AO4BPEL','2006','7','','Web service compositions in BPEL have several nonfunctional requirements such as security, reliable messaging, and transactions. Although many WS-* specifications address such non-functional concerns in the Web service context, they focus only on the messaging-level requirements without addressing the process-level requirements. In this paper, we discuss different non-functional requirements in BPEL workflows and observe that current orchestration engines lack support for the specification and enforcement of such requirements, especially for process-level requirements. To solve this problem, we present a container framework, which introduces an XML-based deployment descriptor to specify the non-functional requirements in a declarative way. To enforce these requirements, a process container intercepts the process execution and calls dedicated middleware Web services. We implemented the process container as a lightweight container using a set of A04BPEL aspects that are automatically generated from the deployment descriptor. In addition, we have implemented BPEL middleware Web services for reliable messaging, security, and transaction','2006 European Conference on Web Services (ECOWS\'06)',2,'A. Charfi; B. Schmeling; A. Heizenreder; M. Mezini','ieee/bpel security.csv','ieee','\0'),(1332,'Case Studies: Code Generators for jABC','2013','0','','Abstract Besides being the basis of the Genesys framework, jABC itself is an application field for code generation. As described in Sect. 3.1, the XMDD paradigm underlying jABC postulates an unidirectional code generation approach that deliberately avoids round-tripping (cf. Sect. 2.4.4). Consequently, jABC is in need of code generation facilities that are powerful enough to support this tenet, and at the same time are easy to use in a way that respects jABC’s users, who are typically application experts without deep technical knowhow. Similar objectives can also be found among the basic requirements of the Genesys approach ( Requirement S2 - Full Code Generation, Requirement G3 - Simplicity ). Furthermore, as jABC is used in a broad range of very heterogeneous application scenarios (cf. Sect. 3.2), it provides the opportunity of examining and comparing the construction of code generators for very different target platforms, each of them representing a separate case study with its own set of specific requirements.','',2,'Sven Jörges','springer/bpel security.csv','springer','\0'),(1333,'Springer computing special issue: adaptation in service-oriented and Cloud Computing','2013','0','','','Computing',1,'Dimka Karastoyanova','springer/service oriented architecture security.csv','springer','\0'),(1334,'A flexible service selection for executing virtual services','2013','1',' service discovery service selection virtual service service selector service aggregation marketplace','Abstract With the adoption of a service-oriented paradigm on the Web, many software services are likely to fulfil similar functional needs for end-users. We propose to aggregate functionally equivalent software services within one single virtual service, that is, to associate a functionality, a graphical user interface (GUI), and a set of selection rules. When an end user invokes such a virtual service through its GUI to answer his/her functional need, the software service that best responds to the end-user’s selection policy is selected and executed and the result is then rendered to the end-user through the GUI of the virtual service. A key innovation in this paper is the flexibility of our proposed service selection policy. First, each selection policy can refer to heterogeneous parameters (e.g., service price, end-user location, and QoS). Second, additional parameters can be added to an existing or new policy with little investment. Third, the end users themselves define a selection policy to apply during the selection process, thanks to the GUI element added as part of the virtual service design. This approach was validated though the design, implementation, and testing of an end-to-end architecture, including the implementation of several virtual services and utilizing several software services available today on the Web.','World Wide Web',1,'Nassim LagaEmmanuel BertinNoel CrespiIvan BediniBenjamin MolinaZhenzhen Zhao','springer/service oriented architecture security.csv','springer','\0'),(1335,'International Conference on ICT for Sustainable Development, ICT4SD 2015','2016','','','The proceedings contain 77 papers. The special focus in this conference is on Sustainable Development. The topics include: Implementing the logical security framework for e-commerce based on service-oriented architecture; indian sign language translator using kinect; formal transformation of UML diagram; a survey of android malware detection strategy and techniques; a review on dynamic view selection; software project estimation using fuzzy inference system; lost connectivity restoration in partitioned wireless sensor networks; analysis of authentication techniques adopted by end users in real-life cloud implementation; network analysis of ICMP ping flood DoS attack in WiMAX and wireless LAN; scheduling in big data heterogeneous distributed system using Hadoop; a new differential scan-based side-channel attacks against RSA cryptosystem; design and development of a rule-based Urdu lemmatizer; enhanced microstrip patch antenna using metamaterial for DECT and aircraft wireless system applications; an enhanced strategy to minimize makespan in cloud environment to accelerate the performance; prefix length-based disjoint set tries for IPv6 lookup; implementation of FAST clustering-based feature subset selection algorithm for high-dimensional data; performance comparison of 2D and 3D zigbee wireless sensor networks; enhancement of data security by PMK technique; privacy-leveled perturbation model for privacy preserving collaborative data mining; extended bellman ford algorithm with optimized time of computation; supervised link prediction using forecasting models on weighted online social network and dual-band rectangular-shaped antenna with sideway extension at top and bottom for WLAN and WiMax applications.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus',''),(1336,'Service security revisited','2014','','REST; Security; Services; SOA; SOAP','Developing contemporary software architectures requires the consideration and adoption of the Service-oriented Architecture (SOA) principles. Distributed applications are a very common domain in which SOA guides design decisions in particular. For a long time, SOAP and its related stack of standards have been the only technological choice for implementing SOA-based systems. With the increased adoption of the REST concept, an alternative to SOAP is gaining traction. Security considerations have been part of the SOAP-based standardization work since the very beginning. As a result, a mature and comprehensive set of security-related standards is available for building SOAP-based service systems. REST-ful service systems, however, cannot take advantage of such a fully developed security framework yet. This paper therefore revisits the SOAP-based web services security stack in order to identify commonalities, differences and gaps in the security available for REST-ful services. From these findings a desired REST-ful web services security stack is proposed together with related research, development and standardization challenges. © 2014 IEEE.','',1,'Gorski P.L., Iacono L.L., Nguyen H.V., Torkian D.B.','scopus/service oriented architecture security.csv','scopus','\0'),(1337,'Extended BPEL with Heterogeneous Authentication Mechanisms in Service Ecosystems','2009','0','BPEL, SSO, authentication, web service composition','Proceedings of the International Conference on Management of Emergent Digital EcoSystems','',2,'Pascal Bou Nassar and Youakim Badr and Frederique Biennier and Kablan Barbar','acm/bpel security.csv','acm','\0'),(1338,'Remotely reconfigurable hardware-software platform with web service interface for automated video surveillance','2013','1','FPGA; Image processing; Soa; Video surveillance; Web service','This paper presents a reconfigurable hardware platform for general-purpose video processing. The proposed design is a step towards portable, web-enabled devices which, unlike most existing smart cameras, are to a large degree autonomous and have substantial intelligence embedded. The device is based on programmable logic, microcontrollers, and dedicated communication modules. It is able to acquire an input frame using a built-in camera, process the image in a massively parallel manner, and expose its functionality as a web service compliant with the Service Oriented Architecture (SOA) paradigm. Thanks to the FPGA technology used for main functionality implementation, the system\'s hardware can be locally or remotely reconfigured in order to optimize it on a very low level for user-defined tasks. Moreover, the image processing core is implemented using a C-to-HDL compiler to reduce time to market when deploying new functionalities. We demonstrate the capabilities of our device on two example applications: moving object detection and face recognition. © 2013 Elsevier B.V. All rights reserved.','',1,'Brzoza-Woch R., Ruta A., Zieliński K.','scopus/service oriented architecture security.csv','scopus','\0'),(1339,'Automation of service-based security-aware business processes in the Cloud','2015','0',' Business process Automation Security Web services Cloud Mathematics Subject Classification 68M14 Distributed systems 68M11 Internet topics 68U35 Information systems','Abstract The use of business process standards to model and execute business needs is growing rapidly. In addition, Service-oriented Computing has been adopted to realize business processes, which basically consists of executing the process activities using services available in the Internet. In this context, the importance of security is apparent, because sensitive data sent over the Internet may be accessed by unauthorized third-parties. To prevent security problems, users may associate security requirements that must be enforced in essential tasks of the business process. This fact leads to the need of automation, because both functional and security requirements should be modeled, at high-level, and enforced, at execution level. This work proposes a cloud-based solution named BPA-Sec4Cloud that supports all phases of the security-aware business process automation, from its modeling to its deployment. The use of a cloud-based solution facilitates the deployment process because all needed resources are available in the cloud and ready to be used. In addition, the cloud is also used as a platform in order to provide specific services, such as translators, to support the automation process. In order to evaluate the BPA-Sec4Cloud, the solution was compared against existing solutions through the use of metrics related to the quality of generated artifacts.','Computing',2,'Fernando LinsJulio DamascenoRobson MedeirosErica SousaNelson Rosa','springer/bpel security.csv','springer',''),(1340,'An Approach to Assure Dependability Through ArchiMate','2015','0',' Assurance case O-DA Archimate ADM Assuredness EA','Abstract This paper describes a method to create assurance cases for the Open Dependability through Assuredness (O-DA) standard of The Open Group (TOG) based on ArchiMate. ArchiMate provides Enterprise Architecture (EA) models to describe Business, Application and Technology Architectures. Although O-DA shows the necessity of agreeing on the assuredness of EA using assurance cases, O-DA does not mention how to create assurance cases for EA. In this paper, an assurance case pattern is proposed to argue the assuredness for these three kinds of architectures modelled by ArchiMate.','',2,'Shuichiro Yamamoto','springer/bpmn security.csv','springer',''),(1341,'A Postmodern Perspective on Socio-technical Design Science Research in Information Systems','2015','0',' Design science Socio-technical artifacts Postmodernism Postmodern','Abstract This paper presents a critical account of the current state of design science research (DSR) of socio-technical artifacts in the information systems discipline as viewed through a postmodern lens. The paper offers a novel perspective to reflect on DSR and socio-technical artifacts, especially in terms of their limitations and boundaries of application. To achieve this, I critically appraise the current state of DSR practices, based on postmodern researchers’ key stances. The findings offer new perspectives on artifact effects, their application contexts, artifact utility, artifact audiences, the roles of the languages in which artifacts are specified, the design researcher’s role in the DSR process, and the political dimension of artifact design and evaluation. Design science researchers working on all types of socio-technical artifacts can use this paper’s findings to reflect on their artifacts’ limitations and potential real-world consequences before, during, and after artifact design and instantiation, and to subsequently improve these artifacts.','',2,'Andreas Drechsler','springer/bpmn security.csv','springer',''),(1342,'Towards a Reference Architecture for Service-Oriented Cross Domain Security Infrastructures','2014','0',' Cross Domain Communications Security Guard Workflow Service Oriented Architecture Reference Architecture Ontology Protocol','Abstract Today’s Cross Domain Communication (CDC) infrastructure largely consists of guards built to vendor specifications. Such an infrastructure often fails to provide adequate protections for CDC workflows involving Service Oriented Architectures. Focusing on the transport layer and oblivious to the context of the information exchanges, the guards often rely on rudimentary filtering techniques that require frequent human intervention to adjudicate messages. In this paper, we present a set of key requirements and design principles for a Service Oriented Cross Domain Security Infrastructure in form of a CDC Reference Architecture, featuring domain-associated guards as active workflow participants. This reference architecture will provide the foundation for the development of protocols and ontologies enabling runtime coordination among CDC elements, leading to more secure, effective, and interoperable CDC solutions.','',2,'Wen ZhuLowell VizenorAvinash Srinivasan','springer/bpel security.csv','springer',''),(1343,'Failure recovery in distributed model composition with intelligent assistance','2015','0',' Distributed model composition Failure recovery Semantic web AI planning','Abstract Composite models in Decision Support Systems (DSS) are combinations of model functions to solve complex decision problems. They must be executed successfully to obtain the desired results. Unfortunately, faults may happen during its execution due to the dynamic networks or the information asymmetry between developers and users. Therefore, designing effective failure recovery mechanism to ensure the reliability of the composite model execution is essential. Progress has been made in the web service composition field to obtain limited failure recovery capabilities, but not fully applicable to composite models since model services are informational services in essence which do not change the world conditions. This paper proposes a unified framework, integrated with a process ontology and multiple recovery strategies that can provide valuable failure recovery recommendations intelligently. The recovery strategies have been greatly enhanced in providing greater failure recovery capability. Feasibility and efficiency of this framework have been illustrated and tested.','Information Systems Frontiers',2,'Hui HuangXueguang ChenZhiwu Wang','springer/bpel security.csv','springer',''),(1344,'Automatic Adaptation of BPEL Processes Using Semantic Rules: Design and Development of a Loan Approval System','2007','0','','Dynamic service composition is an important challenge for many applications. This paper considers dynamic composition where the parties involved and the process they execute changes based on context. In such a setting, creating compositions from scratch is costly. Instead, we advocate automatic adaptation of existing compositions to fit the requested service demands. Our approach starts from existing BPEL processes. The details and constraints on the environment are expressed by semantic rules. We automatically decide which services are necessary to complete a desired service in a given BPEL process and which services can be removed from the process by using a reasoning engine. Based on this information, our flow generator modifies existing BPEL pivcesses to derive effective variations. The newly generated BPEL process is then executed. We study this approach in the context of a loan approval system and show how the modifications can be done on example scenarios.','Data Engineering Workshop, 2007 IEEE 23rd International Conference on',2,'F. M. Isik; B. Tastan; P. Yolum','ieee/bpel security.csv','ieee','\0'),(1345,'Data-centric access control with confidentiality for collaborating smart grid services based on publish/subscribe paradigm','2013','1','Access Control; Publish/Subscribe; Smart Grid; SOA','With the smart grid coming near, its information systems become more and more open with services as building blocks. Different smart grid services in different control centers collaborate to realize the real-time control and protection of power systems. The publish/subscribe paradigm makes smart grid service collaborations more real-time and flexible because of the space, time and control decoupling of event producer and consumer, which can be used to establish an appropriate communication infrastructure. Unfortunately, a publish/ subscribe-based smart grid service does not know who consumes its events, and consumers do not know who produces the events either. In this environment, the smart grid service cannot directly control access because of anonymous and indirect service interactions. To address the above issues, this paper at first describes the service communication foundation for smart grid services, and then defines their security model supporting data-centric methodology. Based on such model, underpinning network capabilities can be integrated to help smart grid services control access. The key point in our access control solution is to preserve the service interaction characteristics of the publish/subscribe-based smart grid services: anonymous, multicast and session-control. So two special kinds of event types are used to accomplish authorization request and granting with being consistent with the publish/subscribe paradigm. Attaching policy method is adopted to preserve the anonymity feature for collaborating smart grid services. A delegation scheme for brokers to enforce policies is finally constructed based on attribute-based encryption, which also brings confidentiality for smart grid services. © 2013 IEEE.','',1,'Zhang Y., Chen J.-L.','scopus/soa security.csv','scopus','\0'),(1346,'Towards Conflict-Free Composition of Non-functional Concerns','2012','0',' Feature Interaction NFC Composition Model-driven development Web Services','Abstract In component-based software development, applications are decomposed, e.g., into functional and non-functional components which have to be composed to a working system. The composition of non-functional behavior from different non-functional domains such as security, reliability, and performance is particularly complex. Finding a valid composition is challenging because there are different types of interdependencies between concerns, e.g. mutual exclusion, conflicts, and ordering restrictions, which should not be violated. In this paper we formalize a set of interdependency types between non-functional actions realizing non-functional behavior. These interdependencies can either be specified explicitly or implicitly by taking action properties into account. This rich set of interdependencies can then be used to ease the task of action composition by validating compositions against interdependency constraints, proposing conflict resolution strategies, and by applying our guided composition procedure. This procedure proposes next valid modeling steps leading to conflict-free compositions.','',2,'Benjamin SchmelingAnis CharfiMarko MartinMira Mezini','springer/bpmn security.csv','springer','\0'),(1347,'Cloud Computing, Networking, and Services','2012','2','','','Journal of Network and Systems Management',1,'Bhumip KhasnabishDijiang HuangXiaoying BaiPaolo BellavistaGregorio MartinezNick Antonopoulos','springer/service oriented architecture security.csv','springer','\0'),(1348,'Service-oriented middleware for collaborative UAVs','2013','3','Collaborative UAVs;Middleware;Service-Oriented Computing;Unmanned Aerial Vehicles','For a while, UAV (Unmanned Aerial Vehicles) use was limited to military applications, however recently UAVs are also used for a wide range of civilian applications. Some of the UAV applications may involve multiple UAVs that must cooperate to achieve a common task. This kind of applications is termed collaborative UAV applications. One of the main issues for multiple UAVs is developing an effective framework to enable the development of software systems for collaborative UAV operations. One possible approach is to rely on service-oriented computing and service-oriented middleware technologies to simplify the development and operations of such applications. This paper discusses the challenges of developing collaborative UAV applications and how the service-oriented middleware approach can help resolve some of these challenges. The paper also investigates the collaborative aspects of multiple UAVs and proposes a service-oriented middleware architecture that can satisfy the development and operations of such applications.','Information Reuse and Integration (IRI), 2013 IEEE 14th International Conference on',1,'N. Mohamed; J. Al-Jaroodi','ieee/service oriented architecture security.csv','ieee','\0'),(1349,'A certification-aware service-oriented architecture','2014','','','The widespread development of Service-Oriented Architecture (SOA) and web services is changing the traditional view of information technology. Today, software applications are increasingly distributed and consumed as a service, and business processes are implemented by selecting and composing services provided by different suppliers at run-time and with a minimal human intervention. In this scenario, where services are usually selected on the basis of clients\' functional preferences, the risk of providing powerful but insecure applications raises, and the problem of guaranteeing and preserving the security of services and business processes becomes stringent. To this aim, we put forward the idea that security certification techniques can be adopted to provide the evidence that a service system has some security properties and behaves as expected. However, existing security certification techniques are not well-suited to the service scenario, since they are designed for static and monolithic software and then cannot support the intrinsic SOA dynamics. In this chapter, we discuss recent developments in the area of extending security certifications to web services. In particular, we first review current certification approaches, and highlight requirements and challenges for applying them to the service ecosystem. We then present an advanced methodology for security certification based on testing, as a crucial part of a novel approach for security certification developed in the context of the FP7 EU project Advanced Security Service cERTificate for SOA (ASSERT4SOA). © Springer Science+Business Media New York 2014. All rights are reserved.','',1,'Anisetti M., Ardagna C.A., Bezzi M., Damiani E., Kaluvuri S.P., Sabetta A.','scopus/service oriented architecture security.csv','scopus','\0'),(1350,'The Future of Enterprise Systems in a Fully Networked Society','2012','1',' Future information systems enterprise systems new enterprise values enabling technologies knowledge technologies','Abstract The industrialised countries are living in an crucial phase for their economies and social systems. Computers and digital technologies have traditionally played a central role for the development of the socio-economic systems, and of enterprises in particular. But if the socio-economic scenario undergoes profound changes, also the enterprises need to change and, consequently, enterprise computing. In the next decade, enterprise software systems cannot continue to evolve along the beaten paths, there is an urgent need for new directions in the ways enterprise software is conceived, built, deployed and evolved. In this paper we illustrate the main outcome of the Future Internet Enterprise Systems ( FInES ) Research Roadmap 2025, a study on the future research lines of enterprise systems, promoted by the FInES Cluster of the European Commission (DG Information Society and Media.)','',2,'Michele Missikoff','springer/bpmn security.csv','springer','\0'),(1351,'Access Control and Authorization Constraints for WS-BPEL','2006','12','','Computerized workflow systems have attracted considerable research interest. More recently, there have been several XML-based languages proposed for specifying and orchestrating business processes, culminating in WS-BPEL. A significant omission from WS-BPEL is the ability to specify authorization information associating users with activities in the business process and authorization constraints on the execution of activities such as separation of duty. In this paper, we address these deficiencies by developing the RBAC-WS-BPEL and BPCL languages. The first of these provides for the specification of authorization information associated with a business process specified in WS-BPEL, while BPCL provides for the articulation of authorization constraints','2006 IEEE International Conference on Web Services (ICWS\'06)',2,'E. Bertino; J. Crampton; F. Paci','ieee/bpel security.csv','ieee',''),(1352,'A Stochastic Approach to Predict Performance of Web Service Composition','2009','1','Performance;Service composition','In this paper, we propose an analytical approach to predict the performance of Web service composition built on BPEL. The approach first translates Web service composition specification into stochastic Petri nets. From the SPN model and its corresponding continuous-time Markov chain, we derive the analytical performance estimates of process-completion-time. In the case study, we also use computer simulation techniques to validate our analytical model. The paper concludes with a comparison with related work.','Electronic Commerce and Security, 2009. ISECS \'09. Second International Symposium on',2,'Y. Dong; Y. Xia; Q. Zhu; Y. Huang','ieee/bpel security.csv','ieee','\0'),(1353,'PO-SAAC: A Purpose-Oriented Situation-Aware Access Control Framework for Software Services','2014','1',' Situation-aware access control Context information Purpose Situation reasoning Access control policy','Abstract Situation-aware applications need to capture relevant context information and user intention or purpose , to provide situation-specific access to software services. As such, a situation-aware access control approach coupled with purpose-oriented information is of critical importance. Existing approaches are highly domain-specific and they control access to services depending on the specific types of context information without considering the purpose . To achieve situation-aware access control , in this paper we consider purpose-oriented situations rather than conventional situations (e.g., user’s state). We take situation to mean the states of the entities and the states of the relationships between entities that are relevant to the purpose of a resource access request. We propose a generic framework, P urpose- O riented S ituation- A ware A ccess C ontrol , that supports access control to software services based on the relevant situations. We develop a software prototype to demonstrate the practical applicability of the framework. In addition, we demonstrate the effectiveness of our framework through a healthcare case study. Experimental results demonstrate the satisfactory performance of our framework.','',1,'A. S. M. KayesJun HanAlan Colman','springer/service oriented architecture security.csv','springer','\0'),(1354,'A framework for flexible REST services: Decoupling authorization for reduced service dependency','2015','','authentication; authorization; resources; RESTful services; security; service integration; SOA architecture','Integrating or creating new applications (services), using existing data involves changing existing applications (services). For better usage, there is a need to export data as basic services (SOA approach). Representational State Transfer (REST) works with resources instead of operations, offering full web-scale interoperability and scalability advantages while exchanging information between applications and in this way is more adequate, also offering HTTP content negotiation, most importantly discoverability for free and HTTP concurrency control and compression. Although there are de-facto standardized solutions for such SOA architectures, essential problems remain and need to be addressed: Authentication, Authorization, and Security. In our work we are going to propose a decoupling authorization framework for reduced service dependency, providing integration of in-house service registration such as University Services in the Cloud increasing service flexibility. © 2015 IEEE.','',1,'Memeti A., Selimi B., Besimi A., Cico B.','scopus/soa security.csv','scopus',''),(1355,'Mobile-Based Medical Data Accessibility in mHealth','2014','0','Health Information System;Provenance;REST;Web Services;WebSocket;mHealth;middleware','The medical domain is embracing mobile technology (mHealth) to enable healthcare professionals have ubiquitous access to the Electronic Health Records (EHR). This creates the need for supporting mobile users to access medical data remotely in real-time, especially in mission critical and decision making situations. However, supporting real-time access and services synchronization in highly distributed mobile environments can be challenging due to the presence of the following factors: 1) sporadic wireless disconnections, 2) fluctuating bandwidth, 3) variations in device features, and 4) battery life constraints. The mobility of the healthcare professionals also poses threats to privacy especially when personalized devices such as smartphones get into the wrong hands. In this work, we focus on the above highlighted challenges by proposing a middleware-oriented mobile cloud computing framework that facilitates near real-time data propagation in the mobile environment. Also, we explore privacy and security options for the accessibility of the medical data in a mobile environment based on provenance and data transformation. The privacy is enhanced through the implementation of policies which ensures that the requester of the medical record is the intended user. The evaluation of the system, called Med App, shows that medical data dissemination can be achieved efficiently and securely.','Mobile Cloud Computing, Services, and Engineering (MobileCloud), 2014 2nd IEEE International Conference on',1,'R. K. Lomotey; R. Deters','ieee/service oriented architecture security.csv','ieee','\0'),(1356,'SARA – System for Inventory and Static Security Control in a Grid Infrastructure','2012','0',' IT security attacks vulnerabilities security measure security standards CVE CPE CVSS NVD SARA','Abstract IT security, even if once achieved, is not a permanent state but rather a process. One of the main factors that impact this process is the ability to identify security vulnerabilities in the software. Disclosing such a flaw is usually followed by issuing a patch. However, for maintainers of a heterogeneous and compound environment, being up to date with all necessary fixes, may be an unexpectedly difficult task. Developing custom software in a grid project introduces another dimension to this problem. The SARA system for static security control has been developed to help the administrators with that issue.','',1,'Gerard FrankowskiMichał Rzepka','springer/service oriented architecture security.csv','springer','\0'),(1357,'Security Audits Revisited','2012','2','','Abstract Security audits with subsequent certification appear to be the tool of choice to cure failures in providing the right level of security between different interacting parties, e.,g., between an outsourcing provider and its clients. Our game-theoretic analysis scrutinizes this view and identifies conditions under which security audits are most effective, and when they are not. We find that basic audits are hardly ever useful, and in general, the thoroughness of security audits needs to be carefully tailored to the situation. Technical, managerial, and policy implications for voluntary, mandatory, unilateral, and bilateral security audits are discussed. The analysis is based on a model of interdependent security which takes as parameters the efficiency of security investment in reducing individual risk, the degree of interdependence as a measure of interconnectedness, and the thoroughness of the security audit.','',1,'Rainer Böhme','springer/service oriented architecture security.csv','springer','\0'),(1358,'Secure Outsourcing of Matrix Operations as a Service','2013','2','Cloud;Outsourcing;Security;Service;Workflow','This paper reports the design of a cloud-based service for coordinating secure outsourcing of storage and computation of scientific data, particularly matrices. While this service may support different secure outsourcing protocols and mechanisms (e.g. homomorphic encryption, secret sharing and randomization), we hide all the complexity from end-users and move it to a middleware broker. The broker manages the communication between the client and one or more clouds. The requests submitted by users are automatically translated into WS-BPEL workflows and then executed by the broker workflow engine to coordinate the control flow and the data flow for outsourcing of matrix operations. We detail the architecture of our framework and the design of its key components. Our work facilitates real-world and practical deployment of recently proposed secure outsourcing protocols.','2013 IEEE Sixth International Conference on Cloud Computing',2,'M. Nassar; A. Erradi; F. Sabri; Q. M. Malluhi','ieee/bpel security.csv','ieee','\0'),(1359,'Reconfigurable and Software-Defined Networks of Connectors and Components','2015','0',' Network-conscious pi-calculus PASTRY overlay networks coalgebraic semantics HD-automata BIP Petri nets with boundaries algebras of connectors tile model reconfigurable connectors dynamic connectors','Abstract The diffusion of adaptive systems motivate the study of models of software entities whose interaction capabilities can evolve dynamically. In this paper we overview the contributions in the ASCENS project in the area of software defined networks and of reconfigurable connectors. In particular we highlight: (i) the definition of the Network-conscious pi-calculus and its use in the modeling and verification of the PASTRY protocol, and (ii) the mutual correspondence between different frameworks for defining networks of connectors together with two suitable enhancements for addressing dynamically changing systems.','',2,'Roberto BruniUgo MontanariMatteo Sammartino','springer/bpel security.csv','springer',''),(1360,'Highly Customizable Service Composition and Orchestration','2015','0',' Service orchestration Self-organization Holonic system','Abstract One of the current challenges of Service Oriented Engineering is to provide instruments for dealing with dynamic and unpredictable user requirements and environment. Traditional approaches based on workflow for orchestrating services provide little support for configuring at run-time the flow of activities. This paper presents a general approach for composing and orchestrating services in a self-organization fashion. User requirements are made explicit in the system by a goal specification language. These can be injected into the running orchestration system that is able to autonomously and contextually reason on them. Therefore, the system dynamically organizes its structure for addressing the result. A prototype of the system has been implemented in JASON, a language for programming multi agent systems. Some aggregate statistics of execution are reported and discussed.','',2,'Luca SabatucciCarmelo LodatoSalvatore LopesMassimo Cossentino','springer/bpel security.csv','springer',''),(1361,'Improving Security Testing with Usage-Based Fuzz Testing','2015','0',' Security testing Fuzzing Usage-based testing','Abstract Along with the increasing importance of software systems for our daily life, attacks on these systems may have a critical impact. Since the number of attacks and their effects increases the more systems are connected, the secure operation of IT systems becomes a fundamental property. In the future, this importance will increase, due to the rise of systems that are directly connected to our environment, e.g., cyber-physical systems and the Internet of Things. Therefore, it is inevitable to find and fix security-relevant weaknesses as fast as possible. However, established automated security testing techniques such as fuzzing require significant computational effort. In this paper, we propose an approach to combine security testing with usage-based testing in order to increase the efficiency of security testing. The main idea behind our approach is to utilize that little tested parts of a system have a higher probability of containing security-relevant weaknesses than well tested parts. Since the execution of a system by users can also be to some degree being seen as testing, our approach plans to focus the fuzzing efforts such that little used functionality and/or input data are generated. This way, fuzzing is targeted on weakness-prone areas which in turn should improve the efficiency of the security testing.','',1,'Martin A. SchneiderSteffen HerboldMarc-Florian WendlandJens Grabowski','springer/service oriented architecture security.csv','springer',''),(1362,'Security-as-a-service for microservices-based cloud applications','2015','','Microservices; Network monitoring; Security','Microservice architecture allows different parts of an application to be developed, deployed and scaled independently, therefore becoming a trend for developing cloud applications. However, it comes with challenging security issues. First, the network complexity introduced by the large number of microservices greatly increases the difficulty in monitoring the security of the entire application. Second, microservices are often designed to completely trust each other, therefore compromise of a single microservice may bring down the entire application. The problems are only exacerbated by the cloud, since applications no longer have complete control over their networks. In this paper, we propose a design for security-as-a-service for microservices-based cloud applications. By adding a new API primitive FlowTap for the network hypervisor, we build a flexible monitoring and policy enforcement infrastructure for network traffic to secure cloud applications. We demonstrate the effectiveness of our solution by deploying the Bro network monitor using FlowTap. Results show that our solution is flexible enough to support various kinds of monitoring scenarios and policies and it incurs minimal overhead (~6%) for real world usage. As a result, cloud applications can leverage our solution to deploy network security monitors to flexibly detect and block threats both external and internal to their network. © 2015 IEEE.','',1,'Sun Y., Nanda S., Jaeger T.','scopus/microservice security.CSV','scopus','\0'),(1363,'Building Enterprise Ready Applications Using Linked Open Data','2014','0','','Abstract Exploiting open data in the web community is an established movement that is growing these recent years. Government public data is probably the most common and visible part of the later phenomena. What about companies and business data? Even if the kickoff was slow, forward-thinking companies and businesses are embracing semantic technologies to manage their corporate information. The availability of various sources, be they internal or external, the maturity of semantic standards and frameworks, the emergence of big data technologies for managing huge volumes of data have fostered the companies to migrate their internal information systems from traditional silos of corporate data into semantic business data hubs. In other words, the shift from conventional enterprise information management into Linked Opened Data compliant paradigm is a strong trend in enterprise roadmaps. This chapter discusses a set of guidelines and best practices that eases this migration within the context of a corporate application.','',1,'Amar-Djalil MezaourBert Van NuffelenChristian Blaschke','springer/service oriented architecture security.csv','springer','\0'),(1364,'Experience report on successful demonstration of SWIM by three industry partners','2012','','','This paper presents the concept, design, technologies, and implementation of a generic system wide information management platform based on service oriented architecture principles. Together with a number of industrial partners, FREQUENTIS conducted a successful first implementation of the still to be developed further European System Wide Information Management (SWIM) Infrastructure dedicated to the definition of the European SWIM Technical Architecture, which will allow seamless interoperability and information sharing of future European Air Traffic Management (ATM) Systems. To cover the needs of existing research projects like Next Generation Air Transportation System (NextGen), Single European Sky ATM Research (SESAR) or Collaborative Actions for Renovation of Air Traffic Systems (CARATS), FREQUENTIS works on a reference architecture with the goal of reusability across domains. This paper describes the current results of SESAR SWIM in the form of requirements and capability definitions that a compatible information system needs to fulfill. Those capabilities are basically derived from major topics of interest within the SWIM Technical Infrastructure such as interoperable communication, security, and governance. Following requirements and capabilities, FREQUENTIS creates a conceptual architecture utilizing artifact types from several commonly used architectural views (structural, behavioral, deployment) depicting logical structure and interaction among the major sub-systems and their components, as well as information exchange flows. Based on previous logical architecture considerations, a list of appropriate technology standards is given. The system will be deployed either as an extension to new services of certain service providers or in case of existing legacy services as a Service Oriented Architecture (SOA) enabler. Therefore, the possible fields of use are beyond the SESAR Air Traffic Management SWIM scenario. © 2012 IEEE.','',1,'Gringinger E., Trausmuth G., Balaban A., Jahn J., Milchrahm H.','scopus/service oriented architecture security.csv','scopus','\0'),(1365,'Pattern-driven green adaptation of process-based applications and their runtime infrastructure','2012','2',' Green business process pattern Cloud pattern Green IT TOSCA Adaptation of applications Ecological sustainable business processes Mathematics Subject Classification (2000) 68U01 68U35 68W01','Abstract Business processes are a key aspect of modern organization. In recent years, business process management and optimization has been applied to different cross-cutting concerns such as security, compliance, or Green IT, for example. Based on the ecological characteristics of a business process, proper environmentally sustainable adaptation strategies can be chosen to improve the total environmental impact of the business process. We use ecological sustainable adaptation strategies that are described as green business process patterns. The application of such a green business process pattern, however, affects the business process layer, the application component and the infrastructure layer. This implies that changes in the application infrastructure also need to be considered. Hence, we use best practices of cloud application architectures which are described as Cloud patterns. To guide developers through the adaptation process we propose a pattern-based approach in this work. We correlate Cloud patterns relevant for sustainable business processes to green business process patterns and organize them within a classification. To provide concrete implementation support we further annotate these Cloud patterns to application component models that are described with the topology and orchestration specification for cloud applications (TOSCA). Using these annotations, we describe a method that provides the means to optimize business processes based on green business process patterns through adapting the implementation of application components with concrete TOSCA implementation models.','Computing',2,'Alexander NowakTobias BinzChristoph FehlingOliver KoppFrank LeymannSebastian Wagner','springer/bpel security.csv','springer','\0'),(1366,'Architecture for a system providing a common operating picture of critical infrastructure','2015','','','This paper presents an architecture for the Situational Awareness of Critical Infrastructure and Networks (SACIN) framework, which offers a common operating picture of the critical infrastructure with its interdependencies. SACIN delivers the common operating picture through a brokered agent-based architecture. The design follows the Joint Directors of Laboratories (JDL) data fusion model to allow integration of different critical infrastructure systems. A generic agent component is customized for each source system to produce events and allow JDL level 0 integration. Three different analysis components collect the events and produce meaningful objects, current state and future impact estimations in accordance with JDL levels 1 to 3. Brokered architecture allows level 4 control from various components, and JDL level 5 user interface is offered through a Web application. A prototype system has been developed to test and evaluate the SACIN framework. Apache ActiveMQ message broker was used to implement the brokered architecture, and other system components were implemented using Spring framework. The system architecture was tested using real-world data from intrusion detection system (IDS)-generated syslog and a supervisory control and data acquisition (SCADA) system snapshot. Customized agents for IDS and SCADA systems demonstrated that the system can process event and dependency data from different sources as part of the common operating picture and consequently can support situational awareness.','Technologies for Homeland Security (HST), 2015 IEEE International Symposium on',1,'L. Laaperi; J. Vankka','ieee/service oriented architecture security.csv','ieee',''),(1367,'Security transparency: the next frontier for security research in the cloud','2015','1',' Security and protection Cloud Services Security transparency Mutual audits Trusted cloud services','Abstract The recent advances in networking and the ubiquity of the Internet have enabled the emergence of cloud computing as a viable solution for a convenient, elastic and economical usage of services. In spite of these apparent advantages, the cloud model presents some challenges that hamper its wider adoption, most of which relate to security and privacy. This paper provides a review of the current initiatives devised by both academia and industry for addressing the security concerns inherent to the cloud model. Our analysis of the state of the art reveals that although initiatives such as SLA and virtual machines monitoring, and recent development in encryption mechanisms, have contributed to addressing some of the salient issues of security and privacy in the cloud, larger initiatives, other than standards, aiming at enabling security transparency and a mutual auditability in the cloud remain to be seen. With this in mind, the paper proposes some routes towards related solutions by discussing a number of desiderata for establishing a better security transparency between a Cloud Service Provider (CSP) and a Cloud Service Consumer (CSC). Given the current reluctance of some major businesses to embrace the trend, owing mainly to the devolution of some of the security aspects to a third party, the authors argue that undertaking some initiatives in that direction is a key to sustaining the current momentum of the cloud.','Journal of Cloud Computing',1,'Moussa OuedraogoSeverine MignonHerve CholezSteven FurnellEric Dubois','springer/service oriented architecture security.csv','springer',''),(1368,'Design science in action: developing a modeling technique for eliciting requirements on business process management (BPM) tools','2015','0',' Business process modeling Workflow Case management Shared space Design science','Abstract Selecting a suitable business process management (BPM) tool to build a business process support system for a particular business process is difficult. There are a number of BPM tools on the market that are available as systems to install locally and as services in the cloud. These tools are based on different BPM paradigms (e.g., workflow or case management) and provide different capabilities (e.g., enforcement of the control flow, shared spaces, or a collaborative environment). This makes it difficult for an organization to select a tool that would fit the business processes at hand. The paper suggests a solution for this problem. The core of the solution is a modeling technique for business processes for eliciting their requirements for a suitable BPM tool. It produces a high-level, business process model, called a “step-relationship” model that depicts the essential characteristics of a process in a paradigm-independent way. The solution presented in this paper has been developed based on the paradigm of design science research, and the paper discusses the research project from the design science perspective. The solution has been applied in two case studies in order to demonstrate its feasibility.','Software & Systems Modeling',2,'Ilia BiderErik Perjons','springer/bpmn security.csv','springer',''),(1369,'355--356','2013','0','','Business processes today must be developed while businesses are themselves changing to suit turbulent market conditions. Cooperation and collaboration across corporations is the key to developing effective and adaptable business processes in this situation. But how? Both business users and technical developers must work together using a tool that lets both skill sets deliver an optimal solution. One of the most successful business process development tools for both a business user and a technical developer was used in this workshop: IBM\'s Business Process Manager Advanced 8.5.','',1,'','acm/soa security.csv','acm','\0'),(1370,'Policy Management as a Service: An Approach to Manage Policy Heterogeneity in Cloud Computing Environment','2012','3','access control;cloud computing;heterogeneity;policy management;policy management as a service','Security issues are delaying fast adoption of cloud computing and security mechanisms to ensure its secure adoption has become a crucial immediate need. On the other hand, cloud computing can help enable security controls to be delivered in new ways by service providers. To this end, we need frameworks for efficient delivery of cloud-based security services and for provisioning desirable solutions to customers based on their requirements. In this paper, we focus on policy management systems in cloud environments. Currently, users must use diverse access control solutions available for each cloud service provider to secure data. Access control policies may be composed in incompatible ways because of diverse policy languages that are maintained separately at every cloud provider. Heterogeneity and distribution of these policies pose problems in managing access policy rules for a cloud environment. In this paper, we introduce Policy Management as a Service (PMaaS), a cloud based policy management framework that is designed to give users a unified control point for managing access policies to control access to his resources no matter where they are stored. We present the framework and describe its components and protocols needed for various components to communicate.','System Science (HICSS), 2012 45th Hawaii International Conference on',1,'H. Takabi; J. B. D. Joshi','ieee/service oriented architecture security.csv','ieee','\0'),(1371,'Systems and Virtualization Management: Standards and the Cloud. A report on SVM 2013','2014','1',' Cloud CIM Web services and SOA Network Server Desktop management','Abstract Hosted by the Distributed Management Task Force (DMTF) and collocated with the International Conference on Network and Service Management, SVM 2013 was the seventh International DMTF Academic Alliance Workshop on Systems and Virtualization Management (SVM). SVM 2013 was held in Zurich, Switzerland on October 18, 2013. Featuring seven presentations surrounding cloud, OpenSAF, open standards, and CIM, SVM 2013 also included a joint poster session with another workshop, an invited talk by a guest speaker, a keynote speech given by the DMTF President, Jeff Hilland, and closed with an informal interactive group discussion.','Journal of Network and Systems Management',1,'Mark Carlson','springer/soa security.csv','springer','\0'),(1372,'Privacy preserving sub-feature selection based on fuzzy probabilities','2014','1',' Distributed data mining Fuzzy probabilities Privacy Feature selection','Abstract The feature selection addresses the issue of developing accurate models for classification in data mining. The aggregated data collection from distributed environment for feature selection makes the problem of accessing the relevant inputs of individual data records. Preserving the privacy of individual data is often critical issue in distributed data mining. In this paper, it proposes the privacy preservation of individual data for both feature and sub-feature selection based on data mining techniques and fuzzy probabilities. For privacy purpose, each party maintains their privacy as the instruction of data miner with the help of fuzzy probabilities as alias values. The techniques have developed for own database of data miner in distributed network with fuzzy system and also evaluation of sub-feature value included for the processing of data mining task. The feature selection has been explained by existing data mining techniques i.e., gain ratio using fuzzy optimization. The estimation of gain ratio based on the relevant inputs for the feature selection has been evaluated within the expected upper and lower bound of fuzzy data set. It mainly focuses on sub-feature selection with privacy algorithm using fuzzy random variables among different parties in distributed environment. The sub-feature selection is uniquely identified for better class prediction. The algorithm provides the idea of selecting sub-feature using fuzzy probabilities with fuzzy frequency data from data miner’s database. The experimental result shows performance of our findings based on real world data set.','Cluster Computing',1,'Hemanta Kumar BhuyanNarendra Kumar Kamila','springer/soa security.csv','springer','\0'),(1373,'Remote agent based automated framework for threat modelling, vulnerability testing of SOA solutions and web services','2012','1','extensible automated framework; security testing; user driven test scenarios; web services','Web services are a widely touted technology that aims to provide tangible benefits to both business and IT. Their increasing use in the enterprise sector, for the integration of distributed systems and business critical functions, dictates the need for diverse security assurances. Existing security frameworks do provide comprehensive security testing, but are not flexible enough to handle complex, user defined threat scenarios. This paper identifies and details an approach for providing an automated mechanism, which has the capability to allow users to create their own complex threat scenarios and test them against highly distributed web services. This mechanism provides the user with the tools and information necessary to generate and implement user defined security tests. This mechanism should however be considered only as a user driven extension to existing web service security testing frameworks. © 2012 Infonomics Society.','',1,'Patil P., Pawar S.','scopus/soa security.csv','scopus','\0'),(1374,'The Aniketos Service Composition Framework','2014','0',' secure service composition BPMN service modelling service availability','Abstract Modern applications are inherently heterogeneous: they are built by composing loosely coupled services that are, usually, offered and operated by different service providers. While this approach increases the flexibility of the composed applications, it makes the implementation of security and trustworthiness requirements much more difficult. Therefore there is a need for new approaches that integrate security requirements right from the beginning while composing service-based applications, in order to ensure security and trustworthiness. In this chapter, we present a framework for secure service composition using a model-based approach for specifying, building, and executing composed services. As a unique feature, this framework integrates security requirements as a first class citizen and, thus, avoids the “security as an afterthought” paradigm.','',2,'Achim D. BruckerFrancesco MalmignatiMadjid MerabtiQi ShiBo Zhou','springer/bpmn security.csv','springer',''),(1375,'Data Analysis as a Service: An Infrastructure for Storing and Analyzing the Internet of Things','2015','0',' Internet of things Mongodb Data analysis as a protocol Meteor Restful services Reactive visualisation','Abstract As the Internet of Things (IoT) is becoming an increasingly trendy topic both for individuals, businesses and governments, the need for academically reviewed and developed prototypes focusing on certain aspects of IoT are increasing as well. Throughout this paper we propose an architecture and a technology stack for creating real-time applications focusing on time-series data generated by IoT devices. The architecture and technology stack are then implemented through a proof-of-concept prototype named Office Analysis as a Service, DaaS, a data-centric web application developed using Meteor.js and MongoDB. We also propose a data structure for storing time-series data in a MongoDB document for optimal query performance of large datasets. One common research challenge in the IoT, security , is considered only briefly, and is of utmost importance in future research..','',1,'Martin LehmannAndreas Biørn-HansenGheorghita GhineaTor-Morten GrønliMuhammad Younas','springer/service oriented architecture security.csv','springer',''),(1376,'A noisy channel model for web service','2010','0','compensation;fault handling;interval value;noisy channel;operational semantics;web service','In this paper, we propose a language I-BPEL to model web services in the environment with channel noise and system instabilities. Each channel is assigned an interval value to indicate the value of noise. We introduce an operational semantics which attached with interval values to indicate the quality of the web service. Based on the syntax and semantics, we define the notion of simulation and investigate some important properties of simulation.','Software Engineering and Data Mining (SEDM), 2010 2nd International Conference on',2,'J. Zhou; S. Key; Y. Chen','ieee/bpel security.csv','ieee','\0'),(1377,'Theme issue on advances in the Internet of Things: identification, information, and knowledge','2015','1','','','Personal and Ubiquitous Computing',1,'Yunchuan SunRongfang BiePeter ThomasXiuzhen Cheng','springer/service oriented architecture security.csv','springer',''),(1378,'ASM-based formal design of an adaptivity component for a Cloud system','2016','0',' Distributed systems Cloud computing Abstract State Machines Modeling process Model refinement Validation Verification','Abstract The request of formal methods for the specification and analysis of distributed systems is nowadays increasing, especially when considering the development of Cloud systems and Web applications. This is due to the fact that modeling languages currently used in these areas have informal definitions and ambiguous semantics, and therefore their use may be unreliable. Thanks to their mathematical foundation, formal methods can guarantee rigorous system design, leading to precise models where requirements can be validated and properties can be assured, already at the early stages of the system development. In this paper, we present a rigorous engineering process for distributed systems, based on the Abstract State Machines (ASM) formal method. We rely on the foundational notions of ASM ground model and model refinement to obtain a precise model for a client-server application for Cloud systems. This application has been proposed to tackle the problem of making Cloud services usable to different end-devices by adapting on-the-fly the content coming from the Cloud to the different devices contexts. The ASM-based modeling process is supported by a number of validation and verification activities that have been exploited on the component under development to guarantee consistency, correctness, and reliability properties.','Formal Aspects of Computing',1,'Paolo ArcainiRoxana-Maria HolomElvinia Riccobene','springer/service oriented architecture security.csv','springer',''),(1379,'Understanding and mitigating security and authentication issues in service oriented network architecture','2015','','Authentication; Flexible network; Pki; Public key; Public key infrastructure; Security; Service oriented network architecture; Services; Sonate','Service oriented network architecture (SONATE) is one of the outcome of many architectures being explored to evolve as future network architecture. The architecture describes about the importance of flexibility to solve the short term as well as the long term requirements of the consumer (Manu et al., 2012; Rudra et al., 2011a). Flexibility is the solution for solving the architectural problems but raises many security problems. It is important to consider security must be considered as the integral part of design level rather than at the development stage of the architecture. This paper discusses various security requirements for the entities of the architecture and the importance of authentication.Apublic key based infrastructure (PKI) mechanism is proposed and discussed in detail. Copyright © 2015 Inderscience Enterprises Ltd.','',1,'Rudra B., Vyas O.P.','scopus/service oriented architecture security.csv','scopus',''),(1380,'Extension on Transactional Remote Services in SOFL','2013','0','','Abstract Software quality always attracts considerable attentions of people. Software running without any mistakes is always a dream of all developers. Besides traditional testing method using in practice such as path coverage, selection coverage, etc, people try to use some more formal and reliably method to ensure the quality. SOFL, stands for Structured Object-oriented Formal Language, is a kind of formal language which can be used to describe, validate and verify core business flow of software. As software developing model keeps changing for years, we need to make some extensions to SOFL. In this paper, we have performed extension on transactional remote services designed for SOFL. Our extension can mainly be divided into two parts: remote services and transactions. By introducing these, SOFL is able to keep pace with the changing software developing model, thus ensuring software quality in a more mathematical and different way comparing with traditional testing.','',2,'Yisheng WangHaopeng Chen','springer/bpel security.csv','springer','\0'),(1381,'Human-Agent Teamwork in Cyber Operations: Supporting Co-evolution of Tasks and Artifacts with Luna','2012','1',' Task-artifact cycle coactive emergence software agents multi-agent systems policy Luna KAoS OWL ontologies cyber security','Abstract In this article, we outline the general concept of coactive emergence , an iterative process whereby joint sensemaking and decision-making activities are undertaken by analysts and software agents. Then we explain our rationale for the development of the Luna software agent framework. In particular, we focus on how we use capabilities for comprehensive policy-based governance to ensure that key requirements for security, declarative specification of taskwork, and built-in support for joint activity within mixed teams of humans and agents are satisfied.','',1,'Larry BunchJeffrey M. BradshawMarco CarvalhoTom EskridgePaul J. FeltovichJames LottAndrzej Uszok','springer/service oriented architecture security.csv','springer','\0'),(1382,'Enhanced Hospital Information System by Cloud Computing: SHEFA’A','2014','0','','Abstract Information Technology is an important part of the healthcare environment. Accuracy and integrity of the information in any hospital system is necessary. Then, this information has to be up-to-date as well to achieve continuous quality improvement in any organization and particularly in a complex area like healthcare. Therefore, diverse information systems must be integrated across the healthcare enterprise. The main objective of this research is to develop a framework for the exchange of patients records located in different hospitals in Saudi Arabia, adding insurance and prescriptions information along with the patient’s record to facilitate the insurance process and to automate the medicine prescription process that is currently manual in most hospitals. The proposed framework aims to improve the regular ways of obtaining patients medical records separated in each hospital. For instance, if a particular patient has different medical records in different hospitals visited by that patient, our architecture focuses on the method by which data should be searched and retrieved efficiently from a database on the cloud from different hospitals by preprocessing the data in current hospital’s and saving them in the database that resides on the cloud. Our system design is based on cloud computing service oriented architecture. Some of the information included in these medical records is: medical history, prescribed medications and allergies, immunization status, laboratory and test results, radiology images, personal stats like age and weight, diagnoses, order tests and appointments. All of these records are identified by the national ID of the patient. these systems will be utilized by web services asp.net based framework, the doctor will use his/her ID and password to enter the system for security and then enter the patient’s ID to send a request for that patient’s record that will be sent back to the doctor, the record will be up-to-date since the last visit of the patient to any hospital in Saudi Arabia. The main aim of this study is to provide a data exchange model of patients records, it is used to decrease the time and cost of patients, and help doctors to get up-to-date and accurate information of patients from the records from any hospital in Saudi Arabia. By using e-Patient medical records and Mirth Connect program which use HEALTH LEVEL 7 (HL7) protocol. HL7 protocol is a standard information format of healthcare for data exchange. We provide a single, complete automated patient medical record to give a better patient care that avoids medical mistakes due to lack of information and unavailability of medical records.','',1,'Lamiaa Fattouh IbrahimSuzan SadekShahd HakeemLana Al-SabbanAsmaa Ibrahim Mohammed AhmedAlaa Hassan Al-Sayed','springer/service oriented architecture security.csv','springer','\0'),(1383,'Lightweight information flow control for web services','2012','','','This paper presents a concept of incorporating information flow control (IFC) mechanisms into service-oriented systems. As opposed to existing IFC proposals, commonly imposing requirements hard or impossible to achieve in service-oriented environments (such as analysis of the application code), our solution fully complies with the Service Oriented Architecture (SOA) model. We present how IFC can be managed in an SOA system by using ORCA security policy language. We also describe two possible implementations of such SOA-specific IFC mechanisms using cryptographic keys and poly-instantiated web services. © 2012 Springer-Verlag.','',1,'Brodecki B., Kalewski M., Sasak P., Szychowiak M.','scopus/service oriented architecture security.csv','scopus','\0'),(1384,'Challenges for mesoscale climatology execution on experimental grid computing systems','2013','0',' Grid computing Climatology Mesoscale numerical atmospheric model BRAMS Globus OurGrid OAR/CiGri','Abstract This paper discusses the challenges of executing a long-term application on a computational grid, which generates the climatology of the atmospheric numerical model BRAMS ( B razilian development on R egional A tmospheric M odeling S ystem) using ensemble members. We have developed a workflow that submits climatology to the computational grid composed by three different grid middlewares (OurGrid, OAR/CiGri and Globus) and three clusters (situated in Porto Alegre, São José dos Campos and Cachoeira Paulista—Brazil). The application characteristics demand a processing grid, rather than a data grid, due to intensive computation and data transfer between the geographically distributed grid nodes. We achieved the goal of generating the climatology using a computational grid. However, we observed problems on application performance due data transfer and non-availability of the computational grid. Questions related to data storage/transfer and grid failures must be better treated to ensure application performance.','Journal of the Brazilian Computer Society',1,'Eugenio Sper de AlmeidaHaroldo Fraga de Campos VelhoAiram Jonatas Preto','springer/service oriented architecture security.csv','springer','\0'),(1385,'Privacy Against the Business Partner: Issues for Realizing End-to-End Confidentiality in Web Service Compositions','2009','5','Web Services;confidentiality;privacy','For service-oriented business processes, an important security requirement is confidentiality of transmitted data. Here, existing Web Services security standards provide suitable solutions for single invocations, but fail to cover service composition scenarios properly, especially for securing business process data against partners. In this paper, we investigate the issues regarding the realization of process level confidentiality in WS-BPEL-based Web Service compositions.','2009 20th International Workshop on Database and Expert Systems Application',2,'M. Jensen; N. Gruschka','ieee/bpel security.csv','ieee','\0'),(1386,'Territorial Governance, E-Government and Sustainable Development Policy: A System Dynamics Approach','2013','0',' territorial governance egovernment sustainable development policy','Abstract The goal of this paper is to demonstrate how system dynamics modelling can be used in e-government policy and systems as an aid to spport territorial ananlysis, planning and governance, sustainable performance in urban areas and the assessment of policy outcomes. Topics such as renewable energy, efficiency, the design and exploitation of urban energy, water and waste management infrastructure and the alignment of different stakeholders provide relevant fields of study for the analysis of this paper. Specifically, we reflect upon the way in which a preliminary dynamic performance management model of an exemplary case study can be used to foster a common shared view among different policy makers as a way to highlight new ways to enable sustainable development in urban areas.','',1,'Diego NavarraCarmine Bianchi','springer/service oriented architecture security.csv','springer','\0'),(1387,'Business models and service applications for traffic management','2012','','Business modeling; Service-oriented architecture; Traffic management; Web services','Managing traffic becomes more and more dependent on ICT - Information and Communication Technology, in general and particularly on ICT services support. Safety, pollution, congestion, and travel time are all important concerns that point to needs for improving traffic management and realizing this would concern the supportive services (including ICT services). Technology-independent functionality models are not only needed for better understanding the (used and/or desired) (IT) services and discussing them of full value with both developers and users but also for establishing appropriate traceability that would allow updating the underlying technology accordingly based on desired updates in the service support. That is why business models and service applications need to be considered together. Hence, in addressing service applications for traffic management, we would emphasize on the crucial role of business process analysis and technology-independent modeling. Further, service applications relate to corresponding ICT-based service platforms that provide relevant support - in the case of traffic management, it would be for example: localized monitoring and management of traffic and environmental information collected from various information sources such as sensors, surveillance cameras, and weather stations. Such information should be made available through the services in order to increase reusability, loose coupling and management of different information and their analysis. With regard to this, two significant challenges relate to service discovery and interoperability. This paper, reporting research in progress, emphasizes not only on service applications (particularly for traffic) and relations to business modeling, but also on the challenges mentioned above. In this way, we present some visions on how to better benefit from business models and IT services, for usefully improving traffic management, partially exemplifying this.','',1,'Sapkota B., Van Sinderen M., Shishkov B.','scopus/service oriented architecture security.csv','scopus','\0'),(1388,'Evaluation of ASLan mutation operators','2013','','','The AVANTSSAR validation platform is an automated toolset for validating trust and security aspects of Service-Oriented Architectures (SOAs). Models and security properties are specified in lowlevel AVANTSSAR Specification Language (ASLan) and there are three dedicated model-checkers that can validate if such models satisfy the security properties. However, the implementation may deviate from the specification and may contain some vulnerabilities that an attacker could exploit to violate the defined security properties. We have designed a set of semantic mutation operators to inject such vulnerabilities in an ASLan specification. Here we present the implementation of those mutation operators as Extensible Stylesheet Language Transformation (XSLT) scripts. Then, we evaluate the interest of using semantic mutation operators instead of syntactic ones by comparing the number of mutants that lead to the generation of a test case (i.e., a potential attack) and the resulting test suite for a set of existing ASLan specifications. © 2013 Springer-Verlag.','',1,'Oudinet J., Calvi A., Büchler M.','scopus/service oriented architecture security.csv','scopus','\0'),(1389,'Behavioral Attestation for Web Services using access policies','2013','0',' Trusted computing Remote attestation Behavioral attestation Usage control Web services Delegation','Abstract Service Oriented Architecture with underlying technologies like web services and web service orchestration opens new vistas for integration among business processes operating in heterogeneous environments. However, such dynamic collaborations require a highly secure environment at each respective business partner site. Existing web services standards address the issue of security only on the service provider platform. The partner platforms to which sensitive information is released have till now been neglected. Remote Attestation is a relatively new field of research which enables an authorized party to verify that a trusted environment actually exists on a partner platform. To incorporate this novel concept in to the web services realm, a new mechanism called WS-Attestation has been proposed. This mechanism provides a structural paradigm upon which more fine-grained solutions can be built. In this paper, we present a novel framework, Behavioral Attestation for Web Services, in which XACML is built on top of WS-Attestation in order to enable more flexible remote attestation at the web services level. We propose a new type of XACML policy called XACML behavior policy, which defines the expected behavior of a partner platform. Existing web service standards are used to incorporate remote attestation at the web services level and a prototype is presented, which implements XACML behavior policy using low-level attestation techniques.','Multimedia Tools and Applications',1,'Masoom AlamXinwen ZhangMohammad NaumanTamleek AliMuhammad AliSajid AnwarQuratulain Alam','springer/service oriented architecture security.csv','springer','\0'),(1390,'A Classification of Trust Computation Models for Service-Oriented Internet of Things Systems','2015','0','Internet of things (IoT);security;social IoT;trust','Future Internet of Things (IoT) systems will connect the physical world into cyberspace everywhere and everything via billions of smart objects and are expected to have a high economic impact. To date there is little work on trust computation in IoT environments for security enhancement, especially for dealing with misbehaving owners of IoT devices that provide services to other IoT devices in the system. In this paper we classify trust computation models to-date for IoT systems. Our approach is to classify existing trust computation models based on five design dimensions: trust composition, trust propagation, trust aggregation, trust update, and trust formation. We summarize advantages and drawbacks of each dimension\'s options, and highlight the effectiveness of defense mechanisms against malicious attacks. We also summarize the most and least studied trust computation techniques in the literature and provide insight on the effectiveness of trust computation techniques as applying to IoT systems. Finally, we identify gaps in IoT trust computation research and suggest future research directions.','Services Computing (SCC), 2015 IEEE International Conference on',1,'J. Guo; I. R. Chen','ieee/service oriented architecture security.csv','ieee',''),(1391,'A Unified Formal Model for Service Oriented Architecture to Enforce Security Contracts','2012','1','aspects, formal methods, reference monitors, security, service-oriented architecture','In this paper we introduce a model as a foundation for heterogeneous services, therefore unifying web services technologies in SOA (Service Oriented Architecture), specifically, SOAP/WS* and RESTful models. This model abstracts away from service implementations, in order to verify and to enforce some important security properties.','',1,'Diana Allam','acm/service oriented architecture security.csv','acm','\0'),(1392,'SATURN (Situational awareness tool for urban responder networks)','2012','0','sensor fusion;urban responders;video;video analytics','SATURN is a prototype system for the intelligent incorporation of output from surveillance camera networks into an enhanced situational awareness display. It is a web-based, service oriented, open standards platform designed to be accessible to any user with a common browser. SATURN fuses information from an array of sensors including real-time feeds from video cameras. The sensor data is displayed within an intuitive map-based view and is coupled with video analytics algorithms, a chat capability, and collaborative tools for annotation. A principal component of the system is the ability to conduct attribute-based searches for people within live video feeds and for vehicles within archived camera footage. This realtime cueing to events involving people or vehicles of interest provides a potential reduction in manpower and shortened response timeline. SATURN is applicable to a broad set of law enforcement, security, and counterterrorism missions typically addressed by urban responders.','Information Fusion (FUSION), 2012 15th International Conference on',1,'H. Zwahlen; A. Yahr; D. Berven; M. T. Chan; M. Merfeld; C. Russ; J. Thornton; J. Mapar','ieee/service oriented architecture security.csv','ieee','\0'),(1393,'Assisting the Deployment of Security-Sensitive Workflows by Finding Execution Scenarios','2015','0','','Abstract To support the re-use of business process models, an emerging trend in Business Process Management, it is crucial to assist customers during deployment. We study how to do this for an important class of business processes, called security-sensitive workflows, in which execution constraints on the tasks are complemented with authorization constraints (e.g., Separation of Duty) and authorization policies (constraining which users can execute which tasks). We identify the capability of solving Scenario Finding Problems (SFPs), i.e. finding concrete execution scenarios, as crucial in supporting the re-use of security-sensitive workflows. Solutions of SFPs provide evidence that the business process model can be successfully executed under the policy adopted by the customer. We present a technique for solving two SFPs and validate it on real-world business process models taken from an on-line library.','',2,'Daniel R. dos SantosSilvio RaniseLuca CompagnaSerena E. Ponta','springer/bpmn security.csv','springer',''),(1394,'Security and Safety of Assets in Business Processes','2012','1','BPMN, monitoring, resource modeling, safety, security','Proceedings of the 27th Annual ACM Symposium on Applied Computing','',2,'Ganna Monakova and Achim D. Brucker and Andreas Schaad','acm/bpmn security.csv','acm','\0'),(1395,'A BIM-based Code Compliance Checking Process of Deep Foundation Construction Plans','2015','2',' Code compliance checking Rule-based checking Deep foundation BIM','Abstract Deep foundation construction projects are quite risky, so it has to be checked by supervisors for code compliance and reviewed by a committee of experts for risk identification before the construction begins. The quality of code compliance checking directly affects the safety of deep foundation construction. Because of the limitations of manual checking by even the best supervisors, the goal of this research is to achieve an approach of BIM-based code compliance checking for deep foundation construction presented in BIM models, as well as a system based on the proposed approach. This research abides by the principles of four stages in rule-based system, and emphasizes the development of the library of checking knowledge and the standard of required information which are the key problems in achieving the BIM-based code compliance checking. Decision tables, production representation and a developing process similar to IDM development are used to solve the problems. Furthermore, a case study is provided to investigate the effect of the BIM-based code compliance checking process. It is proved that the BIM-based checking improves the efficiency and precision in code compliance checking and facilitates the risk identification at the next stage. It ensures the safety of deep foundation and reduces personal injury and property loss.','Journal of Intelligent & Robotic Systems',2,'Hanbin LuoPeisong Gong','springer/bpmn security.csv','springer',''),(1396,'Patterns for a Log-Based Strengthening of Declarative Compliance Models','2012','1',' Linear Temporal Logic Declare Vacuity detection Compliance checking Event log','Abstract LTL-based declarative process models are very effective when modelling loosely structured processes or working in environments with a lot of variability. A process model is represented by a set of constraints that must be satisfied during the process execution. An important application of such models is compliance checking: a process model defines then the boundaries in which a system/organisation may work, and the actual behaviour of the system, recorded in an event log, can be checked on its compliance to the given model. A compliance model is often a general one, e.g., applicable for a whole branch of industry, and some constraints used there may be irrelevant for a company in question: for example, a constraint related to property assessment regulations will be irrelevant for a rental agency that does not execute property assessment at all. In this paper, we take the compliance model and the information about past executions of the process instances registered in an event log and, by using a set of patterns, we check which constraints of the compliance model are irrelevant (vacuously satisfied) with respect to the event log. Our compliance patterns are inspired by vacuity detection techniques working on a single trace. However, here we take all the knowledge available in the log into consideration.','',2,'Dennis M. M. SchunselaarFabrizio M. MaggiNatalia Sidorova','springer/bpel security.csv','springer','\0'),(1397,'Security issues in service oriented manufacturing architectures with distributed intelligence','2016','','Distributed intelligence; Intelligent product; Manufacturing execution system; Multi-agent framework; Security; SOMA','The paper discusses the main classes of shop floor devices relative to distributed intelligence for product-driven automation in heterarchical control. The intelligent product (IP) concept is enhanced with two additional require-ments: standard alignment and SOA capability. The paper classifies IPs from SOA integration point of view and introduces a formalized data structure in the form of a XSD schema for XML representation. We propose a security solution for service oriented manufacturing architectures (SOMA) that uses a public-key infrastructure to generate certificates and propagate trust at runtime (during product execution) for embedded devices that establish IPs on board pallets and communicate with shop floor resources. Experimental results are provided. © Springer International Publishing Switzerland 2016.','',1,'Morariu C., Morariu O., Borangiu T.','scopus/soa security.csv','scopus',''),(1398,'ASLan++ — A Formal Security Specification Language for Distributed Systems','2012','1',' services security specification language formal analysis','Abstract This paper introduces ASLan++, the AVANTSSAR Specification Language. ASLan++ has been designed for formally specifying dynamically composed security-sensitive web services and service-oriented architectures, their associated security policies, as well as their security properties, at both communication and application level. We introduce the main concepts of ASLan++ at a small but very instructive running example, abstracted form a company intranet scenario, that features non-linear and inter-dependent workflows, communication security at different abstraction levels including an explicit credentials-based authentication mechanism, dynamic access control policies, and the related security goals. This demonstrates the flexibility and expressiveness of the language, and that the resulting models are logically adequate, while on the other hand they are clear to read and feasible to construct for system designers who are not experts in formal methods.','',1,'David von OheimbSebastian Mödersheim','springer/service oriented architecture security.csv','springer','\0'),(1399,'Designing Secure Service Workflows in BPEL','2014','1','','Abstract This paper presents an approach that we have developed to support the design of secure service based applications in BPEL. The approach is based on the use of secure service composition patterns, which are proven to preserve composition level security properties if the services that are composed according to the pattern satisfy other properties individually. The secure service composition patterns are used for two purposes: (a) to analyse whether a given workflow fragment satisfies a given security property, and (b) to generate compositions of services that could substitute for individual services within the workflow that cause the violation of the security properties. Our approach has been implemented in a tool that is based on Eclipse BPEL Designer.','',2,'Luca PinoKhaled MahbubGeorge Spanoudakis','springer/bpel security.csv','springer','\0'),(1400,'PREMIS OWL','2015','0',' Linked open data PREMIS OWL Preservation Metadata Ontology Semantic','Abstract In this article, we present PREMIS OWL. This is a semantic formalisation of the PREMIS 2.2 data dictionary of the Library of Congress. PREMIS 2.2 are metadata implementation guidelines for digitally archiving information for the long term. Nowadays, the need for digital preservation is growing. A lot of the digital information produced merely a decade ago is in danger of getting lost as technologies are changing and getting obsolete. This also threatens a lot of information from heritage institutions. PREMIS OWL is a semantic long-term preservation schema. Preservation metadata are actually a mixture of provenance information, technical information on the digital objects to be preserved and rights information. PREMIS OWL is an OWL schema that can be used as data model supporting digital archives. It can be used for dissemination of the preservation metadata as Linked Open Data on the Web and, at the same time, for supporting semantic web technologies in the preservation processes. The model incorporates 24 preservation vocabularies, published by the LOC as SKOS vocabularies. Via these vocabularies, PREMIS descriptions from different institutions become highly interoperable. The schema is approved and now managed by the Library of Congress. The PREMIS OWL schema is published at http://​www.​loc.​gov/​premis/​rdf/​v1 .','International Journal on Digital Libraries',1,'Sam CoppensRuben VerborghSébastien PeyrardKevin FordTom CreightonRebecca GuentherErik MannensRik Van de Walle','springer/service oriented architecture security.csv','springer',''),(1401,'WSDM-Enabled Autonomic Augmentation of Classical Multi-version Software Fault-Tolerance Mechanisms','2012','1','','Abstract Web services are increasingly deployed in many enterprise applications. For this type of applications, dependability issues are usually resolved by introducing some form of redundancy in the system. Whereas hardware redundancy schemes have traditionally been defined through static configurations based on worst-case analysis, the enhanced flexibility and interoperability of web services allows for dynamic (self-) management of redundancy at the application layer. Combining this advantage with service-oriented platforms such as OSGi facilitates the replication of software components and their integration within redundancy schemes. The application of such redundancy schemes inevitably comes at a price though — primarily due to the allocation of additional system resources. It is often unknown to the service provider how much redundancy and management complexity is required. Furthermore, the degree of redundancy and the dependability strategy to be employed may be restricted by the budget and requirements of the client, both of which may vary. In this paper, we propose a solution to allow the client to express a trade-off between its dependability requirements and its available budget at request level. A dedicated service provider will then attempt to honour these objectives — failing to do so would obviously result in failure from the client point of view. Furthermore, we show how classical multi-version software fault-tolerance techniques can be augmented with advanced redundancy management leveraging the Web Services Distributed Management standard.','',1,'Roeland DillenJonas BuysVincenzo De FlorioChris Blondia','springer/service oriented architecture security.csv','springer','\0'),(1402,'Service-Oriented Ontology and Its Evolution','2012','0',' Web Service Service Ontology Tag Service Relation Service Chain Service Discovery','Abstract Web service was designed to solve the problem of the heterogeneous system integration and make heterogeneous systems interoperable. However, current Web service technologies are not sufficient to build distributed, heterogeneous Web service infrastructure, because they are provide by different service providers, use different conceptual model and design tools, which hinders Web service automatic discovery and composition. With diversification of user requirements, we need to reasonable abstraction and organization of the Web services through a new viewpoint. Thus, an lightweight Web services semantic description model, namely Service Ontology, is proposed in this paper, whose intention is to make comprehensive and multi-dimension semantic description for Web services. This paper also describes the evolution mechanism of service ontology. The mechanisms make use of the semantic tags to expand Service Ontology. Finally, a case study is presented in the paper that validates the Service Ontology can fulfill the multi-granularity requirement of the users. This paper has made the beneficial exploration in multi-dimension modeling and automation organization of Web services.','',1,'Weisen PanShizhan ChenZhiyong Feng','springer/service oriented architecture security.csv','springer','\0'),(1403,'New approach for the dynamic enforcement of Web services security','2010','3','','We propose in this paper a new approach for the dynamic enforcement of Web services security, which is based on a synergy between Aspect-Oriented Programming (AOP) and composition of Web services. Security policies are specified as aspects. The elaborated aspects are then weaved (integrated) in the Business Process Execution Language (BPEL) process at runtime. The main contributions of our approach are threefold: (1) separating the business and security concerns of composite Web services, and hence developing them separately (2) allowing the modification of the Web service composition at run time and (3) providing modularity for modeling cross-cutting concerns between Web services. We demonstrate the feasibility of our approach by developing a Flight System (FS) that is composed of several Web services. First, a RBAC (Role Based Access Control) model for the flight system, which we called RBAC-FS, is elaborated. Afterwards, the Web services that implement the security features are developed. Finally, the BPEL aspects that integrate the security functionalities dynamically into the BPEL process are created. The devised aspects realize the elaborated RBAC-FS model and provide authentication and access control features to the flight system. Case studies and experimental results are also presented to defend our propositions.','Privacy Security and Trust (PST), 2010 Eighth Annual International Conference on',2,'A. Mourad; S. Ayoubi; H. Yahyaoui; H. Otrok','ieee/bpel security.csv','ieee','\0'),(1404,'Spatio-temporal Data Organization Method of “Air-Earth-Life” the Multidimensional Elements Based on SOA in Land Environment','2014','0',' land temporal data object-oriented SOA','Abstract Classifying and abstracting the temporal information of land environment in this paper, from the aspects of air, earth and life, analysising temporal logic and description in geographic entities of land environment, abstract lot to spatial objects, exploring that the definition of space object, temporal evolution and organization and storage methods of dynamic spatio-temporal data; combining closely the object-oriented with the SOA, constructing a model that SOA-based spatio-temporal data frame of \"air-earth-life\" in land environment. Studies have shown that, it’s the internal demand and the inevitable choice for platform development of integrated information management in land environment to construct by using SOA.','',1,'Jingwen LiYanling LuJizheng WanLiangsong Ye','springer/service oriented architecture security.csv','springer','\0'),(1405,'Improving PA Business Processes through Modeling, Analysis, and Reengineering','2012','0','','Abstract Too often e-government services are derived from “old style” intra- and inter-administration Business Processes without taking into account the potentiality of adopted technologies. In this paper we present our experience in Inter-organizational Business Processes modeling, analysis and reengineering in order to make them more effective and efficient. We used semi-formal notations to model three complex services. To do that we directly involved domain experts and civil servants. Thanks to the resulting models, we identified several pitfalls and opportunities for improvements. As a result we were able both to derive ameliorated versions for the analysed services, and to identify common “bad habits” in the specification, permitting to define a general quality framework for services improvement.','',2,'Damiano FalcioniAndrea PoliniAlberto PolzonettiBarbara Re','springer/bpmn security.csv','springer','\0'),(1406,'Docker [Software engineering]','2015','1','Docker;Docker containers;James Turnbull;SE Radio;Software Engineering Radio;microservices','In episode 217 of Software Engineering Radio, host Charles Anderson talks with James Turnbull, a software developer and security specialist who\'s vice president of services at Docker. Lightweight Docker containers are rapidly becoming a tool for deploying microservice-based architectures.','IEEE Software',1,'C. Anderson','ieee/microservice security.CSV','ieee',''),(1407,'Loan system in brazilian financial institution - A SOA application','2012','','Financial System; Framework; SOA; Software Architecture; Web Services','With the intention of offering financial products to its customers in a fast, secure and high technological value, the financial institutions has been highlighted by constant investment in the area of Information Technology. This article presents the technology by a Brazilian institution and developed by a software provider, using the Service Oriented Architecture, enabling customers to access the functionalities of a System of Financing and Loan. Through architecture are generated financial affairs with confidence, performance and security that customers expect from a financial institution. Its unique feature is to present the development of mainframe subprograms with the profile of componentization, but without losing original features such as robustness, high performance and information security. Its main contribution is to demonstrate that it is possible to unify completely different platforms in a Service Oriented Architecture, provided that it has focused on the fact that the most important features of each of these platforms are utilized. How was extracted lessons learned that should be followed important points of attention in the definition of the architecture such as not using SOA as hype or without sufficient technical knowledge. © 2012 IEEE.','',1,'Bernardo C.G.','scopus/service oriented architecture security.csv','scopus','\0'),(1408,'Extending net-centricity to coalition operations','2013','1','coalition information sharing; distributed applications; service-oriented architectures','To bring the advantages of network-centric warfare to coalition warfighting, we must significantly improve our ability to quickly share critical information while still satisfying security requirements. Here, the authors explore a services-based approach to such information management. © 2001-2011 IEEE.','',1,'Suri N., Uszok A., Lenzi R., Breedy M., Bradshaw J.M., Fu Y., Hanna J., Combs V.T., Sinclair A., Grant R.','scopus/service oriented architecture security.csv','scopus','\0'),(1409,'Software diversity: state of the art and perspectives','2012','21',' Software diversity Variability Software product lines','Abstract Diversity is prevalent in modern software systems to facilitate adapting the software to customer requirements or the execution environment. Diversity has an impact on all phases of the software development process. Appropriate means and organizational structures are required to deal with the additional complexity introduced by software variability. This introductory article to the special section “Software Diversity—Modeling, Analysis and Evolution” provides an overview of the current state of the art in diverse systems development and discusses challenges and potential solutions. The article covers requirements analysis, design, implementation, verification and validation, maintenance and evolution as well as organizational aspects. It also provides an overview of the articles which are part of this special section and addresses particular issues of diverse systems development.','International Journal on Software Tools for Technology Transfer',1,'Ina SchaeferRick RabiserDave ClarkeLorenzo BettiniDavid BenavidesGoetz BotterweckAnimesh PathakSalvador TrujilloKarina Villela','springer/service oriented architecture security.csv','springer',''),(1410,'Research on application information system integration platform in medicine manufacturing enterprise','2012','2','Access control; Integration platform; Medicine manufacturing enterprise; Radio frequency identification; Service component; SOA','Computer and information technology popularizes in the medicine manufacturing enterprise for its potentials in working efficiency and service quality. In allusion to the explosive data and information of application system in current medicine manufacturing enterprise, we desire to propose a novel application information system integration platform in medicine manufacturing enterprise, which based on a combination of RFID technology and SOA, to implement information sharing and alternation. This method exploits the application integration platform across service interface layer to invoke the RFID middleware. The loose coupling in integration solution is realized by Web services. The key techniques in RFID event components and expanded role-based security access mechanism are studied in detail. Finally, a case study is implemented and tested to evidence our understanding on application system integration platform in medicine manufacturing enterprise. © 2011 Springer Science+Business Media, LLC.','',1,'Deng W., Zhao H., Zou L., Li Y., Li Z.','scopus/service oriented architecture security.csv','scopus','\0'),(1411,'Process Engine Selection Support','2014','0',' BPM process engines engine selection execution requirements testing','Abstract Nowadays, business processes and their execution are corner stones in modern IT landscapes, as multiple process languages and corresponding engines for these languages have emerged. In practice, it is not feasible to select the best fitting engine, as engine capabilities are mostly hidden in the engine implementation and a comparison is hampered by the large differences and high adoption costs of the engines. We aim to overcome these problems by a) introducing an abstract layer to access the functionality of the engines uniformly, b) by revealing the engine capabilities through automated and isolated tests for typical requirements, and c) support the user in their selection of a process engine by determining and explaining the fitness of the engines for a single process or a given set of processes using policy matching against previously revealed engine capabilities. Early results show the general feasibility of our approach for BPEL engines for a single capability.','',2,'Simon Harrer','springer/bpel security.csv','springer',''),(1412,'A variable threshold-value authentication architecture for wireless mesh networks','2014','48','Authentication; Lightweight certification; Threshold signature; Wireless mesh networks','Wireless Mesh Networks (WMNs) play a very important role on \"the last mile\" in a variety of wireless network access with infrastructure support. It is necessary to provide guaranteed security while minimizing WMNs topology change by considering both rapid authentication of mobile terminals and demand for fast switch between different wireless networks. In this paper, we propose a novel design paradigm toward lightweight and tolerant authentication for service-oriented WMNs, named Variable Threshold-value Authentication (VTA) architecture. On one hand, VTA\'s intrusion-tolerant ability is ensured to design a series of node activated mechanisms to remain threshold values t and n of system private key unchanged. On the other hand, VTA changes threshold values t and n when nodes leave/join authentication server group. Analysis and simulation results show that VTA can not only overcome the disadvantage of those static threshold value schemes, but also largely increase system cost comparing to the schemes not equipped with threshold mechanism for WMNs.','',1,'Guo P., Wang J., Geng X.H., Kim C.S., Kim J.-U.','scopus/service oriented architecture security.csv','scopus',''),(1413,'Ten Problems of Deontic Logic and Normative Reasoning in Computer Science','2012','0',' Deontic logic normative systems input/output logic agency','Abstract This tutorial presents and discusses ten problems of deontic logic and normative reasoning in computer science. Five of the problems have been taken or derived from a list of ten philosophical problems in deontic logic recently discussed by Hansen, Pigozzi and van der Torre. In what sense are obligations different from norms? How to reason about contrary-to-duty norms? How do norms change? How to relate various kinds of permissions? What is the role of constitutive norms? Hansen et al. discuss their ten philosophical problems from the viewpoint of input/output logic as developed by Makinson & van der Torre, and they argue that norms, not ideality, should take the central position in deontic semantics, and that a semantics for norms explicitly represented in the object language by using, e.g., input/output logic normative rules, provides a helpful tool for analyzing, clarifying and solving the problems of deontic logic. However, for applications in computer science and artificial intelligence we have to reconcile the input-output logic representation of norms with representations for agency, informational and motivational modalities (beliefs, intentions), time, actions and decision- and game-theoretic concepts. This leads to five more questions. What is the role of time in deontic reasoning? What is the role of action in deontic reasoning? How can we use norms to influence, solve, or control games? How do we resolve the general problem of norm compliance? How do norms interact with informational modalities such as beliefs and knowledge, and motivational modalities such as intentions and desires?','',2,'Jan BroersenLeendert van der Torre','springer/bpel security.csv','springer','\0'),(1414,'Partial Model Checking for the Verification and Synthesis of Secure Service Compositions','2014','0',' Synthesis of Functional and Secure Processes Secure Service Composition Partial Model Checking Cryptography Process Algebras Quantitative Security','Abstract Security is one of the main aspects of Web Services composition. In this paper we describe a logical approach based on partial model checking technique and open system analysis for the verification and synthesis of secure service orchestrators. Indeed through this framework we are able to specify a system with a possible intruder and verify whether the whole system is secure, i.e. , whether the system satisfies a given temporal logic formula that describes a correct behavior ( security property ). Moreover we are able to define an orchestrator operator able to orchestrate several services in such a way to guarantee both functional and security requirements.','',2,'Fabio MartinelliIlaria Matteucci','springer/bpel security.csv','springer',''),(1415,'Architecting Access Control for Business Processes in the Cloud','2014','0','','Enterprise architecture (EA) aims to provide management with appropriate indicators and controls to steer and model service-oriented enterprises. Nevertheless, common enterprises architecture frameworks lack of access control mechanisms supporting security requirements within organizations. Moreover, the rapid permeation of information technology motivates new computing paradigms such as cloud computing. In this paper, we propose an approach for modeling access control requirements in enterprise architecture, and supporting its provisioning in Cloud providers. The idea is to leverage EA paradigms to ensure business-IT alignment when modeling access control, and deploying access control mechanisms in the Cloud. Our approach is illustrated through the handling of an e-Government scenario, in which EA modeling and appropriate Cloud resources provisioning are motivated.','Advanced Information Systems for Enterprises (IWAISE), 2014 International Workshop on',1,'K. Gaaloul; S. Yangui; S. Tata; H. A. Proper','ieee/service oriented architecture security.csv','ieee','\0'),(1416,'Towards performance evaluation of cloud service providers for cloud data security','2016','','Business process management (BPM); Business process modeling (BPMN); Cloud computing; Cloud service provider (CSP); Data security','Today\'s data is sensitive that requires privacy and security both from the cloud service providers (CSP) as well as from users in its all the form of data states: data at rest, while transferring data, enquiring data, and processing the data. Cloud computing has been applied in the health sector, national security services, banking and other business and companies that store confidential data into the cloud as we have seen in recent years. Therefore, information and data security is a crucial issue that needs to be addressed thoroughly in the cloud computing business. This research deals with the performance analysis of recent cloud data security models. This paper proposes cloud data security models based on Business Process Modeling Notations (BPMN) and simulation results can reveal performances issues related to data security as part of any organizations initiative on Business process management (BPM). © 2016, Elsevier Ltd. All rights reserved.','',2,'Ramachandran M., Chang V.','scopus/bpmn security.csv','scopus',''),(1417,'Model-driven development of secure service applications','2012','6','Code generation; Model-driven development; Security; Security-critical systems; UML; Web service','The development of a secure service application is a difficult task and designed protocols are very error-prone. To develop a secure SOA application, application-independent protocols (e.g. TLS or Web service security protocols) are used. These protocols guarantee standard security properties like integrity or confidentiality but the critical properties are applicationspecific (e.g. \"a ticket can not be used twice\"). For that, security has to be integrated in the whole development process and application-specific security properties have to be guaranteed. This paper illustrates the modeling of a security-critical service application with UML. The modeling is part of an integrated software engineering approach that encompasses model-driven development. Using the approach, an application based on service-oriented architectures (SOA) is modeled with UML. From this model executable code as well as a formal specification to prove the security of the application is generated automatically. Our approach, called SecureMDD, supports the development of security-critical applications and integrates formal methods to guarantee the security of the system. The modeling guidelines are demonstrated with an online banking example. © 2013 IEEE.','',1,'Borek M., Moebius N., Stenzel K., Reif W.','scopus/service oriented architecture security.csv','scopus','\0'),(1418,'Decentralized Information Flow Verification Framework for the Service Chain Composition in Mobile Computing Environments','2013','1','Mobile computing environments;Secure information flow;Service chain model;Service composition','Dynamic service composition in wireless environment provides us with a promising approach to build complex applications based on the basic value-added services. In different network domains, multiple services may provide data with different security levels. In order to prevent from information leakage, information flow security is a major concern in composite services. However, the energy-limited nature of user terminal in mobile computing environments poses a significant challenge for the centralized information flow verification where the verification node need cost lots of computation and network resources. In this paper, we specify the security constraints for each service participant to secure the information flow in service chain based on the lattice model, and then present a decentralized information flow verification framework that cooperates different service participants to complete the verification process distributively with respect to their information flow policies. Through the experiments and evaluations, the results show it decreases the verification cost on single service node.','Web Services (ICWS), 2013 IEEE 20th International Conference on',1,'N. Xi; J. Ma; C. Sun; T. Zhang','ieee/service oriented architecture security.csv','ieee','\0'),(1419,'A content delivery strategy based on resource popularity for P4P architecture','2012','0','Content delivery;P4P;Resource popularity','Peer-to-peer (P2P) traffic engineering is a key problem for Internet Service Provider (ISP). ISP can obtain benefits from operating the inter-domain traffic. In order to reduce the negative impression of the P2P applications on the network, Provider Portal for Application (P4P) strategy has been propose recently. In this paper, we propose a novel content delivery scheme for ISP in P4P architecture, which consider the resource popularity to decrease the inter-domain traffic generated by p2p applications. We compare our scheme with the method based on non-popularity by simulation. The experiments results show that our method can reduce the inter-domain traffic efficiently.','2012 IEEE 2nd International Conference on Cloud Computing and Intelligence Systems',1,'Q. Li; H. He; B. Fang; Z. Zhang; J. Chen','ieee/service oriented architecture security.csv','ieee','\0'),(1420,'Knowledge base support for dynamic information system management','2015','0',' Enterprise information systems Knowledge base Business process Model driven engineering User experience Application prototyping','Abstract Enterprise activities are governed by regulations and laws that are multiple, heterogeneous and not always easy to understand. The arising and/or the modification of these regulations and laws can cause a significant impact in the business context, especially in terms of enterprise information systems adaptation. Currently, there are many methodological and technological tools that facilitate the application of regulations and procedures, but they are not integrated enough to ensure a complete problem management. Therefore, they are not sufficient to support organizations and companies in the management of their business processes. In this paper we propose a methodological and technological solution, able to model, manage, execute and monitor business processes of complex domains. The system allows both the design of an information system and its prototyping as a web application, by the extension of an appropriately selected Business Process Management suite. During both the design and the usage phases of the prototyped information system, it is possible to interface with a knowledge base that contains information about regulations and aspects that characterize the enterprise (organizational chart, tasks, etc.).','Information Systems and e-Business Management',2,'Adriana CaioneAnna Lisa GuidoAngelo MartellaRoberto PaianoAndrea Pandurino','springer/bpmn security.csv','springer',''),(1421,'Semantically-secure functional encryption: Possibility results, impossibility results and the quest for a general definition','2013','3','','This paper explains that SS1-secure functional encryption (FE) as defined by Boneh, Sahai and Waters implicitly incorporates security under key-revealing selective opening attacks (SOA-K). This connection helps intuitively explain their impossibility results and also allows us to prove stronger ones. To fill this gap and move us closer to the (laudable) goal of a general and achievable notion of FE security, we seek and provide two \"sans SOA-K\" definitions of FE security that we call SS2 and SS3. We prove various possibility results about these definitions. We view our work as a first step towards the challenging goal of a general, meaningful and achievable notion of FE security. © Springer International Publishing 2013.','',1,'Bellare M., O\'Neill A.','scopus/soa security.csv','scopus','\0'),(1422,'Towards Privacy for MapReduce on Hybrid Clouds Using Information Dispersal Algorithm','2014','0','','Abstract MapReduce is a powerful model for parallel data processing. The motivation of this work is to allow running map-reduce jobs partially on untrusted infrastructures, such as public clouds and desktop grid, while using a trusted infrastructure, such as private cloud, to ensure that no outsider could get the ’entire’ information. Our idea is to break data into meaningless chunks and spread them on a combination of public and private clouds so that the compromise would not allow the attacker to reconstruct the whole data-set. To realize this, we use the Information Dispersion Algorithms (IDA), which allows to split a file into pieces so that, by carefully dispersing the pieces, there is no method for a single node to reconstruct the data if it cannot collaborate with other nodes. We propose a protocol that allows MapReduce computing nodes to exchange the data and perform IDA-aware MapReduce computation. We conduct experiments on the Grid’5000 testbed and report on performance evaluation of the prototype.','',1,'Asma Ben CheikhHeithem AbbesGilles Fedak','springer/service oriented architecture security.csv','springer','\0'),(1423,'Towards unified vulnerability assessment with open data','2013','1','cloud computing; computer security; CVE; OVAL; SCAP; SOA; vulnerability assessment','Continuous and comprehensive vulnerability management is a difficult task for administrators. The difficulties are not because of a lack of tools, but because they are designed without service-oriented architecture viewpoint and there is insufficient trustworthy machine-readable input data. This paper presents a service-oriented architecture for vulnerability assessment systems based on the open security standards and related contents. If the functions are provided as a service, various kinds of security applications can be interoperated and integrated in loosely-coupled way. We also studied the effectiveness of the available public data for automated vulnerability assessment. Despite the large amount of efforts that goes toward describing machine-readable assessment test in conformity to the OVAL standard, the evaluation result proves inadequate for comprehensive vulnerability assessment. Only about 12% of all the known vulnerabilities are covered by existing OVAL tests, while some popular client applications in the Top 30 with most unique vulnerabilities are covered more than 90%. © 2013 IEEE.','',1,'Nakamura A.','scopus/service oriented architecture security.csv','scopus','\0'),(1424,'Generalized framework for secure web service composition','2012','1','BPEL; business processes; secure web services; service composition; web service; web service composition','Web services have generated great interests in researchers recently due to its heterogeneous nature. These are based on existing Internet protocols and open standards. It can provide a flexible solution to the problem of application integration. These can be combined together through service composition to solve critical problems, which exists in current scenarios [3]. The service composition suffers from several limitations of security issues such as lack of native support for encryption, decryption and authorization [12]. In this paper, we have proposed a generalized framework for secure web service composition, which incorporates cryptography techniques. The current scenerio get benefited by secure environment over network, prevent unauthorized access of services and support of encryption and decryption mechanism in terms of service composition with the help of proposed framwork. © 2012 IEEE.','',2,'Bhandari R., Suman U.','scopus/bpel security.csv','scopus','\0'),(1425,'BioCloud Search EnGene: Surfing Biological Data on the Cloud','2014','1',' Biomedical data exploration Cloud computing Data searching Data integration Dataspaces Pay-as-you-go data querying','Abstract The massive production and spread of biomedical data around the web introduces new challenges related to identify computational approaches for providing quality search and browsing of web resources. This papers presents BioCloud Search EnGene (BSE), a cloud application that facilitates searching and integration of the many layers of biological information offered by public large-scale genomic repositories. Grounding on the concept of dataspace, BSE is built on top of a cloud platform that severely curtails issues associated with scalability and performance. Like popular online gene portals, BSE adopts a gene-centric approach: researchers can find their information of interest by means of a simple “Google-like” query interface that accepts standard gene identification as keywords. We present BSE architecture and functionality and discuss how our strategies contribute to successfully tackle big data problems in querying gene-based web resources. BSE is publically available at: http://​biocloud-unica.​appspot.​com/​ .','',1,'Nicoletta DessìEmanuele PascarielloGabriele MiliaBarbara Pes','springer/webservice security.csv','springer','\0'),(1426,'A hybrid framework for integrating multiple manufacturing clouds','2015','0',' Multiple manufacturing clouds Cloud manufacturing Interoperability Collaboration','Abstract Cloud manufacturing (CMfg) adopts and extends the concept of cloud computing to make mass Manufacturing Resources and Capabilities (MR/Cs) more widely integrated and accessible to users through the Internet. However, a single manufacturing cloud (MC) has limited MR/Cs, due to both economic and technical constraints, and can only provide limited manufacturing services in terms of function, price, and reliability, etc. Using the aggregated MR/Cs or services of multiple MCs is a natural evolution, i.e., MCs can satisfy peak demands for MR/Cs through collaboration, while users can have a wider selection of services from multiple MCs. To address such requirements, we propose a hybrid framework for integrating multiple MCs. The key functional modules and the business models of the proposed framework are presented to guide future integration of MCs. The enabling technologies, such as semantic web and ontologies, intelligent agents, service-oriented architecture, and materials handling and logistics technologies are also discussed. A case study is given, showing the feasibility and rationality of the proposed approach.','The International Journal of Advanced Manufacturing Technology',1,'Chen YangWeiming ShenTingyu LinXianbin Wang','springer/soa security.csv','springer',''),(1427,'Multi-phase search optimisation algorithm for constrained optimal power flow problem','2014','','Emergency conditions; Genetic algorithm; Optimal power flow; Particle swarm optimisation; Seeker optimisation algorithm; SOA','This paper proposes an enhanced solution for security constrained optimal power flow (SC-OPF) problem based on multi-phase search optimisation algorithm (MSOA). The objective is to minimise the generation costs by optimising the control variables, such as generator power, and satisfying system constraints. MSOA simulates the performance of humans\' intelligent search with memory, experience and uncertainty reasoning. The proposed algorithm is integrated with Lagrangian relaxation factors to deal with network constrains. The proposed technique is carried out on the IEEE 30-bus, 57-bus test systems and a real power system at West Delta Network as part of the Unified Egyptian Network. The space reduction strategy succeeded to decrease the search space in each generation causing fast convergence to the optimal solution. The obtained results are compared with particle swarm optimisation technique to prove the effectiveness of MSOA in solving SC-OPF problems in normal and emergency conditions. Copyright © 2014 Inderscience Enterprises Ltd.','',1,'El-Sehiemy R.A., Shafiq M.B., Azmy A.M.','scopus/soa security.csv','scopus','\0'),(1428,'Cloud Service Selection Based on Variability Modeling','2012','4',' Cloud service selection variability modeling feature modeling decision-making','Abstract The selection among Cloud services is a recent problem in research and practice. The diversity of decision-relevant criteria, configurability of Cloud services and the need to involve human decision-makers require holistic support through models, methodologies and tools. Existing Cloud service selection approaches do not address all stated difficulties at the same time. We present an approach to capture capabilities of Cloud services and requirements using variability modeling. We use Cloud feature models (CFMs) as a representation mechanism and describe how they are utilized for requirements elicitation and filtering within a presented Cloud service selection process (CSSP) that includes human decision-makers. Filtering produces a reduced number of valid Cloud service configurations that can be further assessed with current multi-criteria decision making-based selection approaches. We present software tools that we use to demonstrate the applicability of our approach in a use case about selecting among Cloud storage services.','',2,'Erik WitternJörn KuhlenkampMichael Menzel','springer/bpmn security.csv','springer','\0'),(1429,'Middleware for wireless sensor networks: an outlook','2012','2',' Middleware Wireless sensor networks','Abstract In modern distributed computing, applications are rarely built directly atop operating system facilities, e.g., sockets. Higher-level middleware abstractions and systems are often employed to simplify the programmer’s chore or to achieve interoperability. In contrast, real-world wireless sensor network (WSN) applications are almost always developed by relying directly on the operating system. Why is this the case? Does it make sense to include a middleware layer in the design of WSNs? And, if so, is it the same kind of software system as in traditional distributed computing? What are the fundamental concepts, reasonable assumptions, and key criteria guiding its design? What are the main open research challenges, and the potential pitfalls? Most importantly, is it worth pursuing research in this field? This paper provides a (biased) answer to these and other research questions, preceded by a brief account on the state of the art in the field.','Journal of Internet Services and Applications',2,'Luca MottolaGian Pietro Picco','springer/bpmn security.csv','springer','\0'),(1430,'An Ontological Framework for Decision Support','2013','1','','Abstract In the last few years, ontologies have been successfully exploited by Decision Support Systems ( DSSs ) to support some phases of the decisionmaking process. In this paper, we propose to employ an ontological representation for all the content both processed and produced by a DSS in answering requests. This semantic representation supports the DSS in the whole decisionmaking process, and it is capable of encoding (i) the request, (ii) the data relevant for it, and (iii) the conclusions/suggestions/decisions produced by the DSS . The advantages of using an ontology-based representation of the main data structure of a DSS are many: (i) it enables the integration of heterogeneous sources of data available in the web, and to be processed by the DSS , (ii) it allows to track, and to expose in a structured form to additional services (e.g., explanation or case reuse services), all the content processed and produced by the DSS for each request, and (iii) it enables to exploit logical reasoning for some of the inference steps of the DSS decision-making process. The proposed approach have been successfully implemented and exploited in a DSS for personalized environmental information, developed in the context of the PESCaDO EU project.','',1,'Marco RospocherLuciano Serafini','springer/service oriented architecture security.csv','springer','\0'),(1431,'Design and implementation of a unified network information service','2013','1','networks; web services','A holistic view of the network is key to the successful operation of many distributed, cloud-based, and service-oriented computing architectures. Supporting network-aware applications and application-driven networks requires a detailed representation of network resources, including multi-layer topologies, associated measurement data, and in-the-network service location and availability information. The rapid development of increasingly configurable and dynamic networks has increased the demand for information services that can accurately and efficiently store and expose the state of the network. This work introduces our Unified Network Information Service (UNIS), designed to represent physical and virtual networks and services. We describe the UNIS network data model and its RESTful interface, which provide a common interface to topology, service, and measurement resources. In addition, we describe the security mechanisms built into the UNIS framework. Our analysis of the UNIS implementation shows significant performance and scalability gains over an existing and widely-deployed topology, service registration, and lookup information service architecture. © 2013 IEEE.','',1,'El-Hassany A., Kissel E., Gunter D., Swany M.','scopus/service oriented architecture security.csv','scopus','\0'),(1432,'Towards a Friendly User Interface on the Cloud','2014','1',' cloud computing user interface standardization service','Abstract The wide availability of high interconnection networks, powerful mobile devices and service-oriented architectures has paved the way for the delivery of cloud services. Moving information technology services to the cloud has imposed new ways of interaction with users. Users desire friendly looking, highly interactive, dynamically visualized and naturally controlled user interfaces (UI) that allow smooth navigation in the cloud space. Transferring the rich user interface of the desktop, where running the software dynamically online and instantly following up with social networking activities is relatively easy, to the web-browser on mobile devices is introducing many challenges. This has resulted in the emergence of innovative cloud services and implementation approaches specifically to handle the new user interface demands. However, a standardized consistent user interface metaphor for cloud services is still lacking. This paper presents a comprehensive study on the cloud user interface requirements, special services, implementation trends, technologies and efforts for standardization.','',1,'Heba A. KurdiSafwat HamadAmal Khalifa','springer/service oriented architecture security.csv','springer','\0'),(1433,'Analysis of Communicating Authorization Policies','2013','0','','Abstract We present a formal language for specifying distributed authorization policies that communicate through insecure asynchronous media. The language allows us to write declarative authorization policies; the interface between policy decisions and communication events can be specified using guards and policy updates. The attacker, who controls the communication media, is modeled as a message deduction engine. We give trace semantics to communicating authorization policies, and formulate a generic reachability problem. We show that the reachability problem is decidable for a large class of practically-relevant policies specified in our formal language.','',1,'Simone FrauMohammad Torabi Dashti','springer/service oriented architecture security.csv','springer','\0'),(1434,'Domain-specific multi-modeling of security concerns in service-oriented architectures','2012','','','As a common reference for many in-development standards and execution frameworks, special attention is being paid to Service-Oriented Architectures. SOAs modeling, however, is an area in which a consensus has not being achieved. Currently, standardization organizations are defining proposals to offer a solution to this problem. Nevertheless, until very recently, non-functional aspects of services have not been considered for standardization processes. In particular, there exists a lack of a design solution that permits an independent development of the functional and non-functional concerns of SOAs, allowing that each concern be addressed in a convenient manner in early stages of the development, in a way that could guarantee the quality of this type of systems. This paper, leveraging on previous work, presents an approach to integrate security-related non-functional aspects (such as confidentiality, integrity, and access control) in the development of services. © 2012 Springer-Verlag.','',1,'Silva Gallino J.P., De Miguel M., Briones J.F., Alonso A.','scopus/service oriented architecture security.csv','scopus','\0'),(1435,'Obtaining secure BPEL from Secure Business Process specified with BPMN','2014','0','BPEL;Business Process;Secure Business Process','Business Processes are an important resource for performance on business competitiveness. The Business Process descriptions made; with BPMN (Business Process Modelling Notation), the de facto standard in the market, can be translated into execution languages; such as BPEL (Business Process Execution Language). Originally, BPMN specification does not include the representation of security aspects. However, there are proposals that incorporate security specifications of Business Processes using BPMN. Among these we have considered for describing a SBP (Secure Business Process), incorporating the business analyst\'s perspective in relation to security. However, until now,there are no translations of the SBP to execution languages. In this paper we propose a translation of the security requirements, including access control, defined in a SBP to secure Web services using BPEL language.','IEEE Latin America Transactions',2,'G. Marquez; A. Rodriguez; E. Fernandez Medina','ieee/bpel security.csv','ieee','\0'),(1436,'Comparison and evaluation of goal-oriented satisfaction analysis techniques','2013','14',' Goal-oriented requirements engineering Requirements modeling Model analysis','Abstract Goal-oriented requirements engineering (GORE) has been introduced as a means of modeling and understanding the motivations for system requirements. Using models to make goals explicit helps to avoid system failures due to implementing the wrong requirements or ignoring certain stakeholder needs. These models are unique when compared to other models used in system analysis in that their structure naturally lends itself to an analysis of goal satisfaction. Existing work claims that analysis using goal models can facilitate decision making over functional or design alternatives, using criteria in the model. Many different approaches to the analysis of goal-oriented requirements models have been proposed, including several procedures that analyze the satisfaction or denial of goals. These procedures make different choices in their interpretation of the goal model syntax, the methods to resolve conflicting or partial evidence, and in the way they represent satisfaction. This work uses three available tools implementing seven similar goal satisfaction analysis procedures to analyze three sample goal models. Results are reported and compared. The purpose of this comparison is to understand the ways in which procedural design choices affect analysis results, and how differences in analysis results could lead to different recommendations over alternatives in the model. Our comparison shows that different satisfaction analysis techniques for goal models can produce variable results, depending on the structure of the model. Comparison findings lead us to recommend the use of satisfaction analysis techniques for goal models as only heuristics for decision making. Our results emphasize investigation into the benefits of satisfaction analysis beyond decision making, namely improving model quality, increasing domain knowledge, and facilitating communication.','Requirements Engineering',2,'Jennifer HorkoffEric Yu','springer/bpmn security.csv','springer',''),(1437,'A high assurance cross-domain guard for use in Service-Oriented Architectures','2015','','cross-domain information exchange; guard; high assurance; service-oriented architectures; SOAP; XML','Access to information in a timely manner is becoming more and more important in military operations. This also includes exchange of information between different security domains. Traditionally security domains have been physically separated to avoid loss of confidentiality. Information exchange between domains has been limited to specialized solutions or manual intervention. In this paper we present a prototype guard for use in Service-Oriented Architectures (SOA), providing sufficient flexibility for use with various applications. The prototype guard has been designed to pass a high assurance (CC EAL5) evaluation, thus providing the necessary trust. © 2015 Military University of Technology.','',1,'Haakseth R., Nordbotten N.A., Jonsson O., Kristiansen B.','scopus/service oriented architecture security.csv','scopus',''),(1438,'Proceedings of the 2nd National Days of Network Security and Systems, JNS2 2012','2012','','','The proceedings contain 20 papers. The topics discussed include: a maturity metric based approach for eliciting SOA security requirements; an elliptic curve cryptography based on matrix scrambling method; algorithms of representation group Ga,b; exploring opportunistic scheduling in ad-hoc network with physical layer security; wireless sensor network: security challenges; computation integrity mechanism for MapReduce in Cloud computing; homomorphic encryption method applied to Cloud computing; secure multimedia objects management in medical information system; and load balancing in Vloud computing state of art.','',1,'[No author name available]','scopus/soa security.csv','scopus','\0'),(1439,'OPC Unified Architecture: A Service-oriented Architecture for Smart Grids','2012','0','OPC UA, automation, communication, service-oriented architectures, smart grids, standardization','In this paper, the OPC UA is introduced as a key technology for realizing a variety of Smart Grid use cases enabling relevant tasks of automation and control. OPC UA is the successor of the established Classic OPC specification and state of the art regarding information exchange in the industrial automation branch. One of its key improvements over the Classic OPC is that the area of application is no longer restricted to industrial automation but OPC UA can be applied almost in every domain facing challenges in automated control. This improvement stems from a more generic and object-oriented approach. For the adoption of OPC UA to Smart Grids, two of the most important data models -- the Common Information Model (CIM) and the IEC 61850 -- have been identified to be integrated into OPC UA communication. In this contribution, basic OPC UA features and functionalities (information modeling, communication services, and information security) are introduced and discussed in the context of Smart Grids.','',1,'Sebastian Lehnhoff and Sebastian Rohjans and Mathias Uslar and Wolfgang Mahnke','acm/service oriented architecture security.csv','acm','\0'),(1440,'Veranstaltungskalender 6|2012','2012','0','','','Datenschutz und Datensicherheit - DuD',1,'','springer/soa security.csv','springer','\0'),(1441,'Development of a Construction Quality Supervision Collaboration System Based on a SaaS Private Cloud','2015','0',' SaaS Private cloud Construction engineering Coordination of quality supervision','Abstract In this paper, the background of the SaaS private cloud-based Construction Quality Supervision Collaboration System (CQSCS) is introduced; the current status and shortcomings of construction quality supervision are described, and methods are proposed to incorporate the novel software architecture and application models of the SaaS private cloud to strengthen construction quality supervision and management. The design and construction of the overall framework of the CQSCS were completed in the study; system functions and structure were designed and developed, such as the quality supervision unit, quality inspection unit and quality acceptance unit, whose targets are to serve construction quality supervision agencies, quality inspection agencies and units involved in on-site construction. Additionally, the new system is compared against the old system. Finally, based on the CQSCS used in Wuhan, the function system and applications of the construction quality supervision and management system are discussed, and the prospect of the wide-spread application of the designed system is speculated.','Journal of Intelligent & Robotic Systems',1,'Yuping ChengYan ChenRan WeiHanbin Luo','springer/soa security.csv','springer',''),(1442,'Computational Context to Promote Geographic Information Systems toward Human-Centric Perspectives','2012','0',' GIS Context-awareness CCMF Web Services','Abstract Spatial information is of vital importance to Geographic Information Systems, but it does not suffice to its application to solve problems that require a human-centric perspective. For this to be accomplished, it must be considered other context dimensions, such as the personal data of users. With this purpose, GIS can be combined with Computational Context in order to produce software parameterized by information other than user’s location. Moreover, considering the shift of GIS toward web/distributed approaches, in this paper, it is also surveyed the placement of the proposed solution in composite Web Services to enable the coupling of geographic systems with worldwide client software.','',1,'Luis Paulo da Silva CarvalhoPaulo Caetano da Silva','springer/service oriented architecture security.csv','springer','\0'),(1443,'The Language Application Grid Web Service Exchange Vocabulary','2016','0',' Linguistic standards Interoperability Web services Service grids','Abstract In the context of the Linguistic Applications (LAPPS) Grid project, we have undertaken the definition of a Web Service Exchange Vocabulary (WS-EV) specifying a terminology for a core of linguistic objects and properties exchanged among NLP tools that consume and produce linguistically annotated data. The goal is not to define a new set of terms, but rather to provide a single web location where terms relevant for exchange among NLP tools are defined and provide a “sameAs” link to all known web-based definitions that correspond to them. The WS-EV is intended to be used by a federation of six grids currently being formed but is usable by any web service platform.','',1,'Nancy IdeKeith SudermanMarc VerhagenJames Pustejovsky','springer/service oriented architecture security.csv','springer',''),(1444,'Efficient consumption of the electronic health record in mHealth','2014','1',' mHealth REST Middleware WebSocket Electronic health record Publish/subscribe','Abstract With the advancement in mobile technology, there are lots of prospect for the health domain. Specifically, the accessibility of the electronic health record (EHR) can be extended to the mobile node to promote remote healthcare delivery; this is known as mobile Health or mHealth. However, supporting real-time access and services synchronization in highly distributed mobile environments can be challenging due to the fact that mobile devices rely on wireless communication mediums to exchange data. These mediums can be unstable due to bandwidth fluctuations and the mobility of the healthcare professionals. In this work, we examine how to provide real-time accessibility of the medical record in the mobile environment by overcoming the network-level limitations. Thus, we propose distributed cloud-hosted middleware platform that enables the mobile devices to receive updates. Since the middleware are distributed, a methodology called the “best-proximity” accessibility is enforced so that the healthcare professionals are able to connect to the middleware that offers the most optimal request–response time. The evaluation of the framework, called Med App, shows that: (1) medical data dissemination and accessibility can be achieved in a low-latency fashion, (2) data state can be managed efficiently through a policy-based consistency model, and (3) the resources of the mobile device can be efficiently utilized through services composition on the middleware.','Network Modeling Analysis in Health Informatics and Bioinformatics',1,'Richard K. LomoteyRalph Deters','springer/soa security.csv','springer','\0'),(1445,'Interface-Based Service Composition with Aggregation','2012','1','','Abstract Service-oriented architectures (SOAs) usually comprehend in-the- middle entities such as proxies or service mediators that compose services abstracting from the order in which they exchange messages. Although widely used, these entities are usually implemented by means of ad-hoc solutions. In this paper we generalise this composition mechanism by identifying the primitive notion of aggregation . We formally define the semantics of aggregation in terms of a process calculus. We also provide a reference implementation for this primitive by extending the Jolie language, thus allowing for the experimentation with real SOA scenarios.','',2,'Mila Dalla PredaMaurizio GabbrielliClaudio GuidiJacopo MauroFabrizio Montesi','springer/bpel security.csv','springer','\0'),(1446,'TEEI - A mobile security infrastructure for TEE integration','2015','','ITS; Mobile payment; Mobile security; TEE; TEEI; TVM; Virtual network','Mobile security becomes a hot topic recently, especially in mobile payment and privacy data fields. Traditional solution can\'t keep a good balance between convenience and security. Against this background, a dual OS security solution named Trusted Execution Environment (TEE) is proposed and implemented by many institutions and companies. However, it raised TEE fragmentation and control problem. Addressing this issue, a mobile security infrastructure named Trusted Execution Environment Integration (TEEI) is presented to integrate multiple different TEEs. By using Trusted Virtual Machine (TVM) tech-nology, TEEI allows multiple TEEs running on one secure world on one mobile device at the same time and isolates them safely. Furthermore, a Virtual Network protocol is proposed to enable communication and cooperation among TEEs which includes TEE on TVM and TEE on SE. At last, a SOA-like Internal Trusted Service (ITS) framework is given to facilitate the development and maintenance of TEEs. © 2014 IEEE.','',1,'Chai H., Lu Z., Meng Q., Wang J., Zhang X., Zhang Z.','scopus/soa security.csv','scopus','\0'),(1447,'Stock Control through Video Surveillance in Logistics','2013','0',' Stock Control Video Surveillance Logistic RFID Tracking Anomaly Detection','Abstract The transport sector has certainly witnessed the latest developments in information and communication technologies (ICT). In this context the objective of the CPILOS project is to develop a technological platform, based on IT infrastructures and services, that can support critical processes, like secure tracking and tracing of goods, using video surveillance facilities with radio-frequency identification (RFID) support. More specifically, the project involves the study and implementation of an integrated platform for quality control of goods, particularly perishable food coming from China and intended to be distributed in the Italian and European consumer markets (usually not controlled at the source).','',1,'Mariarosaria CarulloGianluca CavaliereAniello De PriscoMichele Di CapuaAlfredo PetrosinoDonatella PadovanoGennaro NaveDaniele Ruggeri','springer/service oriented architecture security.csv','springer','\0'),(1448,'Transparent Model Transformation: Turning Your Favourite Model Editor into a Transformation Tool','2015','0','','Abstract Current model transformation languages are supported by dedicated editors, often closely coupled to a single execution engine. We introduce Transparent Model Transformation, a paradigm enabling modelers to specify transformations using a familiar tool: their model editor. We also present VMTL, the first transformation language implementing the principles of Transparent Model Transformation: syntax, environment, and execution transparency. VMTL works by weaving a transformation aspect into its host modeling language. We show how our implementation of VMTL turns any model editor into a flexible model transformation tool sharing the model editor’s benefits, transparently.','',2,'Vlad AcretoaieHarald StörrleDaniel Strüber','springer/bpmn security.csv','springer',''),(1449,'A maturity metric based approach for eliciting SOA security requirements','2012','2','Maturity Models; Metrics; Security Assessment; Security elicitation; Security Requirement; SOA','The emergence of service-oriented architecture (SOA) as an approach for integrating applications that expose services presents many new challenges to organizations resulting in significant risks to their business. Particularly important among those risks are failures to effectively address quality attribute requirements such as security. Properly defining and configuring security requirements in SOA applications is quite difficult for developers and business experts because they are not necessary security experts. SOA security requirements identification is a challenging and promising research area. In this article, we propose an SOA Security requirement elicitation approach based on the maturity assessment of security processes and controls applicable in the context of SOA. © 2012 IEEE.','',1,'Kassou M., Kjiri L.','scopus/service oriented architecture security.csv','scopus','\0'),(1450,'Design and implementation of human resources management system','2012','','dynamic web page; Human resources management system; SOA; UniEAP; VPN','Human resources management being a new growth point of university development, its information system has become the key project of university informationization. The new system covers the whole life cycle including faculty recruitment, admittance, training, promotion, dispatch, and retirement. This essay focuses on introducing business and technical framework of human resources management system, describes UniEAP development platform based on SOA, and introduces comprehensive security measures adopted by this system. © 2012 Springer-Verlag GmbH.','',1,'Ran L., Shen Z.','scopus/soa security.csv','scopus','\0'),(1451,'Mashing up the Internet of Things: a framework for smart environments','2012','6','','Abstract Along with the advent of the Web 2.0 came a rich ecosystem of application services allowing developers to use the functionality provided by Web applications into their own customized solutions. This, together with the current developments on the Internet of Things are laying the foundations of new IP-based smart environments in which applications and services are combined to support users in ways not possible before. Recently, most of the research has focused on improving the networking capabilities of the Internet of Things infrastructure and in enabling the access to the following generation of services. However, there are two more issues that need to be attended. First, how data and functionality provided by services on these smart environments would be modeled in order to facilitate abstraction and composition, and second, how users are intended to interact with the environments in order to make applications support their particular needs. In this article, we present a framework and an user-interaction model for Internet of Things applications based on the technologies of the modern Web as a solution proposal for both issues. We start by describing the elements of the framework, and then discuss the user-interaction model by using a case-of-study scenario illustrating the capabilities of our contributions.','EURASIP Journal on Wireless Communications and Networking',2,'Edgardo Avilés-LópezJ Antonio García-Macías','springer/bpel security.csv','springer','\0'),(1452,'A Model to Verify Quality of Protection Policies in Composite Web Services','2009','2','Quality of Protection;WS-Policy;Web Service composition','Description languages for Web service composition deal specifically with the definition of the business process logic, and do not provide support for the specification of security aspects related to the Web services involved. This paper uses the WS-Policy standard, and the WS-BPEL and WSCDL languages to propose a model for verifying the compatibility of quality of protection policies of the business process participants, avoiding many conflicts between policies incompatibilities during execution time. The model emphasizes a general policy for the composite process.','2009 Congress on Services - I',2,'D. Böger; J. Fraga; P. Mafra; M. S. Wangham','ieee/bpel security.csv','ieee','\0'),(1453,'Integration and Exchangeability of External Security-Critical Web Services in a Model-Driven Approach','2015','0','','Abstract Model-driven approaches facilitate the development of applications by introducing domain-specific abstractions. Our model-driven approach called SecureMDD supports the domain of security-critical applications that use web services. Because many applications use external web services (i.e. services developed and provided by someone else), the integration of such web services is an important task of a model-driven approach. In this paper we present an approach to integrate and exchange external developed web services that use standard or non-standard cryptographic protocols, in security-critical applications. All necessary information is defined in an abstract way in the application model, which means that no manual changes of the generated code are necessary. We also show how security properties for the whole system including external web services can be defined and proved. For demonstration we use a web shop case study that integrates an external payment service.','',2,'Marian BorekKurt StenzelKuzman KatkalovWolfgang Reif','springer/bpel security.csv','springer',''),(1454,'Extending Ontology-Based Databases with Behavioral Semantics','2012','0','','Abstract Recently, Ontology-Based DataBases (OBDB) have been developed as a solution to store and manipulate, efficiently and in a scalable way, ontologies together with data they describe. Currently, existing OBDBs propose weak solutions to calculate derived (non-canonical) concepts. Indeed, these solutions are internal to the OBDB and specific to the ontology model (formalism) supported. As a consequence, non-canonical concepts can not be in all cases properly defined with the different available mechanisms since existing solutions are not constantly suitable. In this paper, we propose a generic solution which is an extension of OBDBs with the capability to introduce dynamically operators to calculate non-canonical concepts. These operators can be implemented in different ways (e.g. with external programs or with web services). Then, we show the interest of this extension by improving a proposed methodology to design databases storing ontologies. Finally, a prototype implementing our design approach is outlined.','',1,'Youness BazharChedlia ChakrounYamine Aït-AmeurLadjel BellatrecheStéphane Jean','springer/webservice security.csv','springer','\0'),(1455,'26th International Conference on Advanced Information Systems Engineering, CAiSE 2014','2014','','','The proceedings contain 32 papers. The special focus in this conference is on Advanced Information Systems Engineering. The topics include: Analysis and prediction of design model evolution using time series; zero-knowledge private computation of node bridgeness in social networks; valuation and selection of OSS with real options; state of the art in context modelling - a systematic literature review; on the applicability of concepts from variability modelling in capability modelling; capability-based business model transformation; capability-driven development of a SOA platform; service functioning mode in variability model; towards a computer-aided problem-oriented variability requirements engineering method; an outlook on patterns as an aid for business and IT alignment with capabilities; supporting BPMN model creation with routing patterns; coupling elements of a framework for cognitive matchmaking with enterprise models; investigating differences between graphical and textual declarative process models; conceptual understanding of conceptual modeling concepts; towards semantic collective awareness platforms for business innovation; leveraging user inspiration with microblogging-driven exploratory search; system architecture of the BIVEE platform for innovation and production improvement; cooperative decision making in virtual enterprises; a methodology for the set-up of a virtual innovation factory platform; data mart reconciliation in virtual innovation factories; resolving policy conflicts - integrating policies from multiple authors; evolving computational intelligence system for malware detection; lightweight formal verification in real world, a case study and security requirements analysis using knowledge in CAPEC.','',2,'[No author name available]','scopus/bpmn security.csv','scopus',''),(1456,'Extracting Data from WSNs: A Service-Oriented Approach','2012','1','','Abstract This chapter describes the architecture of a middleware layer between low-level sensing devices and higher level software layers, to support the requirements of a software infrastructure for networked enterprises. The development of such middleware layer is an important problem, as demonstrated by the number or research papers and the variety of approaches that can be found in literature. The main goals are to hide the complexity of low-level pervasive technologies, such as Wireless Sensors Networks (WSNs); and to help the higher software layers in managing the heterogeneous real-time data coming from the environment. In this chapter, after analysing the different approaches, we select the Service Oriented Architecture (SOA) design paradigm as the most suitable for allowing a seamless and effective integration of pervasive technologies into the enterprise information systems. We also present SensorsMW, our middleware proposal implemented in the context of the ArtDeco project, which is based on some of the many technologies that spin around the SOA world. In particular, our software is a service-oriented, flexible and adaptable middleware that allows applications to configure WSN functionalities and exploit them in the form of Web Services.','',2,'Gaetano F. AnastasiEnrico BiniGiuseppe Lipari','springer/bpel security.csv','springer','\0'),(1457,'Composition and Self-Adaptation of Service-Based Systems with Feature Models','2013','2',' Service Composition Self-Adaptation Feature Models','Abstract The adoption of mechanisms for reusing software in pervasive systems has not yet become standard practice. This is because the use of pre-existing software requires the selection, composition and adaptation of prefabricated software parts, as well as the management of some complex problems such as guaranteeing high levels of efficiency and safety in critical domains. In addition to the wide variety of services, pervasive systems are composed of many networked heterogeneous devices with embedded software. In this work, we promote the safe reuse of services in service-based systems using two complementary technologies, Service-Oriented Architecture and Software Product Lines. In order to do this, we extend both the service discovery and composition processes defined in the DAMASCo framework, which currently does not deal with the service variability that constitutes pervasive systems. We use feature models to represent the variability and to self-adapt the services during the composition in a safe way taking context changes into consideration. We illustrate our proposal with a case study related to the driving domain of an Intelligent Transportation System, handling the context information of the environment.','',2,'Javier CuboNadia GamezLidia FuentesErnesto Pimentel','springer/bpel security.csv','springer','\0'),(1458,'SOA-Readiness of REST','2014','1',' SOA REST Service Discovery Service Coupling','Abstract SOA is a core concept for designing distributed applications based on the abstraction of software services. The main strength lies in the ability to discover services and loosely-couple them with service consumers across platform-boundaries. The evolved service protocol SOAP and its accompanying standards provide a stable, rich and wide-spread technology stack for implementing SOA-based systems. As an alternative approach to design and implement distributed systems based on services, the architectural style REST gains traction, due to its more light-weight and data format independent nature. Whether REST is also suited for acting as a basis for implementing SOA-based systems is still an open issue, however. This paper focuses on this question and provides an analysis on the SOA-readiness of REST. Both, a theoretical analysis and an empirical study of REST frameworks have been conducted in order to obtain a comprehensive understanding on this matter. The results show a lack of core SOA principles mainly related to the discoverability and the loose coupling of services.','',1,'Peter Leo GorskiLuigi Lo IaconoHoai Viet NguyenDaniel Behnam Torkian','springer/service oriented architecture security.csv','springer','\0'),(1459,'A Framework for Privacy Protection and Usage Control of Personal Data in a Smart City Scenario','2013','1',' Identity management privacy protection usage control smart cities trust negotiation','Abstract In this paper we address trust and privacy protection issues related to identity and personal data provided by citizens in a smart city environment. Our proposed solution combines identity management, trust negotiation, and usage control. We demonstrate our solution in a case study of a smart city during a crisis situation.','',1,'Gianmarco BaldiniIoannis KounelisIgor Nai FovinoRicardo Neisse','springer/service oriented architecture security.csv','springer','\0'),(1460,'Composing Non-functional Concerns in Composite Web Services','2011','2','Composition;Non-functional Concerns;Web services','The support for non-functional concerns (NFC) is essential for the success and adoption of web services. However, state of the art works offer only a limited support for these concerns especially when it comes to the composition of multiple non-functional concerns with composite web services. In this paper, we focus on the composition of non-functional actions (NFA) with composite web services whose composition logic is made explicit using languages such as BPMN2 or WS-BPEL (gray box view). In contrast to the black box view where only the interface of the service is visible the gray box view reveals additional information on control flow, data flow, composed services, etc. NFAs can also be composite and constitute complex processes such as secure conversations or transactions which have to be integrated with composite web services. Additionally, the execution order of multiple superimposing NFA has to be declared. In our approach we introduce a model-driven approach for the integrated specification and realization of the different types of NFC composition (NFAs with composite services, execution order of superimposing NFAs and composite NFAs) as well as a set of editors and code generators supporting this approach.','Web Services (ICWS), 2011 IEEE International Conference on',2,'B. Schmeling; A. Charfi; M. Mezini','ieee/bpel security.csv','ieee','\0'),(1461,'A GENTL Approach for Cloud Application Topologies','2014','1',' application topology language annotation schemes application distribution cloud migration','Abstract The availability of an increasing number of cloud offerings allows for innovative solutions in designing applications for the cloud and in adapting existing ones for this environment. An important ingredient in identifying the optimal distribution of an application in the cloud, potentially across offerings and providers, is a robust topology model that can be used for the automated deployment and management of the application. In order to support this process, in this work we present an application topology language aimed for cloud applications that is generic enough to allow the mapping from other existing languages and comes with a powerful annotation mechanism already built-in. We discuss its supporting environment that we developed and show how it can be used in practice to assist application designers.','',2,'Vasilios AndrikopoulosAnja ReuterSantiago Gómez SáezFrank Leymann','springer/bpel security.csv','springer',''),(1462,'Context-Aware Adaptive Process Information Systems: The Context-BPMN4V Meta-Model','2014','1',' Context Adaption Process Information Systems Versions BPMN','Abstract This paper introduces Context-BPMN4V, an extension of BPMN for modeling variability of processes using versions and also considering their contextual dimension. More precisely, it shows how we extend BPMN meta-models to support version modeling to deal with process adaptation, along with context modeling to characterize the situations in which instances of processes are executed. Because of space limitation, this paper only focuses on intra-organizational processes.','',2,'Imen Ben SaidMohamed Amine ChaabaneEric AndonoffRafik Bouaziz','springer/bpmn security.csv','springer',''),(1463,'Supporting Structural Consistency Checking in Adaptive Case Management','2015','0','','Abstract Adaptive Case Management (ACM) enables knowledge workers to collaboratively handle unforeseen circumstances by making ad hoc changes of case instances at runtime. Therefore, it is crucial to ensure that various structural elements of an ACM case, such as goals, subprocesses and so on, remain consistent over time. To the best of our knowledge, no studies in the literature provide adequate support for structural consistency checking of ACM. In this paper, we introduce a formal categorization of ACM’s structural features and potential inconsistencies. Based on this categorization, we develop a novel approach for structural consistency checking of ACM cases. Our approach, based on model checking and graph algorithms, can detect a wide range of inconsistencies of ACM’s structural elements. The evaluation of our approach shows reasonable performance and scalability.','',2,'Christoph CzepaHuy TranUwe ZdunStefanie Rinderle-MaThanh Tran Thi KimErhard WeissChristoph Ruhsam','springer/bpmn security.csv','springer',''),(1464,'An OWL-S based specification model of dynamic entity services for Internet of Things','2016','0',' Dynamic description Entity services OWL-S Internet of Things','Abstract Semantic Web is an effective technology for intelligent Internet of Things (IoT), where Web Services are commonly used to describe the entity functions in the transaction process. However, as a specification of information processing, conventional Web Services cannot fully meet the needs of execution and control of the transactions on IoT. To facilitate describing entities involved in the transactions on IoT, by extending OWL-S, we propose a specification model of dynamic services for IoT entities. In our model, information of entity status is issued in real-time by the extended structure and is released to the requesters as dynamic services. In this way, the transactions on IoT can be constructed and executed intelligently as needed. Finally, the experimental results demonstrated the effectiveness of the proposed model of dynamic entity services for IoT.','Journal of Ambient Intelligence and Humanized Computing',1,'Chao QuFagui LiuMing TaoDacheng Deng','springer/soa security.csv','springer',''),(1465,'A Service-Oriented Architecture in a Multi-Agency Environment: A Case Study in Enterprise Dynamics','2006','0','','Many of the challenges faced by today¿s government-international trade, health care, and national security-require complex multi-agency responses involving public and private networked institutions cooperating on a global scale. In this paper, we examine the service-oriented architecture (SOA)-based approach in supporting the overall enterprise architecture used by the federal government for information sharing among multiple agencies. We apply SOA industrial concepts along with the Business Process Executable Language (BPEL) service broker model to enhance a set of geographic information system-based business performance modeling and planning tools middleware (Integrated Enterprise Engineering Workbench (IEEW)). Applying the SOA concept and the BPEL model has advanced the IEEW one step further in its scope to serve as a case study for the modernization planning and integration of information systems for the multi-agency challenge of monitoring and managing international trade.','2006 10th IEEE International Enterprise Distributed Object Computing Conference Workshops (EDOCW\'06)',2,'K. Zheng; D. Kenneth; C. Hoffman','ieee/bpel security.csv','ieee','\0'),(1466,'Critical analysis of vendor lock-in and its impact on cloud computing migration: a business perspective','2016','0',' Cloud computing Vendor lock-in Enterprise migration Cloud adoption Cloud API’s Interoperability Portability Standards DevOps','Abstract Vendor lock-in is a major barrier to the adoption of cloud computing, due to the lack of standardization. Current solutions and efforts tackling the vendor lock-in problem are predominantly technology-oriented. Limited studies exist to analyse and highlight the complexity of vendor lock-in problem in the cloud environment. Consequently, most customers are unaware of proprietary standards which inhibit interoperability and portability of applications when taking services from vendors. This paper provides a critical analysis of the vendor lock-in problem, from a business perspective. A survey based on qualitative and quantitative approaches conducted in this study has identified the main risk factors that give rise to lock-in situations. The analysis of our survey of 114 participants shows that, as computing resources migrate from on-premise to the cloud, the vendor lock-in problem is exacerbated. Furthermore, the findings exemplify the importance of interoperability, portability and standards in cloud computing. A number of strategies are proposed on how to avoid and mitigate lock-in risks when migrating to cloud computing. The strategies relate to contracts, selection of vendors that support standardised formats and protocols regarding standard data structures and APIs, developing awareness of commonalities and dependencies among cloud-based solutions. We strongly believe that the implementation of these strategies has a great potential to reduce the risks of vendor lock-in.','Journal of Cloud Computing',2,'Justice Opara-MartinsReza SahandiFeng Tian','springer/bpel security.csv','springer',''),(1467,'A pragmatic approach to capturing safety and security relevant information for reusable european component oriented architecture software components','2014','0','Component;Reuse;Safety;Security;Software','The European Component Oriented Architecture, (ECOA), concept provides a framework for portability and interoperability of Application Software Components, (ASC), through use of an interfacing layer, which permits a standardised but abstractly specified component interface to be mapped through to a range of different computing platforms. This flexibility is expected to revolutionise how the military avionics industry procures and develops software systems, including reducing costs and timescales to deployment of new and enhanced systems. These benefits are only realised if an equally flexible approach can be taken for safety certification and security accreditation. Unfortunately, the standards, regulators and approaches required in each of the nation states are not the same, hence it has been necessary to search for shared objectives wherever possible, but also allow points of variation where necessary. The approach proposed is pragmatic and simple but leaves scope for more rigour to be applied where appropriate, for example, for higher assurance systems. Although the ECOA concepts were developed with the military avionic sector in mind, the concepts and the approach to recording safety and security information may also be useful in other domains. The ECOA concept is currently under development by: Dassault Aviation, BAE Systems, AgustaWestland, Bull, General Dynamics, GE Aviation, Selex and Thales, funded jointly by UK and French governments.','System Safety and Cyber Security (2014), ??????9th IET International Conference on',1,'J. Fenn; T. Cornilleau; Y. Oakshott; A. Britto','ieee/service oriented architecture security.csv','ieee','\0'),(1468,'Community Resilience Engineering: Reflections and Preliminary Contributions','2014','3','','Abstract An important challenge for human societies is that of mastering the complexity of Community Resilience, namely “the sustained ability of a community to utilize available resources to respond to, withstand, and recover from adverse situations”. The above concise definition puts the accent on an important requirement: a community’s ability to make use in an intelligent way of the available resources, both institutional and spontaneous, in order to match the complex evolution of the “significant multi-hazard threats characterizing a crisis”. Failing to address such requirement exposes a community to extensive failures that are known to exacerbate the consequences of natural and human-induced crises. As a consequence, we experience today an urgent need to respond to the challenges of community resilience engineering. This problem, some reflections, and preliminary prototypical contributions constitute the topics of the present article.','',1,'Vincenzo De FlorioHong SunChris Blondia','springer/service oriented architecture security.csv','springer','\0'),(1469,'CLOSER 2014 - Proceedings of the 4th International Conference on Cloud Computing and Services Science','2014','','','The proceedings contain 88 papers. The topics discussed include: proactive adaptation in service composition using a fuzzy logic based optimization mechanism; preference-driven refinement of service compositions; collaborative, dynamic & complex systems - modeling, provision & execution; choreography-based consolidation of multi-instance BPEL processes; a cloud application for security service level agreement evaluation; utility-based decision making in collective adaptive systems; a web service discovery approach based on hybrid negotiation; monitoring large cloud-based systems; robust performance control for web applications in the cloud; PAEAN4CLOUD - a framework for monitoring and managing the SLA violation of cloud service-based applications; and methodology to determine relationships between performance factors in hadoop cloud computing applications.','',2,'[No author name available]','scopus/bpel security.csv','scopus',''),(1470,'Proposing a context-aware enterprise mashup readiness assessment framework','2012','6',' Enterprise 2.0 Enterprise mashup Business services Readiness assessment Web 2.0','Abstract Web mashups have received a lot of attention recently as more enterprises are engaged in enterprise 2.0 initiatives. So far, there is insufficient research on the adoption and diffusion of Web mashups in an enterprise context. In this paper, we discussed the benefits and issues associated with enterprise mashups. We proposed a context-aware enterprise mashup readiness assessment framework to help enterprise managers and decision makers determine their needs and readiness for enterprise mashups. A case study was conducted to verify the usefulness of the proposed framework. The results show that our work can be used to guide enterprises with their decision making for the adoption of enterprise mashups and thus contribute to the development of a rigorous strategy for enterprise mashup adoption, development and diffusion.','Information Technology and Management',1,'Gerald BaderWu HeAmin AnjomshoaaA. Min Tjoa','springer/soa security.csv','springer','\0'),(1471,'Investigations on User Preferences of the Alignment of Process Activities, Objects and Roles','2013','0',' process modeling understandability model visualization','Abstract Numerous attempts have been made to research the variety of different influences on the understandability of process models. Common to all of these attempts is the limitation to the process model itself. Little empirical effort is spent on investigating the understandability of the alignment of process activities, objects, and roles. This paper tackles this issue and empirically studies preferences of how to visually align process activities with objects and roles. In particular, three visualization techniques are evaluated in order to support the combination of the object and organization units with their corresponding process model elements. The empirical study provides a strong support for the visualization of a process model that is disburdened from context information such as objects used and roles involved and thus is reduced to the sole visualization of process activities and its control-flow.','',2,'Agnes KoschmiderSimone KriglsteinMeike Ullrich','springer/bpel security.csv','springer','\0'),(1472,'A Study on Smartwork Security Technology Based on Cloud Computing Environment','2015','0',' Smartwork Security analysis Cloud computing Security element','Abstract Computing environment has changed a lot by development of network and wide spread of the mobile terminal. Among them, adoption of cloud computing causes a large change socially. The social consensus by introduction of smartwork based on this cloud computing environment is increasing. Especially, smartwork which can work freely anytime and anywhere has been noted as a new business model while broadband communication infrastructure becomes popular. However, smartwork based on cloud computing environment has a variety of security vulnerabilities. The risk of information leakage is increasing according to increasing of vulnerability of virtualization technology which cloud computing has, and security threats of mobile terminal used to smartwork. In this paper, we look security element by smartwork design for the activation of the smartwork based on cloud computing and organize to respond to the attack. The corresponding method presented in this paper will be applied to safe security model.','Wireless Personal Communications',1,'Hwan-Seok YangSeung-Jae Yoo','springer/service oriented architecture security.csv','springer',''),(1473,'Using a cloud-centric middleware to enable mobile hosting of Web services: mHealth use case','2014','1',' REST Mobile cloud computing Mobile hosting Middleware mHealth E-health Workflow','Abstract The unceasing growth and divergence of the mobile landscape have led to the use of smartphone and tablet devices in consuming Web services (WS) in enterprises. However, in heterogeneous WS, the shift from the mobile client consumer approach to the mobile service hosting approach is insufficiently studied. With the advancement of storage and processing capabilities of these devices, coupled with the high availability of the Web, this research focuses on the use of the mobile devices as hosts of WS in a mHealth domain. In this paper, a cloud-centric middleware technique is employed to enable access to the mobile hosts. The paper presents mobile hosting of medical data which are modeled as light-weight WS which is deployed in a real-world system. Further, a workflow authorization model is proposed to ensure privacy and the prevention of unauthorized modification of data on the mobile hosts. A data encryption technique is also put forward to enforce security and privacy of the mobile hosted data. Our current implemented project, called SOPHRA, supports mobile communication over HTTP in a Wi-Fi environment.','Personal and Ubiquitous Computing',1,'Richard K. LomoteyRalph Deters','springer/soa security.csv','springer','\0'),(1474,'Facilitating Adoption of International Information Infrastructures: A Living Labs Approach','2013','0',' Data quality supply chains public-private information infrastructures living labs','Abstract One of the key challenges that governments face in supervising international supply chains is the need for improving the quality of data accompanying the logistics flow. In many supply chains, individual parties in the chain work with low quality data for their operations and compliance, even though somewhere in the supply chain, better data is available. In the European CASSANDRA project, ICT-supported information infrastructures are developed to exchange data between businesses and government, to support visibility on the supply chain and the re-use of information. However, to gain better data, actors need to be open about their operations, processes and systems to parties that are geographically and culturally on the other side of the world. This adds (perceived) vulnerabilities for parties already operating in a highly competitive environment. This could be a major barrier for making the innovation work. We argue that Living Labs, as a collaborative innovation approach, are able to support the adoption of innovative information infrastructures. They help identifying gains that innovations may bring. Furthermore, the trust-based setting also mitigates the added (perceived) vulnerability such innovations bring for the participants. We illustrate this by examples from the CASSANDRA Living Labs.','',1,'Bram KlievinkInge Lucassen','springer/service oriented architecture security.csv','springer','\0'),(1475,'Distributed applications management platform based on Service Component Architecture','2012','6','','The increasing complexity in current distributed embedded systems (DES) makes its design a hard task that involves several aspects like distribution middleware selection, QoS support, implementation language selection, application dynamic reconfiguration or application deployment and maintenance. These design considerations must provide a solution to non functional requirements that distributed applications nowadays demand (e.g. Hardware heterogeneity, real time requirements, energy constraints, security, safety or fault tolerance). This paper proposes a management platform for distributed component based applications that follow the SCA (Service Component Architecture) standard. This platform provides several functionalities that range from application deployment and life cycle control to QoS and fault tolerance support.','Proceedings of 2012 IEEE 17th International Conference on Emerging Technologies & Factory Automation (ETFA 2012)',1,'A. Agirre; M. Marcos; E. Estévez','ieee/service oriented architecture security.csv','ieee','\0'),(1476,'Limitations of Web Service Security on SOAP Messages in a Document Production Workflow Environment','2008','1','','Web service security is one of the important areas of research both in industry as well as in academia. SOAP messages with XML signatures under Web service security specification provide secure message exchange solutions in SOA based applications. Recent researches established that the solutions based on the specification have several limitations. XML rewriting attacks on SOAP messages exposed the vulnerability of SOAP messages and different solutions are proposed to counter the attacks. In the present paper we expose few other limitations of Web service security in providing end-to-end integrity, specially part integrity and reuse issues, of multiple signed messages in a SOAP message in a document production workflow environment. The present paper also discusses the consequences of the limitation and establishes that it is not possible to address these issues at message level. It also proposes a solution in BPEL process level using a special protocol.','Advanced Computing and Communications, 2008. ADCOM 2008. 16th International Conference on',2,'S. K. Sinha; S. Sinha','ieee/bpel security.csv','ieee','\0'),(1477,'Quantitative evaluation of model consistency evolution in compositional service-oriented simulation using a connected hyper-digraph','2014','0','Key words Model consistency evolution Factor quantification analysis Connected hyper-digraph Formal methods Compositional service-oriented simulation CLC number TP391.9','Abstract Appropriate maintenance technologies that facilitate model consistency in distributed simulation systems are relevant but generally unavailable. To resolve this problem, we analyze the main factors that cause model inconsistency. The analysis methods used for traditional distributed simulations are mostly empirical and qualitative, and disregard the dynamic characteristics of factor evolution in model operational running. Furthermore, distributed simulation applications (DSAs) are rapidly evolving in terms of large-scale, distributed, service-oriented, compositional, and dynamic features. Such developments present difficulty in the use of traditional analysis methods in DSAs, for the analysis of factorial effects on simulation models. To solve these problems, we construct a dynamic evolution mechanism of model consistency, called the connected model hyper-digraph (CMH). CMH is developed using formal methods that accurately specify the evolutional processes and activities of models (i.e., self-evolution, interoperability, compositionality, and authenticity). We also develop an algorithm of model consistency evolution (AMCE) based on CMH to quantitatively and dynamically evaluate influencing factors. Experimental results demonstrate that non-combination (33.7% on average) is the most influential factor, non-single-directed understanding (26.6%) is the second most influential, and non-double-directed understanding (5.0%) is the least influential. Unlike previous analysis methods, AMCE provides good feasibility and effectiveness. This research can serve as guidance for designers of consistency maintenance technologies toward achieving a high level of consistency in future DSAs.','Journal of Zhejiang University SCIENCE C',1,'Lin-jun FanYun-xiang LingXing-tao ZhangJun Tang','springer/soa security.csv','springer','\0'),(1478,'An Architecture for Dynamic Web Service Provisioning Using Peer-to-Peer Networks','2013','2',' Peer-to-Peer UDDI SOA Web Services Grid Computing Virtual Organization Virtual Market Place','Abstract Grid computing has made it possible for users to create complex applications by combining globally distributed data and analysis components and deploy them on geographically distributed resources for execution. Introduction of ad-hoc Virtual Organizations based on on-demand service provisioning further enhances this architectural concept. Job-based paradigms or reliance on relatively static UDDI lead to a failure in offering the complete dynamism of a heterogeneous distributed Grid. A possible alternative is the use of dynamic peer-to-peer (P2P) techniques within a Web Service based Grid to introduce the ability of the network to adapt to resource volatility already established in P2P-based content-delivery models. In this paper, we present the architecture of a demand-driven Web Service deployment framework that allows sharing of data and computing capacity using P2P technology as its backbone. We focus on various issues such as resource availability, scalability and abstraction. Demand-driven resource allocation is based on request parameters and availability of the resources to create the basis for a fully dynamic virtual market place of computational resources.','',1,'Sujoy MistryDibyanshu JaiswalSagar ViraniArijit MukherjeeNandini Mukherjee','springer/service oriented architecture security.csv','springer','\0'),(1479,'On Patterns for Decentralized Control in Self-Adaptive Systems','2013','14','','Abstract Self-adaptation is typically realized using a control loop. One prominent approach for organizing a control loop in self-adaptive systems is by means of four components that are responsible for the primary functions of self-adaptation: Monitor, Analyze, Plan, and Execute, together forming a MAPE loop. When systems are large, complex, and heterogeneous, a single MAPE loop may not be sufficient for managing all adaptation in a system, so multiple MAPE loops may be introduced. In self-adaptive systems with multiple MAPE loops, decisions about how to decentralize each of the MAPE functions must be made. These decisions involve how and whether the corresponding functions from multiple loops are to be coordinated (e.g., planning components coordinating to prepare a plan for an adaptation). To foster comprehension of self-adaptive systems with multiple MAPE loops and support reuse of known solutions, it is crucial that we document common design approaches for engineers. As such systematic knowledge is currently lacking, it is timely to reflect on these systems to: (a) consolidate the knowledge in this area, and (b) to develop a systematic approach for describing different types of control in self-adaptive systems. We contribute with a simple notation for describing interacting MAPE loops, which we believe helps in achieving (b), and we use this notation to describe a number of existing patterns of interacting MAPE loops, to begin to fulfill (a). From our study, we outline numerous remaining research challenges in this area.','',1,'Danny WeynsBradley SchmerlVincenzo GrassiSam MalekRaffaela MirandolaChristian PrehoferJochen WuttkeJesper AnderssonHolger GieseKarl M. Göschka','springer/service oriented architecture security.csv','springer',''),(1480,'Integrated security infrastructures for law enforcement agencies','2015','1',' Law enforcement agency (LEA) Public key infrastructure (PKI) Virtual private network (VPN) INDECT block cipher (IBC) X.509 certificates Smart card (SC) Federated identity management Transport layer security (TLS)','Abstract This paper provides an overview of the security architecture for Law Enforcement Agencies (LEAs) designed by the INDECT project, and in particular the security infrastructures that have been deployed so far. These security infrastructures can be organized in the following main areas: Public Key Infrastructure (PKI) and user management, communications security, and new cryptographic algorithms. This paper presents the new ideas, architectures and deployed testbeds for these areas. In particular, it explains the inner structure of the INDECT PKI employed for federated identity management, the different technologies employed in the VPN testbed, the INDECT Block Cipher (IBC) – a novel cryptographic algorithm that has being integrated into OpenSSL library, and how IBC-enabled TLS/SSL sessions and X.509 certificates are employed to protect INDECT applications. All proposed mechanisms have been designed to work in an integrated fashion as the security foundation of all systems being developed by the INDECT project for LEAs.','Multimedia Tools and Applications',1,'Nikolai StoianovManuel UrueñaMarcin NiemiecPetr MachnikGema Maestro','springer/service oriented architecture security.csv','springer',''),(1481,'Automated Validation of Security-Sensitive Web Services Specified in BPEL and RBAC','2010','1','','We formalize automated analysis techniques for the validation of web services specified in BPEL and a RBAC variant tailored to BPEL. The idea is to use decidable fragments of first-order logic to describe the state space of a certain class of web services and then use state-of-the-art SMT solvers to handle their reach ability problems. To assess the practical viability of our approach, we have developed a prototype tool implementing our techniques and applied it to a digital contract signing service inspired by an industrial case study.','Symbolic and Numeric Algorithms for Scientific Computing (SYNASC), 2010 12th International Symposium on',2,'A. Calvi; S. Ranise; L. Vigano','ieee/bpel security.csv','ieee','\0'),(1482,'Semantic web technologies for video surveillance metadata','2012','3',' Video surveillance system Semantic web technologies Multimedia standards Reasoning Video analytics','Abstract Video surveillance systems are growing in size and complexity. Such systems typically consist of integrated modules of different vendors to cope with the increasing demands on network and storage capacity, intelligent video analytics, picture quality, and enhanced visual interfaces. Within a surveillance system, relevant information (like technical details on the video sequences, or analysis results of the monitored environment) is described using metadata standards. However, different modules typically use different standards, resulting in metadata interoperability problems. In this paper, we introduce the application of Semantic Web Technologies to overcome such problems. We present a semantic, layered metadata model and integrate it within a video surveillance system. Besides dealing with the metadata interoperability problem, the advantages of using Semantic Web Technologies and the inherent rule support are shown. A practical use case scenario is presented to illustrate the benefits of our novel approach.','Multimedia Tools and Applications',1,'Chris PoppeGaëtan MartensPieterjan De PotterRik Van de Walle','springer/webservice security.csv','springer','\0'),(1483,'Motion/imagery secure cloud enterprise architecture analysis','2012','','cloud; distributed enterprise, openstack, openflow; media; Motion imagery and persistent surveillance; secure','Cloud computing with storage virtualization and new service-oriented architectures brings a new perspective to the aspect of a distributed motion imagery and persistent surveillance enterprise. Our existing research is focused mainly on content management, distributed analytics, WAN distributed cloud networking performance issues of cloud based technologies. The potential of leveraging cloud based technologies for hosting motion imagery, imagery and analytics workflows for DOD and security applications is relatively unexplored. This paper will examine technologies for managing, storing, processing and disseminating motion imagery and imagery within a distributed network environment. Finally, we propose areas for future research in the area of distributed cloud content management enterprises. © 2012 Copyright Society of Photo-Optical Instrumentation Engineers (SPIE).','',1,'DeLay J.L.','scopus/service oriented architecture security.csv','scopus','\0'),(1484,'Optimised Realistic Test Input Generation Using Web Services','2012','0','','Abstract We introduce a multi-objective formulation of service-oriented testing, focusing on the balance between service price and reliability. We experimented with NSGA-II for this problem, investigating the effect on performance and quality of composition size, topology and the number of services discovered. For topologies small enough for exhaustive search we found that NSGA-II finds a pareto front very near (the fronts are a Euclidean distance of ~0.00024 price-reliability points apart) the true pareto front. Regarding performance, we find that composition size has the strongest effect, with smaller topologies consuming more machine time; a curious effect we believe is due to the influence of crowding distance. Regarding result quality, our results reveal that size and topology have more effect on the front found than the number of service choices discovered. As expected the price-reliability relationship (logarithmic, linear, exponential) is replicated in the front discovered when correlation is high, but as the price-reliability correlation decreases, we find fewer solutions on the front and the front becomes less smooth.','',2,'Mustafa BozkurtMark Harman','springer/bpel security.csv','springer','\0'),(1485,'Extending generic BPM with computer vision capabilities','2016','','BPM; BPMN; Computer vision; Modelling','Leveraging Business Process Management (BPM) is key to enabling business agility in organizations. Video analysis is a nascent technology that allows for innovative sensing and understanding of a large family of tasks across many diverse application domains. This includes interactions between persons, objects, and the environment in domains such as Healthcare and Retail, as well as more general activities (e.g., in video-surveillance or Transportation). It can, therefore, enable better BPM by giving the opportunity to augment, complement, and improve the observation, description, monitoring, triggering, and execution of a broad array of tasks, including new ones that can only be described visually. This may be of particular interests in cyber-physical systems where interactions between human agents and artificial agents can be tracked and managed in the context of various business processes. This paper proposes a way to integrate video data and analysis into the control flow of business processes, in a way that enables the seamless augmentation of business process execution with information from the observable environment. © Springer-Verlag Berlin Heidelberg 2016.','',2,'Mos A., Gaidon A., Vig E.','scopus/bpmn security.csv','scopus',''),(1486,'An enterprise security architecture for accessing SaaS cloud services with BYOD','2015','1','BYOD; BYOS; Cloud sprawl; Mobile device management; SABSA security architecture; Smartphone','In contemporary times IT plays a major role in enterprises\' business processes. Companies pursue the adoption of new technological trends in order to improve their business in terms of both performance and efficiency so that they can keep up with the fierce market competition. However, the emergence of cloud computing technology and the opportunity for employees to work using their personal smart phones through the adoption of Bring your own Device (BYOD) policies introduce additional risk for the enterprise. In this paper we propose an enterprise information security architecture for accessing SaaS cloud services by Smartphone BYOD. This architecture is based on the SABSA security architecture framework, which consists of the hardware, software and service-oriented security components that can reduce the aforementioned risks to acceptable levels. © 2014 IEEE.','',1,'Samaras V., Daskapan S., Ahmad R., Ray S.K.','scopus/service oriented architecture security.csv','scopus',''),(1487,'A Negative Input Space Complexity Metric as Selection Criterion for Fuzz Testing','2015','0',' Security testing Risk-based testing Fuzz testing Security metrics','Abstract Fuzz testing is an established technique in order to find zero-day-vulnerabilities by stimulating a system under test with invalid or unexpected input data. However, fuzzing techniques still generate far more test cases than can be executed. Therefore, different kinds of risk-based testing approaches are used for test case identification, selection and prioritization. In contrast to many approaches that require manual risk analysis, such as fault tree analysis, failure mode and effect analysis, and the CORAS method, we propose an automated approach that takes advantage of an already shown correlation between interface complexity and error proneness. Since fuzzing is a negative testing approach, we propose a complexity metric for the negative input space that measures the boundaries of the negative input space of primitive types and complex data types. Based on this metric, the assumed most error prone interfaces are selected and used as a starting point for fuzz test case generation. This paper presents work in progress.','',1,'Martin A. SchneiderMarc-Florian WendlandAndreas Hoffmann','springer/service oriented architecture security.csv','springer',''),(1488,'An Attribute-Role Based Access Control Mechanism for Multi-tenancy Cloud Environment','2015','2',' Multi-tenancy Cloud computing Role-based access control Authorization Attribute','Abstract Because of the rapid development of software technology, many enterprises require more high-performance hardware to enhance their competitiveness. Cloud computing is the result of distributed computing, grid computing and is gradually being seen as the future solution to the companies. Cloud computing can virtualize existing software and hardware to reduce costs. Thus, enterprises only require high Internet bandwidth and devices to access cloud service on the Internet. This would decrease many overhead costs and reduce IT staff requirement. A cloud environment provider provides many companies to rent a cloud service simultaneously in the provider’s cloud, the technology is named multi-tenancy cloud service. However, how to access resource safely is an important topic if user want to adopt multi-tenancy cloud computing technology. The cloud-computing environment is vulnerable to network-related attacks. This research uses role-based access control authorization mechanism concept and combines it with attribute based access control to determine which tenant that user can access. The enhanced authorization mechanism can improve the safety of cloud computing services and protected the data secret.','Wireless Personal Communications',1,'Nai Wei LoTa Chih YangMing Huang Guo','springer/service oriented architecture security.csv','springer',''),(1489,'Using aspects for security engineering of Web service compositions','2005','20','','Web Service composition languages promise a cheap and effective means for application integration over the Internet as in typical B2B interaction scenarios. BPEL is the upcoming standard for Web Service composition and several implementations of it are already available. However, for Web Service composition languages to keep their promises it is essential to provide more support for security. Companies will embrace Web Service composition languages only if their requirements of confidentiality, integrity, authentication, etc. are fulfilled. In this paper, we look at security in Web Services compositions and present a framework for securing BPEL compositions using WS-Security and WS-Policy. The main components of our framework are the process container implemented by a set of aspects in AO4BPEL, an aspect-oriented extension to BPEL, the security service and the deployment descriptor. We also introduce the notion of policy-based process deployment to check the compatibility of the security policies of the composition and its partners at deployment time.','IEEE International Conference on Web Services (ICWS\'05)',2,'A. Charfi; M. Mezini','ieee/bpel security.csv','ieee',''),(1490,'Component-based information service platform for heating industry','2014','','Business p rocess; Heating; Information integration; Service platform; SOA','To solve the problem of low information integration for heating industry, a framework of information service platform is proposed. The framework realizes information sharing and integration control of central heating. Four core components are designed to implement process development, service collaboration, publish/subscribe and event rule. A heating management system has been designed based on these components, which realizes intelligent and security of the production management. And three application subsystems have been developed to realize heating maintenance service, multi-level alarm service and heating charging service. The information service platform effectively achieves information integration and rapid service development. © 2014 IEEE.','',1,'Hu G., Wu B., Cheng B., Chen J.','scopus/soa security.csv','scopus','\0'),(1491,'Taming the Cloud: Safety, Certification and Compliance for Software Services','2012','0','','Abstract The maturity of IT processes, such as software development, can be and is often certified. Current trends in the IT industry suggest that software systems in the future will be very different from their counterparts today, with an increasing adoption of the Service-Oriented Architecture (SOA) design pattern and the deployment of Software-as-a-Service (SaaS) on Cloud infrastructures. In this talk we discuss some issues surrounding engineering Software Services for Cloud infrastructures and highlight the need for enhanced control, service-level agreement and compliance mechanisms for Software Services. Cloud Infrastructures and Service Mash-ups.','',2,'Howard FosterGeorge Spanoudakis','springer/bpel security.csv','springer','\0'),(1492,'Model-Driven Middleware Support for Team-Oriented Process Management','2013','0','','Abstract Management of collaborative processes involving multiple parties is one of the dominant topics in contemporary information system research. While the process perspective is quite well understood and supported by a wide range of modeling approaches, it is necessary to go beyond the process perspective alone. We specifically address the following question: If we consider the involved parties of a collaborative process as a team , then (1) which are the general formation rules for such a team together with the collaborative process it carries out and (2) to which concrete underlying organizational structure do these rules apply? To address this question, we present the organizational modeling approach Sonar . The accompanying models are rather high-level and illustrative but at the same time they are rich enough in order to generate executable models and other kinds of code that together form the core of a middleware implementation for team-oriented process management.','',2,'Matthias Wester-EbbinghausMichael Köhler-Bußmeier','springer/bpel security.csv','springer','\0'),(1493,'Big Data in product lifecycle management','2015','19',' Big Data Manufacturing Product lifecycle management Potential application','Abstract Recently, “Big Data” has attracted not only researchers’ but also manufacturers’ attention along with the development of information technology. In this paper, the concept, characteristics, and applications of “Big Data” are briefly introduced first. Then, the various data involved in the three main phases of product lifecycle management (PLM) (i.e., beginning of life, middle of life, and end of life) are concluded and analyzed. But what is the relationship between these PLM data and the term “Big Data”? Whether the “Big Data” concept and techniques can be employed in manufacturing to enhance the intelligence and efficiency of design, production, and service process, and what are the potential applications? Therefore, in order to answer these questions, the existing applications of “Big Data” in PLM are summarized, and the potential applications of “Big Data” techniques in PLM are investigated and pointed out.','The International Journal of Advanced Manufacturing Technology',1,'Jingran LiFei TaoYing ChengLiangjin Zhao','springer/soa security.csv','springer',''),(1494,'A Reusable Automated Acceptance Testing Architecture for Microservices in Behavior-Driven Development','2015','0','executable automated acceptance testing; Gherkin; functional testing; behavior-driven development; microservice','Cloud Computing and Mobile Cloud Computing are reshaping the way applications are being developed and deployed due to their unique needs such as massive scalability, guaranteed fault tolerance, near zero downtime, etc. and also daunting challenges such as security, reliability, continuous deployment and update capability. Microservices architecture, where application is composed of a set of independently deployable services, is increasingly becoming popular due to its capability to address most of these needs and challenges. In recent years, the Behavior-Driven Development (BDD) has become one of the most popular agile software development processes, and frequently used in microservices development. The key to success of BDD is the executable acceptance tests that describe the expected behavior of a feature and its acceptance criteria in the form of scenarios using simple and business people readable syntax. The reusability, auditability, and maintainability become some of the major concerns when BDD test framework is applied for each microservice repository and no previous research addresses these concerns. In this paper, we present a reusable automated acceptance testing architecture to address all these concerns.','Service-Oriented System Engineering (SOSE), 2015 IEEE Symposium on',1,'M. Rahman; J. Gao','ieee/microservice security.CSV','ieee',''),(1495,'A High Performance Web-Based System for Analyzing and Visualizing Spatiotemporal Data for Climate Studies','2013','3',' Big Data CyberGIS Online Visual Analytics Computing Optimization','Abstract Large amount of data are produced at different spatiotemporal scales by many sensors observing Earth and model simulations. Although advancements of contemporary technologies provide better solutions to access the spatiotemporal data, it is still a big challenge for researchers to easily extract information and knowledge from the data due to the data complexities of high dimensions, heterogeneity, distribution, large amount and frequently updating. This is especially true in climate studies, because climate data with coverage of the entire Earth and a long time period (such as 200 years) are often required to extract useful climate change information and patterns. A well-developed online visual analytical system has the potential to provide an efficient mechanism to bridge this gap. Using performance improving techniques for an online visual analytical system, we researched and developed a high performance Web-based system for spatiotemporal data visual analytics includes the following components: 1) a Spatial Data Registration Center for managing the big spatiotemporal data and enabling researchers to focus on analyses without worrying about data related issues such as format, management and storage; 2) a workflow for pre-generating and caching frequently requested data to reduce the server response time; and 3) a technique of “single data fetch, multiple analyses” to reduce both server response time and client response time; Finally, we demonstrate the effectiveness of the prototype through a few use cases.','',1,'Zhenlong LiChaowei YangMin SunJing LiChen XuQunying HuangKai Liu','springer/service oriented architecture security.csv','springer','\0'),(1496,'Introducing domain-specific language implementation using web service-oriented technologies','2012','2','Domain-specific languages; service-oriented architecture','Several advantages have been documented that suggest Domain-Specific Languages (DSLs) have the potential to improve productivity, reliability, maintainability and portability in some specialized domains. However, several key challenges still remain. In particular, the extension and evolution of both DSL syntax and semantics still suffer due to the limitations related to the current state-of-the-art implementation techniques. Such techniques also lack interoperable capabilities among base languages and limited tool support. As changes of domain concepts are omnipresent and more base languages may support DSL implementation, the aforementioned limitations may be no longer tolerable, and hence a new implementation technique to DSL development is desired. This paper implements six DSL case studies (representing imperative, declarative and hybrid categories) to validate the feasibility of utilizing Service-Oriented Architecture (SOA) for DSL implementation. Such case studies also highlight that the advantages of SOA (i.e., ease of evolution/extension, interoperability and tool support) can be retained under the context of DSL development. The paper concludes with the discussion of additional findings, both positive and negative: the SOA-based approach improves modularization at the lexical, syntactical and semantic levels and delegates tokenization/parsing to the underlying WS-BPEL engine; yet, the usability, resource utilization, security, and flexibility of the SOA-based DSLs are degraded, which requires more future work in this unique area that spans SOA and DSLs. © 2011 - IOS Press and the authors. All rights reserved.','',2,'Liu S.-H., Cardenas A., Mernik M., Bryant B.R., Gray J., Xiong X.','scopus/bpel security.csv','scopus','\0'),(1497,'Efficient Workload Distribution Bridging HTC and HPC in Scientific Computing','2012','3','','Abstract GriF is a Workflow Management System designed to support users of the Molecular and Materials Sciences and Technologies COMPCHEM Virtual Organization. In particular, GriF manages the results of the parameter sweeping studies submitted to the Grid. This service has been recently extended to implement seamless access to both High Performance and High Throughput Computing architectures. To this end, the Workflow execution is splitted into single blocks whose execution is most suited to one or the other platform. This has been obtained by implementing a communication channel allowing interoperability between the gLite middleware operating on the Italian Grid Initiative segment accessible to COMPCHEM and the software stack operating on the CINECA machines. As a prototype application a high level ab initio calculation of the potential energy surface of few atom system has been implemented.','',1,'Carlo ManualiAlessandro CostantiniAntonio LaganàMarco CecchiAntonia GhiselliMichele CarpenéElda Rossi','springer/service oriented architecture security.csv','springer','\0'),(1498,'A Survey of Journey of Cloud and Its Future','2015','0','API (Application Programming Interface);CSP (Cloud Service Provider);Cloud Computing;DC (Data-centers);PAAS (Platform as a Service);SAAS (Software as a Service);SOA (Service-Oriented Architecture);TC (Telecommunications Closet);Virtualization;and','Cloud computing in the past few years has grown from a promising business idea to one of the fastest growing field of the IT industry. Still the IT organization is concern about critical issues (like security, data loss) existing with the implementation of cloud computing, related to security in particular. Consequently issues arise due to client switching to cloud computing. This paper briefs about the role of cloud in IT business enterprise, its woes and its projected solutions. It proposes the use of \"Honey-Comb Infrastructure\" for flexible, secure and reliable storage supported by parallel computing.','Computing Communication Control and Automation (ICCUBEA), 2015 International Conference on',1,'K. Shekanayaki; A. Chakure; A. Jain','ieee/service oriented architecture security.csv','ieee',''),(1499,'Construction of Messaging-Based Enterprise Integration Solutions Using AI Planning','2012','0',' Enterprise Application Integration Enterprise Integration Patterns Messaging Action-Based Planning STRIPS-like Planning','Abstract This paper presents a novel method of using action-based planning for construction of enterprise integration solutions that utilize messaging technologies. More specifically, the presented method is able to generate a sequence of processing steps needed to transform input message flow(s) to specified output message flow(s), taking into account requirements in areas of throughput, availability, service monitoring, message ordering, and message content and format conversions. The method has been implemented as a research prototype. It has been evaluated using scenarios taken from the literature as well as from real-world experience of the authors.','',2,'Pavol MederlyMarián LekavýMarek ZávodskýPavol Návrat','springer/bpmn security.csv','springer','\0'),(1500,'Specifying business process outsourcing requirements','2016','','Bpmn extension; Business process outsourcing; Cloud computing; Genetic algorithm','Outsourcing enterprises’ data, business processes and applications to the Cloud is emerging as a major trend thanks to the Cloud offerings and features. Basically, enterprises expect when outsourcing to save cost, improve software and hardware performance and gain more flexibility by responding to the dynamic customers’ requirements. However, adopting the Cloud as an alternative environment for the management of the business processes leads to a radical change in the enterprise IT infrastructure. Furthermore, additional challenges may appear such as data security, vendor-lock-in and labor union rendering the outsourcing decision require a deep analysis and knowledge about the business processes context. Assisting enterprises’ experts in the business process outsourcing to the Cloud decision is the focus of this paper: it extends the BPMN 2.0 language to explicitly support the specification of outsourcing concepts, and it presents an automated approach to help decision makers identify those parts of their business process that benefit most from outsourcing to the Cloud. Using this extension helps also in identifying Cloud services considered as the most suitable to support the outsourced business process requirements. © Springer International Publishing Switzerland 2016.','',2,'Rekik M., Boukadi K., Ben-Abdallah H.','scopus/bpmn security.csv','scopus',''),(1501,'Multimedia on the web - editorial','2014','0','','','Multimedia Tools and Applications',1,'Florian StegmaierHarald KoschRalf KlammaMathias LuxErnesto Damiani','springer/service oriented architecture security.csv','springer','\0'),(1502,'A Coloured Petri Net Approach to the Functional and Performance Analysis of SIP Non-INVITE Transaction','2014','0',' SIP Coloured Petri nets Protocol verification Functional analysis Performance analysis','Abstract With the increasing popularity of Voice over IP, the Session Initiation Protocol (SIP), a protocol for session creation and management, has become more and more important. This paper is focused on SIP non-INVITE transaction (NIT) and analyzes its functional correctness and performance. We firstly propose an extension to a Coloured Petri Net (CPN) based protocol verification methodology with a performance analysis component. Following the extended methodology, CPN models for NIT are created, verified and simulated. Functional verification shows that NIT contains no livelock and dead code, but it is not free of deadlock. Simulation analysis indicates that channel loss has a signifcant impact on bandwidth consumption by NIT, and when channel loss rate is less than 20 %, the delay by the server generating its final response has great influence on NIT performance. The outcome of this research also demonstrates the effectiveness of CPN for both functional and performance analysis of network protocols.','',1,'Junxian LiuLin Liu','springer/service oriented architecture security.csv','springer','\0'),(1503,'Proceedings - 2012 5th IEEE International Conference on Service-Oriented Computing and Applications, SOCA 2012','2012','','','The proceedings contain 47 papers. The topics discussed include: virtual disaster management information repository and applications based on linked open data; bridging the heterogeneity of orchestrations - a Petri net-based integration of BPEL and windows workflow; performance evaluation of a massively parallel ESB-oriented architecture; adaptive load shedding via fuzzy control in data stream management systems; pattern-based process discovery; a rule-based approach for dynamic adaptation of service flow; cost-driven service provisioning in hybrid clouds; selecting the right mobile app paradigms; revenue maximization with quality assurance for CompositeWeb services; eventlets: components for the integration of event streams with SOA; a fuzzy approach for ranking adaptation strategies in CLAM; and security measurement in service-based computing systems.','',2,'[No author name available]','scopus/bpel security.csv','scopus','\0'),(1504,'Container-level security certification of services','2012','1','','The increasing success of the Service-Oriented Architecture (SOA) paradigm has fostered the implementation of complex services, including business processes, via dynamic selection and composition of remote services providing single functionality. Run-time selection and composition of services require the deployment of high-level security standards for the SOA infrastructure, to increase the confidence of both service consumers and providers that the services satisfy their security requirements and behave as expected. In this context, certification can play a fundamental role and provide the evidence that a set of properties hold for a given service. Security certification of services can involve two different aspects: i) the evaluation of the container in which the service is deployed, in terms of compliance with web service security standards and policies; ii) the verification and validation of the service implementation. In this chapter, we focus on the first aspect and we propose an overview of container-level certification of services. © 2012 Springer-Verlag.','',1,'Anisetti M., Ardagna C.A., Damiani E.','scopus/service oriented architecture security.csv','scopus','\0'),(1505,'Layering of the Provenance Data for Cloud Computing','2013','0','','Abstract With the recent advancements in distributed systems, Cloud computing has emerged as a model for enabling convenient, on-demand network access to a shared resource pool of configurable elements such as (networks, servers, storage, applications, and services). Various applications are developed and deployed into the Cloud following the layered architecture. The layered approach includes infrastructure, virtualization, application, platform and client tiers. Provenance (the meta-data), is the information that helps cloud providers and users to determine the derivation history of a data product, starting from its origin. Each layer in the Cloud has its own provenance data and generally, provenance data for each layer address different audience. For example, Cloud providers are interested in the infrastructure provenance data to verify the high utilization of resources through audit trials. Cloud users on the other hand are interested in the performance of the deployed application and the verification of experiments. In this paper, we present various queries regarding the provenance data for different layers of Cloud. Hereby, we integrate the provenance data from individual layers and highlight the importance of integrated provenance. We also outline the relationship between various layers of the Cloud by using the integrated provenance.','',1,'Muhammad ImranHelmut Hlavacs','springer/service oriented architecture security.csv','springer','\0'),(1506,'Detecting vulnerabilities in Service Oriented Architectures','2012','','Benchmarking; Security; SOA; Vulnerabilities; Vulnerability detection; Web services','The adoption of Service Oriented Architectures (SOAs) in a wide range of organizations, including business-critical systems, opens the door to new security challenges. Although the services used should be secure and reliable, they are often deployed with security bugs that can be maliciously exploited. The problem is that developers are frequently not specialized on security and the common time-to-market constraints limits an in depth test for vulnerabilities. Additionally, research and practice shows that the effectiveness of existing vulnerability detection tools is very poor. The goal of this work is to advance the state-of-the-art by investigating new techniques and tools to effectively detect vulnerabilities in SOAs in an automated manner. Instrumental in this work is to propose a benchmarking approach that allows assessing and comparing vulnerability detection tools, thus helping guiding tools development and improvement, and allowing users to select the most effective ones according to specific needs. © 2012 IEEE.','',1,'Antunes N., Vieira M.','scopus/service oriented architecture security.csv','scopus','\0'),(1507,'18th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, TACAS 2012 held as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2012','2012','','','The proceedings contain 48 papers. The special focus in this conference is on SAT and SMT Based Methods. The topics include: Quantitative models for a not so dumb grid; history-aware data structure repair using SAT; the guardol language and verification system; numeric bounds analysis with conflict-driven learning; Ramsey-based analysis of parity automata; a library for efficient manipulation of non-deterministic tree automata; LTL to buchi automata translation; pushdown model checking for malware detection; aspect-oriented runtime monitor certification; partial model checking using networks of labelled transition systems and boolean equation systems; from under-approximations to over-approximations and back; automated analysis of AODV using UPPAAL; modeling and verification of a dual chamber implantable pacemaker; counter-example guided fence insertion under TSO; java memory model-aware model checking; compositional termination proofs for multi-threaded programs; deciding conditional termination; the AVANTSSAR platform for the automated validation of trust and security of service-oriented architectures; reduction-based formal analysis of BGP instances; minimal critical subsystems for discrete-time markov models; automatic verification of competitive stochastic systems; coupling and importance sampling for statistical model checking; verifying pCTL model checking; parameterized synthesis; towards an open source framework for RTL design synthesis and verification; template-based controller synthesis for timed systems; an automated prover for properties of recursive data structures; a proof assistant for alloy specifications and reachability under contextual locking.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus','\0'),(1508,'A Flow Analysis Approach for Service-Oriented Architectures','2015','0','','Abstract The discipline of SOA (Service-oriented Architecture) provides concepts for designing the structural and behavioral aspects of application landscapes that rely on the interaction of self-contained services. To assess an architecture’s quality and validate its conformance to behavioral requirements, those models must be subjected to sophisticated static analyses. We propose a comprehensive methodology that relies on data flow analysis for a context-sensitive evaluation of service-oriented system designs. The approach employs a model-based format for SOA artifacts which acts as a uniform basis for the specification and execution of various analyses. Using this methodology, we implement two analyses which reveal blocking calls and assess performance metrics. These applications are evaluated in the context of two case studies that have been developed in the SENSORIA and the ENVIROFI projects.','',2,'Bernhard BauerMelanie LangermeierChristian Saad','springer/bpel security.csv','springer',''),(1509,'A Requirements-Based Model for Effort Estimation in Service-Oriented Systems','2014','0',' Software Engineering Service-oriented Computing Development Costs Estimation','Abstract Assessing the development costs of an application remains an arduous task for many project managers. Using new technologies and specific software architectures makes this job even more complicated. In order to help people in charge of this kind of work, we propose a model for estimating the effort required to implement a service-oriented system. Its starting point lies in the requirements and the specifications of the system-to-be. It is able to provide an estimate of the development effort needed. The latter is expressed in a temporal measurement unit, easily convertible into a monetary value. The model proposed takes into account the three types of system complexity, i.e., the structural, the conceptual and the computational complexity.','',1,'Bertrand VerlaineIvan J. JuretaStéphane Faulkner','springer/service oriented architecture security.csv','springer','\0'),(1510,'A semantic self-management approach for service platforms','2014','1','Autonomic Computing;Model Driven Architecture;Ontologies;Semantic Services;Service Level Management','Future personal living environments feature an increasing number of convenience-, health- and security-related applications provided by distributed services, which do not only support users but require tasks such as installation, configuration and continuous administration. These tasks are becoming tiresome, complex and error-prone. One way to escape this situation is to enable service platforms to configure and manage themselves. The approach presented here extends services with semantic descriptions to enable platform-independent autonomous service level management using model driven architecture and autonomic computing concepts. It has been implemented as a OSGi-based semantic autonomic manager, whose concept, prototypical implementation and evaluation are presented.','2014 IEEE Network Operations and Management Symposium (NOMS)',1,'J. Schaefer','ieee/service oriented architecture security.csv','ieee','\0'),(1511,'BPEL processes for non-repudiation protocols in Web services','2005','0','','The BPEL language formally specifies business processes and interaction protocols. Nonrepudiation is a serious security issue in business transactions where any involved party denies having participated in a transaction. We propose and verify novel nonrepudiation protocols for business transactions and specify them in BPEL. Our proposed protocols fulfil the requirements of security, fairness, and timeliness.','International Conference on Next Generation Web Services Practices (NWeSP\'05)',2,'M. Bilal; J. P. Thomas; P. Harrington; A. Abraham','ieee/bpel security.csv','ieee','\0'),(1512,'A systematic survey of service identification methods','2014','8',' Service-oriented architecture SOA Service identification method SIM Systematic survey','Abstract One of the major challenges for the adoption of the service-oriented architecture (SOA) is the service identification phase that aims to determine which services are appropriate to be implemented. In the last decade, several service identification methods (SIMs) were proposed. However, the service identification phase still remains a challenge to organizations due to the lack of systematic methods and comprehensive approaches that support the examination of the businesses from multiple perspectives and consider service quality attributes. This work aims to provide an overview of existing SIMs by detailing which service’s perspectives, stated as relevant by the industry, are addressed by the SIMs and also by synthesizing the identification techniques used by them. We have performed a systematic survey over publications about SIMs from 2002 to June 2013, and 105 studies were selected. A detailed investigation on the analyzed SIMs revealed that the identification techniques applied by them have a correlation on how they address many of the service’s perspectives. In addition, they are supporting the SOA adoption by handling many perspectives of the OASIS’ reference architecture for SOA. However, most of them do not explicitly address service quality attributes and few studies support the evaluation of both. Therefore, future research should follow the direction toward hybrid methods with mechanisms to elicit business and service’s quality attributes.','Service Oriented Computing and Applications',1,'Rosane S. HuergoPaulo F. PiresFlavia C. DelicatoBruno CostaEverton CavalcanteThais Batista','springer/soa security.csv','springer','\0'),(1513,'A Service Oriented life cycle model for Educational Information System','2012','1','Locator; Service oriented architecture; Web service','The Service Oriented model is developed and adopted by different organizations. The services are open and can be developed and consumed independently. The service life cycle needs to be consumed and updated dynamically in order to maintain the availability and the appropriateness of the services. The Second section of this paper describes the fundamentals of the SOA and the requirements of the security parameters with the same. The third section deals with the service life cycle model related to Educational Information System. The fourth section elaborates the functions of secured service lifecycle information model. The fifth section summarizes the results and the findings of the design and implementation. The conclusion indicates the main advantages of this model. Copyright 2012 ACM.','',1,'Kamatchi R.','scopus/service oriented architecture security.csv','scopus','\0'),(1514,'Situating COIN in the Cloud','2013','0','','Abstract We start from the view that the central theme of the research at the core of coordination, organization, institutions and norms, is whether the social structures and mechanisms, that have emerged over time, can be adapted and applied to artificial societies of programs and perhaps more significantly, to mixed societies of humans and programs –and how The means by which the social constraints that guide and regulate behaviour are acquired and represented remains an open problem. If recent experiences in information retrieval and natural language processing are plausible indicators, the statistical may yet oust the logical. Technology aside, it is clear that for socio-technical systems, that integrate human and software components, we may expect the adoption of, or the illusion of observation of, and support for human social conventions. The growing migration to cloud computing of the services that make up current pervasive, social applications suggests near-term developments emerging from the same platform(s). Thus, the question considered here is, what pathways, opportunities and challenges exist for the development, wider use and validation of COIN technologies to help realize socio-technical systems that better meet human requirements. As examples of specific enabling technologies, we review current developments in resource-oriented architecture, complex event processing and stream reasoning and observe how COIN technologies might integrate with them.','',1,'Julian Padget','springer/service oriented architecture security.csv','springer','\0'),(1515,'Automated deployment and Aggregated access control for SOA composite applications','2007','0','Integration and middleware technologies for management;Security management Policy and role based management;Service Onented Architecture and management;service deployment','Modeling, assembling, deploying and managing composite applications built using service oriented architectures (SOA) present many interesting challenges. Among these challenges, we consider two: service deployment and security management for access control. In this application session, these challenges are explored in the context of a prototype banking application: \"Jivaro\". The Jivaro prototype has features such as automated and configurable business processes using BPEL and manual tasks, multitenancy using virtual portals, and security using LDAP. We focus on two specific management pain points: 1. the difficulty in deploying multiple SOA components into multiple target middleware containers, and 2. inconsistency in access control policies for multi-tier applications. For addressing the deployment issues, we present a real-wo rid deployment scenario involving the use of ANT tasks and scripting interfaces. For addressing inconsistencies in access control policies, we present a solution using the XACML standard, a common authorization model developed as an extension of the Java authorization contract for containers and a common policy store and policy administration point. We compare and contrast current access control policies for J2EE containers and databases with the proposed new common authorization model. We also compare separate access control policy stores versus the proposed solution for a common store. Our aggregated role based authorization model provides consistent access control policies that complement single sign-on and identity propagation schemes. This model also touches upon issues surrounding role and policy based management, specifically regarding the potential of combining security policy administrator roles for different tiers.','2007 10th IFIP/IEEE International Symposium on Integrated Network Management',2,'I. Poddar; G. Goldszmidt','ieee/bpel security.csv','ieee','\0'),(1516,'Exploration of access control mechanisms for service-oriented network architecture','2015','1','Access control; Authorisation; Flexible network; Future internet; Security; Service-oriented network architecture; SONATE','The future network is expected to hosts much more than today\'s applications in an efficient manner but many flaws were found due to rigidity of the architecture. The researchers successfully developed many new flexible internet architectures to solve the infrastructural problems of the current internet. Service-oriented network architecture (SONATE) is one, which helps in supporting not only short-term demands but allows long-term demands that evolve. It offers various flexible services which bestow many issues of security. It is also envisioned that the security aspect needs to be embedded in the architecture because the major bottleneck in today\'s networking architecture is imparting the security provisions from outside the architecture. The authors discuss the need and importance for the development of access controls for the authenticated principals using a technique which is based on the role-based access and Mandatory access for the loosely coupled nature of the services. Copyright © 2015 Inderscience Enterprises Ltd.','',1,'Rudra B., Vyas O.P.','scopus/service oriented architecture security.csv','scopus',''),(1517,'RAFT-REST - A Client-Side Framework for Reliable, Adaptive and Fault-Tolerant RESTful Service Consumption','2013','2','','Abstract The client/server paradigm in distributed systems leads to multi-stakeholder architectures with messages exchanged over connections between client applications and services. In practice, there are many hidden obstacles for client developers caused by unstable network connections, unavailable or faulty services or limited connectivity. Even if many frameworks and middleware solutions have already been suggested as corrective, the rapid development of clients to (almost) RESTful services remains challenging, especially when mobile devices and wireless telecommunications are involved. In this paper we introduce RAFT-REST, a conceptual framework aimed at engineers of clients to RESTful services. RAFT-REST reduces the effort to achieve reliable, adaptive and fault-tolerant service consumption. The framework is applied and validated with ReSup, a fully implemented flavour for Java clients which run on the desktop and on Android mobile devices. We show that by using the framework, message loss can be reduced significantly with tolerable delay, which contributes to a higher quality of experience.','',1,'Josef SpillnerAnna UtlikThomas SpringerAlexander Schill','springer/service oriented architecture security.csv','springer','\0'),(1518,'A provenance auditing framework for cloud computing systems','2015','0','Auditing;Cloud computing;Provenance','Cloud computing is a service oriented paradigm that aims at sharing resources among a massive number of tenants and users. This sharing facility that it provides coupled with the sheer number of users make cloud environments susceptible to major security risks. Hence, security and auditing of cloud systems is of great relevance. Provenance is a meta-data history of objects which aid in verifiability, accountability and lineage tracking. Incorporating provenance to cloud systems can help in fault detection. This paper proposes a framework which aims at performing secure provenance audit of clouds across applications and multiple guest operating systems. For integrity preservation and verification, we use established cryptographic techniques. We look at it from the cloud service providers\' perspective as improving cloud security can result in better trust relations with customers.','Signal Processing, Informatics, Communication and Energy Systems (SPICES), 2015 IEEE International Conference on',1,'G. Meera; G. Geethakumari','ieee/service oriented architecture security.csv','ieee',''),(1519,'An (OPS-M)-based WDM-PON with functions of wavelength tri-reuse and all-sided fiber protection','2015','0',' Optical power splitter module Tri-reuse Orthogonal vector group Matrices Self-protection WDM-PON','Abstract In this paper, an optical power splitter module (OPS-M) and (OPS-M)-based WDM-PON are proposed. The symmetry and passivity of OPS-M makes it easy to integrate and dirt cheap in practice. It shows this OPS-M can be widely applied in an optical network. By utilizing the OPS-M, the wavelength tri-reuse is realized. At the same time, the coherent interference can also be eliminated due to cross-wavelength reuse. By introducing matrix operations and orthogonal vector group, the relations among wavelengths, optical network units and their services are shown clearly. By designing structure of ONU, feeder fiber and distributed fiber failures can be self-protected. Besides, the ONUs remain colorless and the system has passivity. By the simulation, feasibility of the scheme is demonstrated.','Photonic Network Communications',1,'Weilun XieChaoqin GanHaibin ChenSu GuoCuiping Ni','springer/soa security.csv','springer',''),(1520,'Authentication method in SWIM based on improved Diameter/EAP-MD5','2014','','Diameter protocol; Extensible authentication protocol (EAP); Identity authentication; Message-digest (MD) algorithm; System wide information management (SWIM)','System wide information management (SWIM) provides the civil aviation information exchange and data sharing function by using service-oriented architecture (SOA). Based on the analysis of SWIM architecture and the sub-protocol EAP-MD5 of Diameter, the security vulnerable of authenticating process in standard Diameter/EAP-MD5 is explored, the EAP-MD5 authentication protocol is improved, and the SWIM authentication service based on Diameter is studied, then the SWIM authentication method based on improved Diameter/EAP-MD5 protocol is proposed. Experiments on the security of SWIM authentication service based on Diameter are performed in SWIM simulation environment, results show that the improved Diameter/EAP-MD5 authentication method can enhance the security of SWIM authentication and guarantee SWIM security service.','',1,'Wu Z.-J., Zhao T., Lei J.','scopus/service oriented architecture security.csv','scopus','\0'),(1521,'A Formal Methodology for Modeling Threats to Enterprise Assets','2014','0',' Asset Formal Model Impact Likelihood of Occurrence Threat','Abstract Enterprises usually execute business processes with the help of Information Technology (IT) services which, in turn, are realized by IT assets. Enterprise IT assets contain vulnerabilities that can be exploited by threats to cause harm to business processes and breach security of information assets. Hence, detection of threats is crucial for ensuring business continuity and protection of enterprise information security. Existing threat detection mechanisms are limited in scope owing to absence of methodologies for modeling different categories of threats uniformly. This paper presents a formal methodology that can model diverse types of threats to enterprise assets. The methodology provides sufficient flexibility to enterprises for defining threshold values of threat parameters that suit their specific needs and help them to compute probability of occurrence of threats.','',1,'Jaya BhattacharjeeAnirban SenguptaChandan Mazumdar','springer/service oriented architecture security.csv','springer','\0'),(1522,'Social-QAS: Tailorable Quality Assessment Service for Social Media Content','2015','2',' Social media Information quality Tailoring End User Development Emergencies','Abstract More than 3 billion people use the Internet, many of whom also use social media services such as the social network Facebook with about 1.35 billion active users monthly or the microblogging platform Twitter numbering approximately 284 million active users monthly. This paper researches how a tailorable quality assessment service can assist the use of citizen-generated content from social media. In particular, we want to study how users can articulate their personal quality criteria appropriately. A presentation of related work is followed by an empirical study on the use of social media in the field of emergency management, focusing on situation assessment practices by the emergency services. Based on this, we present the tailorable quality assessment service (QAS) for social media content, which has been implemented and integrated into an existing application for both volunteers and the emergency services.','',1,'Christian ReuterThomas LudwigMichael RitzkatisVolkmar Pipek','springer/service oriented architecture security.csv','springer',''),(1523,'A conceptual SOA-based framework for e-Government Central Database','2012','1','Central Database;Database Replication;ESB;SOA;Web Services;e-Government','The Central Database is one of the core components in the Palestinian e-Government technical framework. The Central Database model lacks features such as: interoperability, flexibility, and manageability. The purpose of this paper is to propose a SOA based solution for the Central Database that achieves the above features.','Computer, Information and Telecommunication Systems (CITS), 2012 International Conference on',1,'R. S. Baraka; S. M. Madoukh','ieee/service oriented architecture security.csv','ieee','\0'),(1524,'Proposal of Movie CAPTCHA Method Using Amodal Completion','2012','0','amodal completion;captcha;webservice','Web services accounts have recently been automatically acquired in large quantities by bot-programs, which are malicious. Furthermore, the acquired accounts have been used for spamming, which is a problem for service operators or Internet users. Completely Automated Public Turing Tests To Tell Computers and Humans Apart (CAPTCHAs) have generally been adopted for Web Services as a method of preventing Web services accounts from being acquired. These are Turing tests for users of Web services to distinguish between humans and bot-programs. There are several types of methods in CAPTCHAs, but the most typical in this field are text-based. However, these methods can be decoded with a high degree of probability, because of the OCR technology that has evolved. Much research on resolving this problem has been proposed. For example, one method in this research adds distortion to characters to make it difficult to analyze them with OCR. Despite this research, OCR has a higher success rate than humans. Thus, we propose a practical method for CAPTCHA in this paper in which only humans can provide correct answers by applying a modal completion.','Applications and the Internet (SAINT), 2012 IEEE/IPSJ 12th International Symposium on',1,'T. Mori; R. Uda; M. Kikuchi','ieee/webservice security.csv','ieee','\0'),(1525,'Service Knowledge Discovery in Smart Machine Networks','2015','2',' Service discovery Machine to machine Ontology IPv6 Neighbor Discovery Semantics ICMPv6','Abstract The devices surrounding us become smarter and can autonomously form a network without requiring our intervention. However, our needs can be even better accommodated when the networked devices cooperate and complement each other’s capabilities. One of the initial steps towards achieving a cooperative platform of smart devices is the discovery of resources and capabilities within the network. Today’s operational service discovery protocols carry simple text-based uniform resource identifiers that are not expressive enough. Machines cannot comprehend the meaning of a new service that is not in their knowledge base. In addition to being more expressive, service discovery protocols must compensate the diversity to improve cooperation between the devices that use different application protocols and operate on different communication interfaces. In this paper, we propose the Smart Discovery Protocol (SDP) which outperforms the operational service discovery protocols with three main features: (1) more expressive semantic representation of the services, (2) operating in the network layer to deal with diversity, and (3) unifying existing service discovery protocols. SDP represents services with ontologies as some recently proposed semantic service discovery protocols. It further enhances the success of semantic representations by creating a unified platform that can carry legacy discovery services. In this respect, the novelties of SDP are as follows: firstly, it operates in the network layer and consequently abstracts both the application layer and communication interfaces. Secondly, SDP unifies the legacy service discovery protocols by integrating their simple text-based service representations in one message. The underlying transport mechanism of SDP is designed as an add-on to the Neighbor Discovery Protocol (NDP) of the IPv6 standard. The metadata is carried in the payload of ICMPv6 packets. Simple text-based representations of other service discovery protocols are embedded in type-length-value options of NDP. Authenticity of the devices is ensured by the IPv6 Secure Neighbor Discovery protocol. Unlike previous semantic approaches on service discovery, we have implemented our protocol on real hardware. The results demonstrate the feasibility of carrying semantic representations of the services and integration of other service discovery protocols.','Wireless Personal Communications',1,'Yunus DurmusErtan Onur','springer/soa security.csv','springer',''),(1526,'Design and implementation of an information destruction security service in mixed local area networks','2013','','','This paper focuses on the architecture of mixed LAN-oriented security service components firstly, and then expands each one of them by explaining its design and structural implementation. The novel developed service upgrades LAN security systems, wired mingled with wireless, allowing its software to run alongside with any malware detection program. The need to strenghten security services has led to a different approach of securing information, which represents one of the most stable and efficient processes given the nature of its basic procedure, destruction. To be practical, the interconnected components can be separated and then redeployed, being easily integrated into other security system, thus fitting the needs of diverse organization LANs. © 2013 IEEE.','',1,'Pachia M.','scopus/service oriented architecture security.csv','scopus','\0'),(1527,'Engineering Computational Service Grid: A Flexible Engineering Computational Environment Based on Grid Computing','2009','0','Flexible engineering computational environment;Grid portal;workflow','An ideal engineering computational environment for solving design problems should be flexible, which is characterized by helping designers to establish solution strategy conveniently and integrating design resources effectively. In this paper, a flexible engineering computational system called engineering computational service grid (ECSG) based on grid portal technology and workflow technology is presented, and the architecture of ECSG is described detailedly. For managing solution strategy of engineering computational job, the structure of BPEL (business process execution language) based workflow management subsystem is put forward, and an application scenario of ECSG is given. The research results aforementioned can clarify the functional system of engineering computational environment and provide an approach to constructing flexible engineering computational environment.','Computer Science and Information Engineering, 2009 WRI World Congress on',2,'W. Wang','ieee/bpel security.csv','ieee','\0'); +INSERT INTO `articles` VALUES (1528,'Holistic approach to design and implementation of a medical teleconsultation workspace','2015','','Collaboration; SOA; Teleconsultation; Telemedicine; Teleradiology; VO','While there are many state-of-the-art approaches to introducing telemedical services in the area of medical imaging, it is hard to point to studies which would address all relevant aspects in a complete and comprehensive manner. In this paper we describe our approach to design and implementation of a universal platform for imaging medicine which is based on our longstanding experience in this area. We claim it is holistic, because, contrary to most of the available studies it addresses all aspects related to creation and utilization of a medical teleconsultation workspace.We present an extensive analysis of requirements, including possible usage scenarios, user needs, organizational and security issues and infrastructure components. We enumerate and analyze multiple usage scenarios related to medical imaging data in treatment, research and educational applications - with typical teleconsultations treated as just one of many possible options. Certain phases common to all these scenarios have been identified, with the resulting classification distinguishing several modes of operation (local vs. remote, collaborative vs. non-interactive etc.).On this basis we propose a system architecture which addresses all of the identified requirements, applying two key concepts: Service Oriented Architecture (SOA) and Virtual Organizations (VO). The SOA paradigm allows us to decompose the functionality of the system into several distinct building blocks, ensuring flexibility and reliability. The VO paradigm defines the cooperation model for all participating healthcare institutions. Our approach is validated by an ICT platform called TeleDICOM II which implements the proposed architecture. All of its main elements are described in detail and cross-checked against the listed requirements. A case study presents the role and usage of the platform in a specific scenario. Finally, our platform is compared with similar systems described into-date studies and available on the market. © 2015.','',1,'Czekierda Ł., Malawski F., Wyszkowski P.','scopus/service oriented architecture security.csv','scopus',''),(1529,'Supporting Content, Context and User Awareness in Future Internet Applications','2012','7',' Future Internet Next Generation Networks (NGN) distributed applications quality of service (QoS) content-awareness context-awareness services personalization service oriented architecture (SOA)','Abstract We show how the applications utilizing a Future Internet architecture can benefit from its features like quality of service (QoS) provisioning and resources reservation.We demonstrate, how proposed applications address content, context and user awareness basing on the underlying Next Generation Network (NGN) infrastructure and how it can be used to host service-based applications.','',1,'Paweł ŚwiątekKrzysztof JuszczyszynKrzysztof BrzostowskiJarosław DrapałaAdam Grzech','springer/service oriented architecture security.csv','springer','\0'),(1530,'A Service-Oriented Integration Platform to Support a Joined-Up E-Government Approach: The Uruguayan Experience','2012','2',' e-government soa interoperability security web services middleware','Abstract E-Government Platforms have become a key tool to support the development of e-government in many countries. They usually provide infrastructure and services that facilitate the interconnection between the information systems of public agencies, provide common services that generate economy of scale, and encourage the implementation of multi-agency services. In particular, the Uruguayan E-Government Platform has the general goal of enabling and promoting the development of e-government services in Uruguay. The platform, which follows a joined-up approach, consists of an Interoperability Platform and a set of Crosscutting Services. It implements a service-oriented architecture, leveraging the Web Services technology, to expose, use and combine government functionality implemented by public agencies. This paper presents the Uruguayan E-Government Platform focusing on two components of the Interoperability Platform: the Middleware Infrastructure and the Security System. It also evaluates its first years of operation which have shown that, although there are still many challenges to be addressed, the platform is a key enabler for developing a joined-up e-government approach in Uruguay.','',2,'Laura GonzálezRaúl RuggiaJorge AbinGuzmán LlambíasRaquel SosaBruno RienziDiamela BelloFabricio Álvarez','springer/bpel security.csv','springer','\0'),(1531,'Challenges towards the global adoption of cloud computing','2012','','','Cloud computing represents a fundamental shift in the delivery of information technology services that has been changing the computing landscape. Indeed, over the past several years, cloud computing has rapidly emerged as a widely accepted computing paradigm. The research and development community has quickly reached consensus on the core concepts such as on-demand computing resources, elastic scaling, elimination of up-front capital and operational expenses, as well as the new pay-per-use business model for computing and other information technology services provided by the cloud. With the adoption of virtualization, service-oriented architectures, and utility computing, there is also consensus on the enabling technologies necessary to support this new consumption and delivery services model. Additionally, the customers\' demand to meet quality-of-service requirements and service-level agreements, including security, is well understood. © 2012 IEEE.','',1,'Getov V., Chu W.C., Claycomb W.R., Strawn G.O., Yau S.S.','scopus/service oriented architecture security.csv','scopus','\0'),(1532,'Design and Implementation of an Office Automation Assistant Utility Using Adobe AIR Technology','2013','0',' Adobe AIR web service HTTP service auto update memory optimization','Abstract Comprehensive online office automation platform helps one process/exchange online documents, schedule meetings and complete information integration as well as other daily office work. However active reminding function of incoming documents/scheduled meetings still remains unavailable in most of the current office automation systems. Thus, traditionally, users have to repeatedly refresh related web pages to obtain latest information, which inevitably influences working efficiency. To tackle the problem, we design and implement an assistant utility, providing the needed reminding functions. The utility is built on Adobe AIR technology, a desktop-oriented browser-less runtime frame for developing Rich Internet Applications (RIAs). Through the provided web service, the utility gets the latest information from office automation server. Additionally, HTTP service is employed for providing auto update capability. Moreover, memory optimization is considered in the design and implementation.','',2,'Xin LiuLiang LiaoBin YangHeng Liu','springer/bpel security.csv','springer','\0'),(1533,'BPEL Orchestration of Secure Webmail','2006','0','BPEL, SMTP misuse cases, SMTP use cases, WSEmail, verification, webmail','Proceedings of the 3rd ACM Workshop on Secure Web Services','',2,'Saket Kaushik and Duminda Wijesekera and Paul Ammann','acm/bpel security.csv','acm','\0'),(1534,'Deriving XACML policies from business process models','2007','7','Enforcement; eXtensible access control markup language; Integration; Policy definition; Separation of duties business process modeling','The Business Process Modeling Notation (BPMN) has become a defacto standard for describing processes in an accessible graphical notation. The extensible Access Control Markup Language (XACML) is an OASIS standard to specify and enforce platform independent access control policies. In this paper we define a mapping between the BPMN and XACML meta-models to provide a model-driven extraction of security policies from a business process model. Specific types of organisational control and compliance policies that can be expressed in a graphical fashion at the business process modeling level can now be transformed into the corresponding task authorizations and access control policies for process-aware information systems. As a proof of concept, we extract XACML access control policies from a security augmented banking domain business process. We present an XSLT converter that transforms modeled security constraints into XACML policies that can be deployed and enforced in a policy enforcement and decision environment. We discuss the benefits of our modeling approach and outline how XACML can support task-based compliance in business processes. © Springer-Verlag Berlin Heidelberg 2007.','',2,'Wolter C., Schaad A., Meinel C.','scopus/bpmn security.csv','scopus','\0'),(1535,'An ontology-based approach to security pattern selection','2016','0',' Security pattern ontology security requirement risk analysis security engineering','Abstract Usually, the security requirements are addressed by abstracting the security problems arising in a specific context and providing a well proven solution to them. Security patterns incorporating proven security expertise solution to the recurring security problems have been widely accepted by the community of security engineering. The fundamental challenge for using security patterns to satisfy security requirements is the lack of defined syntax, which makes it impossible to ask meaningful questions and get semantically meaningful answers. Therefore, this paper presents an ontological approach to facilitating security knowledge mapping from security requirements to their corresponding solutions–security patterns. Ontologies have been developed usingWeb Ontology Language (OWL) and then incorporated into a security pattern search engine which enables sophisticated search and retrieval of security patterns using the proposed algorithm. Applying the introduced approach allows security novices to reuse security expertise to develop secure software system.','International Journal of Automation and Computing',1,'Hui GuanHongji YangJun Wang','springer/service oriented architecture security.csv','springer',''),(1536,'Lightweight Coordination Calculus for Agent Systems: Retrospective and Prospective','2012','1','','Abstract The Lightweight Coordination Calculus was presented in a paper to DALT 2004 as a method for specifying a class of social norms for multi-agent systems. This was intended for use in the engineering of a range of applications but at the time the original paper was written this was an aspiration and we had little experience of actual use of the method. In this paper I summarise how experience with this approach has developed in the seven years from 2004 to date.','',2,'David Robertson','springer/bpel security.csv','springer','\0'),(1537,'CyberVis: Visualizing the potential impact of cyber attacks on the wider enterprise','2013','0','','A variety of data-mining tools and filtering techniques exist to detect and analyze cyber-attacks by monitoring network traffic. In recent years many of these tools use visualization designed to make traffic patterns and impact of an attack tangible to a security analyst. The visualizations attempt to facilitate understanding elements of an attack, including the location of malicious activity on a network and the consequences for the wider system. The human observer is able to detect patterns from useful visualizations, and so discover new knowledge about existing data sets. Because of human reasoning, such approaches still have an advantage over automated detection, data-mining and analysis. The core challenge still lies in using the appropriate visualization at the right time. It is this lack of situational awareness that our CyberVis framework is designed to address. In this paper we present a novel approach to the visualization of enterprise network attacks and their subsequent potential consequences. We achieve this by combining traditional network diagram icons with Business Process Modeling and Notation (BPMN), a risk-propagation logic that connects the network and business-process and task layer, and a flexible alert input schema able to support intrusion alerts from any third-party sensor. Rather than overwhelming a user with excessive amounts of information, CyberVis abstracts the visuals to show only noteworthy information about attack data and indicates potential impact both across the network and on enterprise tasks. CyberVis is designed with the Human Visual System (HVS) in mind, so severe attacks (or many smaller attacks that make up a large risk) appear more salient than other components in the scene. A Deep-Dive window allows for investigation of data, similar to a database interface. Finally, a Forensic Mode allows movie-style playback of past alerts under user-defined conditions for closer examination.','Technologies for Homeland Security (HST), 2013 IEEE International Conference on',2,'S. Creese; M. Goldsmith; N. Moffat; J. Happa; I. Agrafiotis','ieee/bpmn security.csv','ieee','\0'),(1538,'An enhanced smart multi-banking integrated system — Service oriented approach','2012','0','Bank composite service;Integrated banking;Multi banking;Service Composition','Nowadays smart way of doing the work is very familiar among every business oriented enterprise applications. In this paper we propose an enhanced smart multi-banking integrated using service oriented composition model by which using single username and password the user can able to access multiple bank accounts. Every user can have more than one bank accounts and each bank provides different username and passwords. To operate his/her account he/she wants to remember all the user name and password of each bank. This Multi Banking Interface is aimed to enhance the current services of the bank to meet the requirements for future-banking world for the users who is having accounts in multiple banks. By using this interface any user who is having accounts in various banks can directly login to Multiple Banks and make any kind of transactions. By using this interface client can also able to see all various bank account summaries in the single page. He/she can get minimum 10 transaction details of all banks. Even amount can be transacted between the banks in the single interface. In addition to this, the main feature of the paper is, Sometimes the client need a particular amount, but all the banks in which he/she has account is having balance lesser then the required amount. For this we are providing a dynamic service composition interface to overcome this problem. Consider `n\' number of banks is going to participate in multi-banking interface. Here one of the banks acts as a primary and remaining are secondary one. Consider the scenario that the user requires the amount of Rs.10000/- but no banks have full-required amount. Now the integrated system checks whether 60% of required amount is available in any of the banks. If so, it takes the amount from the corresponding bank otherwise it checks for 50% of required amount and so on for particular limit. Similarly, the remaining amount is taken from other banks in such criteria. Now the integrated system transfers the amount- which is taken from the secondary banks to primary bank account. Finally From the primary bank account the user can withdraw the required amount. If the client needs to add one more bank he/she can add the bank details and make our system to composite with the existing bank services dynamically.','Computing Communication & Networking Technologies (ICCCNT), 2012 Third International Conference on',1,'P. Iyappan; V. PrasannaVenkatesan; R. Amarnath; L. Noor Mouhammed; A. Selvamani','ieee/service oriented architecture security.csv','ieee','\0'),(1539,'The FBI sentinel project','2013','','','In 2000, the United States Federal Bureau of Investigation (FBI) initiated its Trilogy program in order to upgrade FBI infrastructure technologies, address national security concerns, and provide agents and analysts greater investigative abilities through creation of an FBI-wide network and improved user applications. Lacking an appropriate enterprise architecture foundation, IT expertise, and management skills, the FBI cancelled further development of Trilogy Phase 3, Virtual Case File (VCF), with prime contractor SAIC after numerous delays and increasing costs. The FBI began development of Sentinel in 2006 through Lockheed Martin. Unlike in the case of Trilogy, the FBI decided to implement a service-oriented architecture (SOA) provided in part by commercial-off-the-shelf (COTS) components, clarify contracts and requirements, increase its use of metrics and oversight through the life of the project, and employ IT personnel differently in order to meet Sentinel objectives. Although Lockheed Martin was eventually released from their role in the project due to inadequate performance, the project is still moving forward on account of the use of best practices. The case highlights key events in both VCF and Sentinel development and demonstrates the FBI\'s IT transformation over the past four years. © 2013 by IGI Global. All rights reserved.','',1,'Olszewski L., Wingreen S.C.','scopus/service oriented architecture security.csv','scopus','\0'),(1540,'Recent advanced applications and services for intelligent ubiquitous environments','2014','0','','','Electronic Commerce Research',1,'Jongsung KimHan-Chieh ChaoUyen Trang Nguyen','springer/service oriented architecture security.csv','springer','\0'),(1541,'Determining trust in media-rich websites using semantic similarity','2012','3',' Multimedia Web Trust Semantic similarity','Abstract Significant growth of multimedia content on the World Wide Web (or simply ‘Web’) has made it an essential part of peoples lives. The web provides enormous amount of information, however, it is very important for the users to be able to gauge the trustworthiness of web information. Users normally access content from the first few links provided to them by search engines such as Google or Yahoo!. This is assuming that these search engines provide factual information, which may be popular due to criteria such as page rank but may not always be trustworthy from the factual aspects. This paper presents a mechanism to determine trust of websites based on the semantic similarity of their multimedia content with already established and trusted websites. The proposed method allows for dynamic computation of the trust level of websites of different domains and hence overcomes the dependency on traditional user feedback methods for determining trust. In fact, our method attempts to emulate the evolving process of trust that takes place in a user’s mind. The experimental results have been provided to demonstrate the utility and practicality of the proposed method.','Multimedia Tools and Applications',1,'Pradeep K. AtreyHicham IbrahimM. Anwar HossainSheela RamannaAbdulmotaleb El Saddik','springer/service oriented architecture security.csv','springer','\0'),(1542,'An Aspect-Oriented Approach to Enforce Security Properties in Business Processes','2013','0',' AOP security Web services Separation of concerns MDA','Abstract Security is an essential requirement for business processes. However, we observe that security is mostly addressed at the technical implementation level and not at the design level. In a previous work we motivated the need to address security already in business process modeling. In this paper, we show how one could use Aspect-Oriented Programming (AOP) to enforce security requirements in a modular way. Starting from a business process model where security requirements are expressed using a profile mechanism we generate AspectJ [1] code, which enforces those requirements. This generation is based on a set of Model-to-Text transformation rules. As security is a typical example for crosscutting concerns the usage of aspects allows for a modular implementation, in which the implementation of the business process is separated from the implementation of the security properties.','',2,'Inaya YahyaSameh Hbaieb TurkiAnis CharfiSlim KallelRafik Bouaziz','springer/bpel security.csv','springer','\0'),(1543,'A service-oriented architecture for wireless video sensor networks: Opportunities and challenges','2015','','','Video surveillance is an essential tool for many security-related applications but video is also increasingly used in combination with computer vision technologies in other sensing applications. With the growth of installed camera infrastructure and development it would be beneficial to enable video surveillance systems to support many application simultaneously. Service-oriented Architecture (SoA) is a prospective solution to implement such a multi-application surveillance system, which can provide video data and processing methods to different applications based on their requirements. However, such a system presents several challenges, which needs to be addressed and considered along with the constrains on the system resources. In this paper, we propose a framework for a SoA based video surveillance system with efficient system resource management, including device, data and network management. Our contribution is to present the benefits of such an approach and highlight the research challenges that need to be addressed to realise such a system.','Industrial Electronics Society, IECON 2015 - 41st Annual Conference of the IEEE',1,'B. Cheng; G. P. Hancke','ieee/service oriented architecture security.csv','ieee',''),(1544,'Ubiquity and QoS for Cloud Security','2012','0','Architecture Model;Cloud Computing;Cloud Security;QoS;Ubiquity','Cloud computing brings many advantages in terms of externalization, service delivery, elasticity, dependability and scalability. Nevertheless, it can be exposed to several vulnerabilities and security attacks. Therefore, we propose, in our UBIS (Ubiquity and Integration of Services) project, an architectural model that aims to satisfy cloud user requirements and cloud security challenges. For this purpose, our solution is based on two key elements. The former deals with ubiquitous services in Service Oriented Architecture. The latter considers QoS management that includes security aspects based on Event Driven Architecture.','2012 41st International Conference on Parallel Processing Workshops',1,'A. Hammami; N. Simoni; R. Salman','ieee/service oriented architecture security.csv','ieee','\0'),(1545,'Security Property Lifecycle Management for Secure Service Compositions','2013','','','We present an approach to deploying a security property life cycle management mechanism for secure service composition. A Security Property Determination Module component is introduced that forms part of the Aniketos project, in the context of a case study relating to an online payment system that has been developed using real services deployed within the Activiti BPMN service process engine. Both the theory behind the implementation as well as the implementation itself will be discussed, along with the lessons learnt and the potential for future improvements to the lifecycle mechanism. The mechanism integrates tightly with the verification processes of the Aniketos platform. It also allows the security property lifecycle to be managed at run-time without user intervention. The mechanism unifies the verification of imported properties and the digital signing and storage of properties associated with both atomic and composed services. These integrated capabilities form a novel approach discussed and situated in the context of the case study. © Springer-Verlag Berlin Heidelberg 2013.','',2,'Hoque S., Rahim A., Llewellyn-Jones D., Merabti M.','scopus/bpmn security.csv','scopus','\0'),(1546,'E-EPR: a workflow-based electronic emergency patient record','2014','2',' Holistic care workflow SOA IHE Health and social care','Abstract Emergency care is, politically and socially, one of the highest priorities in society today. Increasing patient expectations and the advancement of scientific and medical knowledge has had a dramatic effect on the provision of emergency care. Emergency medical services (EMSs) perform pre-hospital and in-hospital emergency care activities, operate 24 h a day/7 days a week and constitute an important link between the community (primary care) and the hospital (secondary and tertiary care). Managing emergency care involves assessing individual needs to create a coordinated plan of care that is consistent with agreed priorities and is designed to bring optimal outcomes using cost-effective care. Emergency care is vital for avoiding death and chronic suffering by the elderly and the homeless, but its overall positive effect on the long-term health and overall well-being of these people can only be improved significantly by applying holistic principles, going beyond basic medical care to offer psychological and social support as far as possible. Thus, creating appropriate emergency care plans requires collaboration and coordination among EMS and social care providers, giving rise to a more holistic approach to emergency care management. In turn, this requires the availability of integrated patient information to authorized individuals of health and social care providers when and where needed. On these grounds, the development of a workflow-based electronic patient record (E-EPR) for emergency care is described which is provided as a service on a cloud. The E-EPR aims at supporting the execution of EMS workflows by providing integrated patient information to EMS process participants and to make this information shareable to health and social care professionals. Due to the heterogeneity of the participating organizations’ information systems, the E-EPR is built on top of an Integrating the Healthcare Enterprise (IHE)-based collaborative network consisting of EMS agencies and health and social care providers who share patient documents using IHE-based profiles. An experimental implementation of the E-EPR is also described.','Personal and Ubiquitous Computing',1,'M. PoulymenopoulouF. MalamateniouG. Vassilacopoulos','springer/soa security.csv','springer','\0'),(1547,'A Toolchain for Designing and Testing Access Control Policies','2014','1','','Abstract Security is an important aspect of modern information management systems. The crucial role of security in this systems demands the use of tools and applications that are thoroughly validated and verified. However, the testing phase is an effort consuming activity that requires reliable supporting tools for speeding up this costly stage. Access control systems, based on the integration of new and existing tools are available in the Service Development Environment (SDE). We introduce an Access Control Testing toolchain (ACT) for designing and testing access control policies that includes the following features: (i) the graphical specification of an access control model and its translation into an XACML policy; (ii) the derivation of test cases and their execution against the XACML policy; (iii) the assessment of compliance between the XACML policy execution and the access control model. In addition, we illustrate the use of the ACT toolchain on a case study.','',1,'Antonia BertolinoMarianne BuschSaid DaoudaghFrancesca LonettiEda Marchetti','springer/service oriented architecture security.csv','springer','\0'),(1548,'Conceptual and content-based annotation of (multimedia) documents','2014','0',' Annotation systems Binary and n- ary conceptual representations Ontologies Elementary and complex events Narratives Querying and inference procedures','Abstract This paper focuses on the techniques used in an NKRL environment (NKRL = Narrative Knowledge Representation Language) to deal with a general problem affecting the so-called “semantic/conceptual annotations” techniques. These last, mainly ontology-based, aim at “annotating” multimedia documents by representing, in some way, the “inner meaning/deep content” of these documents. For documents of sufficient size, the content modeling operations are separately executed on ‘significant fragments’ of the documents, e.g., “sentences” for natural language texts or “segments” (minimal units for story advancement) in a video context. The general problem above concerns then the possibility of collecting all the partial conceptual representations into a global one. This integration operation must, moreover, be carried out in such a way that the meaning of the full document could go beyond the simple addition of the ‘meanings’ conveyed by the single fragments. In this context, NKRL makes use of second order knowledge representation structures, “completive construction” and “binding occurrences”, for collecting within the conceptual annotation of a whole “narrative” the basic building blocks corresponding to the representation of its composing elementary events. These solutions, of a quite general nature, are discussed in some depth in this paper. This last includes also a short “state of the art” in the annotation domain and some comparisons with the different methodologies proposed in the past for solving the above ‘integration’ problem.','Multimedia Tools and Applications',1,'Gian Piero Zarri','springer/service oriented architecture security.csv','springer','\0'),(1549,'Energy-efficient communication networks for improved global energy productivity','2013','13',' Energy efficiency Power consumption Network elements Core networks Access networks Holistic approach','Abstract Recently, a lot of effort has been put into research and development of energy-efficient devices and systems and into optimization of the network infrastructure with regard to energy consumption. On the one hand, reducing total power consumption of global communication networks has become an imperative and an important step towards the future highly energy-efficient Internet. On the other hand, capacity and performance of the Internet must be continuously improved in order to meet the high requirements set by the continuously increasing of both the number of broadband subscribers and the amount of user traffic. Thus, only a highly energy-efficient and high-performance network infrastructure designed to efficiently support advanced applications and services for improving energy productivity in many other branches of business and society can significantly contribute to global energy savings. This paper briefly discusses potentials and options for achieving such an energy-efficient network infrastructure. Some examples of software applications and services for global energy savings are briefly reviewed. The aim of this paper is to draw attention to the need for a holistic approach to evaluate energy efficiency and to improve the global energy productivity through the use of high-performance and energy-efficient networks, services and applications.','Telecommunication Systems',1,'Slaviša Aleksić','springer/soa security.csv','springer',''),(1550,'Determining the Link and Rate Popularity of Enterprise Process Information','2013','1',' process-oriented information logistics process information relevance link popularity algorithm rate popularity algorithm','Abstract Today’s knowledge workers are confronted with a high load of heterogeneous information making it difficult for them to identify the information relevant for performing their tasks. Particularly challenging is thereby the alignment of process-related information ( process information for short), such as e-mails, office files, forms, checklists, guidelines, and best practices, with business processes. In previous work, we introduced the concept of process-oriented information logistics (POIL) to bridge this gap. POIL allows for the process-oriented and context-aware delivery of relevant process information to knowledge workers. So far, we have introduced concepts to integrate business processes with process information. A remaining challenge is to identify the process information relevant for a given process context. This paper tackles this challenge and extends our POIL approach with techniques and algorithms for identifying relevant process information. More specifically, we introduce two algorithms for determining the relevance of process information based on their link and rate popularity. We use a scenario from the automotive domain to demonstrate and validate the applicability of our approach.','',2,'Bernd MichelbergerBela MutschlerMarkus HippManfred Reichert','springer/bpmn security.csv','springer','\0'),(1551,'Towards a Computer Assisted Approach for Migrating Legacy Systems to SOA','2012','1',' Services-oriented architecture web services legacy system migration direct migration indirect migration semi-automatic cobol migration','Abstract Legacy system migration to Service-oriented Architectures (SOA) has been identified as the right path to the modernization of enterprise solutions needing agility to respond to changes and high levels of interoperability. However, one of the main challenges of migrating to SOA is finding an appropriate balance between migration effort and the quality of resulting service interfaces. This paper describes an approach to assist software analysts in the definition of produced services, which bases on the fact that poorly designed service interfaces may be due to bad design and implementation decisions present in the legacy system. Besides automatically detecting common design pitfalls, the approach suggests refactorings to correct them. Resulting services have been compared with those that resulted from migrating a real system by following two classic approaches.','',1,'Gonzalo SalvatierraCristian MateosMarco CrassoAlejandro Zunino','springer/service oriented architecture security.csv','springer','\0'),(1552,'A sharing-based approach to supporting adaptation in service compositions','2013','0',' Service composition Adaptation Sharing Static analysis Horn clauses Mathematics Subject Classification 68M14 68U35 68N30 68Q85 68N17 68Q60','Abstract Data-related properties of the activities involved in a service composition can be used to facilitate several design-time and run-time adaptation tasks, such as service evolution, distributed enactment, and instance-level adaptation. A number of these properties can be expressed using a notion of sharing. We present an approach for automated inference of data properties based on sharing analysis, which is able to handle service compositions with complex control structures, involving loops and sub-workflows. The properties inferred can include data dependencies, information content, domain-defined attributes, privacy or confidentiality levels, among others. The analysis produces characterizations of the data and the activities in the composition in terms of minimal and maximal sharing, which can then be used to verify compliance of potential adaptation actions, or as supporting information in their generation. This sharing analysis approach can be used both at design time and at run time. In the latter case, the results of analysis can be refined using the composition traces (execution logs) at the point of execution, in order to support run-time adaptation.','Computing',2,'Dragan IvanovićManuel CarroManuel V. Hermenegildo','springer/bpel security.csv','springer','\0'),(1553,'The Building Blocks of a PaaS','2014','1',' Platform as a service Cloud computing Performance testing','Abstract Traditional cloud computing providers enable developers to program and deploy applications in the cloud by using platform as a service (PaaS) providers. Despite the benefits of such an approach, this service model usually comes with a high level of the lock in effect into the service provider. The lock in effect occurs when a software developer needs to change its cloud provider. When this happens, it usually means a major application rewrite, specific for the new PaaS. This paper details the initial results of a project whose goal is to build a PaaS where vendor lock in does not occur. With this PaaS, developers wishing to deploy their applications into the cloud may continue to program using their usual development environments. There are no necessary changes required to make the application PaaS compatible. As a proof of concept, we developed an open source PaaS management application as a regular web application and then deployed it on the cloud.','Journal of Network and Systems Management',1,'Cláudio TeixeiraJoaquim Sousa PintoRicardo AzevedoTiago BatistaAndré Monteiro','springer/service oriented architecture security.csv','springer','\0'),(1554,'BPM Demos 2012 - Proceedings of the Demonstration Track of the 10th International Conference on Business Process Management','2012','','','The proceedings contain 10 papers. The topics discussed include: BPM academic initiative - fostering empirical research; updatable process views for adapting large process models: the proView demonstrator; the shared process model; eventifier: extracting process execution logs from operational databases; supporting blended workflows; detecting approximate clones in process model repositories with apromore; information flow security for business process models - just one click away; disco: discover your processes; mayflower - explorative modeling of scientific workflows with BPEL; and CRISTAL: collection of resource-centric supporting tools and languages.','',2,'[No author name available]','scopus/bpel security.csv','scopus','\0'),(1555,'Green service over Internet of Things: a theoretical analysis paradigm','2013','2',' Internet of Things Green service Dynamic powering Satisfaction model','Abstract There are two kinds of uncertainty for providing green service over Internet of Things (IoT): network service period and user satisfaction model. In this paper, we consider a power-aware service problem over IoT where both of the uncertainties are incorporated. Specifically, we consider a generic IoT’s service scenario: a server provides different kinds of services without knowledge of user satisfaction model and network service period. Our objective aims at dynamically adjusting the power allocation for each service over a uncertain period to maximize expected user satisfaction. It should be noted that practical user satisfaction rate is observed over time, but the inherent functional relationship between the power and satisfaction rate is unknown. In order to present a quantitative analysis, we consider a general user satisfaction model belonging to a class of functions that do not deploy any parametric representation. In this case, a blind dynamic powering algorithm is developed, in which one learns the satisfaction function and optimizes power-aware user satisfaction with on-line operation. More precisely, the algorithm performance is measured in terms of regret which denotes the satisfaction loss compared to the optimal satisfactions that can be obtained when the service period and satisfaction rate are known. Moreover, a tight bound on this regret is proposed for any possible powering policy, and we show that the proposed algorithm can achieve a regret that is close to this bound.','Telecommunication Systems',1,'Liang Zhou','springer/soa security.csv','springer','\0'),(1556,'A Structure P2P Based Web Services Registry with Access and Control','2014','0',' Web Service Registry UDDI P2P Pastry Access and Control','Abstract In the cloud computing, there are massive functions and resources are encapsulated into Web services. The traditional web service registry systems normally using the central architecture can’t meet the requirements of cloud computing. A web service registry system based on structured P2P system with secure access and control is implemented. Multiple Universal Description, Discovery and Integration (UDDI) nodes are organized by the P2P based schedule and communication mechanism. The registration and discovery of Web services is redesigned to the new system that provides services like one single UDDI server. The experiment results show that the capacity can be extended dynamically and support large scalable access.','',1,'He QianZhao BaokangLong YunjianSu JinshuIlsun You','springer/service oriented architecture security.csv','springer','\0'),(1557,'Variability patterns for business processes in BPMN','2015','0',' Business process improvement Business process BPMN Variability Variability pattern','Abstract Many entities, both in academia and the business sector, urge an efficient improvement of business processes. However, when it comes to addressing this point, each slight disparity in the business rules and/or objectives translates into a separate model, which is neither practical nor acceptable as it burdens the host process-aware information system with repetitive and almost verbatim instances. \n To solve this issue, we propose considering variability. Variability will serve as a business process improvement technique to efficiently design and run a variable business process throughout different business situations that are similar to one another is some ways yet differ in others. First, we define variability within the context of business processes. Second, we present a set of variability patterns and explain how they are used. We validate our approach via the business process improvement patterns known and used by the community. The variability design patterns are a series of business process improvement patterns for building business process with variability and efficiently acting on the improved process performance metrics.','Information Systems and e-Business Management',2,'Alaaeddine YousfiRajaa SaidiAnind K. Dey','springer/bpmn security.csv','springer',''),(1558,'Provenance-Based Quality Assessment and Inference in Data-Centric Workflow Executions','2014','0','','Abstract In this article we present a rule-based quality model for data centric workflows. The goal is to build a tool assisting workflow designers and users in annotating, exploring and improving the quality of data produced by complex media mining workflow executions. Our approach combines an existing fine-grained provenance generation approach [3] with a new quality assessment model for annotating XML fragments with data/application-specific quality values and inferring new values from existing annotations and provenance dependencies. We define the formal semantics using an appropriate fixpoint operator and illustrate how it can be implemented using standard Jena inference rules provided by current semantic web infrastructures.','',1,'Clément CaronBernd AmannCamelia ConstantinPatrick GirouxAndré Santanchè','springer/service oriented architecture security.csv','springer','\0'),(1559,'Federated Single Sign on in Disconnected, Intermittent and Limited (DIL) Networks','2015','1','','In a military setting resource exchange amongst coalition partners is of great importance. Using SAML2.0 in a Single Sign On scheme in a federated setting can be a solution to Web authentication of Web resources. The problem of adding security in a potentially disconnected, intermittent and limited (DIL) network environment is the security overhead. In this paper tests are performed to measure this overhead, and the results are evaluated.','2015 IEEE 81st Vehicular Technology Conference (VTC Spring)',1,'M. R. Brannsten','ieee/service oriented architecture security.csv','ieee',''),(1560,'SOBA: A Services-Oriented Browser Architecture with Distributed URL-Filtering Mechanisms for Teenagers','2013','1','Services-oriented;URL Filter;URL Verification','In order to protect the teenagers in online cyberspace, this paper presents SOBA, novel services-oriented internet browser architecture with distributed filtering mechanisms. SOBA is the first literature that introduces SOA concepts into the web browser design paradigm. It contains a server cluster, which employs URL filter functions to verify the URL access, while whitelists and validation results are wrapped as services. Mean-while, a customized SOBA client is in charge of data conversion and web site navigation while verification workloads are de-ployed on the server side. Administrators can manage URL data-bases through back stage websites. A prototyping software browser of SOBA demonstrates that SOA concepts can greatly improve the safety for teenage users with high flexibility and modularity.','2013 IEEE Ninth World Congress on Services',1,'A. Wang; C. Wang; X. Li; X. Zhou','ieee/service oriented architecture security.csv','ieee','\0'),(1561,'Toward a System Design Science','2014','0','','Abstract Design is a universal concept. It links the immaterial world of concepts to the physical world. It is an essential area of human experience, expertise, and knowledge, which deals with our ability to mold our environment to satisfy material and spiritual needs. Design has two different connotations. One is simply a plan or a pattern for assembling objects constituting a given artifact. The other is the creative process for devising plans or patterns and carrying them out to produce an artifact. For this paper we focus on the second interpretation. We are ultimately interested in putting design on a more scientific basis. Toward this end, we focus here on articulating a new structure for the design process, which we believe will support this goal.','',2,'Joseph Sifakis','springer/bpel security.csv','springer',''),(1562,'Byzantine Fault Tolerance with Window Mechanism for Replicated Services','2015','','Byzantine fault tolerance;State machine replication;replica;service','Byzantine fault is the fault that can make the components behave arbitrary and may cause disastrous results. With the increasing malicious attacks and software errors, Byzantine fault tolerance has begun to draw more attention it deserves. Previous Byzantine fault tolerant algorithms have strong assumption that all the replicas is synchronous and do not support replicated calling services, which make them not practical and not suit for new computing model such as SOA. This paper proposes a new Byzantine fault tolerant algorithm based on well-known Byzantine fault tolerant algorithm CLBFT (Castro Liskov Byzantine Fault Tolerance) for replicated services in the calling endpoint. The algorithm works in asynchronous environments and support replicated calling services. To make the algorithm more practical, we incorporates important optimization-Window mechanism, which can make the replica batch process the message that reduce the response time much more than previous algorithms. Besides non-faulty process of the algorithm, we provide the faulty handling process to make the algorithm more robust.','2015 Fifth International Conference on Instrumentation and Measurement, Computer, Communication and Control (IMCCC)',1,'L. Chen; W. Zhou','ieee/service oriented architecture security.csv','ieee',''),(1563,'IoT-enabled Web warehouse architecture: a secure approach','2015','1',' Web service Internet of things (IoT) Cryptography Data warehouse Secure query processing Web warehouse','Abstract Web warehouse (WWh) has overcome the geographical dependencies of data warehouse. With the rapid development of WWh, decision makers (humans) and intelligent devices are able to remotely retrieve the information for supporting the effective decision-making process. This paper presents a secure Web service-oriented architecture of the WWh. The proposed architecture provides the better scalability, availability of WWh, and secure analytical service for human and Internet of Things for effective decision making. In addition, the service-oriented architecture of WWh integrates intelligent devices for the process of decision making. The proposed architecture uses XML-based Web services to provide authentication, authorization, and data confidentiality and integrity. Experiments show that the proposed architecture is more reliable, scalable, and secure.','Personal and Ubiquitous Computing',1,'Rashid MehmoodMaqbool Uddin ShaikhRongfang BieHussain DawoodHassan Dawood','springer/soa security.csv','springer','\0'),(1564,'Business process compliance via security validation as a service','2013','3','Business Process Management; Security; Validation','Modern enterprise systems are often processbased, i. e., they allow for the direct execution of business processes that are specified in a high-level language such as BPMN. In this paper, we present a service, called Security Validation as a Service (SVaaS) for validating the compliance of the business processes during design-time. Basically, while modeling a business process the business analyst specifies as well the security and compliance requirements the business process should comply to. By pressing a button, these requirements are validated and the results are presented in a graphical format to the business analysis.At the core of SVaaS lies a rigorous and industrially viable approach in which the security validation business logic is handled server-side (SVaaS Server) in the Cloud, while the clientside user interface that business analysts use is handled by a light-weight SVaaS Connector. As proof-of-concept we created a SVaaS prototype in which the SVaaS Server is deployed on the SAP NetWeaver Cloud and two SVaaS Connectors are built to enable two well-known BPMN tools, SAP NetWeaver BPM and Activiti, to consume SVaaS against industrial relevant business processes. © 2013 IEEE.','',2,'Compagna L., Guilleminot P., Brucker A.D.','scopus/bpmn security.csv','scopus','\0'),(1565,'Aspect-Based Realization of Non-functional Concerns in Business Processes','2015','0',' Business process modeling Non-functional concerns Aspects BPMN AO4BPEL WS-BPEL','Abstract While functional concerns are well supported in current business process modeling languages such as the Business Process Modeling Notation (BPMN), many important non-functional concerns such as security and quality of service (QoS) cannot be expressed. Some works proposed specific extensions to business process modeling languages to express certain non-functional concerns. However, most related works focus only on expressing non-functional properties in business process models without considering their realization on the implementation level. In this paper, we present a generic approach to non-functional concerns in business processes and bridge the gap between process modeling and process implementation by generating AO4BPEL aspects that enforce and realize the non-functional properties specified in the business process model. The functional part of the processes is realized by generating executable WS-BPEL code out of BPMN process models. The approach is not specific to a particular non-functional concern and the usage of aspects ensures a modular implementation of the business process.','',2,'Anis CharfiHaolin Zhi','springer/bpel security.csv','springer',''),(1566,'Aggregate QoS Estimation of Service Compositions - An Analysis of Pattern-Oriented Approaches','2014','0','quality of service estimation;service composition;service composition patterns','For service-oriented systems the estimation of QoS is an important factor to determine whether a prospective service composition will meet the expectations of its final users. Many approaches to QoS estimation of service compositions have been proposed. However, not all of them allow the QoS of composition be estimated a priori and systematically from the QoS of its individual services. This is an important goal for many composition-based development approaches. This paper is a first effort to analyze QoS estimation approaches aligned to this goal. We revise approaches that use patterns as composition mechanisms as they enable the QoS of a service composition be estimated, a priori and systematically, by aggregating the QoS information of its constituent services. The result of this analysis offers insight in the main patterns and quality attributes addressed by these approaches as well as the adopted aggregation criteria. This will help us to achieve our ultimate goals of using these approaches on public services, assessing them for practicality, identifying gaps between theory and practice and possibilities for future work.','2014 IEEE World Congress on Services',1,'P. Velasco-Elizondo; D. Barredo-Hernandez; H. A. Mitre','ieee/service oriented architecture security.csv','ieee','\0'),(1567,'A trust mechanism for web services registries data exchanging','2012','3','Service oriented architecture; Trust mechanism; Web service registry','In recent years, Web Services (WS) have been becoming more popular, as more people realize its benefits. However, the WS-Security specification only guarantees the security on end-to-end level. We propose the architecture of Trust-based Web Services Registries Data Exchanging (TWSRDE) which is four-tier architecture composed of the users, Web Service Providers (WSP) in Simple Object Access Protocol (SOAP) server, Enhance Web Services Registry (EWSR), and extra Web Services Registries (WSReg). The EWSR provides the trust mechanism which considers physical space and concept space to infer the trust value of WS for WSReg data exchanging. © 2012 ICIC International.','',1,'Chen C.-H., Cheng D.-Y., Lin B.-Y., Lu Y.-J., Lo C.-C.','scopus/service oriented architecture security.csv','scopus','\0'),(1568,'Financial Risk Management in e-commerce Using Executable Business Process Modeling Notation','2015','0','','Abstract In e-commerce systems like online auction houses or online stores, there are financial transactions involving buyers and sellers. At large payment processing firms, there is significant risk of fraud (upto 0.9 %). This fraud can be prevented before the actual transaction phase through risk scoring models. In the post transactions phase, measures like withholding or reserving funds of the seller, or asking for additional supporting material from the seller to release the funds can be done. There are numerous variations based on different geographies or different seller classes or different holding mechanisms of these measures. It was found that the software being developed for a payment system was combining both infrastructural software (database, queue, logs) as well the actual risk business process. Subsequently, prototypes were created for different risk measures in the post transaction phase using executable BPMN2 (using Activiti engine). For example, a certain amount of money may be withheld from the seller for a configurable time period which can be edited in the graphical BPMN2. In this paper, we discuss the numerous types of transactions, the numerous measures for financial risk and how BPMN2, can be used to model the same and at the same time form a performant executable component reducing development time. It is also possible that such models can be standardized and exchanged in the industry.','',2,'Ramkumar IyerSanjeevi Moorthy','springer/bpel security.csv','springer',''),(1569,'Agent-Based Self-Adaptable Context-Aware Network Vulnerability Assessment','2013','1','Vulnerability assessment;agent-based system;intrusion detection system (IDS);management information base (MIB);threats awareness analysis','Immunology inspired computer security has attracted enormous attention as its potential impacts on the next generation service-oriented network operation system. In this paper, we propose a new agent-based threat awareness assessment strategy inspired by the human immune system to dynamically adapt against attacks. Specifically, this approach is based on the dynamic reconfiguration of the file access right for system calls or logs (e.g., file rewritability) with balanced adaptability and vulnerability. Based on an information-theoretic analysis on the coherently associations of adaptability, autonomy as well as vulnerability, a generic solution is suggested to break down their coherent links. The principle is to maximize context-situation awared systems\' adaptability and reduce systems\' vulnerability simultaneously. Experimental results show the efficiency of the proposed biological behaviour-inspired vulnerability awareness system.','IEEE Transactions on Network and Service Management',1,'F. Jiang; D. Dong; L. Cao; M. R. Frater','ieee/service oriented architecture security.csv','ieee','\0'),(1570,'Iterative multi-party agreement negotiation for establishing collaborations','2012','0',' Multilateral agreement negotiation protocol Multi party agreement Ad hoc collaborations WS-agreement Comprehensive agreements','Abstract Inter-domain collaborations suffer not only from technological obstacles that hinder interoperability, but also from diverting business objectives of the involved domains. Today, hand-crafted contracts define the terms and conditions for service interactions. Electronic negotiation can serve as the enabler of dynamic interdomain collaborations by providing a large degree of freedom for the automation of agreement formation and electronic contracting. Negotiation by electronic means has been an area of intensive research for many years now. However, most effort was put on the determination of prices and neglected that real-world agreements also consist of complex dependencies of interdependent obligations. In this paper we present agreement negotiation as a tool to establish ad hoc services collaborations. Our novel protocol allows for the discovery of complex agreement options and for the formation of multi-party agreements. The protocol works through an iterative exchange of requirements and offers. A major benefit over existing bilateral negotiation protocols is that our protocol is capable of discovering potential collaborations between different parties. It will leave each negotiating party with a complete agreement document after a successful negotiation. This comprehensive agreement document defines the interdependent obligations between all parties and is well suited for E-Contracting.','Service Oriented Computing and Applications',1,'Andreas KlenkAndreas Beck-GreinwaldHannes AngstGeorg Carle','springer/soa security.csv','springer','\0'),(1571,'VGI, Augmented Reality and Smart Web Application: Projects of Development in the Territory of the Sardinia Region','2013','0',' VGI augmented reality smart web application','Abstract New technologies affect society along new directions that after a few years are consolidated and become part of our life. This article describes how Information and Communications Technology (ICT) has introduced a new approach in the handling of spatial data and related services and how Regione Autonoma della Sardegna, one of the Italian local governments, has been involved in an interesting growth that adopts ICT to provide spatial data and related services to itself and to its territory.','',1,'Gabriele GarneroAlessandro CorriasLuisa ManigasStefania Valentina Zedda','springer/service oriented architecture security.csv','springer','\0'),(1572,'A Graph Grammar-Based Dynamic Reconfiguration for Virtualized Web Service-Based Composite Architectures','2012','0','','Abstract Adaptation of deployment is required for maintaining the Quality of Service (QoS) in Service Oriented Architectures (SOA). Dynamic reconfiguration of SOA is proposed here to cope with adaptation in reaction to or in prediction of QoS degradation. Handling such an issue needs to detect and to identify the deficiency source, and to reconfigure the architecture implementing service composition. System reconfiguration constitutes a complex activity acting on distributed software entities, and requires to be implemented by correct model-based approaches. We show in this chapter how graph grammars can be used to design policy-driven reconfiguration mechanisms of architectures and to rule application adaptation using reconfiguration laws. We describe how coordinated architectural actions and reconfiguration policies are used to maintain QoS at runtime.','',1,'Ismael Bouassida RodriguezRiadh Ben HalimaKhalil DriraChristophe ChassotMohamed Jmaiel','springer/service oriented architecture security.csv','springer','\0'),(1573,'Improving the exchange of lessons learned in security incident reports: case studies in the privacy of electronic patient records','2015','0',' Lessons learned Security incident Electronic patient record Generic security template Empirical study Cognitive dimensions','Abstract The increasing use of Electronic Health Records has been mirrored by a similar rise in the number of security incidents where confidential information has inadvertently been disclosed to third parties. These problems have been compounded by an apparent inability to learn from previous violations; similar security incidents have been observed across Europe, North America and Asia. This has resulted in the loss of confidence and trust of the public towards the organisations’ ability to protect the patients’ private information. The Generic Security Template (G.S.T.) has been proposed to communicate security lessons learned from previous security incidents. This paper conducts a series of empirical studies to evaluate the usability of the G.S.T. The first study compares the G.S.T. with the conventional text-based security incident reports. The two methods were compared in term of the users’ ability to identify a number of lessons learned from investigations into previous incidents involving the disclosure of healthcare records. The study showed that the graphical approach resulted in higher accuracy in terms of number of correct answers generated by participants. However, subjective feedback raised further questions about the usability of the G.S.T. as the readers of security incident reports try to interpret the lessons that can increase the security of patient data. The second study further evaluates the usability of the G.S.T. using the Cognitive Dimensions and identifies some aspects that need to be improved.','Journal of Trust Management',2,'Ying HeChris JohnsonYu Lu','springer/bpmn security.csv','springer',''),(1574,'Integrating GI with non-GI services—showcasing interoperability in a heterogeneous service-oriented architecture','2012','2',' Service-oriented architecture (SOA) Application integration Enterprise resource planning (ERP) system Interoperability Semantic heterogeneity','Abstract The concept of a service-oriented architecture provides a technical foundation for delivering, using, and integrating software. It can serve as an approach to integrate GIS with other, non-GIS applications. This paper presents and discusses a service-oriented architecture that embraces a GIS and an enterprise resource planning system. The two information systems make mutually required functionalities available as services. This defines the showcase for making GI and non-GI services syntactically and semantically interoperable. The services-based integration leverages open-standard interfacing and, thus, removes syntactic heterogeneity. The integration is discussed in terms of an emergency management scenario. This scenario also helps to outline challenging semantic interoperability issues. When services provided by GIS and non-GIS applications interact, the problem arises how their different conceptualizations should be mapped. This paper analyzes essential ontological distinctions for mapping conceptual schemes in GI locator services and non-GI services. It proposes a hybrid decentralized approach of concept mapping, based on a common top-level ontology.','GeoInformatica',1,'Martin TreiblmayrSimon ScheiderAntonio KrügerMarc von der Linden','springer/soa security.csv','springer','\0'),(1575,'Exploring a multi-faceted framework for SOC: how to develop secure Web-service interactions?','2004','4','','Service oriented computing (SOC) demands an infrastructure that seamlessly integrates all connection points between business processes, services and associated support resources. Parts of the infrastructure may be supported by existing standards such as XACML and BPEL. However, an integral and sound framework that takes into account all these issues and serves as the formal underpinning of this infrastructure is currently lacking. A multi-faceted framework to enforce minimal levels of security not only at the level of the network (e.g., using encryption), but also of business processes, is of paramount importance. To address this challenge, we explore an event-driven framework for service oriented computing (EFSOC) that is organized in four tiers: the event tier, the business process tier, the resource tier, and the access control tier. The event tier encompasses definitions of business-related events, and supports their propagation throughout the business process flow. The business process tier specifies the dynamic interactions between business processes and services. The resource tier describes how service invocations interact with organizational resources, while the access control tier defines access roles that are allowed to invoke certain services.','Research Issues on Data Engineering: Web Services for e-Commerce and e-Government Applications, 2004. Proceedings. 14th International Workshop on',2,'K. Leune; W. J. van den Heuvel; M. Papazoglou','ieee/bpel security.csv','ieee','\0'),(1576,'VULCAN: Vulnerability assessment framework for cloud computing','2013','4','Cloud Computing; Ontology; Vulnerability Assessment','Assessing security of software services on Cloud is complex because the security depends on the vulnerability of infrastructure, platform and the software services. In many systems, the platform or the infrastructure on which the software will actually run may not be known or guaranteed. This implies that the security of the software service must be assured regardless of the underlying infrastructure or platform, requiring a large number of combinations. Another common trend in Cloud and Service oriented Architecture (SoA) environments is Service composition, whereby new services can be created rapidly by composing existing services. Once again, the component services must be tested for security levels on a large number of platform and infrastructure combinations. In this paper we propose a novel vulnerability assessment framework for cloud computing systems. We have designed and developed a prototype of our framework. We also present the design and development of our framework with some use cases. © 2013 IEEE.','',1,'Kamongi P., Kotikela S., Kavi K., Gomathisankaran M., Singhal A.','scopus/service oriented architecture security.csv','scopus','\0'),(1577,'A SOA-based architecture for empowering future collaborative cloud-based industrial automation','2012','14','','The last years we are witnessing of rapid advances in the industrial automation domain, mainly driven by business needs towards agility and supported by new disruptive technologies. Future factories will rely on multi-system interactions and collaborative cross-layer management and automation approaches. Such a factory, configured and managed from architectural and behavioural viewpoints, under the service-oriented architecture (SOA) paradigm is virtualized by services exposed by its key components (both HW and SW). One of the main results of this virtualization is that the factory is transformed into a “cloud of services”, where dynamic resource allocation and interactions take place. This paper presents a view on such architecture, its specification, the main motivation and considerations, as well as the preliminary services it may need to support.','IECON 2012 - 38th Annual Conference on IEEE Industrial Electronics Society',1,'S. Karnouskos; A. W. Colombo; T. Bangemann; K. Manninen; R. Camp; M. Tilly; P. Stluka; F. Jammes; J. Delsing; J. Eliasson','ieee/service oriented architecture security.csv','ieee',''),(1578,'Annotations of security requirements','2012','4','Annotation; Conceptual model; Diagrammatic specification; Security requirements','In current practice of software development, security requirements are specified at the early phases of the software lifecycle. They are then passed on to the development phase to be configured and integrated into low-level details. Accordingly, how to represent security constraint is an important aspect of the total developed system. Typically, in this context, the specifications are based on extending process modeling methods such as UML, BPMN, and colored Petri net. We claim that these descriptions suffer from conceptual discontinuity that disturbs the security needs of tight streams of flows. In this paper, we demonstrate this discontinuity by contrasting examples of extended modeling methods that we recast in a new diagrammatic specification methodology. The resultant new conceptual description provides a specification of data flow characterized by continuity of sequence of events and a fine-grained structure suitable for security annotations and labeling. © 2012 Praise Worthy Prize S.r.l. - All rights reserved.','',2,'Al-Fedaghi S.','scopus/bpmn security.csv','scopus','\0'),(1579,'Johnny: An Autonomous Service Robot for Domestic Environments','2012','12',' Domestic service robots Semantic scene understanding Human robot interaction','Abstract In this article we describe the architecture, algorithms and real-world benchmarks performed by Johnny Jackanapes , an autonomous service robot for domestic environments. Johnny serves as a research and development platform to explore, develop and integrate capabilities required for real-world domestic service applications. We present a control architecture which allows to cope with various and changing domestic service robot tasks. A software architecture supporting the rapid integration of functionality into a complete system is as well presented. Further, we describe novel and robust algorithms centered around multi-modal human robot interaction, semantic scene understanding and SLAM. Evaluation of the complete system has been performed during the last years in the RoboCup@Home competition where Johnnys outstanding performance led to successful participation. The results and lessons learned of these benchmarks are explained in more detail.','Journal of Intelligent & Robotic Systems',1,'Thomas BreuerGeovanny R. Giorgana MacedoRonny HartantoNico HochgeschwenderDirk HolzFrederik HeggerZha JinChristian MüllerJan PaulusMichael ReckhausJosé Antonio Álvarez RuizPaul G. PlögerGerhard K. Kraetzschmar','springer/webservice security.csv','springer',''),(1580,'Review of cyber-physical system architecture','2012','3','CPS architecture; Cyber-Physical Systems; Service-Oriented Architecture','With the goal of accomplish the ubiquitous intelligence in social life, Cyber-Physical Systems (CPS) are getting growing attentions of researchers and engineers. However, the complexity of computing and physical dynamics bring a lot of challenges in the development of CPS, such as integration of heterogeneous physical devices, system verification, security assurance, and so on. A general or unified architecture plays an important part in the process of CPS design. In this paper, we review the current and previous works of CPS architecture, and introduce the main challenges and techniques of architecture development : real-time control, security assurance, integration mechanism. Then we propose a general CPS architecture based on Service-Oriented Architecture (SOA), the main advantage of this proposed architecture is the integration flexibility of services and components. At the end, we introduce the typical applications of CPS, and suggest the future research areas. © 2012 IEEE.','',1,'Hu L., Xie N., Kuang Z., Zhao K.','scopus/service oriented architecture security.csv','scopus','\0'),(1581,'Connectivity abstractions and “service-oriented network” architecture','2012','2','Connectivity abstractions;P2P overlay;Service architecture;Service-oriented network architecture','Current generation networks have been designed only for network connectivity; they have been stretched to the limit with many afterthought add-on features including quality of service, mobility, programmability, and security so that they can be deployed for business applications and processes. As such, service deployment on current networks are difficult, time consuming and with limited successes. This paper suggests a service architecture based on network connectivity abstraction, user connectivity abstraction and application/service connectivity abstraction. The paper also proposes a service-oriented network (SON) architecture that facilitates the development of services and applications regardless of the underlying network access technologies. The architecture is conceived through the consideration of the essential requirements of generic Internet applications from the service and network providers\' perspective that addresses the Service-Oriented Architecture (SOA) application deployment pattern, user location and device mobility, and the structure of IP-converged networks.','Computing, Networking and Communications (ICNC), 2012 International Conference on',1,'D. B. Hoang; C. Pham','ieee/service oriented architecture security.csv','ieee','\0'),(1582,'A cyber security ontology for BPMN-security extensions','2015','','BPMN; Cyber security ontology; Security extension','Every so often a paper is published presenting a new extension for modelling cyber security requirements in Business Process Model and Notation (BPMN). The frequent production of new extensions by experts belies the need for a richer and more expressive representation of security requirements in BPMN processes. One reason for this is that current extensions focus on only specific areas and so fail to provide adequate coverage of the cyber security domain. In this paper, we present our work considering an analysis of existing extensions and identify the security concepts used within each of them. We discuss how there is as yet no single extension which covers a comprehensive range of cyber security concepts. Consequently there is no adequate solution for accurately specifying cyber security requirements within BPMN. In order to address this, we propose a new comprehensive ontology which includes all concepts potentially modellable in BPMN related to cyber security. We explain how this ontology can be used as the basis for developing future BPMN-security extensions, and explore the challenges that must be overcome in order to develop a representation that is both effective and with adequate coverage of security requirements. © 2015 IEEE.','',2,'Maines C.L., Llewellyn-Jones D., Tang S., Zhou B.','scopus/bpmn security.csv','scopus',''),(1583,'Improving Cooperativity in a Workflow Coordination Model over a Pub/Sub Network','2012','0',' workflow scalability publish-subscribe gossip-based algorithms','Abstract The execution of distributed workflows is an advance in state-of-the-art service orchestration that indeed improves scalability. However, it introduces complexity in the coordination model of distributed fragments and hampers the workflow reconfiguration. This work proposes a novel approach that uses cooperative techniques over a Pub/Sub network to improve scalability issues and dynamic executions of distributed workflows. We also propose new Pub/Sub dissemination models and strategies in the form of push gossip-based algorithms for controlling event dissemination.','',1,'Augusto MoralesRamón AlcarriaTomás RoblesEdwin Cedeño','springer/service oriented architecture security.csv','springer','\0'),(1584,'Cloud authorization: exploring techniques and approach towards effective access control framework','2015','0',' authorization access control software as a service extensible access control markup language identity & access management cloud security','Abstract Despite the various attractive features that Cloud has to offer, the rate of Cloud migration is rather slow, primarily due to the serious security and privacy issues that exist in the paradigm. One of the main problems in this regard is that of authorization in the Cloud environment, which is the focus of our research. In this paper, we present a systematic analysis of the existing authorization solutions in Cloud and evaluate their effectiveness against well-established industrial standards that conform to the unique access control requirements in the domain. Our analysis can benefit organizations by helping them decide the best authorization technique for deployment in Cloud; a case study along with simulation results is also presented to illustrate the procedure of using our qualitative analysis for the selection of an appropriate technique, as per Cloud consumer requirements. From the results of this evaluation, we derive the general shortcomings of the extant access control techniques that are keeping them from providing successful authorization and, therefore, widely adopted by the Cloud community. To that end, we enumerate the features an ideal access control mechanisms for the Cloud should have, and combine them to suggest the ultimate solution to this major security challenge — access control as a service (ACaaS) for the software as a service (SaaS) layer. We conclude that a meticulous research is needed to incorporate the identified authorization features into a generic ACaaS framework that should be adequate for providing high level of extensibility and security by integrating multiple access control models.','Frontiers of Computer Science',1,'Rahat MasoodMuhammad Awais ShibliYumna GhaziAyesha KanwalArshad Ali','springer/soa security.csv','springer',''),(1585,'Automated Formal Verification of Application-specific Security Properties','2014','0','','Abstract In the past, formal verification of security properties of distributed applications has been mostly targeted to security protocols and generic security properties, like confidentiality and authenticity. At ESSOS 2010, Moebius et. al. presented an approach for developing Java applications with formally verified application-specific security properties. That method, however, is based on an interactive theorem prover, which is not automatic and requires considerable expertise. This paper shows that a similar result can be achieved in a fully automated way, using a different model-driven approach and state-of-the-art automated verification tools. The proposed method splits the verification problem into two independent sub-problems using compositional verification techniques and exploits one tool for analyzing the security protocol under active attackers and another tool for verifying the application logic. The same case study that was verified in the previous work is used here in order to show how the new approach works.','',1,'Piergiuseppe Bettassa CopetRiccardo Sisto','springer/service oriented architecture security.csv','springer','\0'),(1586,'Security-Oriented Cloud Platform for SOA-Based SCADA','2015','0','Cloud Computing;Critical Infrastructure;SCADA;SOA','During the last 10 years, experts in critical infrastructure security have been increasingly directing their focus and attention to the security of control structures such as Supervisory Control and Data Acquisition (SCADA) systems in the light of the move toward Internet-connected architectures. However, this more open architecture has resulted in an increasing level of risk being faced by these systems, especially as they became offered as services and utilised via Service Oriented Architectures (SOA). For example, the SOA-based SCADA architecture proposed by the AESOP project concentrated on facilitating the integration of SCADA systems with distributed services on the application layer of a cloud network. However, whilst each service specified various security goals, such as authorisation and authentication, the current AESOP model does not attempt to encompass all the necessary security requirements and features of the integrated services. This paper presents a concept for an innovative integrated cloud platform to reinforce the integrity and security of SOA-based SCADA systems that will apply in the context of Critical Infrastructures to identify the core requirements, components and features of these types of system. The paper uses the SmartGrid to highlight the applicability and importance of the proposed platform in a real world scenario.','Cluster, Cloud and Grid Computing (CCGrid), 2015 15th IEEE/ACM International Symposium on',1,'T. Baker; M. Mackay; A. Shaheed; B. Aldawsari','ieee/service oriented architecture security.csv','ieee',''),(1587,'A Cyber Mission Impact assessment tool','2015','','business process modeling; cyber effects; impact assessment; mission assurance; mission impact; simulation','The promise of practicing mission assurance is to be able to leverage an understanding of how mission objectives and outcomes are dependent on supporting cyber resources. This makes it possible to analyze, monitor, and manage your cyber resources in a mission context. In previous work, we demonstrated how process modeling tools can simulate mission systems to allow us to dynamically compute the mission impacts of cyber events. We demonstrated the value of using this approach, but unfortunately practical deployment of our work was hampered by limitations of existing commercial off-the-shelf (COTS) tools for process modeling. To address this deficiency, we have developed our own Cyber Mission Impact Business Process Modeling tool. Although it implements only a functional subset of the business process modeling notation (BPMN), it has, unlike the more generic COTS tools, been specifically designed for the representation of cyber processes, resources, and cyber incident effects. The method and tool are described in this paper. © 2015 IEEE.','',2,'Musman S., Temin A.','scopus/bpmn security.csv','scopus',''),(1588,'ISORC 2012 [front cover]','2012','0','','The following topics are dealt with: distributed real-time systems; dependable computing; secure computing; timing analysis; component-based architectures; service-oriented architectures; multicore platforms; configuration and adaptation; formal validation and formal verification.','2012 IEEE 15th International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing',1,'','ieee/service oriented architecture security.csv','ieee','\0'),(1589,'The Evolution of Jolie','2015','0','','Abstract Jolie is an orchestration language conceived during Sensoria , an FP7 European project led by Martin Wirsing in the time frame 2005–2010. Jolie was designed having in mind both the novel –at project time– concepts related to Service-Oriented Computing and the traditional approach to the modelling of concurrency typical of process calculi. The foundational work done around Jolie during Sensoria has subsequently produced many concrete results. In this paper we focus on two distinct advancements, one aiming at the development of dynamically adaptable orchestrated systems and one focusing on global choreographic specifications. These works, more recently, contributed to the realisation of a framework for programming dynamically evolvable distributed Service-Oriented applications that are correct-by-construction.','',2,'Ivan LaneseFabrizio MontesiGianluigi Zavattaro','springer/bpel security.csv','springer',''),(1590,'Automatic belief network modeling via policy inference for SDN fault localization','2016','0',' SDN Belief network Policy Fault localization','Abstract Fault localization for SDN becomes one of the most critical but difficult tasks. Existing tools typically only address a specific part of the problem (e.g., control plane verification, flow checker). In this paper, we propose a new approach to tackle SDN fault localization by automatically Modeling via Policy Inference (called MPI ) the causality between SDN faults and their symptoms to a belief network. In the MPI system, a service oriented high level policy language is used to specify network services provisioned between end nodes. MPI parses each service provisioning policy to a logical policy view, which consists of a pair of logical end nodes, a traffic pattern specification, and a list of required network functions (or a service function chain). An SDN controller takes the policies from multiple parties and provisions the requested services on its orchestrated SDN network. MPI queries the controller about the network topology and retrieves flow rules from all SDN switches. MPI maps the policy view to the corresponding implementation view, in which all the logical components in the policy view are mapped to the actual system components along with the actual network topology. Referring to the component causality graph templates derived from SDN reference model, the implementation view of the current running network services can be modeled as a belief network. A heuristic fault reasoning algorithm is adopted to search for the most likely root causes. MPI has been evaluated in both a simulation environment and a real network system for its accuracy and efficiency. The evaluation shows that MPI is a highly scalable, effective and flexible modeling approach to tackle fault localization challenges in a highly dynamic and agile SDN network.','Journal of Internet Services and Applications',1,'Yongning TangGuang ChengZhiwei XuFeng ChenKhalid ElmansorYangxuan Wu','springer/webservice security.csv','springer',''),(1591,'A feasibility study of SOA-enabled networked rock bolts','2014','','','The use of rock bolts in the mining industry is a widely used approach for increasing mine stability. However, when compared to the automation industry, where the use of sensors and real-time monitoring of processes have evolved rapidly, the use rock bolts have not changed a lot during the last 100 years. What is missing are technologies for keeping installed rock bolts under real-time and online monitoring. One problem is that rock bolts can become damaged by seismic activities or movements within the rock, and thus lose their load bearing capacity. If that happens, the outer shell of a tunnel\'s walls or ceiling can collapse, with disaster as a result. Therefore, there is a clear need for online and real-time monitoring solutions for strain and thereby stress, as well as seismic activity. In this paper, the current state of art in research around intelligent rock bolts is presented. An intelligent rock bolt is the combination of a traditional rock bolt with an Internet of Things device, i.e. a rock bolt with embedded sensors, actuators, processing capabilities and wireless communication. In the proposed architecture, every rock bolt has its own IPv6 address and can establish a wireless mesh network in an ad-hoc manner. By measuring strain and seismic activity and exposing the sensors in the form of services, large gains in terms of safety and efficiently can be achieved. A number of mining related activities such as stress on the rock bolt can be detected, falling rocks and the presence of mobile machinery can be observed. Since the network is based on standard communication protocols such as IPv6, it is vital to add security mechanisms to prevent eavesdropping and tampering of data traffic. By utilizing the real-time monitoring capabilities of a network of Internet-connected intelligent rock bolt, it is possible to drastically improve monitoring of mining activities and thereby providing workers with a safer working environment. © 2014 IEEE.','',1,'Eliasson J., Pereira P.P., Mäkitaavola H., Delsing J., Nilsson J., Gebart J.','scopus/soa security.csv','scopus','\0'),(1592,'Automated Resource Assignment in BPMN Models Using RACI Matrices','2012','2',' Responsibility management RACI matrix RACI-aware BPMN model RASCI sub-process RASCI meta model','Abstract Organizations need to manage the responsibility of their employees with respect to all the activities that are daily carried out within them. Process-oriented organizations need to do it, in addition, in accordance to the business processes their members participate in. However, powerful mechanisms to manage responsibility in combination with business processes are missing in current modelling notations, usually limited to indicating who is in charge of undertaking the activities. RACI matrices, on the contrary, were specifically conceived to provide responsibility management information. They enable the specification of the level of responsibility each human resource has with regard to each activity carried out in a company, ranging from the performer of the work to the resource that must approve it or receive certain notifications. In this paper, we propose the use of RACI matrices together with business process models to manage human resource responsibilities in processes. Focused on a concrete type of RACI matrices, called RASCI, we introduce a novel approach to automatically generate a BPMN model with RASCI information given a BPMN model that does not handle resources, and a RASCI matrix. The resulting model is BPMN-compliant and, thus, it is ready to be executed in existing business process management systems. With this approach, the assignment of responsibilities and the management of processes can be designed separately, while being executed together.','',2,'Cristina CabanillasManuel ResinasAntonio Ruiz-Cortés','springer/bpel security.csv','springer','\0'),(1593,'A privacy preserving method using privacy enhancing techniques for location based services','2013','6','location tracking; privacy enhancing methods; security','The move towards service-oriented architectures and the increasing usage of mobile devices to access such services are two of the major changes in modern computing. Information about the user, their location and their trajectory can provide additional context information to a service, leading to useful applications such as directing a user to the nearest bus stop and displaying which buses are due to arrive in the next minutes. While this type of information can be useful, when the offered services are trusted, it also introduces privacy issues relating to gathering of location information for non-trusted applications like location-based marketing or user behaviour profiling. Users can limit their location information provided to a service but these controls are simple, making it important for the user to understand how their location information is being used by services. This paper reviews some of the methods currently being proposed to reduce the impact of location tracking on user privacy, and presents a novel encryption method for preserving the location and trajectory path of a user using Privacy-Enhancing Technologies. © 2012 Springer Science+Business Media, LLC.','',1,'Buchanan W.J., Kwecka Z., Ekonomou E.','scopus/service oriented architecture security.csv','scopus','\0'),(1594,'Aligning Service-Oriented Architectures with Security Requirements','2012','1',' SOA alignment evolution security requirements','Abstract Aligning requirements and architectures is a long-standing concern in software engineering. Alignment is crucial in the area of systems evolution, wherein requirements and system architectures keep changing after system deployment. We address a specific alignment problem, namely, checking the compliance of a service-oriented architecture—representing a composite service—with security requirements. Service-oriented architectures are dynamic (services can be replaced on-the-fly), and assessing compliance with security requirements is key, since non-compliance may lead to sanctions as well as privacy violation. After motivating and describing the problem, we propose algorithms to check two specific security requirements: non-disclosure and non-repudiation. We illustrate the approach using an e-government scenario.','',2,'Mattia SalnitriFabiano DalpiazPaolo Giorgini','springer/bpel security.csv','springer','\0'),(1595,'Operationalizing Data Governance via Multi-level Metadata Management','2015','0',' Data warehouses Data governance Metadata Business rule enforcement','Abstract Today’s rapidly changing and highly regulated business environments demand that organizations are agile in their decision making and data handling. At the same time, transparency in the decision making processes and in how they are adjusted is of critical importance as well. Our research focusses on obtaining transparency by not only documenting but also enforcing data governance policies and their resultant business and data rules by using a multi-level metadata approach. The multi-level approach makes a separation between different concerns: policy formulation, rule specification and enforcement. This separation does not only give more agility but also allows many different implementation architectures. The main types are described and evaluated.','',1,'Stefhan van HelvoirtHans Weigand','springer/service oriented architecture security.csv','springer',''),(1596,'Riding Out the Storm: How to Deal with the Complexity of Grid and Cloud Management','2012','4',' Grid computing Cloud computing Autonomic computing Theoretical models','Abstract Over the last decade, Grid computing paved the way for a new level of large scale distributed systems. This infrastructure made it possible to securely and reliably take advantage of widely separated computational resources that are part of several different organizations. Resources can be incorporated to the Grid, building a theoretical virtual supercomputer. In time, cloud computing emerged as a new type of large scale distributed system, inheriting and expanding the expertise and knowledge that have been obtained so far. Some of the main characteristics of Grids naturally evolved into clouds, others were modified and adapted and others were simply discarded or postponed. Regardless of these technical specifics, both Grids and clouds together can be considered as one of the most important advances in large scale distributed computing of the past ten years; however, this step in distributed computing has came along with a completely new level of complexity. Grid and cloud management mechanisms play a key role, and correct analysis and understanding of the system behavior are needed. Large scale distributed systems must be able to self-manage, incorporating autonomic features capable of controlling and optimizing all resources and services. Traditional distributed computing management mechanisms analyze each resource separately and adjust specific parameters of each one of them. When trying to adapt the same procedures to Grid and cloud computing, the vast complexity of these systems can make this task extremely complicated. But large scale distributed systems complexity could only be a matter of perspective. It could be possible to understand the Grid or cloud behavior as a single entity, instead of a set of resources. This abstraction could provide a different understanding of the system, describing large scale behavior and global events that probably would not be detected analyzing each resource separately. In this work we define a theoretical framework that combines both ideas, multiple resources and single entity, to develop large scale distributed systems management techniques aimed at system performance optimization, increased dependability and Quality of Service (QoS). The resulting synergy could be the key to address the most important difficulties of Grid and cloud management.','Journal of Grid Computing',1,'Jesús MontesAlberto SánchezMaría S. Pérez','springer/soa security.csv','springer','\0'),(1597,'A Decade of Business Process Management Conferences: Personal Reflections on a Developing Discipline','2012','4','','Abstract The Business Process Management (BPM) conference series celebrates its tenth anniversary. This is a nice opportunity to reflect on a decade of BPM research. This paper describes the history of the conference series, enumerates twenty typical BPM use cases, and identifies six key BPM concerns: process modeling languages, process enactment infrastructures, process model analysis, process mining, process flexibility, and process reuse. Although BPM matured as a research discipline, there are still various important open problems. Moreover, despite the broad interest in BPM, the adoption of state-of-the-art results by software vendors, consultants, and end-users leaves much to be desired. Hence, the BPM discipline should not shy away from the key challenges and set clear targets for the next decade.','',2,'Wil M. P. van der Aalst','springer/bpel security.csv','springer','\0'),(1598,'Top-K Graph Pattern Matching: A Twig Query Approach','2012','2','','Abstract There exist many graph-based applications including bioinformatics, social science, link analysis, citation analysis, and collaborative work. All need to deal with a large data graph. Given a large data graph, in this paper, we study finding top- k answers for a graph query, and in particular, we focus on top- k cyclic graph queries where a graph query is cyclic and can be complex. The capability of supporting top- k cyclic graph queries over a data graph provides much more flexibility for a user to search graphs. And the problem itself is challenging. After investigating a direct yet infeasible solution, we propose a new twig query approach. In our approach, we first identify a spanning tree of the cyclic graph query, which is used to generate a list of ranked twig answers on-demand. Then we identify the top- k answers for the graph query based on the twig answer list. In order to find the best twig query in solving a given cyclic graph query, cost-based optimization for twig query selection is studied. We conducted extensive performance studies using a real dataset, and we report our findings in this paper.','',2,'Xianggang ZengJiefeng ChengJeffrey Xu YuShengzhong Feng','springer/bpel security.csv','springer','\0'),(1599,'Genericity for model management operations','2013','3',' Model management Genericity Reusability Epsilon Eclipse Modelling Framework','Abstract Models are the core assets in model-driven engineering, and are therefore subject to all kind of manipulations, such as refactorings, animations, transformations into other languages, comparisons and merging. This set of model-related activities is known as model management . Even though many languages and approaches have been proposed for model management, most of them are type-centric, specific to concrete meta-models, and hence leading to specifications with a low level of abstraction and difficult to be reused in practice. In this paper, we introduce ideas from generic programming into model management to raise the level of abstraction of the specifications of model manipulations and facilitate their reuse. In particular we adopt generic meta-model concepts as an intermediate, abstract meta-model over which model management specifications are defined. Such meta-model concepts are mapped to concrete meta-models, so that specifications can be applied to families of meta-models satisfying the concept requirements. As a proof of concept, we show the implementation of these ideas using the Eclipse Modeling Framework and the Epsilon family of languages for model management.','Software & Systems Modeling',2,'Louis RoseEsther GuerraJuan de LaraAnne EtienDimitris KolovosRichard Paige','springer/bpmn security.csv','springer','\0'),(1600,'Contractual proximity of business services','2015','','Goal modeling; Outsourcing; Quality of service; Service composition; Service contract; Service engineering; Serviceability','Business services arguably play a central role in service-based information systems as they would fill in the gap between the technicality of Service-Oriented Architecture and the business aspects captured in Enterprise Architecture. Business services have distinctive features that are not typically observed in Web services, e.g. significant portions of the functionality of business services might be executed in a humanmediated fashion. The representation of business services requires that we view human activity and human-mediated functionality through the lens of computing and systems engineering. Given the specification of a relatively complex business service, practitioners can deal with its complexity either by breaking it down into constituent services through common practices such as outsourcing or delegation, or by picking up an existing group of services (e.g. from a service catalog) that best realize that functionality. To address these challenges, we devise a formal machinery to (averify if a group of services contractually match the specification of the larger service in question; (b) to assess the contractual proximity of service groups relative to a contractual service specification to help decide which combination of services from a catalog best realize the desired functionality. Keywords: © Springer International Publishing Switzerland 2015.','',1,'Lê L.-S.','scopus/service oriented architecture security.csv','scopus','\0'),(1601,'BPMN security extensions for healthcare process','2015','','BPMN; Healthcare; Internet of things; Security requirement','The modelling of healthcare process is inherently complicated due to its multi-disciplinary character. Business Process Model and Notation (BPMN) has been considered and applied to model and demonstrate the flexibility and variability of the activities that involved in healthcare process. However, with the growing usage of digital information and IoT technology in the healthcare system, the issue of information security and privacy becomes the main concern in term of both store and management of electronic health record (EHR). Therefore, it is very important to capture the security requirements at conceptual level in order to identify the security needs in the first place. BPMN is lacking of the ability to model and present security concepts such as confidentiality, integrity, and availability in a suitable way. This will increase the vulnerability of the system and make the future development of security for the system more difficult. In this paper we provide a solution to model the security concepts in BPMN by extending it with new designed security elements, which can be integrated with the BPMN diagram smoothly. © 2015 IEEE.','',2,'Sang K.S., Zhou B.','scopus/bpmn security.csv','scopus','\0'),(1602,'Towards a Built-In Digital Forensics-Aware Framework for Web Services','2015','','Admissibility;Digital forensics;Evidence;SABSA;Web services','In this paper, we consider digital forensics in the context of Web services based infrastructures. We propose a built in forensics aware framework called (Fi4SOA). Fi4SOA uses Sherwood Applied Business Security (SABSA) methodology to merge forensics properties with business requirements at service design phase, and a reasoning machine over a new proposed ontology to define forensics properties and monitor forensics events at run time phase.','2015 11th International Conference on Computational Intelligence and Security (CIS)',1,'A. Akremi; H. Sallay; M. Rouached; M. F. Sriti; M. Abid; R. Bouaziz','ieee/service oriented architecture security.csv','ieee',''),(1603,'A Stateful Web Service Firewall for BPEL','2007','4','','Today, the Business Process Execution Language (BPEL) is the most emerging specification for Web Service Composition, which is an important part of the SOA paradigm. Defining a stateful communication protocol, BPEL enables potential for new security vulnerabilities. In this paper, we present a severe Denial-of-Service attack on a leading BPEL engine, illustrating new threats on availability in the context of BPEL. Derived from our observations, we developed a protection concept and implemented an application level firewall fending these types of attacks.','IEEE International Conference on Web Services (ICWS 2007)',2,'N. Gruschka; M. Jensen; N. Luttenberger','ieee/bpel security.csv','ieee','\0'),(1604,'Business Processes and Standard Operating Procedures: Two Coins with Similar Sides','2013','0',' Process Management Business Processes Standard Operating Procedures Emergency Management','Abstract Concepts and tools for process management have often been transferred to emergency management projects. The driving objective has been to bring assistance to planning procedures and quality assurance. This seems rather natural, since idea and concept of business processes and standard operating procedures appear like siblings. In this paper we discuss whether the concepts of process modelling are adequate for managing standard operating procedures and whether emergency management organisations can capitalize on off-the-shelf business process modelling tools to prepare for disasters more effectively. This paper presents ample evidence that prevailing business process means are inappropriate for emergency management in light of organisational as well as technology issues. In a nutshell, business process concepts are utilized as a “golden hammer” in many emergency management projects, a suitable tool for all purposes. Yet, the question rises whether emergency management issues are always fitting nails.','',2,'Gertraud PeinelThomas Rose','springer/bpmn security.csv','springer','\0'),(1605,'Web Stream Reasoning: From Data Streams to Actionable Knowledge','2015','1',' Stream reasoning Continuous query processing Quality of information Logic programming Semantic web Inductive logic reasoning','Abstract A fast growing torrent of data is being created by companies, social networks, mobile phones, smart homes, public transport vehicles, healthcare devices, and other modern infrastructures. Being able to unlock the potential hidden in this torrent of data would open unprecedented opportunities to improve our daily lives that were not possible before. Advances in the Internet of Things (IoT), Semantic Web and Linked Data research and standardization have already established formats and technologies for representing, sharing and re-using (dynamic) knowledge on the Web. However, transforming data into actionable knowledge requires to cater for (i) automatic mechanisms to discover and integrate heterogeneous data streams on the fly and extract patterns for applications to use, (ii) concepts and algorithms for context and quality-aware integration of semantic data streams, and (iii) the ability to synthesize domain-driven commonsense knowledge (and answers derived from it) with expressive inference that can capture decision analytics in a scalable way. In the first part of this lecture we will characterize the main approaches to stream processing for the Web of Data, showing how data quality and context can guide semantic integration. In the second part of this lecture we will focus on rule-based Web Stream Reasoning and illustrate how scalability and uncertainty issues can be addressed in a rule-based approach. We will discuss new challenges and opportunities in Web Stream Reasoning, briefly considering economical and societal impact in real application scenarios in a smart city context, and we will conclude by providing a brief overview of ongoing research and standardization activities in this area.','',1,'Alessandra Mileo','springer/service oriented architecture security.csv','springer',''),(1606,'On the realizability of collaborative services','2013','1',' Service composition Compositional specification of collaborations Realizability of distributed implementations Distributed system design Design guidelines Deriving component behavior from global specifications Workflow for collaborations UML activity diagrams Service oriented architecture','Abstract This paper considers compositional specifications of services using UML 2 collaborations, activity and interaction diagrams, and addresses the realizability problem for such specifications: given a global specification, can we construct a set of communicating system components whose joint behavior is precisely the specified global behavior? We approach the problem by looking at how the sequencing of collaborations and local actions may be described using UML activity diagrams. We identify the realizability problems for each of the sequencing operators, such as strong and weak sequence, choice of alternatives, loops, and concurrency. The nature of these realizability problems and possible solutions are discussed. This brings a new look at already known problems: we show that given some conditions, certain problems can already be detected at an abstract level, without looking at the detailed interactions of the collaborations, provided that we know the components that initiate and terminate the different collaborations.','Software & Systems Modeling',2,'Humberto Nicolás CastejónGregor von BochmannRolv Bræk','springer/bpel security.csv','springer','\0'),(1607,'Contract RBAC in cloud computing','2013','4',' RBAC Datacenter Cloud computing Contract Contract RBAC','Abstract Cloud computing is a fast growing field, which is arguably a new computing paradigm. In cloud computing, computing resources are provided as services over the Internet and users can access resources based on their payments. The issue of access control is an important security scheme in the cloud computing. In this paper, a Contract RBAC model with continuous services for user to access various source services provided by different providers is proposed. The Contract RBAC model extending from the well-known RBAC model in cloud computing is shown. The extending definitions in the model could increase the ability to meet new challenges. The Contract RBAC model can provide continuous services with more flexible management in security to meet the application requirements including Intra-cross cloud service and Inter-cross cloud service. Finally, the performance analyses between the traditional manner and the scheme are given. Therefore, the proposed Contract RBAC model can achieve more efficient management for cloud computing environments.','The Journal of Supercomputing',1,'Hsing-Chung (Jack) ChenMarsha Anjanette ViolettaCheng-Ying Yang','springer/soa security.csv','springer','\0'),(1608,'Multi-layer Architecture For Storing Visual Data Based on WCF and Microsoft SQL Server Database','2015','0',' WCF Microsoft SQL server Dependency injection Inversion of control Entity framework Multi-layer architecture k -means SURF Content-based image retrieval','Abstract In this paper we present a novel architecture for storing visual data. Effective storing, browsing and searching collections of images is one of the most important challenges of computer science. The design of architecture for storing such data requires a set of tools and frameworks such as SQL database management systems and service-oriented frameworks. The proposed solution is based on a multi-layer architecture, which allows to replace any component without recompilation of other components. The approach contains five components, i.e. Model, Base Engine, Concrete Engine, CBIR service and Presentation. They were based on two well-known design patterns: Dependency Injection and Inverse of Control. For experimental purposes we implemented the SURF local interest point detector as a feature extractor and K -means clustering as indexer. The presented architecture is intended for content-based retrieval systems simulation purposes as well as for real-world CBIR tasks.','',1,'Rafał GrycukMarcin GabryelRafał SchererSviatoslav Voloshynovskiy','springer/service oriented architecture security.csv','springer',''),(1609,'A Study of Security Requirements Negotiation','2014','0','game theory;service computing;service level agreement;system security','In service computing, a system is integrated by using the services of many service providers. The security of the services that constitutes the system affects the security of the integrated system. This paper studied the issues relating to security requirements of an integrated system using a game theoretical approach. It modeled a class of service computing applications as a security game. Using the game, the service providers and the system owners can analyse the security level and the security investment of the system. Using the results of the analysis, the system owners and the service providers can be more objective in their service level agreement negotiation.','Dependable, Autonomic and Secure Computing (DASC), 2014 IEEE 12th International Conference on',1,'X. Ye','ieee/service oriented architecture security.csv','ieee','\0'),(1610,'Deployment of Service-Based Processes in the Cloud Using Petri Net Decomposition','2014','0',' Service deployment Business processes Cloud Computing Petri Net','Abstract Cloud Computing is a new distributed computing paradigm that consist in provisioning of infrastructure, software and platform resources as services. Platform services are limited to proprietary or specific programming frameworks and APIs. This issue is not adequate for the deployment of service-based processes which are likely to be composed of a diverse and heterogeneous set of services. In this paper, we propose a new approach to provision appropriate platform resources in order to deploy service-based processes in existing Cloud platforms. Our approach consists in slicing a given process to deploy into a set of elementary services through a Petri net decomposition approach. Source codes of obtained services are generated. After that, the services are packaged in our already developed service micro-containers and deployed in any target PaaS. For the slicing, we defined algorithms to slice their correspondent Petri net into a set of dependent WF-nets and to determine the orchestration to follow for their execution. We also provided the proof of preservation of initial business process semantics when executing the WF-nets. To illustrate and show the feasibility of our proposition, we provide a realistic use case scenario, i.e. Shop process deployment in Cloud Foundry PaaS.','',2,'Sami YanguiKais KlaiSamir Tata','springer/bpel security.csv','springer',''),(1611,'Balanced multi-perspective checking of process conformance','2016','3',' Process mining Data Petri nets Multi-perspective conformance checking Log-process alignment Mathematics Subject Classification 68U35','Abstract Organizations maintain process models that describe or prescribe how cases (e.g., orders) are handled. However, reality may not agree with what is modeled. Conformance checking techniques reveal and diagnose differences between the behavior that is modeled and what is observed. Existing conformance checking approaches tend to focus on the control-flow in a process, while abstracting from data dependencies, resource assignments, and time constraints. Even in those situations when other perspectives are considered, the control-flow is aligned first, i.e., priority is given to this perspective. Data dependencies, resource assignments, and time constraints are only considered as “second-class citizens”, which may lead to misleading conformance diagnostics. For example, a data attribute may provide strong evidence that the wrong activity was executed. Existing techniques will still diagnose the data-flow as deviating, whereas our approach will indeed point out that the control-flow is deviating. In this paper, a novel algorithm is proposed that balances the deviations with respect to all these perspectives based on a customizable cost function. Evaluations using both synthetic and real data sets show that a multi-perspective approach is indeed feasible and may help to circumvent misleading results as generated by classical single-perspective or staged approaches.','Computing',2,'Felix MannhardtMassimiliano de LeoniHajo A. ReijersWil M. P. van der Aalst','springer/bpmn security.csv','springer',''),(1612,'Remote display solution for video surveillance in multimedia cloud','2015','1',' Remote display Video encoding Multimedia cloud Real-time system','Abstract Cloud computing offers sufficient computing and storage resources that can be used to provide multimedia services. Migrating the existing multimedia service to cloud brings a new challenging issue, i.e., remote display of video contents. To reduce the bandwidth consumption especially for mobile users, it is desired to encode video before sending to client. Existing encoding methods have unique advantages and disadvantages, differing their performance under varying situations. Thus, we propose to use multi-encoder method to solve the real-time remote display problem for remote multimedia cloud. To select the most appropriate encoder, factors including cost, application requirement, network, client device and codec implementation are considered. In this paper, we form a non-linear programming model, and provide an example to illustrate how to apply the proposed model for getting desired optimization.','Multimedia Tools and Applications',1,'Biao SongMohammad Mehedi HassanYuan TianM. Shamim HossainAtif Alamri','springer/service oriented architecture security.csv','springer',''),(1613,'Cyber-physical-social-thinking space based science and technology framework for the Internet of Things','2015','0',' Internet of Things (IoT) cyber-physical-social-thinking science technology discipline 关键词 物联网 信息-物理-社会-思维融合空间 科学 技术 学科 031102','Abstract The Internet of Things (IoT) as an emerging network paradigm is bringing the next scientific and technological revolution for ubiquitous things’ interactions in cyber-physical-social spaces. The IoT influences the current science and technology system by enabling its relatively stable interrelations for an inevitable architecture reconfiguration. In this paper, we aim to explore an updated science and technology framework for the IoT. Particularly, a novel cyber-physical-social-thinking (CPST) space is established by involving an attractive concept of the Internet of Thinking (IoTk), and a science and technology framework is accordingly proposed referring to both scientific aspect (i.e., cyber-physical, social, and noetic sciences) and technological aspect (i.e., fundamental, physical, cyber, and social technologies). According to the perspective of the traditional Chinese culture, we explain the established science and technology framework, in which the “Five Elements” (i.e., wood, fire, earth, metal, and water) have common properties with the restructured cyber-physical science in the IoT. Moreover, we introduce a scenario of smart city to identify the technological aspect in the IoT, and discuss the key enabling technologies, including resource management, energy management, data management, session management, security and privacy, loop control, space-time consistency, nanotechnology, and quantum technology. It turns out that the established science and technology framework will launch an innovation for academia and industry communities.','Science China Information Sciences',1,'HuanSheng NingHong Liu','springer/soa security.csv','springer',''),(1614,'A situational method for semi-automated Enterprise Architecture Documentation','2016','3',' Enterprise Architecture Documentation Maintenance Model Automation Situational method','Abstract The business capabilities of modern enterprises crucially rely on the enterprises’ information systems and underlying IT infrastructure. Hence, optimization of the business-IT alignment is a key objective of Enterprise Architecture Management (EAM). To achieve this objective, EAM creates, maintains and analyzes a model of the current state of the Enterprise Architecture. This model covers different concepts reflecting both the business and the IT perspective and has to be constantly maintained in response to ongoing transformations of the enterprise. In practice, EA models grow large and are difficult to maintain, since many stakeholders from various backgrounds have to contribute architecture-relevant information. EAM literature and two practitioner surveys conducted by the authors indicate that EA model maintenance, in particular the manual documentation activities, poses one of the biggest challenges to EAM in practice. Current research approaches target the automation of the EA documentation based on specific data sources. These approaches, as our systematic literature review showed, do not consider enterprise specificity of the documentation context or the variability of the data sources from organization to organization. The approach presented in this article specifically accounts for these factors and presents a situational method for EA documentation. It builds on four process-supported documentation techniques which can be selected, composed and applied to design an organization-specific documentation process. The techniques build on a meta-model for EA documentation, which is implemented in an EA-repository prototype that supports the configuration and execution of the documentation techniques. We applied our documentation method assembly process at a German insurance company and report the findings from this case study in particular regarding practical applicability and usability of our approach.','Software & Systems Modeling',2,'Matthias FarwickChristian M. SchwedaRuth BreuInge Hanschke','springer/bpmn security.csv','springer',''),(1615,'Using model transformation to refactor use case models based on antipatterns','2016','0',' Use cases Antipatterns Model transformation Refactoring UML Use case modeling quality attributes','Abstract Use Case modeling is a popular technique for documenting functional requirements of software systems. Refactoring is the process of enhancing the structure of a software artifact without changing its intended behavior. Refactoring, which was first introduced for source code, has been extended for use case models. Antipatterns are low quality solutions to commonly occurring design problems. The presence of antipatterns in a use case model is likely to propagate defects to other software artifacts. Therefore, detection and refactoring of antipatterns in use case models is crucial for ensuring the overall quality of a software system. Model transformation can greatly ease several software development activities including model refactoring. In this paper, a model transformation approach is proposed for improving the quality of use case models. Model transformations which can detect antipattern instances in a given use case model, and refactor them appropriately are defined and implemented. The practicability of the approach is demonstrated by applying it on a case study that pertains to biodiversity database system. The results show that model transformations can efficiently improve quality of use case models by saving time and effort.','Information Systems Frontiers',1,'Yasser A. KhanMohamed El-Attar','springer/service oriented architecture security.csv','springer',''),(1616,'Web platforms for scientific research','2016','0','','Abstract This paper considers current trends in creating systems for convenient and secure remote submission (by authorized users) of jobs to computing resources of different types, including supercomputers, clusters, cloud resources, storages, databases, and grid infrastructures. Presently, large computing and storage resources are capable of solving, on their own, the majority of practical problems in the field of science and technology. Therefore, the focus in developing next-generation middleware shifts from global grid systems towards creating convenient and efficient means of access to large individual resources. A web platform for remote access to computing resources is a set of special web services and application-oriented web interfaces. Such web platforms, on a centralized basis, provide users with a number of services interrelated by a specific application area, principle of access, and interface. In this paper, general principles of creating such platforms are considered and some particular implementations of web platforms are briefly described.','Programming and Computer Software',1,'A. P. KryukovA. P. DemichevS. P. Polyakov','springer/soa security.csv','springer',''),(1617,'Challenges and assessment in migrating IT legacy applications to the cloud','2015','','Cloud computing; cloud migration; cloud modeling; interoperability; portability; service-centric engineering; service-oriented architecture; service-oriented computing; vendor Lock-in','The incessant trend where software engineers need to redesign legacy systems adopting a service-centric engineering approach brings new challenges for software architects and developers. Today, engineering and deploying software as a service requires specific Internet protocols, middleware and languages that often complicate the interoperability of software at all levels. Moreover, cloud computing demands stringent quality requirements, such as security, scalability, and interoperability among others, to provide services and data across networks more efficiently. As software engineers must face the problem to redesign and redeploy systems as services, we explore in this paper the challenges found during the migration of an existing system to a cloud solution and based on a set of quality requirements that includes the vendor Lock-in factor. We also present a set of assessment activities and guidelines to support migration to the Cloud by adopting SOA and Cloud modeling standards and tools. © 2015 IEEE.','',1,'Scandurra P., Psaila G., Capilla R., Mirandola R.','scopus/service oriented architecture security.csv','scopus',''),(1618,'Framework Design of Natural Disasters and Emergency Management System Oriented to Region','2013','0','Disaster emergency;SOA;System integration;Web service','Currently, spatial information technology and emergency management technology are widely used in the 10th Division of the Xinjiang Production and Construction Corps (XPCC), China. In this paper, emergency management system architecture based on Web services and service-oriented architecture (SOA), which is oriented to several kinds of natural disasters and emergent public security events are proposed. By analyzing data characteristics and functional requirements of several kinds of disaster monitoring and evaluation system, we design the logical structure and architecture of emergency response platform oriented to natural disasters and emergent public safety events, and present the system operating mode and emergency resources scheduling mechanism based on service-oriented architecture. Based on the development framework of ESRI products, we provide all kinds of business systems integration solutions, which validated the model system and gave one region-oriented instance of multi-disaster emergency management system design and implementation.','Geo-Information Technologies for Natural Disaster Management (GiT4NDM), 2013 Fifth International Conference on',1,'Q. Z. Zhao; X. R. Zheng; W. Li; C. J. Wang; X. F. Zhang','ieee/service oriented architecture security.csv','ieee','\0'),(1619,'Technology research of publish service with reliable property','2014','','Reliable properties; Service publish; Trustworthy normal formats; Web service','In order to guarantee the reliability of services composition, the author puts forward a few Trustworthy Normal Formats, through the model specification SOA reliability design. This article focuses on the core algorithm to implement these Trustworthy Normal Formats and the validation method of the reliability attributes of service. Finally, release verified service. So that the publishing service has reliable property, provides the security services. © 2014 WIT Press.','',1,'Sun J., Luo N.N., Shen N.','scopus/soa security.csv','scopus','\0'),(1620,'A Framework to Monitor Cloud Infrastructure in Service Oriented Approach','2013','1','Cloud;Intrusion Detection;Monitoring;Services','Cloud computing processes and stores the organization\'s sensitive data in the third party infrastructure. Monitoring these activities within the cloud environment is a major task for the security analysts and the cloud consumer. The cloud service providers may voluntarily suppress the security threats detected in their Infrastructure from the consumers. The goal is to decouple Intrusion Detection System (IDS) related logic from individual application business logic and adhere to the Service Oriented Architecture Standards. This paper provides a framework for Intrusion Detection and reporting service to the cloud consumers based on the type of applications and their necessary security needs. Cloud consumers can choose the desired signatures from this framework to protect their applications. The proposed technique is deployed in existing open source cloud environment with minimum changes. A proof-of-concept prototype has been implemented based on Eucalyptus open source packages to show the feasibility of this approach. Our results show that this framework provides effective way to monitor the cloud infrastructure in service oriented approach.','Advances in Computing and Communications (ICACC), 2013 Third International Conference on',1,'J. P. Veigas; K. C. Sekaran','ieee/service oriented architecture security.csv','ieee','\0'),(1621,'The Converged Service Oriented Architecture in Smart Home Service','2012','1','converged service oriented architecture (CSOA);smart grid;smart home service','Smart home has become a popular application all over the world. However, the service to interact with smart grid, and the service to guide residents utilize power, are ignored. In this paper, we propose an effective converged service oriented architecture (CSOA) to give a solution for supplying a converged service in smart homes. This architecture not only supports diversified service integrated with smart power consumption service and bi-directional interaction service but supports converged communication service. The architecture is evaluated in practice, and the initial result shows that converged service makes life more comfortable, healthy and energy efficient.','Cyber-Enabled Distributed Computing and Knowledge Discovery (CyberC), 2012 International Conference on',1,'S. Ma; X. Chen; G. Song; J. Wang; L. Sun; J. Yan','ieee/service oriented architecture security.csv','ieee','\0'),(1622,'Understanding the Cloud: The Social Implications of Cloud Computing and the Need for Accountability','2015','0',' Cloud computing Accountability Public understanding','Abstract Five years ago, cloud computing was one of the top emerging new technologies, nowadays it is almost common place. This rapid introduction of cloud business models in our society coincides with critical questions on the cloud’s risks, such as security and privacy. Moreover, there seems to be an increased demand for accountable behaviour in the cloud. This paper explores how society understands the cloud, its related risks and the need for accountability in the cloud. This exploration provides insight in the social implications of cloud and future Internet services and the way cloud and accountability tools will be adopted in society.','',1,'Maartje G. H. NiezenWouter M. P. Steijn','springer/service oriented architecture security.csv','springer',''),(1623,'Persuasive software design patterns for social influence','2014','8',' Software patterns Persuasive systems design Social influence Behavior change support systems Persuasive technology','Abstract This article describes software design techniques for social influence as software design patterns, instantiating social influence features defined in the persuasive systems design (PSD) model. The article draws on literature from PSD, social psychology and software patterns to derive the social influence patterns, which are then implemented in a conceptual system. This paves the way for an important research track within persuasive systems research. The ultimate aim of these persuasive software patterns was to develop generalizable techniques that could aid the development of social support features in any persuasive system.','Personal and Ubiquitous Computing',1,'Michael OduorTuomas AlahäiväläHarri Oinas-Kukkonen','springer/soa security.csv','springer','\0'),(1624,'Realization of a data traceability and recovery service for a trusted authority service co-ordination within a Cloud environment','2015','0','','Abstract Data traceability and recovery are very important concerns when moving data to the Cloud. The Enhanced Watermarking Approach for Data Integrity and Non-repudiation in Rational Databases (EWRDN) provides data security means as integrity, secrecy, non-repudiation and privacy using data watermarking and compression techniques. These capabilities may enhance the whole security and trust of service providers. It gives the data owners the ability to monitor and recover data, if required. Co-ordinations between different services for data storage, manipulation and retrieval over the Cloud represents the milestone in composing the Database as a Service. Until now and to the best of our knowledge, such a service is not yet realized in a real Cloud environment. In this article, a realization for a proposed EWRDN service with data traceability capabilities is elaborated with the required performance analysis which is the main contribution of this work. A Trusted Authority service co-ordination to operate the proposed service is introduced as well. The results have shown that, the proposed service co-ordination can provide the data traceability features and stands against most of the experienced data security threats through the experiments. Moreover, EWRDN service as a differentiated quality service has been proven to provide two different data compression qualities. It has been shown that within an EWRDN co-ordination, a fixed recovery ratio of compression has been achieved.','Soft Computing',1,'Nour ZawawiMohamed HamdyR. GharyM. F. Tolba','springer/service oriented architecture security.csv','springer',''),(1625,'A systematic process for obtaining the behavior of context-sensitive systems','2016','0',' Context-sensitive systems Behavior Statechart Goal models Requirements Derivation GO2S','Abstract Background Context-sensitive systems use contextual information in order to adapt to the user’s current needs or requirements failure. Therefore, they need to dynamically adapt their behavior. It is of paramount importance to specify and analyze the intended behavior of these systems before they are fully implemented. The behavioral specification can be used for requirements validation in order to check if these systems will be able to achieve their goals. Moreover, the reasoning about properties of these systems, such as deadlocks, reachability, completeness and correctness of the system, can be supported. Therefore, it is of paramount importance to have an approach to specify the dynamic behavior of the context-sensitive systems. In this work, we propose the GO2S (GOals to Statecharts) process to systematically derive the behavior of context-sensitive systems, expressed as statecharts, from requirements models, described as goal models. Results The GO2S process addresses the specification of the tasks required for monitoring of requirements satisfaction as well as the system adaptation according to the context, the operationalization of non-functional requirements and prioritization of alternatives to be used at runtime (variants). It is an iterative process centered on the incremental refinement of a goal model, obtaining different views of the system (design, contextual, behavioral). Furthermore, we conducted a controlled experiment to evaluate the statecharts produced following GO2S process (experimental group) in relation to the ones elaborated in ad-hoc fashion (control group). Conclusions The experiment results showed that the structural complexity of the statecharts of the experimental group was lower in relation to the control group. Moreover, the average of functionalities whose behavior was modeled according to the specification and the time spent to produce the models of the experimental group were higher in relation to the control group. Besides, the subjects agreed that the GO2S process is easy to use.','Journal of Software Engineering Research and Development',2,'Jéssyka VilelaJaelson CastroJoão Pimentel','springer/bpmn security.csv','springer',''),(1626,'A Tool to Support the Collection of User Preferences and Device Characteristics to Enable UI Adaptability in Web 2.0 Applications','2014','0','','Abstract We present in this paper a tool that supports the collection of user preferences within the set of components developed in the i2web project to enable UI adaptability of web 2.0 applications. The tool (called Model Management System, MMS) is based upon a semantic web modelling framework to describe user preferences and device capabilities, combined with state-of-the-art models of web applications. This work builds upon previous efforts of the authors [1] leveraged with the use of the semantic framework Composite Capability/Preference Profiles (CC/PP [2]). The MMS gathers information on user preferences and supports user and application providers in discovering the characteristics of the device utilized by the user when accessing the application.','',1,'Philip AckermannCarlos A. VelascoEvangelos Vlachogiannis','springer/service oriented architecture security.csv','springer','\0'),(1627,'Design of a Domain-Specific Language Based on a Technology-Independent Web Service Framework','2015','0',' Domain-specific languages Code generation Service-oriented architectures Web services','Abstract Nowadays web services gain more and more importance in allowing a standardized access to remote information without being tied to a specific form of presentation. The majority of such data interfaces is either based on the architectural REST style following World Wide Web specifications or the more protocol-oriented SOAP, which allows the definition of XML transfer structures. In this paper we introduce an extensible framework for the abstraction of technological differences between service technologies like REST and SOAP. It provides the basis for the design of a domain-specific language (DSL), which allows the technology-independent declaration of web services. A code generator derived from the DSL grammar translates the service declarations into corresponding framework elements and creates stub methods for the implementation of the services’ business logic.','',1,'Florian RademacherMartin PetersSabine Sachweh','springer/service oriented architecture security.csv','springer',''),(1628,'An architecture for data security in cloud computing','2014','4','Cloud computing; data privacy; data security; symmetric cryptography; virtualization','Cloud computing is a more flexible, cost effective and proven delivery platform for providing business or consumer services over the Internet. Cloud computing supports distributed service oriented architecture, multi-user and multi-domain administrative infrastructure. So, it is more prone to security threats and vulnerabilities. At present, a major concern in cloud adoption is towards its security and privacy. Security and privacy issues are of great concern to cloud service providers who are actually hosting the services. In most cases, the provider must guarantee that their infrastructure is secure and clients\' data and applications are safe, by implementing security policies and mechanisms. The security issues are organized into several general categories: trust, identity management, software isolation, data protection, availability reliability, ownership, data backup, data portability and conversion, multi platform support and intellectual property. In this paper, it is discuss about some of the techniques that were implemented to protect data and propose architecture to protect data in cloud. This architecture was developed to store data in cloud in encrypted data format using cryptography technique which is based on block cipher. © 2014 IEEE.','',1,'Sugumaran M., Murugan B.B., Kamalraj D.','scopus/service oriented architecture security.csv','scopus','\0'),(1629,'A formal model for the interoperability of service clouds','2012','4',' Service cloud Abstract state service Service-oriented computing Service mediation Service ontology','Abstract Large-scale service-oriented computing is based on the idea that services from various servers are combined into one distributed application. Referring to a collection of services on one server as a “service cloud”, the problem investigated in this paper is to define formal high-level specifications of such distributed applications and to enable the location of suitable services for them. Based on the language-independent model of Abstract State Services (AS 2 s), which serves as a universal integrated model for data and software as services, we extend AS 2 s by high-level action schemes called “plots” as a means to specify permitted sequences of service operations. On these grounds, we develop a model for service mediators, that is, specifications of composed services in which service slots have to be filled by actual services, and investigate matching conditions for slots of mediators and services. For a services to match a slot in a mediator, a (generalised) projection of the mediator must comply with the plot of the service. Furthermore, the service must be semantically adequate, which requires the use of a service ontology.','Service Oriented Computing and Applications',1,'Hui MaKlaus-Dieter ScheweBernhard ThalheimQing Wang','springer/soa security.csv','springer','\0'),(1630,'Choice-Based Authentication: A Usable-Security Approach','2014','0','','Abstract Authentication is an important security component of almost any software application. It serves as the application’s security front door by controlling access with the goal of protecting the confidentiality and integrity of the system. However, with the large variety of software applications that an end user interacts with daily, authentication is becoming a usability issue that has the potential to weaken a system’s overall security. The increasing complexity of dealing with a variety of authentication mechanisms often causes end users to develop negative security behaviours, such as writing down passwords. Moreover, some of the currently available authentication mechanisms, such as alphanumeric passwords, raise universal access issues due to both the issue of remembering a complex sequence of characters and the difficulty some individuals may have in entering that exact sequence on a keyboard or mobile device. This article proposes an authentication approach that seeks to address these usability, universal access, and security issues.','',1,'Yasser M. HausawiWilliam H. AllenGisela Susanne Bahr','springer/service oriented architecture security.csv','springer','\0'),(1631,'Security Policy Monitoring of Composite Services','2014','0',' monitoring secure service composition security policy complex event processing SOA BPMN','Abstract One important challenge the Aniketos platform has to address is the effective monitoring of services at runtime to ensure that services behave as promised. A service developer plays the role that is responsible for constructing service compositions and the service provider is responsible for offering them to consumers of the Aniketos platform. Typically, service consumers will have different needs and requirements; they have varying business goals and different expectations from a service, for example in terms of functionality, quality of service and security needs. Given this, it is important to ensure that a service should deliver for which it has been selected and should match the consumer’s expectations. If it fails, the system should take appropriate subsequent reactions, e.g., notifications to the service consumer or service designer. In this chapter, we present the policy-driven monitoring framework which is developed as part of the Aniketos project. The monitoring framework allows different user-specified policies to be monitored simultaneously. The monitoring is performed at the business level, as well as at the implementation level, which allows for checking the policies of composite services as well as atomic ones. The framework sends an alarm in case of policy violation to notify the interested parties and triggers re-composition or re-configuration of the service.','',2,'Muhammad AsimArtsiom YautsiukhinAchim D. BruckerBrett LempereurQi Shi','springer/bpmn security.csv','springer',''),(1632,'Penetration Testing Tool for Web Services Security','2012','10','Penetration Testing Tool;SOAP-based Web services;SOAPAction spoofing;WS-Addressing spoofing;WS-Security','XML-based SOAP Web Services are a widely used technology, which allows the users to execute remote operations and transport arbitrary data. It is currently adapted in Service Oriented Architectures, cloud interfaces, management of federated identities, eGovernment, or millitary services. The wide adoption of this technology has resulted in an emergence of numerous - mostly complex - extension specifications. Naturally, this has been followed by a rise in large number of Web Services attacks. They range from specific Denial of Service attacks to attacks breaking interfaces of cloud providers [1], [2] or confidentiality of encrypted messages [3]. By implementing common web applications, the developers evaluate the security of their systems by applying different penetration testing tools. However, in comparison to the wellknown attacks as SQL injection or Cross Site Scripting, there exist no penetration testing tools for Web Services specific attacks. This was the motivation for developing the first automated penetration testing tool for Web Services called WS-Attacker. In this paper we give an overview of our design decisions and provide evaluation of four Web Services frameworks and their resistance against WS-Addressing spoofing and SOAPAction spoofing attacks.','2012 IEEE Eighth World Congress on Services',1,'C. Mainka; J. Somorovsky; J. Schwenk','ieee/service oriented architecture security.csv','ieee',''),(1633,'Dynamic composition of web services based on event driven approach in SOA','2014','','B2B; Composition; Ontology; OWL; OWL-S; QoS; SOA','Dynamic Composition of Web services is a Key research in the arena of E-commerce. Enterprise applications are developed as a service provider in the web, some of the challenges we are faced by web services are most likely related to composition of services, security and Quality of Services (QoS). Within these challenges, composition of web service turns out to be a big arena of research, because it supports the integration and Interoperability of B2B applications or enterprise application or E-commerce application. Pragmatically dynamic composition of semantic web services specifies better results compared to the traditional method of discovering candidate services for composition. In this study we present the degree of matching and selection of web services are considered as a salient feature to the dynamic composition of web services. © Maxwell Scientific Organization, 2014.','',1,'Ashok Kumar P.S., Kaarthick B., Gopal Krishna C.','scopus/soa security.csv','scopus','\0'),(1634,'On selective-opening attacks against encryption schemes','2014','2','','At FOCS’99, Dwork et al. put forth the notion of ‘selective- -opening attacks’ (SOAs, for short). In the literature, security against such attacks has been formalized via indistinguishability-based and simulation-based notions, respectively called IND-SO-CPA security and SIM-SO-CPA security. Furthermore, the IND-SO-CPA notion has been studied under two flavors – weak-IND-SO-CPA and full-IND-SO-CPA security. At Eurocrypt’09, Bellare et al. showed the first positive results on SOA security of encryption schemes: 1) any lossy encryption scheme is weak-IND-SO-CPA secure; 2) any lossy encryption scheme with efficient openability is SIM-SO--CPA secure. Despite rich further work on SOA security, the (un)feasibility of full--IND-SO-CPA remains a major open problem in the area of SOA security. The elusive nature of the full-IND-SO-CPA notion of security is attributed to a specific aspect of the security game, namely, the challenger requiring to perform a super-polynomial time task. Not only do we not know whether there exists a scheme that is full-IND-SO-CPA secure, but we also do not know concrete attacks against popular schemes such as the ElGamal and Cramer-Shoup schemes in the full-IND-SO-CPA model. The contribution of our work is three-fold. 1. Motivated by the difficulty in understanding (un)feasibility of the full-IND-SO-CPA notion, we study a variant of this notion that is closer in spirit to the IND-CPA notion but still embodies the security captured by the full-IND-SO-CPA notion. We observe that the weak form of our variation does not introduce any significant change to the weak-IND-SO-CPA notion; that is, the weak form of our notion is equivalent to the weak-IND-SO-CPA notion. 2. Interestingly, we can show that a large class of encryption schemes can be proven insecure for the full form of our notion. The large class includes most known constructions of weak-IND-SO-CPA secure schemes and SIM-SO-CPA secure schemes and also popular schemes like the ElGamal and Cramer-Shoup schemes. 3. Our third contribution studies the complexity of SIM-SO-CPA security. Complementing the result of Bellare et al., we show that lossiness is not necessary to achieve SIM-SO-CPA security. More specifically, we present a SIM-SO-CPA scheme that is not a lossy encryption scheme (regardless of efficient open ability). Since SIM-SO-CPA security implies weak-IND-SO-CPA security, it follows as a corollary that the converses of both the implications proved by Bellare et al. do not hold. Furthermore, as a corollary of our techniques, on a slightly unrelated but useful note, we obtain that lossiness is not required to obtain non-committing encryption. Previously, at Eurocrypt’09, Fehr et al. showed a construction of a non-committing encryption scheme from trapdoor permutations and this scheme was, as noted by the authors, possibly not lossy. Our scheme amounts to the first construction of a non-committing encryption scheme that is provably not lossy. © Springer International Publishing Switzerland 2014.','',1,'Ostrovsky R., Rao V., Visconti I.','scopus/soa security.csv','scopus','\0'),(1635,'Context-aware dissemination of information and services in heterogeneous network environments','2014','4',' Context-awareness Context similarity Data dissemination Fuzzy MADM pervasive computing Service platform Quality of Information','Abstract The Internet of Things and the advent of cloud computing promotes a global scale Machine-to-Machine (M2M) communication. Dissemination of information and advertising services to the targeted nodes is an important aspect in the performance of the future large scale network systems. With the contextual information inferred from available information, delivery of services can be performed in a more efficient way. Context-awareness is a key ingredient in any ubiquitous and pervasive system and provides intelligence to the system, allowing computing devices make appropriate and timely decisions on behalf of users. Semantic support for M2M communication can be enhanced if it leverages the available information and contextual data. In this paper we present a methodology for a context-aware publish-subscribe based approach to dissemination of information and services and a service selection method which is based on the idea of utilizing network information as services that is delivered via application programming interfaces. We propose a fuzzy MADM method and a context similarity measure. The proposed method of information dissemination is based on mining the value of a node based on information inferred from the contextual information of the node and contextually similar nodes. We take into account the quality of contextual information in aggregating contextual information from different sources.','Journal of Ambient Intelligence and Humanized Computing',1,'Peyman TalebiFardVictor C. M. Leung','springer/soa security.csv','springer','\0'),(1636,'Bluetooth in Intelligent Transportation Systems: A Survey','2015','2',' Bluetooth sensing Traffic monitoring Intelligent transportation systems','Abstract The rise of Bluetooth-equipped devices in personal consumer electronics and in in-car systems has revealed the potential to develop Bluetooth sensor systems for applications in intelligent transportation systems. These applications may include measurements of traffic presence, density, and flow, as well as longitudinal and comparative traffic analysis. A basic Bluetooth sensor system for traffic monitoring consists of a Bluetooth probe device (s) that scans for other Bluetooth-enabled device (s) within its radio proximity, and then stores the data for future analysis and use. The scanned devices are typically on-board vehicular electronics and consumer devices carried by the driver and/or passengers which use Bluetooth communications, and which then reasonably proxy for the vehicle itself. This paper surveys the scope and evolution of these systems, with system attributes and design decisions illustrated via a reference design. The work provides motivation for continued development of non-invasive systems that leverage the existing communication infrastructure and consumer devices that incorporate short range communication technology like Bluetooth.','International Journal of Intelligent Transportation Systems Research',1,'M. R. FriesenR. D. McLeod','springer/service oriented architecture security.csv','springer',''),(1637,'Platform-level Support for Authorization in Cloud Services with OAuth 2','2014','1','Authorization;Cloud;OAuth 2;Platform as a Service;Security','The OAuth 2 web authorization framework allows services to act on behalf of users when interacting with other services. It avoids sharing username and passwords across services, thus, in principle protecting users from several threats. However, it is known that the implementation of this kind of authorization protocol is tricky, and potentially leads to vulnerable web services. In this paper we present a toolkit for Java-based Cloud platforms which facilitates the deployment of the OAuth 2 authorization framework into existing web services. We developed a set of interceptors, using aspect-oriented programming techniques for SOA, to handle the main OAuth flow. Secondly, we created an Eclipse plug-in to integrate OAuth into cloud services with minimum effort.','Cloud Engineering (IC2E), 2014 IEEE International Conference on',1,'J. Sendor; Y. Lehmann; G. Serme; A. Santana de Oliveira','ieee/soa security.csv','ieee','\0'),(1638,'Managing license compliance in free and open source software development','2012','1',' License compliance Free and open source software Compliance management Rights expression languages Compatibility analysis','Abstract License compliance in Free and Open Source Software development is a significant issue today and organizations using free and open source software are predominately focusing on this issue. The non-compliance to licenses in free and open source software development leads to the loss of reputation and the high costs of litigation for organizations. Towards an automated compliance management, we use the Open Digital Rights Language to implement the clauses of open source software licenses in a machine interpretable way and propose a novel algorithm that analyzes compatibility between free and open source software licenses. Also, we describe a framework that inductively manages compliance of license clauses in a free and open source software development. We simulate and evaluate the formalized license compliance management by analyzing a real-time open source software project GRASS.','Information Systems Frontiers',1,'G. R. GangadharanVincenzo D’AndreaStefano De PaoliMichael Weiss','springer/service oriented architecture security.csv','springer','\0'),(1639,'SOA-enabled compliance management: instrumenting, assessing, and analyzing service-based business processes','2013','3',' Service-based compliance governance Compliance assessment Signaling instrumentation Key indicators Root cause analysis Reporting dashboard','Abstract Facilitating compliance management, that is, assisting a company’s management in conforming to laws, regulations, standards, contracts, and policies, is a hot but non-trivial task. The service-oriented architecture (SOA) has evolved traditional, manual business practices into modern, service-based IT practices that ease part of the problem: the systematic definition and execution of business processes. This, in turn, facilitates the online monitoring of system behaviors and the enforcement of allowed behaviors—all ingredients that can be used to assist compliance management on the fly during process execution. In this paper, instead of focusing on monitoring and runtime enforcement of rules or constraints, we strive for an alternative approach to compliance management in SOAs that aims at assessing and improving compliance. We propose two ingredients: (i) a model and tool to design compliant service-based processes and to instrument them in order to generate evidence of how they are executed and (ii) a reporting and analysis suite to create awareness of a company’s compliance state and to enable understanding why and where compliance violations have occurred. Together, these ingredients result in an approach that is close to how the real stakeholders—compliance experts and auditors—actually assess the state of compliance in practice and that is less intrusive than enforcing compliance.','Service Oriented Computing and Applications',1,'Carlos RodríguezDaniel SchleicherFlorian DanielFabio CasatiFrank LeymannSebastian Wagner','springer/soa security.csv','springer','\0'),(1640,'Wireless Sensor Networks and Service-oriented Architecture, As Suitable Approaches to Be Applied into ITS','2012','0','ITS, SOA, WSN, intelligent transportation systems, navigation, parking systems, service-oriented architecture, web services, wireless sensors networks','In this paper, Wireless Sensor Networks (WSN) and Service-Oriented Architecture (SOA) approaches are analyzed given that represent both emerging and key role for Intelligent Transportations Systems (ITS). However, It is worth noting that WSN and SOA approaches have begun to be applied into ITS separately and day by day these approaches tend to be combined to get the best outcomes for both safety and security for ITS applications. For this reason, a discussion of the principals ITS applications of these two approaches and a case study, that has been designed and implemented to illustrate their advantages, are presented. The case study is focused on support a very useful ITS service associated with the localization of parking spaces.','',1,'Luis Felipe Herrera-Quintero and Francisco Maciá-Pérez and Diego Marcos-Jorquera and Virgilio Gilart-Iglesias','acm/service oriented architecture security.csv','acm','\0'),(1641,'Problems of Data Protection in Industrial Corporations Enterprise Architecture','2015','0','architectural model of management, enterprise architecture, industrial corporation, information infrastructure, information security architecture, service-oriented architecture','The paper investigates and analyzes problems of data protection in industrial corporations at all stages of the life cycle of its architecture. The basic risks and threats of information security are shown up, covering all layers of the enterprise architecture, which must be taken into account when building the security architecture. Also those threats of information security are investigated which are difficult to prevent through a variety of means and methods of special protection.','',1,'V. V. Glukhov and I. V. Ilin and A. B. Anisiforov','acm/service oriented architecture security.csv','acm','\0'),(1642,'The Internet of Things—A survey of topics and trends','2015','23',' Internet of Things IoT Survey Machine to machine Ubiquitous Ambient Context-aware','Abstract The Internet of Things is a paradigm where everyday objects can be equipped with identifying, sensing, networking and processing capabilities that will allow them to communicate with one another and with other devices and services over the Internet to accomplish some objective. Ultimately, IoT devices will be ubiquitous, context-aware and will enable ambient intelligence. This article reports on the current state of research on the Internet of Things by examining the literature, identifying current trends, describing challenges that threaten IoT diffusion, presenting open research questions and future directions and compiling a comprehensive reference list to assist researchers.','Information Systems Frontiers',1,'Andrew WhitmoreAnurag AgarwalLi Da Xu','springer/service oriented architecture security.csv','springer',''),(1643,'Service Creation and Self-management Mechanisms for Mobile Cloud Computing','2013','2',' service components ubiquitous services self-management','Abstract Today, service providers need to develop competitive applications for a quick time-to-market to attract and retain end users. To facilitate the task of developers, we introduce a reference Service Creation Environment based on service component and self-management mechanisms. This environment uses a fairly high integration level using meta-modeling techniques and exchange formats: Meta-Object Facility (MOF), Extensible Markup Language (XML), OVF ++ (Open Virtualization Format). Our approach allows developers to design the basic service components based on Quality of Service (QoS), to build the service by composition, and to manage a mobile session by ubiquitous services and the Virtual Service Community.','',1,'Tatiana AubonnetNoëmie Simoni','springer/service oriented architecture security.csv','springer','\0'),(1644,'A BPMN based secure workflow model','2009','','Authorization; BPMN; Secure workflow; Secure workflow model','Secure workflow has become an important topic in both academia and industry. A secure workflow model can be used to analyze workflow systems according to specific security policies. This model is needed to allow controlled access of data objects, secure execution of tasks, and efficient management and administration of security. In this paper, I propose a BPMN-based secure workflow model to manage specific processes such as authorizations in executing tasks and accessing documents. The secure workflow model is constructed using BPMN-elements. The model is hierarchical and describes a secure workflow system at workflow layer, task layer and data layer. This model ensures the security properties of workflows: integrity, authorization and availability. Moreover, the model is easily readable and understandable.','',2,'Li P.','scopus/bpmn security.csv','scopus','\0'),(1645,'Contextualised Security Operation Deployment Through MDS@run.time Architecture','2015','0','','Abstract The fast development of Cloud-based services and applications have a significant impact on Service Oriented Computing as it provides an efficient support to share data and processes. The de-perimeterised vision involved by these Intelligent Service Clouds lead to new security challenges: providing a consistent protection depending on the business environment conditions and on the deployment platform specific threats and vulnerabilities. To fit this context aware protection deployment challenge, we propose a MDS@run.time architecture, coupling Model Driven Security (MDS) and Models@run.time approaches. By this way, security policies (that can be generated via a MDS process) are interpreted at runtime by a security mediator depending on the context. This proposition is illustrated thanks to a proof of concept prototype plugged on top of the FraSCAti middleware.','',2,'Wendpanga Francis OuedraogoFrédérique BiennierPhilippe Merle','springer/bpmn security.csv','springer',''),(1646,'CIRUS: an elastic cloud-based framework for Ubilytics','2016','0',' Big data analytics Cloud computing Elasticity Internet of Things Middleware Ubilytics','Abstract The Internet of Things (IoT) has become a reality with the availability of chatty embedded devices. The huge amount of data generated by things must be analysed with models and technologies of the “Big Data Analytics”, deployed on cloud platforms. The CIRUS project aims to deliver a generic and elastic cloud-based framework for Ubilytics (ubiquitous big data analytics). The CIRUS framework collects and analyses IoT data for Machine to Machine services using Component-off-the-Shelves (COTS) such as IoT gateways, Message brokers or Message-as-a-Service providers and big data analytics platforms deployed and reconfigured dynamically with Roboconf. In this paper, we demonstrate and evaluate the genericity and elasticity of CIRUS with the deployment of a Ubilytics use case using a real dataset based on records originating from a practical source.','Annals of Telecommunications',1,'Linh Manh PhamAhmed El-RheddaneDidier DonsezNoel de Palma','springer/soa security.csv','springer',''),(1647,'An analysis of security issues for cloud computing','2013','42',' Cloud computing Security SPI model Vulnerabilities Threats Countermeasures','Abstract Cloud Computing is a flexible, cost-effective, and proven delivery platform for providing business or consumer IT services over the Internet. However, cloud Computing presents an added level of risk because essential services are often outsourced to a third party, which makes it harder to maintain data security and privacy, support data and service availability, and demonstrate compliance. Cloud Computing leverages many technologies (SOA, virtualization, Web 2.0); it also inherits their security issues, which we discuss here, identifying the main vulnerabilities in this kind of systems and the most important threats found in the literature related to Cloud Computing and its environment as well as to identify and relate vulnerabilities and threats with possible solutions.','Journal of Internet Services and Applications',1,'Keiko HashizumeDavid G RosadoEduardo Fernández-MedinaEduardo B Fernandez','springer/service oriented architecture security.csv','springer',''),(1648,'Formal Analysis of a Privacy-Preserving Billing Protocol','2013','0',' Privacy Smart Meters Billing Protocol Formal Analysis','Abstract We provide a formal model and a security analysis of the Private Billing Protocol. This formal analysis allowed us to spell out precisely the details of the protocol, the security assumptions as well as the expected security goals. For the formal analysis we used SATMC, a model checker for security protocol analysis that supports the specification of security assumptions and goals as LTL formulae. Further analysis that we conducted manually revealed that the protocol allows for implementations that fail to meet the expected privacy goal. We describe the implications of our findings and discuss how the problem can be avoided.','',1,'Alessandro ArmandoRoberto CarboneAlessio Merlo','springer/service oriented architecture security.csv','springer','\0'),(1649,'A novel, algorithm metadata-aware architecture for biometric systems','2012','0','biometrics architecture;fusion;metadata','Biometric systems have gained tremendous ground over the past years formulating an advancing market and a wide range of challenging technological research fields. Among the main drivers of this context are the promising capabilities of biometric systems for identification and identity verification purposes through a multitude of means (such as iris, face, gait, etc) as well as their profiling potential. From the technological perspective, a wide range of sensors and a wealth of algorithms for feature extraction, pattern recognition and multilevel fusion have been developed, with the evaluation of biometric systems, however, still indicating that required reliability levels and large scale deployment still remain challenging. The main objective of this paper is to present a novel process flow and a resulting advanced architecture for biometric systems which follows the key principles of Service Oriented Architectures (SOA) and allows for system adaptability and scalability; two major requirements for large-scale deployment of such systems. Within this context, a set of new and enhanced components required for the realization of this approach is presented.','Biometric Measurements and Systems for Security and Medical Applications (BIOMS), 2012 IEEE Workshop on',1,'V. Andronikou; S. Xefteris; T. Varvarigou','ieee/service oriented architecture security.csv','ieee','\0'),(1650,'Servitization of manufacturing industries based on cloud-based business model and the down-to-earth implementary path','2014','1',' Servitization of manufacturing industries Cloud-based manufacturing business model Service-oriented manufacturing Cloud manufacturing Down-to-earth path Enabling technologies','Abstract Servitization of manufacturing industries (SMI) is emerging as a new trend all around the world, especially in major manufacturing nations, e.g., USA, Germany, and China, which is believed to be able to upgrade the industry chains and improve the economy. Almost simultaneously, cloud manufacturing (CM) is being generally debated within the academic field as a new manufacturing paradigm. However, little attention was paid to implementing SMI based on cloud-based business model. This paper aims to discuss the ways to make SMI possible through cloud-based manufacturing business model (CMBM) and relevant enabling technologies including CM. Specifically, this paper (1) presents the key elements that motivate SMI and the full definition of SMI; (2) proposes a description of CMBM matching up with the execution of SMI; (3) provides some constructive advices, namely the down-to-earth path, with technology aspects included for the government and enterprises to carry out SMI based on CMBM; and (4) offers a case study related to successful SMI based on CMBM.','The International Journal of Advanced Manufacturing Technology',1,'Xianhe WenXiaojun Zhou','springer/soa security.csv','springer','\0'),(1651,'Blocking probability in optical interconnects in data center networks','2015','1',' Blocking probability Optical interconnects Data center networks','Abstract Cloud computing and Web-based applications are creating a need for powerful data centers. Data centers have a great need for high bandwidth, low latency, low blocking probability, and low bit-error rate to sustain the interaction between different applications. Current data center networks (DCNs) suffer from several problems such as high-energy consumption, high latency, fixed throughput of links, and limited reconfigurability. Electronic switches are low radix and have high latency due to a large hop count since each hop employs a store-and-forward mechanism. Optical interconnects, on the other hand, offer several advantages such as low-energy consumption, high bandwidth, reconfigurability, malleability to changing traffic, high-radix switch design, fast switching transition times, and wavelength multiplexing. These benefits provide the incentive to shift from electrical interconnects to optical interconnects in DCNs. Despite several advantages over their electrical counterparts, the performance of optical interconnects can be further improved by considering some performance parameters of optical interconnects. One such important parameter for the performance of any communication network is the blocking probability. This paper makes a comprehensive investigation of the performance of optical interconnects in different DCN architectures on the basis of blocking probability and concludes by suggesting ways to reduce the blocking.','Photonic Network Communications',1,'Mohsin FayyazKhurram AzizGhulam Mujtaba','springer/soa security.csv','springer',''),(1652,'Acoustic environment identification using unsupervised learning','2014','1','','Abstract Acoustic environment leaves its characteristic signature in the audio recording captured in it. The acoustic environment signature can be modeled using acoustic reverberations and background noise. Acoustic reverberation depends on the geometry and composition of the recording location. The proposed scheme uses similarity in the estimated acoustic signature for acoustic environment identification (AEI). We describe a parametric model to realize acoustic reverberation, and a statistical framework based on maximum likelihood estimation is used to estimate the model parameters. The density-based clustering is used for automatic AEI using estimated acoustic parameters. Performance of the proposed framework is evaluated for two data sets consisting of hand-clapping and speech recordings made in a diverse set of acoustic environments using three microphones. Impact of the microphone type variation, frequency, and clustering accuracy and efficiency on the performance of the proposed method is investigated. Performance of the proposed method is also compared with the existing state-of-the-art (SoA) for AEI.','Security Informatics',1,'Hafiz MalikHasan Mahmood','springer/soa security.csv','springer','\0'),(1653,'Harnessing heterogeneous computational infrastructures for studying metallurgical rolling processes','2014','0','','The paper describes the application of heterogeneous computational infrastructures to study complex metallurgical processes. This goal is achieved by integration of a domain-oriented system (VirtRoll) with a platform for massive parameter studies (Scalarm) on the basis of Service Oriented Architecture (SOA). In particular, technological and security aspects of the integration and permissions delegation are discussed. We describe: a workflow of studying metallurgical processes with the parameter study approach, the domain-oriented system for conducting metallurgical experiments, its integration with the platform for parameter studies along with its enhancements, a sample use of the developed solution and its potential business benefits.','eChallenges e-2014 Conference Proceedings',1,'D. Król; R. SłOta; Ł Rauch; J. Kitowski; M. Pietrzyk','ieee/service oriented architecture security.csv','ieee','\0'),(1654,'Dioptase: a distributed data streaming middleware for the future web of things','2014','0',' Data stream management system Internet of things Streaming Middleware','Abstract The Internet of Things (IoT) is a promising concept toward pervasive computing as it may radically change the way people interact with the physical world, by connecting sensors to the Internet and, at a higher level, to the Web, thereby enacting a Web of Things (WoT). One of the challenges raised by the WoT is the in-network continuous processing of data streams presented by Things, which must be investigated urgently because it affects the future data models of the IoT, and is critical regarding the scalability and the sustainability required by the IoT. This cross-cutting concern has been previously studied in the context of Wireless Sensor Networks (WSN) given the focus on the acquisition and in-network processing of sensed data. However, proposed solutions feature various proprietary and highly specialized technologies that are difficult to integrate and complex to use, which represents a hurdle to their wide deployment. At the other end of the spectrum, cloud-based solutions introduce a too high energy cost for the envisioned IoT scale, considering the energy cost of communication over computation. There is thus a need for a distributed middleware solution for data stream management that leverages existing WSN work, while integrating it with today’s Web technologies in order to support the required flexibility and the interoperability of the IoT. Toward that goal, this paper introduces Dioptase , a lightweight Data Stream Management System for the WoT, which aims to integrate the Things and their streams into today’s Web by presenting sensors and actuators as Web services. The middleware specifically provides a way to describe complex fully-distributed stream-based mashups and to deploy them dynamically, at any time, as task graphs, over available Things of the network, including resource-constrained ones.','Journal of Internet Services and Applications',1,'Benjamin BilletValérie Issarny','springer/service oriented architecture security.csv','springer','\0'),(1655,'Evolution and Revolution in Knowledge-Driven Health IT: A 50-Year Perspective and a Look Ahead','2015','0','','Abstract In this keynote presentation, my intent is to explore the evolution of the field of computer-based clinical decision support (CDS) – and its associated tasks of knowledge acquisition, knowledge modeling, knowledge representation, knowledge management, and knowledge integration into care processes – over the past five decades. I believe that we are now in a period of significant disruption – both in the health care system itself and in the technology to support it. As a result of these disruptors, I am convinced that we will need to not only continue the efforts that have proved useful in the past but also to develop some new strategies to meet the new challenges.','',1,'Robert A. Greenes','springer/service oriented architecture security.csv','springer',''),(1656,'MockAPI: An Agile Approach Supporting API-first Web Application Development','2013','0',' API Model-Driven Development Agile Development Prototyping','Abstract In the last years, agile development methodologies have been widely adopted. However, they still lack support for API requirements while, at the same time, public RESTful APIs are fueling a rapid growth of web applications providing services built on other services. On the other hand, whereas Model-Driven Development techniques successfully increase the productivity in the development of data-intensive web applications, they lack the agility required when developing heterogeneous web applications with frequent requirement changes. In this paper we introduce MockAPI, an approach based on annotating user interface mockups that combines the advantages of agile approaches and Model-Driven Development. We introduce a metamodel for annotations and demonstrate how to derive running API prototypes as starting point for agile development. RESTful API best practices and API-first development are introduced into the agile process. The MockAPI approach defines a set of constraints to accelerate the development of web applications. We also show the results of a brief validation applying MockAPI to popular web sites.','',1,'José Matías RiveroSebastian HeilJulián GrigeraMartin GaedkeGustavo Rossi','springer/service oriented architecture security.csv','springer','\0'),(1657,'BTW 2013 – Zwischen wissenschaftlicher Geschichte und moderner Herausforderung','2013','0','','','Datenbank-Spektrum',1,'Veit KöppenMartin SchälerAlexander GrebhahnGunter Saake','springer/soa security.csv','springer','\0'),(1658,'Problems of data protection in industrial corporations enterprise architecture','2015','','Architectural model of management; Enterprise architecture; Industrial corporation; Information infrastructure; Information security architecture; Service-oriented architecture','The paper investigates and analyzes problems of data protection in industrial corporations at all stages of the life cycle of its ar-chitecture. The basic risks and threats of information security are shown up, covering all layers of the enterprise architecture, which must be taken into account when building the security architecture. Also those threats of information security are inves-tigated which are difficult to prevent through a variety of means and methods of special protection. © 2015 ACM.','',1,'Glukhov V.V., Ilin I.V., Anisiforov A.B.','scopus/service oriented architecture security.csv','scopus',''),(1659,'A generic model decomposition technique and its application to the Eclipse modeling framework','2015','0',' MDE EMF Model decomposition Model comprehension Linear-time algorithm Sub-model lattice OCL EssentialOCL BPMN fUML','Abstract Model-driven software development aims at easing the process of software development by using models as primary artifacts. Although less complex than the real systems, they are based on models tend to be complex nevertheless, thus making the task of handling them non-trivial in many cases. In this paper, we propose a generic model decomposition technique to facilitate model management by decomposing complex models into smaller sub-models that conform to the same metamodel as the original model. The technique is based upon a formal foundation that consists of a formal capturing of the concepts of models, metamodels, and model conformance; a formal constraint language based on EssentialOCL; and a set of formally proved properties of the technique. We organize the decomposed sub-models in a mathematical structure as a lattice, and design a linear-time algorithm for constructing this decomposition. The generic model decomposition technique is applied to the Eclipse modeling framework, and the result is used to build a solution to a specific model comprehension problem of Ecore models based upon model pruning. We report two case studies of the model comprehension method: one in BPMN and the other in fUML.','Software & Systems Modeling',2,'Qin MaPierre KelsenChristian Glodt','springer/bpmn security.csv','springer',''),(1660,'QRA: A Quality Requirements Analysis Approach for Service Systems','2013','0','qualitative reasoning;quality of service;quality requirements;quantitative reasoning;service-oriented systems','Although quality requirements (QRs) are considered as being of crucial importance in today\'s service-oriented systems, existing approaches almost exclusively deal with QRs from the service providers\' perspective (namely late QRs). The motivation for this paper is to address the analysis of QRs from the service customers\' perspective (namely early QRs). The work presented in this paper focuses on the way that early QRs may be modeled and evaluated and demonstrates this approach on a stock trading service system - a real-world practice taken from an international firm in the financial sector. We focus on three QRs that are critical to service systems and especially that of stock trading, namely performance, availability and security. We introduce a modeling paradigm that extends the well-known UML Activity Diagram by explicitly representing these three QRs as an integral part of business process modeling and augments this modeling with quantitative and qualitative reasoning that together provide the means for enhanced decision making by service customers.','Services Computing (SCC), 2013 IEEE International Conference on',1,'J. Sun; L. Zhao; P. Loucopoulos; B. Zhou','ieee/service oriented architecture security.csv','ieee','\0'),(1661,'43--50','2015','0','communications middleware, disaster recovery, network proxy, qos, tactical networks','Many important public services, such as security and public health, as well as the modern tactical military scenarios, rely on Service-oriented Architectures (SoAs) and commercial off-the-shelf (COTS) components to enable the quick development and deployment of distributed services to respond quickly, reduce costs, and ease system integration. However, SoAs make use of verbose networking technologies and require reliable and relatively high bandwidth communications. Tactical scenarios normally cannot rely on such infrastructure and events like natural disasters can severely damage the network infrastructure in rural and urban environments. Thus, there is a need to develop solutions that provide SoA-based application and services running on heterogeneous and often constrained devices that compose tactical and mobile ad-hoc networks with Quality of Service (QoS) levels that meet their requirements. This paper presents the QoS-enabling features and the gateway operational mode (GM) of ACM NetProxy, the network proxy component of a communications middleware specifically developed to support applications in challenged networks. GM allows nodes in an ad-hoc wireless network to be quickly organized and to shape outbound communications to reduce bandwidth consumption and provide QoS. Experimental results obtained during a test in a field demonstration event show its efficiency.','',1,'','acm/soa security.csv','acm',''),(1662,'A System Architecture for Heterogeneous Moving-Object Trajectory Metamodel Using Generic Sensors: Tracking Airport Security Case Study','2015','0','Moving-object database;space–time ontology;space–time path;space???time ontology;space???time path;spatial data engineering;trajectory data modeling;trajectory framework;trajectory metamodel;trajectory metamodel instantiation','This paper proposes a system architecture and case study for a heterogeneous moving-object trajectory metamodel using generic sensors. In order to provide a unified metamodel and powerful framework for trajectory\'s services and queries, the proposed trajectory\'s data model has benefited from advantages of both conceptual and ontological space-time. However, it extends the basic data model of trajectory with new patterns as the space-time path to describe activities of the moving object and the composite region of interest. Additionally, the proposed system is distinguished by providing a framework for dealing with moving-object trajectory in an interoperable way, using heterogonous sensors that traditional data model incapable for this purpose. The proposed system architecture for the moving-object trajectory\'s data model is focused on service composability and data interoperability combining Open Geospatial Consortium (OGC) standards, Service-Oriented Architecture, and streaming technology, to allow applications built using the framework to be scalable and have better performance. The case study presented for tracking travelers at the airport means that passenger locations can be determined with a higher degree of accuracy and precision. Indeed, this system makes it easy to answer complex queries, such as seeing closely where passengers congregate, how much time they spend in stores and restaurants, and where there may be bottlenecks. It will also enable airport retailers to communicate with travelers directly.','IEEE Systems Journal',1,'A. Boulmakoul; L. Karim; A. Elbouziri; A. Lbath','ieee/service oriented architecture security.csv','ieee',''),(1663,'Designing secure service workflows in BPEL','2014','','','This paper presents an approach that we have developed to support the design of secure service based applications in BPEL. The approach is based on the use of secure service composition patterns, which are proven to preserve composition level security properties if the services that are composed according to the pattern satisfy other properties individually. The secure service composition patterns are used for two purposes: (a) to analyse whether a given workflow fragment satisfies a given security property, and (b) to generate compositions of services that could substitute for individual services within the workflow that cause the violation of the security properties. Our approach has been implemented in a tool that is based on Eclipse BPEL Designer. © Springer-Verlag Berlin Heidelberg 2014.','',2,'Pino L., Mahbub K., Spanoudakis G.','scopus/bpel security.csv','scopus',''),(1664,'Is the cloud the future of computing?','2014','','','Cloud computing as a technology is difficult to define because it is evolving without a clear start point and no clear prediction of its future course. Even though this is the case, one can say that it is a continuous evolution of a computer network technology. It extends client-server technology that offers scalability, better utilization of hardware, on-demand applications and storage, and lower costs over the long run. It is done through the creation of virtual servers cloned from existing instances. The cloud technology seems to be in flux; hence, it may be one of the foundations of the next generation of computing. A grid of a few cloud infrastructures may provide computing for millions of users. Cloud computing technology consists of and rests on a number of sound, fundamental, and proven technologies. This includes virtualization, service-oriented architectures, distributed computing, and grid computing. Based on these fundamental and sound computing principles, one wonders whether cloud computing is the next trajectory of computing. This chapter discusses this in depth and also looks at the security issues involved. © 2015 by IGI Global. All rights reserved.','',1,'Kizza J.M., Yang L.','scopus/service oriented architecture security.csv','scopus','\0'),(1665,'Service oriented architecture - Collaborative educational framework','2013','','Modeler; Process choreography; Service oriented architecture','The Service orientation with the educational institutions is a boon to the existing conventional model. There are many advantages which can be measured under the parameters like reusability, resource sharing, time, cost etc. The implementation of SOA may also arise various security issues like privacy, availability etc. The study in this paper analyses and highlights the dynamics of SOA implementation. It is an empirical analysis which adopts a case study method to understand the implication issues of Service Oriented Architecture with the Educational Information system. © 2013 IEEE.','',1,'Kamatchi R.','scopus/service oriented architecture security.csv','scopus','\0'),(1666,'Energy Efficient Sleep Schedule with Service Coverage Guarantee in Wireless Sensor Networks','2016','0',' Wireless sensor network Service oriented architecture Energy efficiency Service coverage Sleep schedule','Abstract Service oriented architecture has been proposed to support collaborations among distributed wireless sensor network (WSN) applications in an open dynamic environment. However, WSN s are resource constraint, and have limited computation abilities, limited communication bandwidth and especially limited energy. Fortunately, sensor nodes in WSN s are usually deployed redundantly, which brings the opportunity to adopt a sleep schedule for balanced energy consumption to extend the network lifetime. Due to miniaturization and energy efficiency, one sensor node can integrate several sense units and support a variety of services. Traditional sleep schedule considers only the constraints from the sensor nodes, can be categorized to a one-layer (i.e., node layer) issue. The service oriented WSN s should resolve the energy optimization issue considering the two-layer constraints, i.e., the sensor nodes layer and service layer. Then, the one-layer energy optimization scheme in previous work is not applicable for service oriented WSN s. Hence, in this paper we propose a sleep schedule with a service coverage guarantee in WSN s. Firstly, by considering the redundancy degree on both the service level and the node level, we can get an accurate redundancy degree of one sensor node. Then, we can adopt fuzzy logic to integrate the redundancy degree, reliability and energy to get a sleep factor. Based on the sleep factor, we furthermore propose the sleep mechanism. The case study and simulation evaluations illustrate the capability of our proposed approach.','Journal of Network and Systems Management',1,'Bo ZhangEndong TongJie HaoWenjia NiuGang Li','springer/soa security.csv','springer',''),(1667,'Virtual machine introspection: towards bridging the semantic gap','2014','0',' Virtual machine introspection','Abstract Virtual machine introspection is a technique used to inspect and analyse the code running on a given virtual machine. Virtual machine introspection has gained considerable attention in the field of computer security research. In recent years, it has been applied in various areas, ranging from intrusion detection and malware analysis to complete cloud monitoring platforms. A survey of existing virtual machine introspection tools is necessary to address various possible research gaps and to focus on key features required for wide application of virtual machine introspection techniques. In this paper, we focus on the evolution of virtual machine introspection tools and their ability to address the semantic gap problem.','Journal of Cloud Computing',1,'Asit MoreShashikala Tapaswi','springer/service oriented architecture security.csv','springer','\0'),(1668,'Everything-as-a-service platform for on-demand virtual enterprises','2014','4',' Web based services Service oriented computing Virtual enterprises Dynamic collaborations Service oriented architectures Cloud computing','Abstract While constructing virtual enterprises, it is crucial to flexibly integrate heterogeneous business resources and processes of different business partners and make them collaborate dynamically. Keeping involved IT systems or components as autonomous and loose-coupled services, the “Everything as a Service” concept supports flexible integration of heterogeneous applications. We adopt this concept and analyze the challenges in virtual enterprise construction, then propose a service platform for on-demand virtual enterprises. The platform supports flexible integration of networked resources, and facilitates virtual enterprise construction with business process utility, trusted service composition and data service centric business collaborations. At the end of the paper, together with a case study, experimental evaluations in contexts of concurrent multi-users are presented, showing the effectiveness and performance of the platform.','Information Systems Frontiers',2,'Gang LiMingchuan Wei','springer/bpel security.csv','springer',''),(1669,'A Service-Oriented Architecture for Scientific Computing on Cloud Infrastructures','2013','0','','Abstract This paper describes a service-oriented architecture that eases the process of scientific application deployment and execution in IaaS Clouds, with a focus on High Throughput Computing applications. The system integrates i) a catalogue and repository of Virtual Machine Images, ii) an application deployment and configuration tool, iii) a meta-scheduler for job execution management and monitoring. The developed system significantly reduces the time required to port a scientific application to these computational environments. This is exemplified by a case study with a computationally intensive protein design application on both a private Cloud and a hybrid three-level infrastructure (Grid, private and public Cloud). Topics. Parallel and Distributed Computing.','',1,'Germán MoltóAmanda CalatravaVicente Hernández','springer/service oriented architecture security.csv','springer','\0'),(1670,'Designing Workflows for Grid Enabled Internet Instruments','2008','1','BPEL;Client Honey Pot;GEII;Workflow','To analyse malicious activity on the Internet, instruments such as network telescopes and honeypots are effective tools that can be deployed. Such tools can be deployed in large scale using Grid computing. Manual deployment of instruments wastes resources because common tasks and solutions are reinvented by different deployers and the resulting architectures are often not interoperable or sufficiently scalable. Research is underway to develop a framework for scalable and automated deployment, with Grid technologies providing a promising basis. The integration of Grid technology with instrumentation has two initiatives. These are CIMA and GRIDCC, with GRIDCC being available as open source. A key area is workflow within the framework, for which BPEL (Business Process Execution Language) is used in GRIDCC and considered for initial use for Grid Enabled Internet Instruments. We have found BPEL has limitations when implementing such as framework, particularly in the areas of concurrency and statefullness. We propose implementation independent workflows and identify extensions to BPEL in order to realise them. We believe that BPEL with modification can be used to implement a framework for Internet instruments-Grid computing integration.','Cluster Computing and the Grid, 2008. CCGRID \'08. 8th IEEE International Symposium on',2,'D. Stirling; I. Welch; P. Komisarczuk','ieee/bpel security.csv','ieee','\0'),(1671,'Security certification of composite services: A test-based approach','2013','2','BPEL; Model-based testing; Security certification; Service composition; Web services','Accurate and lightweight evaluation of web service security properties is a key problem, especially when business processes are dynamically built by composing atomic services provided by different suppliers at runtime. In this paper, we tackle this problem by proposing a security certification approach that virtually certifies a composite service for a set of security properties, starting from certificates awarded to the component services. © 2013 IEEE.','',2,'Anisetti M., Ardagna C.A., Damiani E.','scopus/bpel security.csv','scopus','\0'),(1672,'Monitoring Service Choreographies from Multiple Sources','2012','2',' Monitoring Choreographies Complex Event Processing SOA SLA QoS','Abstract Modern software applications are more and more conceived as distributed service compositions deployed over Grid and Cloud technologies. Choreographies provide abstract specifications of such compositions, by modeling message-based multi-party interactions without assuming any central coordination. To enable the management and dynamic adaptation of choreographies, it is essential to keep track of events and exchanged messages and to monitor the status of the underlying platform, and combine these different levels of information into complex events meaningful at the application level. Towards this goal, we propose a Multi-source Monitoring Framework that we are developing within the EU Project CHOReOS, which can correlate the messages passed at business-service level with observations relative to the infrastructure resources. We present the monitor architecture and illustrate it on a use-case excerpted from the CHOReOS project.','',2,'Amira Ben HamidaAntonia BertolinoAntonello CalabròGuglielmo De AngelisNelson LagoJulien Lesbegueries','springer/bpel security.csv','springer','\0'),(1673,'A Domain Specific Language and Workflow Execution Engine to Enable Dynamic Workflows','2009','0','DSL;Dynamic Workflows;Modularization;Workflow Execution Engine','Workflow engines often being based on WS-BPEL, currently rely on a mix of recovery/modification strategies that are either part of the workflow description, part of the workflow engine, or realized as plugins to the workflow engine. To foster the development of distributed cloud-based workflow engines and novel repair algorithms, workflow engines have to be modularized in order to overcome the static and inflexible APIs provided by these workflow engines. Dynamic features gained by a modularization include the creation of external modules to monitor as well as modify a workflow to provide error handling in conjunction with service level agreement (SLA) constraints. The aim of this paper is to present a flexible workflow execution engine to facilitate the development of a new dynamic infrastructure to realize dynamic workflow engines with a focus on cloud-based environments.','2009 IEEE International Symposium on Parallel and Distributed Processing with Applications',2,'G. Sturmer; J. Mangler; E. Schikuta','ieee/bpel security.csv','ieee','\0'),(1674,'A proposed security service set for VANET SOA','2015','','','In Vehicular Ad Hoc Networks (VANETs), nodes are represented by Vehicles. Communication in VANETs can take place either between vehicles Vehicle-to-Vehicle (V2V), or between Vehicle and Infrastructure (V2I). Securing exchanged messages between Vehicles is of great importance, especially when they are life critical messages. Some of the Previous security researches discussed how to enable secure communication depending on the support of Infrastructure. In this work, security supported by infrastructure is defined by Services Oriented. Service Oriented Architecture (SOA) can be a novel alternative to satisfy all security requirements. We show the completeness of the proposed system by comparing it with previous security researches.','2015 IEEE Seventh International Conference on Intelligent Computing and Information Systems (ICICIS)',1,'S. Ibrahim; M. Hamdy; E. Shaaban','ieee/service oriented architecture security.csv','ieee',''),(1675,'Middleware-Enabled Mobile Framework in mHealth','2013','0','Electronic Health Record;Mobile Cloud Computing;REST;mHealth;middleware;publish/subscribe','The recent advancement in mobile technology has established smartphones and tablet devices as the consumer device nodes to access the Electronic Health Records (EHR). Mobile devices further aid the healthcare professionals to access the EHR on the go and outside a centralized health facility. However, the over reliance on wireless communication mediums (e.g., Wi-FI, and 3.5G/4G) by mobile devices hampers the reliable flow of disseminating the EHR. For instance, there is no guarantee that the medical data from the main Health Information System (HIS) can be consumed on the mobile device of a healthcare professional when there is no connectivity. While a secure caching technique of the medical data on the mobile can be a solution to facilitate offline accessibility, the same technique can lead to challenges of data conflict. Specifically, when the cached data is updated in an offline mode and that information has to be synchronized with the HIS. We investigate efficient means of disseminating the EHR in unreliable networks. Our mobile architectural design consists of mobile nodes, a cloud-hosted middleware and the HIS. The proposal of the middleware is to enforce provenance, services composition, and reliable synchronization of the medical data for faster dissemination. The preliminary evaluations of the proposed approaches show high performance boost in terms of latency optimization and reliability.','Utility and Cloud Computing (UCC), 2013 IEEE/ACM 6th International Conference on',1,'R. K. Lomotey; R. Deters','ieee/service oriented architecture security.csv','ieee','\0'),(1676,'The Language Application Grid','2016','0',' NLP frameworks Web services Service grids Open advancement Resource licensing','Abstract The Language Application (LAPPS) Grid project is establishing a framework that enables language service discovery, composition, and reuse and promotes sustainability, manageability, usability, and interoperability of natural language Processing (NLP) components. It is based on the service-oriented architecture (SOA), a more recent, web-oriented version of the “pipeline” architecture that has long been used in NLP for sequencing loosely-coupled linguistic analyses. The LAPPS Grid provides access to basic NLP processing tools and resources and enables pipelining such tools to create custom NLP applications, as well as composite services such as question answering and machine translation together with language resources such as mono- and multi-lingual corpora and lexicons that support NLP. The transformative aspect of the LAPPS Grid is that it orchestrates access to and deployment of language resources and processing functions available from servers around the globe and enables users to add their own language resources, services, and even service grids to satisfy their particular needs.','',1,'Nancy IdeJames PustejovskyChristopher CieriEric NybergDenise DiPersioChunqi ShiKeith SudermanMarc VerhagenDi WangJonathan Wright','springer/service oriented architecture security.csv','springer',''),(1677,'Architectural Decision-Making in Enterprises: Preliminary Findings from an Exploratory Study in Norwegian Electricity Industry','2013','3',' Architectural decision making enterprise applications empirical study software ecosystem electricity industry','Abstract Motivation: The current literature in the architectural knowledge domain has made a significant contribution related to documenting software architectural decisions. However, not many studies have been conducted to assess the architectural decision-making and decision reuse processes through empirical investigations. Besides, the effect of the relationships among the actors in a software ecosystem on the architectural decisions-making process of each actor is not well studied. Goal: The objective of this paper is to identify the main processes and issues on the architectural decision-making in largescale enterprises by considering the relationships among the enterprises and other actors of the ecosystem. Method: We conducted semi-structured interviews with six Norwegian companies in the software ecosystem of electricity industry. Results: Regarding the architectural decision-making process, the findings are in line with previous empirical studies, showing that most of the companies are not using well-known academic approaches such as ATAM, they are rather using their own procedures. The study also shows that the relationships among the actors of a software ecosystem could significantly affect the architectural-decision making process in each of the actors, for example, by limiting their alternative solutions. Finally, the results confirm that it is advantageous for the enterprises to reuse the architectural decisions across their various projects or for cooperative companies to reuse the decisions across their similar projects. Conclusion: Improving the reusable architectural decision frameworks by considering the relationships among the actors in a software ecosystem would be beneficial for the industry.','',1,'Mohsen AnvaariReidar ConradiLetizia Jaccheri','springer/service oriented architecture security.csv','springer','\0'),(1678,'An intelligent clustering scheme for distributed intrusion detection in vehicular cloud computing','2015','2',' Vehicular cloud Clustering Multimedia healthcare applications Intrusion detection Learning','Abstract In recent years, vehicular cloud computing (VCC) has emerged as a new technology which is being used in wide range of applications in the area of multimedia-based healthcare applications. In VCC, vehicles act as the intelligent machines which can be used to collect and transfer the healthcare data to the local, or global sites for storage, and computation purposes, as vehicles are having comparatively limited storage and computation power for handling the multimedia files. However, due to the dynamic changes in topology, and lack of centralized monitoring points, this information can be altered, or misused. These security breaches can result in disastrous consequences such as-loss of life or financial frauds. Therefore, to address these issues, a learning automata-assisted distributive intrusion detection system is designed based on clustering. Although there exist a number of applications where the proposed scheme can be applied but, we have taken multimedia-based healthcare application for illustration of the proposed scheme. In the proposed scheme, learning automata (LA) are assumed to be stationed on the vehicles which take clustering decisions intelligently and select one of the members of the group as a cluster-head. The cluster-heads then assist in efficient storage and dissemination of information through a cloud-based infrastructure. To secure the proposed scheme from malicious activities, standard cryptographic technique is used in which the auotmaton learns from the environment and takes adaptive decisions for identification of any malicious activity in the network. A reward and penalty is given by the stochastic environment where an automaton performs its actions so that it updates its action probability vector after getting the reinforcement signal from the environment. The proposed scheme was evaluated using extensive simulations on ns-2 with SUMO. The results obtained indicate that the proposed scheme yields an improvement of 10  % in detection rate of malicious nodes when compared with the existing schemes.','Cluster Computing',1,'Neeraj KumarJaskaran Preet SinghRasmeet S. BaliSudip MisraSana Ullah','springer/soa security.csv','springer',''),(1679,'Emerging Techniques for the Engineering of Self-Adaptive High-Integrity Software','2013','1','','Abstract The demand for cost effectiveness and increased flexibility has driven the fast-paced adoption of software systems in areas where requirement violations may lead to financial loss or loss of life. Many of these software systems need to deliver not only high integrity but also self adaptation to the continual changes that characterise such application areas. A challenge long solved by control theory for continuous-behaviour systems was thus reopened in the realm of software systems. Software engineering needs to embark on a quest for self-adaptive high-integrity software . This paper explains the growing need for software capable of both self-adaptation and high integrity, and explores the starting point for the quest to make it a reality. We overview emerging techniques for the engineering of self-adaptive high-integrity software, propose a service-based architecture that aims to integrate these techniques, and discuss opportunities for future research.','',1,'Radu Calinescu','springer/service oriented architecture security.csv','springer','\0'),(1680,'Image-based styling','2016','0',' Styling Image-based representation Visualization model Domain-specific language Taxonomy Optimization Interoperability Service-oriented computing','Abstract The same data can be visualized using various visual styles that each is suitable for specific requirements, e.g., 3D geodata visualized using photorealistic, cartographic, or illustrative styles. In contrast to feature-based styling, image-based styling performed in image space at image resolution allows decoupling styling from image generation and output-sensitive, expressive styling. However, leveraging image-based styling is still impeded. No previous approach allows specifying image-based styling expressively with an extensive inventory of composable operators, while providing styling functionality in a service-oriented, interoperable manner. In this article, we present an interactive system for specifying and providing the functionality of image-based styling. As key characteristics, it separates concerns of styling from image generation and facilitates specifying styling as algebraic compositions of high-level operators using a unified 3D model representation. We propose a generalized visualization model, an image-based styling algebra, two declarative DSLs, an operator taxonomy, an operational model, and a standards-based service interface. The approach facilitates expressive specifications of image-based styling for design, description, and analysis and leveraging the functionality of image-based styling in a service-oriented, interoperable, reusable, and composable manner.','The Visual Computer',1,'Dieter Hildebrandt','springer/service oriented architecture security.csv','springer',''),(1681,'Engineering Trust-Awareness and Self-adaptability in Services and Systems','2014','0','','Abstract The Future Internet (FI) comprises scenarios where many heterogeneous and dynamic entities must interact to provide services (e.g., sensors, mobile devices and information systems in smart city scenarios). The dynamic conditions under which FI applications must execute call for self-adaptive software to cope with unforeseeable changes in the application environment. Models@run.time is a promising model-driven approach that supports the runtime adaptation of distributed, heterogeneous systems. Yet frameworks that accommodate this paradigm have limited support to address security concerns, hindering their usage in real scenarios. We address this challenge by enhancing models@run.time with the concepts of trust and reputation. Trust improves decision-making processes under risk and uncertainty and constitutes a distributed and flexible mechanism that does not entail heavyweight administration. This chapter introduces a trust and reputation framework that is integrated into a distributed component model that implements the models@run.time paradigm, thus allowing software components to include trust in their reasoning process. The framework is illustrated in a smart grid scenario.','',1,'Francisco MoyanoCarmen Fernandez-GagoBenoit BaudryJavier Lopez','springer/service oriented architecture security.csv','springer','\0'),(1682,'An Access Control Model for Service Composite','2007','0','Access Control;BPEL;CSCW','Business Process Execution Language for Web Services is a language, which can be used to define abstract and executable processes. It has became to be the defacto standard of Web Service composition. However, the security aspect of access control is explicitly mentioned to be outside the scope of BPEL. This paper focuses on the implementation of access controls in the BPEL-based process. The existing Task-Based Access Control model was extended. The definition of authorization unit was modified and new types of authorization units were added. Moreover the mapping from the process defined by BPEL to TBAC model was implemented and an approach of using TBAC in BPEL was put forward. The future work was pointed out in the end of the paper.','2007 11th International Conference on Computer Supported Cooperative Work in Design',2,'G. Ji; Y. Tang; F. Huang; P. Wang; G. Wu','ieee/bpel security.csv','ieee','\0'),(1683,'Collaborative privacy framework for minimizing privacy risks in an IPTV social recommender service','2014','0',' Privacy Clustering IPTV network Recommendation systems','Abstract In our connected world, recommender systems have become widely known for their ability to provide expert and personalized referrals to end-users in different domains. The rapid growth of social networks has given a rise to a new kind of systems, which have been termed “social recommender service”. In this context, a software as a service recommender system can be utilized to extract a set of suitable referrals for certain users based on the data collected from the personal profiles of other end-users within a social structure. However, preserving end-users privacy in social recommender services is a very challenging problem that might prevent privacy concerned users from releasing their own profiles’ data or to be forced to release an erroneous data. Thus, both cases can detain the accuracy of extracted referrals. So in order to gain accurate referrals, the social recommender service should have the ability to preserve the privacy of end-users registered in their system. In this paper, we present a middleware that runs on the end-users’ side in order to conceal their profiles data when being released for the recommendation purposes. The computation of recommendation proceeds over this concealed data. The proposed middleware is equipped with a distributed data collection protocol along with two stage concealment process to give the end-users complete control over the privacy of their profiles. We will present an IPTV network scenario along with the proposed middleware. A number of different experiments were performed on real data which was concealed using our two stage concealment process to evaluate the achieved privacy and accuracy of the extracted referrals. As supported by the experiments, the proposed framework maintains the recommendations accuracy with a reasonable privacy level.','Multimedia Tools and Applications',1,'Ahmed M. ElmiserySeungmin RhoDmitri Botvich','springer/service oriented architecture security.csv','springer','\0'),(1684,'Internet of Services','2013','0',' Internet of Services Service Science Service Engineering Web-based Service Industries Global Service Delivery Framework Service Mash-up Service Composition Service Orchestration Service Pricing FIWARE','Abstract As the relentless march towards an Internet of Services (IoS) continues, it is of utmost importance for the telecoms industry to understand what the IoS is and upon what foundations and methodologies the IoS is based and built on. Further, how the telecom industry can leverage IoS research and push IoS capabilities on and beyond through innovation and how those services within the IoS should be designed and implemented need to be understood. Not only are these questions answered but also so as not to remain stationary in the world of IoS, the telecoms industry must comprehend the upcoming challenges and opportunities that the IoS will present. Within this chapter there are two perspectives taken on the more specific aspects of engineering services for the IoS. The first takes a first principles approach whereas the second takes one from the basis of an innovative methodology. This chapter will provide information and insights that seek to answer the former questions, starting with a discussion on what exactly a service is, moving through the innovation, design and implementation of IoS and its services, and finally arriving at a demonstrator of IoS that points towards its own future.','',2,'Javier SorianoChristoph HeitzHans-Peter HutterRafael FernándezJuan J. HierroJuergen VogelAndy EdmondsThomas Michael Bohnert','springer/bpel security.csv','springer','\0'),(1685,'A market-oriented hierarchical scheduling strategy in cloud workflow systems','2013','56',' Cloud workflow system Cloud computing Workflow scheduling Hierarchical scheduling Metaheuristics','Abstract A cloud workflow system is a type of platform service which facilitates the automation of distributed applications based on the novel cloud infrastructure. One of the most important aspects which differentiate a cloud workflow system from its other counterparts is the market-oriented business model. This is a significant innovation which brings many challenges to conventional workflow scheduling strategies. To investigate such an issue, this paper proposes a market-oriented hierarchical scheduling strategy in cloud workflow systems. Specifically, the service-level scheduling deals with the Task-to-Service assignment where tasks of individual workflow instances are mapped to cloud services in the global cloud markets based on their functional and non-functional QoS requirements; the task-level scheduling deals with the optimisation of the Task-to-VM (virtual machine) assignment in local cloud data centres where the overall running cost of cloud workflow systems will be minimised given the satisfaction of QoS constraints for individual tasks. Based on our hierarchical scheduling strategy, a package based random scheduling algorithm is presented as the candidate service-level scheduling algorithm and three representative metaheuristic based scheduling algorithms including genetic algorithm (GA), ant colony optimisation (ACO), and particle swarm optimisation (PSO) are adapted, implemented and analysed as the candidate task-level scheduling algorithms. The hierarchical scheduling strategy is being implemented in our SwinDeW-C cloud workflow system and demonstrating satisfactory performance. Meanwhile, the experimental results show that the overall performance of ACO based scheduling algorithm is better than others on three basic measurements: the optimisation rate on makespan, the optimisation rate on cost and the CPU time.','The Journal of Supercomputing',1,'Zhangjun WuXiao LiuZhiwei NiDong YuanYun Yang','springer/soa security.csv','springer',''),(1686,'Building sustainable parking lots with the Web of Things','2014','3',' Smart parking Sensor networks Web of Things Web services Semantic Web','Abstract Peak-time traffic woes create considerable amount of stress and environmental pollution resulting in an economic loss. Research innovations in areas such as the Web of Things are able to curtail some of these issues by creating scalable and sustainable environments like parking lots, which provide motorists with access to convenient parking spots. We present a scalable parking lot network infrastructure that exposes parking management operations through a judicious mashup of physical things’ services within a parking lot. Our system uses service-oriented architecture, allowing motorists to reserve parking spots in advance. In doing so, our proposed system leverages the use of HTTP and Wi-Fi for the Web enablement and interoperability of things within a parking spot and elevates it as a Smart Parking Spot on the Web. Our suggested semantic Web-based structure for representing things makes it possible to query physical things’ states and services depending on their capabilities and other relevant parking-related parameters. Our performance evaluation reveals that a maximum of 40 % time is saved to find parking spots and also 40 % reduction in air pollution is observed.','Personal and Ubiquitous Computing',1,'Sujith Samuel MathewYacine AtifQuan Z. ShengZakaria Maamar','springer/soa security.csv','springer','\0'),(1687,'Web service platform for automatic generation of O/D matrix','2014','0',' Intelligent transportation system O/D matrix Web services SOA Transportation planning Bluetooth sensors','Abstract Transportation planning is an important process to support the mobility of the cities, which is a growing problem in several Latin American countries. To face this problem, a normal transportation tool has been used, even until now, and it is known as the origin/destination (O/D) matrix. This matrix allows estimation of the movement of users and future demand on the transportation system and helps improve the planning, travel allocation, and routes of transportation. The novelty of this paper is focused on the design and implementation of a web service platform that can construct automatically the O/D matrix. This platform takes advantage of the service-oriented architecture (SOA) approach and web and mobile applications for the construction of this matrix. In addition, the system is used for public transportation system and takes advantage of Bluetooth technology as a very good approach to construct this matrix.','EURASIP Journal on Wireless Communications and Networking',1,'Luis Felipe Herrera-QuinteroKlaus BanseYeimmy Cañon-LozanoAngie Melo-CastilloCesar Augusto Gomez-Perilla','springer/service oriented architecture security.csv','springer','\0'),(1688,'A Risk management model for service-oriented architecture: An application in the implementation of SOA services','2015','','IT risk for service oriented architecture; IT risk management; IT risks systems architecture; Methodology for IT Risk Management for SOA; Service oriented architecture','The risk may be approached through two perspectives: a threat that, should it happen, will cause a negative effect on at least one project objective; and an opportunity, when it causes a positive effect on the project. Managing risks aims to increase the likelihood and impact of positive events and decrease the likelihood and impact of adverse events. In this article, an IT risk management model for service-oriented architecture is presented, formed from the use of the NIST 800-30, FAIR and OCTAVE Allegro. With this model is expected to ensure that any failure in the implementation of service-oriented architecture does not endanger the strategic objectives of the corporation. It is important to consider a related risk to operations-failures and security vulnerabilities or even design and development-may have an impact on the success of the corporation in a campaign or specific initiative or in your image. To demonstrate its use, an application is shown, so the main ideas and contributions of a model of IT risk management will applied in the implementation of service-oriented architecture.','',1,'Da Silva P.C., Monteiro E.L.','scopus/service oriented architecture security.csv','scopus',''),(1689,'An automatic clinical document importance estimator for an existing electronic patient record - Architecture and implementation','2013','','','The goal of the OPTIM project is to optimize the graphical user interface of an electronic health record (EHR) by predicting clinical documents\' relevance and provide a ranked list of relevant documents for the given user at a certain time. This paper describes the architecture of the relevance assignment and ranking prototype and some implementation issues. The prototype\'s design is based on two components: OPTIM Core, with logical representation, estimation server\'s integration and the webservice layer, and the OPTIM WebUI, with the user interface for presenting the results. The prototype was tested in integration with an EHR using a simulated environment. The results were encouraging but yet they revealed a certain lack of security (confidentiality). It has now the capacity of rating 10 documents per second. Nonetheless, the integration of features such as rating clinical relevance based on mathematical models can be included in existing EHR potentially improving their usability. © 2013 IEEE.','',1,'Santos B., Rodrigues P., Cruz-Correia R.','scopus/webservice security.csv','scopus','\0'),(1690,'Enabling Cloud Connectivity for Mobile Internet of Things Applications','2013','12','Bluetooth;Cloud;CoAP;Internet of Things;Low power;Mobile;PAN;Platform;SOA','The number of small embedded devices connected to the Internet is increasing. This growth is mostly due to the large number of Internet of Things (IoT) deployments, with applications such as: industrial monitoring, home automation, and others. One common aspect with the majority of application areas is the lack of mobility. Most IoT devices are stationary and often use IEEE 802.15.4/6LoWPAN solutions. When a high level of mobility is required, the use of IEEE 802.15.4 is not possible without adding additional hardware for the user to carry. In this article, a holistic network architecture consisting of heterogeneous devices is presented. The architecture is composed of Embedded Internet Systems (EIS) and uses standard communication protocols. One important feature is the use of the Service-oriented architecture (SOA) paradigm. The use of SOA, by utilization of the CoAP protocol and standard services, enables the proposed architecture to exchange sensor- and actuator data with an Internet-based cloud as well as a user\'s local cloud consisting of sensor IoT devices, smart phones and laptops. Another component of the architecture is a web-based human-machine interface for configuration, monitoring and visualization of sensor and actuator data using emerging web technologies for structured data processing. Results from experiments and real-world tests show that the proposed architecture can support sample rates of up to several kHz while enabling sensor data to be transmitted to SOA services in real time. This proves that the use of SOA, and Restful web services in particular, is feasible on resource-constrained platforms while supporting true mobility.','Service Oriented System Engineering (SOSE), 2013 IEEE 7th International Symposium on',1,'P. P. Pereira; J. Eliasson; R. Kyusakov; J. Delsing; A. Raayatinezhad; M. Johansson','ieee/service oriented architecture security.csv','ieee',''),(1691,'Service-Oriented Distributed Applications in the Future Internet: The Case for Interaction Paradigm Interoperability','2013','3',' Interoperability interaction paradigms interaction abstractions service oriented architecture enterprise service bus','Abstract The essential issue of interoperability in distributed systems is becoming even more pressing in the Future Internet, where complex applications will be composed from extremely heterogeneous systems. Open system integration paradigms, such as service oriented architecture (SOA) and enterprise service bus (ESB), have provided answers to the interoperability requirement. However, when it comes to integrating systems featuring heterogeneous interaction paradigms, such as client-service, publish-subscribe and tuple space, existing solutions are typically ad hoc and partial, applying to specific interaction protocol technologies. In this paper, we introduce an interoperability solution based on abstraction and merging of the common high-level semantics of interaction paradigms, which is sufficiently general and extensible to accommodate many different protocol technologies. We apply this solution to revisit the SOA- and ESB-based integration of heterogeneous distributed systems.','',2,'Nikolaos GeorgantasGeorgios BouloukakisSandrine BeaucheValérie Issarny','springer/bpel security.csv','springer','\0'),(1692,'Semantic Service Composition Framework for Multidomain Ubiquitous Computing Applications','2012','0',' Collaborative Provisioning Process Service Composition Constructive Description Logics Theorem Proving','Abstract In this paper we propose a semantic framework based on constructive description logic. The main innovative aspect of our work consists in the formalization of a composition in the form of e-contract semantic statements where the semantic and logic correctness/soundness are formally checked. The e-contract model is based on cooperation ontology and includes control rules. This model improves on the one hand the common understanding between heterogeneous domains, and on the other hand, it ensures an efficient control of each service from remote requester and preserves the confidentiality of the know-how and the privacy of the local domains. In the conclusion of this paper we present a health care scenario that demonstrates the feasibility of our framework and the demonstration statements of the e-contract in \\(\\mathcal{BCDL}_0\\) .','',2,'Mohamed HililaAbdelghani ChibaniKarim DjouaniYacine Amirat','springer/bpel security.csv','springer','\0'),(1693,'The Human Side of Software As a Service: Building a Tighter Fit Between Human Experiences and SOA Design Practices','2015','0','SaaS, experience, service design patterns, service design principles, service-oriented architecture','Software as a Service (SaaS) is now recognized as an effective model for the development, deployment, and customization of software. It has been reported that it reduces the costs as well as ensures the long-term sustainability of software systems. Monolithic software systems are seen as a set of interrelated and geographically distributed services over the Internet. Developers and providers can easily customize services while being able to accommodate a large range of stakeholders. At the core of this service orientation of the whole field of software development are the Service-Oriented Architecture (SOA) design principles. These principles detail what we should do, but not how and by whom it has to be done. From a human perspective -- all stakeholders -- we argue that the current SOA design principles can be linked and benefit from the user experience/user-centric design. Such combination can lead to a user experience-centric and SOA-based design approach that guarantees that SaaS is secure, yet trustable, useful, usable and accessible. In this position paper, we reviewed SOA/SaaS from the human dimension with the goal to bridging the gaps between SOA design principles and the User Experience (UX) design communities including Human-Computer Interaction (HCI) and service design. One practical goal is to enhance the SOA, as a technological platform with elements of UX including the social aspects of their interactions within the organizational structure and processes.','',1,'Victoria Karaseva and Ahmed Seffah','acm/service oriented architecture security.csv','acm',''),(1694,'A novel QoS model and computation framework in web service selection','2012','6',' web service QoS','Abstract With the rapid development of e-commerce over Internet, web services have attracted much attention in recent years. Nowadays, enterprises are able to outsource their internal business processes as services and make them accessible via the Web. Then they can dynamically combine individual services to provide new value-added services. With the increasing number of web services having equivalent functionality, the binding procedure is driven by some non-functional, Quality of Service (QoS) criteria, such as the money cost, response time, reputation, reliability or a trade-off between them. Thus, an important problem is, given QoS constraints, how to aggregate and leverage individual service’s QoS information to derive the optimal QoS of the composite service. In this paper, we propose a novel QoS model for performing flexible service selection. The key idea of the model is to relax users’ QoS constraints and try to find the most possible services satisfying users’ QoS requirements. Based on the proposed QoS framework, we develop various algorithms for making service selection on individual and composite services. We also introduce a top- k ranking strategy to reflect a user’s personalized requirements. Experimental evaluation shows the proposed QoS model is efficient and practical.','World Wide Web',1,'Yanan HaoYanchun ZhangJinli Cao','springer/service oriented architecture security.csv','springer','\0'),(1695,'Dynamic carpooling mobility services based on secure multi-agent platform','2012','','Carpooling; Dynamic carpooling; Mobile authentication; Mobility services; Multi-Agent System; Service Oriented Architecture','Carpooling consists in sharing one\'s personal vehicles with one or several passengers in order to share the related costs but also reduce traffic and CO2 emissions. One of the main issues with such a service is that it requires a prior agreement between the driver and the potential passengers. Dynamic carpooling uses an IT system to remove this limitation and provide ways to react to events such as a traffic jam or to provide a precise evaluation of the cost of the trip for each of the involved actors. But it requires accessing potentially sensitive information such as the real time users\' position or their identity. As such, an efficient security mechanism should be implemented to protect data exchanged to provide the service but also to increase the users\' confidence in the tool. This article presents a technological IT solution for dynamic carpooling mobility service based on a secure multi-agent platform in the context of the WiSafeCar (Wireless Traffic Safety Network between Cars) project. It mainly focuses on the security services allowing both the mutual authentication of the users and of the application components with the system. © 2012 IEEE.','',1,'Bonhomme C., Arnould G., Khadraoui D.','scopus/service oriented architecture security.csv','scopus','\0'),(1696,'GARUDA: Pan-Indian distributed e-infrastructure for compute-data intensive collaborative science','2013','0',' Grid computing e-Infrastructure e-Science Virtual communities Networking Grid enable','Abstract GARUDA is a nation-wide grid of computational nodes, mass storage and scientific instruments with an aim to provide technological advancements required to enable compute-data intensive, collaborative applications for the twenty-first century. From a Proof-of-Concept, the GARUDA has evolved to an operational grid, aggregating nearly 70TF-15TB compute–storage power, via high-speed National Knowledge Network and hosts a stack of middleware and tools to enable hundreds of users from diverse communities like life science, earth science, computer aided engineering, material science, etc. Evolution and confluence of research and technologies has led to the maturity of GARUDA grid: there have been addition of several hundred CPUs, large data stores, standardization of grid middleware, research on interoperability between grids and participation from varied application communities that have made significant impact to GARUDA. The GARUDA partner institutes are using this e-infrastructure to grid enable applications of societal and national importance. The authors in this paper present the manner of building a nation-wide operational grid and its evolution, its deliverables, architecture and applications.','CSI Transactions on ICT',1,'N. MangalaB. B. Prahlada RaoSubrata ChattopadhyayR. SridharanN. Sarat Chandra Babu','springer/service oriented architecture security.csv','springer','\0'),(1697,'Toward high efficiency for content-based multi-attribute event matching via hybrid methods','2016','0',' event matching publish/subscribe data dissemination end-to-end communications interval search combinatorial optimization 关键词 事件匹配 发布/订阅 数据分发 端到端通信 区间搜索 组合优化 022315','Abstract Event matching is a core in decoupled end-to-end communications, which are extensively applied to various areas. Event matching seeks the subscriptions that match a given event from a subscription set, however, this work becomes increasingly complicated in content-based multi-attribute scenarios, where events and subscriptions are formed in content, and described by multiple attributes. In addition, large-scale systems are easier to suffer from severe degradation in event matching performance. To this end, this paper presents a high-efficiency content-based multi-attribute event matching algorithm, called HEM (hybrid event matching), which is hybridized by 2 different methods. In HEM, the matching on each single attribute (called single-attribute matching) is processed by a triangle-based matching method or a direct matching method dynamically. All single-attribute matchings are sorted via a fast near-optimal algorithm, and each of them is carried out sequentially. In this manner, the searching space of event matching shrinks gradually, so that the searching performance is boosted along with the process of event matching. Experiments are conducted to evaluate HEM comprehensively, where it is observed that HEM outperforms 3 state-of-the-art counterparts (TAMA, H-TREE and REIN) in main criteria, such as event matching time, insertion time and deletion time. Moreover, the gap of performance between HEM and the counterparts enlarges with the increase of system scale.','Science China Information Sciences',1,'Wenhao FanYuanan LiuBihua Tang','springer/soa security.csv','springer',''),(1698,'Advances in security and multimodality for pervasive computing environments','2013','0','','','Telecommunication Systems',1,'Jong Hyuk ParkChing-Hsien HsuNaveen ChilamkurtiMieso Denko','springer/service oriented architecture security.csv','springer','\0'),(1699,'Migration of an On-Premise Application to the Cloud: Experience Report','2013','1','','Abstract As of today it is still not clear how and when cloud computing should be used. Developers very often write applications in a way that does not really fit a cloud environment, and in some cases without taking into account how quality attributes (like performance, security or portability) are affected. In this paper we share our experience and observations from adopting cloud computing for an on-premise enterprise application in a context of a small software company. We present experimental results concerning a comparative evaluation (w.r.t. performance and cost) of the behavior of the original system both on-premise and on the Cloud, considering different scenarios in the Cloud.','',1,'Pavel RabetskiGerardo Schneider','springer/service oriented architecture security.csv','springer','\0'),(1700,'Coalition Networks for Secure Information Sharing (CoNSIS) (Invited Paper)','2013','2','Communications;Disadvantaged Grids;Management;NNEC;Security;Tactical SOA','The multilateral CONSIS project is related to the migration towards Network Enabled Capabilities (NEC) in the participating countries. As such, CoNSIS aligns with the overarching objective of the NATO NEC (NNEC) to enhance the Alliance\'s ability to federate various capabilities at all levels, military (strategic to tactical) and civilian through networking and information infrastructure. Providing security and efficient network management have been important aspects of this work. The work has been a combination of theoretical studies and field experiments in order to get hands-on experience with the involved technologies. This possibility of addressing radios, networks, SOA, security and management together, has given us knowledge on how the different technologies affect each other and how they may be combined. A follow up project (CoNSIS phase II) is being planned with startup in 2014.','MILCOM 2013 - 2013 IEEE Military Communications Conference',1,'A. Eggen; M. Hauge; O. E. Hedenstad; K. Lund; A. Legaspi; H. Seifert; P. Sevenich; P. Simon','ieee/soa security.csv','ieee','\0'),(1701,'A pluggable service platform architecture for e-commerce','2015','0',' E-commerce platform SOA Cloud integration Reference architecture Pluggability','Abstract In the beginning of the e-commerce era, retailers mostly adopted vertically integrated solutions to control the entire e-commerce value chain. However, they began to realize that to achieve agility, a better approach would be to focus on certain core capabilities and then create a partner ecosystem around them. From a technical point of view, this means it is advised to have a lightweight platform architecture with small core e-commerce functionality which can be extended by additional services from third party providers. In a typical e-commerce ecosystem with diverse information systems of network partners, integration and interoperability become critical factors to enable seamless coordination among the partners. Furthermore an increasing adoption of cloud computing technology could be observed resulting in more challenging integration scenarios involving cloud services. Thus, an e-commerce platform is required that suites the advanced needs for flexible and agile service integration. Therefore, this paper aims to present a reference architecture of a novel pluggable service platform for e-commerce. We investigate on currently available online shop platform solutions and integration platforms in the market. Based on the findings and motivated by literature on service-oriented design, we develop an architecture of a service-based pluggable platform for online retailers. This design is then instantiated by means of a prototype for an e-commerce returns handling scenario to demonstrate the feasibility of our architecture design.','Information Systems and e-Business Management',1,'Fabian AulkemeierMohammad Anggasta ParamarthaMaria-Eugenia IacobJos van Hillegersberg','springer/service oriented architecture security.csv','springer',''),(1702,'Timed Conformance Testing for Orchestrated Service Discovery','2012','0',' Web service discovery orchestrations conformance testing timed testing symbolic execution','Abstract Orchestrations are systems deployed on the Internet where there is a central component (called orchestrator) coordinating other components (called Web services), pre-existing to the orchestration design phase. Web services are made available through repositories on the Internet to orchestration designers. Service discovery refers to the activity of identifying Web services offered by third parties. We propose an approach to discover Web services by taking into account the intended behaviors of Web services as they can be inferred from the orchestrator specifications. Web services are tested with respect to those behaviors to decide whether or not they can be selected. Specifications of orchestrators are Timed Input/Output Symbolic Transition Systems. Web service intended behaviors are elicited by means of symbolic execution and projection techniques. Those behaviors can be used as test purposes for our timed symbolic conformance testing algorithm.','',2,'Jose Pablo EscobedoChristophe GastonPascale Le Gall','springer/bpel security.csv','springer','\0'),(1703,'Abstract Privacy Policy Framework: Addressing Privacy Problems in SOA','2012','0','','Abstract This paper argues that privacy policies in SOA needs a lifecycle model. We formalize the lifecycle of personal data and associated privacy policies in Service Oriented Architectures (SOA), thus generalizing privacy-friendly data handling in cross-domain service compositions. First, we summarize our learning in two research projects (PrimeLife and SecPAL for Privacy) by proposing generic patterns to enable privacy policies in SOA. Second, we map existing privacy policy technologies and ongoing research work to the proposed abstraction. This highlights advantages and shortcomings of existing privacy policy technologies when applied to SOA.','',1,'Laurent BussardUlrich Pinsdorf','springer/service oriented architecture security.csv','springer','\0'),(1704,'Priority-oriented architecture service management on OSGi home-service platform','2013','1','Management system; OSGi; QoS; Smart home','Open Service Gateway initiative (OSGi) platforms integrate a variety of reusable applications and resources, packing them into bundles. These deployed services, which are offered by service providers, can expediently manage home appliances. However, in the user\'s daily life, various services or bundles access to other services directly or indirectly, creating a situation that is likely to generate problems involving non-supportable applications or insufficient hardware resources. OSGi platforms are no way to deal with these situations. Although much research has proposed methods to resolve specific issues, almost all of these methods are incomplete or are unsuitable for the limited resources in households. This paper addresses the wide range of such common home-network applications as those involving health care, home automation, and home security; and both our proposed priority-based principles of a management decision-making mechanism and our framework architecture help ensure the quality of service and or emergency responses. © 2012 Springer Science+Business Media, LLC.','',1,'Cheng S.-T., Chou C.-L., Horng G.-J.','scopus/service oriented architecture security.csv','scopus','\0'),(1705,'Software architecture-based analysis and testing: a look into achievements and future challenges','2013','6','','','Computing',1,'Antonia BertolinoPaola InverardiHenry Muccini','springer/soa security.csv','springer','\0'),(1706,'Towards Business Application Product Lines','2012','1',' software product lines model driven engineering','Abstract With continued increase in business dynamics, it is becoming increasingly harder to deliver purpose-specific business systems in the ever-shrinking window of opportunity. Code-centric software product line engineering (SPLE) techniques show unacceptable responsiveness as business applications are subjected to changes along multiple dimensions that continue to evolve simultaneously. Through clear separation of functional concerns from technology, model-driven approaches enable easy delivery of the same functionality into multiple technology platforms. However, business systems for same functional intent tend to have similar but non-identical functionality. This makes a strong case for bringing in SPLE ideas i.e., what can change where and when , to models. We propose an abstraction that aims to address composition, variability and resolution in a unified manner; describe its model-based realization; and outline the key enablers necessary for raising business application product lines. Early experience of our approach and issues that remain to be addressed for industry acceptance are highlighted.','',2,'Vinay KulkarniSouvik BaratSuman Roychoudhury','springer/bpmn security.csv','springer','\0'),(1707,'A scalable and dynamic application-level secure communication framework for inter-cloud services','2015','1','Cloud computing; Secure communication; Virtual private networks','Most of the current cloud computing platforms offer Infrastructure as a Service (IaaS) model, which aims to provision basic virtualized computing resources as on-demand and dynamic services. Nevertheless, a single cloud does not have limitless resources to offer to its users, hence the notion of an Inter-Cloud environment where a cloud can use the infrastructure resources of other clouds. However, there is no common framework in existence that allows the service owners to seamlessly provision even some basic services across multiple cloud service providers, albeit not due to any inherent incompatibility or proprietary nature of the foundation technologies on which these cloud platforms is built. In this paper we present a novel solution which aims to cover a gap in a subsection of this problem domain. Our solution offers a security architecture that enables service owners to provision a dynamic and service-oriented secure virtual private network on top of multiple cloud IaaS providers. It does this by leveraging the scalability, robustness and flexibility of peer-to-peer overlay techniques to eliminate the manual configuration, key management and peer churn problems encountered in setting up the secure communication channels dynamically, between different components of a typical service that is deployed on multiple clouds. We present the implementation details of our solution as well as experimental results carried out on two commercial clouds. © 2015 Elsevier B.V. All rights reserved.','',1,'Sajjad A., Rajarajan M., Zisman A., Dimitrakos T.','scopus/service oriented architecture security.csv','scopus',''),(1708,'Towards Inherent Privacy Awareness in Workflows','2015','0',' Privacy compliance Workflow modelling Verification Ontologies','Abstract This paper presents a holistic approach to the realisation of Privacy by Design in workflow environments, ensuring that workflow models are rendered privacy-aware already at their specification phase. In this direction, the proposed framework, considering the particular technical requirements stemming from data protection principles, is centred around the following features: a novel, ontology-based approach to workflow modelling, which manages, unlike all other existing technologies, to adequately capture privacy aspects pertaining to workflow execution; the appropriate codification of privacy requirements into compliance rules and directives; an automated procedure for the verification of workflow models and their subsequent transformation, if needed, so that they become inherently privacy-aware before being deployed for execution.','',2,'Maria N. KoukoviniEugenia I. PapagiannakopoulouGeorgios V. LioudakisNikolaos DellasDimitra I. KaklamaniIakovos S. Venieris','springer/bpel security.csv','springer',''),(1709,'An implementation of a process-oriented cross-system compliance monitoring approach in a SAP ERP and BI environment','2010','','Business process management; IS security; IT compliance; IT risk management; SAP R/3','Compliance to regulatory demands has become a crucial matter for organizations. Non-observance may lead to far-reaching consequences, e.g. damage to reputation, decline of credit rating or market value, fraud and fines. The success of compliance management correlates with the frequency of monitoring and reporting and is affected by complex and often time-consuming manual validation tasks. To address this problem, organizations implement corresponding IT solutions. However, the often heterogeneous system landscapes, the different information sources and their integration represent major challenges. This paper presents an implementation of a novel process-oriented and cross-system compliance monitoring approach. The approach is based on a model which provides for the annotation of business processes with internal controls, critical permissions and roles as well as an architecture which provides for the automatic detection, timely communication and deep analysis of control exceptions. It solely relies on established standards (i.e. XACML, BPMN, COSO and SWRL) and existing technologies. The implementation has been deployed in a productive SAP ERP and BI environment. It automatically converts access control data from the proprietary SAP model and publishes control exceptions to the BI system. The effects and causes of these control exception can be appropriately analyzed using BI queries and reports.','',2,'Sandner T., Kehlenbeck M., Breitner M.H.','scopus/bpmn security.csv','scopus','\0'),(1710,'Normative requirements for regulatory compliance: An abstract formal framework','2015','2',' Norms Normative requirements Norms compliance Business process regulatory compliance Compliance frameworks','Abstract By definition, regulatory rules (in legal context called norms ) intend to achieve specific behaviour from business processes, and might be relevant to the whole or part of a business process. They can impose conditions on different aspects of process models, e.g., control-flow, data and resources etc. Based on the rules sets, norms can be classified into various classes and sub-classes according to their effects. This paper presents an abstract framework consisting of a list of norms and a generic compliance checking approach on the idea of (possible) execution of processes. The proposed framework is independent of any existing formalism, and provides a conceptually rich and exhaustive ontology and semantics of norms needed for business process compliance checking. Apart from the other uses, the proposed framework can be used to compare different compliance management frameworks (CMFs).','Information Systems Frontiers',2,'Mustafa HashmiGuido GovernatoriMoe Thandar Wynn','springer/bpmn security.csv','springer',''),(1711,'Towards Addressing CPU-Intensive Seismological Applications in Europe','2013','0','','Abstract Advanced application environments for seismic analysis help geoscientists to execute complex simulations to predict the behaviour of a geophysical system and potential surface observations. At the same time data collected from seismic stations must be processed comparing recorded signals with predictions. The EU-funded project VERCE ( http://verce.eu/ ) aims to enable specific seismological use-cases and, on the basis of requirements elicited from the seismology community, provide a service-oriented infrastructure to deal with such challenges. In this paper we present VERCE’s architecture, in particular relating to forward and inverse modelling of Earth models and how the, largely file-based, HPC model can be combined with data streaming operations to enhance the scalability of experiments. We posit that the integration of services and HPC resources in an open, collaborative environment is an essential medium for the advancement of sciences of critical importance, such as seismology.','',1,'Michele CarpenéIraklis A. KlampanosSiew Hoon LeongEmanuele CasarottiPeter DanecekGraziella FeriniAndré GemündAmrey KrauseLion KrischerFederica MagnoniMarek SimonAlessandro SpinusoLuca TraniMalcolm AtkinsonGiovanni ErbacciAnton Frank','springer/service oriented architecture security.csv','springer','\0'),(1712,'Soap header extensions for service oriented architecture security','2012','','Security; Service oriented architecture; Soap header; Web service','Service Oriented Architecture is popular for heterogeneous enterprise systems integration for its character of loosely coupling and open standard. Web service is a main technology to develop SOA application and has some security problems in cross domain system communication. In this article we proposed a SOA security solution for authorization cross domain web service invoking and its execution process. We used two layers management method to meet the cross domain invoking requirement. In order to ensure authorized user can access the security web service, we described the web service running principle and extended the soap header to transmit user identification token. At last, we implement the soap header extension encryption way in.NET environment. We successfully used this solution in some group enterprise systems integration.','',1,'Zhu Y., Zhang J.','scopus/service oriented architecture security.csv','scopus','\0'),(1713,'VRank: A context-aware approach to vulnerability scoring and ranking in SOA','2012','2','Context; Ranking and scoring; Service-oriented architecture; Vulnerabilities','With the rapid adoption of the concepts of Service Oriented Architecture (SOA), sophisticated business processes and tasks are increasingly realized through composing distributed software components offered by different providers. Though such practices offer advantages in terms of cost-effectiveness and flexibility, those components are not immune to vulnerabilities. It is therefore important for the administrator of some composed service to evaluate the threats of such vulnerabilities accordingly within limited available information. Since almost all the existing efforts (e.g., CVSS) fail to consider specific context-aware information which is the specific character of SOA, they could not be adopted into SOA for scoring vulnerabilities. In this paper, we present VRank, a novel framework for the scoring and ranking of vulnerabilities in SOA. Different from existing efforts, for a given vulnerability, VRank not only considers its intrinsic properties (e.g., exploitability), but also takes into account the contexts of the services having this vulnerability, e.g., what roles they play in the composed service and how critical it is to the security objective of the service. The resulting scoring and ranking of vulnerabilities are thus highly relevant and meaningful to the composed service. We present the detailed design of VRank, and compare it with CVSS. Our experiments indicate VRank is able to provide much more useful ranking lists of vulnerabilities for complex composed services. © 2012 IEEE.','',1,'Jiang J., Ding L., Zhai E., Yu T.','scopus/service oriented architecture security.csv','scopus','\0'),(1714,'Multi-agent peer-to-peer intrusion detection','2013','','','Ever increasing use of heterogeneous networks including mobile devices and ad-hoc sensor networks signifies the role of such information systems\' properties as openness, autonomy, cooperation, coordination, etc. Agent-based service-oriented Peer-to-Peer (P2P) architecture provides attractive (if not unique) design and implementation paradigm for such systems. This trend implies coherent evolution of security systems, that put in use the notions of distributed security policy, distributed intrusion detection systems, etc. 1, requiring novel ideas. The paper proposes new architecture for such security systems. This architecture provides cooperative performance of distributed security means (agents) supported by distributed meta-knowledge base implemented as an overlay network of instances of P2P agent platform set up on top of P2P networking provider. The paper also analyzes new issues of P2P security systems with the main emphasis on P2P training of security agents to correlation of alerts produced by other relevant agents. An artificially built case study is used to highlight the essence of P2P security agent training to P2P decision combining and to exhibit new problems. © Springer-Verlag Berlin Heidelberg 2007.','',1,'Gorodetsky V., Karsaev O., Samoylov V., Serebryakov S.','scopus/service oriented architecture security.csv','scopus','\0'),(1715,'Research on supply chain management security under Windows Communication Foundation','2012','0','SCM (Supply Chain Management);SOA (Service Oriented Architecture);WCF security framework;WS-Security;Web-Services','The enterprise alliance is consistently leading to the construction of cross-enterprise information system. The research of SOA (Service Oriented Architecture)- based SCM (Supply Chain Management) and modern information technology has become a hot topic. Especially, the secure design and deployment related to SCM brings attention from industrial world and is becoming to research focus. This paper starts from the security of SCM, analyzes the business characteristic and security demands of SCM system by taking the most typical purchase model as an example, and then designs Web-service based security application model of SCM, combining with WS-Security specification and the latest WCF (Windows Communication Foundation) technical platform. As a result it achieves the goal of message level security and access control.','ICSSSM12',1,'G. c. Xiong; Z. f. Wang; X. j. Zhang; G. j. Ji','ieee/service oriented architecture security.csv','ieee','\0'),(1716,'Analysing the Suitability of Multiagent Methodologies for e-Health Systems','2013','1',' Health systems Normative environments Organisational Agent Architectures Contracts System of Systems','Abstract Online e-health systems are being proposed and developed at an ever increasing rate. However, the progress relies on the interoperability of local healthcare software, and is often hampered by ad hoc methods leading to closed systems with a multitude of protocols, terminologies, and design approaches. Agent-oriented software engineering (AOSE) seems intuitively a good approach for developing more open systems. While agent-based e-health systems have been developed, the general hypothesis of the suitability of AOSE has not been evaluated. In this paper, we test that hypothesis, including a case study of applying a normative agent methodology to a particular real-world e-health system, and present an analysis of the strengths and weaknesses of AOSE for e-health.','',1,'Emilia GarciaGareth TysonSimon MilesMichael LuckAdel TaweelTjeerd Van StaaBrendan Delaney','springer/service oriented architecture security.csv','springer','\0'),(1717,'Approaches for the combined use of risk analysis and testing: a systematic literature review','2014','4',' Risk-based testing Test-based risk analysis Literature survey','Abstract Risk analysis and testing are conducted for different purposes. Risk analysis and testing nevertheless involve processes that may be combined to the benefit of both. We may use testing to support risk analysis and risk analysis to support testing. This paper surveys literature on the combined use of risk analysis and testing. First, the existing approaches are identified through a systematic literature review. The identified approaches are then classified and discussed with respect to main goal, context of use and maturity level. The survey highlights the need for more structure and rigor in the definition and presentation of approaches. Evaluations are missing in most cases. The paper may serve as a basis for examining approaches for the combined use of risk analysis and testing, or as a resource for identifying the adequate approach to use.','International Journal on Software Tools for Technology Transfer',1,'Gencer ErdoganYan LiRagnhild Kobro RundeFredrik SeehusenKetil Stølen','springer/service oriented architecture security.csv','springer','\0'),(1718,'Performance assessment of XACML authorizations for Supply Chain Traceability Web Services','2012','1','Authorization;Performance;Supply Chain Traceability;Web Services;XACML','Service-Oriented Architecture (SOA) and Web Services (WS) offer advanced flexibility and interoperability capabilities. However they imply significant performance overheads that need to be carefully considered. Supply Chain Management (SCM) and Traceability systems are an interesting domain for the use of WS technologies that are usually deemed to be too complex and unnecessary in practical applications, especially regarding security. This paper presents an externalized security architecture that uses the eXtensible Access Control Markup Language (XACML) authorization standard to enforce visibility restrictions on trace-ability data in a supply chain where multiple companies collaborate; the performance overheads are assessed by comparing `raw\' authorization implementations - Access Control Lists, Tokens, and RDF Assertions - with their XACML-equivalents.','Computational Aspects of Social Networks (CASoN), 2012 Fourth International Conference on',1,'M. L. Pardal; M. Harrison; S. Sarma; J. A. Marques','ieee/service oriented architecture security.csv','ieee','\0'),(1719,'Automatic fuzz testing of web service vulnerability','2014','1','fuzz testing;vulnerability analysis;web services','With the wide application of service-oriented architecture and web service technology, the security requirements for web services is increasing. This paper presents a web services vulnerability identification and analysis method based on fuzz testing, including identifying inputs, generating fuzz testing data, performing fuzz testing, monitoring and identification of abnormal fragility, etc., thereby automatically identifies Web services architecture and performs fuzz testing. The low efficiency of abnormal data generation in web services fuzz testing is solved by using optimized grouping method, and the heavy work and inefficiency brought from manual testing can be avoided and the vulnerability of web services can be tested in depth. A web services vulnerability testing tool called WSFuzzer is implemented based on the proposed fuzz testing method, which implements the detection and analysis of web services vulnerabilities through the generation and execution of web services fuzz testing cases. Several vulnerabilities including SQL injection, information leakage, XPath injection are discovered by using WSFuzzer to carry out web services vulnerability fuzz testing, which shows that the proposed method can test web service vulnerabilities with high efficiency and accuracy.','Information and Communications Technologies (ICT 2014), 2014 International Conference on',1,'Wang Chunlei; Liu Li; Liu Qiang','ieee/service oriented architecture security.csv','ieee','\0'),(1720,'A pattern-based method for establishing a cloud-specific information security management system','2013','4',' ISO 27001 Security policies Control selection Threat analysis Information security management system Asset identification privacy Legal compliance Cloud computing security','Abstract Assembling an information security management system (ISMS) according to the ISO 27001 standard is difficult, because the standard provides only very sparse support for system development and documentation. Assembling an ISMS consists of several difficult tasks, e.g., asset identification, threat and risk analysis and security reasoning. Moreover, the standard demands consideration of laws and regulations, as well as privacy concerns. These demands present multi-disciplinary challenges for security engineers. Cloud computing provides scalable IT resources and the challenges of establishing an ISMS increases, because of the significant number of stakeholders and technologies involved and the distribution of clouds among many countries. We analyzed the ISO 27001 demands for these multi-disciplinary challenges and cloud computing systems. Based on these insights, we provide a method that relies upon existing requirements engineering methods and patterns for several security tasks, e.g., context descriptions, threat analysis and policy definition. These can ease the effort of establishing an ISMS and can produce the necessary documentation for an ISO 27001 compliant ISMS. We illustrate our approach using the example of an online bank.','Requirements Engineering',1,'Kristian BeckersIsabelle CôtéStephan FaßbenderMaritta HeiselStefan Hofbauer','springer/soa security.csv','springer','\0'),(1721,'Goal-oriented modeling and verification of feature-oriented product lines','2016','1',' Software engineering Feature oriented software families Goal-oriented requirements engineering Description Logic Feature Models Verification','Abstract Goal models represent requirements and intentions of a software system. They play an important role in the development life cycle of software product lines (SPLs). In the domain engineering phase, goal models guide the development of variability in SPLs by providing the rationale for the variability, while they are used for the configuration of SPLs in the application engineering phase. However, variability in SPLs, which is represented by feature models, usually has design and implementation-induced constraints. When those constraints are not aligned with variability in goal models, the configuration with goal models becomes error prone. To remedy this problem, we propose a description logic (DL)-based approach to represent both models and their relations in a common DL knowledge base. Moreover, we apply reasoning to detect inconsistencies in the variability of goal and feature models. A formal proof is provided to demonstrate the correctness of the reasoning approach. An empirical evaluation shows computational tractability of the inconsistency detection.','Software & Systems Modeling',2,'Mohsen AsadiGerd GrönerBardia MohabbatiDragan Gašević','springer/bpel security.csv','springer',''),(1722,'A lightweight active service migration framework for computational offloading in mobile cloud computing','2014','12',' Mobile cloud computing Mobile application Distributed system Application offloading Lightweight','Abstract Cloud computing enables access to the widespread services and resources in cloud datacenters for mitigating resource limitations in low-potential client devices. Computational cloud is an attractive platform for computational offloading due to the attributes of scalability and availability of resources. Therefore, mobile cloud computing (MCC) leverages the application processing services of computational clouds for enabling computational-intensive and ubiquitous mobile applications on smart mobile devices (SMDs). Computational offloading frameworks focus on offloading intensive mobile applications at different granularity levels which involve resource-intensive mechanism of application profiling and partitioning at runtime. As a result, the energy consumption cost (ECC) and turnaround time of the application is increased. This paper proposes an active service migration (ASM) framework for computational offloading to cloud datacenters, which employs lightweight procedure for the deployment of runtime distributed platform. The proposed framework employs coarse granularity level and simple developmental and deployment procedures for computational offloading in MCC. ASM is evaluated by benchmarking prototype application on the Android devices in the real MCC environment. It is found that the turnaround time of the application reduces up to 45 % and ECC of the application reduces up to 33 % in ASM-based computational offloading as compared to traditional offloading techniques which shows the lightweight nature of the proposed framework for computational offloading.','The Journal of Supercomputing',1,'Muhammad ShirazAbdullah Gani','springer/soa security.csv','springer',''),(1723,'Towards a flexible and secure runtime for embedded devices','2014','','Embedded systems; Security; Service oriented architecture','Advancing towards the Internet of Things, a need for bigger connectivity between every time smaller embedded devices is foreseen. In the near future, heterogeneous resource-restricted devices will probably have a set of services with a strong need for connection. Two needs are envisioned as mandatory: flexibility and security. There is firstly a need for some degree of isolation between services but there is also a need for services to be able to have their runtime altered without having to stop the whole platform. This generates a clash of interests and needs, since achieving both flexibility and security balanced is apparently incompatible. The purpose of this article is to explain the needs and requirements that such systems will most surely have, as well as inspiring technologies and related works, in order to advance towards a platform with flexible and secure services that will add bigger capabilities to the devices.','',1,'Manjón A.R., Simon E., Jean S.','scopus/service oriented architecture security.csv','scopus','\0'),(1724,'Positron: Composing Commitment-Based Protocols','2015','0',' Commitments Commitment protocols Agent communication Communication protocols Protocol composition Verification of multiagent systems Model checking','Abstract We understand a sociotechnical system (STS) as a microsociety in which social entities interact about and via technical entities. A protocol specifies an STS by describing how its members collaborate by giving meaning to their interactions. We restrict ourselves to protocols that specify messages between roles in terms of how they create and affect commitments among the roles. A key idea of our approach, Positron, is that a protocol specifies the accountability of one role to another in addition to the requirements from each role. Specifically, Positron incorporates role accountability and role requirements as two integral aspects of protocol composition. In this way, it seeks to promote collaboration in STSs through natural requirements elicitation; flexibility enactment; and compliance and validation (ascribing accountability for each requirement to a specific role). Positron maps composite protocols to the representations of a well-known model checker as a way to verify protocols to assist in their correct formulation. We evaluate Positron by demonstrating it on real-life protocols.','',2,'Scott N. GerardPankaj R. TelangAnup K. KaliaMunindar P. Singh','springer/bpmn security.csv','springer',''),(1725,'Ontology-Based Context-Aware SLA Management for Cloud Computing','2014','1',' Cloud Computing Service Level Agreement Quality of service Ontology Context','Abstract Cloud Computing represents a new on-demand computing approach that tries to provide resources responding to some pre-set non-functional proprieties specified and negotiated by means of Service Level Agreement (SLAs). In order to avoid costly SLA violations and to duly react to failures and environmental changes, it is necessary to implement some advanced SLA enactment strategies. However, contextual information of the cloud consumer, which has not been deeply elaborated yet, may change at any time, which would significantly affect the Quality of Service (QoS). Therefore, in this paper, our aim is to ameliorate SLA by considering the semantic meaning of SLA concepts and contextual information from cloud consumers. In this regard, we propose a new ontology-based context-aware SLA management for cloud computing. Our approach aims to dynamically adapt cloud services to different variations of consumer’s context while meeting their needs using the benefits of inference in ontology. This maintains a reliable QoS and respects the SLA parameters. The efficiency and effectiveness of the proposed approach is demonstrated in this paper through a simulation.','',1,'Taher LabidiAchraf MtibaaFaiez Gargouri','springer/service oriented architecture security.csv','springer','\0'),(1726,'2013 8th International Workshop on Automation of Software Test, AST 2013 - Proceedings','2013','','','The proceedings contain 24 papers. The topics discussed include: automated scalability testing of software as a service; test algebra for combinatorial testing; functional SOA testing based on constraints; automatic generation of parallel unit tests; profile directed systematic testing of concurrent programs; which compiler optimization options should I use for detecting data races in multithreaded programs?; security testing of the communication among android applications; access control enforcement testing; XSS pattern for attack modeling in testing; automated generation of state abstraction functions using data invariant inference; towards automatic scenario generation from coverage information; test-duo: a framework for generating and executing automated acceptance tests from use cases; and did we test our changes? assessing alignment between tests and development in practice.','',1,'[No author name available]','scopus/soa security.csv','scopus','\0'),(1727,'Serviceorientierte Architekturen für Smart Grids','2013','0','','Zusammenfassung Die Energiewende ist gesellschaftlicher und politischer Konsens. Damit sie gelingen kann, ist eine Modernisierung der Energienetze notwendig, die die Einspeisung dezentraler Erzeuger ermöglicht. Dazu sind detaillierte Informationen zum aktuellen Netzzustand erforderlich. Die Informations- und Kommunikationstechnologie (IKT) bietet die Methoden, über die diese Informationen in Smart Grids zur Verfügung gestellt werden können. Das reibungslose Zusammenspiel dieser Methoden bedingt eine geeignete Architektur, die auch orthogonale Anforderungen wie Datenschutz und -sicherheit realisiert. Wir stellen eine serviceorientierte IKT-Architektur vor, die neben der Integration der notwendigen Datenquellen und -senken bewährte Design-Patterns, auch im Bereich Datenschutz und -sicherheit, einsetzt. Der praktische Nutzen dieser Architektur zeigt sich in realen Anwendungsfällen der Smart-Grids-Modellregion Salzburg.','HMD Praxis der Wirtschaftsinformatik',1,'René Blaschke B.Sc.Dr. Stefan SuhrerProf. (FH) Dr. Dominik Engel','springer/soa security.csv','springer','\0'),(1728,'ULMS: An accelerator for the applications by shifting writing log from local','2010','','Log; Log analysis; Performance; SaaS','Log data is critical to applications and the management and analysis of log data is a hot research topic. Existing log managements are normally tightly integrated with applications themselves, which may lead to problems including performance, local storage efficiency, security and non real-Time functionality. To solve these problems, we present a SaaS method which shifts writing log data from local disk to clouds, at the same time the log management and analysis functionalities are also done by a cloud. We analyze two architectures to implement this method which are Shift-Log-by-WebService and Shift-Log-by- ActiveMQ. Initial experiments show the efficiency of later one. In the future, we can apply this tool to application systems which are based on web and database systems to improve their performances. (Abstract) © 2010 IEEE.','',1,'Zhou L., Zhang Y., Xing C.','scopus/webservice security.csv','scopus','\0'),(1729,'Towards SecureBPMN - Aligning BPMN with the information assurance and security domain','2012','','BPMN; extension; information security & assurance','The participation of business experts in the elicitation and formulation of Information Assurance & Security (IAS) requirements is crucial. Although business experts have security-related knowledge, there is still no formalised business process modelling notation allowing them to express this knowledge in a clear, unambiguous manner. In this paper we outline the foundational basis for SecureBPMN - a graphical security modelling extension for the BPMN 2.0. We also align the BPMN with the IAS domain in order to identify points for the extension. SecureBPMN adopts a holistic approach to IAS and is designed to serve as a \"communication bridge\" between business and security experts. © 2012 Springer-Verlag.','',2,'Cherdantseva Y., Hilton J., Rana O.','scopus/bpmn security.csv','scopus','\0'),(1730,'E-learning ecosystem based on service-oriented cloud computing architecture','2013','1','Cloud Computing; E-learning; E-learning ecosystem; E-learning services; Scalability','Cloud computing refers to internet software as a service, hardware and servers in data centers, which run the applications. Cloud computing is highly scalable and provides virtualized resources as a subscription to users. Use of clouds in education provides great opportunity for students to improve achieved learning outcomes, and learners can gain significant advantages in the new learning environment. Cloud adaption can also help to significantly reduce cost of infrastructure, software and human resources. In this article service oriented cloud computing architecture is used to transfer E-learning into the cloud. These architectures cover challenges of e-learning such as scalability, application development, efficient use of resources, saving expense, and security. © 2013 IEEE.','',1,'Lohmosavi V., Nejad A.F., Hosseini E.M.','scopus/service oriented architecture security.csv','scopus','\0'),(1731,'Intelligent Database for the SOA Using BPEL','2011','0','BPEL, SOA, WS-BPEL, XML, choreography, service orchestration, web services','Proceedings of the 2011 International Conference on Communication, Computing & Security','',2,'Aarti M. Karande and V. N. Chunekar and B. B. Meshram','acm/bpel security.csv','acm','\0'),(1732,'Visions Towards 5G: Technical Requirements and Potential Enablers','2016','0',' 5G mmWave Massive MIMO D2D communication NFV/SDN C-RAN','Abstract Compared to the previous generations of mobile networks, 5G will provide a significant paradigm shift by including beyond state of the art technical solutions, like very high carrier frequencies with massive bandwidths, extreme base station and device densities, and very high number of transceiver antennas. However, unlike the previous generations, it will also be highly integrative and backward compatible: combining the novel 5G air interface and spectrum together with legacy wireless systems like LTE/LTE-A and WiFi, in order to facilitate an umbrella of high-rate coverage and a seamless user experience. In order to support this advances in the radio interface, the core network will also have to reach unprecedented levels of elasticity and intelligence. Spectrum regulation will need to be rethought and significantly improved, whereas energy and cost efficiencies will become one of the key parameters that will steer the 5G design and development. This paper elaborates on the 5G related topics, identifying the key challenges for future research and preliminary 5G standardization activities, as well as providing a comprehensive survey of the current literature.','Wireless Personal Communications',1,'Liljana GavrilovskaValentin RakovicVladimir Atanasovski','springer/soa security.csv','springer',''),(1733,'Business Process Fragments Behavioral Merge','2014','1',' Business process fragment merge behavior adjacency matrix','Abstract In the present work, we propose an approach to merge business process fragments in order to facilitate the reuse of fragments in business process designs. The approach relies on the so-called adjacency matrices. Typically used to handle graphs, this concept represents a new way to systematically merge fragments through their corresponding matrices. At the same time, fragments merging must keep the behavior of the original fragments consisting of their execution scenarios and rule out undesirable ones that may be generated during the merge task. Indeed, such behaviors probably lead to process execution blocking. The proposed approach has been implemented and tested on a collection of fragments and experimental results are provided.','',2,'Mohamed Anis ZemniNejib Ben Hadj-AlouaneAmel Mammar','springer/bpel security.csv','springer',''),(1734,'Control as a means towards accountable services in the cloud','2013','','Accountability; Aspects; Cloud; Control; Service-oriented architecture','Accountability provides the necessary assurance to different stakeholders (customers, auditors, regulators) about the correct execution of the obligations of each party involved in a cloud service. It requires rigorous orchestration of several security mechanisms across services, such as authentication, authorisation, logging, etc. In this paper we advocate that providing control to cloud consumers mitigates a series of risks related to the correct data handling in the cloud. We focus on the specific case of privacy enforcement in cloud platform as a service, to illustrate how a future and more general approach for policy enforcement can provide better accountability in the cloud. © 2013 CRL Publishing Ltd.','',1,'Lotz V., De Oliveira A.S., Sendor J.','scopus/service oriented architecture security.csv','scopus','\0'),(1735,'Steganography using two sided, three sided, and four sided side match methods','2013','7',' Steganography Side match Pixel value differencing Fall off boundary problem Fall in error problem','Abstract In this paper the two sided, three sided and four sided side match steganography methods are proposed. In two sided side match method the two neighboring pixels such as upper and upper-right corner are exploited to take embedding decision. In three sided side match method the three neighboring pixels such as upper, upper-right corner and upper-left corner are exploited to take embedding decision. In four sided side match method the four neighboring pixels such as upper, left, upper-right corner and upper-left corner are exploited to take embedding decision. In each of these methods the fall off boundary problem (FOBP) and fall in error problem (FIEP) are addressed. The FOBP and FIEP conditions are checked while embedding at the sender and while extracting at the receiver. These methods possess large hiding capacity, better imperceptibility and high security.','CSI Transactions on ICT',1,'Gandharba SwainSaroj Kumar Lenka','springer/soa security.csv','springer','\0'),(1736,'Transactional BPEL Processes with AO4BPEL Aspects','2007','0','','Recently, OASIS approved two standards respectively for Web Service composition and for Web Service transactions. Nevertheless, it is still unclear how WS-BPEL and the WS-TX family of specifications interoperate, i.e., how to use atomic transactions and business activities in the context of BPEL processes. In this paper, we present several transactional requirements in BPEL processes and argue that BPEL\'s compensation mechanism provides only limited support for a few of these requirements, e.g., it cannot cope with atomic transactions with the ACID properties. To support transactional BPEL processes, we use the AO4BPEL process container framework. In this framework, the transaction requirements of the process activities are specified declaratively in a deployment descriptor and an aspectbased container is generated automatically to integrate the process execution with the transaction middleware, which is provided as a transaction Web Service based on Apache Kandula.','Web Services, 2007. ECOWS \'07. Fifth European Conference on',2,'A. Charfi; B. Schmeling; M. Mezini','ieee/bpel security.csv','ieee','\0'),(1737,'Business Process Management (BPM) in a Day','2013','0','','Proceedings of the 2013 Conference of the Center for Advanced Studies on Collaborative Research','',2,'Gary Bist and Kenneth K. Cheung','acm/bpel security.csv','acm','\0'),(1738,'The Method of Emergency Rescue Program Generation in Civil Aviation Airport of China','2013','1',' Civil Aviation Airport Emergency Rescue Program SWRL semantic reasoning SQWRL','Abstract Although, at present, a rather complete emergency rescue system of airport has been formed in civil aviation of China, most of the emergency rescue programs for disposing emergency are still formed manually by means of experiences of decision-makers. The paper presents an auto-generated method of emergency rescue program for airport based on contingency plans of airport and airport emergency business process management notation ontology (AE_BPMNO) which makes the programs generated automatically come true via the construction of SWRL semantic rules and semantic queries based on SQWRL and provides auxiliary emergency command and disposal of airport with methodological support.','',2,'Wang HongZhou Wen-taoWang Jing','springer/bpmn security.csv','springer','\0'),(1739,'Efficient Security Implementations in eGovernment Workflows: a Practical Application','2010','0','','Cross-domain, electronic business processes with eGovernment webservices involved are highly sensitive in terms of security. Existing technologies for electronic business processes do not offer satisfying methods for the efficient implementation of security requirements. The existence of lots of different standards in the field of webservice security makes it difficult for software developers to incorporate security requirements into their service landscape. With a new approach to minimize the risk of security vulnerabilities in highly sensitive business processes and to enable a faster deployment, this paper presents a research project in which model-driven architecture paradigms are applied to the implementation of IT security requirements in a practical eGovernment usecase.','Telecommunications: The Infrastructure for the 21st Century (WTC), 2010',1,'T. Bleier; A. Bonitz; C. Wagner','ieee/webservice security.csv','ieee','\0'),(1740,'Unifying and targeting cultural activities via events modelling and profiling','2012','1',' Event modelling Profiling Recommendation','Abstract Today, people have only limited, valuable spare time at their hands which they want to fill in as good as possible according to their interests. At the same time, cultural institutions are trying to attract interested communities to their carefully planned cultural programs. To distribute these cultural events to the right people, we developed a framework that will aggregate, enrich, recommend and distribute these events as targeted as possible. The aggregated events are published as Linked Open Data using an RDF/OWL representation of the EventsML-G2 standard. These event items are categorised and enriched via smart indexing and linked open datasets available on the Web of data. For recommending the events to the end-user, a global profile of the end-user is automatically constructed by aggregating his profile information from all user communities the user trusts and is registered to. This way, the recommendations take profile information into account from different communities, which has a detrimental effect on the recommendations. As such, the ultimate goal is to provide an open, user-friendly recommendation platform that harnesses the end-user with a tool to access useful event information that goes beyond basic information retrieval. At the same time, we provide the (inter)national cultural community with standardised mechanisms to describe/distribute event and profile information.','Multimedia Tools and Applications',2,'Sam CoppensErik MannensToon De PessemierKristof GeebelenHendrik DacquinDavy Van DeursenRik Van de Walle','springer/bpel security.csv','springer','\0'),(1741,'A Declarative Framework for Specifying and Enforcing Purpose-Aware Policies','2015','0','','Abstract Purpose is crucial for privacy protection as it makes users confident that their personal data are processed as intended. Available proposals for the specification and enforcement of purpose-aware policies are unsatisfactory for their ambiguous semantics of purposes and/or lack of support to the run-time enforcement of policies. In this paper, we propose a declarative framework based on a first-order temporal logic that allows us to give a precise semantics to purpose-aware policies and to reuse algorithms for the design of a run-time monitor enforcing purpose-aware policies. We also show the complexity of the generation and use of the monitor which, to the best of our knowledge, is the first such a result in literature on purpose-aware policies.','',2,'Riccardo De MasellisChiara GhidiniSilvio Ranise','springer/bpmn security.csv','springer',''),(1742,'Design rationale capture for process improvement in the globalised enterprise: an industrial study','2013','0',' Design rationale Process improvement Problem oriented engineering Assurance-driven design','Abstract Design rationale fills in the gaps between the original requirements of a system and the finished product encompassing decisions, constraints and other information that influenced the outcome. Existing research in Software Engineering corroborates the importance of design rationale to capture knowledge assets, particularly in the context of the global enterprise, with its increased reliance on IT systems, and risk of knowledge loss through staff movement and attrition. Despite this, the practice of design rationale capture is not as extensive as could be expected due to reasons which include time and budget constraints, the lack of standards and tools, and some uncertainty as to its actual added value. In this paper, we address the viability and benefits of capturing design rationale as a by-product of design in the context of a real-world global organisational setting. This was achieved through a study in which an emerging design approach—Problem Oriented Engineering—was applied in the context of a global financial institution to address a critical IT problem as part of its software supplier’s client resolution process. The study provides some positive evidence that the approach-guided knowledge capture of key design rationale elements and that it combined well with existing practices within the organisation and even led to improvement to one of their key processes.','Software & Systems Modeling',2,'A. NkwochaJ. G. HallL. Rapanotti','springer/bpmn security.csv','springer','\0'),(1743,'HLA-Based SaaS-Oriented Simulation Frameworks','2014','0','HLA;SaaS (Software-as-a-Service);service-oriented design;simulation frameworks','SaaS (Software-as-a-Service) as a part of cloud computing is a new approach for software construction, evolution, and delivery. This paper proposes HLA-based SaaS-oriented simulation frameworks where simulation services will be organized into a SaaS framework running in a cloud environment. This SaaS-oriented frameworks can be applied to multiple application domains but illustrated by using HLA (High-Level Architecture). The framework will allow integration of a variety of modules, service-oriented design, flexible customization, multi-granularity simulation, high-performance computing, and system security. It has the potential to reduce system development time, and allows simulation to be run in a cloud environment taking advantages of resources offered by the cloud.','Service Oriented System Engineering (SOSE), 2014 IEEE 8th International Symposium on',1,'W. Xiong; W. T. Tsai','ieee/service oriented architecture security.csv','ieee','\0'),(1744,'Distributed ECA Rules for Data Management Policies','2013','0','','Abstract Data management policies for a distributed system that handles “big data” usually require a core feature set provided by a rule framework. In this paper, we describe a viable core feature set, partially extending the event-condition-action framework, based on our experience in developing and applying the integrated Rule-Oriented Data-management System [1,2,3]. We attempt to formalize some aspects of this feature set, focusing on location-aware and asynchronous execution of rules, based on the Calculus of Concurrent Systems [4].','',1,'Hao XuArcot RajasekarReagan W. MooreMike Wan','springer/microservice security.CSV','springer',''),(1745,'Improving the security level of the FUSION@ multi-agent architecture','2012','3','Case-based reasoning; Multi-agent systems; Security; Service-oriented architectures','The use of architectures based on services and multi-agent systems has become an increasingly important part of the solution set used for the development of distributed systems. Nevertheless, these models pose a variety of problems with regards to security. This article presents the Adaptive Intrusion Detection Multi-agent System (AIDeMaS), a mechanism that has been designed to detect and block malicious SOAP messages within distributed systems built by service based architectures. AIDeMaS has been implemented as part of FUSION@ a multi-agent architecture that facilitates the integration of distributed services and applications to optimize the construction of highly-dynamic multi-agent systems. One of the main features of AIDeMaS is that is employs case-based reasoning mechanisms, which provide it with great learning and adaptation capabilities that can be used for classifying SOAP messages. This research presents a case study that uses the ALZ-MAS system, a multi-agent system built around FUSION@ in order to confirm the effectiveness of AIDeMaS. The preliminary results are presented in this paper. © 2011 Elsevier Ltd. All rights reserved.','',1,'Pinzón C.I., De Paz J.F., Tapia D.I., Bajo J., Corchado J.M.','scopus/service oriented architecture security.csv','scopus','\0'),(1746,'Profitability and Cost Management of Trustworthy Composite Services','2012','0','','Abstract Building business solutions may require combining multiple existing services. In SOA paradigm this can be achieved using composite services. Composite services may be in turn recursively composed with other services into higher level solutions. The number of component services that need to be aggregated may be large and dynamically changing. Additionally, the component services may vary in their trustworthiness and cost and in their importance to the value of the composite service. Therefore, determining and maintaining the optimal composition in terms of its short-term and long-term profitability and building and expanding consumer base for composite service providers are challenging goals especially in the competitive business service environments. This paper addresses how to create profitable, consumer-focused and trustworthy composite services through optimising pricing and managing the cost and the trustworthiness of those services. The techniques described support consumer differentiation, prioritisation of offered services and dynamic capacity-dependent component charging.','',1,'Hisain ElshaafiJimmy McGibneyDmitri Botvich','springer/service oriented architecture security.csv','springer','\0'),(1747,'A study on cloud based SOA suite for electronic healthcare records integration','2016','','Cloud; EHR; Healthcare; Networks; SOA','In order to exchange healthcare information reliability, security and cost-effectiveness are three important factors where healthcare industry has to focus upon. Versatile platforms for enterprise-wide information sharing are needed for payers and providers. To provide quality care to patient’s accurate information through networks should be required for clinicians and integrated information for the business operation is needed for administrators. Information access from various systems like innovation, performance improvement, demand, monetary and many such other systems is required from both the sides of organization. These organizations must share data externally from application data, medical records of all patients, medicinal data, chemistry reports and symptomatic information from various mediator bodies and strictly following the policies and procedures for storing, modifying, disseminating the electronic health records (EHR). In this era most of the Health care industries are moving to cloud services for processing and storing the healthcare data. There is a need to build cloud based SOA suite for EHR integration. This SOA suite will help healthcare organizations with widespread integrated capabilities and a fused middleware platform. In this paper we study a cloud based SOA suite for EHR integration by empowering the transparent, extensible, protected methods for distributing real and secured information only for intended recipients. © Springer India 2016.','',1,'Rallapalli S., Gondkar R.R.','scopus/soa security.csv','scopus',''),(1748,'Scalability patterns for platform-as-a-service','2012','7','Cloud; Platform-as-a-Service; Scalability','Platform-as-a-Service is a cloud-based approach that provides enterprises with all the functionalities for developing, deploying, and administering services, without the burden of installing, configuring, and managing the underlying middleware, operating system, and hardware. In this context, scalability becomes a fundamental requirement, and appropriate solutions need to be studied and evaluated. In this paper, we present different scalability patterns for a Platform-as-a-Service infrastructure and a two-level approach to performance monitoring allowing automatic scalability management. We also provide a performance evaluation of the scalability patterns on a Service-Oriented Architecture (SOA) PaaS, which considers the impact on performance of SOA security standards. © 2012 IEEE.','',1,'Ardagna C.A., Damiani E., Frati F., Rebeccani D., Ughetti M.','scopus/service oriented architecture security.csv','scopus','\0'),(1749,'A federated architecture approach for Internet of Things security','2014','1','Cyber attacks;IoT;REST;SOAP;Web Services;federated networks;security','Internet of Things (IoT) refers to the capability to connect, communicate and remotely manage a large number of networked, automated devices via the Internet. IoT is becoming as part of daily life and aims to extend pervasive communication and networking anytime, anywhere with any device. In this context security requirements and architectures must be properly formulated, implemented in order to enforce the security policies during their life-cycle. This paper provides a survey and analysis of security in the area of IoT introducing an approach addressed to overcome the conventional security solutions and deploy a federated architecture for dynamic prevention, detection, diagnosis, isolation, and countermeasures against cyber attacks. Based on the analysis of the most common web services, the paper defines the security needs proposing a federated model to design an architecture for secure exchange of services in IoT paradigm.','Euro Med Telco Conference (EMTC), 2014',1,'M. Leo; F. Battisti; M. Carli; A. Neri','ieee/service oriented architecture security.csv','ieee','\0'),(1750,'Editorial','2013','0','','','Computer Science - Research and Development',1,'Gregor EngelsMarkus Luckey','springer/service oriented architecture security.csv','springer','\0'),(1751,'Automatic Detection and Semantic Formalisation of Business Rules','2014','0',' #eswcphd2014Emani','Abstract Experts in construction engineering are overwhelmed by regulatory texts. It is a heavy task to go through these texts and get an unambiguous list of requirements they contain. Moreover, with regard to the number of texts and the diversity of their writers, we cannot neglect the possibility of getting inconsistencies. Finally, these requirements are to be put close to digital representation of buildings to detect potential non-conformities. This paper examines these problems and envisions solutions to help experts. We thus envisage to automate detection and extraction of business rules in regulatory texts. Next, we propose to formalise identified requirements as SPARQL queries. These queries will serve for conformity checking on OWL -representation of buildings. Moreover, we plan to leverage these queries to detect inconsistencies in regulatory texts.','',1,'Cheikh Kacfah Emani','springer/service oriented architecture security.csv','springer','\0'),(1752,'Anomaly detection system based on service oriented architecture','2012','','','The problem of the network security has been taken up since eighties and has been developed up to present day. A major problem of an automatic intrusion detection is that, it is difficult to make a difference between a normal and an abnormal user behaviour. We propose the framework of a distributed anomaly detection system based on Service Oriented Architecture (SOA). The main idea of SOA is to treat applications, systems and processes as encapsulated components, which are called services. These services are represented by input and output parameters and the semantic description of their functionalities. We assume that all the functionalities of our system are delivered by the Web services. © 2012 Springer-Verlag.','',1,'Kołaczek G., Prusiewicz A.','scopus/service oriented architecture security.csv','scopus','\0'),(1753,'Discerning flooding attack from flash crowd based on traffic patterns using entropy detection method','2015','','Entropy; Flash Crowd; Flooding Attack','Computing Industry is moving towards Service Oriented Architecture at a fast pace. This brings network security to the forefront of major concerns to an organization. Ensuring round the clock uninterrupted service to the clients becomes a top priority to any organization. Flooding Attack is one of the costliest attacks that use a host to overwhelm a server, causing complete system crash. Flash Crowd is an unexpected rise in traffic caused by legitimate users. Both flooding which is one of the types of DoS attack and Flash crowd creates abnormal traffic condition, but in order to improve good put, the server must be deployed with the mechanism that should classify legitimate and malicious call requests. The on-going attacks usually similar to each other compared to the flows of flash crowd so the provocation is to recognize flooding attacks from flash crowd. The recognition of flooding attack is done by, using the Entropy based detection method. © 2015 IEEE.','',1,'Rani T.S., Sindhura V., Rao G.R., Pranathi K.','scopus/service oriented architecture security.csv','scopus','\0'),(1754,'A model for verification of web service maneuvering: A survey','2012','','Buchi Automata and Web Service Maneuvering; Muller Automata','The Internet is going through several major changes. It has become a vehicle of Web services rather than just a repository of information. Web Services are heterogeneously developed software components invoked over the network viz. the Internet, Web Services are the most famous implementation of service-oriented architectures (SOA) that has brought some challenging research issues related to security, Quality of service. Among all the challenges Web Service Composition turns out to be a major research, because it supports business-business enterprise application integration. Web services Maneuvering is the ability to create a new value-added service by integrating related Web services together. After Composing the Web Services, Only limited number verification techniques are available. The Correctness properties of the composed service will be effective if Muller Automata and Buchi Automata is used, because these automata are suitable both for deterministic and non-deterministic system. In this paper we have taken a survey report for verification of web service maneuvering, existing techniques are suitable only for deterministic system rather than non-deterministic system © 2012 IEEE.','',1,'Danapaquiame N., Ilavarasan E.','scopus/service oriented architecture security.csv','scopus','\0'),(1755,'A top-down event-driven approach for concurrent activity recognition','2014','3',' Concurrent activity recognition Event detection Top-down Region of interest (ROI) Workflow','Abstract In this paper a framework for automatic online workflow recognition in industrial environments where the issue of concurrent activities rises, is presented. The framework consists of three main parts: The first part is devoted to detecting activity in specific Regions of Interest (ROIs) of the video sequence. This is effected by separating each frame into ROIs and representing the resulting subimages through feature vectors. By observing these vectors we can determine when there is action in a particular ROI. The second part of the framework lies in examining whether the detected activity corresponds to a workflow related event. This is accomplished by HMM modeling. Finally, the third part employs a string matching based technique to confirm the validity of the observed sequence of events or correct any detection or classification errors. This last step also addresses a top down approach by informing lower system levels (such as image representation or object tracking) about the errors committed. The performance of the proposed approach is thoroughly evaluated under real-life complex visual workflow understanding scenarios, in an industrial plant. The obtained results are compared and discussed.','Multimedia Tools and Applications',1,'Athanasios S. VoulodimosDimitrios I. KosmopoulosNikolaos D. DoulamisTheodora A. Varvarigou','springer/service oriented architecture security.csv','springer','\0'),(1756,'Cloud integration — Strategy to connect applications to cloud','2013','1','Business to Business (B2B);Cloud Computing;Cloud Integration;Cloud to Cloud;On-Premise to Cloud','Cloud Computing is being widely hailed path by enterprises to realize benefits without compromising control. However, enterprises concern is the integration of applications hosted both on premise, Cloud and partner environments. In spite of enterprise\'s strategic imperatives to meet their business goals by building integration services between these environments, new integration challenges are posed with the advent of areas like Cloud, Social, and Mobile that are augmenting to the existing complexity. The key challenges being Performance and Usability of these services which cut across Legacy, On Premise, Cloud applications and SaaS applications. Enterprises are spending highly on these integrations as these are crucial for their business process to be executed seamlessly. Key Patterns w.r.t Enterprises Integration considering the widely adopted Cloud scenario are: On-Premise Application to Cloud Application Integration: Cloud Application to On-Premise Application Integration: Cloud to Cloud Application Integration: B2B Integration: Web API Publishing This paper helps in adoption of an efficient integration strategy to connect applications on cloud with effective cost benefits and lowered total cost of ownership (TCO).','2013 Annual IEEE India Conference (INDICON)',1,'N. V. S. Kolluru; N. Mantha','ieee/service oriented architecture security.csv','ieee','\0'),(1757,'Mathoid: Robust, Scalable, Fast and Accessible Math Rendering for Wikipedia','2014','0','','Abstract Wikipedia is the first address for scientists who want to recap basic mathematical and physical laws and concepts. Today, formulae in those pages are displayed as Portable Network Graphics images. Those images do not integrate well into the text, can not be edited after copying, are inaccessible to screen readers for people with special needs, do not support line breaks for small screens and do not scale for high resolution devices. Mathoid improves this situation and converts formulae specified by Wikipedia editors in a like input format to MathML, with Scalable Vector Graphics images as a fallback solution.','',1,'Moritz SchubotzGabriel Wicke','springer/webservice security.csv','springer','\0'),(1758,'Active protection of patient data by reverse cloud approach','2013','1','Network/Communications Infrastructures and Architectures for Healthcare;Security and privacy on eHealth;eHealth information and network Infrastructure','Experiments to move sensitive patient data into cloud based solutions, and their usage in mobile applications, were seen skeptically by users and authorities, as concerns about long-term safe storage as well as protected communication could not been addressed convincingly in these initial approaches. This paper introduces a new approach of a “hybrid” or “reverse” cloud, which combines the advantage of centralised distribution and maintenance of application-oriented software, while at the same time sensitive data remain in already certified, protected areas. The approach also uses an innovative modular software concept based on “Generic Enablers”, and is being tested currently in seven clinical field trials in seven European countries.','e-Health Networking, Applications & Services (Healthcom), 2013 IEEE 15th International Conference on',1,'T. Pfeifer; S. Covaci','ieee/service oriented architecture security.csv','ieee','\0'),(1759,'The design of an ontology-based service-oriented architecture framework for traditional chinese medicine healthcare','2012','0','ontology;service-oriented architecture (SOA);traditional Chinese medicine (TCM)','In order to promote the modernization of traditional Chinese medicine (TCM), a platform that allows different legacy TCM information systems to interact, intercommunicate, and interoperate with each other by using standard scientific format and systematical information management is necessary. In this study, a design of an ontology-based service-oriented architecture (SOA) framework is proposed to boost the scientific standardization and systematical management of TCM information. By utilizing the information and communication technologies (ICT), this latitudinal framework is designed to have four layers, including a presentation layer for services discovery and selection, a business layer for services operation, a data access layer for database synchronization management, and a technology layer. A longitudinal information technology layer that allows data integration, access, and exchange under the privacy and security policy is charging of monitoring and managing information activities in the four layers.','e-Health Networking, Applications and Services (Healthcom), 2012 IEEE 14th International Conference on',1,'Shih-Wei Chen; Yu-Ting Tseng; Tsai-Ya Lai','ieee/service oriented architecture security.csv','ieee','\0'),(1760,'Collaborative learning in the clouds','2013','6',' Cloud computing Virtualization Private clouds','Abstract Cloud computing has emerged as one of the most highly discussed topics both in the academic community and in the computing industry. While most of the work that has been conducted to explore this field focuses either on establishing the basis for cloud computing or almost exclusively on the issues surrounding security and data privacy, this paper takes the first exploratory step into exploring the actual internal working of cloud computing and demonstrates its viability for organizations, more specifically educational establishments . The paper starts by introducing the most important key clouds computing concepts, including virtualization technologies, Web services and Service Oriented Architectures (SOA), and distributed computing. Light will be then shed on the impact and potential benefits of cloud computing on teaching and learning in educational institutions. The paper closes by describing building a private cloud inside educational institution and highlights its offerings for students, staff and lecturers.','Information Systems Frontiers',1,'Hajar MousannifIsmail KhalilGabriele Kotsis','springer/service oriented architecture security.csv','springer','\0'),(1761,'Identifying Business Rules to Legacy Systems Reengineering Based on BPM and SOA','2012','1',' business rules legacy systems reengineering BPM SOA','Abstract Legacy systems include information and procedures which are fundamental to the organization. However, to maintain a legacy system is a complex and expensive task. Currently, researches propose the legacy systems reengineering using BPM and SOA. The benefits of the reengineering using BPM and SOA are software reuse and documentation of the business processes. However, practical experiences demonstrate that reengineering using BPM and SOA are not easy to apply, because there are no tools that help the developers understand the legacy system behavior. This paper presents a tool to extract the legacy system behavior. Based on the business rules concept, we propose a tool to identify the business rules contained legacy source code. In addition, our technique also enables the discovery of the partial order execution of the business rules during the runtime legacy system.','',1,'Gleison S. do NascimentoCirano IochpeLucinéia ThomAndré C. KalsingÁlvaro Moreira','springer/service oriented architecture security.csv','springer','\0'),(1762,'Software Performance Modeling','2012','1','','Abstract Ideally, a software development methodology should include both the ability to specify non-functional requirements and to analyze them starting early in the lifecycle; the goal is to verify whether the system under development would be able to meet such requirements. This chapter considers quantitative performance analysis of UML software models annotated with performance attributes according to the standard “UML Profile for Modeling and Analysis of Real-Time and Embedded Systems” (MARTE). The chapter describes a model transformation chain named PUMA (Performance by Unified Model Analysis) that enables the integration of performance analysis in a UML-based software development process, by automating the derivation of performance models from UML+MARTE software models, and by facilitating the interoperability of UML tools and performance tools. PUMA uses an intermediate model called “Core Scenario Model” (CSM) to bridge the gap between different kinds of software models accepted as input and different kinds of performance models generated as output. Transformation principles are described for transforming two kinds of UML behaviour representation (sequence and activity diagrams) into two kinds of performance models (Layered Queueing Networks and stochastic Petri nets). Next, PUMA extensions are described for two classes of software systems: service-oriented architecture (SOA) and software product lines (SPL).','',1,'Dorina C. PetriuMohammad AlhajRasha Tawhid','springer/service oriented architecture security.csv','springer','\0'),(1763,'11th International Symposium on Distributed Computing and Artificial Intelligence 2014, DCAI 2014','2014','','','The proceedings contain 64 papers. The special focus in this conference is on Distributed Computing and Artificial Intelligence. The topics include: Reachability modeling for multimodal networks prototyping; hybrid solution framework for supply chain problems; scheduling of mobile robots with preemptive tasks; multimodal processes approach to supply chain modeling; behavioral macroeconomics and agent-based macroeconomics; designing a homo psychologicus more psychologicus; differences between entrepreneurs and managers in large organizations; the empirical microstructure of agent-based models; households debt behavior and financial instability; firm size distribution in oblivious equilibrium model with quality ladder; modeling uncertainty in banking networks; from design to production exploiting workflow patterns; distributed and guided genetic algorithm for humanitarian relief planning in disaster case; software fault prediction based on improved fuzzy clustering; SOA modeling based on MDA; intelligent lighting control system; multimodal conversational agents for E-learning; a multi-agent mechanism for human resources allocation in a distributed software development environment; multi-agent web recommendations; designing strategies for improving the performance of groups in collective environments; multiagent application in mobile environments to data collection in park zones; exploring the role of macroeconomic mechanisms in voluntary resource provisioning in community network clouds; mobile access to sensor network; building scalable view module of object-oriented database; modelling an orientation system based on speculative computation; stable learning for neural network tomography by using back projected image; security considerations for patient telemonitoring schemes through wireless networks; development of an ontology for supporting diagnosis in psychiatry; augmented reality sign language teaching model for deaf children; the case of physical activity and childhood obesity; the absorptive capacity-based view of training; LIWC-based sentiment analysis in Spanish product reviews; data extraction tool to analyse, transform and store real data from electricity markets; a review of the security in social networks and internet; extracting sentences describing biomolecular events from the biomedical literature; a graph-based approach to extract keywords from tweets; a threshold scheme for 3D objects based on cellular automata; 2-scene comic creating system based on the distribution of picture state transition; a brief approach to the ear recognition process; integration of mobile robot navigation on a control kernel middleware based system; shared map convolutional neural networks for real-time mobile image recognition; learning Bayesian networks using probability vectors; a constraint programming approach to the Zahn\'s decision problem; neural-based method of measuring exchange-rate impact on international companies\' revenue; parallel batch pattern training algorithm for MLP with two hidden layers on many-core system; a bee-inspired data clustering approach to design RBF neural network classifiers and an item influence-centric algorithm for recommender systems.','',1,'[No author name available]','scopus/soa security.csv','scopus','\0'),(1764,'Recovering Role-Based Access Control Security Models from Dynamic Web Applications','2012','3','','Abstract Security of dynamic web applications is a serious issue. While Model Driven Architecture (MDA) techniques can be used to generate applications with given access control security properties, analysis of existing web applications is more problematic. In this paper we present a model transformation technique to automatically construct a role-based access control (RBAC) security model of dynamic web applications from previously recovered structural and behavioral models. The SecureUML model generated by this technique can be used to check for security properties of the original application. We demonstrate our approach by constructing an RBAC security model of PhpBB, a popular internet bulletin board system.','',2,'Manar H. AlalfiJames R. CordyThomas R. Dean','springer/bpel security.csv','springer','\0'),(1765,'TMR: Towards a Trusted MapReduce Infrastructure','2012','4','MapReduce Security;Remote Attestation;Trusted Cloud;Trusted Computing','MapReduce systems deployed over an open infrastructure such as a cloud have attracted much attention, due to the significant reductions in the costs entailed in satisfying both the computation and storage demands. However, in these systems, the integrity of MapReduce applications is subject to significant threats. Recent research mainly focuses on replication-based integrity verification schemes. However, inevitable critical deficiencies restrict its usage. In this paper, we propose a Trusted MapReduce (TMR) framework to integrate MapReduce systems with the TCG Trusted Computing infrastructure. TMR effectively uses remote attestations to achieve efficient and deterministic integrity verification. We propose a split and parallel attestation schema to reduce latency and eliminate scalability limitations when employing the Trusted Computing mechanisms. We implemented TMR on the Hadoop MapReduce system. Experiments showed that a high strength integrity assurance has been achieved, and the overheads can easily be managed to less than 1% for an industry-strength implementation.','2012 IEEE Eighth World Congress on Services',1,'A. Ruan; A. Martin','ieee/service oriented architecture security.csv','ieee','\0'),(1766,'Towards CIM to PIM transformation: From secure business processes defined in BPMN to use-cases','2007','23','BPMN; Business processes; MDA; QVT; Security requirement','The software community is currently paying attention to model transformation. The MDA approach is particularly orientated towards solving the problems of time, cost and quality associated with software creation. Enterprises are, moreover, aware of the importance that business processes and security have in relation to their competitive position and performance. In our previous work, we have proposed a BPMN extension which can be used to define security requirement in business process specifications. A Secure Business Process description is that of computation independent models in an MDA context. In this paper we propose a CIM to PIM transformation composed of QVT rules. Various UML use cases, which will be part of an information system, are obtained from the secure business process description. © Springer-Verlag Berlin Heidelberg 2007.','',2,'Rodríguez A., Fernández-Medina E., Piattini M.','scopus/bpmn security.csv','scopus',''),(1767,'Worst-input mutation approach to web services vulnerability testing based on SOAP messages','2014','0','SOAP message;Web service vulnerability;mutation operator;security testing;test case generation','The growing popularity and application of Web services have led to increased attention regarding the vulnerability of software based on these services. Vulnerability testing examines the trustworthiness and reduces the security risks of software systems. This paper proposes a worst-input mutation approach for testing Web service vulnerability based on Simple Object Access Protocol (SOAP) messages. Based on characteristics of SOAP messages, the proposed approach uses the farthest neighbor concept to guide generation of the test suite. The corresponding automatic test case generation algorithm, namely, the Test Case generation based on the Farthest Neighbor (TCFN), is also presented. The method involves partitioning the input domain into sub-domains according to the number and type of SOAP message parameters in the TCFN, selecting the candidate test case whose distance is the farthest from all executed test cases, and applying it to test the Web service. We also implement and describe a prototype Web service vulnerability testing tool. The tool was applied to the testing of Web services on the Internet. The experimental results show that the proposed approach can find more vulnerability faults than other related approaches.','Tsinghua Science and Technology',1,'J. Chen; H. Wang; D. Towey; C. Mao; R. Huang; Y. Zhan','ieee/service oriented architecture security.csv','ieee','\0'),(1768,'On-line Service for Teaching Parallel Programming','2015','0',' Parallel computing Partitioned global address space PCJ On-line tools Java C','Abstract With the wide adoption of the multicore and multiprocessor systems, parallel programming becomes very important element of the computer science education. However, the number of students exposed to the parallel programming is still limited and it is difficult to increase this number using traditional approach to teaching. The difficulties are caused, amongst others, by the parallel tools, libraries and programming models. The parallel programming using the message passing model is difficult, the shared memory model is easier to learn but writing codes which scales well is not easy. There is quite potential in the PGAS languages but they are not widely popularized. Finally, the teaching of scalable parallel programming requires access to the large computational systems which is not easy to obtain and even then, the operating systems and its specific features like operating and queueing systems provide students with additional challenges. In this paper we present extension of the developed by us ZawodyWeb system for on-line validation of the programs sent by the students. The ZawodyWeb system has been extended to support parallel programs written in different programming paradigms. With the help of UNICORE middleware, it allows to run students problems on the large scale production facilities. The added value is simple web interface which reduces all peculiarities of the large multiprocessor computers. The developed by us system has been verified during the parallel programming course for the undergraduate students from the computer science program.','',1,'Marek NowickiMaciej MarchwianyMaciej SzpindlerPiotr Bała','springer/service oriented architecture security.csv','springer',''),(1769,'Cloud Service Localisation','2012','0',' Cloud services Service localisation Service internationalisation Language governance localisation','Abstract The essence of cloud computing is the provision of software and hardware services to a range of users in different locations. The aim of cloud service localisation is to facilitate the internationalisation and localisation of cloud services by allowing their adaption to different locales. We address the lingual localisation by providing service-level language translation techniques to adopt services to different languages and regulatory localisation by providing standards-based mappings to achieve regulatory compliance with regionally varying laws, standards and regulations. The aim is to support and enforce the explicit modelling of aspects particularly relevant to localisation and runtime support consisting of tools and middleware services to automating the deployment based on models of locales, driven by the two localisation dimensions. We focus here on an ontology-based conceptual information model that integrates locale specification in a coherent way.','',2,'Claus Pahl','springer/bpel security.csv','springer','\0'),(1770,'Web service selection on the basis of QoS parameter','2014','0','MCDM;QoS;RA;SOA;UDDI;URL','In the present day situation, web service plays an important role in companies for sharing information. But due to the availability of large amount of web services that offer identical functionality, it is very difficult for the users to select the best service. This paper provides a model for efficiently selecting the web services among the set of existing web services. A web service negotiator has been used to verify the QoS information published by the publisher. A stability analyzer has been used to assign the stability score to the web service if it consistently provides a good service otherwise assign a low stability score to that web service. The ranking of the web service has been done using the AHP and TOPSIS. The highest ranked web services then given to the user to fulfill his requirements.','Contemporary Computing (IC3), 2014 Seventh International Conference on',1,'N. Negi; S. Chandra','ieee/soa security.csv','ieee','\0'),(1771,'An efficient algorithm for partially matched services in internet of services','2016','0',' Emergency service selection Quality of Service (QoS) Internet of Things (IoS) Emergency service ranking Partial matching','Abstract Internet of Things (IoT) connects billions of devices in an Internet-like structure. Each device encapsulated as a real-world service which provides functionality and exchanges information with other devices. This large-scale information exchange results in new interactions between things and people. Unlike traditional web services, internet of services is highly dynamic and continuously changing due to constant degrade, vanish and possibly reappear of the devices, this opens a new challenge in the process of resource discovery and selection. In response to increasing numbers of services in the discovery and selection process, there is a corresponding increase in number of service consumers and consequent diversity of quality of service (QoS) available. Increase in both sides’ leads to the diversity in the demand and supply of services, which would result in the partial match of the requirements and offers. This paper proposed an IoT service ranking and selection algorithm by considering multiple QoS requirements and allowing partially matched services to be counted as a candidate for the selection process. One of the applications of IoT sensory data that attracts many researchers is transportation especially emergency and accident services which is used as a case study in this paper. Experimental results from real-world services showed that the proposed method achieved significant improvement in the accuracy and performance in the selection process.','Personal and Ubiquitous Computing',1,'Mariwan AhmedLu LiuJames HardyBo YuanNick Antonopoulos','springer/service oriented architecture security.csv','springer',''),(1772,'Protecting Software as a Service in the Clouds by Validation','2013','0',' SaaS Cloud Computing Security Checking Rule Specification','Abstract The cloud computing has provided customers with various services at its SaaS layer though, few work has been done on the security checking of messages exchanged between a customer and a service provider at SaaS so as to protect SaaS. In this paper we propose a validation model to investigate the SaaS security issue. Rather than installing a set of probes as we have done for the testing web services, in this model we introduce a validation service that plays the role of a firewall and protects our SaaS by verifying the correctness of messages with respect to a set of predefined security rules and forwarding them to their real destinations if they pass the verification or rejecting them otherwise. We develop a prototype model based on the tool known as RV4WS which was developed in our early study on web service runtime verification, as well as a checking engine RVEngine to verify our checking algorithm for the model. A survey on how to use this model for the services deployed on Google App Engine, Window Azure and Oracle Java Cloud Service is also presented.','',1,'Tien-Dung CaoKevin Chiew','springer/service oriented architecture security.csv','springer','\0'),(1773,'Self-adaptable media service architecture for guaranteeing reliable multimedia services','2012','2',' Adaptive multimedia service Dynamic multimedia service composition Reliability SAMSA Self-Adaptable architecture Video-on-demand','Abstract The main objective of this paper is to design and develop a Self-Adaptable Media Service Architecture (SAMSA) for providing reliable dynamic composite multimedia service through policy-based actions. The multimedia services such as media retrieval, transcoding, scaling and display services are combined based on the preferences of the user to create a dynamic composite multimedia service called as Video-on-Demand service. Such distributed multimedia services deployed using Service Oriented Architecture (SOA) can be accessed in heterogeneous environments that are prone to changes during run-time. To provide reliable and adaptive multimedia services, a powerful self-adaptable architecture with dynamic compositions of multimedia services is necessary to adapt during run-time and react to the environment. The adaptability in this proposed architecture is achieved by enabling the service providers to Monitor, Analyze and Act on the defined policies that support customization of compositions of multimedia services and guarantee the Quality of Service (QoS) provisioning. The Media Service Monitor (MSM) observes the business and quality metrics associated with the multimedia services during run-time. The monitored results are analyzed by Monitored Results Analyzer (MRA) which identifies the type and location of the fault. The Adaptive Media Service Manager (AMSM) takes corrective actions based on the monitored results, through the policies defined as an extension of WS-Policy (Web Service—Policy framework). The effectiveness of the proposed Self-Adaptable Media Service Architecture (SAMSA) has been evaluated on Dynamic Composite Real-time Video-on-Demand Web Service (DCRVoDWS) for a maximum of 200 simultaneous client’s requests. The analysis of results shows that the proposed architecture provides better improvement on reliability, response time and user satisfaction.','Multimedia Tools and Applications',2,'G. Maria KalavathyN. Edison RathinamP. Seethalakshmi','springer/bpel security.csv','springer','\0'),(1774,'Applying model-driven engineering to the development of Rich Internet Applications for Business Intelligence','2013','3',' Rich Internet Applications Knowledge management Sm4RIA Model-driven Web engineering','Abstract Business Intelligence (BI) applications have been gradually ported to the Web in search of a global platform for the consumption and publication of data and services. On the Internet, apart from techniques for data/knowledge management, BI Web applications need interfaces with a high level of interoperability (similar to the traditional desktop interfaces) for the visualisation of data/knowledge. In some cases, this has been provided by Rich Internet Applications (RIA). The development of these BI RIAs is a process traditionally performed manually and, given the complexity of the final application, it is a process which might be prone to errors. The application of model-driven engineering techniques can reduce the cost of development and maintenance (in terms of time and resources) of these applications, as they demonstrated by other types of Web applications. In the light of these issues, the paper introduces the S m 4RIA-B methodology, i.e., a model-driven methodology for the development of RIA as BI Web applications. In order to overcome the limitations of RIA regarding knowledge management from the Web, this paper also presents a new RIA platform for BI, called RI@BI, which extends the functionalities of traditional RIAs by means of Semantic Web technologies and B2B techniques. Finally, we evaluate the whole approach on a case study—the development of a social network site for an enterprise project manager.','Information Systems Frontiers',1,'Jesús M. HermidaSantiago MeliáAndrés MontoyoJaime Gómez','springer/service oriented architecture security.csv','springer','\0'),(1775,'Achieving High-Performance Video Analytics with Lightweight Cores and a Sea of Hardware Accelerators','2014','1','','High performance and energy efficient video analytics systems that can extract rich metadata from voluminous visual content, will enable a variety of high-value surveillance, driver assistance, video tagging, and first person analytics systems. These big-data applications are pervasive across retail, automotive, medical, agriculture and security domains. However, current trends in general purpose and multicore architectures will not keep pace with the growing computational demands of cutting edge visual perception algorithms. Hardware acceleration is crucial to surpassing what is realizable on modern multicore and GPGPU architectures. In this paper we detail a Sea-of-Accelerators, SoA, platform that combines a mix of macro-accelerators, microaccelerators, and lightweight processors to achieve high performance and energy efficiency in video analytics applications. In this paper, we describe a framework for video and image analytics and highlight its benefits with a case study of a customized visual saliency accelerator. We describe the architecture of a full custom macro-accelerator that is suitable when raw performance is of critical importance. As an alternative, we illustrate the composition of an accelerator from a constituent of loosely coupled microaccelerators and evaluate the performance achievable when performance and flexibility are competing objectives.','2014 IEEE Computer Society Annual Symposium on VLSI',1,'K. M. Irick; N. Chandramoorthy','ieee/soa security.csv','ieee','\0'),(1776,'Design of Distributed Traceability System for Wheat Products Quality','2012','0',' wheat products traceability system EPC coding scheme ONS','Abstract The circulation of wheat products involves a number of different types of food-related enterprises, including planting bases, grain trading companies, warehousing enterprises, food processing plants, sales companies and so on. The centralized traceability architecture cannot meet the requirements such as transaction data security. While, the distributed traceability architecture faces the difficulty and complexity of information processing for the traceability data stored and managed by different enterprises. In order to meet the requirements imposed on distributed data management and diversity of deployment requirements, an EPC (Electronic Product Code) coding scheme is proposed, in addition, based on which we design and implement a distributed wheat products quality traceability system in this paper. The test indicates that the distributed quality traceability system can track the wheat products quality information in the whole supply chain of wheat products effectively.','',1,'Xingye ZhangJianqin WangJianye CuiJie ZhengJing PanManlin Chen','springer/service oriented architecture security.csv','springer','\0'),(1777,'Mobile Collaborative Experiential Learning (MCEL): Personalized Formative Assessment','2013','1','','We propose a mobile collaborative experiential learning system that students can access via mobile devices or any interactive devices connected to the Internet. The approach departs from conventional summative assessment approaches, such as reports submitted at the end of their learning sessions. Students interact with the learning system via mobile devices in order to change the state of a simulated learning lab to a desired state over time anywhere anytime to solve problems or achieve their goals. Students acquire set competency levels during their journey to achieving their goals interacting with the learning environment via mobile devices. The main objectives are to provide ownership of their journey, experiential, contextualized and formative assessment at low cost. The system features SMS/MMS biding of WSDL, SOA 2.0, and Event- Condition-Action (ECA) process modeling for easy integration with existing systems.','IT Convergence and Security (ICITCS), 2013 International Conference on',1,'I. Song; J. Vong','ieee/service oriented architecture security.csv','ieee','\0'),(1778,'An Adaptive Mediation Framework for Mobile P2P Social Content Sharing','2012','7','','Abstract Mobile Social Network in Proximity (MSNP) represents a new form of social network in which users are capable of interacting with their surroundings via their mobile devices in public mobile peer-to-peer (MP2P) environments. MSNP brings opportunity to people to meet new friends, share device content, and perform various social activities. However, as the fundamental topology of MSNP is based on public MP2P network, many challenges have arisen. Existing related works restrict the MP2P social network to operate in specific platforms and protocols. Enabling MSNP in a dynamic public MP2P requires a more flexible solution, which can adapt its behaviour to comply with environment. Hence, we propose a mobile device-hosted service-oriented workflow-based mediation framework for MSNP. The fundamental portion of the framework is based on the Enterprise Service Bus architecture which supports changes in runtime resources without the need to re-launch the application. In order to adapt to different situations, our workflow tasks adjust the execution behaviour at runtime. The workflow engine dynamically selects the best approach to complete the mobile user’s request based on the cost and performance, calculated by combining fuzzy set and cost performance index. The developed prototype is discussed along with detailed performance.','',2,'Chii ChangSatish Narayana SriramaSea Ling','springer/bpel security.csv','springer','\0'),(1779,'Adaptive content caching simulation with visualization capabilities','2015','0',' Caching Overlay Content replacement algorithm Simulation Visualization','Abstract Current Internet architecture is being challenged by the overwhelming multiplication of available content and the increasing requirements of the content delivery applications. Content Delivery Networks have been playing a catalytic role in content delivery solutions, replicating (caching) content at the edges of the network. In this paper, we have investigated the potential benefits offered by adaptability in overlay content replication, considering changing conditions such as the popularity and the size of the content objects and a system of collaborating content caches. Pursuing the understanding of the influence of these parameters we have designed and implemented a simulation framework, with enhanced visualization and parameterization capabilities, and performed a series of experiments, under varying conditions.','Telecommunication Systems',1,'Andreas PapadakisTheodore ZahariadisNikolaos Nikolaou','springer/soa security.csv','springer',''),(1780,'Analysis of Timing Constraints in Heterogeneous Middleware Interactions','2015','0',' Heterogeneous services Middleware interoperability Interaction paradigms Timed automata Uppaal Statistical analysis','Abstract With the emergence of Future Internet applications that connect web services, sensor-actuator networks and service feeds, scalability and heterogeneity support of interaction paradigms are of critical importance. Heterogeneous interactions can be abstractly represented by client-service , publish-subscribe and tuple space middleware connectors that are interconnected via bridging mechanisms providing interoperability among the services. In this paper, we make use of the eXtensible Service Bus (XSB), proposed in the CHOReOS project as the connector enabling interoperability among heterogeneous choreography participants. XSB models transactions among peers through generic post and get operations that represent peer behavior with varying time/space coupling. Nevertheless, the heterogeneous lease and timeout constraints of these operations severely affect latency and success rates of transactions. By precisely studying the related timing thresholds using timed automata models, we verify conditions for successful transactions with XSB connectors. Furthermore, we statistically analyze through simulations, the effect of varying lease and timeout periods to ensure higher probabilities of successful transactions. Simulation experiments are compared with experiments run on the XSB implementation testbed to evaluate the accuracy of results. This work can provide application developers with precise design time information when setting these timing thresholds in order to ensure accurate runtime behavior.','',1,'Ajay KattepurNikolaos GeorgantasGeorgios BouloukakisValérie Issarny','springer/service oriented architecture security.csv','springer',''),(1781,'Prototype for design-time secure and trustworthy service composition','2013','2','Security Policy; Security Verification; Service Composition; Service Oriented Architectures','Service-oriented environments provide the opportunity for services from different providers to work together, forming new composite services via composition of existing services. However, in addition to the intended outcomes, composition also introduces the potential for unexpected or emergent behaviour, resulting in new uncertainties, especially in the area of security. Funded by the European FP7 programme, our research focusses on providing a service composition platform that is secure and trustworthy. We will demonstrate the design-time prototype that show how to create service compositions, verify them against security policies and make sensible recommendations based on a user\'s security preferences. © 2013 IEEE.','',1,'Zhou B., Llewellyn-Jones D., Shi Q., Asim M., Merabti M.','scopus/service oriented architecture security.csv','scopus','\0'),(1782,'A service composition oriented framework for configuring SMeet multiparty collaboration environments','2014','0',' Service composition oriented framework Cyber infrastructure for collaboration Distributed smart spaces Multiparty collaboration environments','Abstract To enable remote collaboration among knowledge workers, there has been extensive research about prototyping network-based multiparty collaboration environments. Particularly, it is necessary to solve the configuration difficulties that arise from different settings of various tools in traditional room-based collaboration systems. To ease these difficulties, in this paper, we design a service composition oriented framework for the SMeet (Smart Meeting Space) multiparty collaboration environments by following the SOA (service oriented architecture) design principles. The proposed framework aims to facilitate the flexible configuration of diverse networked devices and associated application tools for successful multiparty collaboration. According to a pre-defined template, it helps the operators and users to compose services that are dispersed across remote sites. By leveraging open-source agent middleware, we also develop a SMeet toolkit with GUIs (graphical user interfaces) to assist the easily-configurable realization of SMeet multiparty collaboration environments. The developed SMeet toolkit is utilized to realize a remote collaboration scenario between two SMeet prototype sites, by enabling the network-based interactive sharing of HD-quality media on networked tiled displays (NeTDs).','Multimedia Tools and Applications',1,'Sang Woo HanJongWon Kim','springer/service oriented architecture security.csv','springer','\0'),(1783,'Request Distribution Toolkit for Virtual Resources Allocation','2012','1',' Service Oriented Architecture request distribution virtualization management','Abstract The Service Oriented Architecture (SOA) concept facilitates building flexible services that can be deployed in distributed environment, and executed on different hardware and software platforms. On the other hand SOA paradigm rises many challenges in the area of Quality of Service and resources utilization. In the paper Resources Distribution Manager (RDM) that manages resources and service delivery in order to satisfy user requirements and service provider’s needs is presented. Requests for services are distributed to selected virtualized instances of services or optionally new instances are created for handling the requests. The allocation decisions are based on the knowledge about the communication resources and the current load of computational resources which are dynamically monitored by special RDM module. The decision on the resources allocation is then compared with its utilization during service execution and causes changes in allocation strategy.','',1,'Jan KwiatkowskiMariusz Fras','springer/service oriented architecture security.csv','springer','\0'),(1784,'Relating software validation to technology trends','2012','0',' Model-based development Abstraction Refinement Model transformation Verification Tool support','Abstract Large scale software engineering is undergoing substantial shifts due to a combination of technological and economic developments. These include the prevalence of software for embedded systems, global software development across geographically distributed teams, the technological shift towards multi-core platforms, and the inevitable shift towards software being used as a service. In this overview article, we discuss some of the challenges that lie ahead for software validation, due to such technological developments. In particular, we provide a brief introduction to the papers appearing in this special issue, many of which specifically focus on validation of software running on real-time embedded systems.','International Journal on Software Tools for Technology Transfer',2,'Zhiming LiuAbhik Roychoudhury','springer/bpel security.csv','springer','\0'),(1785,'Formal Modeling and Analysis of the REST Architecture Using CSP','2013','0',' Modeling Analysis the REST Architecture CSP','Abstract As one of the most promising architectural styles, Representational State Transfer (REST) was first proposed to support the enablement of scalable and reliable design for largescale distributed hypermedia systems such as the World Wide Web (WWW). Rapidly development of the RESTful systems brings the misunderstanding and misapplied of the REST architecture. In this paper, we present a formal model to capture the essential features for the REST architecture, in which components of RESTful systems are modeled as CSP processes. Thus all the REST constraints can be completely described and validated in our framework. Furthermore, REST constraints are verified using the model checker PAT. The proposed framework for REST architecture is not only confined to HTTP but can also be applied to other REST-compliant protocols. Finally a case study about an application scenario for environment monitoring is illustrated to show the feasibility of our approach. Consequently, better understanding of REST can be achieved and implementations of RESTful systems can benefit from it.','',2,'Xi WuYue ZhangHuibiao ZhuYongxin ZhaoZailiang SunPeng Liu','springer/bpel security.csv','springer','\0'),(1786,'Secure Workflow Execution in Grid Environments','2009','1','','This paper presents a complete workflow security system for Grid Environments. It offers a high level of security, including access control for complex workflows, for various types of operations. This novel architecture also performs complex analyses for incompatible roles and policies at the workflow level. It also keeps track of previous actions and computes a security level for each enlisted user. Workflows are received in a slightly modified BPEL format, which ensures a certain degree of compatibility with a normal BPEL engine, but at the same time offers a simple description regarding the security information which must be transmitted. The novel format, derived from BPEL, represents the secure workflow model, a new standard capable of securely describing a workflow. The result of this work is a fast, modifiable and easy to integrate security system.','2009 3rd International Conference on New Technologies, Mobility and Security',2,'A. L. Petrescu; C. Leordeanu; V. Cristea','ieee/bpel security.csv','ieee','\0'),(1787,'Assisting sensor-based application design and instantiation using activity recommendation','2015','','Activity recommendation; Business process; Neighbourhood context; Sensor-based applications; Service adaptation; Service composition','Recently, Sensor/Actuator Networks have become an emergent technology for various application areas such as security and surveillance applications, traffic control, logistics, energy control in public and private buildings, etc. Designing and constructing new applications using these technologies remain, however, a challenging task. Indeed, finding the relevant sensors and actuators, and combining them in a proper way in order to achieve a specific goal is not an easy task and requires several skills from different stakeholders. Moreover, sensor environments are inherently highly dynamic. Furthermore, current applications are in general tightly coupled to the underlying infrastructure which hampers their reuse and flexibility to changes. In this paper, we present a process-oriented and service-based approach for supporting the development of adaptive sensorbased applications. Our approach decouples application logic from its implementation. A designtime model is first specified, as a flow of activities, which is then deployed in a particular environment. Decoupling the application logic from its implementation enables, on one hand, to foster the reuse at the application level and, on the other hand, to adapt the same application to different environments and situations. We propose also an activity recommendation technique to provide assistance to application designers by recommending to them activities that have been used in a similar compositional context. Our approach has been prototyped using service standards such as BPMN within the context of the VITRO European project and validated by several use cases. © The British Computer Society 2014. All rights reserved.','',2,'Movahedi Z., Gaaloul W., Bhiri S., Defude B.','scopus/bpmn security.csv','scopus',''),(1788,'Proposal of an interoperability model for social security information systems','2013','','Interoperability; Soa; Social security','The paper presents the most important concepts of interoperability and analyse the problems to apply interoperability in Social Security information systems. A model for apply interoperability between Social Security Institutions is presented and is proved in some scenarios. The goal is to develop standardize specifications promoting reusability and enabling to address the issues of cost and complexity in social security systems implementation. The main contributions of this paper are the proposition of an interoperability model based on the EIF\'s model and taking into account characteristics and application scenarios of the Social Security domain.','',1,'Delgado F., Otón S., Ruggia R., Hilera J.R., Gutiérrez J.M.','scopus/soa security.csv','scopus','\0'),(1789,'Maximizing the use of EO products: How to leverage the potential of open geospatial service architectures','2012','','Earth Observation; Heterogeneous Missions Accessibility; HMA; Open geospatial consortium; Service-oriented architecture; Service-oriented-analysis and design; SERVUS; Web services','The demand for the rapid provision of EO products with well-defined characteristics in terms of temporal, spatial, image-specific and thematic criteria is increasing. Examples are products to support near real-time damage assessment after a natural disaster event, e.g. an earthquake. However, beyond the organizational and economic questions, there are technological and systemic barriers to enable a comfortable search, order, delivery or even combination of EO products. Most portals of space agencies and EO product providers require sophisticated satellite and product knowledge and, even worse, are all different and not interoperable. This paper gives an overview about the use cases and the architectural solutions that aim at an open and flexible EO mission infrastructure with application-oriented user interfaces and well-defined service interfaces based upon open standards. It presents corresponding international initiatives such as INSPIRE (Infrastructure for Spatial Information in the European Community), GMES (Global Monitoring for Environment and Security), GEOSS (Global Earth Observation System of Systems) and HMA (Heterogeneous Missions Accessibility) and their associated infrastructure approaches. The paper presents a corresponding analysis and design methodology and two examples how such architectures are already successfully used in early warning systems for geo-hazards and toolsets for environmentally-induced health risks. Finally, the paper concludes with an outlook how these ideas relate to the vision of the Future Internet. © 2012 SPIE.','',1,'Usländer T.','scopus/service oriented architecture security.csv','scopus','\0'),(1790,'How to Design a Global SOA Infrastructure: Coping with Challenges in a Global Context','2012','1','Enterprise Service Bus;Global SOA infrastructure;SOA Governance;SOA Management;SOA Repository;SOA Rgistry','This article demonstrates how to build a globalSOA infrastructure, using a step by step approach and Design Patterns. The proposed architecture results in a minimalistic use of the SOA concepts and a novel solution for SOA management and governance which goes beyond current vendor products.','Web Services (ICWS), 2012 IEEE 19th International Conference on',1,'A. Hsiung; G. Rivelli; G. Hüttenegger','ieee/service oriented architecture security.csv','ieee','\0'),(1791,'Evidence-driven decision support in critical infrastructure management through enhanced domain knowledge modeling','2014','1',' Infrastructure management Remote Sensing Visual analytics Ontological engineering Service-oriented architecture','Abstract Effective critical infrastructure management in dynamically changing service environments requires understanding and inferring unknown knowledge from complex heterogeneous dataset to reason about multi-dimensional complex problem solving activities by aggregating supporting evidences. While the attributes of the database table only describe data and certain notions from the database relational schema, they do not describe the higher-level concepts or the knowledge from the domain that are commonly thought of and referred by engineers who need to inspect and manage the infrastructure with a holistic viewpoint. Thus, engineers have to work with rudimentary data-level attributes that, further, complicates the critical infrastructure management, which essentially needs efficient, effective, and informed decision making. Ontology enables to solve a complex problem where the underlying domain concept provides collective understanding of the data based on the domain knowledge from multi-dimensional resources. Enhanced domain knowledge modeling is applied for transportation infrastructure asset management that requires bridge inspectors to make decisions based on complex multi-layered heterogeneous data, such as, infrared image data, aerial photo data, ground-mounted LIDAR data, etc. The ontological concepts represent the process knowledge and assessment knowledge and it will be further used to support the bridge inspectors and their inspection process, whereas data are the ground facts. This process knowledge plays an important role to bridge the ground facts and the high-level concept space and provides the mapping of the complex data space to the easily comprehensible conceptual space. In making critical decisions, these become crucial evidences in justifying decisions made as well as in making uniform decisions among different subject matter experts through the common understanding.','Multimedia Tools and Applications',1,'Seok-Won Lee','springer/service oriented architecture security.csv','springer','\0'),(1792,'Applications of Coloured Petri Nets for Functional Validation of Protocol Designs','2013','2','','Abstract Communication protocols constitute central building blocks in most modern IT systems as they define components, rules, and languages that make data communication possible. The development of correct protocols is a challenging engineering discipline, making modelling and validation of protocol design an important application domain for Coloured Petri Nets (CPNs). We illustrate the practical application of CPNs for protocol validation by focusing on selected aspects of four recent projects involving industrial-sized protocols. These projects demonstrate how CPNs can be used to model protocol elements and improve protocol specifications, how state space exploration can be used to verify protocol properties, and how behavioural visualisation in combination with a CPN model provides an effective way of rapidly constructing an executable prototype of a protocol design.','',1,'Lars M. KristensenKent Inge Fagerland Simonsen','springer/service oriented architecture security.csv','springer','\0'),(1793,'Improving Web Service Composition with User Requirement Transformation and Capability Model','2013','0',' Web services requirement transformation service capability','Abstract In order to discover and compose relevant Web services, most Web service composition approaches require users to describe composition requirements and constraints in formal expressions. However, requirements still focus on the technical level as they require domain-specific knowledge on functional and non-functional properties. As a matter of fact, the gap between users’ high-level requirements describing business objectives and composition requirements remains a challenge in Web service composition. In this paper, we propose an end-to-end transformation approach to build a set of technical composition requirements from user high-level requirements, which are specified by an English-structured language to capture business objectives, and to specify actions that Web services can achieve.','',1,'Wenbin LiYouakim BadrFrédérique Biennier','springer/service oriented architecture security.csv','springer','\0'),(1794,'A QoS-based fuzzy model for evaluation service quality parameters in service-oriented architecture','2014','','fuzzy logic; quality of service; quality parameters; Service Oriented Architecture','Nowadays, service-oriented architecture is developed as a flexible architecture for developing dynamic systems. In consider to the importance of quality of service (QoS), measured parameters in this architectural services such as security, reliability and... has a special place. Uncertainty of parameters affect service quality is considered as a key challenge in such environments. This requiring measurement of these parameters reveals a consistent and efficient manner. Since fuzzy logic is able to express the relative value of the credit in real-world concepts, this article proposes an approach on fuzzy logic to deal with these challenges and evaluation of quality of service. © 2014 IEEE.','',1,'Musavi M., Pasha M.R., Hamzehnia M., Hoseini M.','scopus/service oriented architecture security.csv','scopus','\0'),(1795,'Information security risk management in a world of services','2013','','Cloud; Controllability; Information security; ISO/IEC 27005; Risk management; SOA; Web services','Service Oriented Architectures (SOA) offer new opportunities for the interconnection of systems. However, for a company, opening its Information System to the \"world\" is not insignificant in terms of security. Whether to use available services or provide its own services, new technologies have introduced new vulnerabilities and therefore new risks. Our work aims to propose an approach for risk management which is based on the ISO/IEC 27005:2011 standard: we propose a development of this standard (by an extension of Annex D) so that it can fully take into account the type \"service\" as web services and cloud services. Indeed, a world of services is not limited to link interconnected systems, it is more a relationship between customer and supplier, where notions of trust, accountability, traceability and governance are developed. Following this study we introduce a new security criterion, controllability, to ensure that a company keeps control of its information even if it uses such outsourced services. © 2013 IEEE.','',1,'Lalanne V., Munier M., Gabillon A.','scopus/service oriented architecture security.csv','scopus','\0'),(1796,'Querying a Service from Repository of SMaps','2013','0',' webservice RDBMS Service Search','Abstract Recent advances in Internet technologies have populated web with large number of services. For effective retrieval of services we have proposed SMap [10] specification that enables service provider to describe a service concealing its business logic. The details of a service includes its constituents, promotion and associated conditions. Here we propose a scheme to store SMaps in a relational database. For service retrieval a query processing system is also proposed. Retrieved services are ranked based on a score computed from structural characteristics of services.','',1,'Supriya VaddiHrushikesha Mohanty','springer/webservice security.csv','springer','\0'),(1797,'A loan management system as web services: A case study on a microfinance institution','2014','','Case studies; E-finance; Security of web services; Tools and applications; Unified modelling language; Web services','Despite the determination of small microfinance institutions to expand into rural areas, they are limited by geographical isolation and high transaction costs. To set those institutions and their customers free from geographical constraints, we suggest isolated populations access some features of the enterprise application via Smartphone. This solution is based on a service-oriented architecture in which the main features are developed as web services. The invocation of the methods is performed from a Smartphone or a personal computer (PC), while the execution will be done on a server that returns an understandable result through web service description language (WSDL) generated by web services, where the transport is provided by simple object access protocol (SOAP). Copyright © 2014 Inderscience Enterprises Ltd.','',1,'Dagba T.K., Lohounmè E., Nambila A., Boco C.Y.','scopus/service oriented architecture security.csv','scopus','\0'),(1798,'Service feature modeling: modeling and participatory ranking of service design alternatives','2016','2',' Software service engineering Participatory design Service variation modeling Multi-criteria feature configuration decisions','Abstract The design of software-intensive service systems involves and affects numerous stakeholders including software engineers, legal and business experts as well as a potentially large number of consumers. In consequence, the challenge arises to adequately represent the interests of these groups with respect to service design decisions. Specifically, shared service design artifacts and participatory methods for influencing their development in consensus are required, which are not yet state of the art in software service engineering. To this end, we present service feature modeling. Using a modeling notation based on feature-oriented analysis, our approach can represent and interrelate diverse service design concerns and capture their potential combinations as service design alternatives. We further present a method that allows stakeholders to rank service design alternatives based on their preferences. The ranking can support service engineers in selecting viable alternatives for implementation. To exploit this potential, we have implemented a toolkit to enable both modeling and participative ranking of service design alternatives. It has been used to apply service feature modeling in the context of public service design and evaluate the approach in this context.','Software & Systems Modeling',2,'Erik WitternChristian Zirpins','springer/bpmn security.csv','springer',''),(1799,'301--308','2012','0','ITS, SOA, WSN, intelligent transportation systems, navigation, parking systems, service-oriented architecture, web services, wireless sensors networks','In this paper, Wireless Sensor Networks (WSN) and Service-Oriented Architecture (SOA) approaches are analyzed given that represent both emerging and key role for Intelligent Transportations Systems (ITS). However, It is worth noting that WSN and SOA approaches have begun to be applied into ITS separately and day by day these approaches tend to be combined to get the best outcomes for both safety and security for ITS applications. For this reason, a discussion of the principals ITS applications of these two approaches and a case study, that has been designed and implemented to illustrate their advantages, are presented. The case study is focused on support a very useful ITS service associated with the localization of parking spaces.','',1,'','acm/soa security.csv','acm','\0'),(1800,'Knowledge-based clinical pathway for medical quality improvement','2012','4',' Clinical pathway Quality improvement Knowledge-based system Decision support for pathway management Medical service quality','Abstract Clinical pathways have been adopted for various diseases in clinical departments for quality improvement as a result of standardization of medical activities in treatment process. Using knowledge-based decision support on the basis of clinical pathways is a promising strategy to improve medical quality effectively. However, the clinical pathway knowledge has not been fully integrated into treatment process and thus cannot provide comprehensive support to the actual work practice. Therefore this paper proposes a knowledge-based clinical pathway management method which contributes to make use of clinical knowledge to support and optimize medical practice. We have developed a knowledge-based clinical pathway management system to demonstrate how the clinical pathway knowledge comprehensively supports the treatment process. The experiences from the use of this system show that the treatment quality can be effectively improved by the extracted and classified clinical pathway knowledge, seamless integration of patient-specific clinical pathway recommendations with medical tasks and the evaluating pathway deviations for optimization.','Information Systems Frontiers',1,'Hongqiao YangWeizi LiKecheng LiuJunping Zhang','springer/soa security.csv','springer','\0'),(1801,'Measure Method and Metrics for Network Characteristics in Service Systems','2013','0',' service systems network characteristic measure service cooperation relationship','Abstract As the development of Service-oriented architecture and service engineering, they have been generally adopted as the architecture and engineering method of software. More and more service applications and systems are constituted by distributed resources and web services which means more challenges in dynamic, varied and complex network environment. At the same time, the dependence and interactivity between the elements of networked service systems result in faults and difficulties in understanding and upgrading system and making the systems much more weakness. In this paper, according to the dynamic characteristics of the networked service system, we propose a network characteristics measure method and metrics for service system (MSS). Service system is defined by the descriptions of six important parameters at system level, which include service complexity, service cooperation relationship factor, service node factor, service cooperation factor, and service composition factor. Then the corresponding simulation is introduced by using the characteristics measure method and the analysis of the simulation results is also given. At last, a dynamic on-demand service composition algorithm based on MSS is designed and its feasibility and effectiveness are verified.','',1,'Haihong EXiaojia JinJunjie TongMeina SongXianzhong Zhu','springer/service oriented architecture security.csv','springer','\0'),(1802,'An Aspect-based Process Container for BPEL','2005','10','AOP, BPEL, aspects, middleware, web service composition','Proceedings of the 1st Workshop on Aspect Oriented Middleware Development','',2,'Anis Charfi and Mira Mezini','acm/bpel security.csv','acm',''),(1803,'Model-Based Analysis of Wireless System Architectures for Real-Time Applications','2013','5','Architecture analysis and description language (AADL);model-based analysis;wireless system architecture','We propose a model-based description and analysis framework for the design of wireless system architectures. Its aim is to address the shortcomings of existing approaches to system verification and the tracking of anomalies in safety-critical wireless systems. We use Architecture Analysis and Description Language (AADL) to describe an analysis-oriented architecture model with highly modular components. We also develop the cooperative tool chains required to analyze the performance of a wireless system by simulation. We show how this framework can support a detailed and largely automated analysis of a complicated, networked wireless system using examples from wireless healthcare and video broadcasting.','IEEE Transactions on Mobile Computing',1,'K. Kang; M. Y. Nam; L. Sha','ieee/service oriented architecture security.csv','ieee','\0'),(1804,'Advances in infrastructures and tools for multiagent systems','2014','1','','','Information Systems Frontiers',1,'Juan M. AlberolaVicent BottiJose M. Such','springer/service oriented architecture security.csv','springer','\0'),(1805,'QoS-adaptive service configuration framework for cloud-assisted video surveillance systems','2015','0',' Adaptive QoS Cloud-assisted video surveillance Service configuration Transcoding service','Abstract Quality of service (QoS)-adaptive service configuration is crucial for seamless access to video services in cloud-assisted video surveillance systems. To maintain seamless access to video on a user’s preferred device, suitable video transcoding services are needed. It is a challenging task to choose and configure these services for various devices to ensure QoS-adaptive user experiences. To configure these services for the desired user devices, a suitable configuration algorithm is needed. Therefore, this paper describes a QoS-adaptive service configuration approach to choose the optimal configuration for the preferred user devices in varied contexts so that the user can access the services ubiquitously. We implemented a cloud-assisted video surveillance prototype to show how the proposed method can handle ubiquitous access to target video for possible QoS-adaptive and video processing requirements in terms of bandwidth, delay, and frame rates. The results show that the proposed configuration method outperforms the other comparable approaches.','Multimedia Tools and Applications',1,'Atif AlamriM. Shamim HossainAhmad AlmogrenMohammad Mehedi HassanKhalid AlnafjanMohammed ZakariahLee SeyamAbdullah Alghamdi','springer/service oriented architecture security.csv','springer',''),(1806,'A Language-Based Approach to Autonomic Computing','2013','7','','Abstract SCEL is a new language specifically designed to model autonomic components and their interaction. It brings together various programming abstractions that permit to directly represent knowledge, behaviors and aggregations according to specific policies. It also supports naturally programming self-awareness, context-awareness, and adaptation. In this paper, we first present design principles, syntax and operational semantics of SCEL. Then, we show how a dialect can be defined by appropriately instantiating the features of the language we left open to deal with different application domains and use this dialect to model a simple, yet illustrative, example application. Finally, we demonstrate that adaptation can be naturally expressed in SCEL.','',1,'Rocco De NicolaGianluigi FerrariMichele LoretiRosario Pugliese','springer/service oriented architecture security.csv','springer','\0'),(1807,'Compliance Checking of Data-Aware and Resource-Aware Compliance Requirements','2014','1',' compliance checking auditing data-aware and resource-aware compliance requirements conformance checking','Abstract Compliance checking is gaining importance as today’s organizations need to show that their business practices are in accordance with predefined (legal) requirements. Current compliance checking techniques are mostly focused on checking the control-flow perspective of business processes. This paper presents an approach for checking the compliance of observed process executions taking into account data, resources, and control-flow. Unlike the majority of conformance checking approaches we do not restrict the focus to the ordering of activities (i.e., control-flow). We show a collection of typical data and resource-aware compliance rules together with some domain specific rules. Moreover providing diagnostics and insight about the deviations is often neglected in current compliance checking techniques. We use control-flow and data-flow alignment to check compliance of processes and combine diagnostics obtained from both techniques to show deviations from prescribed behavior. Furthermore we also indicate the severity of observed deviations. This approach integrates with two existing approaches for control-flow and temporal compliance checking, allowing for multi-perspective diagnostic information in case of compliance violations. We have implemented our techniques and show their feasibility by checking compliance of synthetic and real life event logs with resource and data-aware compliance rules.','',2,'Elham Ramezani TaghiabadiVladimir GromovDirk FahlandWilM. P. van der Aalst','springer/bpmn security.csv','springer',''),(1808,'Network management for multi-network terminals','2012','0','Multi-Network Terminal;Network Architecture;Network Management','There is increasing interest in using terminal architectures capable of supporting multiple networks. A terminal that is episodically present on a network is a new situation for most Network Managers and for computer network defense needs. Likewise, having to accommodate interaction with multiple network managers is a different paradigm for the terminal. This paper discusses the kinds of node architecture features that would support this kind of interaction. It looks at the extension of traditional control plane architectures to support the use of Cognitive engines to simplify interactions with network managers and network security functions. It also discusses the use of a Service Oriented Architecture for alerting user networks when a terminal becomes part of the backhaul path.','MILCOM 2012 - 2012 IEEE Military Communications Conference',1,'S. Dudley; M. Klingler','ieee/service oriented architecture security.csv','ieee','\0'),(1809,'Architecture of automated communication and data processing system for forensic medicine','2015','','ESB; Forensic medicine software; Information extraction; Information retrieval; Process modelling; SOA','The paper introduces a blueprint for system that automates and facilitates the process of medico-legal exams and inquests. The system responsibilities are to mediate the communication between institutions and forensic doctors and to organize, store and archive tasks and data based on the legal regulations. Currently in Bulgaria and the Balkans there is no fully computerized solution which is the main reason for this paper. The system would allow examiners to focus on the actual medical work and not on the paper work. Key advantages of the system are the automation in the process, the communication with external systems and participants, the dynamic modelling of the processes and the security model that would keep patient privacy and data integrity. Copyright © 2015 ACM.','',1,'Banchev B., Georgiev T.','scopus/soa security.csv','scopus',''),(1810,'Privacy-aware access control for video data in intelligent surveillance systems','2012','','Access Control; privacy; security; Surveillance','Surveillance systems became powerful. Objects can be identified and intelligent surveillance services can generate events when a specific situation occurs. Such surveillance services can be organized in a Service Oriented Architecture (SOA) to fulfill surveillance tasks for specific purposes. Therefore the services process information on a high level, e.g., just the position of an object. Video data is still required to visualize a situation to an operator and is required as evidence in court. Processing of personal related and sensitive information threatens privacy. To protect the user and to be compliant with legal requirements it must be ensured that sensitive information can only be processed for a defined propose by specific users or services. This work proposes an architecture for Access Control that enforces the separation of data between different surveillance tasks. Access controls are enforced at different levels: for the users starting the tasks, for the services within the tasks processing data stored in central store or calculated by other services and for sensor related services that extract information out of the raw data and provide them. © 2012 SPIE.','',1,'Vagts H., Jakoby A.','scopus/service oriented architecture security.csv','scopus','\0'),(1811,'REST-based Web Services','2014','0','','Abstract Web services are an important development in making data available to clients in a programmatic manner. Rather than displaying results for humans to view on the Web, we can make requests to a Web service in order to get the resulting data directly and then consume it in our applications immediately. An increasingly common architecture for Web services is termed REST and exploits the concept of URLs as resources. We can make general HTTP requests to retrieve, update, modify, and even create resources. The results (and sometimes the inputs) are often formatted as JSON or XML . In this chapter, we look at how we can access REST services from within R , mapping the documentation for the services into requests, converting the results, and developing R functions to provide higher-level interfaces that hide the details of the HTTP and conversion. REST is becoming the dominant mechanism used for Web services which are also becoming very common. REST is not just used for Web services, but is also increasingly used to communicate with regular applications such as NoSQL databases and text search engines and we explore these also in this chapter.','',1,'Deborah NolanDuncan Temple Lang','springer/webservice security.csv','springer','\0'),(1812,'Structured Communication—Approaching S-BPM with Microsoft Technologies','2015','1','','Abstract Many enacted business processes in the field use (more or less intense) communication to forward work to the next participant in an activity chain. Communication can be oral (personal, phone) or technically supported (e-mail, phone). It can be unstructured using natural language—typically text or spoken word—or structured using formal language (business objects) typically stored in systems. Based on decades of research in the domain of the social sciences, we know that an understanding of how organizations work are based on communication and language. Therefore any technology to support the execution of business processes should support communication between process participants. This is the concept of S-BPM. Here, we present the results of work in the field to develop a platform to model and execute business processes as interaction between actors. As process models predefine work we call this way of interaction structured communication (using standard e-mail exchange). To enable also cross-company communication (process orchestrations) we technically implemented the platform as a so-called multi - enterprise business process platform (ME-BPP) using cloud technology. The contribution uses a real-world case to demonstrate the need for a communication-based view on business processes. The case reflects the situation typically for large-scale international companies with world-wide activities and with focus on processes related to order fulfillment, including manufacturing. Further on, an IT architecture to support the enactment of such distributed processes is discussed. The contribution is intended for practitioners with some IT background and/or interests.','',2,'Robert SingerStefan Raß','springer/bpmn security.csv','springer',''),(1813,'Modeling and Mining of Learnflows','2012','1','','Abstract This article transfers concepts and methods from business process modeling and workflow management to the field of learnflows, i.e. learning and teaching processes. It is first shown that these two areas have a lot of commonalities and similarities. On the other hand, there are also crucial specifics of learning processes that have to be taken into account additionally. We then introduce and discuss modeling languages for learnflows which are based on ideas from workflow modeling. Finally, we develop an approach to automatically generate learnflow models from log files of learning systems by adapting workflow mining methods.','',2,'Robin BergenthumJörg DeselAndreas HarrerSebastian Mauser','springer/bpel security.csv','springer','\0'),(1814,'Service-oriented trust and reputation management system for multi-tier cloud','2013','0','','Cloud based applications demand a higher level of security, privacy, and reliability toward a more cost effective solution. One of the challenges for the users of cloud-based services and applications is finding the most trusted provider for the minimum cost. The trusted providers from each customer can have different interpretation, or with different priority of the meaning. Furthermore, a tier-1 cloud service provider that delivers a service can receive the service, partially or fully, from tier-2 cloud service providers. In this paper, we propose a system to evaluate the trust, per delivered service by each provider and per each subject of the trust. Then, we propose an application of our trust system in choosing the best provider by a customer through minimizing the cost and maximizing the service-oriented trust. Our analysis shows the security, efficiency and applicability of our system in a multi-tier cloud environment.','Cloud Networking (CloudNet), 2013 IEEE 2nd International Conference on',1,'H. Nicanfar; S. Mohsen Amiri; Chunsheng Zhu; P. TalebiFard; V. C. M. Leung; P. Nasiopoulos','ieee/service oriented architecture security.csv','ieee','\0'),(1815,'rCOS: Defining Meanings of Component-Based Software Architectures','2013','2',' Component-Based Architecture Object-Oriented Design Model Model Refinement Model Transformation Verification','Abstract Model-Driven Software Development is nowadays taken as a mainstream methodology. In the software engineering community, it is a synonym of the OMG Model-Driven Architecture (MDA). However, in the formal method community, model-driven development is broadly seen as model-based techniques for software design and verification. Because of the difference between the nature of research and practical model-driven software engineering, there is a gap between formal techniques, together with their tools, and their potential support to practical software development. In order to bridge this gap, we define the meanings of component-based software architectures in this chapter, and show how software architectures are formally modeled in the formal model-driven engineering method rCOS. With the semantics of software architecture components, their compositions and refinements, we demonstrate how appropriate formal techniques and their tools can be applied in an MDA development process.','',1,'Ruzhen DongJohannes FaberWei KeZhiming Liu','springer/service oriented architecture security.csv','springer','\0'),(1816,'An Actor Based Software Framework for Scalable Applications','2014','0',' Actor model software framework concurrent systems distributed systems scalable applications Java','Abstract The development of scalable and efficient applications requires the use of appropriate models and software infrastructures. This paper presents a software framework that enables the development of scalable and efficient actor-based applications. Each application can be configured with different implementations of the components that drive the execution of its actors. In particular, the paper describes the experimentation of such a software framework for the development of agent-based modelling and simulation applications that involve a massive number of individuals.','',1,'Federico BergentiAgostino PoggiMichele Tomaiuolo','springer/service oriented architecture security.csv','springer','\0'),(1817,'Enhancing privacy and dynamic federation in IdM for consumer cloud computing','2012','9','','Consumer cloud computing paradigm has emerged as the natural evolution and integration of advances in several areas including distributed computing, service oriented architecture and consumer electronics. In this complex ecosystem, security and identity management challenges have cropped up, given their dynamism and heterogeneity. As a direct consequence, dynamic federated identity management with privacy improvements has arisen as an indispensable mechanism to enable the global scalability and usability that are required for the successful implantation of Cloud technologies. With these requirements in mind, we present an IdM architecture based on privacy and reputation extensions compliance with the SAMLv2/ID-FF standards1.','IEEE Transactions on Consumer Electronics',1,'R. Sanchez; F. Almenares; P. Arias; D. Diaz-Sanchez; A. Marin','ieee/service oriented architecture security.csv','ieee','\0'),(1818,'Achieving Flexible and Compliant Processes in Disaster Management','2013','1','compliance;disaster management;flexibility;worfklow management systems','Workflow management systems are becoming increasingly flexible and thus open up new areas of application, such as the coordination of activities in disaster response management. However, for managing disaster events effectively, flexibility is seen as a necessary but not sufficient condition. Moreover, effective disaster management processes require comprehensive access to and the processing of public as well as private information. Since extensive data usage without adequate controls will not be accepted in any open and free society, validating compliance for flexible disaster management processes is becoming crucial for realizing the enormous options of new information and communication technologies. In this contribution, we present a novel approach for realizing adaptive controls in flexible disaster management processes.','System Sciences (HICSS), 2013 46th Hawaii International Conference on',1,'K. Kittel; S. Sackmann; H. Betke; M. Hofmann','ieee/service oriented architecture security.csv','ieee','\0'),(1819,'Influences on regression testing strategies in agile software development environments','2014','1',' Regression testing strategy Exploratory case study Survey Agile software development','Abstract Regression testing is a well-established practice in software development, but in recent years it has seen a change of status and emphasis with the increasing popularity of agile methods, which stress the central role of regression testing in maintaining software quality. The objectives of this article are to investigate regression testing strategies in agile development teams and identify the factors that can influence the adoption and implementation of this practice. We have used a mixed methods approach to our research, beginning with an analysis of the literature to identify research themes related to the adoption of regression testing techniques under agile methodologies, from which we developed an analytical framework for the study. This was followed by three exploratory case studies that we used to exercise the main elements of the framework, develop some key themes of interest, and devise a questionnaire for the final stage of the study, an on-line survey to explore the main issues identified in the case studies across different contexts. Within our specific sample, our results suggest that organizational maturity is a key factor in effective regression testing practices and that the adoption of such practices is helped by a coherent testing philosophy and change management processes. We also found that the return on investment in automated regression testing was positive for our respondents and that adopting these practices in the context of agile methods had been a relatively painless process for the organizations in our survey. We conclude that investing in regression testing tools and processes is likely to be beneficial for organizations. However, further work is needed in assessing how organizational culture impacts on the quality process and the financial outcomes for commercial software development organizations.','Software Quality Journal',1,'David ParsonsTeo SusnjakManfred Lange','springer/service oriented architecture security.csv','springer','\0'),(1820,'Service Automata','2012','1','','Abstract We propose a novel framework for reliably enforcing security in distributed systems. Service automata monitor the execution of a distributed program and enforce countermeasures before a violation of a security policy can occur. A key novelty of our proposal is that security is enforced in a decentralized though coordinated fashion. This provides the basis for reliably enforcing global security requirements without introducing unnecessary latencies or communication overhead. The novel contributions of this article include the concept of service automata and a generic formalization of service automata in CSP. We also illustrate how the generic model can be tailored to given security requirements by instantiating its parameters in a stepwise and modular manner.','',1,'Richard GayHeiko MantelBarbara Sprick','springer/service oriented architecture security.csv','springer','\0'),(1821,'Local Controlled Vocabulary for Modern Web Service Description','2012','0',' federated local controlled vocabularies Web service description functionality description knowledge engineering knowledge representation Information Retrieval','Abstract This works contains a proposition for a modern Web service description, where functionality of Web service operations is defined with a set of federated Local Controlled Vocabularies (LCV). The LCVs serve as a referral platform for functionality definition with a phrase schema. This schema allows for describing every Web service operation in terms of main action associated with some object extended with an arbitrary number of supplements and marked with desired non functional properties. The proposed description argues for federated LCV instead of centralised fully fledged ontology based effort due to the cost, scalability and performance issues simultaneously maintaining the high level of expressivity unreachable for standard Information Retrieval systems used in Web service retrieval. This work concludes in presentation of mechanism that allows for query matching on envisioned structure along with experiment results and discussion on possible enhancements.','',1,'Konstanty Haniewicz','springer/service oriented architecture security.csv','springer','\0'),(1822,'Derivation of trust federation for collaborative business processes','2011','4','Business processes; Security; Trust','Service Oriented Architecture (SOA) is considered to be an important enabler of Internet of Services. By adopting SOA in development, business services can be offered, mediated, and traded as web services, so as to support agile and dynamic business collaborations on the Internet. Business collaboration is often implemented as cross-enterprise processes and involves more than one business entity which agrees to join the collaboration. To enable trustworthy and secure provision of services and service composition across enterprise boundaries, trust between business participants must be established, that is, user identities and access rights must be federated, to support business functions defined in the business processes. This paper proposes an approach which derives trust federation from formally described business process models, such as BPMN and WS-CDL processes, to automate security configuration of business collaborations. The result of the derivation is trust policies which identify trust relationships between business participants and can be enforced in enterprises\' service runtimes with support of a policy deployment infrastructure. © 2010 Springer Science+Business Media, LLC.','',2,'Hu J.','scopus/bpmn security.csv','scopus','\0'),(1823,'Next generation emergency management common operating picture software/systems (COPSS)','2012','','common operating picture; emergency response; fourDscape; situational awareness; telepresence; virtual reality','In the state-of-the-art Command Center at the Morrelly Homeland Security Center in Bethpage NY, VCORE Solutions has integrated, demonstrated, tested, deployed, and is operating powerful Emergency Management Common Operating Picture Software/Systems (COPSS). This Regional COPSS demonstrates in an operational environment the next generation of emergency management situational awareness, command & control, and information sharing in a natural, easy to use and understand four-dimensional (4D) common operating picture. This Regional COPSS is based on patented fourDscape software technology, developed over the past decade by Long Island, NY-based Balfour Technologies. This powerful fourDscape augmented virtual reality technology has been effectively applied to local and regional emergency management operations and can be deployed nationally to deliver comprehensive situational awareness in support of safety, security and emergency preparedness, prevention, mitigation, response and recovery operations at all levels. A fourDscape browser/server-based COPSS is designed as an open, multi-layered service/resource oriented networked architecture (SOA/ROA, i.e. cloud) capable of (1) integrating and managing a multitude of disparate data sources of all types (including live and static data feeds); (2) interoperability with numerous other vendors information systems, COPs, information sharing frameworks, notification and alerting systems, analytics, etc.; and (3) sharing and passing information and comprehensive, timely situational awareness between first responders at the incident site, incident commanders, and emergency managers and decision makers at local, regional and national emergency operations centers across the country. And consistent with the recent Presidential Policy Directive on National Preparedness (PPD-8), this fourDscape COPSS capabilities and framework represents currently operational technology that can achieve an integrated, layered, and all-of-Nation [capabilities-based] preparedness approach that optimizes the use of available resources. Next Generation COPSS such as fourDscape need to be open and scalable to facilitate global information sharing; deliver information in an easy-to-understand augmented virtual reality common operating picture; be easy-to-use walk-up technology with a full complement of embedded training/simulation capability; provide for effective information assurance; and be compliant and effective in executing national preparedness goals. All this can and will be achieved by next generation COPSS. © 2012 IEEE.','',1,'Balfour R.E.','scopus/soa security.csv','scopus','\0'),(1824,'On understanding the economics and elasticity challenges of deploying business applications on public cloud infrastructure','2012','19',' Cloud computing Cost Elasticity Scaling Economics Business applications SLA Cloud infrastructure service offerings IaaS','Abstract The exposure of business applications to the web has considerably increased the variability of its workload patterns and volumes as the number of users/customers often grows and shrinks at various rates and times. Such application characteristics have increasingly demanded the need for flexible yet inexpensive computing infrastructure to accommodate variable workloads. The on-demand and per-use cloud computing model, specifically that of public Cloud Infrastructure Service Offerings (CISOs), has quickly evolved and adopted by majority of hardware and software computing companies with the promise of provisioning utility-like computing resources at massive economies of scale. However, deploying business applications on public cloud infrastructure does not lead to achieving desired economics and elasticity gains, and some challenges block the way for realizing its real benefits. These challenges are due to multiple differences between CISOs and application’s requirements and characteristics. This article introduces a detailed analysis and discussion of the economics and elasticity challenges of business applications to be deployed and operate on public cloud infrastructure. This includes analysis of various aspects of public CISOs, modeling and measuring CISOs’ economics and elasticity, application workload patterns and its impact on achieving elasticity and economics, economics-driven elasticity decisions and policies, and SLA-driven monitoring and elasticity of cloud-based business applications. The analysis and discussion are supported with motivating scenarios for cloud-based business applications. The paper provides a multi-lenses overview that can help cloud consumers and potential business application’s owners to understand, analyze, and evaluate important economics and elasticity capabilities of different CISOs and its suitability for meeting their business application’s requirements.','Journal of Internet Services and Applications',1,'Basem SuleimanSherif SakrRoss JefferyAnna Liu','springer/service oriented architecture security.csv','springer',''),(1825,'Data-intensive architecture for scientific knowledge discovery','2012','4',' Knowledge discovery Workflow management system','Abstract This paper presents a data-intensive architecture that demonstrates the ability to support applications from a wide range of application domains, and support the different types of users involved in defining, designing and executing data-intensive processing tasks. The prototype architecture is introduced, and the pivotal role of DISPEL as a canonical language is explained. The architecture promotes the exploration and exploitation of distributed and heterogeneous data and spans the complete knowledge discovery process, from data preparation, to analysis, to evaluation and reiteration. The architecture evaluation included large-scale applications from astronomy, cosmology, hydrology, functional genetics, imaging processing and seismology.','Distributed and Parallel Databases',2,'Malcolm AtkinsonChee Sun LiewMichelle GaleaPaul MartinAmrey KrauseAdrian MouatOscar CorchoDavid Snelling','springer/bpel security.csv','springer','\0'),(1826,'Trustworthy Self-Integrating Systems','2016','0','','Abstract Patients in intensive care often have a dozen or more medical devices and sensors attached to them. Each is a self-contained system that operates in ignorance of the others, and their integrated operation as a system of systems that delivers coherent therapy is performed by doctors and nurses. But we can easily imagine a scenario where the devices recognize each other and self-integrate (perhaps under the guidance of a master “therapy app”) into a unified system. Similar scenarios can be (and are) envisaged for vehicles and roads, and for the devices and services in a home. These self-integrating systems have the potential for significant harm as well as benefit, so as they integrate they should adapt and configure themselves appropriately and should construct an “assurance case” for the utility and safety of the resulting system. Thus, trustworthy self-integration requires autonomous adaptation, synthesis, and verification at integration time, and this means that embedded automated deduction (i.e., theorem provers) will be the engine of integration.','',1,'John Rushby','springer/service oriented architecture security.csv','springer',''),(1827,'A Requirements-Led Approach for Specifying QoS-Aware Service Choreographies: An Experience Report','2014','0',' service choreographies requirements monitors user task models adaptive systems quality properties requirements-led life-cycle','Abstract [Context and motivation] Choreographies are a form of service composition in which partner services interact in a global scenario without a single point of control. The absence of an explicitly specified orchestration requires changes to requirements practices to recognize the need to optimize software services choreography and monitoring for satisfaction with system requirements. [Question/problem] We developed a requirements-led approach that aims to provide tools and processes to transform requirements expressed on service-based systems to QoS-aware choreography specifications. [Principal ideas/results] The approach is used by domain experts to specify natural language requirements on a service-based system, and by choreography designers to adapt their models to satisfy requirements more effectively. Non-functional requirements are mapped to BPMN choreography diagrams as quality properties, using the Q4BPMN notation, that support analysis and monitoring facilities. [Contribution] We report the new integrated approach and provide lessons learned from applying it to a real-world example of dynamic taxi management.','',2,'Neil MaidenJames LockerbieKonstantinos ZachosAntonia BertolinoGuglielmo De AngelisFrancesca Lonetti','springer/bpel security.csv','springer',''),(1828,'Integrated model of service-oriented architecture and web-oriented architecture for financial software','2012','2','Complexity analysis; Financial software; Function point analysis; Service-oriented architecture; Web-oriented architecture','Service-Oriented Architecture (SOA), which supports various features such as the interoperability and reusability of IT resources, comes into the spotlight as an effective approach for adapting new business environmental changes. SOA, however, has some problems including the high realization complexity and low Return on Investment (ROI). As a solution for these problems, Web-Oriented Architecture (WOA) has been gained attentions and expected the flexibility and reduction of complexity to be indeed achieved with simple implementations using RESTful services and mashups. However, it also has some drawbacks related to security concerns and unstable message transmissions. In this paper, we propose a novel integrated model that combines the advantages of both SOA and WOA seamlessly. According to the characteristics of a service, the proposed model applies SOA or WOA approach selectively to provide an appropriate way to implement the service. We employ the proposed model to design an actual financial software suite and validate its effectiveness using the well-known function point analysis. Estimation results have shown that our model can reduce the function point of the financial software up to 38%, compared with the legacy SOA based software, while satisfying diverse customer\'s requirements.','',1,'Park S., Choi J., Yoo H.','scopus/service oriented architecture security.csv','scopus','\0'),(1829,'Equivalence Transformations for the Design of Interorganizational Data-Flow','2015','0','','Abstract Distributed interorganizational processes can be designed by first creating a global process, which is then split into processes or views for each participant. Existing methods for automating this transformation concentrate on the control flow and neglect either the data flow or address it only partially. Even for small interorganizational processes, there is a considerably large number of potential realizations of the data flow. We analyze the problem of generating message exchanges to realize the dataflow in depth and present a solution for constructing data flows which are optimal with respect to some design objectives. The approach is based on a definition of the correctness of data flow and a complete set of transformations which preserve correctness and allow to search for an optimal solution from a generated correct solution.','',2,'Julius KöpkeJohann Eder','springer/bpel security.csv','springer',''),(1830,'Partial materialization for online analytical processing over multi-tagged document collections','2016','0',' Document warehouse Document tags Text analytics Selective materialization OLAP Faceted browsing','Abstract The New York Times Annotated Corpus, the ACM Digital Library, and PubMed are three prototypical examples of document collections in which each document is tagged with keywords or phrases. Such collections can be viewed as high-dimensional document cubes against which browsers and search systems can be applied in a manner similar to online analytical processing against data cubes. After examining the tagging patterns in these collections, a partial materialization strategy is developed to provide efficient storage and access to centroids for document subsets that are defined through queries over tags. By adopting this strategy, summary measures dependent on centroids (including measures involving medoids, sets of representative documents, or sets of representative terms) can be efficiently computed. The proposed design is evaluated on the three collections and on several synthetically generated collections to validate that it outperforms alternative storage strategies.','Knowledge and Information Systems',1,'Grzegorz DrzadzewskiFrank Wm. Tompa','springer/service oriented architecture security.csv','springer',''),(1831,'Detecting common subexpressions for multiple query optimization over loosely-coupled heterogeneous data sources','2016','1',' Distributed databases Common subexpressions LINQ SQL XQuery Event and stream processing Heuristic rules','Abstract The research presented in this paper supports the identification of common subexpressions as candidates for potential materialized views that form the basis of multiple query optimization in a loosely-coupled distributed system where query expressions access heterogeneous data sources, including relations and data-centric XML. This paper introduces a unifying mixed multigraph formalism to represent SQL, XQuery, and LINQ queries in a common query graph model and a heuristics-based algorithm to detect common subexpressions. The identified common subexpressions represent an opportunity for defining a materialized view to avoid repeating computation. The common subexpressions may access only relations, only XML, or a combination of relations and XML. The mixed multigraph model and the heuristic rules presented in this paper have distinguished advantages over the existing approaches that consider only relational or XML data sources individually. The mixed multigraph model can present SQL, XQuery, and LINQ queries in a single graph model and the heuristic rules are designed to consider the identical and subsumed conditions at the same time. A prototype implementation of the algorithm illustrates the applicability of the approach using various examples from the research literature as well as scenarios over a Criminal Justice enterprise that include common subexpressions across relational and XML data sources.','Distributed and Parallel Databases',1,'Mahesh B. ChaudhariSuzanne W. Dietrich','springer/service oriented architecture security.csv','springer',''),(1832,'Synthesis of Real-Time Applications for Internet of Things','2013','0',' Internet of things real-time system system synthesis embedded systems','Abstract This paper presents the methodology for synthesis of real-time applications working in the Internet of things environment. We propose the client-server architecture, where smart embedded systems act as clients, while the Internet application is a server of the system. Since centralized systems are prone to contain bottlenecks, caused by accumulation of transmissions or computations, we propose the distributed architecture of the server and the methodology which constructs this architecture using available Internet resources. We assume that the function of the server is specified as a set of distributed algorithms, then our methodology schedules all tasks on existing network infrastructure. It takes into account limited bandwidth of communication channels as well as limited computation power of server nodes. If available network resources are not able to execute all tasks in real-time then the methodology extends the network by adding necessary computation nodes and network components, minimizing the cost of required reconstruction. We also present a sample application for adaptive control of traffic in a smart city, which shows benefits of using our methodology.','',1,'Sławomir BąkRadosław CzarneckiStanisław Deniziak','springer/service oriented architecture security.csv','springer','\0'),(1833,'Towards Multi-level Aware Model Transformations','2012','2',' multi-level transformation orthogonal classification architecture ontological classification linguistic classification','Abstract As practical tools for disciplined multi-level modeling have begun to emerge, the problem of supporting simple and efficient transformations to-and-from multi-level model content has started to assume growing importance. The problem is not only to support efficient transformations between multi-level models, but also between multi-level and traditional two-level model content represented in traditional modeling infrastructures such as the UML and programming languages. This is not only important to facilitate interoperability between multi-level modeling tools and traditional tools, but also to extend the benefits of multi-level modeling to transformations. Multi-level model content can already be accessed by traditional transformation languages such as ATL and QVT, but in a way that is blind to the ontological classification information they contain. In this paper we present an approach for making rule-based transformation languages “multi-level aware” so that the semantics of ontological instantiation can be exploited when writing transformations.','',2,'Colin AtkinsonRalph GerbigChristian Tunjic','springer/bpmn security.csv','springer','\0'),(1834,'Partitioning of web applications for hybrid cloud deployment','2014','1',' Cloud computing Hybrid cloud Middleware Application partitioning Optimization','Abstract Hybrid cloud deployment offers flexibility in trade-offs between the cost-savings/scalability of the public cloud and control over data resources provided at a private premise. However, this flexibility comes at the expense of complexity in distributing a system over these two locations. For multi-tier web applications, this challenge manifests itself primarily in the partitioning of application- and database-tiers. While there is existing research that focuses on either application-tier or data-tier partitioning, we show that optimized partitioning of web applications benefits from both tiers being considered simultaneously. We present our research on a new cross-tier partitioning approach to help developers make effective trade-offs between performance and cost in a hybrid cloud deployment. The general approach primarily benefits from two technical improvements to integer-programming based application partitioning. First, an asymmetric cost-model for optimizing data transfer in environments where ingress and egress data-transfer have differing costs, such as in many infrastructure as a service platforms. Second, a new encoding of database query plans as integer programs, to enable simultaneous optimization of code and data placement in a hybrid cloud environment. In two case studies the approach results in up to 54% reduction in monetary costs compared to a premise only deployment and 56% improvement in response time compared to a naive partitioning where the application-tier is deployed in the public cloud and the data-tier is on private infrastructure.','Journal of Internet Services and Applications',1,'Nima KavianiEric WohlstadterRodger Lea','springer/service oriented architecture security.csv','springer','\0'),(1835,'HDGPortal: A Grid portal application for pervasive access to process-based healthcare systems','2008','2','BPEL Engine;Grid Database Services;Grid Portal;Personal Digital Assistant (PDA);Pervasive Access;Web Services;Wireless Client','Healthcare is an increasingly collaborative enterprise, involving many individuals and organizations. The ability to provide readily access to integrated healthcare services remotely is now essential. Although Grid technology can support the integration of healthcare services across settings of care and among providers of care, it doesnpsilat make these services available to authorized users at the point of care when needed. The integration of mobile and wireless devices with Grid technology can provide ubiquitous and pervasive access to Grid services. This paper presents HDGPortal, a Grid portal application which provides access to workflow-based healthcare processes using wireless Personal Digital Assistants (PDAs). HDGPortalpsilas architecture is based on wrapping the workflow applications as web services and web service resources. These services are available to users through a number of Grid portal components that can be used for workflow enactment. HDGPortal has been implemented with a multi-layered security infrastructure in order to ensure secure access to healthcare processes.','2008 Second International Conference on Pervasive Computing Technologies for Healthcare',2,'V. Koufi; G. Vassilacopoulos','ieee/bpel security.csv','ieee','\0'),(1836,'Service Component Architecture Extensions for Dynamic Systems','2012','3',' SCA Software Engineering Service-Oriented Architectures Component-Based Design Dynamic Adaptability','Abstract The Service Component Architecture (SCA) is a set of specifications which defines a model in which components may interact by means of services. SCA is supported by major software vendors due to its several advantages, such as technology independence and portability. However, SCA in its current form does not address components substitutability, one of the goals of the Service-Oriented Architectures style. This paper discusses this limitation and proposes a set of extensions to SCA in order to manage dynamic substitutability of services and their life cycle, which allows components to change service providers at run-time whenever they need to. These extensions are validated by NaSCAr, an iPOJO-based tool which enables the dynamic deployment and adaptation of SCA composites on the OSGi service platform.','',2,'João Claudio AméricoDidier Donsez','springer/bpel security.csv','springer','\0'),(1837,'Event-Driven Actors for Supporting Flexibility and Scalability in Service-Based Integration Architecture','2012','3',' Event-driven architecture event actors services service-based integration architecture flexibility scalability substitutability','Abstract Service-based software systems are often built by incorporating functionalities from other software systems or platforms. A widely used approach in practice is to introduce an intermediate integration layer for hiding the complexity and heterogeneity of the integrated systems or platforms. However, existing approaches introduce limited support for the flexibility of the integration architecture. It is challenging to alter the integration architecture, e.g., due to some exceptions or unanticipated situations such as peak loads or emergencies, because of rigid dependency structures in the integration architecture defined at design or deployment time. In this paper, we propose DERA as a novel approach that exploits event-driven architecture concepts for enhancing the flexibility and scalability of service-based integration architectures. Our approach provides primitive concepts that can easily be analyzed with tools or be used to depict a current snapshot of the integration architecture using graphical notations close to the intuitive perception of stakeholders. We show the applicability of DERA through an industrial case study in the field of software platform integration and evaluate the scalability of our approach.','',2,'Huy TranUwe Zdun','springer/bpel security.csv','springer','\0'),(1838,'From a Simple Flow to Social Applications','2013','1',' Social Applications Design Tools and Techniques Component-based development','Abstract Currently, there are a lot of people trying to leverage on the success of social networks by implementing social applications. However, implementing social applications is complex, due to the requirements and constraints put by the social networks to protect their data. In this work we present Simple Flow, a tool that simplifies the creation of social applications. Simple Flow proposes a processes-based approach to the design and execution of social applications. Simple Flow targets end-users and programmers with no experience in programming for social networks, giving them the possibility to design processes by concatenating social network actions (like post a message or comment a photo). For the execution of the designed processes Simple Flow interconnects, at runtime, template web pages (one page per action) according to the process design defined previously. These templates abstract the complexities of the interactions with social networks.','',2,'Juan JaraFlorian DanielFabio CasatiMaurizio Marchese','springer/bpmn security.csv','springer','\0'),(1839,'TEEI - A Mobile Security Infrastructure for TEE Integration','2014','1','ITS;Mobile Payment;Mobile Security;TEE;TEEI;TVM;Virtual Network','Mobile security becomes a hot topic recently, especially in mobile payment and privacy data fields. Traditional solution can\'t keep a good balance between convenience and security. Against this background, a dual OS security solution named Trusted Execution Environment (TEE) is proposed and implemented by many institutions and companies. However, it raised TEE fragmentation and control problem. Addressing this issue, a mobile security infrastructure named Trusted Execution Environment Integration (TEEI) is presented to integrate multiple different TEEs. By using Trusted Virtual Machine (TVM) tech-nology, TEEI allows multiple TEEs running on one secure world on one mobile device at the same time and isolates them safely. Furthermore, a Virtual Network protocol is proposed to enable communication and cooperation among TEEs which includes TEE on TVM and TEE on SE. At last, a SOA-like Internal Trusted Service (ITS) framework is given to facilitate the development and maintenance of TEEs.','2014 IEEE 13th International Conference on Trust, Security and Privacy in Computing and Communications',1,'H. Chai; Z. Lu; Q. Meng; J. Wang; X. Zhang; Z. Zhang','ieee/service oriented architecture security.csv','ieee',''),(1840,'Data Integration for Clinical Decision Support Based on openEHR Archetypes and HL7 Virtual Medical Record','2013','4',' CDSS PHR interoperability archetypes openEHR vMR','Abstract Clinical Decision Support Systems (CDSS) have gained relevance due to their potential to support patient-centric care, but their deployment still has to overcome barriers to become successful. One of these barriers is the integration of patient data with the CDSS engine, a tough challenge given the need to address interoperability with many different existing systems and medical devices. The MobiGuide project aims to build such a CDSS, providing guideline- based clinical decision support through a Personal Health Record (PHR). This PHR is the main component through which the CDSS could access patient data originating from hospital EMRs and wearable sensors, but it also contains the log of the recommendations provided by the CDSS. Using a case study, we compare data-representation standards through which the PHR could be developed, while considering expressiveness and usability requirements. We propose to develop the PHR by combining openEHR archetypes and the HL7 Virtual Medical Record standard, supported by a service oriented framework for data exchange. This proposal aims to close the gap between the HL7 and the ISO/CEN 13606 by using an openEHR-based approach.','',1,'Arturo González-FerrerMor PelegBert VerheesJan-Marc VerlindenCarlos Marcos','springer/service oriented architecture security.csv','springer','\0'),(1841,'Discovering BPMN Models with Sub-processes and Multi-instance Markers','2015','0','','Abstract Massive event logs are produced in information systems, which record executions of business processes in organizations. Various techniques are proposed to discover process models reflecting real-life behaviors from these logs. However, the discovered models are mostly in Petri nets rather than BPMN models, the current industrial process modeling standard. Conforti et al. and Weber et al. propose techniques that discover BPMN models with sub-processes, multi-instance, etc. However, these techniques are made for event logs with special attributes, e.g., containing attributes about primary and foreign keys, which may not commonly appear in event logs. For example, logs from the OA (office automation) systems of CMCC (China Mobile Communications Corporation) do not contain such data. To solve this issue, this paper proposes two techniques that can discover BPMN models with sub-processes and multi-instance markers with event logs containing less event attributes. One of our techniques only requires four event attributes: case id, task name, start time and end time. Experimental evaluations with both real-life logs and synthetic logs show that our techniques can indeed discover process models with sub-process and multi-instance markers from logs with less event attributes, and are more accurate and less complex than those derived with flat process model discovery techniques.','',2,'Yuquan WangLijie WenZhiqiang YanBo SunJianmin Wang','springer/bpmn security.csv','springer',''),(1842,'Successful CyberInfrastructures for E-Health','2014','','Agile Processes; CyberInfrastructure; Design Methodology; Distributed Systems; E-Health; Large-scale Systems; Security; Service-oriented Architecture; System Architecture','The health-care sector has stringent needs for CyberInfrastructures (CIs) to improve both its patient-care capabilities and its potential for advanced clinical research. Large-scale projects reveal that economics, technology, science, and people need a careful balance to be successful. In this chapter, we detail our value-based methodology for architecting and implementing CIs for multiple projects in this field. We highlight the requirements and challenges presented by this field, the process for value-cost analysis, proper stakeholder involvement, and architecture evaluation to match a system\'s timeline and budget. We also discuss lessons learned and typical CI aspects, including data ingestion and sharing, privacy and security, life-cycle management, rapid prototyping and user adoption, performance, and scalability, and their impact on project economics. We conclude with strategic factors for overall project success. © 2014 Elsevier Inc. All rights reserved.','',1,'Farcas E., Farcas C., Krüger I.','scopus/service oriented architecture security.csv','scopus','\0'),(1843,'An Access Control Model for Organisational Management in Enterprise Architecture','2013','3','Access control;ArchiMate;Authorisation;Enterprise architecture;RBAC;Task','Enterprise architecture (EA) aims to provide management with appropriate indicators and controls to steer and model service-oriented enterprises. EA offers a suitable operating platform to support an organisation\'s future goals and the roadmap for moving towards this vision. Despite significant research interest in the domain, common enterprises architecture frameworks lack of access control mechanisms supporting security requirements within organisations. Security has become a matter of paramount concern when managing organisations resources such as stakeholders\' authorisation or sensitive data. In this paper, we propose an innovative approach for managing organisational resources in enterprise architecture. In doing so, we reason about task-based resources in the EA language ArchiMate. The idea is to build a conceptual model supporting access control when modelling a business process (set of tasks) in ArchiMate. We then map the common concepts with the role-based access control model (RBAC) to specify the required authorisation policies as part of the security specifications and guidelines in EA. Finally, a case study illustration will be used for the evaluation as part of the research approach.','Semantics, Knowledge and Grids (SKG), 2013 Ninth International Conference on',1,'K. Gaaloul; H. A. Proper','ieee/service oriented architecture security.csv','ieee','\0'),(1844,'Accountability in internet transactions revisited','2015','','Accountability; Internet Transactions; Liability; Non-repudiation; Responsiveness','Accountability has been widely used in different perspectives and has many different terms and definitions. Accountability in management focuses on how organizations and persons effectively make use of their individual controls: external control (reward and punishment) and internal control (felt responsibility). Accountability in SOA (Service-Oriented Architecture) focuses on how to disclose the message with security, privacy and liability and how to track evidence of the rendered services. In health care, accountability focuses on how to reveal patient\'s health record with privacy and security controls. For Internet transaction, accountability is to ensure how each party involves in performing a transaction that satisfies necessary security properties. In this paper, we conduct a survey of different perspectives of accountability to indicate that the definition of accountability for Internet transactions is limited. We study a number of research works which focus on accountability in several aspects and determine their advantages about accountability in Internet transactions. © 2014 IEEE.','',1,'Techapanupreeda C., Chokngamwong R., Thammarat C., Kungpisdan S.','scopus/service oriented architecture security.csv','scopus',''),(1845,'PROPhESY: A PRObabilistic ParamEter SYnthesis Tool','2015','1','','Abstract We present PROPhESY, a tool for analyzing parametric Markov chains (MCs). It can compute a rational function (i.e., a fraction of two polynomials in the model parameters) for reachability and expected reward objectives. Our tool outperforms state-of-the-art tools and supports the novel feature of conditional probabilities. PROPhESY supports incremental automatic parameter synthesis (using SMT techniques) to determine “safe” and “unsafe” regions of the parameter space. All values in these regions give rise to instantiated MCs satisfying or violating the (conditional) probability or expected reward objective. PROPhESY features a web front-end supporting visualization and user-guided parameter synthesis. Experimental results show that PROPhESY scales to MCs with millions of states and several parameters.','',1,'Christian DehnertSebastian JungesNils JansenFlorian CorziliusMatthias VolkHarold BruintjesJoost-Pieter KatoenErika Ábrahám','springer/service oriented architecture security.csv','springer',''),(1846,'Novel Energy Saving Opportunities in Smart Grids Using a Secure Social Networking Layer','2012','2','community-driven energy sharing;smart grid','The Smart Grid initiative aims at transforming the public power grid to a flexible and intelligent energy utility. With this advancement, numerous applications can be implemented which are hard - if not impossible - to realize with today\'s technologies. For instance, in case of rolling blackouts, the power supply of critical infrastructures such as hospitals or traffic lights, can be prioritized immediately over private households and the grid\'s structure reshaped accordingly. Moreover, the energy grid becomes participative by enabling traditional consumers to feed back energy generated by their private solar panels and wind turbines. We argue that when coupling smart grid stakeholders with a social network, even more advanced use cases provide unmatched energy saving opportunities. Online platforms enable a plethora of novel application use cases, such as energy saving campaigns and competitions, utilization of friends\' solar power, and coordination and sharing of energy consumption plans. In this paper, we introduce a social overlay model for smart grids, present its implementation using service-oriented architectures, and evaluate scalability and applicability.','2012 IEEE 36th Annual Computer Software and Applications Conference',1,'F. Skopik; C. Wagner','ieee/service oriented architecture security.csv','ieee','\0'),(1847,'Towards BPEL in the Cloud: Exploiting Different Delivery Models for the Execution of Business Processes','2009','23','BPEL;Cloud Computing;IaaS;PaaS;SaaS;Security;Trust','More and more companies are outsourcing parts of their business processes to third party providers to exploit the expertise and economies of scale of these third party providers. In the IT field, emerging delivery models for software such as Software as a Service and cloud computing offer the possibility to outsource applications and computing infrastructure and thus enable enterprises to focus on their core competences. In this paper we investigate how the new delivery models affect the outsourcing of business processes modeled in WS-BPEL. WS-BPEL is the standard to model and execute business processes in Web service-based IT landscapes. We describe how security and trust issues affect the execution of BPEL processes in the cloud and show the requirements on the middleware supporting the execution of BPEL processes.','2009 Congress on Services - I',2,'T. Anstett; F. Leymann; R. Mietzner; S. Strauch','ieee/bpel security.csv','ieee',''),(1848,'Attribute based access control (ABAC)-based cross-domain access control in service-oriented architecture (SOA)','2012','3','access control; Attribute-Based Access Control (ABAC); SOA','The traditional role-based access control model (RBAC) can not meet the requirements of Service Oriented Architectures (SOA) on the distribution and openness, Attribute-Based Access Control (ABAC), which is more fine-grained in access control, is more fit into the SOA open environment. This paper presents an ABAC-based cross-domain access control system, together with the security domain as a attribute with the subject, object, authority, environment attributes as the basis for access to the decision-making, eliminating integration constraints for the SOA framework based on the RBAC, somehow improves the scalability and alterability of the system, solved the problem of cross-domain access control. © 2012 IEEE.','',1,'Ni D., Shi H.-J., Chen Y., Guo J.-H.','scopus/service oriented architecture security.csv','scopus','\0'),(1849,'Measuring Impact on Missions and Processes: Assessment of Cyber Breaches','2012','0','BPMN;Information Security;Risk Assessment','Although the importance of securing Information and Communication Technology (ICT) resources is widely recognized, very little work has been reported on measuring the impact of breaches of security on processes that use these resources. More specifically, the research question explored in this paper is measuring the impact on activities of a mission given the risk to ICT resources employed in the mission. Using BPMN as a process modeling notation and in the context of and through a military convoy movement example, we present formulas to compute this impact. In addition to its novelty, the contribution of this work includes its generalizability to all security issues and not necessarily limited to cyber security.','System Science (HICSS), 2012 45th Hawaii International Conference on',2,'J. Choobineh; E. E. Anderson; M. R. Grimaila','ieee/bpmn security.csv','ieee','\0'),(1850,'An Empirical Study on Design Diversity of Functionally Equivalent Web Services','2012','0','Empirical studies;Fault-tolerant systems;Service-oriented applications;Software reliability','A number of approaches based on design diversity moderate the communication between clients and functionally equivalent services, i.e., variant services, to tolerate software faults in service-oriented applications. Nevertheless, it is unclear whether variant services are actually diverse and fail on disjoint subsets of the input space. In a previous work, we proposed an experimental setup to assess design diversity of variant services that realize a requirements specification. In this work, we utilize the proposed experimental setup to assess the design diversity of a number of third-party Web services adhering to seven different requirements specifications. In this paper, we describe in detail the main findings and lessons learnt from this empirical study. Firstly, we investigate whether variant services are in fact diverse. Secondly, we investigate the effectiveness of service diversity for tolerating faults. The results suggest that there is diversity in the implementation of variant services. However, in some cases, this diversity might not be sufficient to improve system reliability. Our findings provide an important knowledge basis for engineering effective fault-tolerant service applications.','Availability, Reliability and Security (ARES), 2012 Seventh International Conference on',1,'A. S. Nascimento; F. Castor; C. M. F. Rubira; R. Burrows','ieee/service oriented architecture security.csv','ieee','\0'),(1851,'Entscheidungsunterstützung für Cloud Computing — ITIL Service Lifecycle','2012','0','','Zusammenfassungen Es kann festgehalten werden, dass das ITIL-Framework geeignet ist, die notwendigen Entscheidungen zur Einführung und Nutzung von Cloud Computing zu unterstützen. ITIL (IT Infrastructure Library) stellt damit eine relevante Entscheidungsprämisse dar. Es wird deutlich, dass trotz Auslagerung von Aufgaben an den Cloud-Provider auch Prozesse der ITIL-Phasen Service Transition und Service Operation weiterhin eine Relevanz für interne IT-Provider haben. Eine Kundenorganisation kann durch explizite Planungsentscheidungen die bisherigen IT-Servicemanagementprozesse an die Herausforderungen des Cloud Computing anpassen und somit die Einführung und Nutzung von Cloud Computing vorbereiten.','HMD Praxis der Wirtschaftsinformatik',1,'Alexander Robrecht B.Sc.Dipl.-Kfm. Carsten MöllerDipl.-Math. Regine DörbeckerProf. Dr. Tilo Böhmann','springer/soa security.csv','springer','\0'),(1852,'Service Oriented Requirements Engineering: Practitioner’s Perspective','2013','2',' Service Oriented Software Engineering Requirements Engineering issues and challenges','Abstract Over a decade ago Service Oriented Architecture (SOA) was introduced to provide better alignment between business requirements and IT solutions. During this period a great deal of research interest has emerged from academia and industry alike, to promote this new style of software development. The promise was that SOA based development will improve reusability, agility, platform independence and dynamic discovery, reconfiguration and change management. In spite of all the promises and enhancement in tools and technologies, the service oriented software development continues to face various challenges especially in Requirements Engineering. In this paper we present a qualitative study of Service Oriented Requirements Engineering. Data was collected by conducting interviews with practitioners from IT companies in Sydney, who are experienced in working on SOA based projects. The objective was to explore the issues and challenges faced during requirements analysis in service oriented software development. The results show that Service-Oriented software development has not only inherited existing issues of traditional Requirements Engineering but has also introduced new challenges. The technology has become advanced in SOA but the issues related to the organizational and business aspect of service oriented development need more attention for achieving true benefits of this technology.','',1,'Muneera Bano SahibzadaDidar Zowghi','springer/service oriented architecture security.csv','springer','\0'),(1853,'Reputation in Communities of Agent-Based Web Services Through Data Mining','2015','0',' Communities of web services Reputation Clustering Anomaly detection','Abstract We present in this paper a reputation model for agent-based web services grouped into communities by their equivalent functionalities. The reputation of each web service is based on the non-functional properties of its interactions with other web services from the same community. We exploit various clustering and anomaly detection techniques to analyze and identify the quality patterns provided by each service. This enables the master of each community to allocate the requests it receives to the web service that best fulfill the quality requirements of the service consumers. Our experiments present realistic scenarios based on synthetic data that characterizes the reputation feedback of the quality provided by a web service at different times. The results showcase the capability of our reputation model in portraying the quality of web services that reside in a community and characterizing their fair and unfair feedback reports.','',1,'Mohamad MehdiNizar BouguilaJamal Bentahar','springer/service oriented architecture security.csv','springer',''),(1854,'Dynamic Weaving in Aspect Oriented Business Process Management','2013','1',' Business Process Management Aspect Oriented Weaving Service Oriented Architecture Reusability Coloured Petri Nets','Abstract Reducing complexity in Information Systems is an important topic in both research and industry. One strategy to deal with complexity is separation of concerns, which results in less complex, easily maintainable and more reusable systems. Separation of concerns can be addressed through the Aspect Oriented paradigm. Although this paradigm has been well researched in programming, it is still at the preliminary stage in the area of Business Process Management. While some efforts have been made to extend business process modelling with aspect oriented capability, it has not yet been investigated how aspect oriented business process models should be executed at runtime. In this paper, we propose a generic solution to support execution of aspect oriented business process models based on the principle behind dynamic weaving of aspects. This solution is formally specified using Coloured Petri Nets. The resulting formal specification serves as the blueprint to the implementation of a service module in the framework of a state-of-the-art Business Process Management System. Using this developed artefact, a case study is performed in which two simplified processes from real business in the domain of banking are modelled and executed in an aspect oriented manner. Through this case study, we also demonstrate that adoption of aspect oriented modularization increases the reusability while reducing the complexity of business process models in practice.','',2,'Amin JalaliPetia WohedChun OuyangPaul Johannesson','springer/bpel security.csv','springer','\0'),(1855,'A Formal Dynamic Verification of Choreographed Web Services Conversations','2015','0',' Monitoring Choreography Formal verification Web service composition Security policy enforcement Runtime verification','Abstract Performing runtime verification of composite web services is one of the actual main research challenges. This paper presents a formal approach for dynamically enforcing security policies on web services choreographies. We define a security framework for monitoring choreographed web services by inlining a monitor that checks whether a choreography adheres to some constraints dictated by a security policy. Therefore, this monitor prohibits the execution of undesirable behaviors during runtime and does not change the original behavior of the choreography until an action is about to violate the security policy.','',2,'Karim DahmaniMahjoub LangarRiadh Robbana','springer/bpel security.csv','springer',''),(1856,'A Novel Heuristic Scheme for Modeling and Managing Time Bound Constraints in Data-Intensive Grid and Cloud Infrastructures','2014','0','','Abstract Inspired by the emerging Cloud Computing challenge, in this paper we provide a comprehensive framework for modeling and managing time bound constraints in data-intensive Grid and Cloud infrastructures , along with its experimental assessment and analysis. We provide both conceptual and theoretical contributions of the proposed framework, along with a heuristic scheme , called RGDTExec , that solves all possible instances of the problem underlying the proposed framework by exploiting a suitable greedy algorithm , called RGDTExecRun . As we demonstrate throughout the paper, the framework keeps several aspects of research innovations that are beneficial in a wide range of application scenarios.','',1,'Alfredo CuzzocreaGuandong Xu','springer/service oriented architecture security.csv','springer','\0'),(1857,'CloudExplorer: A User-Centered Cloud Browser for Cloud Services','2012','1','Cloud Browser;Cloud Computing;Composite Search;Composition-based Development;Interaction-Based Security;Semantic User Modeling','A user-centered cloud browser, i.e., Cloud Explorer, is proposed to discover, process and execute emerging cloud services, as Web browsers are used to search and display Web information. Cloud Explorer is the first attempt for end users to explore cloud services to meet with users\' behaviors and concerns in the coming cloud society. The browser is devoted to end users and has made great differences in that (i) Cloud Explorer is personalized and each people can be provided with a private Cloud Explorer, (ii) Cloud Explorer discovers services based on user models and using semantic & composite service search techniques, (iii) Cloud Explorer support service package customization and execution with users\' interaction, (iv) Cloud Explorer is located and associated with a person, and keeps the person\'s individual information, (v) Cloud Explorer provides an interaction-based security mechanism for cloud society. Other applications can interact with the browser to get certification and authorization to avoid releasing personal information. The principle and technical issues of Cloud Explorer are discussed. Based on the previous work, the browser has been prototyped to address several service-oriented application issues.','e-Business Engineering (ICEBE), 2012 IEEE Ninth International Conference on',1,'Y. Li; J. Li; F. Zhou; Y. Fang; H. Chen','ieee/service oriented architecture security.csv','ieee','\0'),(1858,'BP-XACML an Authorisation Policy Language for Business Processes','2015','0',' XACML BPM Workflow Authorisation management Authorisation policy language','Abstract XACML has become the defacto standard for enterprise-wide, policy-based access control. It is a structured, extensible language that can express and enforce complex access control policies. There have been several efforts to extend XACML to support specific authorisation models, such as the OASIS RBAC profile to support Role Based Access Control. A number of proposals for authorisation models that support business processes and workflow systems have also appeared in the literature. However, there is no published work describing an extension to allow XACML to be used as a policy language with these models. This paper analyses the specific requirements of a policy language to express and enforce business process authorisation policies. It then introduces BP-XACML, a new profile that extends the RBAC profile for XACML so it can support business process authorisation policies. In particular, BP-XACML supports the notion of tasks, and constraints at the level of a task instance, which are important requirements in enforcing business process authorisation policies.','',2,'Khalid AlissaJason ReidEd DawsonFarzad Salim','springer/bpel security.csv','springer',''),(1859,'Quality Evaluation within Service-Oriented Software: A Multi-perspective Approach','2012','0','quality of service;service quality;service-level agreement;service-oriented software;software as a service','In the original service-oriented view of software provision, loosely-coupled services are brought together at the time of need and unbound immediately following execution, allowing service procurers to focus on selecting services that best correspond to their evolving requirements. This just-in-time approach requires the assessment of quality properties of both the software and the service provision activity in order to judge candidate services. In this paper, we propose and evaluate a multi-perspective quality evaluation model tuned to the needs of this \"just-in-time\" service provision vision. The proposed model uses a hierarchal structure of the quality features that characterize both the software and its provision arrangements from the perspectives of different stakeholders in the service provisioning and consumption process. The development and evaluation reported here took place in two phases: a \"role playing\" user study involving 15 participants to elicit the suitability, applicability and measurability of quality characteristics; and a contextual interview involving 24 users (12 software professionals and 12 general users) to uncover their mental models towards quality and evaluate the resultant characteristics identified from the first study. Our findings were twofold. Firstly, we show that a broader range of considerations encompassing both service quality and quality of service must be accounted for when dealing with software services (e.g. service functionality and service responsiveness). Secondly, we identify and explore the users\' mental model of quality within the service-oriented paradigm.','Services Computing (SCC), 2012 IEEE Ninth International Conference on',1,'A. Owrak; A. Namoun; N. Mehandjiev','ieee/service oriented architecture security.csv','ieee','\0'),(1860,'The design and implementation of Neuma, a collaborative Digital Scores Library','2012','0',' Musicological information management On-line score publishing Annotation Time series processing Collaborative platforms Watermarking','Abstract This paper presents the design and implementation of the Neuma platform, a digital library devoted to the preservation and dissemination of symbolic music content (scores). Neuma is open to musicologists, musicians, and music publishers. It consists of a repository dedicated to the storage of large collections of digital scores, where users/applications can upload their documents. It also proposes services to publish, annotate, query, transform, and analyze scores. The long-term goal of the project is to enable an open and collaborative space where musician communities will be able to share music in symbolic notation. The project is organized around the French IRPMF institute (BnF–CNRS) which chooses and produces collections (or corpora ), collects and organizes user requirements, and validates new publications. We describe the architecture of Neuma and develop some of its salient features: score modeling annotations, search and transformation language, collaborative and community tools, and digital rights preservation. We illustrate these features with two collections published by Neuma , and discuss the impact of such on-line score collections from a musicological perspective.','International Journal on Digital Libraries',1,'P. RigauxL. AbroukH. AudéonN. CullotC. Davy-RigauxZ. FagetE. GavignetD. Gross-AmblardA. TacailleV. Thion-Goasdoué','springer/service oriented architecture security.csv','springer','\0'),(1861,'Advanced Approach to Future Service Development','2013','0',' service development OSS/BSS non-functional requirements workflow design and transformation Dia editor','Abstract Modern companies, including telecommunication ones and mobile operators, working in the global environment, need to guarantee technological effectiveness and innovation, renewing their technologies and services. Communication technologies and variety of services are to be improved and developed extremely fast. This results in the need for constant adaptation and reconfiguration of complex software systems, used in global environment to provide and monitor deployed services. For instance, OSS/BSS is used in the domain of telecommunication companies. Reconfiguration of complex software systems covers application development for service provisioning, their dynamic monitoring and reconfiguration. Currently, system adaptation and service design strategies are poorly formalized and validated. In current state-of-the-art approaches, several iterations involving analysts and system architects are necessary, resulting in time and money consuming service development. The approach proposed in this paper fills this gap. It employs a well-defined workflow and analysis model for developing and adapting complex software systems. The applicability of this novel approach is confirmed by an implemented software tool. The proposed approach and tool provide automation of service development, focusing on planning and design stages, considering both functional and non-functional requirements and realizing computational independent workflow transformation into its execution model.','',2,'Tetiana KotLarisa GlobaAlexander Schill','springer/bpel security.csv','springer','\0'),(1862,'A Trust Management Model for QoS-Based Service Selection','2012','3',' Service Oriented Architecture trust management service selection Quality of Service (QoS)','Abstract As the number of available services increases on the Web, it becomes greatly vital in service-oriented computing to discover a trustworthy service that best fits users’ requirements. Once a set of services fulfilling user’s functional requirements are founded, one of these services invoked by the users depends mostly on the Quality of Services (QoS), particularly security, trust, and reputation. This paper proposes a trust management model to support service discovery and selection based on trust and QoS. We propose a novel trustworthy service discovery and selection mechanism to make service consumers get trustworthy services possible. The mechanism uses consumers’ feedback to describe service’s and service provider’s trustworthy level. The service selection using the quantitative measurement rather than consumers’ intuitive selection allows selecting a high reliable service accomplishing their quality requirements well. Finally, we give experimental results by implementing the prototype for verifying the trust evaluation method.','',1,'Yukyong KimKyung-Goo Doh','springer/service oriented architecture security.csv','springer','\0'),(1863,'Dispelling myths about rare disease registry system development','2013','9',' Rare disease Disease registry Software development','Abstract Rare disease registries (RDRs) are an essential tool to improve knowledge and monitor interventions for rare diseases. If designed appropriately, patient and disease related information captured within them can become the cornerstone for effective diagnosis and new therapies. Surprisingly however, registries possess a diverse range of functionality, operate in different, often-times incompatible, software environments and serve various, and sometimes incongruous, purposes. Given the ambitious goals of the International Rare Diseases Research Consortium (IRDiRC) by 2020 and beyond, RDRs must be designed with the agility to evolve and efficiently interoperate in an ever changing rare disease landscape, as well as to cater for rapid changes in Information Communication Technologies. In this paper, we contend that RDR requirements will also evolve in response to a number of factors such as changing disease definitions and diagnostic criteria, the requirement to integrate patient/disease information from advances in either biotechnology and/or phenotypying approaches, as well as the need to adapt dynamically to security and privacy concerns. We dispel a number of myths in RDR development, outline key criteria for robust and sustainable RDR implementation and introduce the concept of a RDR Checklist to guide future RDR development.','Source Code for Biology and Medicine',1,'Matthew BellgardChristophe BeroudKay ParkinsonTess HarrisSegolene AymeGareth BaynamTarun WeeramanthriHugh DawkinsAdam Hunter','springer/webservice security.csv','springer','\0'),(1864,'Content Based Service Discovery in Semantic Web Services Using WordNet','2012','0',' Semantic Web Services Discovery Ontology Discovery WordNet','Abstract The main aspect of Service Oriented Architecture (SOA) is the ability to automatically discover and invoke web services. In web services the syntactic nature of the WSDL forced UDDI to feature only keyword-based matches that often leads to the discovery of more irrelevant services, which ultimately reduce the precision and recall of the search. Semantic web services had been proposed to overcome the issues such as interface heterogeneity and keyword-based syntactic search. The service discovery methods in semantic web services generally require a user query which is used to match the Inputs, Outputs, Precondition and Effect (IOPE) present in the service profile of the OWL-S. This type of matching restricts the users to use the queries that must be of the same context as that of the IOPEs present in the OWL-S. In this work a content-based semantic discovery architecture is proposed, in which the users can use their desired text document as input. The text document after passing through several refinement processes, the nouns are separated. This approach uses the WordNet lexical database, to find the meaning of the extracted nouns which are used for the discovery.','',1,'D. PaulrajS. Swamynathan','springer/service oriented architecture security.csv','springer','\0'),(1865,'A Concept for the Control, Monitoring and Visualization Center in Energy Lab 2.0','2015','0',' Energy lab Energy system Microgrid Simulation Visualization Web technology','Abstract Energy Lab 2.0 is designed as a large experimental test and simulation field for multi-scale and multi-mode energy system facilities at KIT. A Smart Energy System Simulation and Control Center (SEnSSiCC) is the core component in terms of information and communication technology. The present article introduces basic concepts for the Control, Monitoring and Visualization Center (CMVC) of SEnSSiCC. The CMVC bundles all communication channels and real facilities, simulation environments, and data repositories into an integrated research environment for planning, control, monitoring, analyzing and visualization of smart grids and their components, and furthermore for evaluating future concepts for smart grid utility operation. Special emphasis is placed on the distributed computing operating system environment setup for the CMVC, the intended use of Big Data technologies, the polyglot approach for data management and analysis, and first concepts for implementing a hybrid agent based simulation environment. Also, the usage of web technologies and microservices are considered as key aspects of the overall architecture.','',1,'Clemens DüpmeierKarl-Uwe StuckyRalf MikutVeit Hagenmeyer','springer/microservice security.CSV','springer',''),(1866,'Information Classification Issues','2014','0',' information classification systematic literature review information security management systems','Abstract This paper presents an extensive systematic literature review with the aim of identifying and classifying issues in the information classification process. The classification selected uses human and organizational factors for grouping the identified issues. The results reveal that policy-related issues are most commonly described, but not necessarily the most crucial ones. Furthermore, gaps in the research field are identified in order to outline paths for further research.','',1,'Erik BergströmRose-Mharie Åhlfeldt','springer/service oriented architecture security.csv','springer','\0'),(1867,'Self-Adaptivity from Different Application Perspectives','2013','0',' self-adaptive system run-time adaptation software engineering model-driven development evaluation framework','Abstract Self-adaptivity can be beneficial in many application domains. In recent years we have researched the engineering of self-adaptive software systems in three rather diverse domains: ubiquitous computing applications, teams of autonomous mobile robots, and management of service-oriented software systems. While all of them perform dynamic adaptation at run-time following a specified control loop, they differ fundamentally in their specific objectives, requirements, properties, and constraints. Consequently, their design and realization focus on different domain aspects and require different modeling and engineering techniques. In this paper we elaborate on synergies and discrepancies in developing the three case studies. We evaluate these self-adaptive systems using a recently published framework for evaluating self-adaptive software systems. The main contributions of this paper are a reflection on the design space of self-adaptive systems and a critique of the proposed evaluation framework.','',2,'Kurt Geihs','springer/bpel security.csv','springer','\0'),(1868,'MindYourPrivacy: Design and implementation of a visualization system for third-party Web tracking','2014','1','Data and Knowledge Visualization; Network Monitoring; Security; Web Mining','Third-party Web tracking is a serious privacy issue. Advertisement sites and social networking sites stealthily collect users\' Web browsing history for purposes such as targeted advertising or predicting trends. Unfortunately, very few Internet users realize this, and their privacy has been infringed upon because they have no means of recognizing the situation. In this paper we present the design and implementation of a system called MindYourPrivacy that visualizes third-party Web tracking and clarifies the entities threatening users\' privacy. The implementation adopts deep packet inspection, DNS-SOA-record-based categorization, and HTTP-referred graphical analysis to visualize collectors of Web browsing histories without device dependency. To demonstrate the effectiveness of our proof-of-concept implementation, we conducted an experiment in an IT technology camp, where 129 attendees discussed IT technologies for four days, The experiment\'s results revealed that visualizing Web tracking effectively influences users\' perception of privacy. Analysis of the user data we collected at the camp also revealed that MCODE clustering and some features derived from graph theory are useful for detecting advertising sites that potentially collect user information by Web tracking for their own purposes. © 2014 IEEE.','',1,'Takano Y., Ohta S., Takahashi T., Ando R., Inoue T.','scopus/soa security.csv','scopus','\0'),(1869,'User-Oriented Provisioning of Secure Virtualized Infrastructure','2012','1',' virtualization virtual appliances virtual networks security provisioning VM Set Cell-as-a-Service','Abstract The chapter presents a system for effective provisioning of VM Sets and supporting the dialog between providers and end users. VM Sets are networks of interconnected virtual appliances. Requirements for user-oriented provisioning of VM Sets are presented and an infrastructure supporting this activity is described. Stages of the VM Set provisioning process are defined and their functionality is described. Subsequently, manageability aspects are presented with special focus on runtime aspects. The implementation status of the VM Set provisioning environment within the PL-Grid Project is also reported.','',1,'Marcin JarząbJacek KosińskiKrzysztof ZielińskiSławomir Zieliński','springer/service oriented architecture security.csv','springer','\0'),(1870,'Survivability analysis of SOA based on attack tree models','2012','','attack tree; SOA; survivability; web service','Survivability is the ability of a system to continue offering services in the presence of an accident or malicious attacks. The goal of survivability analysis is to identify the system components that are susceptible to attacks and to quantify their capabilities to survive the attacks. In systems based on Service Oriented Architectures, the survivability analysis is fundamentally different from the traditional security centric approaches that have been developed for traditional systems. This paper presents an initial study in adopting the attack tree analysis with formalization for survivability study. From the attack tree analysis, we defined attack tree as a tuple, and then gave an equation for calculating the potential damage. We augmented the attack tree with values signifying the residual damage, and then calculated the survivability of the system. © 2012 IEEE.','',1,'Xiao Y., Wang Y.J., Huang Z.G.','scopus/service oriented architecture security.csv','scopus','\0'),(1871,'Web Service Composition Approaches: From Industrial Standards to Formal Methods','2007','25','','Composition of Web services is much studied to support business-to-business and enterprise application integration in e-commerce. Current Web service composition approaches range from practical languages aspiring to become standards (like BPEL, WS-CDL, OWL-S and WSMO) to theoretical models (like automata, Petri nets and process algebras). In this paper we compare these approaches w.r.t. a selected set of characteristics (like trust, security and performance) and we advocate the use of formal models, and their tool support, to increase one\'s confidence in web service compositions. This paper can assist web service composition designers and developers to deliver lasting solutions, in concordance with the technology\'s critical needs.','Internet and Web Applications and Services, 2007. ICIW \'07. Second International Conference on',2,'M. ter Beek; A. Bucchiarone; S. Gnesi','ieee/bpel security.csv','ieee',''),(1872,'A Secure Cloud Computing','2010','1','Spyware;Trojan;Webservice;hashing technique','If we minutely analyze our day to day life then we shall find that it consists of utilization of some resources that are needed for our survival. Cloud computing plays a major role in this orientation by providing different resources in the form of web services like tax calculation web service, stock information web service, e-banking web service etc; for the smooth running of our daily lives. But we can only rely on cloud computing if these useful web services are really secure enough to use. In this paper we have proposed a new framework for secured use of cloud computing.','Recent Trends in Information, Telecommunication and Computing (ITC), 2010 International Conference on',1,'K. Mukherjee; G. Sahoo','ieee/webservice security.csv','ieee','\0'),(1873,'Study on networking and monitoring service platform of vehicle security detection line','2011','','Information technology; Service platform; Vehicle security detection line; WebService','This study proposes the overall technology rotes of networking and monitoring service platform for vehicle security detection line based on WebService technology methods, aiming at resolving some serious problems existing in vehicle security detection line, such as various equipments, data sharing, standard operation, and so on. This study describes the structure design and main function of the service platform, proposes the standardized process control and process monitoring, designs some interface specifications to access of vehicle registration information of local government, and ultimately establishes a national technical standard for this area. The results are expected to conduct local governments to set up the service platform, regulate the application, service for social citizens, and improve the capability of local governments in the supervision of vehicle security detection.','',1,'Sun Z.-L.','scopus/webservice security.csv','scopus','\0'),(1874,'T\n □: A Domain Specific Language for Rapid Workflow Development','2012','2',' Workflow Management System Model Driven Engineering Ontology Domain Specific Language','Abstract In MDE, software systems are always synchronized with their models since changes are made first to the model whenever there are changes in the requirement specifications. While MDE has a lot of potential, it requires maturity and tool support. In this research we present a framework for a workflow management system based on the MDE approach. We propose a domain specific language, T □ (T-Square) for rapidly specifying details of (workflow) tasks and their associated user interfaces which may be used with the NOVA Workflow, an executable workflow management system. T □ includes syntax for writing procedural statements, for querying an ontology, for declaring user interfaces, for applying access control policy, and for scheduling tasks, using Xtext to write the grammar. We apply transformation methods, based on Xtend, to generate executable software from the abstract task specifications. A running example from health services delivery illustrates the usefulness of this approach.','',2,'Fazle RabbiWendy MacCaull','springer/bpmn security.csv','springer','\0'),(1875,'Optical stateful security filtering approach based on code words','2013','','code words; optical logic gates; optical networks; optical stateful filtering; optical traffic identifier; SOA','In this paper, we propose a stateful optical filtering approach that allows session establishment and traffic flow filtering in the optical layer. Each traffic flow is identified by a unique identifier composed of a set of code words built on values of appropriately selected fields in the stream. In the firewall core node, a security policy is applied to the optical flow based on its identifier in order to accept or reject the session establishment or the traffic data. The optical security policy is formed by a set of filtering rules which filters optical data units based on their traffic identifiers and implemented optically based on the optical logic gates. The proposed approach is based on two main components. The first component is an encoder used in the edge node, which generates traffic flow identifiers. And, the second component allows the stateful optical filtering implemented in the firewall node and divided into two modules: a stateful and a stateless filtering modules. © 2013 IEEE.','',1,'Sliti M., Boudriga N.','scopus/soa security.csv','scopus','\0'),(1876,'SCEPYLT: An Information System for Fighting Terrorism','2013','0','SCEPYLT;cooperative system;critical software engineering;distributed system;eGovernment;explosives control;public security;safety-critical;service-oriented architecture;terrorism','A safety-critical software system called SCEPYLT provides an information solution for a field traditionally not computerized: explosives and their associated risks in handling, storage, transport, and use. SCEPYLT is a model for cooperative distributed systems engineering projects, synchronized over multiple databases.','IEEE Software',1,'J. Cano; R. Hernández','ieee/service oriented architecture security.csv','ieee','\0'),(1877,'Efficient querying and SOAP based streaming of multimedia content using WEB Services','2014','','multimedia streaming; SOA; web service','Web service standards provides a standard support for interoperability and reusability among various platforms, but in case of streaming multimedia data the current web service standards in terms of data transfer is not well supported. At present mostly Universal Description Discovery and Integration (UDDI) is used for publishing and discovery of multimedia web services providing a key word based search for the user. The web service standards used for delivering the multimedia streaming objects is also not sufficient due to very large object size and also the processing and delivering continuous stream of large scale data is difficult and time consuming to variety of client devices. This paper describes about the Service Oriented Architecture, in using an efficient querying mechanism which is specified in an extension of WSDL using the multimedia content metadata and its descriptions for querying the best service. Transmission of streaming data requires a message exchange protocol (MEP) to be defined and then implement the MEP in their SOAP HTTP bindings of the web service. Processing the demand for non functional requirements such as efficiency and security in streaming increases and the performance of SOAP is impacted by XML processing and communication overheads. To overcome these we go for various compression schemes for SOAP messages, so that the transfer overhead is reduced. By the new querying mechanism the efficiency of finding services can be improved as irrelevant data can be eliminated and by creating the MEP, efficiency is increased in terms of resource consumption. © 2014 IEEE.','',1,'Gerald Christopher Isaac S., Uma Devi V.','scopus/service oriented architecture security.csv','scopus','\0'),(1878,'Modeling Business Capabilities and Context Dependent Delivery by Cloud Services','2013','2',' Model-Driven Development Capability Context Cloud Computing Enterprise Modeling','Abstract Contemporary business environments are changing rapidly, organizations are global, and cloud-based services have become a norm. Enterprises operating in these conditions need to have the capability to deliver their business in a variety of business contexts. Capability delivery thus has to be monitored and adjusted. Current Enterprise Modeling approaches do not address context-dependent capability design and do not explicitly support runtime adjustments. To address this challenge, a capability-driven approach is proposed to model business capabilities by using EM techniques, and to use model-based patterns to describe how software applications can adhere to changes in the execution context. A meta-model for capability design and delivery is presented with the consideration to delivering solutions as cloud services. The proposal is illustrated with an example case from an energy efficiency project. A supporting architecture for the capability development and the delivery in the cloud is also presented.','',1,'Jelena ZdravkovicJanis StirnaMartin HenkelJānis Grabis','springer/service oriented architecture security.csv','springer','\0'),(1879,'Employing service orientation to enable Training as a Service in the U.S. Army','2013','','Cloud computing; Distributed computing; Mobile computing; Modeling and simulation; Service oriented architecture; Training; Web services','Currently many training systems acquired, fielded and sustained by the U.S. Army are unable to seamlessly comply with a continuously evolving and often complex computational environment. The current state of such training systems must advance to a Training as a Service (TaaS) future state in order to adapt to a volatile defense budget, conform to policy updates, and enhance the training capabilities afforded to the Warfighter. TaaS will transform current Army training applications into distributed webbased services, allowing them to be accessible across any location via thin client workstations and wireless mobile devices. The motivation behind this migration is coming from the Common Operating Environment (COE) Architecture Guidance published by the U.S. Army Chief Information Officer and the Assistant Secretary of the Army for Acquisition, Logistics, and Technology. In order to achieve the COE objectives, the Army recently launched a pilot study on the Common Training Instrumentation Architecture (CTIA). CTIA is the foundation architecture of the Army\'s Live Training Transformation (LT2) Product Line that provides software infrastructure and services to live training product applications. This paper describes the migration of CTIA to TaaS using a specific set of modern computing technologies that will enable rapid delivery of training capabilities across servers, mobile devices, and heterogeneous platforms. Specifically service-oriented architecture (SOA) and cloud computing are considered which can satisfy the requirements of the TaaS and COE, and meet user demands for an enhanced training experience. Furthermore, this paper discusses the approach taken to elicit the future needs of the Army\'s live training community, and how cloud computing and SOA are leveraged to meet required capabilities. Lastly, this paper discusses some unique considerations on SOA-related security issues. © 2013 IEEE.','',1,'Lanman J.T., Linos P.K.','scopus/service oriented architecture security.csv','scopus','\0'),(1880,'Engineering of web services for internet of things applications','2016','1',' Machine-to-Machine communications Application programming interfaces Database abstraction Mobile monitoring Device management Application server utilization evaluation','Abstract This paper addresses web services for Internet of Things (IoT) applications. The research focus is on IoT applications for mobile monitoring and third party’s database access. Both web services design aspects and deployment issues are studied. By synthesis of functional abstraction for configuration management and performance monitoring, an approach to design RESTful web services for mobile monitoring is suggested. In addition to traditional operations supported by Database Management Systems, web services’ operations for subscription management and notifications about occurrences of specific data-related events, as well as operations for trust and security management are proposed in the context of third party’s database access. Web services deployment issues concern the access control aimed to prevent from overloading. A formal method for a model-based load evaluation of SOA (Service Oriented Architecture) application server is suggested. The method takes into account the distributed server architecture and the processing of heterogeneous traffic. The SOA application server’s utilization is evaluated by simulation.','Information Systems Frontiers',1,'Evelina PenchevaIvaylo Atanasov','springer/service oriented architecture security.csv','springer',''),(1881,'A Service Composition Framework Based on Goal-Oriented Requirements Engineering, Model Checking, and Qualitative Preference Analysis','2012','4','','Abstract To provide an effective service-oriented solution for a business problem by composing existing services, it is necessary to explore all available options for providing the required functionality while considering both the users’ preferences between various non-functional properties (NFPs) and any low-level constraints. Existing service composition frameworks often fall short of this ideal, as functional requirements, low-level behavioral constraints, and preferences between non-functional properties are often not considered in one unified framework. We propose a new service composition framework that addresses all three of these aspects by integrating existing techniques in requirements engineering, preference reasoning, and model checking. We prove that any composition produced by our framework provides the required high-level functionality, satisfies all low-level constraints, and is at least as preferred (w.r.t. NFPs) as any other possible composition that fulfills the same requirements. We also apply our framework to examples adapted from the existing service composition literature.','',1,'Zachary J. OsterSyed Adeel AliGanesh Ram SanthanamSamik BasuPartha S. Roop','springer/service oriented architecture security.csv','springer','\0'),(1882,'Modellgetriebene Entwicklung sicherer Softwaresysteme für das österreichische E-Government','2013','0','Schlüsselwörter Model-Driven Security Metamodell Case Study E-Government model-driven security meta model case study e-government','Zusammenfassung E-Government-Systeme verwalten sensible Daten von Bürgern, Unternehmen und Behörden. Diese Informationssysteme müssen daher unbedingt gewährleisten, dass einerseits nur Berechtigte auf Daten zugreifen und andererseits diese Daten nicht verfälscht werden. Anhand der Entwicklung einer Applikation im Bereich des Katastrophenschutzmanagements wird gezeigt, wie die Sicherheit von E-Government-Systemen mittels Model-Driven Security erhöht werden kann.','e & i Elektrotechnik und Informationstechnik',1,'Christian WagnerZhendong MaAndrea Nowak','springer/soa security.csv','springer','\0'),(1883,'Model-Based Security Engineering: Managed Co-evolution of Security Knowledge and Software Models','2014','0','','Abstract We explain UMLsec and associated techniques to incorporate security aspects in model-based development. Additionally, we show how UMLsec can be used in the context of software evolution. More precisely, we present the SecVolution approach which supports monitoring changes in external security knowledge sources (such as compliance regulations or security databases) in order to react to security related modification and to support the associated co-evolution of the UMLsec models.','',2,'Jens BürgerJan JürjensThomas RuhrothStefan GärtnerKurt Schneider','springer/bpmn security.csv','springer',''),(1884,'Service-oriented middleware for smart grid: Principle, infrastructure, and application','2013','8','','The current smart grid is undergoing a drastic change in order to deal with increasingly diversified and various service requests from the huge number of users. The next-generation smart grid, characterized by service-oriented middleware, will be upgraded by jointly employing the technologies in the areas of communications, control, and computing. To design a general middleware, an efficient design principle plays a fundamental role, while reliable communication infrastructure and heterogeneous applications lead to sustainability and stability. In this article, we propose an integrated and efficient middleware for heterogeneous services in a smart grid. Specifically, we first develop a mutual application access control principle that keeps users obtaining a satisfying assignment. Next, a collaborative and dynamic information exchange infrastructure is proposed for different smart meters, and a local information collector is designed to implement the communication and computing through power management messages. Finally, we present four steps to design a flexible service-oriented middleware for heterogeneous applications. Numerical simulation results are provided to demonstrate the efficiency of the proposed middleware.','IEEE Communications Magazine',1,'L. Zhou; J. J. P. C. Rodrigues','ieee/service oriented architecture security.csv','ieee','\0'),(1885,'Policy-Based Access Control for Body Sensor Networks','2014','0',' body sensor networks policy-based access control XACML DPWS web services security','Abstract Sensor nodes and actuators are becoming ubiquitous and research efforts focus on addressing the various issues stemming from resources constraints and other intrinsic characteristics typically associated with such devices and their applications. In the case of wearable nodes, and especially in the context of e-Health applications, the security issues are exacerbated by the direct interaction with the human body and the associated safety and privacy concerns. This work presents a policy-based, unified, cross-platform and flexible access control framework. It adopts a web services-compliant approach to enable secure and authorized fine-grained access control to body sensor network resources and services. The proposed scheme specifically considers the very limited resources of so-called nano nodes that are anticipated to be used in such an environment. A proof-of-concept implementation is developed and a preliminary performance evaluation is presented.','',1,'Charalampos ManifavasKonstantinos FysarakisKonstantinos RantosKonstantinos KagiambakisIoannis Papaefstathiou','springer/service oriented architecture security.csv','springer','\0'),(1886,'QoS-aware service composition for distributed video surveillance','2014','4',' Service composition Distributed video surveillance QoS Transcoding service Ant-based algorithm','Abstract Quality of Service (QoS) is essential for the ubiquitous access of media services in real-time distributed video surveillance applications. To have ubiquitous access of desired media with emergency officials’ handheld devices, appropriate media transcoding services are required. Currently, it is challenging to select and compose these services for each of the devices to satisfy the desired QoS demand. To compose these media services so that video stream is available for target pervasive and smart devices, a composition algorithm is required. Thus, this paper presents a QoS-aware service composition algorithm to select the best composition for the target ubiquitous client so that it can optimally provide QoS to heterogeneous users. We have implemented a video surveillance prototype to demonstrate the performance of the proposed QoS-aware composition algorithm. Results from this prototype reveal that the approach is suitable for real-time video surveillance.','Multimedia Tools and Applications',1,'M. Shamim Hossain','springer/soa security.csv','springer','\0'),(1887,'BHP flooding vulnerability and countermeasure','2015','0',' OBS networks Denial of service attacks Optical codewords Tunable decoder Virtual optical memory','Abstract Optical burst switching (OBS) is a switching technology that can efficiently operate in the optical core network using WDM technology and can also develop the future optical internet. The OBS switching technology presents a trade-off between the two switching technologies: optical circuit switching (OCS) and optical packet switching (OPS). This switching approach increases resource utilization compared with OCS technology and avoids the technological barriers of OPS networks. In OBS networks, many packets are assembled into one data burst at the edge node and a burst header packet (BHP) is sent before the burst transmission by an offset time in order to reserve the required resources in core nodes. This can cause security issues in the network and more specifically denial of service attacks that can occur if a source node is compromised. In this paper, we study a specific denial of service attack which we refer to as “BHP flooding attack”, which prevents legitimate traffics from reserving the required resources at intermediate core nodes. We also propose the design of a reconfigurable BHP flooding countermeasure module that allows to counter against this type of attacks in an OBS network.','Photonic Network Communications',1,'Maha SlitiNoureddine Boudriga','springer/soa security.csv','springer',''),(1888,'Airport Context Analytics','2014','0',' airport information systems context-awareness real-time analytics personalisation rule-based reasoning system implementation','Abstract Airports today can constitute a perfect environment for developing novel digital marketplaces offering location-specific and semantically rich context-aware services, such as personalized marketing campaigns, last minute, discounted airline tickets while helping users access the airport and speed through the airport process. Underpinning the above vision is the ability to target service content to users’ current context, e.g., their location, intent, environment, in real time. The contribution of this work is that it uses a pervasive computing system with three key ingredients: (a) a data model, comprising user and service content entities, (b) a user context model and (c) rules for simple pattern matching on service content and user context event streams . This modus operandi is encapsulated inside a SOA architecture, the Common Airport Portal - CAP and it is illustrated through the description of a real application, Offers and Coupons Services that was deployed recently at Athens International Airport (AIA) (http://airpoint.gr).','',1,'Eli KatsiriGeorge PapastefanatosManolis TerrovitisTimos Sellis','springer/service oriented architecture security.csv','springer','\0'),(1889,'Lessons learned from building model-driven development tools','2012','4',' Model-driven development Model management MDD tools Model tansformation','Abstract Tools to support modelling in system and software engineering are widespread, and have reached a degree of maturity where their use and availability are accepted. Tools to support model-driven development (MDD) —where models are manipulated and managed throughout the system/software engineering lifecycle—have, over the last 10 years, seen much research and development attention. Over the last 10 years, we have had significant experience in the design, development and deployment of MDD tools in practical settings. In this paper, we distill some of the important lessons we have learned in developing and deploying two MDD tools: Epsilon and VIATRA. In doing so, we aim to identify some of the key principles of developing successful MDD tools, as well as some hints of the pitfalls and risks.','Software & Systems Modeling',2,'Richard F. PaigeDániel Varró','springer/bpel security.csv','springer','\0'),(1890,'WSANRep, WSAN Reputation-Based Selection in Open Environments','2013','1',' Wireless sensor and actuator networks Reputation management Mobile users Web services Internet of things','Abstract Wireless Sensor and Actuator Networks (WSAN) are becoming more and more relevant and are likely to spread everywhere, due to their numerous applications and benefits. In fact, they are a key element in the vision of the so called Internet of Things . Nevertheless, the lack of central control and the existence of incentives for cheating lead to the necessity of defining mechanisms for identifying well-behaving WSANs. Reputation based solutions have been suggested in the literature in order to cope with these situations, but most of them were focused on finding a specific most trustworthy sensor, capable of provisioning a requested service. Our work, however, is oriented to provide a mobile user with an accurate reputation-based mechanism allowing her to select, amongst a set of available WSANs, the most reputable one, according to the recommendations given by other users. Thus, the mobile user can build her own opinion and consequently decide which is the best WSAN to interact with. This decision will be based in her own criteria, which might be different from other users of the same service. In order to prevent the abuse of the proposed reputation system, we suggest a mechanism avoiding multiple recommendations from the same user in a specific time frame. Additionally, we handle certain privacy issues by hiding the real identity of a user behind a group. The experiments performed show the accuracy, scalability and robustness of our proposal, called WSANRep, within several scenarios, considering the existence of malicious recommenders and malicious service providers.','Wireless Personal Communications',1,'Félix Gómez MármolChristoph SorgeOsman UgusGregorio Martínez Pérez','springer/soa security.csv','springer','\0'),(1891,'Research and application on cloud simulation','2013','','Cloud computing; Cloud simulation; Modeling and simulation; Virtualization','This paper expounds comprehensively research results of our team on cloud simulation since authors have published the paper [1]. These results consist of the evolved technology connotation and features of cloud simulation, its expansion and development versus the cloud computing, the architecture of the cloud simulation system, 4 kinds of service patterns of cloud simulation, body of technological knowledge on cloud simulation, 9 key technologies broken through recently by our team, including unified management technology for simulation resources, individuation virtual desktop technology, multi-users oriented dynamic building technology of virtual simulation environment, automatic composition technology of simulation models, fault tolerance technology for resources in cloud simulation, multi-core cluster oriented hierarchical parallel simulation engine, high efficient and collaborative running supporting technologies, monitoring and evaluation technology for cloud simulation, and cloud simulation system security technology. In addition, a typical application demonstration system and the application prospect are given. The primary research and practice show that our research results can further strengthen the abilities of cloud simulation. Finally, the paper gives the prospect of the next work of cloud simulation.','',1,'Li B.H., Chai X., Hou B., Yang C., Li T., Lin T., Zhang Z., Zhang Y., Zhu W., Zhao Z.','scopus/service oriented architecture security.csv','scopus','\0'),(1892,'Design and Evaluation of a Services Interface for the Internet of Things','2016','0',' Internet of things (IoT) IoT application programming interface (IoT API) IoT middleware REST services SOAP services UPnP devices','Abstract This paper proposes an application programming interface (API) for accessing services within the internet of things (IoT) through both REST and SOAP protocols. This API provides methods and procedures to allow its usage for performing IoT control and event monitoring operations. In order to encompass devices diversity, the proposed API introduces a uniform abstraction model that constitutes a common standard view to manage objects. An abstract device services interface is then available instead of device commands, thus providing transparent access to devices capabilities and hiding the physical aspects of provider devices. The API has been designed to ease the remote management of IoT smart objects and was implemented as a module of an existing IoT middleware (UIoT). Experimental evaluation of both protocol implementations yields results showing the REST services with faster response time and lower resources usage than similar SOAP services.','Wireless Personal Communications',1,'Caio César de Melo SilvaHiro Gabriel Cerqueira FerreiraRafael Timóteo de Sousa JúniorFábio BuiatiLuis Javier García Villalba','springer/service oriented architecture security.csv','springer',''),(1893,'Information security management model for integration platforms','2015','','electronic services; information security; integration platforms; lattice theory; service oriented architectured; SOA','This paper presents requirements and main characteristics of the new information security management model for integration platforms. It also defines integration platforms as service oriented systems and indicates its requirements for security. The lattice theory is used in the presented model to allow automatic integration of electronic services originating from different information systems. © 2015 IEEE.','',1,'Wilk J.','scopus/soa security.csv','scopus',''),(1894,'[Title page]','2012','0','','The following topics are dealt with: intelligent service management; dynamic service composition; cloud-based service-oriented services; mobile-based service-oriented services; QoS; cyber-physical systems; M2M systems; service-oriented application management; service-oriented architecture; information and communication technology; and disaster management.','2012 Fifth IEEE International Conference on Service-Oriented Computing and Applications (SOCA)',1,'','ieee/service oriented architecture security.csv','ieee','\0'),(1895,'Metadata in SDN API for WSN','2015','','Parlay;REST;SDN;WSDL;WSN;metadata;northbound API','This paper discusses the system aspects of the development of applied programming interfaces in Software-Defined Networking (SDN). SDN is a prospect software enablement for Wireless Sensor Networks (WSN). So, application layer SDN API will be the main application API for WSN. Almost all existing SDN interfaces use so-called Representational State Transfer (REST) services as a basic model. This model is simple and straightforward for developers, but often does not support the information (metadata) necessary for programming automation. In this article, we cover the issues of representation of metadata in the SDN API.','2015 7th International Conference on New Technologies, Mobility and Security (NTMS)',1,'M. Sneps-Sneppe; D. Namiot','ieee/service oriented architecture security.csv','ieee',''),(1896,'5:1--5:41','2013','5','Model-based testing, security certification, service-oriented architecture, symbolic transition systems, web services','The Service-Oriented Architecture (SOA) paradigm is giving rise to a new generation of applications built by dynamically composing loosely coupled autonomous services. Clients (i.e., software agents acting on behalf of human users or service providers) implementing such complex applications typically search and integrate services on the basis of their functional requirements and of their trust in the service suppliers. A major issue in this scenario relates to the definition of an assurance technique allowing clients to select services on the basis of their nonfunctional requirements and increasing their confidence that the selected services will satisfy such requirements. In this article, we first present an assurance solution that focuses on security and supports a test-based security certification scheme for Web services. The certification scheme is driven by the security properties to be certified and relies upon a formal definition of the service model. The evidence supporting a certified property is computed using a model-based testing approach that, starting from the service model, automatically generates the test cases to be used in the service certification. We also define a set of indexes and metrics that evaluate the assurance level and the quality of the certification process. Finally, we present our evaluation toolkit and experimental results obtained applying our certification solution to a financial service implementing the Interactive Financial eXchange (IFX) standard.','',1,'','acm/soa security.csv','acm','\0'),(1897,'Quantitative Reduction in Communication Load for Energy Efficiency in WSN','2015','0',' Wireless sensor network (WSN) Query optimization In-network optimization Base-station optimization Epoch','Abstract WSN is a dynamic network of randomly deployed tiny sensor nodes to monitor the physical ambient conditions, healthcare services, military surveillance, movements and tracking of vehicles or other targets etc. Sensing generates continuous streams of data which are distributed throughout the network. This distributed data is retrieved by various applications through numerous appropriate means.\n Query based retrieval method is the most popular general purpose method for data extraction. In response to queries injected into the network nodes communicate data among themselves or to the base-station. Communication traffic thus generated is highly energy consuming activity. It drains out limited energy available with a node thereby rendering it useless as replenishment of energy is not possible in most of the deployments therefore efficient use of energy is the main focus to prolong the life of a WSN. Reduction of communication traffic is the most effective mean to achieve energy efficiency. \n In this paper we have proposed an approach towards this end which employs optimization of multiple queries at the base station and data compression at individual nodes resulting in quantitative reduction in communication traffic. Quality of data is not compromised in the process.','Wireless Personal Communications',1,'Vandana JindalA. K. VermaSeema Bawa','springer/soa security.csv','springer',''),(1898,'Web Application Architecture Security Evaluation Method Based on AADL','2015','','AADL;AHP;architecture;component;security eveluation','In this paper, we propose an architecture security evaluation method to identify potential risks of architecture. We model security features of web applications from two different but complementary points of view using AADL, build an AADL security model which contribute to detect risks of architecture. With the help of a tool, we can automatically convert the AADL security model to an architecture security model. Then, an integration process applies analytic hierarchy process (AHP) and fuzzy evaluation analysis to the architecture security model. In the end, we can get security conclusions of the architecture and improve security measures based on security conclusions. The experiment demonstrates that the method not only improves efficiency of the evaluation, but also makes security evaluation process more objective and accurate.','Engineering of Complex Computer Systems (ICECCS), 2015 20th International Conference on',1,'S. Geng; X. Li; Z. Feng; D. Sun','ieee/service oriented architecture security.csv','ieee',''),(1899,'An adaptive framework for monitoring agent organizations','2014','1',' Monitoring Organization Adaptation Events','Abstract Multiagent technologies are usually considered to be suitable for constructing agent organizations that are capable of running in dynamic and distributed environments and that are able to adapt to changes as the system runs. The necessary condition for this adaptation ability is to make agents aware of significant changes in both the environment and the organization. This paper presents mechanism, which helps agents detecting adaptation requirements dynamically at run time, and an Trace&Trigger, which is an adaptation framework for agent organizations. It consists of an event-tracing-based monitoring mechanism that provides organizational agents with information related to the costs and benefits of carrying out an adaptation process at each moment of the execution. This framework intends to overcome some of the problems that are present in other approaches by allowing the dynamic specification of the information that has to be retrieved by each agent at each moment for adaptation deliberation, avoiding the transference of useless information for adaptation deliberation. This framework has been integrated in the Magentix2 multiagent platform. In order to test its performance benefits for any agent organization, an example based on a market scenario is also presented.','Information Systems Frontiers',1,'Juan M. AlberolaLuis BúrdaloVicente JuliánAndrés TerrasaAna García-Fornes','springer/service oriented architecture security.csv','springer','\0'),(1900,'A new quantitative model for web service security','2012','','Risk Analysis; Security; SOA; Web Service','Security is one of important QoS properties of web services that need to be quantified. Quantifying Security can help both in selecting among published web services and also in assessing security weaknesses of services by service providers. In this paper we propose a three level hierarchical architecture for web service security. In this architecture we consider all of important aspects of security that they are: Authentication, integrity, authorization, confidentiality, availability and non-repudiation. For each aspect is considered the most important web service threats. Furthermore we consider likelihood and impact factor for each threat. Then we compute weight of each impact with using AHP and finally total security index is computed with weighted averaging. © 2012 IEEE.','',1,'Banaei O., Khorsandi S.','scopus/soa security.csv','scopus','\0'),(1901,'12th Biannual conference of the German cognitive science society (Gesellschaft für Kognitionswissenschaft)','2014','0','','','Cognitive Processing',1,'Martin V. Butz','springer/soa security.csv','springer','\0'),(1902,'Membrane Computing Inspired Approach for Executing Scientific Workflow in the Cloud','2014','0',' Scientific Workflows Service Oriented Architecture Membrane Computing','Abstract The continuous expansion and appreciation of the service oriented architecture is due to the standards of loose-coupling and platform independence. Service-Oriented Architecture is the most commonly and effectively realized through web services, and their temporal collaboration commonly referred to as web service composition. In the present scenario, the most popular variant of composition is service orchestration. Orchestration is achieved through a centralized ‘ heavyweight ’ engine, the orchestrating agent, that makes the  deployment configuration a massive ‘ choke-point ’. The issue achieves significance when data and compute intensive scientific applications rely on such a centralized scheme. Lately, a lot of research efforts are put in to deploy a scientific application on the cloud, thereby provisioning resources elastically at runtime. In this paper, we aim at eliminating this central ‘choke’ point by presenting a model inspired from ‘ Membrane Computing ’ that executes a scientific workflow in a decentralized manner. The benefit of this paradigm comes from the natural process of autonomy, where each cell provision resources and execute process-steps on its own. The approach is devised keeping in mind, the feasibility of deployment on a cloud based infrastructure. To validate the model, a prototype is developed and real scientific workflows are executed in-house (with-in the Intranet). Moreover, the entire prototype is also deployed on a virtualized platform with software defined networking, thereby studying the effects of a low bandwidth environment, and dynamic provisioning of resources.','',2,'Tanveer AhmedRohit VermaMiroojin BakshiAbhishek Srivastava','springer/bpmn security.csv','springer',''),(1903,'Design Management: A Collaborative Design Solution','2013','0',' Design Architecture Linked Data Design Management UML','Abstract Design is more important than ever as software systems continue to increase in complexity, become more distributed, expose multiple interfaces and have more integration points. Design process has also become more complex, involving dispersed teams, third-party components, outsourcing providers and business partners. Nevertheless, design tools have not sufficiently been coping with these growing challenges. In this paper, we discuss design challenges and highlight features of design tools that should help address them. We also describe a new application; Rational Design Management (DM) developed to boost the quality of design and streamline the design process. DM enables a collaborative approach that broadens the understanding of design, improves design quality and shrinks design time. DM leverages semantic web technologies and implements the Open Services for Lifecycle Collaboration (OSLC) specification to deliver a linked data approach for managing design. Such an approach facilitates design extensibility, reuse and integration across the development lifecycle.','',2,'Maged ElaasarJames Conallen','springer/bpmn security.csv','springer','\0'),(1904,'Systematic Mapping of Architectures for Telemedicine Systems','2013','0',' telemedicine mapping study software architecture','Abstract The use of telemedicine systems is becoming increasingly common these days. Telemedicine systems exist for the purposes of education, improving the accuracy of medical diagnoses through the provision of a second opinion, and remote patient monitoring. Accordingly, the number of software solutions is increasing. Software Architecture is a subarea of Software Engineering whose goal is to study the system components, their external properties, and their relationships with other software. A good architecture can allow a system meets the mainly requirements of a project, such as performance, reliability, portability, easy maintenance, interoperability, etc. Aiming to find out what architectural styles that proposes a better performance in systems for telemedicine, a systematic mapping was done. With this mapping, it was possible to find taxonomies related to telemedicine systems, architectural styles commonly used in these systems and technologies relevant to the area.','',1,'Glauco de Sousa e SilvaAna Paula Nunes GuimarãesHugo Neves de OliveiraTatiana Aires TavaresEudisley Gomes dos Anjos','springer/service oriented architecture security.csv','springer','\0'),(1905,'Content-Based Protection and Release Architecture for Future NATO Networks','2013','6','Attribute-based access control;labelling','Future mission networks will require agility and flexibility in sharing information between heterogeneous users and terminals. We introduce the Content-based Protection and Release (CPR) model and present its applicability to current and future information sharing use cases in NATO. We present a service-oriented CPR architecture, which was developed at the NATO Communications and Information (NCI) Agency in order to address the evolving information sharing requirements in NATO operations. The paper highlights a number of important security services, which together comprise the CPR architecture. The central component is the CPR Enforcement Separation Service (CPRESS). CPRESS is supported by several other security services, such as the NATO Metadata Binding Service and the Content Inspection Policy Enforcement service. We describe these services and the interfaces between them. We also include recommendations based on experimentation with a CPR demonstrator developed at the NCI Agency, discuss related work, and identify possible future directions for research and development activities.','MILCOM 2013 - 2013 IEEE Military Communications Conference',1,'K. Wrona; S. Oudkerk','ieee/service oriented architecture security.csv','ieee','\0'),(1906,'Automatic Generation of Optimized Workflow for Distributed Computations on Large-Scale Matrices','2014','0',' location-aware optimization distributed computations BPEL workflows large-scale matrices','Abstract Efficient evaluation of distributed computation on large-scale data is prominent in modern scientific computation; especially analysis of big data, image processing and data mining applications. This problem is particularly challenging in distributed environments such as campus clusters, grids or clouds on which the basic computation routines are offered as web/cloud services. In this paper, we propose a locality-aware workflow-based solution for evaluation of large-scale matrix expressions in a distributed environment. Our solution is based on automatic generation of BPEL workflows in order to coordinate long running, asynchronous and parallel invocation of services. We optimize the input expression in order to maximize parallel execution of independent operations while reducing the matrix transfer cost to a minimum. Our approach frees the end-user of the system from the burden of writing and debugging lengthy BPEL workflows. We evaluated our solution on realistic mathematical expressions executed on large-scale matrices distributed on multiple clouds.','',2,'Farida SabryAbdelkarim ErradiMohamed NassarQutaibah M. Malluhi','springer/bpel security.csv','springer',''),(1907,'Beyond Anecdotal Thinking: Deepening Our Understanding for Achieving Quality Goals','2014','0','anecdotal evidence;best practices;empirical;quality goals','Quality goals for security, business agility, maintainability and other such attributes are often achieved through implementing best practices. To know which stakeholder goals are attainable and how they can best be achieved, we must empirically evaluate software development beliefs and practices. The Web extra at http://youtu.be/gLHkN_5wVCc is an audio podcast in which author Jane Cleland-Huang speaks with coauthor Mamoun Hirzalla from the Requirements column about the importance of challenging ideas, questioning beliefs, and understanding how various development practices and technical decisions can help or hinder the achievement of development goals.','IEEE Software',1,'M. Hirzalla; P. Bahrs; J. Cleland-Huang','ieee/service oriented architecture security.csv','ieee','\0'),(1908,'Managing Provenance in iRODS','2009','0','','Abstract Nowadays provenance is an important issue. Provenance data does not only give a history of events, it also provides enough information to allow the opportunity to verify the authenticity of the data, as well as, determine the quality of the data. The data grid management system, iRODS, comes with metadata which can be used as provenance data. Currently, iRODS’s metadata is not sufficient for tracking and reconstructing procedures applied to data. In this paper, we describe the provenance needs of iRODS and we survey briefly current provenance and provenance enabled workflow systems. We describe an architecture that can be used to manage provenance in iRODS (and other systems) in a fault-tolerant way.','',1,'Andrea WeiseAdil HasanMark HedgesJens Jensen','springer/microservice security.CSV','springer',''),(1909,'A model-driven method for enacting the design-time QoS analysis of business processes','2014','1',' Business process MDA BPMN Performance QoS LQN','Abstract Business Process Management (BPM) is a holistic approach for describing, analyzing, executing, managing, and improving large enterprise business processes. A business process can be seen as a flow of tasks that are orchestrated to accomplish well-defined goals such as goods production or services delivery. From an IT perspective, BPM is closely related to a business process automation approach carried out by use of IT standards and technologies, such as service-oriented architectures (SOAs) and Web Services. This paper specifically focuses on fully automated business processes that are defined and executed as orchestrations of software services. In a BPM context, the ability to predict at design time the business process behavior assumes a strategic relevance, both to early assess whether or not the business goals are achieved and to gain a competitive advantage. A business process is typically specified by use of Business Process Modeling Notation (BPMN), the standard language for the high-level description of business processes. Unfortunately, BPMN does not support the characterization of the business process in terms of nonfunctional or QoS properties, such as performance and reliability. To overcome such a limitation, this paper introduces Performability-enabled BPMN (PyBPMN), a lightweight BPMN extension for the specification of performance and reliability properties. PyBPMN enables the design time prediction of the business processes behavior, in terms of performance and reliability properties. Such prediction activity requires the use of models that are to be first built and then evaluated. In this respect, this work introduces a model-driven method that exploits PyBPMN to predict, at design time, the performance and the reliability of a business process, either to select the process configuration that provides the best behavior or to check if a given configuration satisfies the overall requirements. The proposed model-driven method that enacts the automated analysis of a business process behavior embraces the complete business process development cycle, from the specification phase down to the implementation phase. The paper also describes how the proposed model-driven method is implemented. The several model transformations at the core of the method have been implemented by use of QVT, and the standard language for specifying model transformations provided by OMG’s MDA. The availability of such automated model transformations allows business analysts to predict the process behavior with no extra effort and without being required to own specific skills of performance or reliability theory, as shown by use of an example application.','Software & Systems Modeling',2,'Paolo BocciarelliAndrea D’Ambrogio','springer/bpel security.csv','springer',''),(1910,'Case study: From legacy to connectivity migrating industrial devices into the world of smart services','2014','5','','Europa has launched multiple initiatives and research projects to remain competitive in a globalized world and keep industry and manufacturing on-shore. Funded by EU and member countries, project ARROWHEAD[1] focuses research and innovation for collaborative automation using interoperable services for smart production, to improve quality, efficiency, flexibility and cost competiveness. This includes an important new aspect called “Smart Services”, which aims to apply SOA (service oriented architecture) to maintenance and service of production systems and its parts, which still carry a huge potential for further gains in cost and energy savings. However, there will be no “big bang”. How can we turn present-day variety of diverse, specialized, and legacy loaded embedded systems into connected, SOA based cooperating participants of the Internet of Things (IoT)? This case study portrays the solution followed in ARROWHEAD WP1.1, for devices used in end-of-line (EoL) test systems in automotive powertrain production.','Proceedings of the 2014 IEEE Emerging Technology and Factory Automation (ETFA)',1,'P. Priller; A. Aldrian; T. Ebner','ieee/service oriented architecture security.csv','ieee','\0'),(1911,'Efficient Behavioral-Difference Detection between Business Process Models','2014','1','','Abstract Recently, business process management plays a more and more important role on the management of organizations. Business process models are used to enhance the efficiency of management and gain the control of (co)operations both within an organization and between business partners. Organizations, especially big enterprises, maintain thousands of process models and process models of the same category are with high similarity. For example, China Mobile Communication Corporation (CMCC) have more than 8000 processes in their office automation systems and the processes of the same business in different subsidiaries are with some variations. Therefore, to analyze and manage these similar process models, techniques are required to detect the differences between them. This paper focuses on detecting behavioral differences between process models. The current technique takes hours to compare the behaviors of two models in worst cases. Therefore, in this paper, an efficient technique is proposed by comparing dependency sets and trace sets of features in process models. Experiments show that the technique can detect behavioral differences between two models within seconds in worst cases, at least four orders of magnitude faster than existing techniques.','',2,'Zhiqiang YanYuquan WangLijie WenJianmin Wang','springer/bpmn security.csv','springer',''),(1912,'Multi-tenant web application framework architecture pattern','2015','','PaaS;SaaS;application framework;cloud computing;design pattern;multi-tenancy;software architecture;software design;web application;web application framework','Multi-tenancy is a key to successful and sustainable cloud-based systems. Creating a web application framework for multiple tenants from scratch is challenging. To create an extensible, stable and robust multi-tenant web application framework developers have to understand how a web application framework is structured and how a web request is handled for each user of a specific tenant. This knowledge often takes software architects and developers a lot of effort to obtain. In this paper, we present a novel object-oriented architecture pattern for developing multi-tenant web application frameworks in which maximum reuse and modularity can be achieved and application concerns can be separated. We evaluate the modularity, the extensibility, the reusability, the maintainability and the efficiency of our pattern by qualitative analysis based on well-known patterns used in our pattern. We validate the applicability, the correctness, the security and the performance of our pattern by testing real world systems that were built using our pattern. We believe that our pattern would reduce time and cost when developing multi-tenancy systems as well as understanding, evaluating and modifying existing web application frameworks.','Information and Computer Science (NICS), 2015 2nd National Foundation for Science and Technology Development Conference on',1,'N. H. Bien; T. Dan Thu','ieee/service oriented architecture security.csv','ieee',''),(1913,'Bootstrapping an Online News Knowledge Base','2016','0',' News retrieval Fact extraction Event mining Semantic news','Abstract News retrieval systems facilitate the process of quickly learning about events or stories reported in various online news providers. The traditional approach involves clustering articles that report about the same event using bag-of-words or concept based similarity measures, and offering personalized recommendations using various user modeling approaches. Knowledge bases have been extensively used in the recent years for powering search engines on entity based searches. The success of this approach, demonstrated by a now de-facto way of searching and browsing offered by commercial search engines and mobile applications, has created the need to incorporate semantic capabilities to news retrieval systems. In this paper we present a proposal for creating a knowledge base of entities, events and facts reported in Albanian online news providers. We aim to provide a news stream processing pipeline based in generally available open source toolkits and state-of-the-art research works about event and fact oriented knowledge bases.','',1,'Klesti HoxhaArtur BaxhakuIlia Ninka','springer/service oriented architecture security.csv','springer',''),(1914,'C-Grid: Enabling iRODS-based Grid Technology for Community Health Research','2013','1',' iRODS cyberinfrastructure data grid XSEDE community health grid computing data integration portal virtual obesity mobile technology','Abstract A Community Grid web portal, C-Grid, has been developed in this study for storing, managing and sharing large amounts of distributed community health related data in a data grid, thus facilitating further analysis of these datasets by health researchers in a collaborative environment. Remote management of this data grid is performed using the middleware iRODS, the Integrated Rule-Oriented Data System. A PHP-based wrapper, ez-iRODS, has been created as a component of C-Grid to interact with this middleware through PRODS, a client application programming interface (API). C-Grid serves as a gateway for the XSEDE resources, and also helps the users via ez-iRODS to create and manage ‘virtual data collection’ that can be stored in heterogeneous data resources across the distributed network. This web-based system has been developed with an objective of long-term data preservation, unified data access and sharing domain specific data amongst the scientific research collaborators of myCHOIS project.','',1,'Nitin SukhijaArun K. Datta','springer/microservice security.CSV','springer',''),(1915,'Identity-based encryption secure against selective opening chosen-ciphertext attack','2014','1','chosen ciphertext security; identity-based encryption; selective opening security','Security against selective opening attack (SOA) requires that in a multi-user setting, even if an adversary has access to all ciphertexts from users, and adaptively corrupts some fraction of the users by exposing not only their messages but also the random coins, the remaining unopened messages retain their privacy. Recently, Bellare, Waters and Yilek considered SOA-security in the identity-based setting, and presented the first identity-based encryption (IBE) schemes that are proven secure against selective opening chosen plaintext attack (SO-CPA). However, how to achieve SO-CCA security for IBE is still open. In this paper, we introduce a new primitive called extractable IBE and define its IND-ID-CCA security notion. We present a generic construction of SO-CCA secure IBE from an IND-ID-CCA secure extractable IBE with \"One-Sided Public Openability\"(1SPO), a collision-resistant hash function and a strengthened cross-authentication code. Finally, we propose two concrete constructions of extractable 1SPO-IBE schemes, resulting in the first simulation-based SO-CCA secure IBE schemes without random oracles. © 2014 International Association for Cryptologic Research.','',1,'Lai J., Deng R.H., Liu S., Weng J., Zhao Y.','scopus/soa security.csv','scopus','\0'),(1916,'An automated real-time integration and interoperability framework for bioinformatics','2015','0',' Data integration Interoperability Publish/subscribe Integration-as-a-service Intelligent ETL Workflow Cloud Service-oriented architecture Event-driven','Abstract Background In recent years data integration has become an everyday undertaking for life sciences researchers. Aggregating and processing data from disparate sources, whether through specific developed software or via manual processes, is a common task for scientists. However, the scope and usability of the majority of current integration tools fail to deal with the fast growing and highly dynamic nature of biomedical data. Results In this work we introduce a reactive and event-driven framework that simplifies real-time data integration and interoperability. This platform facilitates otherwise difficult tasks, such as connecting heterogeneous services, indexing, linking and transferring data from distinct resources, or subscribing to notifications regarding the timeliness of dynamic data. For developers, the framework automates the deployment of integrative and interoperable bioinformatics applications, using atomic data storage for content change detection, and enabling agent-based intelligent extract, transform and load tasks. Conclusions This work bridges the gap between the growing number of services, accessing specific data sources or algorithms, and the growing number of users, performing simple integration tasks on a recurring basis, through a streamlined workspace available to researchers and developers alike.','BMC Bioinformatics',1,'Pedro LopesJosé Luís Oliveira','springer/service oriented architecture security.csv','springer',''),(1917,'A bibliometric study of China’s science and technology policies: 1949–2010','2015','1',' S&T policy China Bibliometric analysis Co-word analysis Policy-making agency Network analysis','Abstract This paper uses a bibliometric analysis method to probe into the evolution of China’s science and technology policies from 1949 to 2010, and the roles of core government agencies in policy-making. We obtained 4,707 Chinese S&T policies from GDIS, a Chinese public policy database provided by Tsinghua University. Co-word analysis and network analysis were applied in mapping the topics of S&T policies and collaboration among the agencies, while citation analysis was applied to assess the influence of S&T policies. Findings include: first, the focus of Chinese S&T policies is mainly on applied research and industrialization, rather than basic research; second, more and more government agencies are involved in making S&T policies, but collaboration efforts are not significantly increasing; last but not least, the influence of different S&T policies is determined by the administrative ranking of the policy-making agencies responsible for drafting those policies.','Scientometrics',1,'Cui HuangJun SuXiang XieXuanting YeZhang LiAlan PorterJiang Li','springer/soa security.csv','springer',''),(1918,'Table of content','2014','0','','The following topics are dealt with: database intrusion detection; word sense disambiguation; machine translation; QoS-based fuzzy model; service-oriented architecture; wireless sensor networks; ontology situation awareness; robotic war; data mining; SAR image segmentation; role-based knowledge mapping; adaptive joint radio resource management algorithm; heterogeneous wireless networks; fuzzy intrusion detection system; human action content-based image retrieval; user online purchasing behavior; linear programming-based model; image hiding; feature selection; data fusion; fraud detection; MapReduce; nonlinear sliding mode block control; fractional order systems; trust-aware recommender systems; clustering based genetic algorithm; depth image compression; link analysis based ranking algorithm; semantic Web documents; adaptive e-learning system; RGB-D scene segmentation; view-invariant action recognition; social networks; gossip-based fuzzy C-means algorithm; semantic GeoLocation friend recommendation system; LinkedIn; multiradio multichannel wireless mesh networks; and license plate recognition system.','Information and Knowledge Technology (IKT), 2014 6th Conference on',1,'','ieee/service oriented architecture security.csv','ieee','\0'),(1919,'Application engines in VMVC-based tsunami modeling environment','2014','','Integration of heterogeneous software components; Service-oriented architectures; Tsunami modeling; Virtual mvcdesign patterns','Currently, Service-Oriented Architecture (SOA) may be considered as a state of the art approach for the complex software design and implementation because of high-level of operability and reusability of system components. Accordingly, we are applying the SOA-patterns to the creating the Tsunami Wave Propagation Modeling Environment because of complexity and versatility of tsunami modeling methods and tools. Our approach is followed an original Virtual Model- View-Controller pattern (VMVC) that is an adaptation of the traditional MVC to SOA. It is demarcating a Functional (View) and an Implementation (Model) task by inducing an Integrator (Controller) that encapsulates non-functional activities such as security, reliability, scalability, and routing. The presented paper is devoted to developing the Tsunami Modeling System components named Application Engines that are functioning at the Model layer. Accordingly, we are distinguishing the following main application engines: Tsunami Wave Propagation/Inundation, and Impaction Engines each of which reflects a corresponding stage of modeling process (tsunami wave propagation, inundation and impaction). We are also focusing on the developing the Tsunami Visualizing Engine (TVE) allowing to transform the digital results of modeling to the human-centered data representation. © 2014 The authors and IOS Press. All rights reserved.','',1,'Hayashi K., Vazhenin A., Marchuk A.','scopus/service oriented architecture security.csv','scopus','\0'),(1920,'Derivation of domain-specific architectural knowledge views from governance and security compliance metadata','2013','1','Architectural design decision; Architectural knowledge; Compliance; Domain-specific; Process-driven SOA; View','In the area of software architecture, in recent years, modeling design decisions is becoming more and more popular as a means to record architectural knowledge (AK) and capture the rationale of a design. Unfortunately, decision modeling is rather time-consuming and hence often forgotten in practice. In this paper, we propose that this problem can be avoided by utilizing domain-specific information that contains AK. We focus on domain-specific AK in the domain of business governance and security compliance. A novel approach is presented for recording the compliance concerns and extracting the corresponding AK. For this purpose we introduce a compliance meta-model and propose a mapping to the AK. Model-driven techniques are used as a supporting tool for generating AK documentation. Copyright 2013 ACM.','',1,'Tran H., Lytra I., Zdun U.','scopus/soa security.csv','scopus','\0'),(1921,'Tools and Algorithms for the Construction and Analysis of Systems - 18th International Conference, TACAS 2012, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2012, Proceedings','2012','','','The proceedings contain 48 papers. The topics discussed include: history-aware data structure repair using SAT; numeric bounds analysis with conflict-driven learning; Ramsey-based analysis of parity automata; VATA: a library for efficient manipulation of non-deterministic tree automata; pushdown model checking for malware detection; aspect-oriented runtime monitor certification; partial model checking using networks of labelled transition systems and Boolean equation systems; modeling and verification of a dual chamber implantable pacemaker; counter-example guided fence insertion under TSO; compositional termination proofs for multi-threaded programs; the AVANTSSAR platform for the automated validation of trust and security of service-oriented architectures; minimal critical subsystems for discrete-time Markov models; coupling and importance sampling for statistical model checking; and QuteRTL: towards an open source framework for RTL design synthesis and verification.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus','\0'),(1922,'Analyzing and mining a code search engine usage log','2012','13',' Code search engine Usage log analysis Mining topics','Abstract This paper presents an analysis of a year long usage log of Koders, the first commercially available Internet-Scale code search engine ( http://​www.​koders.​com ). The usage log comprises about ten million activities from more than three million users. Analysis of the usage data shows that despite of attracting a large number of visitors, Koders has a very sparse usage and that it lacks regular usage from many of its users. When compared to Web search, search behavior in Koders showed many similar patterns. A topic modeling analysis of the usage data shows what topics users of Koders are looking for. Observations on the prevalence of these topics among the users, and observations on how search and download activities vary across topics, lead to the conclusion that users who find code search engines usable are those who already know to a high level of specificity what to look for. This paper also presents a general categorization of these topics that provides insights on the different ways code search engine users express their queries. It identifies various forms of queries in Koders’s log and the kinds of results addressed by the queries. It also provides several suggestions for improvements in code search engines based on the analysis of usage, topics, and query forms. The work presented in this paper is the first of its kind that reveals several insights on the usage of an Internet-Scale code search engine.','Empirical Software Engineering',1,'Sushil Krishna BajracharyaCristina Videira Lopes','springer/webservice security.csv','springer',''),(1923,'A Policy-Based Architecture for Web Services Security Processing','2012','1','PBA4WSSP;Security;Security Policy;Web Services','With the development of the Internet, Web Services technology has gradually become the development direction of the e-business, e-government and other fields, and the corresponding security mechanism has received unprecedented attention, while how to design an integrated architecture to enhance web services security remains a problem very difficult to tackle with, and there are no good solutions to support individualized security requirements. As a result of our study we present in this paper a policy-based architecture termed PBA4WSSP for web services security processing. In PBA4WSSP, the processes of all security problems are based on security policy in service stage to enable system security and flexibility. Moreover, this architecture provides the five security services including as integrity, confidentiality, non-repudiation, authentication and authorization. In PBA4WSSP, a web service security module have been designed and implemented.','e-Business Engineering (ICEBE), 2012 IEEE Ninth International Conference on',1,'H. Zeng; D. Ma; Z. Li; Y. Zhao','ieee/service oriented architecture security.csv','ieee','\0'),(1924,'The Evolution of Cloud Service Governance','2015','','Cloud; Cloud service governance; Security; service-oriented architecture','We leverage cloud governance for the simple reason that, once we get to a certain number of cloud services, we won\'t be able to keep track of them all and provide the control they\'ll require. Those who leverage many services provided by public and private clouds call this the tipping point, or the point where the number of services being managed becomes so high that\'s it\'s impossible to manage them properly without a governance model, approach, and service governance technology. So, how do you implement service governance for the cloud? This article looks at both the concept of cloud governance, including why it\'s needed, and how to do it. It breaks down governance into its component parts, explains each part, and examines how to implement service governance for your cloud implementation. © 2015 IEEE.','',1,'Linthicum D.S.','scopus/service oriented architecture security.csv','scopus',''),(1925,'Analysis and Mitigation of NoSQL Injections','2016','','Browsers; Computer security; Data models; Data protection; Data storage systems; Distributed databases; Forgery; Scalability; Service-oriented architecture','NoSQL data storage systems have become very popular due to their scalability and ease of use. Unfortunately, they lack the security measures and awareness that are required for data protection. Although the new data models and query formats of NoSQL data stores make old attacks such as SQL injections irrelevant, they give attackers new opportunities for injecting their malicious code into the statements passed to the database. Analysis of the techniques for injecting malicious code into NoSQL data stores provides examples of new NoSQL injections as well as Cross-Site Request Forgery attacks, allowing attackers to bypass perimeter defenses such as firewalls. Analysis of the source of these vulnerabilities and present methodologies can mitigate such attacks. Because code analysis alone is insufficient to prevent attacks in today\'s typical large-scale deployment, certain mitigations should be done throughout the entire software life cycle. © 2003-2012 IEEE.','',1,'Ron A., Shulman-Peleg A., Puzanov A.','scopus/service oriented architecture security.csv','scopus',''),(1926,'Fault-tolerant timestamp-based two-phase commit protocol for RESTful services','2013','','architectural style; concurrency control; distributed system; fault tolerance; reliability; REST; timestamp; transaction; Web services','Service-oriented architecture provides interoperability and weak coupling features for software development. Representational state transfer (REST) is an architectural style that has attracted attention in the SOA domain as it allows the development of Web services based on original principles of the World Wide Web. Unlike Web service specifications, which are based on Simple Object Access Protocol and Web Services Description Language, REST does not provide \'official\' standards to address non-functional requirements of services, such as security, reliability, and transaction control. The timestamp-based two-phase commit protocol for RESTful service (TS2PC4RS) algorithm specifies concurrency control of RESTful services during a transaction. An extension of the TS2PC4RS specifies the concurrency control of the Web services considering the update operation to meet some business rules. However, neither algorithm addresses transaction control when failures occur. In long-term transactions, failures can occur and compromise the success of Web service applications. Two common failures traditionally considered in the analysis of protocols are host and connection failures. The aim of this paper is to address fault tolerance for TS2PC4RS and its extension. A fault-tolerant protocol based on timeout and log records is proposed. The fault-tolerant protocol provides support for the host and connection failures that may occur during a transaction execution. The fault-tolerant mechanisms are used to meet the application domain business rules that guide the behavior of RESTful services. We describe the protocol using scenarios when failures occur. Copyright © 2012 John Wiley & Sons, Ltd. Copyright © 2012 John Wiley & Sons, Ltd.','',1,'Maciel L.A.H.D.S., Hirata C.M.','scopus/service oriented architecture security.csv','scopus','\0'),(1927,'Solving the Interoperability Problem by Means of a Bus','2014','0',' Grid computing Cloud computing Interoperability problem Heterogeneous computing infrastructures','Abstract In the last years, many institutions have provided themselves with cluster and Grid infrastructures either for intensive computation or research objectives. Each infrastructure having its own and different management operating software, the integration of different platforms becomes a hard and complicated task. Solving the interoperability problem for a set of different computing infrastructures belonging to our institution in order to solve a computation intensive problem was our objective. The paper describes the solution that was applied and the experimental results obtained. The solution uses a platform based on a central bus shared by the involved system components for information exchange. In order to ensure that all computations will succeed, the solution includes cloud infrastructures to deal with situations in which the local computing resources pose some problems. Also a cloud based solution for the bus deployment is explored and empirically compared with a local deployment.','Journal of Grid Computing',1,'Javier FabraSergio HernándezJoaquín EzpeletaPedro Álvarez','springer/soa security.csv','springer','\0'),(1928,'Content architecture applications in healthcare','2014','0',' Content architectures Service oriented architecture Intelligent content Knowledge management e-Health Electronic health records','Abstract Healthcare delivery is undergoing significant transformation in the United States. Many hospitals and clinics are utilizing electronic means for maintaining patient records. Implementation of electronic health records is now a prevalent activity at many healthcare organizations. Despite the use of electronic health records by many healthcare organizations, it is still difficult to obtain meaningful information from electronic data pertaining to healthcare. Intelligent content applications organize the data within a company make all the data in the organization searchable and retrievable for faster access. This paper therefore explores SOA (Service oriented architecture) and intelligent content architecture in an attempt to suggest better structures that enable retrieval of related data from myriad sources within a company. While intelligent content applications are being slowly developed for areas such as electronic publishing, its use in healthcare organizations has been limited. This paper discusses applications of intelligent content architecture for the healthcare domain.','Health and Technology',1,'Suresh ChalasaniPradeep JainParag DhumalHoda MoghimiNilmini Wickramasinghe','springer/soa security.csv','springer','\0'),(1929,'Remote SoC/FPGA platform configuration for cloud applications','2014','1','','The growing development of Cloud Computing raised the need of making hardware available “as a Service”. Reconfigurable hardware - like FPGA (Field Programmable Gate Arrays) - makes the ideal candidate for being integrated into Cloud systems due to their high flexibility and scalability. This work describes the design and implementation of a remote reconfigurable FPGA-based SoC (System on Chip) with a Service-oriented configuration interface over the Internet, and underlines several solutions in order to meet the specific challenges raised by this type of integration. The FPGA board (that can be at a remote location) is configured by a Web Service linked to a JSP (JavaServer Pages) Web-page where the user can provide a bitstream configuration file for the Programmable Logic (PL). On the SoC/FPGA board, dedicated software has been developed to run on the embedded Processing System (PS), managing the downloaded bitstreams and configuring the PL.','2014 International Conference on Optimization of Electrical and Electronic Equipment (OPTIM)',1,'O. Machidon; F. Sandu; C. Zaharia; P. Cotfas; D. Cotfas','ieee/service oriented architecture security.csv','ieee','\0'),(1930,'A Problem-Value-Constraint Framework for Minimizing Under Design and Over Design in Web Service Based System Development','2015','','Knowledge;Over Design;SOA;Software Development;Value Engineering;Web Service','With the increasing of the popularity of Service oriented Software Development, we have identified there is a need to systemically reduce the complexity and increase the robustness of developed Service systems through a guided development process. We choose under design (UD) and over design (OD) as core value assets to uniformly represent the target of managing the human errors and deficiencies during a development process. In the study of a Web Service architectural selection case, based on the ideology of Value Driven Design, we proposed the Problem-Value-Constraint (PVC) approach as the framework of minimizing under design and over design covering both IT concerns including functionalities and qualities and Business concerns including value, cost, price and usage. Our PVC solution connects the characteristics including knowledge management, information transformation and business value. Partially through service design patterns, our study showed that PVC is able to outline both business and technical characteristics at the same time keep the simplicity of model structures.','2015 International Conference on Service Science (ICSS)',1,'Y. Duan; C. Ren; N. Zhou; X. Sun; M. Tang; H. Gao','ieee/service oriented architecture security.csv','ieee',''),(1931,'SOAP processing performance and enhancement','2012','13','and protection; integrity; performance evaluation; performance measures; security; Web-based Services; XML/XSL/RDF','The web services (WS) technology provides a comprehensive solution for representing, discovering, and invoking services in a wide variety of environments, including Service Oriented Architectures (SOA ) and grid computing systems. At the core of WS technology lie a number of XML-based standards, such as the Simple Object Access Protocol (SOAP), that have successfully ensured WS extensibility, transparency, and interoperability. Nonetheless, there is an increasing demand to enhance WS performance, which is severely impaired by XML\'s verbosity. SOAP communications produce considerable network traffic, making them unfit for distributed, loosely coupled, and heterogeneous computing environments such as the open Internet. Also, they introduce higher latency and processing delays than other technologies, like Java RMI and CORBA. WS research has recently focused on SOAP performance enhancement. Many approaches build on the observation that SOAP message exchange usually involves highly similar messages (those created by the same implementation usually have the same structure, and those sent from a server to multiple clients tend to show similarities in structure and content). Similarity evaluation and differential encoding have thus emerged as SOAP performance enhancement techniques. The main idea is to identify the common parts of SOAP messages, to be processed only once, avoiding a large amount of overhead. Other approaches investigate nontraditional processor architectures, including micro- and macrolevel parallel processing solutions, so as to further increase the processing rates of SOAP/XML software toolkits. This survey paper provides a concise, yet comprehensive review of the research efforts aimed at SOAP performance enhancement. A unified view of the problem is provided, covering almost every phase of SOAP processing, ranging over message parsing, serialization, deserialization, compression, multicasting, security evaluation, and data/instruction-level processing. © 2012 IEEE.','',1,'Tekli J.M., Damiani E., Chbeir R., Gianini G.','scopus/service oriented architecture security.csv','scopus','\0'),(1932,'Improving agile requirements: the Quality User Story framework and tool','2016','0',' User stories Requirements quality AQUSA QUS framework Natural language processing Multi-case study','Abstract User stories are a widely adopted requirements notation in agile development. Yet, user stories are too often poorly written in practice and exhibit inherent quality defects. Triggered by this observation, we propose the Quality User Story (QUS) framework, a set of 13 quality criteria that user story writers should strive to conform to. Based on QUS, we present the Automatic Quality User Story Artisan (AQUSA) software tool. Relying on natural language processing (NLP) techniques, AQUSA detects quality defects and suggest possible remedies. We describe the architecture of AQUSA, its implementation, and we report on an evaluation that analyzes 1023 user stories obtained from 18 software companies. Our tool does not yet reach the ambitious 100 % recall that Daniel Berry and colleagues require NLP tools for RE to achieve. However, we obtain promising results and we identify some improvements that will substantially improve recall and precision.','Requirements Engineering',2,'Garm LucassenFabiano DalpiazJan Martijn E. M. van der WerfSjaak Brinkkemper','springer/bpmn security.csv','springer',''),(1933,'Turnaround Time Minimization-Based Static Scheduling Model Using Task Duplication for Fine-Grained Parallel Applications onto Hybrid Cloud Environment','2015','','Directed acyclic graph (DAG); hybrid cloud computing; scheduling; task duplication; turnaround time (TAT)','Cloud computing is a multifarious computing paradigm incorporating the benefits of service-oriented architecture and utility computing through virtualization. Hybrid cloud, an amalgamation of two or more public and/or private clouds, is gaining high popularity between users due to various reasons involving improved performance, flexible business operations, capacity expansion, optimized costs, and enhanced security. The efficient execution of fine-grained parallel applications onto hybrid cloud system becomes limited due to a number of factors. From the application point of view, it ranges from the dynamicity of the applications to their precedence and communication constraints while for the computational resources, it includes heterogeneity of processors and participating clouds with their interconnection topology. This work proposes a compile time hybrid cloud-based task duplication strategy to execute the fine-grained applications represented as directed acyclic graph (DAG) onto the hybrid cloud environment. The proposed strategy schedules the tasks based on a degree relative to the critical path in the DAG and tries to achieve lower bound of the DAG. Furthermore, it makes an effort to avoid redundant duplication by duplicating only the required parent tasks considering the available idle slots to minimize the execution time of the application. The experimental study reveals that the proposed strategy performs better than its peers in terms of achieving the lower bound more efficiently with lesser degree of duplication for fine-grained jobs. The strategy is highly useful for cloud environment as it results in lower cost of usage of resources with enhanced system utilization. Copyright © 2015 by the IETE','',1,'Sajid M., Raza Z.','scopus/service oriented architecture security.csv','scopus',''),(1934,'Measurements and Measurement Tools in OpenLab: Use Cases with Measurement Data Ontologies','2013','0',' OpenLab measurement in testbeds ontology network measurement data integration','Abstract In this chapter we review the network measurement tools and instruments that are in place in the FP7 OpenLab project, which provides a set of different network testbeds. We also focus on the problem of data heterogeneity, which comes from the fact that different measurement tools will provide data in different formats and structured in different ways. Therefore, a common information model becomes necessary and the OpenLab ontology-based solution is presented. Such ontology is being standardized by an Industry Specification Group at ETSI, resulting in the first ever standard on network measurement data ontologies.','',1,'J. E. López de VergaraJ. Aracil','springer/service oriented architecture security.csv','springer','\0'),(1935,'Exception handling patterns for process modeling','2010','33','Exception handling patterns; Process modeling; Process modeling languages','Process modeling allows for analysis and improvement of processes that coordinate multiple people and tools working together to carry out a task. Process modeling typically focuses on the normative process, that is, how the collaboration transpires when everything goes as desired. Unfortunately, real-world processes rarely proceed that smoothly. A more complete analysis of a process requires that the process model also include details about what to do when exceptional situations arise. We have found that, in many cases, there are abstract patterns that capture the relationship between exception handling tasks and the normative process. Just as object-oriented design patterns facilitate the development, documentation, and maintenance of object-oriented programs, we believe that process patterns can facilitate the development, documentation, and maintenance of process models. In this paper, we focus on the exception handling patterns that we have observed over many years of process modeling. We describe these patterns using three process modeling notations: UML 2.0 Activity Diagrams, BPMN, and Little-JIL. We present both the abstract structure of the pattern as well as examples of the pattern in use. We also provide some preliminary statistical survey data to support the claim that these patterns are found commonly in actual use and discuss the relative merits of the three notations with respect to their ability to represent these patterns. © 2010 IEEE.','',2,'Lerner B.S., Christov S., Osterweil L.J., Bendraou R., Kannengiesser U., Wise A.','scopus/bpmn security.csv','scopus',''),(1936,'Putting the Customer Back in the Center of SOA with Service Design and User-Centered Design','2013','1',' Service Design User-Centered Design Service Oriented Architecture','Abstract This article introduces a methodology used for designing the online presence of a Swiss SME providing Cloud Services. The Web application used for the purchasing and administration, backed by a Service-Oriented Architecture (SOA), has been designed to be customer-centric using a combination of different techniques borrowed from the fields of ethnomethodology, service design and user-centered design. The tools employed include service blueprint design and affinity diagram analysis followed by prototyping and subsequent usability evaluation. This collaborative methodology explained with the help of the applied research project use case is seen to yield excellent results in terms of customer-orientation.','',1,'Arnita SainiBenjamin NanchenFlorian Evequoz','springer/service oriented architecture security.csv','springer','\0'),(1937,'Improving resilience of SOA services along space-time dimensions','2012','','Intrusion Tolerance; MTTR; MTTSF; SCIT; Semi-Markov; SOA','In Service-Oriented Architecture, a service contains a set of operations with openly defined input and output parameters. In addition to these operations and traditional QoS, offered services need to implement different levels of intrusion tolerance. Indeed, intrusion tolerance has been recently presented as part of the defense-in-depth solution in order to enhance security resilience for services, as a complement to the traditional intrusion prevention and detection. While satisfying functional requirements, a service also exposes its attack surface via published operations, protocols, and accessible data as an adverse side effect, which makes it susceptible to exploitation by malicious actors. The resulting question is - how can services fulfill and maintain their intrusion tolerance QoS (IT-QoS) for security resilience and rapid recovery in the face of hostile attacks. In this paper, we propose an approach to tune a service so that its attackability can be controlled and the IT-QoS guaranteed despite the exposed attack surface. Our approach relies on Self-Cleansing Intrusion Tolerance (SCIT), a recovery-based intrusion tolerance architecture combined with service-oriented programming constructs. A quantitative analysis using Semi-Markov Process modeling provides a mathematical foundation for compensating the expansion of a service\'s attack surface by tuning SCIT system parameters. © 2012 IEEE.','',1,'Nguyen Q.L., Sood A.','scopus/service oriented architecture security.csv','scopus','\0'),(1938,'The SERIES Virtual Database: Architecture and Implementation','2015','0','','Abstract The European scientific community is currently highly fragmented, with each laboratory holding experimental data, stored in some cases in a non-structured way. As a consequence, dissemination and use of experimental results outside the laboratory where they are produced can be problematic. This leads to wasteful duplication of tests and ultimately limits the impact of earthquake engineering research on practice, innovation and earthquake risk mitigation. One part of the SERIES Networking Activities aims at facilitating the exchange of data and data communication among research infrastructures in Europe by providing access to data through a distributed database. The scope was not to build a central database where local databases would either migrate or merge, but instead to provide centralised access to database nodes that are distributed over a network and are able to dialog with a central portal in a uniform manner. To this end, database nodes use Web Services to cast their data into a uniform standard format. The paper concentrates on the architecture and the implementation of the Distributed Database.','',1,'Ignacio Lamata MartínezIoannid IoannidisChristos FidasMartin S. WilliamsPierre Pegon','springer/service oriented architecture security.csv','springer',''),(1939,'The MIDAS cloud platform for testing SOA applications','2015','','','While Service Oriented Architectures (SOAs) are for many parts deployed online, and today often in a cloud, the testing of the systems still happens mostly locally. In this paper, we want to present the MIDAS Testing as a Service (TaaS), a cloud platform for the testing of SOAs. We focus on the testing of whole SOA orchestrations, a complex task due to the number of potential service interactions and the increasing complexity with each service that joins an orchestration. Since traditional testing does not scale well with such a complex setup, we employ a Model-based Testing (MBT) approach based on the Unified Modeling Language (UML) and the UML Testing Profile (UTP) within MIDAS. Through this, we provide methods for functional testing, security testing, and usage-based testing of service orchestrations. Through harnessing the computational power of the cloud, MIDAS is able to generate and execute complex test scenarios which would be infeasible to run in a local environment. © 2015 IEEE.','',1,'Herbold S., De Francesco A., Grabowski J., Harms P., Hillah L.M., Kordon F., Maesano A.-P., Maesano L., Di Napoli C., De Rosa F., Schneider M.A., Tonellotto N., Wendland M.-F., Wuillemin P.-H.','scopus/service oriented architecture security.csv','scopus',''),(1940,'Using Models at Runtime to Address Assurance for Self-Adaptive Systems','2014','1','','Abstract A self-adaptive software system modifies its behavior at runtime in response to changes within the system or in its execution environment. The fulfillment of the system requirements needs to be guaranteed even in the presence of adverse conditions and adaptations. Thus, a key challenge for self-adaptive software systems is assurance. Traditionally, confidence in the correctness of a system is gained through a variety of activities and processes performed at development time, such as design analysis and testing. In the presence of self-adaptation, however, some of the assurance tasks may need to be performed at runtime. This need calls for the development of techniques that enable continuous assurance throughout the software life cycle. Fundamental to the development of runtime assurance techniques is research into the use of models at runtime (M@RT). This chapter explores the state of the art for using M@RT to address the assurance of self-adaptive software systems. It defines what information can be captured by M@RT, specifically for the purpose of assurance, and puts this definition into the context of existing work. We then outline key research challenges for assurance at runtime and characterize assurance methods. The chapter concludes with an exploration of selected application areas where M@RT could provide significant benefits beyond existing assurance techniques for adaptive systems.','',1,'Betty H. C. ChengKerstin I. EderMartin GogollaLars GrunskeMarin LitoiuHausi A. MüllerPatrizio PelliccioneAnna PeriniNauman A. QureshiBernhard RumpeDaniel SchneiderFrank TrollmannNorha M. Villegas','springer/service oriented architecture security.csv','springer','\0'),(1941,'Toward the automation of a QoS-driven SLA establishment in the Cloud','2015','0',' Composite SaaS SOA QoS SLA Cloud and Model-driven architecture','Abstract Composite software as a service (SaaS)-based SOA offers opportunities for enterprises to offer value-added services. The cornerstone for such a business is service level agreements between Cloud customers and Cloud providers. In spite of the hype surrounding composite SaaS, standardized methods that enable a reliable management of service level agreements starting from the SLA derivation from the customer requirements to the SLA establishment between the two stockholders are still missing. To overcome such a drawback, we propose a method for SLA establishment guided by QoS for composite SaaS. Our method provides: (1) a requirement specification language for the Cloud customer to define the composition schemas of the requested services along with its QoS constraints; (2) a Cloud provider offer specification language and method to help in identifying the services and resources that satisfy the customer requirements; and (3) an SLA document definition language and method to specify a deployable composite SaaS on the Cloud. Our approach for SLA establishment embraces model-driven architecture principles to automate the SLA document generation from the customer requirements document. The automation is handled through model transformations along with enrichment algorithms to ensure the generation of complete SLA documents.','Service Oriented Computing and Applications',1,'Khouloud BoukadiRima GratiHanêne Ben-Abdallah','springer/soa security.csv','springer',''),(1942,'SDE-Driven Service Provision Control','2012','0',' Service Provision Control Stochastic differential equation Differential Evolution','Abstract The service-oriented architecture (SOA) allows distributed resources to be provided through standard service interfaces, resulting in easy and flexible access to domain-specific functionality. Depending on resource availability and the demand for services, a service-providing host may choose to provide one or several services in the direction of maximizing its service-providing utility. This is known as the service provision control (SPC) problem. With the help of stochastic differential equations (SDEs), this problem will be tackled in this paper within a stochastic optimization framework. Differential evolution (DE) algorithm will be further utilized to identify near-optimal service-providing policies. Experimental study has been conducted based on an example inspired by Cyber security. The experiment results show that our approach is effective in tackling the SPC problem and may be therefore suitable for many practical applications.','',1,'Gang ChenShaoning PangAbdolhossein SarrafzadehTao BanDaisuke Inoue','springer/service oriented architecture security.csv','springer','\0'),(1943,'Modelling and Analysing Cloud Application Management','2015','0','','Abstract Managing complex applications over heterogeneous clouds is one of the emerging problems in the cloud era. The OASIS Topology and Orchestration Specification for Cloud Applications (TOSCA) aims at solving this problem by providing a language to describe and manage complex cloud applications in a portable and vendor-agnostic way. TOSCA permits to define an application as an orchestration of components, whose types can specify states, requirements, capabilities and management operations — but not how they interact with each other. In this paper we propose a simple extension of TOSCA that permits to specify the behaviour of management operations and their relations with states, requirements, and capabilities. We show how such an extension permits to automate various useful analyses, like determining the validity of a management plan, which are its effects, or which plans reach certain system configurations. Finally, we illustrate a proof-of-concept graphical interface that permits to edit and analyse management protocols in TOSCA applications.','',2,'Antonio BrogiAndrea CancianiJacopo Soldani','springer/bpmn security.csv','springer',''),(1944,'Discerning Flooding Attack from Flash Crowd based on traffic patterns using entropy detection method','2015','','Entropy; Flash Crowd; Flooding Attack','Computing Industry is moving towards Service Oriented Architecture at a fast pace. This brings network security to the forefront of major concerns to an organization. Ensuring round the clock uninterrupted service to the clients becomes a top priority to any organization. Flooding Attack is one of the costliest attacks that use a host to overwhelm a server, causing complete system crash. Flash Crowd is an unexpected rise in traffic caused by legitimate users. Both flooding which is one of the types of DoS attack and Flash crowd creates abnormal traffic condition, but in order to improve good put, the server must be deployed with the mechanism that should classify legitimate and malicious call requests. The on-going attacks usually similar to each other compared to the flows of flash crowd so the provocation is to recognize flooding attacks from flash crowd. The recognition of flooding attack is done by, using the Entropy based detection method. © 2015 IEEE.','',1,'Rani T.S., Sindhura V., Rao G.R., Pranathi K.','scopus/service oriented architecture security.csv','scopus',''),(1945,'International Standard Conference on Trustworthy Computing and Services, ISCTCS 2013','2014','','','The proceedings contain 49 papers. The special focus in this conference is on Trustworthy Computing and Services. The topics include: Security memory system for mobile device or computer against memory attacks; research on technologies of software requirements prioritization; when malware analysis meets the hardware assisted virtualization; imbalanced Chinese text classification based on weighted sampling; hijacking activity technology analysis and research in android system; a mobile botnet model based on android system; an improved common vulnerability scoring system based on k-means; a design of linkage security defense system based on honeypot; flexible mechanism research of workflow system based on SOA; effective rate control algorithm for H.264 based on scene change detection; a new approach to decrease invalidate rate of weak consistency methods in web proxy caching; an anomaly detection model based on cloud model and danger theory; generation and distribution of decoy document system; detecting the DGA-based malicious domain names; improving the efficiency of storing SNS small files in HDFS; a highly efficient indoor localization scheme based only on mobile terminal; a zones-based metadata management method for distributed file system; survey on data recovery for cloud storage; the evaluation of service trustworthiness based on BP-neural network; research on trustworthy sensor network based on zigbee technology; research of digital campus construction based on cloud computing; multi-layer CAPTCHA based on Chinese character deformation; security risk assessment of mobile internet under cloud computing mode; business impact analysis model based on the analytic hierarchy process; a black-box approach for detecting the failure traces; an effective resource management architecture in HSE system; a covert channel bases on CPU load in cloud computing; adaptive synchronization of complex networks with time-varying delay nodes and delay coupling; gigabit Ethernet data transfer based on FPGA; research on efficient dynamic cloud storage ciphertext access control; research on the inverted index based on compression and perception; term committee based event identification and dependency discovery; a semantics enabled intelligent semi-structured document processor; trustworthiness in the patient centred health care system; android-based remote-control with real-time video surveillance for Wi-Fi robot; characterizing and comparing user location preference in an urban mobile network and security testing approaches - for research, industry and standardization.','',1,'[No author name available]','scopus/soa security.csv','scopus','\0'),(1946,'Harnessing and securing cloud in patient health monitoring','2012','','Cloud computing; HL7; open source health care; Security; tele monitoring','A first proposal to use a secure open cloud architecture (OpenCloudCare) for remote patient health monitoring defines the front end and back end architecture that would integrate healthcare devices into the enterprise cloud. This service oriented architecture (SOA) uses existing open source resources for easy implementation, migration and rapid deployment. The introduction of the atlas middleware in the cloud environment enables scalable integration of devices as software services without worrying on hardware details. OpenCloudCare has the potential to enable the independent living for the aged people with minimal cost. Like Amazon EC2, OpenCloudCare can emerge as the de-facto platform, on which different vendors and developers can offer wider range of services using existing devices and enterprise applications. The benefits of migrating existing patient monitoring systems into cloud and the migrating process are also discussed. The major components required for securing the cloud infrastructure are also identified. Complying with the federal requirements on electronic health record (EHR) protection is the major challenge. © 2012 IEEE.','',1,'Mouleeswaran S.K., Rangaswamy A., Rauf H.A.','scopus/service oriented architecture security.csv','scopus','\0'),(1947,'CDCGM track: Summary report','2013','','Cloud Computing; Distributed Intelligent Managed Element Networks; Distributed Services Management; grid computing; Many-core Servers; Parallel Computing; Services Virtualization','The Convergence of distributed clouds, grids and their management conference track focuses on virtualization and cloud computing as they enjoy wider acceptance. A recent IDC report predicts that by 2016, 1 of every 5 will be spent on cloud-based software and infrastructure. Three papers address key issues in cloud computing such as resource optimization and scaling to address changing workloads and energy management. In addition, the DIME network architecture proposed in WETICE2010 is discussed in two papers in this conference, both showing its usefulness in addressing fault, configuration, accounting, performance and security of service transactions with in the service oriented architecture implementation and also spanning across multiple clouds. While virtualization has brought resource elasticity and application agility to the services infrastructure management, the resulting layers of orchestration and the lack of end-to-end service visibility and control spanning across multiple service provider infrastructure have added an alarming degree of complexity. Hopefully, reducing the complexity in the next generation datacenters will be a major research topic in this conference. © 2013 IEEE.','',1,'Mikkilineni R., Morana G.','scopus/service oriented architecture security.csv','scopus','\0'),(1948,'A Context-Aware User Interface for Wireless Personal-Area Network Assistive Environments','2013','2',' Context-aware control interface Wireless assistive environments Service discovery Motor system impairments Tongue-controlled interface','Abstract The daily life of people with severe motor system impairments is challenging and thus often subordinated to extensive external help; increasing their level of self-support is thus highly desirable. Recent advances in wireless communications, in particular in wireless personal-area networks, serve as technological enablers well suited for implementing smart and convenient assistive environments which can increase self-support. This paper presents the design and prototyping of a versatile interface for such wireless assistive environments. We propose a modular framework that can accommodate several wireless personal-area network standards. The interface is built upon this framework and is designed in such a way that it can be controlled by various types of input devices such as a touch screen or a tongue-control unit. The interface can automatically discover consumer appliances (e.g. Zigbee and Bluetooth enabled lights and computers) in the user’s environment and display the services supported by these devices on a user-friendly graphical user interface. A demonstrator is prototyped and experimental results show that the proposed interface is context-aware, i.e. it successfully detects available appliances, adapts itself to the changes that occur in the user’s environment, and automatically informs the user about these changes. The results also show that the proposed interface is versatile and easy to use, i.e. the user can easily control multiple devices by means of a browser menu. Hence, the proposed work illustrates how assistive technology based on wireless personal-area networks can contribute to improving the quality of life of motor system impaired persons.','Wireless Personal Communications',1,'Bastien PaulSéverin MarcombesAlexandre DavidLotte N. S. Andreasen StruijkYannick Le Moullec','springer/service oriented architecture security.csv','springer','\0'),(1949,'Proceedings - 14th IEEE International Symposium on Web Systems Evolution, WSE 2012','2012','','','The proceedings contain 15 papers. The topics discussed include: automated verification of role-based access control security models recovered from dynamic web applications; visual testing of graphical user interfaces: an exploratory study towards systematic definitions and approaches; security evolution of the Webkit browser engine; an exploratory survey on SOA knowledge, adoption and trend in the Italian industry; a case study of the use of open source CMS in public administrations; evaluation of java-based open source web frameworks with Ajax support; towards a lightweight model driven method for developing SOA systems using existing assets; model-driven and metrics-driven user experience re-modeling for rich internet applications; development of flexible process-centric web applications: an integrated model driven approach; and educating tomorrows web systems developers.','',1,'[No author name available]','scopus/soa security.csv','scopus','\0'),(1950,'Semantic Integration via Enterprise Service Bus in Virtual Organization Breeding Environments','2016','0',' Matching process Ontology Semantic mapper Virtual breeding environment','Abstract To attend demands faster and with lower cost, small and medium sized enterprises (SME) act in a collaboratively way in organization breeding environments through resource sharing and integration of systems. This integration is easier by the use of service oriented architecture and enterprise service bus (ESBs). However is still complex due the heterogeneity of existing data. To solve this compatibility problem among data, the ESBs could be enabled to mediate divergences with semantic support. But how to add semantic support into the ESBs to facilitate data mapping of SME in order to integrate its systems? This paper proposes the creation of an ontology as a method of semantic data analysis with the objective of solving incompatibilities among data that should be exchanged between SME. To validate the proposal some metrics are applied, they evaluate the coverage of the search terms, the wealth of knowledge representation and ontology detail level, as well as the prototype of semantic mapper developed was executed and analyzed.','',2,'Wilcilene Maria Kowal SchratzenstallerFabiano BaldoRicardo José Rabelo','springer/bpmn security.csv','springer',''),(1951,'A Service-Oriented Architecture Implementation in the Digital Factory of the University','2015','0',' Service-Oriented architecture SOA in automation DPWS Control systems','Abstract In reaction to the changing requirements for modern manufacturing systems, which lead to an increasing demand for flexibility and reconfigurability, different technologies had been developed in the past to meet these requirements. In today’s competitive dynamic market, the successful integration of new architectures and technologies in manufacturing processes is inevitable for all organizations. One promising approach is to map the concepts of “Service-Oriented Architecture” into the automation area. In order to test and evaluate the capabilities of this architecture and its related technologies, the University of Applied Sciences Emden/Leer has been building its “Digital Factory” following this approach. This paper will provide an overview about how the SOA concept has been implemented at the “Digital Factory” and what is going to be realized in the future.','',1,'Jeffrey WermannEduardo Cardoso MoraesArmando Walter Colombo','springer/service oriented architecture security.csv','springer',''),(1952,'ITS Architecture for Provision of Advanced Information Services for Public Transport by Road','2015','0',' Intelligent transport systems Public transport management','Abstract In this work a system architecture model for the provision of advanced information services in the context of public transport of passengers by road is presented. The main aim of this model is to provide a frame for systematic development of ubiquitous services integrated in transport infrastructures. The proposed architecture is based on standard specification about ITS architectures and ubiquitous paradigm. To illustrate the utility of the proposed model, a case of use is presented, specifically an intelligent surveillance system for on route public transport vehicles that has been developed using the proposed model.','',1,'Carmelo R. GarcíaAlexis Quesada-ArencibiaTeresa CristóbalGabino PadrónFrancisco Alayón','springer/service oriented architecture security.csv','springer',''),(1953,'Service Orientation and the Smart Grid state and trends','2012','10',' Smart Grid Electricity distribution Service-oriented architectures Web services','Abstract The energy market is undergoing major changes, the most notable of which is the transition from a hierarchical closed system toward a more open one highly based on a “smart” information-rich infrastructure. This transition calls for new information and communication technologies infrastructures and standards to support it. In this paper, we review the current state of affairs and the actual technologies with respect to such transition. Additionally, we highlight the contact points between the needs of the future grid and the advantages brought by service-oriented architectures.','Service Oriented Computing and Applications',1,'Giuliano Andrea PaganiMarco Aiello','springer/soa security.csv','springer',''),(1954,'Perceptual rate-distortion optimization for H.264/AVC video coding from both signal and vision perspectives','2016','0',' Perceptual quality Rate-distortion optimization Lagrange multiplier adjustment H.264/AVC','Abstract Recent researches have shown that the Structural SIMilariy (SSIM)-based Rate-Distortion Optimization (RDO) can obtain more structural information than the traditional SSE-based RDO for video coding. Correspondingly, the perceptual video quality is improved at certain degree for the video stream encoded by the SSIM-based RDO. However, for the MB with significant luminance change (due to the flashlight or sunshine change, etc.) but little structure change compared to the co-located MB in the referred frame, the SSIM-based RDO may select improper encoding mode (SKIP) which leads to uncomfortable visual experience. In this paper, involving the surrounding pixels of the current coding MB into the measurement of spacial texture quality degradation, the RDO which jointly considers the SSIM-based distortion and SSE-based distortion is proposed to improve H.264/AVC perceptual coding performance. The Lagrange multiplier in the proposed RDO is firstly derived at the frame level. Then, to make the Lagrange multiplier more adaptive to the specific video content, the Lagrange multiplier for each individual MB is refined based on the visual information theory. Experimental results show that the proposed perceptual RDO can select the optimal encoding mode which preserves as much structural information as possible with as little SSE-based distortion as possible, and that the perceptual quality of the encoded video is improved.','Multimedia Tools and Applications',1,'Pinghua ZhaoYanwei LiuJinxia LiuRuixiao YaoSong Ci','springer/service oriented architecture security.csv','springer',''),(1955,'Design and implementation of a massively parallel ESB','2013','','distributed and delay insensitive applications; Enterprise Service Bus (ESB); massively parallel processing; multithreading','Enterprise Service Bus (ESB) is an SOA-based software architecture for business application integration in distributed and heterogeneous environments. The proposed solutions so commercial as open source offer the same set of basic services such as message transformation, message routing, security. However, none of them take advantage of the multicore/multiprocessor technologies which make plausible the massively parallel processing. In this paper, we describe a new ESB architecture denoted Massively Parallel Application Bus (MPAB) which meets this challenge. © 2013 IEEE.','',1,'Benosman R., Barkaoui K., Albrieux Y.','scopus/soa security.csv','scopus','\0'),(1956,'An Adaptive Personal Learning Environment Architecture','2014','2',' Service-oriented architecture (SOA) University Service Bus (USB) Personal Learning Environment (PLE)','Abstract Institutions are facing the challenge to integrate legacy systems with steadily growing new ones, using different technologies and interaction patterns. With the demand of offering the best potential of all systems, several not matching systems including their functions have to be aggregated and offered in a useable way. This paper presents an adaptive, generalizable and self-organized Personal Learning Environment (PLE) framework with the potential to integrate several heterogeneous services using a service-oriented architecture. First, a general overview over the field is given, followed by the description of the core components of the PLE framework. A prototypical implementation is presented. Finally, it’s shown how the PLE framework can be dynamically adapted to a changing system environment, reflecting experiences from first user studies.','',2,'Alexander KiyUlrike LuckeDietmar Zoerner','springer/bpmn security.csv','springer',''),(1957,'The study on a convergence security service for manufacturing industries','2013','3',' IT convergence security service Manufacturing industry Technology leakage','Abstract In the current global economic recession, the manufacturing industry, a backbone of national economy, is in danger of collapse. For manufacturing business, which has a large effect on national production and employment, to contribute to the growth of national economy, we should, among others, prepare a plan to prevent the leakage of high technology. However, since manufacturing businesses have different business processes, it is hard to work out a security measure. Accordingly, the present thesis has developed a convergence security service for business process of manufacturing industries. The new service answering the prayer of each business was developed as a security measure by building ontology in application of Semantic technology after analyzing the business process of manufacturing industries.','Telecommunication Systems',1,'Jonggu KangJaepil LeeChungtae HwangHangbae Chang','springer/service oriented architecture security.csv','springer','\0'),(1958,'Cloud-assisted body area networks: state-of-the-art and future challenges','2014','13',' Body area networks Cloud computing Mobile computing Workflow Data analysis','Abstract Body area networks (BANs) are emerging as enabling technology for many human-centered application domains such as health-care, sport, fitness, wellness, ergonomics, emergency, safety, security, and sociality. A BAN, which basically consists of wireless wearable sensor nodes usually coordinated by a static or mobile device, is mainly exploited to monitor single assisted livings. Data generated by a BAN can be processed in real-time by the BAN coordinator and/or transmitted to a server-side for online/offline processing and long-term storing. A network of BANs worn by a community of people produces large amount of contextual data that require a scalable and efficient approach for elaboration and storage. Cloud computing can provide a flexible storage and processing infrastructure to perform both online and offline analysis of body sensor data streams. In this paper, we motivate the introduction of Cloud-assisted BANs along with the main challenges that need to be addressed for their development and management. The current state-of-the-art is overviewed and framed according to the main requirements for effective Cloud-assisted BAN architectures. Finally, relevant open research issues in terms of efficiency, scalability, security, interoperability, prototyping, dynamic deployment and management, are discussed.','Wireless Networks',1,'Giancarlo FortinoGiuseppe Di FattaMukaddim PathanAthanasios V. Vasilakos','springer/soa security.csv','springer',''),(1959,'The Service Meta Modeling Editor – Bottom-Up Integration of Service Models','2013','1',' logistics service modeling metamodeling service editor','Abstract The logistics service industry is characterized by a high level of collaboration between logistics customers and providers. In fact, sophisticated, knowledge-intense business models such as fourth party and lead logistics evolved in recent years that are responsible for planning, coordination, and monitoring entire supply chains across logistics companies. The Logistics Service Engineering and Management (LSEM) platform is a service-oriented infrastructure for the development and management of collaborative contract logistics enabling fourth party and lead logistics. The service modeling framework (SMF) is a central element of the LSEM-platform. It allows users of the platform to define, manage and combine logistics services from different providers and allows for an integrated view on complex services setups. In this paper, the Service Meta Modeling Editor is presented as an essential part of the SMF. It allows connecting and integrating various types of service models and avoids the need to define and maintain a complex, global service model. Instead a comprehensive service model is built bottom-up in that elements from different models are linked on a metamodel level.','',2,'Christoph AugensteinAndré Ludwig','springer/bpel security.csv','springer','\0'),(1960,'SOAP Processing Performance and Enhancement','2012','7','Web-based Services;XML/XSL/RDF;and protection.;integrity;performance evaluation;performance measures;security','The web services (WS) technology provides a comprehensive solution for representing, discovering, and invoking services in a wide variety of environments, including Service Oriented Architectures (SOA ) and grid computing systems. At the core of WS technology lie a number of XML-based standards, such as the Simple Object Access Protocol (SOAP), that have successfully ensured WS extensibility, transparency, and interoperability. Nonetheless, there is an increasing demand to enhance WS performance, which is severely impaired by XML\'s verbosity. SOAP communications produce considerable network traffic, making them unfit for distributed, loosely coupled, and heterogeneous computing environments such as the open Internet. Also, they introduce higher latency and processing delays than other technologies, like Java RMI and CORBA. WS research has recently focused on SOAP performance enhancement. Many approaches build on the observation that SOAP message exchange usually involves highly similar messages (those created by the same implementation usually have the same structure, and those sent from a server to multiple clients tend to show similarities in structure and content). Similarity evaluation and differential encoding have thus emerged as SOAP performance enhancement techniques. The main idea is to identify the common parts of SOAP messages, to be processed only once, avoiding a large amount of overhead. Other approaches investigate nontraditional processor architectures, including micro- and macrolevel parallel processing solutions, so as to further increase the processing rates of SOAP/XML software toolkits. This survey paper provides a concise, yet comprehensive review of the research efforts aimed at SOAP performance enhancement. A unified view of the problem is provided, covering almost every phase of SOAP processing, ranging over message parsing, serialization, deserialization, compression, multicasting, security evaluation, and data/instruction-level processin- .','IEEE Transactions on Services Computing',1,'J. M. Tekli; E. Damiani; R. Chbeir; G. Gianini','ieee/service oriented architecture security.csv','ieee',''),(1961,'Enhancing the OPEN Process Framework with service-oriented method fragments','2014','1',' Service-oriented software development OPEN Process Framework OPF repository Method fragment Situational method engineering','Abstract Service orientation is a promising paradigm that enables the engineering of large-scale distributed software systems using rigorous software development processes. The existing problem is that every service-oriented software development project often requires a customized development process that provides specific service-oriented software engineering tasks in support of requirements unique to that project. To resolve this problem and allow situational method engineering, we have defined a set of method fragments in support of the engineering of the project-specific service-oriented software development processes. We have derived the proposed method fragments from the recurring features of 11 prominent service-oriented software development methodologies using a systematic mining approach. We have added these new fragments to the repository of OPEN Process Framework to make them available to software engineers as reusable fragments using this well-known method repository.','Software & Systems Modeling',2,'Mahdi Fahmideh GholamiMohsen SharifiPooyan Jamshidi','springer/bpel security.csv','springer',''),(1962,'Trust-compensation-based access control model for web services','2012','','Access control; Feedback; Trust compensation; Web service','For most current Web Service access control methods, Web Service providers create a series of access control rules based on specified attributes. Only by meeting all the rules can a subject obtain the access to necessary operations and resources. However, because of the dynamic and open traits of Web Services, it is difficult for Web Service providers to work out an access control policy with moderate intensity and to realize a satisfactory balance between protecting the security of resources and maintaining the service reachable rate. To provide a solution to the above problem, this paper proposed a trust compensation access control method based on the Attribute-Based Access Control model. Our main contributions include a formal description of the access control method, a method to calculate the attribute trust degree based on time decay, and the trust compensation value of the attribute trust degree, as well as a new Service Oriented Architecture (SOA) architecture and its procedures based on a detailed trust compensation access control method.','',1,'Yan D., Sun J., Zhang L., Yang F.','scopus/service oriented architecture security.csv','scopus','\0'),(1963,'Model-Based QoS-Enabled Self-Healing Web Services','2008','2','Self-healingness;enhanced BPEL;ontology for quality','Failures during Web service execution may depend on a wide variety of causes, such as network faults, server crashes, or application-related errors, such as unavailability of a requested web service, errors in the orchestration of choreography of applications, missing data or parameters in an execution flow, or low quality of service (QoS). In this paper, we propose a healing architecture able to handle web service faults in a self- healing way, discussing infrastructural faults and web service and Web application faults. The self-healing architecture manages repair actions, such as substitution of a faulty service or duplication of overloaded services. Implemented prototypes involving QoS in coordinated web services are illustrated and discussed.','2008 19th International Workshop on Database and Expert Systems Applications',2,'O. Nabuco; R. B. Halima; K. Drira; M. G. Fugini; S. Modafferi; E. Mussi','ieee/bpel security.csv','ieee','\0'),(1964,'Towards a Two-Way Participatory Process','2012','0',' VGI PPGIS Government Social Media','Abstract In less than a decade, several millions of articles have been written in Wikipedia and several million roads have been traced out on Open Street Map (OSM). In the meantime, the authorities have still not been able to understand and use the power of crowd sourcing. In this paper, we present the design principles of a new Public Participation Geographic Information System (PPGIS). We aim to eliminate the typical limitations of previous unsuccessful platforms, that have mostly failed due to conceptual design issues. We argue that two fundamental changes must exist in new PPGIS platforms: there is a shift from hierarchies to increased equal rights platforms; improved communication, more transparency, and bi-directionality. The role of the authority in former platforms was really an authoritarian role: having all the power and only partly knowing and controlling the entire platform. This is completely different from the crowd source platforms we know to be successful. So, one fundamental change is to diminish hierarchies and prevent people from hiding themselves behind the institution. The second major conceptual design issue is related to transparency and communication. While former platforms use mechanisms to prevent citizens from seeing each other’s participation, we aim to enable people to see the participation of others. That’s a fundamental feature in social networks. We will also design it to be a two-way communication platform. If citizens are requested to participate, the administration must use the same platform to communicate with them. Not only to provide feedback, but also to publish useful information for the citizen. In this paper we describe how social media meets our design principles. We decide to implement our case study, the “Fix my Street” application, on top of a social engine, to take advantage of all social media features. Two necessary extensions to the social engine are briefly described, to capture the core logic of our application.','',1,'António SilvaJorge Gustavo Rocha','springer/service oriented architecture security.csv','springer','\0'),(1965,'Discovering Services','2013','0','','Abstract This tutorial paper presents an overview of existing approaches for service discovery and describes a service discovery framework that can support both static and dynamic service discovery. The framework and its extensions have been developed within the EU 6 th Framework projects SeCSE and Gredia and the EU 7 th Framework Network of Excellence S-Cube.','',2,'Andrea Zisman','springer/bpel security.csv','springer','\0'),(1966,'21st Australasian Conference on Information Systems, ACIS 2010','2010','','','The proceedings contain 105 papers. The special focus in this conference is on information systems. The topics include: user perceived requirements for a mobile accounting information system; exploring interorganisational systems (IOS) adoption in Bahrain; credibility-based social network recommendation; UTAUT application & cultural implication; e-Supply chain capability; vendor transition and the impact on in-flight projects; IBA performance and usability for mobile phones; assessing the quality and knowledge contribution of MIS quarterly; a social ecological model of ICT cooption; Business Process Management (BPM) education in Australia; past, present and future of m-banking research; enabling information security culture; perceived risk and risk relievers associated with online shopping; extent of adoption as opposed to adoption; Business Intelligence (BI) critical success factors; living systems, complexity & information systems science; return on IT investments in Two-Sided markets; co-creation in business service lifecycle management; ontological services using crowdsourcing; redesigning communication models; performance analysis of business process models with advanced constructs; cultural influences on IS service quality perceptions; process improvement based on external knowledge context; a preliminary taxonomy of crowdsourcing; effective coordination of vertical IS standardisation initiatives; towards an understanding of business intelligence; adding context to social tagging systems; controls for managing risks across different stages of ERP projects; modelling exploratory analysis processes for eResearch and design guidelines and architecture for BPMN models.','',2,'[No author name available]','scopus/bpmn security.csv','scopus','\0'),(1967,'CloudDSF – The Cloud Decision Support Framework for Application Migration','2014','1','','Abstract Migrating existing applications to cloud solutions is a multi-dimensional problem that spans beyond technical issues and into the financial, security and organizational domains. The existing works in the field form a picture of a maturing but still incomplete research area, requiring the introduction of comprehensive solutions for the migration of enterprise systems and applications to cloud solutions. As part of this effort, in this work we focus on supporting decision makers in evaluating the need for migration, and guiding them along the decisions that need to be made before the actual migration process. For this purpose we build on existing work to provide an elaborated decision support framework that is available as a Web application. We discuss the evaluation of the framework by experts, identify its deficiencies and outline our future steps. {keywordsApplication migration, decision support, decision visualization.','',1,'Vasilios AndrikopoulosAlexander DarsowDimka KarastoyanovaFrank Leymann','springer/service oriented architecture security.csv','springer','\0'),(1968,'A Design of Solution to Database Security Based on Multi-Layer Intrusion Tolerance','2012','1','Database security;Intrusion;tolerance','The traditional solution to database security has a drawback that it can not deal with malicious attacks by persons with legal identity, and that, it is in general not cost-effective to users who have different security requirements for it only offers fixed security level. By adopting multi-layer security model, namely \"user +OS +DBMS +transaction-level intrusion tolerance\", it integrates redundancy and variety technology; by adopting integral security strategy and server-oriented intrusion tolerance technology, it realizes the survivability and availability of database, and the confidentiality and integrity of sensitive data. In this way, it can effectively resist malicious attacks by persons with legal identity and reduce the cost of security.','Industrial Control and Electronics Engineering (ICICEE), 2012 International Conference on',1,'J. Lu; Y. Sun; Q. Shen; Y. Li','ieee/service oriented architecture security.csv','ieee','\0'),(1969,'Design and performance testing of an integrated detection and assessment perimeter system','2012','1','NAR;SEIWG;SOA;VMD;detection;machine learning;perimeter security;sensor fusion','Kontek Industries (Kannapolis, NC) and their subsidiary, Stonewater Control Systems (Kannapolis, NC), have entered into a cooperative research and development agreement with Sandia National Laboratories (Albuquerque, NM) to jointly develop and evaluate an integrated perimeter security solution, one that couples access delay with detection and assessment. This novel perimeter solution is designed to be sufficiently flexible for implementation at a wide range of facility types, from high security military or government installations to commercial power plants, to industrial facilities of various kinds. A prototype section of barrier has been produced and installed at the Sandia Exterior Intrusion Sensor Testing Facility in Albuquerque, NM. The prototype was implemented with a robust vehicle barrier and coupled with a variety of detection and assessment solutions to demonstrate both the effectiveness of such a solution, as well as the flexibility of the system. In this implementation, infrared sensors and fence disturbance sensors are coupled with a video motion detection sensor and ground sensors. The ability of the system to properly detect pedestrian or vehicle attempts to bypass, breach, or otherwise defeat the system will be characterized, as well as the Nuisance Alarm Rate.','Security Technology (ICCST), 2012 IEEE International Carnahan Conference on',1,'J. G. Dabling; J. O. McLaughlin; J. J. Andersen','ieee/soa security.csv','ieee','\0'),(1970,'Strategic business modeling: representation and reasoning','2014','14',' Business intelligence Business model Conceptual modeling languages Influence diagrams Goal Situation Key performance indicators Strategic planning','Abstract Business intelligence (BI) offers tremendous potential for business organizations to gain insights into their day-to-day operations, as well as longer term opportunities and threats. However, most of today’s BI tools are based on models that are too much data-oriented from the point of view of business decision makers. We propose an enterprise modeling approach to bridge the business-level understanding of the enterprise with its representations in databases and data warehouses. The business intelligence model (BIM) offers concepts familiar to business decision making—such as goals, strategies, processes, situations, influences, and indicators. Unlike many enterprise models which are meant to be used to derive, manage, or align with IT system implementations, BIM aims to help business users organize and make sense of the vast amounts of data about the enterprise and its external environment. In this paper, we present core BIM concepts, focusing especially on reasoning about situations, influences, and indicators. Such reasoning supports strategic analysis of business objectives in light of current enterprise data, allowing analysts to explore scenarios and find alternative strategies. We describe how goal reasoning techniques from conceptual modeling and requirements engineering have been applied to BIM. Techniques are also provided to support reasoning with indicators linked to business metrics, including cases where specifications of indicators are incomplete. Evaluation of the proposed modeling and reasoning framework includes an on-going prototype implementation, as well as case studies.','Software & Systems Modeling',2,'Jennifer HorkoffDaniele BaroneLei JiangEric YuDaniel AmyotAlex BorgidaJohn Mylopoulos','springer/bpmn security.csv','springer',''),(1971,'SAPDS: self-healing attribute-based privacy aware data sharing in cloud','2012','3',' Cloud storage Data privacy Remote storage','Abstract This paper addresses the issue of data governance in a cloud-based storage system. To achieve fine-grained access control over the outsourced data, we propose Self-Healing Attribute-based Privacy Aware Data Sharing in Cloud (SAPDS). The proposed system delegates the key distribution and management process to a cloud server without seeping out any confidential information. It facilitates data owner to restrain access of the user with whom data has been shared. User revocation is achieved by merely changing one attribute associated with the decryption policy, instead of modifying the entire access control policy. It enables authorized users to update their decryption keys followed by each user revocation, making it self-healing, without ever interacting with the data owner. Computation analysis of the proposed system shows that data owner can revoke n ′ users with the complexity of O ( n ′). Besides this, legitimate users can update their decryption keys with the complexity of O (1).','The Journal of Supercomputing',1,'Zeeshan PervezAsad Masood KhattakSungyoung LeeYoung-Koo Lee','springer/soa security.csv','springer','\0'),(1972,'SOA in practice – a study of governance aspects','2015','1',' Service-oriented architecture IT governance SOA governance Governance framework SOA aspect','Abstract The academic literature on Service Oriented Architecture (SOA) governance is based on theories and assumptions rather than practices, whereas the SOA governance frameworks proposed by Information Technology (IT) vendors are made to suit their products. Research shows that the problems with SOA governance in practice are among the major reasons of SOA failures. An extensive literature review that covers SOA, IT governance and SOA governance has been carried out part of this research. The purpose of this research paper is to increase our understanding of SOA governance and to show which SOA aspects organizations should consider when adopting a SOA governance framework. Based on a literature review, this study first proposes a list of SOA aspects to be considered when implementing SOA governance. By adopting an interpretive research methodology – based on interviews with professionals and practitioners in the fields of IT governance and SOA governance – this research paper examines the importance of these aspects. The results provide a theoretical conceptualization of SOA aspects that can be used to assess SOA governance practices and provide guidance to improve them.','Information Systems Frontiers',1,'George JoukhadarFethi Rabhi','springer/service oriented architecture security.csv','springer',''),(1973,'Innovation and evolution in integrated web application testing with TTCN-3','2014','1',' TTCN-3 Web applications Test specification language Unit test framework Service-oriented architecture Security Penetration testing','Abstract Over the last 10 years there has been continuous innovation and evolution in the technology of web applications. While originally designed as a telecom testing platform, TTCN-3 has proven to be a flexible and powerful platform for web application testing throughout this period. Major challenges to testing have been integration with unit test frameworks, service-oriented architecture, rich client interfaces, and security vulnerabilities. Through careful analysis and practical experience in industrial projects we have developed mechanisms to address each of these aspects of web application testing in TCN-3. These mechanisms are summarized here with examples drawn from our industrial experience to show how TTCN-3 provides significant advantages for testing web applications in comparison to other tools typically used in industry. We also present a significant extension to the model architecture for TTCN-3 which greatly facilitates web application testing that has been implemented by a major vendor and is now under consideration by the ETSI standards committee.','International Journal on Software Tools for Technology Transfer',1,'Bernard StepienLiam Peyton','springer/service oriented architecture security.csv','springer','\0'),(1974,'A Web services vulnerability testing approach based on combinatorial mutation and SOAP message mutation','2014','4',' Web services testing SOAP message mutation Combinatorial testing Mutation operator Vulnerability testing','Abstract The testing of Web services is an essential aspect of their quality assurance, however, because this testing often involves injecting only one mutant at one time, some vulnerability faults cannot be detected. To address this, the current paper presents a set of mutation operators that can be combined and defines the corresponding combinatorial strategies based on data perturbation and combinatorial testing. Based on this, multiple mutants can be injected at one time to help uncover interactive faults. To improve testing efficiency and effectiveness, a combinatorial testing approach focusing on Web service vulnerability is proposed: Firstly, initial test data are generated with perturbation techniques based on Web Services Description Language documents and Simple Object Access Protocol messages. Then, a combinatorial testing cases generation (CTCG) algorithm is used to generate the final combinatorial test data according to the proposed strategies. Furthermore, for some special Web services in which there is only one parameter or one method in service interface, a fuzzy mutation approach algorithm, as a complementary approach to CTCG, is also proposed. Finally, some testing experiments are conducted to verify the effectiveness of the proposed approaches in an integrated testing platform. The experiments show that proposed approaches are both feasible and effective: They can find more vulnerability faults than the traditional approaches.','Service Oriented Computing and Applications',1,'Jinfu ChenQing LiChengying MaoDave ToweyYongzhao ZhanHuanhuan Wang','springer/soa security.csv','springer','\0'),(1975,'WALK: A Modular Testbed for Crowd Evacuation Simulation','2014','0',' Crowd simulation Multi-agent system Pedestrian evacuation','Abstract When large numbers of people gather in public spaces such as stadiums, railway stations, shopping centers and concert halls there is an increased risk of mass emergence and disasters. Critical situations could possibly be prevented with appropriate tools to anticipate them. WALK is a modular designed crowd evacuation simulation system using a multi-agent approach. One major goal of WALK is to provide a framework for the simulation and comparison of different socio-psychological theories to gain essential insights about the emergence of crowd behavior. Moreover, the framework is supposed to allow the simulation of many diverse scenarios. In order to achieve these goals, the system has to offer a maximum level of flexibility by following software engineering best practices. In this paper, we will explain the customizable architecture of WALK, which enables scientists from different fields, e.g. psychology and computer science, to use it as a testbed for their studies.','',1,'Stefan MünchowIa EnukidzeStefan SarstedtThomas Thiel-Clemen','springer/service oriented architecture security.csv','springer','\0'),(1976,'More applicable environmental scanning systems leveraging “modern” information systems','2013','1',' Corporate management Balanced threat and opportunity management “Modern” information system technology Information systems (IS) design','Abstract With Ansoff’s article about weak signals as a flagship example, a substantial body of knowledge about environmental scanning systems exists. However, these concepts often go unused in practice. The 2008/2009 economic crisis provided a strong, ongoing impulse for redesigning such information systems (IS). This article develops six guidelines for the conceptual design of environmental scanning systems that are more applicable than those specified by previous research. We start with literature research, which reveals three gaps in existing approaches. Then we develop design guidelines to fill these gaps with the help of “modern” IS. To address the lack of sound requirements analysis, our first design principle proposes 360-degree environmental scanning systems for executives and suggests how to select the most important scanning areas. Three further findings cover weaknesses in the IS model perspective, focusing on more effective implications of weak signals. In terms of method, we propose incorporating scanning results more closely into executives’ decision-making processes. Applying the design guidelines at a raw materials and engineering company, we arrive at a prototype we call the “corporate radar.” It includes an IS-based tree with economic value added at risk on top. The resulting lessons learned help to evaluate our findings and the research method presented here, as well provide concrete starting points for future research.','Information Systems and e-Business Management',1,'Jörg H. MayerNeon SteineckeReiner QuickTimm Weitzel','springer/service oriented architecture security.csv','springer','\0'),(1977,'Management of Time Requirements in Component-Based Systems','2014','2',' Time requirements component-based system service selection monitoring error recovery','Abstract In component-based systems, a number of existing software components are combined in order to achieve business goals. Some of such goals may include system-level (global) timing requirements (GTR). It is essential to refine GTR into a set of component-level (local) timing requirements (LTRs) so that if a set of candidate components collectively meets them, then the corresponding GTR is also satisfied. Existing techniques for computing LTRs produce monolithic representations, that have dependencies over multiple components. Such representations do not allow for effective component selection and repair. In this paper, we propose an approach for building under-approximated LTRs ( u LTR) consisting of independent constraints over components. We then show how u LTR can be used to improve the design, monitoring and repair of component-based systems under time requirements. We also report on the implementation of this approach and its evaluation using real-world case studies in Web service composition. The results demonstrate its practical value and advantages over existing techniques.','',2,'Yi LiTian Huat TanMarsha Chechik','springer/bpel security.csv','springer',''),(1978,'Orchestration of secure Web Services within an E-government Interoperability Platform','2014','','e-government; esb; interoperability; saml; service orchestration; soa; web services; ws-bpel; ws-security; ws-trust','The Uruguayan e-government agency has made available an Interoperability Platform (InP) with the purpose of facilitating the implementation of e-government services. By leveraging the Web Services technology, public agencies have implemented various atomic services which are usually hosted at the agencies but have to be accessed through proxy services in the InP. Given that the implementation of e-government processes involves invoking multiple services, the mechanisms to implement service orchestrations are increasingly required. Although there are well-known solutions for orchestrating Web Services, their application within the InP presents challenges, in particular, regarding the integration with its Security System. This paper proposes alternatives for implementing orchestrations of secure Web Services within the InP. The proposal consists of a base architecture that can be configured to implement different solution alternatives, enabling its application in other similar scenarios. The proposal was completely prototyped which allowed evaluating some operational aspects of the solution. © 2014 IEEE.','',2,'Penna E., Steffen M., González L., Llambías G.','scopus/bpel security.csv','scopus',''),(1979,'Data Leak Aware Crowdsourcing in Social Network','2013','0',' Social network outsourcing human-computation privacy','Abstract Harnessing human computation for solving complex problems call spawns the issue of finding the unknown competitive group of solvers. In this paper, we propose an approach called Friendlysourcing to build up teams from social network answering a business call, all the while avoiding partial solution disclosure to competitive groups. The contributions of this paper include (i) a clustering based approach for discovering collaborative and competitive team in social network (ii) a Markov-chain based algorithm for discovering implicit interactions in the social network.','',1,'Iheb Ben AmorSalima BenbernouMourad OuziriMohamed NadifAthman Bouguettaya','springer/service oriented architecture security.csv','springer','\0'),(1980,'A domain-specific language for modelling security objectives in a business process models of SOA applications','2012','17','Business process modelling; Domain specific language; Model driven security; Security goals; Service oriented architecture','Business process modelling is very crucial for enterprises because it give an idea how the business would be operated in the real world and it is important for every stakeholder. SOA is one of the most popular architecture for building Web Information Systems. In current SOA system development practices, security is not defined at the early phases of software development and left on the developer. Properly configuring security requirements in SOA applications is quite difficult for developers because they are not security experts, furthermore SOA security is cross-domain and all required information are not available at downstream phases. The post-hoc, low-level integration of security has a negative impact on resulting SOA applications. Business process modelling is normally performed by the Business Process expert who is not a security expert. Furthermore current business process modelling languages like UML or BPMN do not support the specification of security requirements along the business process modelling. We have presented a DSL, to model the security requirements along the business process model. We are facilitating the Business Process expert to model the security in business process diagram. This security annotated business process model will facilitate the security expert in specifying concrete security implementation. As a proof of work the proposed DSL is applied to the modeling of a typical business process of \"on-line student information system\".','',2,'Saleem M.Q., Jaafar J.B., Hassan M.F.','scopus/bpmn security.csv','scopus',''),(1981,'Design and Evaluation of Collaborative Learning Management System (CLMS) Framework for Teaching Technical Subject','2014','0',' Learning Management System Computer-Supported Collaborative Learning Technical Subject Teaching Rasch Model Measurement Usability testing','Abstract This paper discuss the design and usability testing of a proposed Collaborative Learning Management System (CLMS) framework for technical subject teaching. The design and development of the system are based on ADDIE model. The web based learning platform was assembled using an Open Source Learning Management System (LMS). Sixty five student teachers in Bachelor of Teaching and Design Technology programme participated in the study. The results show that the system is usable to assist collaborative learning activities for teaching technical subject, support classroom learning, support communication with peers and instructors, increases motivation to discuss course work, coordinates learning materials and able to recall prior knowledge. Technical (Distributed Denial of Service attack (DDoS attack)), low graphic editing skill and netiqutte issues were encountered during the usability testing.','',1,'Siti Rosni Mohamad YusoffNor Azan Mat Zin','springer/service oriented architecture security.csv','springer','\0'),(1982,'Secure business process modelling of SOA applications using \"UML-SOA-Sec\"','2012','6','Business process modelling; Domain specific language; Model driven architecture; Security goals; Service oriented architecture; Unified modelling language','Nowadays enterprises are implementing their WIS through SOA using Web services. They are using MDA principles for design and development of WIS and using UML as a modelling language for business process modelling. Along with the increased connectivity in SOA applications, security risks rise exponentially. Security is not defined during the early phases of system development and left onto the developer. Properly configuring security requirements in SOA applications is quite difficult for developers because they are not security experts. Furthermore, SOA security is cross-domain and all required information is not available at downstream phases. Moreover, focus of the currently available security standards and protocols is technology; they do not provide high level of abstraction. Furthermore, a business process expert, who is the actual stakeholder of the business process model is unable to specify security objectives due to lake of security modelling elements in general purpose modelling languages like UML. As a result, he/she either ignores the security intents in his/her model or indicates them, in textual way. We are fostering the specification of security intents at high level of abstraction by presenting a security intents DSL containing the essential SOA security objective. It is a UML profile where security intents can be modeled as stereotypes on UML modelling elements during the business process modelling. Aim is to facilitate the business process expert in modelling the security requirements along with the business process modelling. This security annotated business process model will facilitate the security expert in specifying the concrete security implementation. As a proof of work vie apply our approach to a typical business process of \"on-line flight booking system\". © 2012 ICIC International.','',1,'Saleem M.Q., Jaafar J., Hassan M.F.','scopus/service oriented architecture security.csv','scopus','\0'),(1983,'Obtaining secure BPEL from secure business process specified with BPMN','2014','','BPEL; Business Process; Secure Business Process','Business Processes are an important resource for performance on business competitiveness. The Business Process descriptions made; with BPMN (Business Process Modelling Notation), the de facto standard in the market, can be translated into execution languages; such as BPEL (Business Process Execution Language). Originally, BPMN specification does not include the representation of security aspects. However, there are proposals that incorporate security specifications of Business Processes using BPMN. Among these we have considered for describing a SBP (Secure Business Process), incorporating the business analyst\'s perspective in relation to security. However, until now, there are no translations of the SBP to execution languages. In this paper we propose a translation of the security requirements, including access control, defined in a SBP to secure Web services using BPEL language. © 2003-2012 IEEE.','',2,'Márquez G., Rodríguez A., Medina E.F.','scopus/bpel security.csv','scopus',''),(1984,'Secure android application in SOA-based mobile government and mobile banking systems','2014','','Android based mobile phone application; M-banking; M-government; SAML; SOAP protocol; Timestamp; Web Service; WS-Security; XKMS protocol; XML-Security','In this paper, we consider an overview of a possible secure model for m-government and m-banking systems. The proposed model is based on secure mobile application and SOA-Based central platform. The model additionally consists of external entities, such as: PKI, XKMS, Authentication Server and Time Stamping server. The proposed model could be used in different local and/or cross-border m-government scenarios. Besides, specifics of m-banking systems based on the same or similar secure model are also presented. As a possible example of described secure mobile application we considered and experimentally evaluated a secure Android based Web services application. © Springer International Publishing Switzerland 2014.','',1,'Marković M., Đjorđjević G.','scopus/soa security.csv','scopus','\0'),(1985,'Mechanism and architecture for the migration of service implementation during traffic peaks','2015','1',' Service Migration Load balancing Monitoring QoS Traffic peaks Hybrid cloud','Abstract Service-Oriented Architecture has been widely applied in enterprise computing systems for software-enabled services. However, cost efficiency and scalability requirements have moved the execution environment towards the cloud domain. Hybrid approaches have emerged, which utilise both enterprise and cloud domains in order to balance between the cost of service execution and the provided Quality of Service (QoS) for end users. This paper presents a migration, monitoring and load-balancing mechanism and architecture for scaling services between the enterprise and cloud domains during traffic peaks. The argued benefit of the proposal is the automation of the service-migration process and improvement of the QoS. A prototype system is presented as a proof of the conceptual architecture. The performance results in a hybrid cloud environment indicate that service implementation can be migrated and load can be balanced within 200 ms. Furthermore, the mechanism can improve the QoS for end users during traffic peaks. Our approach differs from existing proposals by focusing on the migration of service implementation, instead of the migration of service as part of a virtual machine.','Service Oriented Computing and Applications',1,'Pekka PääkkönenDaniel Pakkala','springer/service oriented architecture security.csv','springer',''),(1986,'Strong Non-leak Guarantees for Workflow Models','2011','9','business process management, information flow analysis, workflow certification','Proceedings of the 2011 ACM Symposium on Applied Computing','',2,'Rafael Accorsi and Claus Wonnemann','acm/bpel security.csv','acm','\0'),(1987,'Context Aware Computing for Ambient Assisted Living','2016','0',' Internet of Things Context aware computing Ambient computing Assistive technologies eHealth Smart home SOA','Abstract With the prevalence of wireless technologies, cloud computing and the rapid growth of deployed smart sensors in the past few years, we live in an increasingly interconnected world. These technologies have fostered the dissemination of the Internet of Things (IoT). They form the foundation for smart homes and smart cities. Context aware devices and ambient computing techniques have expanded the application of the IoT into new areas such as assisted living, eHealth, and elderly care. However, there are challenges to analyze the large volumes of sensor and context data generated by these devices. Also, there are serious security and privacy concerns especially in the area of health care that need to be addressed. This paper gives an overview of the state-of-the-art technologies for ambient assisted living (AAL) and proposes an architecture based on SOA.','',1,'Peter WlodarczakJeffrey SoarMustafa Ally','springer/service oriented architecture security.csv','springer',''),(1988,'Artifact-Centric Modeling Using BPMN','2012','0','','Abstract BPMN offers a rich pool of language constructs to model different aspects of choreographies, interorganizational business processes and service compositions. With collaborations and choreographies, BPMN enables the modeler concentrate on the control flow and the message flow, respectively. At the same time, data flow is only treated as a subordinate extension. In contrast, recent artifact-centric approaches model processes from the point of view of the data objects that are manipulated during the process. This paper investigates to what extend BPMN is suitable to model artifact-centric processes and which extensions are required to comfortably support this modeling approach.','',2,'Niels LohmannMartin Nyolt','springer/bpel security.csv','springer','\0'),(1989,'Service Lifecycle Management in Distributed JBI Environment','2012','1',' Service Lifecycle Java Business Integration Register Repository','Abstract Enterprise Service Bus is widely-used, flexible, SOA-based infrastructure. Lifecycle management is a necessity for component reusing, maintenance, monitoring, as well as service governance. But existing approaches of service lifecycle model and management tools are not suitable for ESB environment, especially for distributed ESB environment. In this paper, we present a lifecycle model for ESB services with the consideration of both JBI components and service assemblies. A web based tool is also introduced to assist administrators to manage and monitor each phase of ESB services lifecycle.','',1,'Ben WangXingshe ZhouGang YangYunfeng Lou','springer/service oriented architecture security.csv','springer','\0'),(1990,'Incorporating Big Data Analytics into Enterprise Information Systems','2015','0',' Big data Big data analytics Enterprise information systems Business intelligence Intelligent agents','Abstract Big data analytics has received widespread attention for enterprise development and enterprise information systems (EIS). However, how can it enhance the development of EIS? How can it be incorporated into EIS? Both are still big issues. This paper addresses these two issues by proposing an ontology of a big data analytics. This paper also examines incorporation of big data analytics into EIS through proposing BABES: a model for incorporating big data analytics services into EIS. The proposed approach in this paper might facilitate the research and development of EIS, business analytics, big data analytics, and business intelligence as well as intelligent agents.','',1,'Zhaohao SunFrancisca PambelFangwei Wang','springer/service oriented architecture security.csv','springer',''),(1991,'Provisioning Quality of Service of Wireless Telemedicine for E-Health Services: A Review','2014','7',' Quality of service Wireless telemedicine E-health services IEEE 802.11','Abstract In general, on-line medical consultation reduces time required for medical consultation and induces improvement in the quality and efficiency of healthcare services. The scope of study includes several key features of present day e-health applications such as X-ray, ECG, video, diagnosis images and other common applications. Moreover, the provision of Quality of Service (QoS) in terms of specific medical care services in e-health, the priority set for e-health services and the support of QoS in wireless networks and techniques or methods aimed at IEEE 802.11 to secure the provision of QoS has been assessed as well. In e-health, medical services in remote places which include rustic healthcare centres, ships, ambulances and home healthcare services can be supported through the applications of e-health services such as medical databases, electronic health data and the transferring of text, video, sound and images. Given this, a proposal has been made for a multiple service wireless networking with multiple sets of priorities. In relation to the terms of an acceptable QoS level by the customers of e-health services, prioritization is an important criterion in a multi-traffic network. The requirement for QoS in medical networking of wireless broadband has paved the way for bandwidth prerequisites and the live transmission or real-time medical applications. The proposed wireless network is capable of handling medical applications for both normal and life-threatening conditions as characterized by the level of emergencies. In addition, the allocation of bandwidth and the system that controls admittance designed based on IEEE 802.16 especially for e-health services or wireless telemedicine will be discussed in this study. It has been concluded that under busy traffic conditions, the proposed architecture can used as a feasible and reliable infrastructure network for telemedicine.','Wireless Personal Communications',1,'Mustafa Almahdi AlgaetZul Azri Bin Muhamad NohAbdul Samad ShibghatullahAli Ahmad MiladAouache Mustapha','springer/service oriented architecture security.csv','springer','\0'),(1992,'2012 10th Annual International Conference on Privacy, Security and Trust, PST 2012','2012','','','The proceedings contain 41 papers. The topics discussed include: single-party private web search; an implementation of secure two-party computation for smartphones with application to privacy-preserving interest-cast; towards privacy-preserving access control with hidden policies, hidden credentials and hidden decisions; exploring re-identification risks in public domains; privacy-preserving resource evaluation in social networks; limiting data collection in application forms: a real-case application of a founding privacy principle; a secure data deduplication framework for cloud environments; an integrated key management and secure routing framework for mobile ad-hoc networks; automated detection of session management vulnerabilities in web applications; towards a BPEL model-driven approach for web services security; out of sight, out of mind: effects of displaying access-control information near the item it controls; and a provenance-based access control model.','',2,'[No author name available]','scopus/bpel security.csv','scopus','\0'),(1993,'Design and Implementation of a Unified Network Information Service','2013','2','networks;web services','A holistic view of the network is key to the successful operation of many distributed, cloud-based, and service-oriented computing architectures. Supporting network-aware applications and application-driven networks requires a detailed representation of network resources, including multi-layer topologies, associated measurement data, and in-the-network service location and availability information. The rapid development of increasingly configurable and dynamic networks has increased the demand for information services that can accurately and efficiently store and expose the state of the network. This work introduces our Unified Network Information Service (UNIS), designed to represent physical and virtual networks and services. We describe the UNIS network data model and its RESTful interface, which provide a common interface to topology, service, and measurement resources. In addition, we describe the security mechanisms built into the UNIS framework. Our analysis of the UNIS implementation shows significant performance and scalability gains over an existing and widely-deployed topology, service registration, and lookup information service architecture.','Services Computing (SCC), 2013 IEEE International Conference on',1,'A. El-Hassany; E. Kissel; D. Gunter; M. Swany','ieee/service oriented architecture security.csv','ieee','\0'),(1994,'A novel autonomic design pattern for invocation of services','2011','6','Autonomic Computing; Design Patterns; JXTA; Peer-to-peer computing; WebService','According to a definition rolled out from the Workshop on Adaptable and Adaptive Software [1] \"A program is called adaptive if it changes its behaviour automatically according to its context.\"Within this context, we restrict our research domain to the automatic runtime adaptation of existing behaviours. In this paper, we propose an Autonomic Design Pattern which is an amalgamation of chain of responsibility and visitor patterns that can be used to analyze or design self-adaptive systems.We harvested this pattern and applied it on unstructured peer to peer networks and Webservices environments. Representation of an operation to be performed on the elements of an object structure is taken from the Visitor pattern and to reduce the coupling between the sender of a request to its receiver by giving more than one object a chance to handle the request is adopted from Chain of responsibility. © 2011 Springer-Verlag.','',1,'Prasad Vasireddy V.S., Mannava V., Ramesh T.','scopus/webservice security.csv','scopus','\0'),(1995,'A Test-based Security Certification Scheme for Web Services','2013','5','Model-based testing, security certification, service-oriented architecture, symbolic transition systems, web services','The Service-Oriented Architecture (SOA) paradigm is giving rise to a new generation of applications built by dynamically composing loosely coupled autonomous services. Clients (i.e., software agents acting on behalf of human users or service providers) implementing such complex applications typically search and integrate services on the basis of their functional requirements and of their trust in the service suppliers. A major issue in this scenario relates to the definition of an assurance technique allowing clients to select services on the basis of their nonfunctional requirements and increasing their confidence that the selected services will satisfy such requirements. In this article, we first present an assurance solution that focuses on security and supports a test-based security certification scheme for Web services. The certification scheme is driven by the security properties to be certified and relies upon a formal definition of the service model. The evidence supporting a certified property is computed using a model-based testing approach that, starting from the service model, automatically generates the test cases to be used in the service certification. We also define a set of indexes and metrics that evaluate the assurance level and the quality of the certification process. Finally, we present our evaluation toolkit and experimental results obtained applying our certification solution to a financial service implementing the Interactive Financial eXchange (IFX) standard.','',1,'Marco Anisetti and Claudio A. Ardagna and Ernesto Damiani and Francesco Saonara','acm/service oriented architecture security.csv','acm',''),(1996,'Collaborative recommendations with content-based filters for cultural activities via a scalable event distribution platform','2012','4',' Recommender system Personalization Event modeling Distributing event information','Abstract Nowadays, most people have limited leisure time and the offer of (cultural) activities to spend this time is enormous. Consequently, picking the most appropriate events becomes increasingly difficult for end-users. This complexity of choice reinforces the necessity of filtering systems that assist users in finding and selecting relevant events. Whereas traditional filtering tools enable e.g. the use of keyword-based or filtered searches, innovative recommender systems draw on user ratings, preferences, and metadata describing the events. Existing collaborative recommendation techniques, developed for suggesting web-shop products or audio-visual content, have difficulties with sparse rating data and can not cope at all with event-specific restrictions like availability, time, and location. Moreover, aggregating, enriching, and distributing these events are additional requisites for an optimal communication channel. In this paper, we propose a highly-scalable event recommendation platform which considers event-specific characteristics. Personal suggestions are generated by an advanced collaborative filtering algorithm, which is more robust on sparse data by extending user profiles with presumable future consumptions. The events, which are described using an RDF/OWL representation of the EventsML-G2 standard, are categorized and enriched via smart indexing and open linked data sets. This metadata model enables additional content-based filters, which consider event-specific characteristics, on the recommendation list. The integration of these different functionalities is realized by a scalable and extendable bus architecture. Finally, focus group conversations were organized with external experts, cultural mediators, and potential end-users to evaluate the event distribution platform and investigate the possible added value of recommendations for cultural participation.','Multimedia Tools and Applications',2,'Toon De PessemierSam CoppensKristof GeebelenChris VleugelsStijn BannierErik MannensKris VanheckeLuc Martens','springer/bpel security.csv','springer','\0'),(1997,'Autonomic intelligent cyber-sensor to support industrial control network awareness','2014','4','Autonomic computing; control systems; industrial ecosystems; Network security; service-oriented architecture','The proliferation of digital devices in a networked industrial ecosystem, along with an exponential growth in complexity and scope, has resulted in elevated security concerns and management complexity issues. This paper describes a novel architecture utilizing concepts of autonomic computing and a simple object access protocol (SOAP)-based interface to metadata access points (IF-MAP) external communication layer to create a network security sensor. This approach simplifies integration of legacy software and supports a secure, scalable, and self-managed framework. The contribution of this paper is twofold: 1) A flexible two-level communication layer based on autonomic computing and service oriented architecture is detailed and 2) three complementary modules that dynamically reconfigure in response to a changing environment are presented. One module utilizes clustering and fuzzy logic to monitor traffic for abnormal behavior. Another module passively monitors network traffic and deploys deceptive virtual network hosts. These components of the sensor system were implemented in C++ and PERL and utilize a common internal D-Bus communication mechanism. A proof of concept prototype was deployed on a mixed-use test network showing the possible real-world applicability. In testing, 45 of the 46 network attached devices were recognized and 10 of the 12 emulated devices were created with specific operating system and port configurations. In addition, the anomaly detection algorithm achieved a 99.9% recognition rate. All output from the modules were correctly distributed using the common communication structure. © 2012 IEEE.','',1,'Vollmer T., Manic M., Linda O.','scopus/service oriented architecture security.csv','scopus','\0'),(1998,'A K-BPEL Semantics','2015','0','BPEL, Business Process, K-Framework, Maude','Proceedings of the International Conference on Intelligent Information Processing, Security and Advanced Communication','',2,'Khadhir Bekki and Hafida Belbachir and Wafaa Kasri','acm/bpel security.csv','acm',''),(1999,'Enhanced hospital information system by cloud computing: SHEFA\'A','2014','','Cloud computing; Healthcare; Hl7; Patient medical records','Information Technology is an important part of the healthcare environment. Accuracy and integrity of the information in any hospital system is necessary. Then, this information has to be up-to-date as well to achieve continuous quality improvement in any organization and particularly in a complex area like healthcare. Therefore, diverse information systems must be integrated across the healthcare enterprise. The main objective of this research is to develop a framework for the exchange of patients records located in different hospitals in Saudi Arabia, adding insurance and prescriptions information along with the patient\'s record to facilitate the insurance process and to automate the medicine prescription process that is currently manual in most hospitals. The proposed framework aims to improve the regular ways of obtaining patients medical records separated in each hospital. For instance, if a particular patient has different medical records in different hospitals visited by that patient, our architecture focuses on the method by which data should be searched and retrieved efficiently from a database on the cloud from different hospitals by preprocessing the data in current hospital\'s and saving them in the database that resides on the cloud. Our system design is based on cloud computing service oriented architecture. Some of the information included in these medical records is: medical history, prescribed medications and allergies, immunization status, laboratory and test results, radiology images, personal stats like age and weight, diagnoses, order tests and appointments. All of these records are identified by the national ID of the patient. these systems will be utilized by web services asp.net based framework, the doctor will use his/her ID and password to enter the system for security and then enter the patient\'s ID to send a request for that patient\'s record that will be sent back to the doctor, the record will be up-to-date since the last visit of the patient to any hospital in Saudi Arabia. The main aim of this study is to provide a data exchange model of patients records, it is used to decrease the time and cost of patients, and help doctors to get up-to-date and accurate information of patients from the records from any hospital in Saudi Arabia. By using e-Patient medical records and Mirth Connect program which use HEALTH LEVEL 7 (HL7) protocol. HL7 protocol is a standard information format of healthcare for data exchange. We provide a single, complete automated patient medical record to give a better patient care that avoids medical mistakes due to lack of information and unavailability of medical records. © Springer International Publishing Switzerland 2014.','',1,'Ibrahim L.F., Sadek S., Hakeem S., Al-Sabban L., Ibrahim Mohammed Ahmed A., Hassan Al-Sayed A.','scopus/service oriented architecture security.csv','scopus','\0'),(2000,'Towards a TTCN-3 Test System for Runtime Testing of Adaptable and Distributed Systems','2012','4','','Abstract Today, adaptable and distributed component based systems need to be checked and validated in order to ensure their correctness and trustworthiness when dynamic changes occur. Traditional testing techniques can not be used since they are applied during the development phase. Therefore, runtime testing is emerging as a novel solution for the validation of highly dynamic systems at runtime. In this paper, we illustrate how a platform independent test system based on the TTCN-3 standard can be used to execute runtime tests. The proposed test system is called TT4RT: TTCN-3 test system for Runtime Testing. A case study in the telemedicine field is used as an illustration to show the relevance of the proposed test system.','',1,'Mariam LahamiFairouz FakhfakhMoez KrichenMohamed Jmaiel','springer/service oriented architecture security.csv','springer','\0'),(2001,'Efficient modular multiplication for programmable smart-cards','2014','0',' Cryptography Modular arithmetic Multiplication .NET RSA Smart-cards','Abstract In this paper, we deal with efficient modular multiplication algorithms working with large integers on programmable smart-cards. The current smart-cards don’t contain a library supporting modular arithmetic operations, which is needed in advanced cryptography schemes. Fortunately, the smart-cards contain a crypto co-processor providing a cryptographic support that can help with the acceleration of modular multiplication. The performance of three classical methods for modular multiplication with large integers and one method using a crypto co-processor is analyzed in this paper. The results of our implementation of modular arithmetic operations with the accelerated multiplication can be useful for the construction of advanced cryptographic schemes.','Telecommunication Systems',1,'Lukas MalinaJan Hajny','springer/service oriented architecture security.csv','springer','\0'),(2002,'Security framework for RESTful mobile cloud computing Web services','2015','0',' Mobile cloud Web services RESTful-based mobile Web services Secure mobile cloud Web service framework','Abstract Providing Web services from the mobile cloud is a current research topic. The mobile cloud provides the computing resources and infrastructure to support the seamless provision of Web services in a lightweight manner. Security has become a major concern with the emergence of mobile cloud Web services. In this paper, we investigate the security aspects of a system for complex mobile Web service provisioning. We characterize the security requirements of the individual components and present a security framework to provide authentication and confidentiality between clients and mobile hosts. Our solution is based on the use of existing security protocols between clients and the mobile hosts as well as a key management protocol between the individual mobile hosts implementing an out-of-band key exchange that is simple in practice, flexible and secure. We examine the performance of this approach by evaluating a prototype implementation of our security framework.','Journal of Ambient Intelligence and Humanized Computing',1,'Feda AlShahwanMaha FaisalGodwin Ansa','springer/soa security.csv','springer',''),(2003,'QoS management for dependable sensory environments','2015','2',' Quality of service Service component architecture Data distribution service Fault tolerance Safety','Abstract Sensory environments for healthcare are commonplace nowadays. A patient monitoring system in such an environment deals with sensor data capture, transmission and processing in order to provide on-the-spot support for monitoring the vulnerable and critical patients. A fault in such a system can be hazardous on the health of the patient. Therefore, such a system must be dependable and ensure reliability, fault-tolerance, safety and other critical aspects, in order to deploy it in real scenario. Also, the management of the infrastructure resources must be efficient and the eventual system reconfiguration must be reliably performed. This paper encounters some of these issues and proposes a component platform with specific support for several QoS aspects, namely fault tolerance, safe inter-component communication and resource management. The platform adopts the Service Component Architecture (SCA) model and defines a Data Distribution Service (DDS) binding, which provides the fault tolerance and the required safety-ensuring techniques and measures, as defined in the IEC 61784-3-3 standard. As a proof of concept, a distributed home care application that improves the medical assistance in case of fire detection is presented.','Multimedia Tools and Applications',2,'Aitor AgirreJorge ParraAintzane ArmentiaAhmed GhoneimElisabet EstévezMarga Marcos','springer/bpel security.csv','springer',''),(2004,'Simplifying Maintenance by Application of Architectural Services','2014','0',' service-oriented architecture software confederations maintenance simplification maintenance effort reduction','Abstract Software maintenance is the most difficult and extremely expensive activity of lifecycle of software systems. We show that maintenance cost estimation depends on many factors that are not taken into account by widely used maintenance cost estimation methods. The factors include variants of systems architecture, especially service- and component-oriented ones, variants of software development processes, communication means, and the software artifact maintenance duration and history. We present an analysis of reasons and sources of maintenance effort needs. We show that the maintenance issues and effort can be substantially reduced in systems having a special form of service-oriented architecture — software confederations.','',1,'Jaroslav KrálMichal Žemlička','springer/service oriented architecture security.csv','springer','\0'),(2005,'Towards an Architecture for Future Internet Applications','2013','1',' Internet Architecture Multi-Device Applications Device-Independent Applications Cross-Platform Applications UI Adaptation Internet of Things Internet of Services Internet Middleware','Abstract A growing number of connected devices and solutions, related to the concept of Internet of Things, makes our environment increasingly smart and capable. However, existing application development processes and tools, designed for single device applications, do not allow to fully address this opportunity and to efficiently create applications that employ multiple devices and use the context information provided by ubiquitous sensors. To address this situation we propose a concept of Device Independent Architecture, which can be used to separate applications from devices and to provide a uniform platform for building smart multi-device applications. The main ideas of the Device Independent Architecture is to move processing from end-devices to a server side (backend) and to introduce a middleware layer that separates applications from devices and supports development of multi-device applications.','',1,'Jacek Chmielewski','springer/service oriented architecture security.csv','springer','\0'),(2006,'IF-Net: A Meta-Model for Security-Oriented Process Specification','2013','0','','Abstract In this paper we propose a new Petri net-based meta-model for the specification of workflows. While existing approaches for workflow modeling typically address the consistency of process models, there is no de-facto standard for models which also comprise security-related aspects. Besides basic workflow properties such as executing subjects and transition guards, the proposed IF-Net approach allows net parts to be annotated with security levels in a way that information flow control mechanisms can be applied. By introducing distinguishable token types, IF-Net allows the modeling of both, the control- and data-flow of a workflow in an intuitive way. Altogether IF-Net allows the specification of workflows in a detailed way and provides a basis for the formal verification of security properties on these specifications.','',2,'Thomas StockerFrank Böhr','springer/bpmn security.csv','springer','\0'),(2007,'Finding Collective Decisions: Change Negotiation in Collaborative Business Processes','2015','0','','Abstract Change propagation has been identified as major concern for process collaborations during the last years. Although changes might become necessary for various reasons, they can often not be kept local, i.e., at one partner’s side, but must be partly or entirely propagated to one or several other partners. Due to the autonomy of partners in a collaboration, change effects cannot be imposed on the partners, but must be agreed upon in a consensual way. In our model of this collective decision process, we assume that each partner that becomes involved in a negotiation has different alternatives on how a change may be realized, and evaluates these alternatives according to his or her individual costs and benefits (utilities). This paper presents models from group decision making that can be applied for handling change negotiations in process collaborations in an efficient and fair way. The theoretical models are evaluated based on a proof-of-concept prototype that integrates an existing implementation for change propagation in process collaborations with change alternatives, utility functions, and group decision models. Based on simulating a realistic setting, the validity of the approach is shown. Our prototype supports the selection of change alternatives for each partner during negotiation that depending on the group decision model used, provides solutions emphasizing efficiency and/or fairness.','',2,'Walid FdhilaConrad IndionoStefanie Rinderle-MaRudolf Vetschera','springer/bpel security.csv','springer',''),(2008,'Service fault tolerance for highly reliable service-oriented systems: an overview','2015','1',' fault tolerance software reliability Web service SOA 关键词 容错 软件可靠性 网络服务 面向服务架构','Abstract Service-oriented systems are widely-employed in e-business, e-government, finance, management systems, and so on. Service fault tolerance is one of the most important techniques for building highly reliable service-oriented systems. In this paper, we provide an overview of various service fault tolerance techniques, including sections on fault tolerance strategy design, fault tolerance strategy selection, and Byzantine fault tolerance. In the first section, we introduce the design of static and dynamic fault tolerance strategies, as well as the major problems when designing fault tolerance strategies. After that, based on various fault tolerance strategies, in the second section, we identify significant components from a complex service-oriented system, and investigate algorithms for optimal fault tolerance strategy selection. Finally, in the third section, we discuss a special type of service fault tolerance techniques, i.e., the Byzantine fault tolerance.','Science China Information Sciences',1,'ZiBin ZhengMichael Rung Tsong LyuHuaiMin Wang','springer/soa security.csv','springer',''),(2009,'Towards a Holistic Information Security Governance Framework for SOA','2012','1','27001;27002;ISMS;SABSA;SOA;governance','Service Oriented Architecture (SOA) is a design paradigm that enables applications to be built from business processes to support enterprise architecture. This architecture introduces information security challenges that are not comprehensively addressed by current best-practices. This paper evaluates if an Information Security Management System (ISMS), defined by the international standard ISO/IEC 27001 and 27002 can be used to comprehensively support Information Security governance for SOA. As SOA governance, a separate and distinct governance framework, also addresses information security to a certain extent, managers are faced the difficult task of deciding whether their SOA sufficiently protected by the different frameworks. The conclusion is that information security for SOA needs to be addressed more holistically, following an Enterprise Information Security Architecture (EISA) approach where Enterprise Architecture (EA) is concerned with the design of the overall architectural vision of an organization. The framework chosen for this purpose is SABSA, a well-known enterprise security architecture. Using the example of access control to highlight challenges, it becomes clear that Information Security governance for SOA can benefit from an approach such as SABSA.','Availability, Reliability and Security (ARES), 2012 Seventh International Conference on',1,'M. Coetzee','ieee/service oriented architecture security.csv','ieee','\0'),(2010,'A Framework for Cryptography Based Accountability and Service Invocation Control for Service Composition in a Multicloud Architecture','2015','','Cloud Accountability;cloud trust;nonrepudiation;proof of violation;security','In this paper we address how to achieve cryptography based accountability and service invocation control in a multicloud architecture. The detection and prevention of failures for a composed service is complicated because service composition spans multiple service providers from different and independent clouds for inter-cloud collaborations. Our system supports strong accountability in which any failure or misbehavior can always be identified and associated with responsible (or guilty) entity(s) because cryptographic proofs are collected during dynamic service composing. These proofs can also be applied to service invocation control. Compared with previous work, the proposed framework does not rely on any on-line or in-line trust third party. Implementation and experimental results are presented that demonstrate the feasibility of the proposed scheme.','Trustcom/BigDataSE/ISPA, 2015 IEEE',1,'G. H. Hwang; K. Y. Huang; Y. C. Hsiao','ieee/service oriented architecture security.csv','ieee',''),(2011,'Modeling, run-time optimization and execution of distributed workflow applications in the JEE-based BeesyCluster environment','2013','11',' Workflow execution Just-in-time service selection Workflow management environment Workflow applications Scientific and business workflows','Abstract The paper presents a complete solution for modeling scientific and business workflow applications, static and just-in-time QoS selection of services and workflow execution in a real environment. The workflow application is modeled as an acyclic directed graph where nodes denote tasks and edges denote dependencies between the tasks. The BeesyCluster middleware is used to allow providers to publish services from sequential or parallel applications, from their servers or clusters. Optimization algorithms are proposed to select a capable service for each task so that a global criterion is optimized such as a product of workflow execution time and cost, a linear combination of those or minimization of the time with a cost constraint. The paper presents implementation details of the multithreaded workflow execution engine implemented in JEE. Several tests were performed for three different optimization goals for two business and scientific workflow applications. Finally, the overhead of the solution is presented.','The Journal of Supercomputing',2,'Pawel Czarnul','springer/bpel security.csv','springer',''),(2012,'A secure cloud-based payment model for m-Commerce','2013','','Cloud security; Mobile payment; Web services','Instead of paying by cash, check, or credit cards, consumers can also use their mobile devices to pay for a wide range of services and digital or material goods. However, consumers\' security concerns are a major barrier to broad adoption and use of mobile payments. In this paper, we design a secure operational model for mobile payment in which access control is based on service-oriented architecture. A consumer uses his/her mobile device to get authorization from cloud and generate a QR code as the payment certificate. 1 © 2013 IEEE.','',1,'Chang T.-K.','scopus/service oriented architecture security.csv','scopus','\0'),(2013,'Indexing Process Model Flow Dependencies for Similarity Search','2012','0',' semantic process models process similarity search process indexing','Abstract The importance gained by process models in modern information systems leaded to the proliferation of process model repositories. Retrieving process models within such repositories is a critical functionality. Recent works propose metrics that rank process models of a repository according to their similarity to a given query. However, these methods sequentially browse all the processes of the repository and compare each one against the query, which is computationally expensive. This paper presents a technique for quickly retrieving process models similar to a given query that relies on an index built on behavioral characteristics of process models.','',2,'Ahmed GaterDaniela GrigoriMokrane Bouzeghoub','springer/bpel security.csv','springer','\0'),(2014,'Domain-Specific Multi-modeling of Security Concerns in Service-Oriented Architectures','2012','0','','Abstract As a common reference for many in-development standards and execution frameworks, special attention is being paid to Service-Oriented Architectures. SOAs modeling, however, is an area in which a consensus has not being achieved. Currently, standardization organizations are defining proposals to offer a solution to this problem. Nevertheless, until very recently, non-functional aspects of services have not been considered for standardization processes. In particular, there exists a lack of a design solution that permits an independent development of the functional and non-functional concerns of SOAs, allowing that each concern be addressed in a convenient manner in early stages of the development, in a way that could guarantee the quality of this type of systems. This paper, leveraging on previous work, presents an approach to integrate security-related non-functional aspects (such as confidentiality, integrity, and access control) in the development of services.','',1,'Juan Pedro Silva GallinoMiguel de MiguelJavier F. BrionesAlejandro Alonso','springer/service oriented architecture security.csv','springer','\0'),(2015,'Dynamic Service Contract Enforcement in Service-Oriented Networks','2013','3','Service-oriented networks;appliance cluster;contract enforcement;credit-based algorithm;middleware appliances;service traffic shaping;web services','In recent years, service-oriented architectures (SOA) have emerged as the main solution for the integration of legacy systems with new technologies in the enterprise world. A service is usually governed by a client service contract (CSC) that specifies, among other requirements, the rate at which a service should be accessed, and limits it to no more than a number of service requests during an observation period. Several approaches, using both static and dynamic credit-based strategies, have been developed to enforce the rate specified in the CSC. Existing approaches have problems related to starvation, approximations used in calculations, and rapid credit consumption under certain conditions. In this paper, we propose and validate DoWSS, a doubly weighted algorithm for service traffic shaping. We show via simulation that DoWSS possesses several advantages: It eliminates the approximation issues, prevents starvation, and contains the rapid credit consumption issue in existing credit-based approaches.','IEEE Transactions on Services Computing',1,'Y. Jarma; K. Boloor; M. D. de Amorim; Y. Viniotis; R. D. Callaway','ieee/service oriented architecture security.csv','ieee','\0'),(2016,'SAMI: Service-based arbitrated multi-tier infrastructure for Mobile Cloud Computing','2012','21','','Mobile Cloud Computing (MCC) is the state-of-the-art mobile computing technology aims to alleviate resource poverty of mobile devices. Recently, several approaches and techniques have been proposed to augment mobile devices by leveraging cloud computing. However, long-WAN latency and trust are still two major issues in MCC that hinder its vision. In this paper, we analyze MCC and discuss its issues. We leverage Service Oriented Architecture (SOA) to propose an arbitrated multi-tier infrastructure model named SAMI for MCC. Our architecture consists of three major layers, namely SOA, arbitrator, and infrastructure. The main strength of this architecture is in its multi-tier infrastructure layer which leverages infrastructures from three main sources of Clouds, Mobile Network Operators (MNOs), and MNOs\' authorized dealers. On top of the infrastructure layer, an arbitrator layer is designed to classify Services and allocate them the suitable resources based on several metrics such as resource requirement, latency and security. Utilizing SAMI facilitate development and deployment of service-based platform-neutral mobile applications. © 2012 IEEE.','',1,'Sanaei Z., Abolfazli S., Gani A., Shiraz M.','scopus/service oriented architecture security.csv','scopus',''),(2017,'Reference Monitors for Security and Interoperability in OAuth 2.0','2014','0',' Aspect oriented programming Interoperability OAuth protocol Reference monitor Security Type system','Abstract OAuth 2.0 is a recent IETF standard devoted to providing authorization to clients requiring access to specific resources over HTTP. It has been pointed out that this framework is potentially subject to security issues, as well as difficulties concerning the interoperability between protocol participants and application evolution. As we show in this paper, there are indeed multiple reasons that make this protocol hard to implement and impede interoperability in the presence of different kinds of client. Our main contribution consists in a framework that harnesses a type-based policy language and aspect-based support for protocol adaptation through flexible reference monitors in order to handle security, interoperability and evolution issues of OAuth 2.0. We apply our framework in the context of three scenarios that make explicit variations in the protocol and show how to handle those issues.','',2,'Ronan-Alexandre CherrueauRémi DouenceJean-Claude RoyerMario SüdholtAnderson Santana de OliveiraYves RoudierMatteo Dell’Amico','springer/bpel security.csv','springer',''),(2018,'Loan System in Brazilian Financial Institution - A SOA Application','2012','0','Financial System;Framework;SOA;Software Architecture;Web Services','With the intention of offering financial products to its customers in a fast, secure and high technological value, the financial institutions has been highlighted by constant investment in the area of Information Technology. This article presents the technology by a Brazilian institution and developed by a software provider, using the Service Oriented Architecture, enabling customers to access the functionalities of a System of Financing and Loan. Through architecture are generated financial affairs with confidence, performance and security that customers expect from a financial institution. Its unique feature is to present the development of mainframe subprograms with the profile of componentization, but without losing original features such as robustness, high performance and information security. Its main contribution is to demonstrate that it is possible to unify completely different platforms in a Service Oriented Architecture, provided that it has focused on the fact that the most important features of each of these platforms are utilized. How was extracted lessons learned that should be followed important points of attention in the definition of the architecture such as not using SOA as hype or without sufficient technical knowledge.','Information Technology: New Generations (ITNG), 2012 Ninth International Conference on',1,'C. G. Bernardo','ieee/service oriented architecture security.csv','ieee','\0'),(2019,'An experimental study on the design and modeling of security concepts in business processes','2013','1','BPMN; Business processes; Empirical evaluation; Icons; Modeling; Security; Visualization','In recent years, business process models are used to define security properties for the corresponding business information systems. In this context, a number of approaches emerged that integrate security properties into standard process modeling languages. Often, these security properties are depicted as text annotations or graphical extensions. However, because the symbols of process-related security properties are not standardized, different issues concerning the comprehensibility and maintenance of the respective models arise. In this paper, we present the initial results of an experimental study on the design and modeling of 11 security concepts in a business process context. In particular, we center on the semantic transparency of the visual symbols that are intended to represent the different concepts (i.e. the one-to-one correspondence between the symbol and its meaning). Our evaluation showed that various symbols exist which are well-perceived. However, further studies are necessary to dissolve a number of remaining issues. © IFIP International Federation for Information Processing 2013.','',2,'Leitner M., Schefer-Wenzl S., Rinderle-Ma S., Strembeck M.','scopus/bpmn security.csv','scopus','\0'),(2020,'An efficient, robust, and secure SSO architecture for cloud computing implemented in a service oriented architecture','2013','2','','Implementing Single Sign-On (SSO) in a Cloud space for a spectrum of services and applications is an interesting research avenue for scientific communities in the field of secure identity and access management for Cloud Computing. Using an SSO implementation, in the backend, users can navigate any or all of the supported applications or resources without the need to repeatedly provide credentials. In this chapter, the authors present an efficient and robust Cloud Single Sign-On Architecture (CSSOA) model based on a token security mechanism. Service Oriented Architectures (SOAs) are one of the enabling technologies for solving complex service oriented real world challenges, and hence, CSSOA has been implemented using SOAs. In the authors\' CSSOA model, a CSSO SOAP authentication service is distributed among the Cloud servers while the CSSO database service is centralized. © 2013, IGI Global.','',1,'Ahmed K., Hussain A., Gregory M.A.','scopus/service oriented architecture security.csv','scopus','\0'),(2021,'Semantics-Based Approach for Dynamic Evolution of Trust Negotiation Protocols in Cloud Collaboration','2014','0',' Trust Negotiation Semantics Content Evolution Protocol','Abstract Many techniques for addressing trust negotiation issues is little concerned with managing the dynamic evolution of trust negotiation protocols (policies), particularly in cases where there exist ongoing negotiations when a protocol has been changed. We propose an approach that automatically determines how consequences of changing a protocol affect ongoing negotiations. In particular, our approach allows to capture the semantics and intention of protocol changes, memorize and apply them in effectively analyzing the impact of protocol changes on negotiations.','',1,'Seung Hwan RyuAbdelkarim ErradiKhaled M. KhanSaleh AlhazbiBoualem Benatallah','springer/service oriented architecture security.csv','springer','\0'),(2022,'EMF Views: A View Mechanism for Integrating Heterogeneous Models','2015','0',' Modeling Viewpoint View Heterogeneity Virtualization','Abstract Modeling complex systems involves dealing with several heterogeneous and interrelated models defined using a variety of languages (UML, ER, BPMN, DSLs, etc.). These models must be frequently combined in different cross-domain perspectives to provide stakeholders the view of the system they need to best perform their tasks. Several model composition approaches have already been proposed addressing this problem. Nevertheless, they present some important limitations concerning efficiency, interoperability and synchronization between the base models and the composed ones. As an alternative we introduce EMF Views, an approach coming with a dedicated language and tooling for defining views on potentially heterogeneous models. Similarly to views in databases, model views are not materialized but instead redirect all model access and manipulation requests to the base models from which they are obtained. This is realized in a transparent way for both the modeler and the other modeling tools using the concerned (meta)models.','',2,'Hugo BruneliereJokin Garcia PerezManuel WimmerJordi Cabot','springer/bpmn security.csv','springer',''),(2023,'Related Concepts','2012','0','','Abstract As mentioned before, Cooperating Objects is an emerging domain that can be identified by the key characteristics of the participating devices and systems, predominantly from the cooperation aspects of the constituted objects that depend both on the virtual as well as real world. Clearly they represent an evolutionary step of pre-existing approaches and built upon them. There are several concepts that share common ground with Cooperating Objects such as Cyber-Physical systems, Internet of Things, Internet of Services, M2M, robotics, system of systems, autonomic systems, etc. In this chapter we focus on the definition of each related area and show the similarities and differences with Cooperating Objects. Additionally we give some examples of domains where Cooperating Objectsplay a pivotal role in order to better make understandable the context they operate on.','',1,'Pedro José MarrónDaniel MinderStamatis Karnouskos','springer/service oriented architecture security.csv','springer','\0'),(2024,'WSSecSpaces: A Secure Data-driven Coordination Service for Web Services Applications','2004','7','Linda, Web Services, coordination languages, security','Proceedings of the 2004 ACM Symposium on Applied Computing','',2,'Roberto Lucchi and Gianluigi Zavattaro','acm/bpel security.csv','acm','\0'),(2025,'Identity Attribute-Based Role Provisioning for Human WS-BPEL Processes','2009','3','access control;identity attributes;privacy;role','The WS-BPEL specification focuses on business processes the activities of which are assumed to be interactions with Web services. However, WS-BPEL processes go beyond the orchestration of activities exposed as Web services. There are cases in which people must be considered as additional participants to the execution of a process. The inclusion of humans, in turn, requires solutions to support the specification and enforcement of authorizations to users for the execution of human activities while enforcing authorization constraints. In this paper, we extend RBAC-WS-BPEL, a role-based authorization framework for WS-BPEL processes with an identity attribute-based role provisioning approach that preserves the privacy of the users who claim the execution of human activities. Such approach is based on the notion of identity records and role provisioning policies, and uses Pedersen commitments, aggregated zero knowledge proof of knowledge, and Oblivious Commitment-Based Envelope protocols to achieve privacy of user identity information.','Web Services, 2009. ICWS 2009. IEEE International Conference on',2,'F. Paci; R. Ferrini; E. Bertino','ieee/bpel security.csv','ieee','\0'),(2026,'The research of a resource-aware cloud computing architecture based on web security','2012','0','Cloud computing architecture;Linear regression model;Resource-aware;Self-adaptive;Web security','Web hosting has a lot of problems, such as low security, waste of bandwidth resource or sudden lack of resource. A self-adaptive cloud computing architecture - RA-Cloud architecture (Resource-aware Cloud Computing Architecture) based on web security in resource-aware situation is proposed. This architecture uses cloud computing technology and self-adaptive linear regression model to estimate the dynamic migration threshold and to search the most suitable neighbor node for data migration. This platform and algorithm distributes the huge amount of computing resource to many server “end” according to the resource constrained self-adaptive policy. The new method increases the user access speed, enhances the anti-attack ability, blocks the attacks effectively and improves the web site security.','2012 IEEE 2nd International Conference on Cloud Computing and Intelligence Systems',1,'X. Wang; X. Gao','ieee/service oriented architecture security.csv','ieee','\0'),(2027,'Policy4TOSCA: A Policy-Aware Cloud Service Provisioning Approach to Enable Secure Cloud Computing','2013','2',' Cloud Computing TOSCA Cloud Service Cloud Management Policy-Framework Security Green-IT Sustainable Cloud Service','Abstract With the growing adoption of Cloud Computing, automated deployment and provisioning systems for Cloud applications are becoming more prevalent. They help to reduce the onboarding costs for new customers as well as the financial impact of managing Cloud Services by automating these previously manual tasks. With the widespread use of such systems, the adoption of a common standard for describing Cloud applications will provide a crucial advantage by enabling reusable and portable applications. TOSCA, a newly published standard by OASIS with broad industry participation provides this opportunity. Besides the technical requirements of running and managing applications in the cloud, non-functional requirements, like cost, security, and environmental issues, are of special importance when moving towards the automated provisioning and management of Cloud applications. In this paper we demonstrate how non-functional requirements are defined in TOSCA using policies. We propose a mechanism for automatic processing of these formal policy definitions in a TOSCA runtime environment that we have developed based on the proposed architecture of the TOSCA primer. In order to evaluate our approach, we present prototypical implementations of security policies for encrypting databases and for limiting the geographical location of the Cloud servers. We demonstrate how our runtime environment is ensuring these policies and show how they affect the deployment of the application.','',2,'Tim WaizeneggerMatthias WielandTobias BinzUwe BreitenbücherFlorian HauptOliver KoppFrank LeymannBernhard MitschangAlexander NowakSebastian Wagner','springer/bpel security.csv','springer','\0'),(2028,'Data mining for web-based support systems: A case study in e-custom systems','2015','','','This chapter provides an example of a Web-based support system (WSS) used to streamline trade procedures, prevent potential security threats, and reduce tax-related fraud in cross-border trade. The architecture is based on a service-oriented architecture that includes smart seals and Web services. We discuss the implications and suggest further enhancements to demonstrate how such systems can move toward a Web-based decision support system with the support of data mining methods. We provide a concrete example of how data mining can help to analyze the vast amount of data collected while monitoring the container movements along its supply chain. © Springer-Verlag London Limited 2010.','',1,'Razmerita L., Kirchner K.','scopus/service oriented architecture security.csv','scopus',''),(2029,'The arrowhead approach for SOA application development and documentation','2014','3','Documentation Templates;Service-Oriented Architectures;Services;System-of-Systems;Systems','The Arrowhead project aims to address the technical and applicative issues associated with cooperative automation based on Service Oriented Architectures. The problems of developing such kind of systems are mainly due to the lack of adequate development and service documentation methodologies, which would ease the burden of reusing services on different applications. The Arrowhead project proposes a technical framework to efficiently support the development of such systems, which includes several tools for documentation of services and to support the development of SOA-based installations. The work presented in this paper describes the approach which has been developed for the first generation pilots to support the documentation of their structural services. Each service, system and system-of-systems within the Arrowhead Framework must be documented and described in such way that it can be implemented, tested and deployed in an interoperable way. This paper presents the first steps of realizing the Arrowhead vision for interoperable services, systems and systems-of-systems.','IECON 2014 - 40th Annual Conference of the IEEE Industrial Electronics Society',1,'F. Blomstedt; L. L. Ferreira; M. Klisics; C. Chrysoulas; I. M. de Soria; B. Morin; A. Zabasta; J. Eliasson; M. Johansson; P. Varga','ieee/service oriented architecture security.csv','ieee','\0'),(2030,'Service Brokering in Cloud Governance','2012','2','Cloud governance;cloud computing;cloud ontology;semantic services;service brokering','The dawn of Cloud Computing has opened new opportunities for IT-based industries, enabling them to cut costs and extend their businesses to a level which was previously hard to attain. While Cloud adoption is an ongoing process, many enterprises are still reluctant to pursue it because its downside outweighs its benefits, especially due to problems related to security and privacy. Coming from Service Oriented Architecture (SOA) Governance, Cloud Governance aims to cover these issues by offering a set of complementary services to the already available Cloud Management ones. This paper covers one of the core aspects of Cloud Governance, its ability to provide service brokering. A semantic approach is proposed where related services and cloud ontologies as well as brokering mechanisms are discussed.','Symbolic and Numeric Algorithms for Scientific Computing (SYNASC), 2012 14th International Symposium on',1,'V. I. Munteanu; C. Mindruta; T. F. Fortis','ieee/service oriented architecture security.csv','ieee','\0'),(2031,'Security: A major threat for web services','2012','2','SAML; SOA; UDDI; WSDL; XML','In recent years, web services have become a new concept over the open, complex internet applications. Service Oriented Architecture (SOA) is a computing paradigm emphasizing dynamic service discovery, composition, and interoperability. Web services is a technology that can be used to implement Service Oriented Architecture. XML based Web services are becoming a more pervasive foundation technology for integrating applications and exchanging data in service oriented architectures. The security issues of Web Services in a distributed environment are a major concern of research. Web Services will never attain their tremendous potential unless we learn how to manage the associated risks. In this paper we present our complete study on the security concerns associated with web services. © 2012 IEEE.','',1,'Balasubramanian N., Ruba A.','scopus/service oriented architecture security.csv','scopus','\0'),(2032,'An Approach for Efficiently Combining Real-Time and Past Events for Ubiquitous Business Processing','2015','0',' Complex Event Processing Publish/Subscribe Resource Description Framework (RDF) SPARQL protocol and RDF query language (SPARQL)','Abstract Nowadays, datasets become larger and larger. As stated by Eric Schmidt, every two days now we create as much or more information as we did from the dawn of civilization up until 2003. Thus, the question is how to make good use of such big data. A solution is Complex Event Processing (CEP) engines that propose to correlate realtime, contextual and past information. In this paper we propose a new architecture that leverages existing research done in Publish/Subscribe systems and CEP engines with the idea to federate them in order to scale to the load that could be encountered in todays ubiquitous events workloads.','',1,'Laurent PellegrinoIyad AlshabaniFrançoise BaudeRoland StühmerNenad Stojanovic','springer/service oriented architecture security.csv','springer',''),(2033,'ADAGE: a framework for supporting user-driven ad-hoc data analysis processes','2012','4',' SOA applications Data-intensive science Business process modeling User-driven composition High-frequency data Financial market data Time series analysis Event processing systems Thomson Reuters ADAGE Mathematics Subject Classification 68M01','Abstract Data analysis is an important part of the scientific process carried out by domain experts in data-intensive science. Despite the availability of several software tools and systems, their use in combination with each other for conducting complex types of analyses is a very difficult task for non-IT experts. The main contribution of this paper is to introduce an open architectural framework based on service-oriented computing (SOC) principles called the Ad-hoc DAta Grid Environment (ADAGE) framework that can be used to guide the development of domain-specific problem-solving environments or systems to support data analysis activities. Through an application of the ADAGE framework and a prototype implementation that supports the analysis of financial news and market data, this paper demonstrates that systems developed based on the framework allow users to effectively express common analysis processes. This paper also outlines some limitations as well as avenues for future research.','Computing',2,'Fethi A. RabhiLawrence YaoAdnene Guabtni','springer/bpmn security.csv','springer','\0'),(2034,'Integrity and Confidentiality Annotations for Service Interfaces in SoaML Models','2011','1','Model-Driven Development;Security Engineering;Service-Oriented Architecture;SoaML;UML;Web Services','This paper presents an approach for incorporating data integrity and data confidentiality into the model-driven development (MDD) of process-driven service-oriented architectures (SOAs) based on the OMG SoaML. Specifications for service interfaces are extended by UML activities to model invocation protocols. An invocation protocol makes the control and the object flows between service invocations explicit. Integrity and confidentiality attributes are used to annotate the object flows. The annotations serve for generating security-aware execution artefacts (e.g., interface description documents, deployment descriptors, and middleware configurations). We applied the approach prototypically in a Web Services platform environment (WS-BPEL, WSDL, WS-Security Policy).','Availability, Reliability and Security (ARES), 2011 Sixth International Conference on',2,'B. Hoisl; S. Sobernig','ieee/bpel security.csv','ieee','\0'),(2035,'Introduction: ERCIM/EWICS/ARTEMIS Workshop on Dependable Embedded and Cyberphysical Systems and Systems-of-Systems (DECSoS’14) at SAFECOMP 2014','2014','0','','Abstract This workshop at SAFECOMP follows already its own tradition since 2006. In the past, it focussed on the conventional type of “embedded systems”, covering all dependability aspects (in the meaning of IFIP WG 10.4, defined by Avizienis, Lapries, Kopetz, Voges and others). To emphasize more the relationship to physics, mechatronics and the notion of interaction with an unpredictable environment, the terminology changed to “cyber-physical systems” (CPS). Collaboration and co-operation of these systems with each other and humans, and the interplay of safety and security are leading to new challenges in verification, validation and certification/qualification.','',1,'Erwin SchoitschAmund Skavhaug','springer/service oriented architecture security.csv','springer','\0'),(2036,'Enhancing service federation trustworthiness through online testing','2012','13','(role)CAST; Online compliance testing; Role-based access control; Service federations; Service-oriented architectures; Trustworthiness; ZXID','Security, data protection, trust management, authentication, and authorization are crucial assets in the Internet of Services. Online testing enhances trustworthiness among federated services that are often independently developed, deployed, and maintained. © 2012 IEEE.','',1,'Bertolino A., De Angelis G., Kellomäki S., Polini A.','scopus/service oriented architecture security.csv','scopus','\0'),(2037,'Policy on literature content based on software as service','2015','3',' Software as a service Literature content Integration management Metadata encoding and transmission specification Metadata object description schema','Abstract Applications based on the software as a service (SaaS) platform that integrate the content of libraries across the country for personal and enterprise users are needed in the future. SaaS–based literature content integration has not yet been done in Korea. Therefore, this paper presents a SaaS application that integrates and manages the content of public organizations or libraries. This paper outlines a SaaS method and content framework for a literature content service that utilizes the metadata encoding and transmission specification and the metadata object description schema as the standard formats.','Multimedia Tools and Applications',1,'Jung-Soo HanKyung-Yong ChungGui-Jung Kim','springer/soa security.csv','springer',''),(2038,'An autonomous middleware model for essential services in distributed mobile applications','2012','','Autonomic Computing; Mobile Middleware; SOA','The evolution and popularization of mobile devices and wireless networks give rise to the creation of a new interaction paradigm, where the devices cooperate to execute short tasks. In this scenario, the problem of how to handle environment changes, which may increase the complexity of distributed mobile applications management and maintenance, needs to be addressed. This paper presents an autonomous and evolutionary model to permit a prompt adaptation of essential services (i.e. message exchange, service description service discovery, service coordination, mobility support and security) to context changes. To validate it, a mathematical model describing the time complexity to diffuse an efficient implementation of an essential service (strategy) taking into account the number of devices is proposed. Finally, the diffusion approach is implemented in a simulator to reason about its impact on the overall efficiency of the essential services and, consequently, the performance of the application. © 2012 ICST Institute for Computer Science, Social Informatics and Telecommunications Engineering.','',1,'Maia M.E.F., Rocha L.S., Maia P.H.M., Andrade R.M.C.','scopus/soa security.csv','scopus','\0'),(2039,'Multi-agent Approach for Managing Workflows in an Inter-Cloud Environment','2014','0',' Cloud Computing Workflow Management Systems Workflow Petri Nets Reference Nets Multi-Agent Systems','Abstract Despite the several attractive features that offers the cloud technology, managing, controlling processes and resources are among the serious obstacles that cloud service providers need to overcome. These issues increase when cloud providers intend to exploit services from several distributed platforms to satisfy client’s requests and requirements. At this moment, they need to deal with some critical problems like heterogeneity, collaboration, coordination and communication between different types of participants. In another side, the most known properties of an agent are: autonomy, pro-activity, cooperation and mobility. These features are attractive and have a great importance to design and implement software systems that operate in distributed and open environments such like cloud and grid. Our main goal through this thesis is to propose an approach and architectures to permit the integration of cloud/grid and multi-agent systems concepts and technologies for managing workflows in distributed service-oriented environments. Explicitly, in an Inter-Cloud environment.','',2,'Sofiane Bendoukha','springer/bpel security.csv','springer',''),(2040,'Lightweight Information Flow Control for Web Services','2012','0','','Abstract This paper presents a concept of incorporating information flow control (IFC) mechanisms into service-oriented systems. As opposed to existing IFC proposals, commonly imposing requirements hard or impossible to achieve in service-oriented environments (such as analysis of the application code), our solution fully complies with the Service Oriented Architecture (SOA) model. We present how IFC can be managed in an SOA system by using ORCA security policy language. We also describe two possible implementations of such SOA-specific IFC mechanisms using cryptographic keys and poly-instantiated web services.','',1,'Bartosz BrodeckiMichał KalewskiPiotr SasakMichał Szychowiak','springer/service oriented architecture security.csv','springer','\0'),(2041,'Detecting repurposing and over-collection in multi-party privacy requirements specifications','2015','1','Data flow analysis; privacy principles; requirements validation','Mobile and web applications increasingly leverage service-oriented architectures in which developers integrate third-party services into end user applications. This includes identity management, mapping and navigation, cloud storage, and advertising services, among others. While service reuse reduces development time, it introduces new privacy and security risks due to data repurposing and over-collection as data is shared among multiple parties who lack transparency into third-party data practices. To address this challenge, we propose new techniques based on Description Logic (DL) for modeling multiparty data flow requirements and verifying the purpose specification and collection and use limitation principles, which are prominent privacy properties found in international standards and guidelines. We evaluate our techniques in an empirical case study that examines the data practices of the Waze mobile application and three of their service providers: Facebook Login, Amazon Web Services (a cloud storage provider), and Flurry.com (a popular mobile analytics and advertising platform). The study results include detected conflicts and violations of the principles as well as two patterns for balancing privacy and data use flexibility in requirements specifications. Analysis of automation reasoning over the DL models show that reasoning over complex compositions of multi-party systems is feasible within exponential asymptotic timeframes proportional to the policy size, the number of expressed data, and orthogonal to the number of conflicts found. © 2015 IEEE.','',1,'Breaux T.D., Smullen D., Hibshi H.','scopus/service oriented architecture security.csv','scopus',''),(2042,'The SemSPM approach: fine integration of WS-SecurityPolicy semantics to enhance matching security policies in SOA','2016','0',' WS-SecurityPolicy Semantic security policy matching Semantic comparison relations SWRL rules','Abstract The lack of semantics in WS-SecurityPolicy standard hampers the effectiveness of matching security policies. To resolve this problem, we present a semantic approach for matching Web service security policies. The approach consists in the transformation of WS-SP into an OWL-DL ontology and the definition of a set of rules which automatically generate semantic relations that can exist between the provider and requestor security requirements. We show how these relations lead to more correct and refined matching of security policies. We also describe the implementation details of our approach and its validation through a real-world use case.','Service Oriented Computing and Applications',1,'Monia Ben BrahimTarak ChaariMaher Ben JemaaMohamed Jmaiel','springer/soa security.csv','springer',''),(2043,'Formal Methods for Modeling, Refining and Verifying Autonomic Components of Computer Networks','2012','2',' Autonomics GANA Meta-Model Model-driven Methodology Formal Methods Hierarchical Controllers Design Protocol behavior modeling','Abstract The domain of autonomic and nature-inspired networking comes with its own set of design challenges and requirements for its architectures. This demands a tailored solution to model and design its components rather than a generic approach. In this paper, we provide a hybrid methodology consisting of formal methods to design, refine and verify the entities of autonomic networks. We focus our discussions on the methods for meta-modeling , structural modeling and behavior modeling and design of existing protocols and newly introduced autonomic components, that autonomically manage and adapt the behaviour of protocols to changing policy and network conditions. A case study, based on the recently introduced Hierarchical Autonomic Management and Control Architectural Framework called GANA, is used for highlighting the practical benefits and design choices available to modelers and autonomic components designers. The results of our case study are analyzed to explain the trade offs that future designers would be forced to make in order to achieve their design objectives for an autonomic network. A tool-chain to realize the methodology is also briefly discussed.','',2,'Arun PrakashZoltán TheiszRanganai Chaparadza','springer/bpel security.csv','springer','\0'),(2044,'All-optical signal processing technique for secure optical communication','2015','','All-optical signal processing; All-optical XOR gate; Secure optical communication','Secure optical communication technologies are important means to solve the physical layer security for optical network. We present a scheme of secure optical communication system by all-optical signal processing technique. The scheme consists of three parts, as all-optical signal processing unit, optical key sequence generator, and synchronous control unit. In the paper, all-optical signal processing method is key technology using all-optical exclusive disjunction (XOR) gate based on optical cross-gain modulation effect, has advantages of wide dynamic range of input optical signal, simple structure and so on. All-optical XOR gate composed of two semiconductor optical amplifiers (SOA) is a symmetrical structure. By controlling injection current, input signal power, delay and filter bandwidth, the extinction ratio of XOR can be greater than 8dB. Finally, some performance parameters are calculated and the results are analyzed. The simulation and experimental results show that the proposed method can be achieved over 10Gbps optical signal encryption and decryption, which is simple, easy to implement, and error-free diffusion. © 2015 SPIE.','',1,'Qian F.-C., Su B., Ye Y.-L., Zhang Q., Lin S.-F., Duan T., Duan J.','scopus/soa security.csv','scopus',''),(2045,'Security risks and their management in cloud computing','2012','7','cloud computing;risk assessment;security threats','Cloud computing provides outsourcing of resources bringing economic benefits. The outsourcing however does not allow data owners to outsource the responsibility of confidentiality, integrity and access control, as it still is the responsibility of the data owner. As cloud computing is transparent to both the programmers and the users, it induces challenges that were not present in previous forms of distributed computing. Furthermore, cloud computing enables its users to abstract away from low-level configuration such as configuring IP addresses and routers. It creates an illusion that this entire configuration is automated. This illusion is also true for security services, for instance automating security policies and access control in cloud, so that individuals or end-users using the cloud only perform very high-level (business oriented) configuration. This paper investigates the security challenges posed by the transparency of distribution, abstraction of configuration and automation of services by performing a detailed threat analysis of cloud computing across its different deployment scenarios (private, bursting, federation or multi-clouds). This paper also presents a risk inventory which documents the security threats identified in terms of availability, integrity and confidentiality for cloud infrastructures in detail for future security risks. We also propose a methodology for performing security risk assessment for cloud computing architectures presenting some of the initial results.','Cloud Computing Technology and Science (CloudCom), 2012 IEEE 4th International Conference on',1,'A. U. Khan; M. Oriol; M. Kiran; M. Jiang; K. Djemame','ieee/service oriented architecture security.csv','ieee','\0'),(2046,'Secured SOA for the safe interconnection of medical devices (Position paper)','2015','','','This position paper presents a concept on how the dynamic interconnection of medical devices in a service oriented architecture (SOA) can be secured based on formal interface descriptions. In the framework OpenSDC used in the research project OR.NET formal interface descriptions are already used to model medical devices. The new approach is to use this formal descriptions to ensure the correct usage of the interface at runtime and to support developers in implementing medical devices with OpenSDC at the same time.','',1,'Leucker M., Schmitz M.','scopus/service oriented architecture security.csv','scopus',''),(2047,'Compatibility-driven and adaptable service composition','2009','1','','Services participating in the composition are usually co-ordinated according to a workflow, composed by several activities, each of which carried out by a service. The binding of services to workflow activities may be affected by several parameters (e.g., QoS, price, reputation, etc.). In this paper, we propose a service binding driven by a further important requirement, that is, the incompatibilities among services participating into the composition. To achieve a compatibility-driven composition we propose a solution where services assignment is configured directly by the engine coordinating the composite service. Moreover, the composition is generated such to implement a failure recovery strategy, that is, in case of some service failure the engine dynamically replaces the unavailable service.','Services Computing Conference, 2009. APSCC 2009. IEEE Asia-Pacific',2,'B. Carminati; C. Chi-Hung; E. Ferrari; L. Yu','ieee/bpel security.csv','ieee','\0'),(2048,'IoT-enabled Web Warehouse Architecture: A Secure Approach','2015','0','Cryptography, Data warehouse, Internet of things (IoT), Secure query processing, Web service, Web warehouse','Web warehouse (WWh) has overcome the geographical dependencies of data warehouse. With the rapid development of WWh, decision makers (humans) and intelligent devices are able to remotely retrieve the information for supporting the effective decision-making process. This paper presents a secure Web service-oriented architecture of the WWh. The proposed architecture provides the better scalability, availability of WWh, and secure analytical service for human and Internet of Things for effective decision making. In addition, the service-oriented architecture of WWh integrates intelligent devices for the process of decision making. The proposed architecture uses XML-based Web services to provide authentication, authorization, and data confidentiality and integrity. Experiments show that the proposed architecture is more reliable, scalable, and secure.','',1,'Rashid Mehmood and Maqbool Uddin Shaikh and Rongfang Bie and Hussain Dawood and Hassan Dawood','acm/service oriented architecture security.csv','acm',''),(2049,'A Service-Oriented Mobile Cloud Middleware Framework for Provisioning Mobile Sensing as a Service','2015','','mobile Web service;mobile cloud;mobile sensing as a service;service-oriented;workflow management system','Emerging Mobile Phone Sensing (M-Sense) systems enable a flexible large scale wireless sensing capability and also reduce the need of establishing the infrastructure of Wireless Sensor Network for collecting sensory information in the Internet of Things applications. M-Sense has been applied in numerous scenarios including mobile-health systems, environmental monitoring, vehicle ad hoc network, mobile social network, and so on. The drawback of existing M-Sense systems in terms of privacy, trust, less efficiency of participating in multiple sensing networks, has motivated the next generation sensing service provisioning approach. This paper introduces a generic service-oriented Mobile Host Sensing as a Service provisioning framework that allows a mobile device to provide sensing data to multiple parties based on mobile Web services. The proposed framework consists of the hybrid workflow-based control system, the dynamic Utility Cloud service, and the service provisioning scheduling model to enhance the quality of service provisioning. The prototype has been tested on real mobile devices and the details of the performance evaluation are presented.','Parallel and Distributed Systems (ICPADS), 2015 IEEE 21st International Conference on',1,'C. Chang; S. N. Srirama; M. Liyanage','ieee/service oriented architecture security.csv','ieee',''),(2050,'An exception handling system for service component architectures','2012','0',' Exception handling Service-component architectures Fault tolerance Service-oriented computing Coordinated exception handling','Abstract The Service Component Architecture (SCA) makes it possible to combine existing and new services based on a variety of technologies with components built using a component-based development approach. However, when asynchronous service compositions are executed, one or more errors can occur, possibly at the same time, affecting the dependability of the composition. To guarantee that the composition succeeds or at least fails in a controlled manner, fault tolerance mechanisms must be employed. In this paper, we propose a novel exception handling model that targets the needs of dependable SCA applications. The model is applicable to service-oriented systems and allows the creation of fault-tolerant asynchronous service compositions. The EH-SCA framework instantiates the proposed model as an extension of the Apache Tuscany SCA infrastructure. Developers can apply this instantiation of the model to both new and existing applications by using a simple and flexible aspect-oriented programming model. Finally, a case study of the EH-SCA framework shows how it can be used to build dependable distributed applications.','Journal of the Brazilian Computer Society',2,'Fernando CastorDouglas Siqueira LeiteCecília Mary F. Rubira','springer/bpel security.csv','springer','\0'),(2051,'Lecture Notes in Informatics (LNI), Proceedings - Series of the Gesellschaft fur Informatik (GI)','2014','','','The proceedings contain 253 papers. The topics discussed include: towards quality-aware simulations on mobile devices; coupling of existing simulations using bottom-up modeling of choreographies; R as an integration tool in high performance computing - lessons learned; towards automated analysis of eye tracking studies using the workflow technology; enhancing cloud security with context-aware usage control policies; automatic topology completion of TOSCA-based cloud applications; towards uniform BPEL engine management in the cloud; on the measurement of data protection compliance of cloud services; towards gamification analytics - requirements for monitoring and adapting gamification designs; a game-based evaluation model for a successful cooperation in cloud computing; towards data supply chains in enterprise architecture management; SemwidgJS: a semantic widget library for the rapid development of user interfaces for linked open data; and semantic service manager - enabling semantic web technologies in multi-agent systems.','',2,'[No author name available]','scopus/bpel security.csv','scopus',''),(2052,'A literature survey on smart cities','2015','1',' smart city architecture data-centric data vitalization urban data 关键词 智慧城市 系统架构 数据活化 城市数据 100102','Abstract Rapid urbanization creates new challenges and issues, and the smart city concept offers opportunities to rise to these challenges, solve urban problems and provide citizens with a better living environment. This paper presents an exhaustive literature survey of smart cities. First, it introduces the origin and main issues facing the smart city concept, and then presents the fundamentals of a smart city by analyzing its definition and application domains. Second, a data-centric view of smart city architectures and key enabling technologies is provided. Finally, a survey of recent smart city research is presented. This paper provides a reference to researchers who intend to contribute to smart city research and implementation.','Science China Information Sciences',1,'ChuanTao YinZhang XiongHui ChenJingYuan WangDaven CooperBertrand David','springer/soa security.csv','springer',''),(2053,'Implementation of a Distributed Guideline-Based Decision Support Model Within a Patient-Guidance Framework','2015','0',' Clinical guidelines Decision support Distributed computing','Abstract We report on new projection engine which was developed in order to implement a distributed guideline-based decision support system (DSS) within the European project MobiGuide.In this model, small portions of the guideline knowledge are projected, i.e. ‘downloaded’, from a central DSS server to a local DSS in the patient’s mobile device, which then applies that knowledge using the mobile device’s local resources. Furthermore, the projection engine generates guideline projections which are adapted to the patient’s previously defined preferences and, implicitly, to the patient’s current context, which is embodied in the projected knowledge. We evaluated this distributed guideline application model for two complex guidelines: one for Gestational Diabetes Mellitus, and one for Atrial Fibrillation. We found that the initial specification of what we refer to as the customized guideline should be in the terms of the distributed DSS, i.e., include two levels: one for the central DSS, and one for the local DSS. In addition, we found significant differences between the customized, distributed versions of the two guidelines, indicating further research directions and possibly additional ways to analyze and characterize guidelines.','',1,'Erez ShalomYuval ShaharAyelet GoldsteinElior ArielMoshe SheinbergerNick FungVal JonesBoris van Schooten','springer/service oriented architecture security.csv','springer',''),(2054,'A Secure Cloud-Based Payment Model for M-Commerce','2013','0','Cloud Security;Mobile Payment;Web Services','Instead of paying by cash, check, or credit cards, consumers can also use their mobile devices to pay for a wide range of services and digital or material goods. However, consumers\' security concerns are a major barrier to broad adoption and use of mobile payments. In this paper, we design a secure operational model for mobile payment in which access control is based on service-oriented architecture. A consumer uses his/her mobile device to get authorization from cloud and generate a QR code as the payment certificate.','2013 42nd International Conference on Parallel Processing',1,'T. K. Chang','ieee/service oriented architecture security.csv','ieee','\0'),(2055,'Integrated Cloud Application Provisioning: Interconnecting Service-Centric and Script-Centric Management Technologies','2013','1',' Cloud Application Provisioning Integration Management Scripts Management Services','Abstract Modern Cloud applications employ a plethora of components and XaaS offerings that need to be configured during provisioning. Due to increased heterogeneity, complexity is growing and existing approaches reach their limits if multiple different provisioning and configuration technologies are involved. They are not able to integrate them in an automated, flexible, and customizable way. Especially combining proprietary management services with script-centric configuration management technologies is currently a major challenge. To enable automated provisioning of such applications, we introduce Generic Lifecycle Management Planlets that provide a means to combine custom provisioning logic with common provisioning tasks. We implemented planlets for provisioning and customization of components and XaaS offerings based on both SOAP and RESTful Web services as well as configuration management technologies such as Chef to show the feasibility of the approach. By using our approach, multiple technologies can be combined seamlessly.','',2,'Uwe BreitenbücherTobias BinzOliver KoppFrank LeymannJohannes Wettinger','springer/bpel security.csv','springer','\0'),(2056,'Agile requirements handling in a service-oriented taxonomy of capabilities','2016','0',' Requirements handling Service orientation Architecture Capability Taxonomy Agile management and development','Abstract To get to grips with information systems portfolio development, strategic decisions tend towards service orientation and cloud deployment. Functionality should be presented as services that can be consumed from secure clouds in a range of contexts, and service-oriented architectures should enable one to build and rebuild systems portfolios readily and rapidly. However, there is little practical guidance on how to organize and coordinate the multiple lines of work that developing, or modernizing to, a service-oriented portfolio entails. We outline a method framework that uses the structure of a service-oriented taxonomy of capabilities to organize requirements and development in terms of elaboration and refinement of requirements. The method compiles several best practices and supports independent, but integral, lines of work that can be organized in small-scale projects. We illustrate the framework on three cases that involve computer- and simulation-assisted business processes. We conclude that service-oriented capability taxonomies can be used to structure and discipline requirements handling at all levels, from enterprise strategy to technical systems. We suggest that our framework supports the development of capabilities and services that are persistent in the service-oriented sense relative to each other and to implementation. We suggest further that the framework supports collaborative work by facilitating shared conceptions across lines of work. We emphasize that empirical studies should be conducted to evaluate and refine the framework.','Requirements Engineering',2,'Jo Erskine HannayKarsten BrathenOle Martin Mevassvik','springer/bpmn security.csv','springer',''),(2057,'Combining horizontal and vertical composition of services','2012','9',' Composition Provisioning Enterprise service bus Cloud','Abstract Service composition is a well-established field of research in the service community. Services are commonly regarded as black boxes with well-defined interfaces that can be recursively aggregated into new services. The black-box nature of services does not only include the service implementation but also implies the use of middleware and hardware to run the services. Thus, service composition techniques are typically limited to choosing between a set of available services. In this paper, we keep the black-box nature and the principle of information hiding of services, but in addition we break up services vertically . By introducing vertical service composition , we allow services to be provisioned on demand using the middleware and runtime environment that specifically meets user-required quality of services. Therefore, a service is setup individually for services requestors instead of providing them with a pre-determined list of available services to choose from. We introduce the concept of vertical service composition and present an extension to an enterprise service bus that implements the concept of vertical service composition by combining concepts from provisioning with those of (dynamic) service binding.','Service Oriented Computing and Applications',1,'Ralph RetterChristoph FehlingDimka KarastoyanovaFrank LeymannDaniel Schleicher','springer/soa security.csv','springer','\0'),(2058,'2013 Military Communications and Information Systems Conference, MilCIS 2013 - Proceedings','2013','','','The proceedings contain 7 papers. The topics discussed include: a flexible cryptographic infrastructure for high-security SDR-based systems; fractal methods for the representation and analysis of polymorphism in malware; wide-band feeds for multi-band SA TCOM and EW antennas; combat management systems: predicting performance early in the design lifecycle; a new methodology for the identification of operational stress points and assessment of technology solutions; a rule-based platform for distributed real-time SOA with application in defense systems; and modeling scenarios for the performance prediction of distributed real-time embedded systems.','',1,'[No author name available]','scopus/soa security.csv','scopus','\0'),(2059,'The SCEL Language: Design, Implementation, Verification','2015','2',' Autonomic computing Programming languages Adaptation policies Formal methods Verification','Abstract SCEL (Service Component Ensemble Language) is a new language specifically designed to rigorously model and program autonomic components and their interaction, while supporting formal reasoning on their behaviors. SCEL brings together various programming abstractions that allow one to directly represent aggregations, behaviors and knowledge according to specific policies. It also naturally supports programming interaction, self-awareness, context-awareness, and adaptation. The solid semantic grounds of the language is exploited for developing logics, tools and methodologies for formal reasoning on system behavior to establish qualitative and quantitative properties of both the individual components and the overall systems.','',1,'Rocco De NicolaDiego LatellaAlberto Lluch LafuenteMichele LoretiAndrea MargheriMieke MassinkAndrea MorichettaRosario PuglieseFrancesco TiezziAndrea Vandin','springer/service oriented architecture security.csv','springer',''),(2060,'A low-cost security certification scheme for evolving services','2012','9','Evolving services; Model-based testing; Security certification; SOA','Security certification schemes for Service-Oriented Architecture (SOA) extend service specifications with the evidence that a service supports a set of security properties and provides a given level of assurance. However, services are subject to continuous refinements, and uncontrolled changes can easily invalidate existing certification results and require re-certification from scratch, with high costs and overheads on service providers. In this paper, we present an approach to manage the impact of service evolution on security certification. Our approach aims to support the incremental certification of evolving services and re-use, as much as possible, the certification evidence available from older certificates in the release of a new certificate. © 2012 IEEE.','',1,'Anisetti M., Ardagna C.A., Damiani E.','scopus/service oriented architecture security.csv','scopus','\0'),(2061,'Data communication control strategy based on availability calculation under the internet','2015','','Availability calculation;Communication control;SOA','In order to solve the problem of Internet heterogeneous data synchronization, we design a Web-level Data Synchronization System (WLDSS) of distributed heterogeneous data based on Service-Oriented Architecture (SOA) in this paper which uses availability to control heterogeneous data synchronization stability, and analyzes its performance. Data show that this strategy can proactively adapt to a variety of performance characteristics under WLDSS, effectively improving the efficiency of data synchronization.','2015 IEEE International Conference on Communication Problem-Solving (ICCP)',1,'Jinying Chen; Yu Lu','ieee/service oriented architecture security.csv','ieee',''),(2062,'BPMN Security Extensions for Healthcare Process','2015','','BPMN;Healthcare;Internet of Things;Security Requirement','The modelling of healthcare process is inherently complicated due to its multi-disciplinary character. Business Process Model and Notation (BPMN) has been considered and applied to model and demonstrate the flexibility and variability of the activities that involved in healthcare process. However, with the growing usage of digital information and IoT technology in the healthcare system, the issue of information security and privacy becomes the main concern in term of both store and management of electronic health record (EHR). Therefore, it is very important to capture the security requirements at conceptual level in order to identify the security needs in the first place. BPMN is lacking of the ability to model and present security concepts such as confidentiality, integrity, and availability in a suitable way. This will increase the vulnerability of the system and make the future development of security for the system more difficult. In this paper we provide a solution to model the security concepts in BPMN by extending it with new designed security elements, which can be integrated with the BPMN diagram smoothly.','Computer and Information Technology; Ubiquitous Computing and Communications; Dependable, Autonomic and Secure Computing; Pervasive Intelligence and Computing (CIT/IUCC/DASC/PICOM), 2015 IEEE International Conference on',2,'K. S. Sang; B. Zhou','ieee/bpmn security.csv','ieee',''),(2063,'Security filtering of optical data signals: an approach based on codewords','2015','0',' All-optical security filtering Optical codewords Optical traffic identifier Optical logic gates Virtual optical memory Optical burst switching networks Optical packet switching networks','Abstract In this paper, we propose an all-optical filtering architecture that filters session establishment and data traffic streams. The session establishment filtering concerns the connection-oriented protocols. Each traffic stream is identified by a traffic identifier composed of a set of optical codewords. Each codeword is formed by a sequence of optical pulses that represent the bit “1” positions. In the case when an information bit “0” is transmitted, the transmitter does not generate a pulse. In a core node that implements the security filtering module, an optical security policy will be applied to the received traffic stream (session establishment or data traffic stream) based on its traffic identifier. The decision after performing the filtering process can lead to accept or reject the traffic stream. The proposed security filtering architecture is mainly composed of two modules: a session and a traffic filtering modules.','Photonic Network Communications',1,'Maha SlitiNoureddine Boudriga','springer/soa security.csv','springer',''),(2064,'Interoperability for medical information systems: an overview','2014','0',' Medical information system Heterogeneity Semantic interoperability Cloud computing SOA Ontology','Abstract As it is known to all, there is an imperative need for electronic transfer of healthcare information (patients’ records, laboratory analyses, medical images…) between healthcare organizations to improve the quality level they are offering. However, medical information systems in each organization are different from each other. These different systems compose a heterogeneous, distributed system with high complexity: there are a large number of healthcare related applications that support specific needs effectively but are isolated or incompatible. Thus medical information systems’ interoperability constitutes one of the main challenges of the IT society. Semantic interoperability in healthcare is important especially when all the varying types of data need to interact. Presented in this paper are the most relevant works to our knowledge, dealing with interoperability in medical information systems and a comparative study between the new proposed approaches and research trends to resolve heterogeneity issues.','Health and Technology',1,'Randa HammamiHatem BellaajAhmed Hadj Kacem','springer/soa security.csv','springer','\0'),(2065,'Business Intelligence Security on the Clouds: Challenges, Solutions and Future Directions','2013','2','Application Layer Security;Business Intelligence;Cloud Computing;Data Mart Security;Data Warehouse Security;Distributed Security Controls;OLAP Security;Object Level Security;Online Analytical Processing;Unified Threat Management','Business intelligence (BI) is a critical software system employed by the higher management of organizations for presenting business performance reports through Online Analytical Processing (OLAP) functionalities. BI faces sophisticated security issues given its strategic importance for higher management of business entities. Scholars have emphasized on enhanced session, presentation and application layer security in BI, in addition to the usual network and transport layer security controls. This is because an unauthorized user can gain access to highly sensitive consolidated business information in a BI system. To protect a BI environment, a number of controls are needed at the level of database objects, application files, and the underlying servers. In a cloud environment, the controls will be needed at all the components employed in the service-oriented architecture for hosting BI on the cloud. Hence, a BI environment (whether self-hosted or cloud-hosted) is expected to face significant security overheads. In this context, two models for securing BI on a cloud have been simulated in this paper. The first model is based on securing BI using a Unified Threat Management (UTM) cloud and the second model is based on distributed security controls embedded within the BI server arrays deployed throughout the Cloud. The simulation results revealed that the UTM model is expected to cause more overheads and bottlenecks per OLAP user than the distributed security model. However, the distributed security model is expected to pose administrative control effectiveness challenges than the UTM model. Based on the simulation results, it is recommended that BI security model on a Cloud should comprise of network, transport, session and presentation layers of security controls through UTM, and application layer security through the distributed security components. A mixed environment of both the models will ensure technical soundness of security controls, better security processes, - learly defined roles and accountabilities, and effectiveness of controls.','Service Oriented System Engineering (SOSE), 2013 IEEE 7th International Symposium on',1,'H. Al-Aqrabi; L. Liu; R. Hill; Z. Ding; N. Antonopoulos','ieee/service oriented architecture security.csv','ieee','\0'),(2066,'An end-to-end security auditing approach for service oriented architectures','2012','','security auditing; Service Oriented Architecture; taint analysis; trust','Service-Oriented Architecture (SOA) is becoming a major paradigm for distributed application development in the recent explosion of Internet services and cloud computing. However, SOA introduces new security challenges not present in the single-hop client-server architectures due to the involvement of multiple service providers in a service request. The interactions of independent service domains in SOA could violate service policies or SLAs. In addition, users in SOA systems have no control on what happens in the chain of service invocations. Although the establishment of trust across all involved partners is required as a prerequisite to ensure secure interactions, still a new end-to-end security auditing mechanism is needed to verify the actual service invocations and its conformance to the expected service orchestration. In this paper, we provide an efficient solution for end-to-end security auditing in SOA. The proposed security architecture introduces two new components called taint analysis and trust broker in addition to taking advantages of WS-Security and WS-Trust standards. The interaction of these components maintains session auditing and dynamic trust among services. This solution is transparent to the services, which allows auditing of legacy services without modification. Moreover, we have implemented a prototype of the proposed approach and verified its effectiveness in a LAN setting and the Amazon EC2 cloud computing infrastructure. © 2012 IEEE.','',1,'Azarmi M., Bhargava B., Angin P., Ranchal R., Ahmed N., Sinclair A., Linderman M., Othmane L.B.','scopus/service oriented architecture security.csv','scopus','\0'),(2067,'Modeling access control transactions in enterprise architecture','2014','2','','Enterprise architecture (EA) aims to provide management with appropriate indicators and controls to steer and model service-oriented enterprises. However, the management of EA models change is a challenging task due to complex dependencies when dealing with security constraints such as access control. In this paper, we motivate the use of an access control model in EA. More specifically, we present the role-based access control (RBAC) standard as a mean to model access control transactions in EA. To that end, we present (i) how the concepts of RBAC can be modeled into the Archi Mate enterprise architecture modeling language, and (ii) how RBAC\'s enforcementis supported with the DEMO enterprise modeling methodology via the business transaction concept. These attempts will help us to identify the conceptual link between RBAC, Archi Mate, and DEMO meta models in order to create a consistent lightweight model for access control in EA. Finally, we illustrate the application of the proposed approach through the handling of an e-Government scenario. © 2014 IEEE.','',1,'Gaaloul K., Guerreiro S., Proper H.A.','scopus/service oriented architecture security.csv','scopus','\0'),(2068,'System of Systems to provide Quality of Service monitoring, management and response in cloud computing environments','2012','2','Cloud Computing;DDoS;Enterprise Systems;Information Assurance;Net-centric;Quality of Service(QoS);Security;Service Oriented Architecture;Systems of systems','As military, academic, and commercial computing systems evolve from autonomous entities that deliver computing products into network centric enterprise systems that deliver computing as a service, opportunities emerge to consolidate computing resources, software and information through cloud computing. Along with these opportunities come challenges, especially to service providers and operations centers that struggle to monitor and manage Quality of Service (QoS) for these services in order to meet customer service commitments. Traditional approaches fall short in addressing these challenges because they examine QoS from a limited perspective rather than from a System of Systems (SoS) perspective applicable to a net-centric enterprise system in which any user from any location can share computing resources at any time. This paper presents a SoS approach to provide QoS monitoring, management, and response for enterprise systems that delivers computing as a service through a cloud computing environment. Concrete examples are provided that identify the key components of this SoS and their application to real-world scenarios. Simulated results demonstrate the effectiveness of the approach for a representative scenario.','System of Systems Engineering (SoSE), 2012 7th International Conference on',1,'P. Hershey; S. Rao; C. B. Silio; A. Narayan','ieee/service oriented architecture security.csv','ieee','\0'),(2069,'Towards Dynamic Non-obtrusive Health Monitoring Based on SOA and Cloud','2013','0',' E-health Diseases Monitoring Prevention SOA Cloud','Abstract Despite the fact that new technologies and life style are continuously improving, many diseases have unfortunately extensively increased in today’s population. State-of-the-art studies are showing an exponential increase of these diseases, which present a heavy burden on governmental and private healthcare systems. Many industrial and academic works are trying to alleviate this burden using varying clinical solutions. For example, e-health monitoring and prevention have revealed to be among promising solutions. In fact, well-implemented monitoring and prevention schemes have resulted in a decent reduction of diseases risk and or have reduced their effects. In the same line, this paper proposes a Service-Oriented Architecture-based platform for health disease tracking and prevention with a focus on disease monitoring. A monitoring scheme based on Service-Oriented Architecture and Cloud technology has been designed and developed to proactively detect any risk of diseases prior to its development. Therefore a preventive plan is dynamically generated and customized according to the patient’s health profile and context while considering many impelling parameters. A mobile application has been developed to evaluate our monitoring scheme and preliminary data have been collected and analyzed.','',1,'Mohamed Adel SerhaniAbdelghani BenharrefElarbi Badidi','springer/service oriented architecture security.csv','springer','\0'),(2070,'Intentional Fragments: Bridging the Gap between Organizational and Intentional Levels in Business Processes','2012','1',' Process Modelling Business Process Management Goal-oriented Requirements Modelling KAOS BPMN 2.0','Abstract Business process models provide a natural way to describe real-world processes to be supported by software-intensive systems. These models can be used to analyze processes in the system-as-is and describe potential improvements for the system-to-be. There is however little support to analyze how well a given business process models satisfies its business goals. Our objective is to address these problems by relating business process models to goal models so that goal-oriented requirements engineering techniques can be used to analyze how well the business processes for the system-as-is satisfy the business goals. The paper establishes relationships between BPMN 2.0 and the KAOS goal-oriented requirements modelling framework. We present the notion of intentional fragment to bridge the gap between process models and goal models. We conducted an evaluation to analyze use of this concept in the context of a university process.','',2,'Mario Cortes-CornaxAlexandru MateiEmmanuel LetierSophie Dupuy-ChessaDominique Rieu','springer/bpel security.csv','springer','\0'),(2071,'Practical interruptible conversations: distributed dynamic verification with multiparty session types and Python','2015','3',' Session types Runtime monitoring Python Distributed systems','Abstract The rigorous and comprehensive verification of communication-based software is an important engineering challenge in distributed systems. Drawn from our industrial collaborations (Ocean Observatories Initative, http://​www.​oceanobservatori​es.​org/​ , JBoss Savara Project, http://​www.​jboss.​org/​savara ) on Scribble, a choreography description language based on multiparty session types, and its theoretical foundations (Honda et al., in POPL, pp 273–284, 2008 ), this article proposes a dynamic verification framework for structured interruptible conversation programming. We first present our extension of Scribble to support the specification of asynchronously interruptible conversations. We then implement a concise API for conversation programming with interrupts in Python that enables session types properties to be dynamically verified for distributed processes. Finally, we expose the underlying theory of our interrupt mechanism, studying its syntax and semantics, its integration in MPST theory and proving the correctness of our design. Our framework ensures the global safety of a system in the presence of asynchronous interrupts through independent runtime monitoring of each endpoint, checking the conformance of the local execution trace to the specified protocol. The usability of our framework for describing and verifying choreographic communications has been tested by integration into the large scientific cyberinfrastructure developed by the Ocean Observatories Initiative. Asynchronous interrupts have proven expressive enough to represent and verify their main classes of communication patterns, including asynchronous streaming and various timeout-based protocols, without introducing any implicit synchronisations. Benchmarks show conversation programming and monitoring can be realised with little overhead.','Formal Methods in System Design',2,'Romain DemangeonKohei HondaRaymond HuRumyana NeykovaNobuko Yoshida','springer/bpel security.csv','springer',''),(2072,'Multi levels semantic architecture for multimodal interaction','2013','3',' Knowledge representation language Description logic Ontologies Multi-agent systems Semantic memory Multimodal interaction','Abstract This paper presents a semantic architecture for solving multimodal interaction. Our architecture is based on multi agent systems where agents are purely semantic using ontologies and inference system. Multi levels concepts and behavioural models are taken into account to bring a fast high level reasoning on a big amount of percepts and low level actions. We apply this architecture to make a system aware of different situations in a network like tracking object behaviours of the environment. As a proof of concept, we apply our architecture to an assistant robot helping blind or disabled people to cross a road in a virtual reality environment.','Applied Intelligence',1,'Sébastien DourlensAmar Ramdane-CherifEric Monacelli','springer/soa security.csv','springer','\0'),(2073,'Towards a framework for monitoring cloud application platforms as sensor networks','2014','0',' Cloud application platforms Service-oriented computing Autonomic computing Monitoring Sensor network Sensor web','Abstract With the continued growth in software environments on cloud application platforms, self-management at the Platform-as-a-Service (PaaS) level has become a pressing concern, and the run-time monitoring, analysis and detection of critical situations are all fundamental requirements if we are to achieve autonomic behaviour in complex PaaS environments. In this paper we focus on cloud application platforms offering their customers a range of generic built-in re-usable services. By identifying key characteristics of these complex dynamic systems, we compare cloud application platforms to distributed sensor networks, and investigate the viability of exploiting these similarities with a case study. We treat cloud data storage services as “virtual” sensors constantly emitting monitoring data, such as numbers of connections and storage space availability, which are then analysed by the central component of a monitoring framework so as to detect and react to SLA violations. We discuss the potential benefits, as well as some shortcomings, of adopting this approach.','Cluster Computing',1,'Rustem DautovIraklis ParaskakisMike Stannett','springer/soa security.csv','springer','\0'),(2074,'On Integrating Social and Sensor Networks for Emergency Management','2015','0','','Abstract The 2010 earthquake in Haiti is often referred to as the turning point that changed the way social media can be used during disasters. The development of strategies, technologies and tools to enhance user collaboration around disasters has become an emergent field, and their integration with appropriate sensor networks presents itself as an effective solution to drive decision making in emergency management. In this paper, we present a review of existing disaster management systems and their underlying strategies and technologies, and identify the limitations of the tools in which they are implemented. We then propose an architecture for disaster management that integrates the mining of social networks and the use of sensor networks as two complementary technologies to overcome the limitations of the current emergency management tools.','',1,'Farshad ShamsAntonio CeroneRocco De Nicola','springer/service oriented architecture security.csv','springer',''),(2075,'Adaptive Production Management Using a Service-Based Platform','2015','0',' System architecture Adaptive manufacturing Enterprise service bus','Abstract This paper presents a platform for adaptive production management developed in the ARUM (Adaptive pRodUct Management, http://​arum-project.​eu/​ ) project. The design of ARUM platform started with applying a traditional enterprise Service-Oriented Architecture (SOA) paradigm to solving an integration problem for the production ramp-up of highly customized products such as aircrafts, ships, etc. The production of such articles is exceptionally challenging for planning and control, especially in small lot sizes. Often requests for changes at any stage of the production, immature products and processes bring serious additional risks for the producers and customers. To counter such issues requires new strategies, the core elements of most of them include early detection of unexpected situations followed by rapid mitigation actions. Furthermore, human beings cannot cope any longer with processing a massive volume of data that comes with a high velocity from various sources that is a requirement for any modern production shop floor. The traditional IT solutions also fall short when trying to satisfy all those requirements and this motivates the need for ARUM platform to help in effective decision making.','',1,'Usman WajidVadim ChepeginDespina T. MeridouMaria-Eleftheria Ch. PapadopoulouJosé Barbosa','springer/service oriented architecture security.csv','springer',''),(2076,'A new usage control protocol for data protection of cloud environment','2016','0',' Cloud computing Data protection UCON Rights transfer Fair using','Abstract With the rapid development of the cloud computing service, utilizing traditional access control models was difficult to meet the complex requirements of data protection in cloud environment. In cloud environment, the definition of data and its protection are gradually varied when contents shifting from one virtual machine to another; in these new scenarios, the multi-tenancy pattern has been taken as a core attribute. For this reason, many users need to change their roles according to different situations; certifications has impact much more complicated challenges in cloud environment while access control was suitable for the static status but no longer for the changing situation. In this paper, a new usage control protocol model—multi-UCON (MUCON) based on usage control (UCON), combined with encryption technology and the digital watermarking technology, is proposed with the characteristics of flexible accrediting, feature binding, and off-line controlling. The analysis and simulation experiments indicate that the proposed protocol model is secure, reliable, and easy to be implemented, which can be deployed in cloud computing environments for data protection.','EURASIP Journal on Information Security',1,'Kefeng FanXiangzhen YaoXiaohe FanYong WangMingjie Chen','springer/service oriented architecture security.csv','springer',''),(2077,'Business process auditing on an SOA foundation','2012','','Audit log; Business process; Computer audit; Service-oriented architecture (SOA); Web services','A traditional audit technique manually controls internal data and processes. However, with the increase of the informatics transactions between global organizations, auditors have to provide a rigorous audit process. Some of them, try to deal with software products in a complex environment by using service-oriented architecture (SOA) and web services (WS). These pose new challenges for management, reliability, change management, security and much more. In this paper, a comprehensive audit mechanism is proposed to provide a cross-platform solution in a heterogeneous software/hardware environment, satisfying interdepartmental and cross-organizational business demands. A prototype of the collaborative e-procurement system is developed to demonstrate how business activities can be properly audited in the SOA architecture. Some practical examples are also given to illustrate the control points designed for a successful audit process in the system. © 2012 ICIC International.','',1,'Li S.-H., Chen S.-C., Hu C.-C., Wu W.-S., Hwang M.','scopus/service oriented architecture security.csv','scopus','\0'),(2078,'BSense: A Flexible and Open-Source Broadband Mapping Framework','2012','1',' Broadband mapping performance measurement broadband quality index broadband access technologies','Abstract We present, BSense , a flexible broadband mapping system for broadband coverage and quality assessment of broadband connections in a given geographic region. For coverage related analysis, it relies on data that is either obtained from ISPs or generated based on technology models and information about infrastructure sites. Broadband quality assessment in BSense is via host-based measurements using our multi-platform and technology-adaptive software client which periodically runs as a background process on users’ computers. The host-based software measurement approach employed in BSense is not only cost-effective but is also flexible and reduces measurement bias. BSense also incorporates a flexible broadband quality index for summarizing the collective effect of various underlying attributes such as download/upload speeds and latency. BSense system has been implemented based on open-source software components. The usefulness of the BSense system is demonstrated using two real world case studies, one on identifying notspots in Scotland and the other on broadband quality assessment in a rural part of Scotland through pilot deployment.','',1,'Giacomo BernardiDamon FenacciMahesh K. MarinaDimitrios P. Pezaros','springer/webservice security.csv','springer','\0'),(2079,'Virtual Business Role-Play: Leveraging Familiar Environments to Prime Stakeholder Memory During Process Elicitation','2015','0',' Business process management Process elicitation Subject-oriented business process management 3D virtual worlds Human-computer interaction','Abstract Business process models have traditionally been an effective way of examining business practices to identify areas for improvement. While common information gathering approaches are generally efficacious, they can be quite time consuming and have the risk of developing inaccuracies when information is forgotten or incorrectly interpreted by analysts. In this study, the potential of a role-playing approach for process elicitation and specification has been examined. This method allows stakeholders to enter a virtual world and role-play actions as they would in reality. As actions are completed, a model is automatically developed, removing the need for stakeholders to learn and understand a modelling grammar. Empirical data obtained in this study suggests that this approach may not only improve both the number of individual process task steps remembered and the correctness of task ordering, but also provide a reduction in the time required for stakeholders to model a process view.','',2,'Joel HarmanRoss BrownDaniel JohnsonStefanie Rinderle-MaUdo Kannengiesser','springer/bpmn security.csv','springer',''),(2080,'An Integrated Conceptual Model to Incorporate Information Tasks in Workflow Models','2012','0',' workflow conceptual model information flow micro-behaviors information-rich environments healthcare','Abstract In information-rich environments, participants can, and often must, access and use diverse sources of data to support their decision-making tasks. Modeling such environments is important, but cannot be done without effective conceptual models. A problem in information-rich environments is a disconnect between the control-flow across tasks and the information flow that must accompany these tasks. This can pose a challenge for supporting workflows in such environments. Micro-level concerns such as information seeking, sharing, recording, interpreting and hand-offs are not captured in existing workflow models. Without these information-related tasks, the control flows depicted appear to occur magically. We propose an integrated conceptual modeling technique that allows modeling both, control-flows and information-flows. The technique overloads some constructs while retaining their semantic origins, obviating the need to learn new constructs. We elaborate on the model with authentic examples drawn from ethnographic studies of healthcare practices in intensive care units. The paper demonstrates how: the proposed overloading can model information-related tasks; and help bring together conceptual modeling of control and information-flows in information-rich environments. The technique is evaluated with the help of multiple real-world examples.','',2,'Sandeep PuraoWolfgang MaassVeda C. StoreyBernard J. JansenMadhu Reddy','springer/bpmn security.csv','springer','\0'),(2081,'WSACd - A Usable Access Control Framework for Smart Home Devices','2015','0',' Policy-based access control XACML Service architectures DPWS Smart home Ubiquitous computing','Abstract Computing devices already permeate working and living environments; a trend which is expected to intensify in the coming years. However, the direct interaction smart devices often have with the physical world, along with the processing, storage and communication of private sensitive data pertaining to users’ lives, bring security concerns into the limelight. This paper presents Web Service Access Control for devices (WSACd), a framework that combines access control provided by the eXtensible Access Control Markup Language (XACML) with the benefits of Service Oriented Architectures through the use of the Devices Profile for Web Services (DPWS). Based on standardized technologies, it enables fine-grained policy-based management of the heterogeneous embedded devices that may be found in a smart residential setting. The proposed framework is implemented in full and its performance is evaluated on a test-bed featuring devices expected to be found in a typical residential environment.','',1,'Konstantinos FysarakisCharalampos KonstantourakisKonstantinos RantosCharalampos ManifavasIoannis Papaefstathiou','springer/service oriented architecture security.csv','springer',''),(2082,'Enhancing Service Federation Trustworthiness through Online Testing','2012','4','(role)CAST;Online compliance testing;Role-based access control;Service federations;Service-oriented architectures;Trustworthiness;ZXID','Security, data protection, trust management, authentication, and authorization are crucial assets in the Internet of Services. Online testing enhances trustworthiness among federated services that are often independently developed, deployed, and maintained.','Computer',1,'A. Bertolino; G. De Angelis; S. Kellomaki; A. Polini','ieee/service oriented architecture security.csv','ieee',''),(2083,'Rule-Based Modeling and Static Analysis of Self-adaptive Systems by Graph Transformation','2015','1','','Abstract Software systems nowadays require continuous operation despite changes both in user needs and in their operational environments. Self-adaptive systems are typically instrumented with tools to autonomously perform adaptation to these changes while maintaining some desired properties. In this paper we model and analyze self-adaptive systems by means of typed, attributed graph grammars. The interplay of different grammars representing the application and the adaptation logic is realized by an adaption manager. Within this formal framework we define consistency and operational properties that are maintained despite adaptations and we give static conditions for their verification. The overall approach is supported by the AGG tool for modeling, simulating, and analyzing graph transformation systems. A case study modeling a business process that adapts to changing environment conditions is used to demonstrate and validate the formal framework.','',2,'Antonio BucchiaroneHartmut EhrigClaudia ErmelPatrizio PelliccioneOlga Runge','springer/bpel security.csv','springer',''),(2084,'Cloud Based Service Registry for Location Based Mobile Web Services System','2013','0','Cloud Computing;LBS;SOA;Scalability;Web Services','Location based services (LBS) are growing in popularity due to the growing number of smartphone users. The architectural design of LBS systems plays a major role in delivering location based services in ubiquitous environments. Service oriented architecture (SOA) which uses services as its basic constructs is the latest trend in designing and developing loosely coupled distributed applications even in heterogeneous environments. Cloud computing is another latest area which provides highly reliable and scalable infrastructure environment for resource intensive applications. This paper gives an overview of SOA based LBS system and explains how to move service registry to the cloud to utilize the best of both SOA and Cloud infrastructure.','2013 2nd International Conference on Advanced Computing, Networking and Security',1,'M. DSouza; V. S. Ananthanarayana','ieee/service oriented architecture security.csv','ieee','\0'),(2085,'Big Data Operations: Basis for Benchmarking a Data Grid','2014','0',' Benchmarking Data grid iRODS Data operations Optimization','Abstract Data Operations over the wide area network are very complex. The end-to-end implementations vary significantly in their efficiency, failure recovery and transactional management. Benchmarking for these operations is vital as we go forward given the exponential growth in data size. The critical evaluation of the types of data operations performed within large-scale data management systems and the comparison of the efficiency of the operations across implementations is an appropriate topic for benchmarking in a big data framework. In this paper, we identify the various operations that are important in large-scale data management and discuss a few of these in terms of data grid benchmarking. These operations form a set of core abstractions that can define interactions with big data systems by domain-centric scientific or business workflow applications. We chose these operational abstractions from our experience in dealing with large-scale distributed systems and with data-intensive computation.','',1,'Arcot RajasekarReagan MooreShu HuangYufeng Xin','springer/service oriented architecture security.csv','springer','\0'),(2086,'Using UML for Modeling Procedural Legal Rules: Approach and a Study of Luxembourg’s Tax Law','2014','1','','Abstract Many laws, e.g., those concerning taxes and social benefits, need to be operationalized and implemented into public administration procedures and eGovernment applications. Where such operationalization is warranted, the legal frameworks that interpret the underlying laws are typically prescriptive , providing procedural rules for ensuring legal compliance. We propose a UML-based approach for modeling procedural legal rules. With help from legal experts, we investigate actual legal texts, identifying both the information needs and sources of complexity in the formalization of procedural legal rules. Building on this study, we develop a UML profile that enables more precise modeling of such legal rules. To be able to use logic-based tools for compliance analysis, we automatically transform models of procedural legal rules into the Object Constraint Language (OCL). We report on an application of our approach to Luxembourg’s Income Tax Law providing initial evidence for the feasibility and usefulness of our approach.','',2,'Ghanem SoltanaElizabeta FourneretMorayo AdedjoumaMehrdad SabetzadehLionel Briand','springer/bpel security.csv','springer',''),(2087,'Platform for integrative simulation','2013','0','','Abstract The use of simulation tools in production process planning within industrial environments is already well established. However, this generally involves conducting individual simulations of specific sub-processes using default settings as the boundary parameters. This method does not take into account production history influences on the individual sub-processes. In order to improve planning quality using simulations, the individual simulations need to be linked to form a continuous simulation chain. The methodology for linking simulations described in this paper allows flexible extension of the overall system, allowing incorporation of a variety of heterogeneous simulation chains. In addition to linking distributed simulation resources on an infrastructural level, Internetbased access is also provided, which allows partners to collaborate in setting up simulation chains. There is a data integration component to ensure the correct syntactic, structural and semantic transformation of data between the individual heterogeneous simulations and to ensure all the required simulation data is integrated into a common database. To enable integrative analysis of the simulation data for a whole process, there is an interactive visualisation component which can be used on a variety of visualisation systems, from regular workstation computers through to dedicated virtual reality systems with numerous projection surfaces. Interactive modification of dataset timing within the context of analysis is a key aspect in this respect. In future, the system will be expanded so that interactive analyses can be conducted on the in-tegrated database and bidirectionally coupled with the visualisation component in real time. This will enable intuitive access to the integrated simulation data, even across process boundaries, thus providing optimal support for planning or modification of production processes.','',1,'Thomas BeerTobias MeisenRudolf ReinhardDaniel SchilbergTorsten KuhlenSabina JeschkeChristian Bischof','springer/service oriented architecture security.csv','springer','\0'),(2088,'Intelligent state-based XML firewall','2012','','firewall; rule-based learning systems; service-oriented architecture (SOA); XML','Service-oriented architecture (SOA) is an architectural style of software systems, in which a system is composed of isolated or independent services. XML has become the most common way for information exchange and data representation in SOA. Electronic bill presentment and payment (EBPP) is one of the most critical SOA applications for which security a major concern. State-based XML firewall systems have been introduced as one of the major means for SOA security. The work of this paper introduces a new learning mechanism to extend State-based XML Firewall to improve security level. The proposed extension is justified using a case study. © 2012 IEEE.','',1,'Thabet G., Khattab S., Hassan H.A., Omara F.A.','scopus/service oriented architecture security.csv','scopus','\0'),(2089,'Towards Real-Time Data Acquisition for Simulation of Logistics Service Systems','2013','1',' Fourth Party Logistics Provider Simulation CEP Data Acquisition','Abstract Driven by rising competition pressure companies began to outsource at least parts of their logistics functions to specialized logistics providers in order to concentrate on the core competences. Hence, new business models emerged like the fourth party logistics provider who acts like a coordinator of arising logistics networks. One of the main tasks of the provider is the planning of such logistics networks, which have a very collaborative and dynamic character. In this paper an efficient way to integrate process modeling and simulation as part of the planning phase is introduced. Furthermore, an integrated approach is introduced for supporting the planning by a better data acquisition in order to provide reliable results at an affordable effort using simulation techniques. Therefore, complex event processing is used to gather real-time data and provides the data as service profiles for simulation.','',2,'Stefan MutkeMartin RothAndré LudwigBogdan Franczyk','springer/bpmn security.csv','springer','\0'),(2090,'Towards an Ontology for Cloud Services','2012','6','cloud brokerage;cloud computing;cloud governance;cloud management;semantic cloud','The emergence of cloud computing has created a shift in the service lifecycle, a shift meant to meet the requirements of cloud environments. Anticipating this, cloud governance, a step forward from SOA governance, tries to consolidate an environment where collaboration between various enterprises can be easily achieved. Cloud governance lays the groundwork for enabling easy application development and deployment by providing critical services that range from service management to security, monitoring and audit. As means of support for cloud computing, several ontologies have tried to bridge gaps and provide interoperability. None, however, have taken the time to analyze and define aspects that relate to service lifecycle and cloud governance. In this regard, our article proposes an ontology that is meant to complement existing ones.','Complex, Intelligent and Software Intensive Systems (CISIS), 2012 Sixth International Conference on',1,'T. F. Fortis; V. I. Munteanu; V. Negru','ieee/service oriented architecture security.csv','ieee',''),(2091,'Model Transformations in Non-functional Analysis','2012','0',' Model-driven quality analyses performance reliability MARTE Palladio Component Model','Abstract The quality assessment of software design models in early development phases can prevent wrong design decisions on the architectural level. As such wrong decisions are usually very cost-intensive to revert in late testing phases, model-driven quality predictions offer early quality estimates to prevent such erroneous decisions. By model-driven quality predictions we refer to analyses which run fully automated based on model-driven methods and tools. In this paper, we give an overview on the process of model-driven quality analyses used today with a special focus on issues that arise in fully automated approaches.','',1,'Steffen Becker','springer/webservice security.csv','springer','\0'),(2092,'Container-Level Security Certification of Services','2012','0','','Abstract The increasing success of the Service-Oriented Architecture (SOA) paradigm has fostered the implementation of complex services, including business processes, via dynamic selection and composition of remote services providing single functionality. Run-time selection and composition of services require the deployment of high-level security standards for the SOA infrastructure, to increase the confidence of both service consumers and providers that the services satisfy their security requirements and behave as expected. In this context, certification can play a fundamental role and provide the evidence that a set of properties hold for a given service. Security certification of services can involve two different aspects: i) the evaluation of the container in which the service is deployed, in terms of compliance with web service security standards and policies; ii) the verification and validation of the service implementation. In this chapter, we focus on the first aspect and we propose an overview of container-level certification of services.','',2,'Marco AnisettiClaudio A. ArdagnaErnesto Damiani','springer/bpel security.csv','springer','\0'),(2093,'LARISSA: Layered architecture model for interconnection of systems in UAS','2014','1','Architectural model;IMA;UAS;UAV;certification;critical embedded systems','Architectural models have been used to enable the development of more appropriate and structured systems, from the simplest to the most complex. The use of models in embedded systems is important especially when it comes to critical embedded systems. In such systems, as unmanned aerial vehicles, these models are designed to allow compliance standards, reduction in production time, reduce and make easy the development and maintenance process. Critical embedded systems have specific requirements, such as high reliability and real-time response, security and performance. The definition of an architectural model that allows these aspects is taken into account, and that provide compliance with the standards and enables accurate and rapid development. This is innovative and allows the scientific community and the industry to have benefits. In this sense, the LARISSA aims at developing an architectural model for systems interconnection in unmanned aircraft systems (UASs), allowing features reuse and certification of these aircrafts.','Unmanned Aircraft Systems (ICUAS), 2014 International Conference on',1,'E. A. Marconato; D. F. Pigatto; K. R. L. J. C. Branco; L. H. C. Branco','ieee/service oriented architecture security.csv','ieee','\0'),(2094,'Investigation of security issues for service-oriented network architecture','2016','','Authentication; Authorisation; Availability; Confidentiality; Flexible network; Integrity; Security; Services; SONATE','The current Internet is facing unprecedented demands, and the challenges and protocols were designed and incorporated into the system as a patchwork for solving many issues. The patchwork approach of non-integrated security mechanisms does not appropriately address the problems, because the problem lies with the architecture itself and not of protocols. Flexible network architecture is being explored as a new approach to address the issues of technical and non-technical challenges of the present Internet. Many flexible network architectures were designed to address the infrastructural problems of the current Internet. Service-oriented network architecture is one that is based on service-oriented architecture supporting short-term and long-term demands that evolve. It offers various flexible services without considering the threats that are raised due to lack of security in the architecture. The paper discusses the security requirements for the proposed architecture in order to avoid and tolerate the attacks of the network. Security and Communication Networks. © 2015 John Wiley & Sons, Ltd.','',1,'Rudra B., Vyas O.P.','scopus/service oriented architecture security.csv','scopus',''),(2095,'A Service-Oriented Architecture for Virtualizing Robots in Robot-as-a-Service Clouds','2014','0',' Cloud Robotics Service-Oriented Architecture SOAP Web Services Robot Operating System (ROS) Remote Robotic Labs','Abstract Exposing software and hardware computing resources as services through a cloud is increasingly emerging in the recent years. This comes as a result of extending the service-oriented architecture (SOA) paradigm to virtualize computing resources. In this paper, we extend the paradigm of the SOA approach to virtualize robotic hardware and software resources to expose them as services through the Web. This allows non-technical users to access, interact and manipulate robots simply through a Web browser. The proposed RoboWeb system is based on a SOAP-based Web service middleware that binds robots computing resources as services and publish them to the end-users. We consider robots that operates with the Robotic Operating System (ROS), as it provides hardware abstraction that makes easier applications development. We describe the implementation of RoboWeb and demonstrate how researchers can use it to interact remotely with the robots. We believe that this work consistently contributes to enabling remote robotic labs using the cloud paradigm.','',1,'Anis Koubaa','springer/service oriented architecture security.csv','springer','\0'),(2096,'Role-Based Integrated Access Control and Data Provenance for SOA Based Net-Centric Systems','2015','0','Data consistency;data provenance;data quality;data reliability;data trustworthiness;information flow control;role mapping;role-based access control,','In multi-domain service-based systems, services from different domains are composed together to accomplish critical tasks. In these systems, data flow from one domain to another through the composed services. Thus, security and trustworthiness are the major concerns. Many access control models have been developed for service-based systems. Also, many data provenance schemes have been proposed in recent years to support data quality assessment and enhancement, data reproduction, etc. However, none of the existing mechanisms consider both access control and data provenance in a integrated model. In this paper, we propose an integrated role-based access control and data provenance model to secure the cross-domain interactions. We develop a role-based data provenance scheme which tracks the roles of originators/contributors of a data object and uses this information to help evaluate data trustworthiness. We also make use of the data provenance information and the derived data quality attributes to assist with cross domain access and information flow control. This integrated model mutually enhances data provenance and access control, providing better security and trustworthiness for many multi-domain service-based applications.','IEEE Transactions on Services Computing',1,'I. L. Yen; W. SHE; F. Bastani; B. Thuraisingam; W. Zhu','ieee/soa security.csv','ieee',''),(2097,'Modeling of task-based authorization constraints in BPMN','2007','38','Business process modeling and analysis; Security in business processes','Workflows model and control the execution of business processes in an organisation by defining a set of tasks to be done. The specification of workflows is well-elaborated and heavily tool supported. Task-based access control is tailored to specify authorization constraints for task allocation in workflows. Existing workflow modeling notations do not support the description of authorization constraints for task allocation commonly referred to as resource allocation patterns. In this paper we propose an extension for the Business Process Modeling Notation (BPMN) to express such authorizations within the workflow model, enabling the support of resource allocation pattern, such as Separation of Duty, Role-Based Allocation, Case Handling, or History-Based Allocation in BPMN. These pattern allow to specify authorization constraints, for instance role-task assignments, separation of duty, and binding of duty constraints. Based on a formal approach we develop an authorization constraint artifact for BPMN to describe such constraints. As a pragmatic demonstration of the feasibility of our proposed extension we model authorization constraints inspired by a real world banking workflow scenario. In the course of this paper we identify several aspects of future work related to verification and consistency analysis of modeled authorization constraints, tool-supported and pattern-driven authorization constraint description, and automatic derivation of authorization policies, such as defined by the extensible Access Control Markup Language (XACML). © Springer-Verlag Berlin Heidelberg 2007.','',2,'Wolter C., Schaad A.','scopus/bpmn security.csv','scopus',''),(2098,'Trustworthiness monitoring and prediction of composite services','2012','5','','This paper presents an approach to monitoring and predicting the trustworthiness of services that are assembled from component services. In service compositions the number of component services that need to be aggregated may be large and dynamically changing. Additionally, the component services may vary in their importance to the value of the composite service and in their trustworthiness and resource capacity. Service compositions require the capability to dynamically adapt to changes that may occur at runtime. Those changes can occur in supply and demand, in the environment or in the component services\' properties and behaviour. Service composers need to be able to respond swiftly to changed trustworthiness requirements and capabilities of service compositions, where those changes may not be easily predictable. With the availability of alternatives providing the same functionality as those already integrated in a composition, service composers can take advantage of this by replacing degrading or unsatisfactory components.','Computers and Communications (ISCC), 2012 IEEE Symposium on',1,'H. Elshaafi; J. McGibney; D. Botvich','ieee/service oriented architecture security.csv','ieee','\0'),(2099,'Composing Web Services in an Open World: QoS Issues','2008','0','','Summary form only given. Orchestrating Web services has become the method of choice for building new services on top of existing ones, e.g., for business processes. Languages and methods have been developed and are now getting widely used, BPEL being the typical instance. When exposing the profile of a Web service, QoS parameters are typically specified. Besides security aspects, QoS involves a variety of parameters related to performance as well as quality of the returned data. How QoS should be handled in this context is the subject of my talk. A number of novel and not so well identified issues occur that make this topic deviating from QoS for networks in a substantial way. Firstly, since Web services aim at hiding details for the external world, no information regarding the infrastructure or resources supporting a Web service are exposed. This prevents from using classical resource based performance models; so contracts are preferred instead. A second important feature is that, unlike in networks, the control in orchestrations may depend on the carried data. Consequently performance and data interfere. These and other features make the subject of QoS for composite Web services a novel area offering plenty of non standard issues that I shall discuss.','Quantitative Evaluation of Systems, 2008. QEST \'08. Fifth International Conference on',2,'A. Benveniste','ieee/bpel security.csv','ieee','\0'),(2100,'2015 International Conference on Military Communications and Information Systems, ICMCIS 2015','2015','','','The proceedings contain 52 papers. The topics discussed include: accumulated state densities and their use in decorrelated track-to-track fusion; an efficiency of broadcast mechanisms based on cluster heads in clusterized radio network; an open process for software development in classified environments as prerequisite for military app stores; advanced security gateways for heterogeneous tactical ad hoc networks; a tool for matching crowd-sourced and authoritative geospatial data; a high assurance cross-domain guard for use in service-oriented architectures; an attempt at defining cyberdefense situation awareness in the context of command & control; analysis of a CFAR correlation radiometer; cross-layer analysis of malware datasets for malicious campaigns identification; bridging semantic interoperability gaps with SILF; and consensus algorithms for distributed spectrum sensing based on goodness of fit test in cognitive radio networks; and challenges for network aspects of cognitive radio.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus',''),(2101,'Research on MDA and SOA integrated software craftsmanship','2015','','','Traditional hand workshop software development mode brings low software developing consistency, limited software size and uncontrollability of software cost. The reasonable and effective integration scheme is insufficient in the face of the more and more demanding of software platform integration. This paper gives a profound analysis of the very nature of software platform integration and craftsmanship, explores the invariant nature of craftsmanship model and puts forward the guiding architecture of software integration and craftsmanship. © 2015 Taylor & Francis Group, London.','',1,'Wang Q.H., Liu L.S., Chen J., Lian J., Pei Z.L.','scopus/soa security.csv','scopus',''),(2102,'Dynamic Data Processing Middleware for Sensor Networks','2012','1',' sensor networks middleware computational REST web of things','Abstract Heterogeneous and resource-constrained sensors, computational and communication latencies, variable geospatial deployment and diversity of applications set challenges for sensor network middleware. RESTful architecture principles have been widely applied in middleware design. The new Computational REST architecture offers additional set of principles. In Computational REST, computations are seen as resources and interactions are conducted as computational exchanges. In this PhD thesis work, these principles are studied and elaborated further in the context of sensor network middleware. Middleware and system component prototypes are developed, evaluated and utilized by field trials in real-world settings. As a result, new knowledge is generated of ubiquitous sensor network middleware design and dynamically distributing data processing computational load in resource-constrained sensor networks.','',1,'Teemu LeppänenJukka Riekki','springer/service oriented architecture security.csv','springer','\0'),(2103,'A novel aspect-oriented BPEL framework for the dynamic enforcement of web services security','2012','5','AOP; BPEL; RBAC; Security; Web services','In this paper, we propose a new framework for the dynamic enforcement of composite Web services security, which is based on a synergy between Aspect-Oriented Programming (AOP) and BPEL (Business Process Execution Language). This synergy is achieved through the elaboration of a new language called AspectBPEL, which is used to specify security policies Abstract: separate components, referred to as aspects, to be weaved systematically in a BPEL process. The injected aspects activate the security policies at runtime on specific join points. Our approach enjoys several additional features such as (1) separating the business and security concerns of composite Web services (2) allowing the update of security mechanisms of composite Web services at run time, (3) providing modularity for modeling cross-cutting concerns between Web services, (4) centralising some security measurements at the BPEL side and (5) providing a framework fully compatible with any BPEL engine regardless of the adopted development environment. Copyright © 2012 Inderscience Enterprises Ltd.','',2,'Mourad A., Ayoubi S., Yahyaoui H., Otrok H.','scopus/bpel security.csv','scopus','\0'),(2104,'Configurable Declare: Designing Customisable Flexible Process Models','2012','1',' business process modelling configurable process models declarative process models Declare','Abstract Declarative languages are becoming more popular for modelling business processes with a high degree of variability. Unlike procedural languages, where the models define what is to be done, a declarative model specifies what behaviour is not allowed, using constraints on process events. In this paper, we study how to support configurability in such a declarative setting. We take Declare as an example of a declarative process modelling language and introduce Configurable Declare . Configurability is achieved by using configuration options for event hiding and constraint omission. We illustrate our approach using a case study, based on process models of ten Dutch municipalities. A Configurable Declare model is constructed supporting the variations within these municipalities.','',2,'Dennis M. M. SchunselaarFabrizio Maria MaggiNatalia SidorovaWil M. P. van der Aalst','springer/bpel security.csv','springer','\0'),(2105,'A conceptual-driven survey on future internet requirements, technologies, and challenges','2013','4',' Future internet Future networks New generation Architecture Requirements Challenges Technologies Concepts','Abstract Nowadays, research initiatives to redesign the Internet are popping up around the world. Each of these projects has a particular focus and its own set of design requirements and key technologies. The panorama shows a wide diversity of pre-requirements and arguments, some very specific and superficial, others more general and deep. Despite this diversity, a conceptual-driven analysis of such scenario could reveal the current state-of-the-art on future Internet research, the common aspects that permeate all initiatives, and the open issues to be addressed in future work. This paper provides a comprehensive overview of the contemporary research from an abstract point of view, covering the design requirements and ingredients that are being adopted, interrelating, and analyzing them.','Journal of the Brazilian Computer Society',1,'Antonio Marcos Alberti','springer/service oriented architecture security.csv','springer','\0'),(2106,'A Web Services Composition Model and Its Verification Algorithm Based on Interface Automata','2011','0','cloud computing;interface automata;services composition;web service','Web service is a key distributed computing technology to achieve \"software as a service\" (SaaS) in cloud computing. How to integrate various web services according to business processes correctly and efficiently, realize the seamless integration of services, and form enterprise level service processes with abundant functions has become an important problem. In this paper, we presented a new web services composition model and its verification algorithm based on interface automata. By extending interface automata, this model supports semantic descriptions of web services. We proposed the transformation rules and transformation algorithm between BPEL and the semantic service interface automata model. Furthermore, an interface automata composition algorithm was designed to achieve the concurrent composition of interface automata. In order to judge whether the service process generated satisfies the business function requirements, a verification algorithm was designed to validate the execution sequence of the concurrent composite interface automaton, and the simulation experiment showed that verification algorithm could be used to validate the consistency of the service process and the business process correctly and effectively.','2011IEEE 10th International Conference on Trust, Security and Privacy in Computing and Communications',2,'J. Li; S. Chen; L. Jian; H. Zhang','ieee/bpel security.csv','ieee','\0'),(2107,'Trusted Service Discovery through Identity Management','2013','2','Authentication;Identity management;Integrity;Service Discovery','Service oriented environments face threats from unauthorized clients and fake or compromised services. The threats exist both during service discovery and service invocation, and should be mitigated through the same security framework. Through the use of a modern identity management system which offers a combination of key attestation and attributes for access control, more threats can be appropriately addressed. The combination of discovery and identity management results in a more comprehensive threat mitigation, scalable maintenance of security related information and easier federations of security domains. The architecture and protocols of this system combination are presented and discussed.','MILCOM 2013 - 2013 IEEE Military Communications Conference',1,'A. Fongen; T. H. Bloebaum','ieee/service oriented architecture security.csv','ieee','\0'),(2108,'Financial analysis based sectoral portfolio optimization under second order stochastic dominance','2016','0',' Portfolio optimization Financial ratios Second order stochastic dominance Almost second order stochastic dominance In-sample and out-of-sample analysis','Abstract The study proposes to include the financial analysis (FA) in optimal portfolio selection. The role of FA in investment decisions is well recognized. While comparing two stocks on FA of their companies it is important to have both drawn from the same sector of economy. This reason motivated us to propose a sectoral portfolio optimization (SPO) which, instead of looking to optimize among all stocks together, focuses on optimizing stocks within each sector on the basis of FA. These stocks are then pooled together and an optimal portfolio is formed from them with their FA weights and mean returns. In context of FA, the four financial ratios included in present study are return on asset (profitable ratio), debt-assets ratio (solvency ratio), current ratio (liquidity ratio), and price-to-earning ratio (valuation ratio). The risk in a portfolio is quantified using the second order stochastic dominance and to this effect constraints are added in the selection process to generate optimal portfolios for rational risk averse investors. The performance of the optimal portfolios from the proposed model is tested against the portfolios from the traditional second order stochastic dominance model [named (SSDP) in this work], the benchmark index and four 5-star rated mutual funds of India from diversified equity. The out-of-sample analysis is carried on mean returns, Sharpe ratio, Sortino ratio, and also their ability to dominate the benchmark index in almost second order stochastic dominance sense over the tolerable violation regions. The stock price data for the period April 2004 to November 2014 of S&P BSE 500 index is used for testing the models. The optimal portfolios generated from the SPO perform better than the portfolios generated from the (SSDP), the benchmark index and the MFs, indicating effectiveness of FA in SPO framework.','Annals of Operations Research',1,'Amita SharmaAparna Mehra','springer/soa security.csv','springer',''),(2109,'Data encryption framework model with watermark security for Data Storage in public cloud model','2014','1','Cloud Data Storage;Cloud Encryption;Data Confidency;Data Privacy;Encryption Model;Watermark Security','Cloud computing technology is a new concept of providing dramatically scalable and virtualized resources. It implies a SOA (Service Oriented Architecture) type, reduced information technology overhead for the end level user, greater flexibility model, reduced total cost of ownership and on-demand service providing structure. From the user point of view, one of the main concerns is cloud security from the unknown threats. The lack of physical access to servers constitutes a completely new and disruptive challenge for investigators. The Clients can store, transfer or exchange their data using public cloud model. This paper represents the encryption method for public cloud and also the cloud service provider\'s verification mechanism using the third party auditors with framework model. The Cloud Data Storage is one of the mandatory services which are acquiring in this rapid development business world.','Computing for Sustainable Global Development (INDIACom), 2014 International Conference on',1,'Boopathy D; M. Sundaresan','ieee/service oriented architecture security.csv','ieee','\0'),(2110,'A reliable user authentication and key agreement scheme for web-based hospital-Acquired infection surveillance information system','2012','3','Authentication; Hospital-Acquired infection; Illegal access; Infection control; Surveillance system','With the rapid development of the Internet, both digitization and electronic orientation are required on various applications in the daily life. For hospital-Acquired infection control, a Web-based Hospital-Acquired Infection Surveillance System was implemented. Clinical data from different hospitals and systems were collected and analyzed. The hospital-Acquired infection screening rules in this system utilized this information to detect different patterns of defined hospital-Acquired infection. Moreover, these data were integrated into the user interface of a signal entry point to assist physicians and healthcare providers in making decisions. Based on Service-Oriented Architecture, web-service techniques which were suitable for integrating heterogeneous platforms, protocols, and applications, were used. In summary, this system simplifies the workflow of hospital infection control and improves the healthcare quality. However, it is probable for attackers to intercept the process of data transmission or access to the user interface. To tackle the illegal access and to prevent the information from being stolen during transmission over the insecure Internet, a password-based user authentication scheme is proposed for information integrity. © 2011 oSpringer Science+Business Media, LLC.','',1,'Wu Z.-Y., Tseng Y.-J., Chung Y., Chen Y.-C., Lai F.','scopus/service oriented architecture security.csv','scopus','\0'),(2111,'Extra-Tree: A model to organize execution traces of Web services','2010','0','Audit Trail;BPEL;Execution Trace;Extra-Tree;Security;Web service','In this paper, a non-linear model called Extra-Tree is proposed to organize execution traces of orchestrate Web services. This proposed model provides us a secured logging system which records the history of all the suspicious or malicious activities from the initiation of the Web service to the completion of the Web service. The main focus of this paper is to organize execution traces of Web services in a distributed computing paradigm in the form of a tree. One of the special characteristics of the model is that the execution traces of Web services can be retrieved from the coarse-grained level to the fine-grained level of the tree as per requirement.','Computer Information Systems and Industrial Management Applications (CISIM), 2010 International Conference on',2,'S. Sinha; S. K. Sinha; B. S. Purkayastha','ieee/bpel security.csv','ieee','\0'),(2112,'Sometimes it\'s better to be STUCK! SAML transportation unit for cryptographic keys','2013','','Key Distribution; Key Transportation; SAML; SAML Extension; XML','Over the last decade the Security Assertion Markup Language (SAML) framework evolved to a versatile standard for exchanging security statements about subjects. Most notably, SAML facilitates the authentication of users, and is thus deployed in both Webservice (SOAP, WS-Security) and REST-based (SAML SSO webbrowser profile, SAML Bearer token in OAuth) services. This paper recommends an extension to the SAML framework which provides an easy way to transport cryptographic key material bound to assertions issued by particular subjects. The proposal fits into existing solutions and is fully compliant with the Security Assertion Markup Language, XML Digital Signature and XML Encryption standards. © 2013 Springer-Verlag.','',1,'Meyer C., Feldmann F., Schwenk J.','scopus/webservice security.csv','scopus','\0'),(2113,'Data Depedency Based Trust Evaluation for BPEL Processes','2012','1','XBFG;data dependency;dependency link;reduction rules;trust evaluation','Composite services implement value-added functionality by composing service components with smaller granularity. Trust is an important criterion to judge whether a composite service can behave as expected. A feasible trust evaluation method for composite services is needed, which can guide service selection for users and the trust-based optimization and evolution for composite services. In this paper, a data dependency based trust evaluation approach for composite services in Business Process Execution Language (BPEL) is proposed. Firstly, we derive define-use pairs of variables to describe data dependency between service components in BPEL processes modeled by extensible BPEL Flow Graph (XBFG), in addition, dependency links including both direct and indirect data dependencies are used to evaluate the trust values of these service components, furthermore, on the basis of BPEL structure and XBFG, reduction rules are proposed to evaluate the global trust values of BPEL processes. Experiment results demonstrate that the proposed approach is effective for the trust evaluation of BPEL composite services and stable enough with the growing number of service components in BPEL.','2012 19th Asia-Pacific Software Engineering Conference',2,'C. Liu; B. Li; S. Qi; X. Wu; R. Song','ieee/bpel security.csv','ieee','\0'),(2114,'A Document Centric Approach for Analysis and Design of E-government Systems','2015','0',' Document-centric Modelling Information systems Analysis Design','Abstract As the computer literacy spreads among public servants, the focus of communication between system analysts and users is moved on specification forms that appears formal and semi-formal documents, and spreadsheet like descriptions. The documents are going to be planned to serve both clients and officers of government, both external and internal processing. For system and business analyst, there is a new situation that requires the polishing and improving the readily available methods and methodologies. For accurate interpretations of valid requirements, the system analyst needs approaches that are grounded in formal methods. In e - government environment, the specification of requirements happens through calculation spreadsheet and/or office document. So that there is a need for a systematic and at least semi-formal approach that focuses on the ubiquitous documents . The models deduced from the document-centric point of view should be placed into an overall Information Systems Architecture. The linkage between the models provides the opportunity for cross validation and verification to keep up the integrity and consistency. The convoluted relationships among the models can be adequately represented by generalized hypergraphs that offer the chances a disciplined and correct systems analysis and design procedure.','',1,'Bálint MolnárAndrás Benczúr','springer/service oriented architecture security.csv','springer',''),(2115,'Dynamic DICOM configuration in a service-oriented medical device architecture','2015','','','A surgical intervention raises additional requirements to a medical device network, be it security concerns or the demand for just-in-time integration of an additional devices. The German national flagship project OR.NET aims to satisfy these requirements by defining, implementing and validating an integration solution for safe and dynamic networking. This work presents an approach to incorporate imaging related medical devices into a dynamic plug and play operating room (OR) network utilizing the existing Digital Imaging and Communications in Medicine (DICOM) protocol. The presented approach was created as part of the OR.NET project to realize the integration of DICOM devices into the developed infrastructure, both in regard to newly created DICOM devices with direct support of the OR.NET protocol and the integration of existing DICOM devices (e.g. image archives) employing a gateway. Preliminary evaluation results indicate that the approach is viable and that no critical transmission delays are introduced by the prototypical gateway implementation.','2015 37th Annual International Conference of the IEEE Engineering in Medicine and Biology Society (EMBC)',1,'J. Schlamelcher; M. Onken; M. Eichelberg; A. Hein','ieee/service oriented architecture security.csv','ieee',''),(2116,'On-the-fly algorithm for the service composition problem','2015','','','The behavioral service composition problem arises when no available service can achieve a target behavior. The composition problem consists in building a special service, an orchestrator, which schedules the actions of the services to produce a behavior equivalent to the target one. In this paper, services are modeled as nondeterministic transition systems and the behavior of the composition realizes the behavior of the target. We propose an algorithm that avoids the full computation of the product of services, and instead constructs the orchestrator incrementally. Unlike most algorithms where the whole state space, which is exponential in the number of services, is visited, the proposed algorithm can find a solution by visiting only the pertinent portion of the state space. We also show that this on-the-fly behavior can be paired with a heuristic to speed up the synthesis.','2015 7th International Conference on New Technologies, Mobility and Security (NTMS)',1,'H. Farhat; G. Feuillade','ieee/service oriented architecture security.csv','ieee',''),(2117,'A Recommend Service Based on Expert Knowledge Model in Agricultural Environments','2012','0',' recommend service expert knowledge agricultural environments','Abstract Many of works in fields of agriculture for a long time have been based on agricultural experiences. Recently, rapid and unpredictable global climate changes and environmental pollution have made stable agricultural works, difficult. So, for a precision and smart agriculture, agricultural works have to be based on more complicated information and data, but simple experimental know-how in agricultural environments. In this paper, we propose a recommend service based on an agricultural expert knowledge model to support a precision agriculture with Internet, Sensors, and IT. The proposed service can automatically fuse valuable knowledge and experience in the agricultural fields according to experimental changes in the growth of crops, and can recommend best services to farmers. Therefore, with the proposed service, a farmer can easily and stably do agricultural works, irrespective of changes of crops and environmental changes.','',1,'Yongyun ChoKyoungryong ChoChangsun ShinJangwoo ParkEun-Ser Lee','springer/webservice security.csv','springer','\0'),(2118,'Advanced management of data integrity: property-based testing for business rules','2015','0',' Software verification Model-based testing Business rules Data integrity QuickCheck','Abstract Software testing is a very delicate aspect of software development, since designing good test sets is a non-trivial task. In this article, we describe a testing technique for testing business rules using property-based testing and the property-based automatic testing tool QuickCheck. Systematic, effective, and efficient testing of business rules increases the confidence on the validation of business concepts and domain rules which are specifically critical to data consistency. The approach is presented on the basis of small but representative examples in order to facilitate the readers’ understanding, but it has been successfully evaluated in a number of different industrial examples, demonstrating that it generalises to much larger systems and is, thus, broadly applicable.','Journal of Intelligent Information Systems',1,'Laura M. Castro','springer/soa security.csv','springer',''),(2119,'Towards cloud computing: A literature review on cloud computing and its development trends','2012','9','Cloud computing; Clouds security; Development trends; Serivce governance; Service-oriented architecture','This article contains a review of technical literature relating the definitions, characteristics, operations, security management, service governance, and development trends of cloud computing. The advantages and disadvantages of cloud computing are respectively described to represent the impacts of cloud computing in various fields. The article also explains the structure of clouds in service-oriented architectures and summarizes six major development trends, which can be utilized as a reference for entrepreneurs and researchers. © 2012 IEEE.','',1,'Gai K., Li S.','scopus/service oriented architecture security.csv','scopus',''),(2120,'Building Platform as a Service for High Performance Computing over an Opportunistic Cloud Computing','2013','0',' IaaS PaaS Cloud Computing High Performance Computing Opportunistic Computing','Abstract Platform as a Service providers deliver development and runtime environments for applications that are hosted on the Cloud. In this paper, we present a Platform as a Service model constructed over a desktop-based Cloud infrastructure for developing high performance computing applications taking advantage of unused resources opportunistically. We highlight the key concepts and features of the platform, as well as its innovation on an opportunistic computing and we present the results of several tests showing the performance of the proposed model.','',1,'German A. SoteloCesar O. DiazMario VillamizarHarold CastroJohnatan E. PeceroPascal Bouvry','springer/service oriented architecture security.csv','springer','\0'),(2121,'Research on Job Security Scheduling Strategy in Cloud Computing Model','2015','','Cloud computing;Genetic algorithm;Security demand;Security scheduling;Trust level','This paper concentrates on the problem of job security scheduling problem under the cloud computing environment. The Architecture of the cloud computing platform is made up of four layers, including 1) SOA architecture, 2) Management Middleware, 3) Resource virtualization and 4) Physical Resources. Next, we formally describe the problem of the job security scheduling under cloud computing. To guarantee the security level of job scheduling, security demand and trust level are defined in our work. Afterwards, the proposed genetic algorithm based job security scheduling is proposed. The main innovation of our proposed algorithm lies in that we utilize each chromosome to represent a schedule of a set of jobs on several computers, and then each gene is represented as a pair to describe the relationships between jobs and computers. Finally, experimental results demonstrate that our algorithm can effectively schedule jobs with higher level security and lower processing time cost.','Intelligent Transportation, Big Data and Smart City (ICITBS), 2015 International Conference on',1,'H. Zhang','ieee/service oriented architecture security.csv','ieee',''),(2122,'Securing a space-based service architecture with coordination-driven access control','2013','10','Access control; Coordination middleware; Service-oriented architectures; Tuple spaces','In distributed applications, multiple autonomous processes need to collaborate in an efficient way. Space-based middleware enables data-driven coordination for these processes via shared tuple spaces that allow a decoupled form of communication. Complex coordination logic may be provided to clients via reusable service components that access such tuple spaces to fulfill their task. To enable the secure collaboration of different participants, a suitable security concept for space-based services is required. In this paper, we present a fine-grained access control model that targets permissions both for invoking specific coordination services and for the data that is accessed by them. Our space based policy language adopts the middleware\'s own coordination mechanisms for the specification of simple yet expressive access control policies, thus combining coordination logic and security mechanisms into a single, unified concept. We show how a lightweight service execution framework that enforces these policies can be bootstrapped with the middleware itself, which enables using the same mechanisms for the invocation of services, the access to data and the management of policies. The feasibility of the approach is demonstrated by a use case based on a management system for distributed firewalls.','',1,'Craß S., Dönz T., Joskowicz G., Kühn E., Marek A.','scopus/service oriented architecture security.csv','scopus',''),(2123,'A Context-Aware Framework for SaaS Service Dynamic Discovery in Clouds','2014','0',' Cloud computing Mobile Computing Domain QoS Spatial context-aware Ontology','Abstract As Cloud computing and Mobile Computing become more and more prevalent, most of service consumers expect discovery suitable SaaS service in mobile environment. At the same time, in order to economize SaaS service advertisement cost, service provider need recommend SaaS service accurately based on consumer’s behavior. Therefore, how to determine a suitable policy of service discovery in mobile environment has become a challenging issue. It is considered that service in mobile environment need involve such contexts: Domain, QoS and Spatial. In this paper, we propose a context-aware framework that benefit for SaaS service discovery and recommend based on service consumer’s behavior habit and their context environment. In order to reach this target, we also present a model to describe SaaS service based on context Ontology.','',2,'Shaochong LiHao-peng Chen','springer/bpel security.csv','springer',''),(2124,'Securing Public Data Storage in Cloud Environment','2014','','Cloud Decryption; Cloud Encryption; Cloud Service Provider; Public Cloud Service Provider; Secured Data Storage; Third Party Auditor','Cloud computing technology is a new concept of providing dramatically scalable and virtualized resources. It implies a service oriented architecture type (SOA), reduced information technology overhead for the end-user, great flexibility model, reduced total cost of ownership, on-demand service providing structure and many other things. One of the main concerns of customers is Cloud security and the threat of the unknown. The lack of physical access to servers constitutes a completely new and disruptive challenge for investigators. The Users are store, transfer or exchange their data using public cloud. This paper represents the encryption method for public cloud and also the cloud service provider\'s verification mechanism using the third party auditors.','',1,'Boopathy D., Sundaresan M.','scopus/service oriented architecture security.csv','scopus','\0'),(2125,'Intelligent Systems for Monitoring and Prevention in Healthcare Information Systems','2014','0',' Healthcare Information Systems Interoperability Availability Monitoring Systems Preventing Systems','Abstract Nowadays the interoperability in Healthcare Information Systems (HIS) is a fundamental requirement. The Agency for Integration, Diffusion and Archive of Medical Information (AIDA) is an interoperability healthcare platform that ensures these demands and it is implemented in Centro Hospitalar do Porto (CHP), a major healthcare unit in Portugal. Therefore, the overall performance of CHP HIS depends on the success of AIDA functioning. This paper presents monitoring and prevention systems implemented in the CHP, which aim to improve the system integrity and high availability. These systems allow the monitoring and the detection of situations conducive to failure in the AIDA main components: database, machines and intelligent agents. Through the monitoring systems, it was found that the database most critical period is between 11:00 and 12:00 and the resources are well balanced. The prevention systems detected abnormal situations that were reported to the administrators that took preventive actions, avoiding damage to AIDA workflow.','',1,'Fernando MarinsLuciana CardosoFilipe PortelaAntónio AbelhaJosé Machado','springer/service oriented architecture security.csv','springer','\0'),(2126,'Performance assessment of XACML authorizations for supply chain traceability web services','2012','','Authorization; Performance; Supply Chain Traceability; Web Services; XACML','Service-Oriented Architecture (SOA) and Web Services (WS) offer advanced flexibility and interoperability capabilities. However they imply significant performance overheads that need to be carefully considered. Supply Chain Management (SCM) and Traceability systems are an interesting domain for the use of WS technologies that are usually deemed to be too complex and unnecessary in practical applications, especially regarding security. This paper presents an externalized security architecture that uses the eXtensible Access Control Markup Language (XACML) authorization standard to enforce visibility restrictions on trace-ability data in a supply chain where multiple companies collaborate; the performance overheads are assessed by comparing \'raw\' authorization implementations - Access Control Lists, Tokens, and RDF Assertions - with their XACML-equivalents. © 2012 IEEE.','',1,'Pardal M.L., Harrison M., Sarma S., Marques J.A.','scopus/service oriented architecture security.csv','scopus','\0'),(2127,'An Architectural Model for System of Information Systems','2015','0',' System of Systems System of Information Systems Service Oriented Architecture Architectural model','Abstract One of the most important aspects when designing and constructing an Information System is its architecture. This also applies to complex systems such as System of Information Systems (SoIS). Thus, we aim to propose an architectural model of System of Information Systems (SoIS). Though Architecture-based approaches have been promoted as a means of controlling the complexity of systems construction and evolution, what we really look for in this paper is an architectural model to aggregate services from already constructed systems. Nevertheless, it would be a good practice to compare the presented architecture of SoIS to other architecture-based approaches such as Service Oriented Architecture (SOA). Also, it is beneficial to examine how we can use the well-established standards of SOA for the designing of SoIS. In this paper we present an architectural model for System of Information Systems, and highlight the standards of Service Oriented Architecture that might help us in this task.','',1,'Saleh MajdAbel Marie-HélèneMishra Alok','springer/service oriented architecture security.csv','springer',''),(2128,'Matchmaking semantic security policies in heterogeneous clouds','2016','1','Cloud computing; Ontology; Security policies; Semantic','The adoption of the cloud paradigm to access IT resources and services has posed many security issues which need to be cared of. Security becomes even a much bigger concern when services built on top of many commercial clouds have to interoperate. Among others, the value of the service delivered to end customers is strongly affected by the security of network which providers are able to build in typical SOA contexts. Currently, every provider advertises its own security strategy by means of proprietary policies, which are sometimes ambiguous and very often address the security problem from a non-uniform perspective. Even policies expressed in standardized languages do not appear to fit a dynamic scenario like the SOA\'s, where services need to be sought and composed on the fly in a way that is compatible with the end-to-end security requirements. We then propose an approach that leverages on the semantic technology to enrich standardized security policies with an ad-hoc content. The semantic annotation of policies enables machine reasoning which is then used for both the discovery and the composition of security-enabled services. In the presented approach the semantic enrichment of policies is enforced by an automatic procedure. We further developed a semantic framework capable of matchmaking in a smart way security capabilities of providers and security requirements of customers, and tested it on a use case scenario. © 2015 Elsevier Ltd. All rights reserved.','',1,'Di Modica G., Tomarchio O.','scopus/soa security.csv','scopus',''),(2129,'A service composition model based on user experience in Ubi-cloud comp','2016','0',' User experience Ubiquitous cloud computing SaaS Service based application Service composition','Abstract The ubiquitous cloud computing environment supports software as service that allows for an efficient usage by the developer, user, and manager. But within ubiquitous cloud computing, numerous services are being provided by various service providers, making it difficult for the developer to find the service needed for system development or to apply and adopt it during development. In this paper, we propose a service composition model based on user experience where the user can find the type of service that he needs, construct a composition and apply it to the overall system development. The proposed model has three factors: service characteristics, personal information, and user preference. The service characteristics to apply the most appropriate service that the user intends to apply was taken into consideration, personal information that takes into account individual characteristics of the user and a user preference that takes into account the preferred parts in the field that the user seeks to develop was applied. To evaluate the suggested method, 100 people were recruited and surveyed on user satisfaction. The result shows that the proposed method performed better than the existing methods.','Telecommunication Systems',1,'Hwa-Young JeongGangman YiJong Hyuk Park','springer/soa security.csv','springer',''),(2130,'The internet of things: a survey','2015','33',' Literature Review IoT Internet of Things RFID Wireless Sensors Network Service Oriented Architecture','Abstract In recent year, the Internet of Things (IoT) has drawn significant research attention. IoT is considered as a part of the Internet of the future and will comprise billions of intelligent communicating ‘things’. The future of the Internet will consist of heterogeneously connected devices that will further extend the borders of the world with physical entities and virtual components. The Internet of Things (IoT) will empower the connected things with new capabilities. In this survey, the definitions, architecture, fundamental technologies, and applications of IoT are systematically reviewed. Firstly, various definitions of IoT are introduced; secondly, emerging techniques for the implementation of IoT are discussed; thirdly, some open issues related to the IoT applications are explored; finally, the major challenges which need addressing by the research community and corresponding potential solutions are investigated.','Information Systems Frontiers',1,'Shancang LiLi Da XuShanshan Zhao','springer/service oriented architecture security.csv','springer',''),(2131,'A Comparison of Mobile Patient Monitoring Systems','2013','0','','Abstract A survey of Mobile Patient Monitoring Systems is presented in this paper. Mobile patient monitoring systems have shown progress in terms of basic core functionalities needed for monitoring and detection of biosignals. However, their deployment is restricted to a small segment of health care delivery. The objective of this survey is to identify causes behind low deployment. We have selected twelve mobile patient monitoring systems and compared them against a set of functional and non-functional requirements.','',1,'Gaurav PaliwalArvind W. Kiwelekar','springer/service oriented architecture security.csv','springer','\0'),(2132,'Geospatial Metadata','2012','1','','','',1,'David M. Danko','springer/service oriented architecture security.csv','springer','\0'),(2133,'Behavioral Polymorphism and Parametricity in Session-Based Communication','2013','5','','Abstract We investigate a notion of behavioral genericity in the context of session type disciplines. To this end, we develop a logically motivated theory of parametric polymorphism, reminiscent of the Girard-Reynolds polymorphic λ -calculus, but casted in the setting of concurrent processes. In our theory, polymorphism accounts for the exchange of abstract communication protocols and dynamic instantiation of heterogeneous interfaces, as opposed to the exchange of data types and dynamic instantiation of individual message types. Our polymorphic session-typed process language satisfies strong forms of type preservation and global progress, is strongly normalizing, and enjoys a relational parametricity principle. Combined, our results confer strong correctness guarantees for communicating systems. In particular, parametricity is key to derive non-trivial results about internal protocol independence, a concurrent analogous of representation independence, and non-interference properties of modular, distributed systems.','',1,'Luís CairesJorge A. PérezFrank PfenningBernardo Toninho','springer/service oriented architecture security.csv','springer','\0'),(2134,'Employing Service Orientation to Enable Training as a Service in the U.S. Army','2013','0','cloud computing;distributed computing;mobile computing;modeling and simulation;service oriented architecture;training;web services','Currently many training systems acquired, fielded and sustained by the U.S. Army are unable to seamlessly comply with a continuously evolving and often complex computational environment. The current state of such training systems must advance to a Training as a Service (TaaS) future state in order to adapt to a volatile defense budget, conform to policy updates, and enhance the training capabilities afforded to the War fighter. TaaS will transform current Army training applications into distributed web-based services, allowing them to be accessible across any location via thin client workstations and wireless mobile devices. The motivation behind this migration is coming from the Common Operating Environment (COE) Architecture Guidance published by the U.S. Army Chief Information Officer and the Assistant Secretary of the Army for Acquisition, Logistics, and Technology. In order to achieve the COE objectives, the Army recently launched a pilot study on the Common Training Instrumentation Architecture (CTIA). CTIA is the foundation architecture of the Army\'s Live Training Transformation (LT2) Product Line that provides software infrastructure and services to live training product applications. This paper describes the migration of CTIA to TaaS using a specific set of modern computing technologies that will enable rapid delivery of training capabilities across servers, mobile devices, and heterogeneous platforms. Specifically service-oriented architecture (SOA) and cloud computing are considered which can satisfy the requirements of the TaaS and COE, and meet user demands for an enhanced training experience. Furthermore, this paper discusses the approach taken to elicit the future needs of the Army\'s live training community, and how cloud computing and SOA are leveraged to meet required capabilities. Lastly, this paper discusses some unique considerations on SOA-related security issues.','Cloud Engineering (IC2E), 2013 IEEE International Conference on',1,'J. T. Lanman; P. K. Linos','ieee/service oriented architecture security.csv','ieee','\0'),(2135,'An aggregation composition compensation method based on paired net','2012','0',' Web services composition failure handling composition compensation execution semantic analysis paired net','Abstract With regard to the failure and cancellation of business logic of web services composition (WSC), this paper propose a novel web services transaction compensation mechanism based on paired net which can dynamically establish agile compensation-triggered process (CSCP-Nets), and satisfy prospective compensation requirements. The related execution semantics of five usual composition compensation patterns based on paired net are analyzed in the situations of successful execution, failure compensation and failure recovery. Paired net based application of trip reservation process (TRP) shows that it is feasible.','International Journal of Automation and Computing',1,'Xiao-Yong MeiYi-Yan FanChang-Qin HuangAi-Jun JiangShi-Xian Li','springer/soa security.csv','springer','\0'),(2136,'WSCMon: runtime monitoring of web service orchestration based on refinement checking','2012','7',' Runtime monitoring Web service Service orchestration Process algebra CSP Refinement checking Operational semantics System specification Requirement specification Runtime-monitorable','Abstract Service-oriented systems, especially web services, have been given strong attention as an important approach to integrate heterogeneous systems, in which complex services are composed of simpler services offered by various service providers. The correctness of service composition requires techniques to verify whether composite services behave properly. To this end, in this paper, we propose a novel method for runtime monitoring of composite services. In our method, system specifications, which are automatically generated from descriptions of service composition, and requirement specifications, which include safety properties, are constructed to detect Business Process Execution Language (BPEL) engine-related and BPEL process-related violations. We employ process algebra as the primary formalism to express specifications. To verify the correctness of composite services, we check the refinement relation between specifications and observed behaviors. Also, we formally discuss what kinds of specifications can be monitored at runtime.','Service Oriented Computing and Applications',1,'Mohsen KhaxarSaeed Jalili','springer/soa security.csv','springer','\0'),(2137,'Traffic pattern analysis for distributed anomaly detection','2012','1','Anomaly Detection; Security; Service Oriented Architecture','Network anomalies refer to situations when observed network traffic deviate from normal network behaviour. In this paper, we propose a general framework which assumes the use of many different attack detection methods and show a way to integrate their results. We checked our approach by the use of network topology analysis methods applied to communication graphs. Based on this evaluation, we have proposed a measure called the AttackScore, which assesses the risk of an on-going attack and distinguishes between the effectiveness of the analytic measures used to detect it. © 2012 Springer-Verlag.','',1,'Kolaczek G., Juszczyszyn K.','scopus/service oriented architecture security.csv','scopus','\0'),(2138,'Cross-Border Challenges in Financial Markets Monitoring and Surveillance: A Case Study of Customer-Driven Service Value Networks','2012','2','cross-border;cross-jurisdiction;customer driven services;financial markets;fraud detection;market abuse;market manipulation;monitoring;service value networks;social network;surveillance','In this paper cross border market surveillance activities are modeled as service systems which exist and interact in a service-oriented economy. Moreover, the market monitoring and surveillance activities are described as a user or customer-driven service value network. The paper expands the previously defined concepts and terminology by presenting a case study for a proposed cross-border detection engine. Details of its sub-systems and relationships between them are provided. In terms of the instantiation of the case as a service system, the case considers a configuration of value networks and value propositions in which the provider and the customer of the service are assumed to be the Regulator. Although the agents involved in this service configuration are namely the same entity, in reality it is possible to consider this a special case in which different departments or divisions within the regulating authority perform the detection and investigation of cases separately, thus representing different definitions of a costumer and a provider of market surveillance service activities.','2012 Annual SRII Global Conference',1,'D. Diaz; B. Theodoulidis; E. Abioye','ieee/service oriented architecture security.csv','ieee','\0'),(2139,'An integrated e-service model for electronic medical records','2013','1',' Electronic medical records Service-oriented architecture Web services Grid services','Abstract In this paper, we discuss the critical issues with the implementation of electronic medical records and argue that the emerging e-services will not fully resolve the issues if they do not work together. To meet the challenge, we propose an integrated e-service model consisting of both process- and data-oriented grids that glue together distributed electronic medical services, records, and application services. We also provide an implementation architecture and prototype that validates the model.','Information Systems and e-Business Management',2,'Liping LiuDan Zhu','springer/bpel security.csv','springer','\0'),(2140,'4th IEEE 2014 Services Workshop on Security and Privacy Engineering - Message from the SPE 2014 Workshop Chairs','2014','0','','Welcome to the 4th IEEE 2014 Services Workshop on Security and Privacy Engineering (SPE 2014), June 28, 2014, Anchorage, Alaska, USA. SPE 2014 is co-located with IEEE 10th World Congress on Services (IEEE SERVICES 2014).','2014 IEEE World Congress on Services',1,'C. A. Ardagna; M. Jensen; Z. Chen; E. Damiani','ieee/service oriented architecture security.csv','ieee','\0'),(2141,'Construction of cloud platform for personalized information services in digital library based on cloud computing data processing technology','2015','0',' cloud computing digital library cloud service platform','Abstract Digital library has begun to enter a new era of cloud computing after Internet era, Web era, Grid era and Web 2.0 era. Combined with cloud computing technology, this thesis constructed a cloud service platform of digital library and described the service process and operating mechanism of digital library cloud service platform.','Automatic Control and Computer Sciences',1,'Fujun ZhangZunsheng GaoQuanhui Ye','springer/soa security.csv','springer',''),(2142,'The impact of service system on the implementation of cluster supply chain','2012','2',' Cluster supply chain Small and medium enterprises Virtual alliance Service system','Abstract As a new management pattern, ‘cluster supply chain’ (CSC) can help small and medium enterprises (SMEs) in China to face the sharp global competitions through all kinds of collaboration. However, a major challenge in implementing CSC is the gap between the related theories and practices in the field. In order to bridge the gap, this paper presents the JingCheng Mechanical & Electrical Holding co., Ltd. (JCH) as a case study to explain the key problems in the practice of cluster supply chain: What are the specific conditions for the implementation of cluster supply chain? What are the advantages and challenges of implementing cluster supply chain? Furthermore, the role of service supporting system is emphasized, which has driven a process of transforming CSC theories into practices. Through the case study of JCH, we clarify the role of service system in the actual construction and operation of cluster supply chain, which can promote the rapid adoption of CSC and show successful results as it should be.','Service Oriented Computing and Applications',1,'Xiao XueZhe WeiZhizhogn Liu','springer/soa security.csv','springer','\0'),(2143,'A security-and quality-aware system architecture for Internet of Things','2014','5',' Internet of Things Security Privacy Data quality System architecture','Abstract Internet of Things (IoT) is characterized, at the system level, by high diversity with respect to enabling technologies and supported services. IoT also assumes to deal with a huge amount of heterogeneous data generated by devices, transmitted by the underpinning infrastructure and processed to support value-added services. In order to provide users with valuable output, the IoT architecture should guarantee the suitability and trustworthiness of the processed data. This is a major requirement of such systems in order to guarantee robustness and reliability at the service level. In this paper, we introduce a novel IoT architecture able to support security, privacy and data quality guarantees, thereby effectively boosting the diffusion of IoT services.','Information Systems Frontiers',1,'Sabrina SicariCinzia CappielloFrancesco De PellegriniDaniele MiorandiAlberto Coen-Porisini','springer/service oriented architecture security.csv','springer','\0'),(2144,'Incorporating security requirements into service composition: From modelling to execution','2009','7','','Despite an increasing need for considering security requirements in service composition, the incorporation of security requirements into service composition is still a challenge for many reasons: no clear identification of security requirements for composition, absence of notations to express them, difficulty in integrating them into the business processes, complexity of mapping them into security mechanisms, and the complexity inherent to specify and enforce complex security requirements. We identify security requirements for service composition and define notations to express them at different levels of abstraction. We present a novel approach consisting of a methodology, called Sec-MoSC, to incorporate security requirements into service composition, map security requirements into enforceable mechanisms, and support execution. We have implemented this approach in a prototype tool by extending BPMN notation and building on an existing BPMN editor, BPEL engine and Apache Rampart. We showcase an illustrative application of the Sec-MoSC toolset. © 2009 Springer-Verlag Berlin Heidelberg.','',2,'Souza A.R.R., Silva B.L.B., Lins F.A.A., Damasceno J.C., Rosa N.S., MacIel P.R.M., Medeiros R.W.A., Stephenson B., Motahari-Nezhad H.R., Li J., Northfleet C.','scopus/bpmn security.csv','scopus','\0'),(2145,'XrML-RBLicensing approach adapted to the BPEL process of composite web services','2013','3','AOP; BPEL; RBL; Security; Web services; XrML','Web service orchestration represents an open and standards-based approach for connecting web services together leading to higher level of business processes. Business Process Execution Language (BPEL) engines are designed to handle this orchestration. However, web service compositions into BPEL suffer from several non-functional requirements such as security. To address this problem, we propose in this paper a novel approach that is based on a harmony between the licensing concept offered by eXtensible rights Markup Language (XrML), aspect-oriented programming (AOP), and web service compositions in BPEL. Our proposed approach, based on XrML, offers the ability to associate security licenses with activities offered by the composite web services. It allows to automatically generate BPEL aspects depending on the developed licenses, to separate between crosscutting concerns of the composed web services, and provides an easy way to include and update the non-functional requirements (e.g., security) into a BPEL process. It offers also the ability to validate the licenses, at runtime and without affecting the business logic of this model. To evaluate our approach, we have developed an inventory control system (ICS) sample that is composed of several web services. Case study and performance analysis are presented to demonstrate its feasibility as well. © 2013 Springer-Verlag London.','',2,'Tout H., Mourad A., Otrok H.','scopus/bpel security.csv','scopus','\0'),(2146,'An inductive and semantic model of constraints for master data management under cloud computing','2014','','Cloud Computing; Constraints Model; Formularization; Master Data Management','Master Data Management (MDM) has been evaluated under the contexts of Enterprise Architecture (EA), Semantic Web, Service Oriented Architecture (SOA) and Business Process Integration (BPI). However, there have been very few studies on operations of MDM under a Cloud Computing environment. Accordingly, we have analyzed the operational issues caused by migrating the MDM operations into the Cloud Computing environment, in particular into Software as a Service. Furthermore, we have pointed out the insufficient policy of the security framework in regards to the disclosure, and also pointed out the necessity to define a constraints model for security policy that is available in designing the operations of MDM among multiple SaaS/ASP and BPaaS providers. In this paper, we define a more precise constraints model by applying the first order predicate logic and inductive approach. Furthermore, we give explanatory description about the contexts of this formularization. © 2014 Springer International Publishing.','',1,'Kikuchi S.','scopus/service oriented architecture security.csv','scopus','\0'),(2147,'Data Analysis and Visualization','2013','0','','Abstract The Earth’s climate—its average weather and frequency of extreme events—greatly affects the conditions of all living creatures. Human conditions, for example, are strongly influenced by the availability of fresh water, the ambient temperature and humidity, and extreme phenomena such as heat and cold waves, droughts and floods, and tornadoes and hurricanes. Dramatic changes in climatic phenomena (e.g. a Medieval warm period or the prehistoric Ice Ages) also have been recorded, either in human chronicles or in the natural history of the Earth itself.','',1,'D. N. WilliamsT. J. PhillipsS. C. HankinD. Middleton','springer/service oriented architecture security.csv','springer','\0'),(2148,'Dynamic authentication for cross-realm SOA-based business processes','2012','7','Authentication; interorganizational security; multiparty interactions; service-oriented architecture; web services','Modern distributed applications are embedding an increasing degree of dynamism, from dynamic supply-chain management, enterprise federations, and virtual collaborations to dynamic resource acquisitions and service interactions across organizations. Such dynamism leads to new challenges in security and dependability. Collaborating services in a system with a Service-Oriented Architecture (SOA) may belong to different security realms but often need to be engaged dynamically at runtime. If their security realms do not have a direct cross-realm authentication relationship, it is technically difficult to enable any secure collaboration between the services. A potential solution to this would be to locate intermediate realms at runtime, which serve as an authentication path between the two separate realms. However, the process of generating an authentication path for two distributed services can be highly complicated. It could involve a large number of extra operations for credential conversion and require a long chain of invocations to intermediate services. In this paper, we address this problem by designing and implementing a new cross-realm authentication protocol for dynamic service interactions, based on the notion of service-oriented multiparty business sessions. Our protocol requires neither credential conversion nor establishment of any authentication path between the participating services in a business session. The correctness of the protocol is formally analyzed and proven, and an empirical study is performed using two production-quality Grid systems, Globus 4 and CROWN. The experimental results indicate that the proposed protocol and its implementation have a sound level of scalability and impose only a limited degree of performance overhead, which is for example comparable with those security-related overheads in Globus 4. © 2008 IEEE.','',1,'Xu J., Zhang D., Liu L., Li X.','scopus/service oriented architecture security.csv','scopus','\0'),(2149,'Towards a Taxonomy Framework of Evolution for SOA Solution: From a Practical Point of View','2013','3',' Taxonomy Service Oriented Architecture (SOA) Change Management','Abstract Presently, the research on evolution of SOA solution is becoming more and more important in industry. It is necessary to extract a taxonomy framework for evolution of SOA solution because by using it, evolution of SOA-based systems can be analyzed and compared comprehensively and objectively. In this paper, a taxonomy framework for evolution of SOA solution is proposed that is illustrated from four perspectives: (a) motivations for evolutionary changes ( why ), (b) locations where evolutionary changes happen ( where ), (c) times when evolutionary changes happen ( when ), and (d) support mechanisms in the process of evolutionary changes ( how ). Furthermore, the taxonomy framework is applied on analyzing a SOA-based configurable system for urban logistics delivery management, as an application of taxonomy framework.','',2,'Zaiwen FengPatrick C. K. HungKeqing HeYutao MaMatthias FarwickBing LiRong Peng','springer/bpel security.csv','springer','\0'),(2150,'A Deep-Intelligence Framework for Online Video Processing','2016','','Hadoop;MapReduce;Storm;big data;cloud computing;deep learning;fault tolerance;software development;software engineering;video processing','Video data has become the largest source of big data. Owing to video data\'s complexities, velocity, and volume, public security and other surveillance applications require efficient, intelligent runtime video processing. To address these challenges, a proposed framework combines two cloud-computing technologies: Storm stream processing and Hadoop batch processing. It uses deep learning to realize deep intelligence that can help reveal knowledge hidden in video data. An implementation of this framework combines five architecture styles: service-oriented architecture, publish-subscribe, the Shared Data pattern, MapReduce, and a layered architecture. Evaluations of performance, scalability, and fault tolerance showed the framework\'s effectiveness. This article is part of a special issue on Software Engineering for Big Data Systems.','IEEE Software',1,'W. Zhang; L. Xu; Z. Li; Q. Lu; Y. Liu','ieee/service oriented architecture security.csv','ieee',''),(2151,'A service-oriented exception handling method based on exception classification','2013','1','Exception Classification; Exception Handling; Process Layer; Service Layer; Service-Oriented','Exception handling is a time-consuming and easy to make error task. Especially in service-oriented architecture, exception throw chain becomes complicated particularly, so it improves requirements of exception capture and exception handling. This paper analyzes service-oriented exception produce source and proposes service-oriented exception classification. The exception classification divides exception into service layer exception and process exception. The two kinds of exception are subdivided into system exception, resource exception and application exception. This paper presents a corresponding exception handling method for all kinds of exceptions. The method can enhance robustness of service layer and process layer for service-oriented system. © 2013 IEEE.','',1,'Ding Y.H., Xiang R.H.','scopus/service oriented architecture security.csv','scopus','\0'),(2152,'Service Standardization with Utility Computing and Service Oriented Architecture as a Tool for Public Protection and Disaster Relief','2013','1','','Information and Communication Technology (ICT) service of the Public Protection and Disaster Relief (PPDR) are currently delivered in heterogeneous and tailor made methods. Majority of PPDR actors prefers their own technology, contract and process implementation. Utility, cloud and service-oriented computing are cutting-edge technologies that standardize ICT services and solutions. This paper studies ICT services and argues technologies, contracts and processes should be standardized in PPDR. This research also explores leveraging benefits and challenges of cloud base utility and service-oriented computing.','Intelligence and Security Informatics Conference (EISIC), 2013 European',1,'J. Rajamäki; P. Rathod','ieee/service oriented architecture security.csv','ieee','\0'),(2153,'Transforming Collaboration Structures into Deployable Informal Processes','2015','1',' Informal process essentials Human architecture description language Wiki Collaboration configuration Transformation','Abstract Traditional workflow and activity-centric coordination offers limited process support to human collaborators when unanticipated situations predominate. Under such circumstances, informal processes focus on provisioning relevant resources for achieving collaboration goals. Resources include interaction mechanisms such as shared artifact, social networks, and publish/subscribe information dissemination as complex situations typically demand the close collaboration among multiple human process participants. Currently, however, there exists a gap between (i) selecting and configuring suitable interaction mechanisms (collaboration level) and (ii) deploying the respective collaboration platforms (IT level). In this paper, we present an approach and techniques for transforming collaboration structures into automatically deployable informal processes. We demonstrate how our tools support the specification of desirable collaboration capabilities subsequently deployed to multiple MediaWiki instances.','',2,'C. Timurhan SungurChristoph DornSchahram DustdarFrank Leymann','springer/bpel security.csv','springer',''),(2154,'Enterprise cloud service architectures','2012','23',' Cloud computing Enterprise applications Services architecture Architectural requirements Enterprise clouds Cloud computing platforms Enterprise cloud service architectures','Abstract As a new computing paradigm, cloud computing has received a lot of attention from enterprises and has being integrated or applied to enterprise architectures. This paper surveys the state of the art of enterprise cloud service architectures. Specifically, this paper discusses enterprise cloud service architectural requirements, design approaches, architectural styles, emerging cloud service platforms, applications and related challenges in an enterprise context. This paper also identifies research trends and opportunities for researchers and practitioners in this fast moving field.','Information Technology and Management',1,'Heyong WangWu HeFeng-Kwei Wang','springer/soa security.csv','springer',''),(2155,'Towards Trustworthy Health Platform Cloud','2012','2',' Health Platform as a Service trustworthy cloud architecture security resilience data protection','Abstract To address today’s major concerns of health service providers regarding security, resilience and data protection when moving on the cloud, we propose an approach to build a trustworthy healthcare platform cloud, based on a trustworthy cloud infrastructure. This paper first highlights the main security and privacy risks of market available commodity clouds, and outlines security and privacy requirements of a trustworthy health platform cloud, on top of which to deploy various health applications, in compliance with EU data protection legislation. Results from the recent EU TClouds project will be described as a possible solution towards trustworthy cloud architecture, based on a federated cloud-of-clouds, while enforcing security, resilience and data protection in various cloud layers for provisioning trustworthy IaaS, PaaS and SaaS healthcare services.','',2,'Mina DengMarco NalinMilan PetkovićIlaria BaroniAbitabile Marco','springer/bpel security.csv','springer','\0'),(2156,'Securing Data in Composite Web Services','2012','2','BPEL;SOA;security;service composition','Service-oriented architecture (SOA) provides a solution for building information systems with reusability, flexibility, and extensibility. In SOA, new services can be developed by using existing services. BPEL is considered as the main means for composing services. In service composition, a composite service may be built from element services which belong to different administrative domains. Therefore, in order to exploit the benefits of service composition, we must carefully consider security issues. One of them is to protect users\' information. In this paper, we describe an approach for securing BPEL composite Web services. We assume that some users\' data received by the composite services needs securing. The proposed approach makes sure that when the data is sent out from the composite service appropriate security policies will be applied.','Knowledge and Systems Engineering (KSE), 2012 Fourth International Conference on',2,'H. D. Vo; D. C. Phung; V. Q. Dung; V. H. Nguyen','ieee/bpel security.csv','ieee','\0'),(2157,'A comparison of soundness results obtained by different approaches','2010','','Business process models; formal semantics; OR-join','Business processes are often modelled using a language for which no semantics is standardized in a formal way. Examples for such languages are BPMN or Event-Driven Process Chains. The common way for reasoning about the soundness of such models is to define a formal semantics first by translating the model into a well-founded formalism (for example Petri-nets). Afterwards, formal reasoning methods can be applied on the obtained formal model. In the past years, several such semantics that give a formal meaning to BPMN or EPC models have been published. In this paper, we used a repository of almost 1,000 real-world EPC models and computed their soundness using three different tools. Those tools build on different semantics definitions: Kindler\'s fixed-point semantics, Mendling\'s state/context semantics and the YAWL semantics. While the soundness results for the majority of models were the same for all three tools, we identified a few interesting cases where the results differ. The results of our comparative study can lead to a better understanding of the differences between the semantics. © 2010 Springer-Verlag.','',2,'Gruhn V., Laue R.','scopus/bpmn security.csv','scopus','\0'),(2158,'Semantic Reasoning in Context-Aware Assistive Environments to Support Ageing with Dementia','2012','3',' Ambient Assisted Living Context Awareness Knowledge Modelling Semantic Web Inference Engine','Abstract Robust solutions for ambient assisted living are numerous, yet predominantly specific in their scope of usability. In this paper, we describe the potential contribution of semantic web technologies to building more versatile solutions — a step towards adaptable context-aware engines and simplified deployments. Our conception and deployment work in hindsight, we highlight some implementation challenges and requirements for semantic web tools that would help to ease the development of context-aware services and thus generalize real-life deployment of semantically driven assistive technologies. We also compare available tools with regard to these requirements and validate our choices by providing some results from a real-life deployment.','',1,'Thibaut TiberghienMounir MokhtariHamdi AloulouJit Biswas','springer/service oriented architecture security.csv','springer','\0'),(2159,'Identifying Fake Feedback for Effective Trust Management in Cloud Environments','2013','1',' Trust management cloud computing credentials credibility reputation security privacy','Abstract Managing trust in cloud environments is emerging as an important issue in recent years. The highly dynamic, distributed, and non-transparent nature of cloud services makes the trust management of these services difficult. Malicious users may collude to give multiple misleading trust feedback to disadvantage a cloud service, or create several accounts and then leave misleading trust feedback to trick users into trusting cloud services that are not actually trustworthy. In this paper, we propose techniques enabling the identification of fake trust feedbacks and thus provide significant improvement on trust management in cloud environments. In particular, we introduce a credibility model that not only identifies credible trust feedbacks from fake ones, but also preserves the privacy of cloud service consumers. The techniques have been validated by a prototype system implementation and experimental studies.','',1,'Talal H. NoorQuan Z. ShengAbdullah AlfaziJeriel LawAnne H. H. Ngu','springer/service oriented architecture security.csv','springer','\0'),(2160,'AdIDoS – Adaptive and Intelligent Fully-Automatic Detection of Denial-of-Service Weaknesses in Web Services','2016','0','','Abstract Denial-of-Service (DoS) attacks aim to affect availability of applications. They can be executed using several techniques. Most of them are based upon a huge computing power that is used to send a large amount of messages to attacked applications, e.g. web service. Web service apply parsing technologies to process incoming XML messages. This enlarges the amount of attack vectors since attackers get new possibilities to abuse specific parser features and complex parsing techniques. Therefore, web service applications apply various countermeasures, including message length or XML element restrictions. These countermeasures make validations of web service robustness against dos attacks complex and error prone. In this paper, we present a novel adaptive and intelligent approach for testing web services. Our algorithm systematically increases the attack strength and evaluates its impact on a given web serice, using a blackbox approach based on server response times. This allows one to automatically detect message size limits or element count restrictions. We prove the practicability of our approach by implementing a new WS-attacker plugin and detecting new DoS vulnerabilities in widely used web service implementations.','',1,'Christian AltmeierChristian MainkaJuraj SomorovskyJörg Schwenk','springer/service oriented architecture security.csv','springer',''),(2161,'THUNDER: helping underfunded NPO’s distribute electronic resources','2013','0','','Abstract As federal funding in many public non-profit organizations (NPO’s) seems to be dwindling, it is of the utmost importance that efforts are focused on reducing operating costs of needy organizations, such as public schools. Our approach for reducing organizational costs is through the combined benefits of a high performance cloud architecture and low-power, thin-client devices. However, general-purpose private cloud architectures are not easily deployable by average users, or even those with some computing knowledge. For this reason, we propose a new vertical cloud architecture, which is focused on ease of deployment and management, as well as providing organizations with cost-efficient virtualization and storage, and other organization-specific utilities. We postulate that if organizations are provided with on-demand access to electronic resources in a way that is cost-efficient, then the operating costs may be reduced, such that the user experience and organizational efficiency may be increased. In this paper we discuss our private vertical cloud architecture called THUNDER. Additionally, we introduce a number of methodologies that could enable needy non-profit organizations to decrease costs and also provide many additional benefits for the users. Specifically, this paper introduces our current implementation of THUNDER, details about the architecture, and the software system that we have designed to specifically target the needs of underfunded organizations.','Journal of Cloud Computing: Advances, Systems and Applications',1,'Gabriel LoewenJeffrey GallowayJeffrey RobinsonXiaoyan HongSusan Vrbsky','springer/service oriented architecture security.csv','springer','\0'),(2162,'Security-Based Adaptation of Multi-cloud Applications','2016','0','','Abstract Multi-cloud application management can optimize the provisioning of cloud-based applications by exploiting whole variety of services offered by cloud providers and avoiding vendor lock-in. To enable such management, model-driven approaches promise to partially automate the provisioning process. However, such approaches tend to neglect security aspects and focus only on low-level infrastructure details or quality of service aspects. As such, our previous work proposed a security meta-model, bridging the gap between high- and low-level security requirements and capabilities, able to express security models exploited by a planning algorithm to derive an optimal application deployment plan by considering both types of security requirements. This work goes one step further by focusing on runtime adaptation of multi-cloud applications based on security aspects. It advocates using adaptation rules, expressed in the event-condition-action form, which drive application adaptation behaviour and enable assuring a more-or-less stable security level. Firing such rules relies on deploying security metrics and adaptation code in the cloud to continuously monitor rule event conditions and fire adaptation actions for applications when the need arises.','',2,'Kyriakos KritikosPhilippe Massonet','springer/bpmn security.csv','springer',''),(2163,'Proceedings - 26th IEEE International Conference on Advanced Information Networking and Applications Workshops, WAINA 2012','2012','','','The proceedings contain 230 papers. The topics discussed include: an input method for high-resolution large 2D desktop environment using wireless device with joystick; measurement of active quantity of the subject movement and design of surveillance camera system using high active part; a reliable dynamic user-remote password authentication scheme over insecure network; security philosophy important for a sustainable smart grid system; source code publishing on world wide web; a successful implementation of service oriented architecture; workflow-based dynamic access control in a service-oriented architecture; middleware software for embedded systems; how to preserve privacy in services interaction; privacy protection on transfer system of automated teller machine from brute force attack; and confidential information poisoning methods by considering the information length in electronic portable devices.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus','\0'),(2164,'Cloud computing system risk estimation and service selection approach based on cloud focus theory','2016','0',' SLA QoS Uncertainty computing Cloud focus theory Cloud computing','Abstract The main cloud computing service providers usually provide cross-regional and services of Crossing Multi-Internet Data Centers that supported with selection strategy of service level agreement risk constraint. But the traditional quality of service (QoS)-aware Web service selection approach cannot ensure the real-time and the reliability of services selection. We proposed a cloud computing system risk assessment method based on cloud theory, and generated the five property clouds by collecting the risk value and four risk indicators from each virtual machine. The cloud backward generator integrated these five clouds into one cloud, according to the weight matrix. So the risk prediction value is transferred to the risk level quantification. Then we tested the Web service selection experiments by using risk assessment level as QoS mainly constraint and comparing with LRU and MAIS methods. The result showed that the success rate and efficiency of risk assessment with cloud focus theory Web services selection approaches are more quickly and efficient.','Neural Computing and Applications',1,'Fan LinWenhua ZengLvqing YangYue WangShufu LinJiasong Zeng','springer/soa security.csv','springer',''),(2165,'Out-of-the-enterprise B2B gateway cloud service for emerging markets','2012','','','Traditionally, in a typical SOA environment, a B2B gateway is at the edge of an enterprise, and is responsible for performing business document exchanges with other enterprises. In the existing model often used in mature markets, the enterprise needs to incur the cost of hosting and maintaining the gateway. However, the scenario for emerging markets is different, since they are not totally reliant on exchanging business documents electronically. Specifically, the SMB enterprises in emerging markets may not be interested in hosting and maintaining the usually bulky gateway products. In this paper, we propose a novel approach wherein SMB enterprises would exchange secured business information to a B2B cloud service hosted outside of the enterprise. This service offers key B2B protocol capabilities and features such as packaging, security and partner on-boarding. In a typical document exchange flow, the SMB enterprise would send it\'s business information to this B2B cloud service which then packages it using the agreed upon B2B protocol and makes it available to the intended recipient enterprise. Using this model for B2B exchanges would work as an incentive to open up SMB enterprises for B2B business and will go a long way in reducing costs for SMB enterprises. © 2012 IEEE.','',1,'Visweswara U.M., Gohad A., Rao P.S.','scopus/soa security.csv','scopus','\0'),(2166,'Towards Achieving Data Security with the Cloud Computing Adoption Framework','2016','6','Business Process Modeling Notation (BPMN); Cloud Computing Adoption Framework (CCAF); Data security in the Data Center; multi-layered security protection; security framework','Offering real-time data security for petabytes of data is important for cloud computing. A recent survey on cloud security states that the security of users\' data has the highest priority as well as concern. We believe this can only be able to achieve with an approach that is systematic, adoptable and well-structured. Therefore, this paper has developed a framework known as Cloud Computing Adoption Framework (CCAF) which has been customized for securing cloud data. This paper explains the overview, rationale and components in the CCAF to protect data security. CCAF is illustrated by the system design based on the requirements and the implementation demonstrated by the CCAF multi-layered security. Since our Data Center has 10 petabytes of data, there is a huge task to provide real-time protection and quarantine. We use Business Process Modeling Notation (BPMN) to simulate how data is in use. The use of BPMN simulation allows us to evaluate the chosen security performances before actual implementation. Results show that the time to take control of security breach can take between 50 and 125 hours. This means that additional security is required to ensure all data is well-protected in the crucial 125 hours. This paper has also demonstrated that CCAF multi-layered security can protect data in real-time and it has three layers of security: 1) firewall and access control; 2) identity management and intrusion prevention and 3) convergent encryption. To validate CCAF, this paper has undertaken two sets of ethical-hacking experiments involved with penetration testing with 10,000 trojans and viruses. The CCAF multi-layered security can block 9,919 viruses and trojans which can be destroyed in seconds and the remaining ones can be quarantined or isolated. The experiments show although the percentage of blocking can decrease for continuous injection of viruses and trojans, 97.43 percent of them can be quarantined. Our CCAF multi-layered security has an average of 20 percent better performance than the single-layered approach which could only block 7,438 viruses and trojans. CCAF can be more effective when combined with BPMN simulation to evaluate security process and penetrating testing results. © 2016 IEEE.','',2,'Chang V., Ramachandran M.','scopus/bpmn security.csv','scopus',''),(2167,'FDI and the Industrial Internet of Things','2015','','field device integration;industrie 4.0;installed base migration;internet of things;security;semantics','The Field Device Integration (FDI) standard represents an industry-wide consensus on device integration for the process industry. Following the release of IEC 62769, first products have been released at Hannover Fair 2015. Backward-compatibility, interoperability between vendors, and vertical integration based on OPC UA ensure protection of investment and lower life-cycle costs already in today\'s automation pyramid. With Industrie 4.0, the fourth industrial revolution is set on merging automation and information domains into the industrial internet of things, services, and people. Self-configuring and -maintaining systems proclaim the dissolution of the automation pyramid. In this situation, FDI can be the bridge between the protection of past investment and the future of automation, moving from assetto service-oriented automation, and still keeping plant owners in control of their processes.','2015 IEEE 20th Conference on Emerging Technologies & Factory Automation (ETFA)',1,'D. Schulz','ieee/service oriented architecture security.csv','ieee',''),(2168,'Open Source versus Proprietary Software in Service-Orientation: The Case of BPEL Engines','2013','2',' open source SOA BPEL patterns conformance testing','Abstract It is a long-standing debate, whether software that is developed as open source is generally of higher quality than proprietary software. Although the open source community has grown immensely during the last decade, there is still no clear answer. Service-oriented software and middleware tends to rely on highly complex and interrelated standards and frameworks. Thus, it is questionable if small and loosely coupled teams, as typical in open source software development, can compete with major vendors. Here, we focus on a central part of service-oriented software systems, i.e., process engines for service orchestration, and compare open source and proprietary solutions. We use the Web Services Business Process Execution Language (BPEL) and compare standard conformance and its impact on language expressiveness in terms of workflow pattern support of eight engines. The results show that, although the top open source engines are on par with their proprietary counterparts, in general proprietary engines perform better.','',2,'Simon HarrerJörg LenhardGuido Wirtz','springer/bpel security.csv','springer','\0'),(2169,'Securing Web Applications, Services, and Servers','2013','','Authentication; Hacktivists; Internet compliance; Privacy; Servers; Services; Transport layer security; WS-Security; WWeb applications','The advance of Web applications, services, and server technologies promises to have far-reaching effects on the Internet and enterprise networks. Web applications, services, and servers based on the eXtensible Markup Language (XML), SOAP, related open standards, and deployed in Service Oriented Architectures (SOA) allow data and applications to interact without human intervention through dynamic and ad hoc connections. Web applications, services, and server technology can be implemented in a wide variety of architectures; they can coexist with other technologies and software design approaches; and, they can be adopted in an evolutionary manner without requiring major transformations to legacy applications and databases. The security challenges presented by the Web applications, services, and server approach are formidable and unavoidable. Many of the features that make Web applications, services, and servers attractive (including greater accessibility of data, dynamic application-to-application connections, and relative autonomy orlack of human intervention), are at odds with traditional security models and controls. The primary purpose of this chapter is to inform the reader about securing Web applications, services, and servers. © 2013 Copyright © 2013 Elsevier Inc. All rights reserved.','',1,'Beuchelt G.','scopus/service oriented architecture security.csv','scopus','\0'),(2170,'Adapter for Self-Learning Production Systems','2012','2',' Production Systems Context Awareness Service-Oriented Architecture Machine Learning Context Adaptation','Abstract To face globalization challenges, modern production companies need to integrate the monitoring and control of secondary processes into shop floor core system to remain competitive and improve system performance and throughput. The research currently being done under the scope of Self-Learning Production Systems tries to fill this gap. Current work introduces the domain and a generic architecture, while focus over the responsible element for executing system adaptations according to current context: the Adapter. The Adapter architecture and its components are introduced as well as the generic Adaptation process. Early prototype scenarios applied to concrete real-world scenarios are also presented.','',1,'Gonçalo CândidoGiovanni Di OrioJosé BarataSebastian Scholze','springer/service oriented architecture security.csv','springer','\0'),(2171,'Research on the Computer Aided Platform of the Passenger Dedicated Line’s Engineering Affairs','2015','0',' The passenger dedicated line Engineering affairs Mobile terminal Web service','Abstract Based on the characteristics of passenger dedicated line’s works maintenance operation, the system framework of passenger dedicated line’s project affairs operation auxiliary platform is put forward and the mobile terminal’s development technology on the basis of IOS system is studied. The heterogeneous services of the system using Web Service is implemented, which provide valuable data to improve the efficiency of passenger dedicated line’s project affairs operation.','',1,'Kun ZhangChen Dingfang','springer/service oriented architecture security.csv','springer',''),(2172,'Towards Autonomous Services for Smart Mobile Devices','2003','0','','Abstract In this paper a framework is presented which allows the discovery and execution of services on connected and partially autonomous mobile devices. Discovery and execution procedures are sensitive to the user’s context (current location, personal preferences, current network situation etc.). We present a description language for service offers which is used to provide the necessary information for a service registry running on the mobile device itself. Services are executed in an abstract manner (in the sense of a non-specific implementation) from the user’s point of view, getting an optimal result with respect to the current context out of a set of parallel invoked service implementations.','',1,'Thomas Strang','springer/microservice security.CSV','springer',''),(2173,'HOTDOL: HTML Obfuscation with Text Distribution to Overlapping Layers','2014','0','DOM;HTML;Information repositories;content security;web browser','The purpose of this paper is to propose a method for protecting HTML content from unauthorized reuse. A document protected using this method can still be viewed with a standard text editor, but it is virtually impossible to modify, and is therefore unattractive for redistribution. Existing obfuscation methods and restriction codes that limit certain activities in the web browser are less effective due to fundamental problems of circumvention. Not only does our method address these problems using internal reconstruction of obfuscated text, but it also maintains full accessibility to web content. We begin by specifying the HOTDOL (HTML Obfuscation with Text Distribution to Overlapping Layers) standard, under which a document maintains its general layout but has its internal representation of HTML transformed into illegible text. We then suggest three alternative service architectures through which HOTDOL can be applied to existing web services. We performed a quantitative evaluation in the form of an offline survey with 12 questions, confirming the protectiveness of our method relative to other methods currently in use. To assess the computational efficiency of our method, we also measured the processing and rendering times for obfuscated documents in real environments, and found them to be commercially viable.','Computer and Information Technology (CIT), 2014 IEEE International Conference on',1,'S. Han; M. Ryu; J. Cha; B. U. Choi','ieee/service oriented architecture security.csv','ieee','\0'),(2174,'Coordinating the Web of Services for a Smart Home','2013','2','Service-oriented architecture, internet of things, service composition','Domotics, concerned with the realization of intelligent home environments, is a novel field which can highly benefit from solutions inspired by service-oriented principles to enhance the convenience and security of modern home residents. In this work, we present an architecture for a smart home, starting from the lower device interconnectivity level up to the higher application layers that undertake the load of complex functionalities and provide a number of services to end-users. We claim that in order for smart homes to exhibit a genuinely intelligent behavior, the ability to compute compositions of individual devices automatically and dynamically is paramount. To this end, we incorporate into the architecture a composition component that employs artificial intelligence domain-independent planning to generate compositions at runtime, in a constantly evolving environment. We have implemented a fully working prototype that realizes such an architecture, and have evaluated it both in terms of performance as well as from the end-user point of view. The results of the evaluation show that the service-oriented architectural design and the support for dynamic compositions is quite efficient from the technical point of view, and that the system succeeds in satisfying the expectations and objectives of the users.','',1,'Eirini Kaldeli and Ehsan Ullah Warriach and Alexander Lazovik and Marco Aiello','acm/service oriented architecture security.csv','acm','\0'),(2175,'Grid-based framework for high-performance processing of scientific knowledge','2014','0',' Scientific-knowledge processing Grid computing Workflow Data mining framework Text mining','Abstract An essential matter in the knowledge-based information society is how to extract useful information quickly from a large volume of literature. Since most existing data mining frameworks deal with structured input data, many limitations are faced in analyzing unstructured scientific literature and extracting new information. This study proposes a scientific-knowledge processing framework, which offers high performance by using grid computing technology for extracting important entities and their relations from the scientific literature. Since the grid computing provides a large volume of data storage and high-speed computing, the proposed framework can efficiently analyze the massive body of scientific literature and process knowledge. The workflow tool that we have developed for the proposed framework enables users to easily design and execute complicated applications that consist of complicated scientific-knowledge processes. The experimental results showed that the proposed framework reduced working time by approximately 83 % when the number of running nodes was assigned in accordance with the workload ratio of each step in scientific-knowledge processes. As a result, it is possible to effectively process a large volume of scientific literature by flexibly adjusting the number of computing nodes that constitute the grid environment as the number of documents for processing increases.','Multimedia Tools and Applications',2,'Chang-Hoo JeongYun-Soo ChoiHong-Woo ChunSa-Kwang SongHanmin JungSangkwan LeeSung-Pil Choi','springer/bpel security.csv','springer',''),(2176,'Service Composition in Knowledge-based SOA Systems','2012','14',' SOA Service Retrieval Service Composition','Abstract In this paper, we present the solution of the problem of Service Composition in Knowledge-based SOA (Service Oriented Architecture) Systems. SOA based systems are built of services - atomic or complex ones. Each service may have a different functional and non-functional description. The methods how to retrieve atomic service and compose complex services according to the user’s needs are discussed here.','New Generation Computing',1,'Paweł Świa̧tekPaweł StelmachAgnieszka PrusiewiczKrzysztof Juszczyszyn','springer/service oriented architecture security.csv','springer',''),(2177,'Towards Fine-Grained Verification of Application Mobility','2014','0',' mobility verification model checking','Abstract Component mobility introduces additional complexity for software engineers along with the convenience it brings to the end-users. The provision of detailed formal analysis can help to reduce the potential risks for the application design. In the paper, we propose a novel approach to facilitate fine-grained verification for component mobility based on Bogor, in which the domain specific knowledge can be embedded and provided as the first class entity. The customization helps to reduce the generated state space compared with others based on general-purpose model checkers. The experiment demonstrates the efficiency and feasibility of our approach.','',1,'Yu ZhouYankai HuangJidong GeJun Hu','springer/service oriented architecture security.csv','springer','\0'),(2178,'Optimization of Multiple-Objective Web Service Selection Using Fractional Programming','2014','0',' Web service selection SOA QoS Multiple objective programming Linear fractional programming','Abstract The Service Oriented Approach (SOA) is based on the idea that distributed applications can be flexibly composed by integrating independently developed component services. Due to the fact that a large number of available services offer similar functionality, when choosing actual services to be included in the composition their non-functional (Quality of Service – QoS) properties must also be taken into account. On the other hand certain constraints regarding the required performances (i.e. the required QoS levels) may also be given. Therefore, web service selection presents a multiple-objective multiple constraint problem and in this paper we model it as a discrete multiple-objective linear fractional programming (MOLFP) problem. In order to solve this problem we use a previously published technique for generating strongly efficient solutions to a continuous MOLFP problem to the discrete case. We present a complete methodology for solving the multiple criteria web service selection problem and report the experimental results obtained by testing it on 50 random instances generated by varying the input parameters.','Annals of Data Science',1,'Milan StanojevićBogdana StanojevićNina Turajlić','springer/soa security.csv','springer','\0'),(2179,'A reference requirements set for public service provision enterprise architectures','2014','0',' E-government Public service provision Requirements engineering Enterprise architecture ArchiMate','Abstract Electronic Government (eGov) is a political priority worldwide. One of the core objectives of eGov is the online public services provision (PSP). However, many of eGov PSP systems fail in realizing their objectives. Enterprise Architectures (EA) could contribute to overcome some of the relevant obstacles. The objective of this paper is to derive a reference requirements set for eGov PSP that can be used in EA development. Aiming at capitalizing on existing knowledge, we conduct a systematic literature review on eGov PSP systems requirements. This results in identifying a unified requirements set, i.e. 186 requirements, and stakeholders set, i.e. 19 stakeholders, for eGov PSP systems. Based on these findings, we determine 16 overview use cases demonstrating the basic functionality of such systems. Our findings are modeled using ArchiMate 2.0 notation. The identified requirements set can be used by virtually any public organization providing public services for developing its own EA. As a result, it can lead to the reduction of eGov PSP project failures, the decrease of software development costs and the improvement of its effectiveness and quality. Furthermore, it can be used as a basis to develop a complete reference EA for the eGov PSP domain.','Software & Systems Modeling',1,'Efthimios TambourisEleni KalivaMichail LiarosKonstantinos Tarabanis','springer/service oriented architecture security.csv','springer','\0'),(2180,'Middleware requirements for collaborative unmanned aerial vehicles','2013','4','Ad Hoc Networks;Collaborative Systems;Middleware;Service-Oriented Architecture;Unmanned Aerial Vehicles','With the recent advances in the aircraft technologies, software, sensors, and communications; unmanned aerial vehicles (UAVs) can offer a wide range of applications. Some of these applications may involve multiple UAVs that cooperate and collaborate to achieve a common goal. This kind of applications is termed collaborative UAVs applications. One of the main research topics for multiple UAVs is developing an effective framework to enable the development of software systems for collaborative UAVs operations. One possible approach is to rely on middleware technologies to simplify the development and operations of such applications. This paper discusses the challenges of developing collaborative UAVs applications and how middleware can help resolve some of these challenges. In addition, the paper studies the utilization of service-oriented middleware infrastructures for implementing and operating collaborative UAVs applications. Finally, the paper investigates the collaborative aspect of multiple UAVs and lists the functions needed for service-oriented middleware to satisfy the development and operations of such applications.','Unmanned Aircraft Systems (ICUAS), 2013 International Conference on',1,'N. Mohamed; J. Al-Jaroodi; I. Jawhar; S. Lazarova-Molnar','ieee/service oriented architecture security.csv','ieee','\0'),(2181,'Smart-Grid-Architekturen in Österreich: Eine Bewertung der IKT-Sicherheitsaspekte relevanter Pilotprojekte','2013','0','Schlüsselwörter Smart Grid Architekturmodell IKT-Sicherheit Pilotprojekte Smart Grid architecture model ICT security pilot projects','Zusammenfassung Die Stromversorgung der Zukunft (Smart Grid) wird weit mehr auf IKT setzen als bisher, und damit werden Cyber Security-Risiken auch zu einer Gefahr für die Energieversorgung. Das Forschungsprojekt Smart Grid Security Guidance ( SG ) 2 hat das Ziel, solche Risiken zu untersuchen und entsprechende Sicherheitsmaßnahmen zu entwickeln. In einem ersten Schritt wurden die Sicherheitsaspekte von Smart-Grid-Pilotprojekten in Österreich untersucht, wozu ihre Systemarchitektur auf das Smart Grid Architecture Model abgebildet wurde, eine für den europäischen Kontext entwickelte Referenzarchitektur zur Darstellung von Smart-Grid-Anwendungsfällen. Auf diese Weise lässt sich ein IKT-Architekturmodell für Smart Grids in Österreich definieren, welches die Basis für weitere Sicherheitsanalysen im Projekt (SG) 2 bildet.','e & i Elektrotechnik und Informationstechnik',1,'Berthold HaberlerGeorg KienesbergerFriederich KupzogLucie Langer','springer/soa security.csv','springer','\0'),(2182,'Self-Reconfiguring Microservices','2016','0',' Microservices Service-Oriented Architecture Automatic deployment Optimal component allocation','Abstract Microservices is an emerging paradigm for the development of distributed systems that, originating from Service-Oriented Architecture, focuses on the small dimension, the loose coupling, and the dynamic topology of services. Microservices are particularly appropriate for the development of distributed systems in the Cloud. However, their dynamic nature calls for suitable techniques for their automatic deployment. In this paper we address this problem and we propose JRO (Jolie Redeployment Optimiser), a tool for the automatic and optimised deployment of microservices written in the Jolie language. The tool uses Zephyrus, a state of the art tool that automatically generates a fully detailed Service-Oriented Architecture configuration starting from a partial and abstract description of the target application.','',1,'Maurizio GabbrielliSaverio GiallorenzoClaudio GuidiJacopo MauroFabrizio Montesi','springer/microservice security.CSV','springer',''),(2183,'Reusable components for online reputation systems','2015','1',' Trust Reputation Reusability Trust pattern','Abstract Reputation systems have been extensively explored in various disciplines and application areas. A problem in this context is that the computation engines applied by most reputation systems available are designed from scratch and rarely consider well established concepts and achievements made by others. Thus, approved models and promising approaches may get lost in the shuffle. In this work, we aim to foster reuse in respect of trust and reputation systems by providing a hierarchical component taxonomy of computation engines which serves as a natural framework for the design of new reputation systems. In order to assist the design process we, furthermore, provide a component repository that contains design knowledge on both a conceptual and an implementation level. To evaluate our approach we conduct a descriptive scenario-based analysis which shows that it has an obvious utility from a practical point of view. Matching the identified components and the properties of trust introduced in literature, we finally show which properties of trust are widely covered by common models and which aspects have only rarely been considered so far.','Journal of Trust Management',1,'Johannes SängerChristian RichthammerGünther Pernul','springer/webservice security.csv','springer',''),(2184,'Developing highly complex distributed systems: a software engineering perspective','2012','2',' Future Internet Service-oriented computing Service-oriented middleware Cloud computing Middleware-based software process','Abstract What is a highly complex distributed system in the future era? What are the needs that may drive the development of such systems? And what is their life cycle? Is there any new challenge for Software Engineering (SE)? In this paper, we try to provide a partial answer to the above questions by characterizing few application domains that we consider of raising interest in the next years. Our thesis is that there is a need to rethink the whole software process for such systems. The traditional boundaries between static and dynamic activities disappear and development support mingles with run time support thus invading the middleware territory.','Journal of Internet Services and Applications',1,'Marco AutiliPaola InverardiPatrizio PelliccioneMassimo Tivoli','springer/service oriented architecture security.csv','springer','\0'),(2185,'Avoiding common security flaws in composed service-oriented systems','2012','','Information Assurance; Service Oriented Architecture; Survivability; Trustworthy system design','Network-centric information systems are increa-singly called upon to support complex tasks and missions that serve multiple communities of interest. As a result, existing capabilities are exposed as services in a service-oriented system, and newer capabilities are derived by discovering and composing available services. While service-orientation enables and facilitates such composition-based system construction, the evolving nature and variety of standards and the varying level of compliance of otherwise feature-rich vendor products has made achieving acceptable level of security and resilience in such systems a daunting and error-prone task. This paper presents a number of factors that contribute to the security of composed service-oriented systems, and outlines ways to avoid common pitfalls and mistakes that stem from these factors and weaken the resiliency and survivability of the composed system. © 2012 IEEE.','',1,'Atighetchi M., Pal P., Loyall J., Sinclair A.','scopus/service oriented architecture security.csv','scopus','\0'),(2186,'Wireless Sensor Networks and Service-Oriented Architecture, as suitable approaches to be applied into ITS','2012','','Intelligent Transportation Systems; ITS; Navigation; Parking Systems; Service-Oriented Architecture; SOA; Web Services; Wireless Sensors Networks; WSN','In this paper, Wireless Sensor Networks (WSN) and Service-Oriented Architecture (SOA) approaches are analyzed given that represent both emerging and key role for Intelligent Transportations Systems (ITS). However, It is worth noting that WSN and SOA approaches have begun to be applied into ITS separately and day by day these approaches tend to be combined to get the best outcomes for both safety and security for ITS applications. For this reason, a discussion of the principals ITS applications of these two approaches and a case study, that has been designed and implemented to illustrate their advantages, are presented. The case study is focused on support a very useful ITS service associated with the localization of parking spaces. © 2012 ACM.','',1,'Herrera-Quintero L.F., Maciá-Pérez F., Marcos-Jorquera D., Gilart-Iglesias V.','scopus/service oriented architecture security.csv','scopus','\0'),(2187,'A framework and language support for dynamic security policy in service-oriented architecture','2014','1','BPEL; Security policy; SOA; Web services; Workflow','In today\'s global network-based environment, where mission-critical applications typically run on highly distributed systems, customers expect reliable, available, and secure services. Supporting security becomes an important issue in service-oriented architecture (SOA). This paper describes how to simultaneously support both dynamic security policies and separation of concerns when developing an SOA application. We propose the DPSL (dynamic policy specification language) for managing and controlling the security according to the dynamic behavior of the workflow in SOA. The operation model is compatible with existing SOA standards, such as the WSDL, WS-Policy, WS-Security-Policy, WS-ReliableMessaging, and the BPEL. As a result, existing standard Web-services engines and BPEL engines can be employed directly to support dynamic policies in SOA. The implementation and experimental results demonstrate the feasibility of the proposed architecture. © 2014, Institute of Information Science. All rights reserved.','',2,'Chi W.U.-L., Hwang G.-H.','scopus/bpel security.csv','scopus',''),(2188,'A secure smart card authentication and authorization framework using in multimedia cloud','2016','0',' Cloud computing Diffie-Hellman key exchange User authentication Smart card RBAC','Abstract Through the rapid evolution of information technology, there are many innovative services and products bring a lot of convenience for people especially “Cloud Computing”. The cloud computing provides users more than personal computer’s storage resources and calculate ability. Nowadays the most consume hard drive space or calculate resources are belong to multimedia applications, such like HD videos, HD computer games and so on. Because of the reason of the requirement, the cloud computing technology also develop multimedia cloud. The multimedia cloud is evolved from media cloud and multimedia-aware cloud, combine with the highly calculate ability, high quality of service and virtually unlimited storage space. Users can put all the multimedia content or games into the multimedia cloud. But there is still a harassment, the “Information Security”. Before users can use multimedia cloud, they must go through an insecure network environment between cloud services and user’s equipment. Malicious attackers usually attack this insecure section to capture user’s information. Besides the privacy of the user’s data in the multimedia cloud is also a fatal reason that why users don’t use this convenience and powerful service. In this article, we provide a smart card based secure authentication mechanism and a protect user’s data authorization framework. We expect the framework can protect users’ privacy and their data.','Multimedia Tools and Applications',1,'Ta-Chih YangNai-Wei LoHorng-Twu LiawWei Chen Wu','springer/service oriented architecture security.csv','springer',''),(2189,'Summary and Future Work','2016','0','','Abstract We have come to the end of the book, which has investigated different aspects of anti-fragile information and communications technology (ICT) systems. This chapter summarizes the book’s main insights into the development and operation of anti-fragile ICT systems, discusses the design of future systems, and outlines the need for anti-fragile processes, especially to handle attacks on the confidentiality, integrity, and availability of ICT systems.','',1,'Kjell Jørgen Hole','springer/microservice security.CSV','springer',''),(2190,'Preventing data leakage in service orchestration','2011','0','','Web Services are currently the base of a lot a e-commerce applications. Nevertheless, clients often use these services without knowing anything about their internals. Moreover, they have no clue about the use of their personal data inside the global applications. In this paper, we offer the opportunity to the user to specify constraints on the use of its personal data. To ensure the privacy of data at runtime, we define a distributed security policy model. This policy is configured at runtime by the user of the BPEL program. This policy is enforced within a BPEL interpreter, and ensures that no information flow can be produced from the user data to unauthorized services. However, the dynamic aspects of web services lead to situations where the policy prohibits the nominal operation of orchestration (e.g., when using a service that is unknown by the user). To solve this problem, we propose to let user to dynamically permit exceptional unauthorized flows. In order to make decision, the user is provided with all information necessary for decision-making. We also present an implementation inside the Orchestra BPEL interpreter. As far as we know this implementation is the first information flow monitor for web services that is also end-user configurable.','Information Assurance and Security (IAS), 2011 7th International Conference on',2,'T. Demongeot; E. Totel; Y. Le Traon','ieee/bpel security.csv','ieee','\0'),(2191,'TransportML: A Middleware for Location-Based Services Collaboration','2009','0','','Location-Based Services (LBS) are information and entertainment services, accessible with mobile devices and making use of the position of the mobile device. Although LBS are now widely used, better results could be obtained by merging information issued by several services. Inter-LBS collaboration is still uncommon although a lot of work is done on service orchestration languages such as WS-BPEL 2.0. One of the obstacles is that LBS are created and updated on the fly. This dynamism makes manual composition scenario update difficult. To tackle this problem, we introduce TransportML, a middleware for inter-LBS collaboration, in an automatic fashion. TransportML relies on technologies such as Web services and semantic Web. In this platform, services are discovered and collaboration scenarios are elaborated on the fly. As a consequence, the platform is auto-adaptive and composition scenario maintenance is no longer required.','2009 3rd International Conference on New Technologies, Mobility and Security',2,'A. Roxin; C. Dumez; N. Cottin; J. Gaber; M. Wack','ieee/bpel security.csv','ieee','\0'),(2192,'Operational Semantics of Aspects in Business Process Management','2012','1',' Business Process Management Workflow Management Systems Aspect Oriented Coloured Petri Nets Weaving','Abstract Aspect orientation is an important approach to address complexity of cross-cutting concerns in Information Systems. This approach encapsulates these concerns separately and compose them to the main module when needed. Although there are different works which shows how this separation should be performed in process models, the composition of them is an open area. In this paper, we demonstrate the semantics of a service which enables this composition. The result can also be used as a blueprint to implement the service to support aspect orientation in Business Process Management area.','',2,'Amin JalaliPetia WohedChun Ouyang','springer/bpmn security.csv','springer','\0'),(2193,'Protocol Conformance Checking of Services with Exceptions','2012','0','','Abstract In our previous work we defined a conservative abstraction of the behaviour of service-oriented systems and a contract based on interactions (named service protocol) to be verified. We have achieved modeling unbound concurrency and unbound recursion within this abstraction. However, these works are based only on services that do not raise exceptions. In this paper, we extend our previous work such that service protocols can be verified even if the service interface may raise exceptions.','',2,'Christian HeikeWolf ZimmermannAndreas Both','springer/bpel security.csv','springer','\0'),(2194,'Prediction of Relevance between Requests and Web Services Using ANN and LR Models','2013','0',' Web service discovery Semantic Web service matchmaker Relevance prediction Logistic Regression Artificial Neural Network','Abstract An approach of Web service matching is proposed in this paper. It adopts semantic similarity measuring techniques to calculate the matching level between a pair of service descriptions. Their similarity is then specified by a numeric value. Determining a threshold for this value is a challenge in all similar matching approaches. To address this challenge, we propose the use of classification methods to predict the relevance of requests and Web services. In recent years, outcome prediction models using Logistic Regression and Artificial Neural Network have been developed in many research areas. We compare the performance of these methods on the OWLS-TC v3 service library. The classification accuracy is used to measure the performance of the methods. The experimental results show the efficiency of both methods in predicting the new cases. However, Artificial Neural Network with sensitivity analysis model outperforms Logistic Regression method.','',1,'Keyvan MohebbiSuhaimi IbrahimNorbik Bashah Idris','springer/service oriented architecture security.csv','springer','\0'),(2195,'Smarter environments: A compact service-oriented framework for context-awareness','2014','','Automata; Context-awareness; Security; Service oriented architecture; Smart environments','Context-awareness is an essential feature for establishing and sustaining a variety of specific as well as generic smarter environments. However, the acts of gleaning context information from different and distributed sources and interpreting it for real-time and actionable insights are not easy tasks. Having understood this requirement, we have conceptualized a new-generation context-awareness framework in order to simplify and streamlining context-awareness, which is the distinct need for next-generation smarter spaces. In this study, we have laid down all the right and relevant details of the approach and the framework solution through a host of renowned use cases. Further on, we have vividly illustrated the performance evaluations for the authenticity and strategic success of our approach and the solution incorporated. © 2014 Asian Network for Scientific Information.','',1,'Venkatesh V., Raj P., Vaithiyanathan V., Amirtharajan R.','scopus/service oriented architecture security.csv','scopus','\0'),(2196,'A Model-Driven Service Integrated Framework Based on Three-Layer Ontology','2013','0',' Three-layer Ontology Model-driven Business Process Management Standardization Automation Service Integration','Abstract The misunderstanding of business models and the inefficiency of service integration impede the business process management and cause inconvenience to enterprise operations, especially in the Internet era. In this paper, a model-driven service integrated framework based on three-layer ontology is proposed to manage the processes and web services in a comprehensive and semantically way. It covers four phases of business process management, including designing, management, execution and feedback. The proposed ontology consists of three layers: the general ontology for business process modeling, the domain ontology for a domain-specific modeling and the scene ontology for a certain business scene. With the ontology’s capability of finding correlations and automatic reasoning, the framework unifies the semantics of business process models, supports the transformation from models to services, promotes the service integration, facilitates the automation of process execution and ensures the sustainability.','',2,'Zijia LiuHongming CaiLihong Jiang','springer/bpel security.csv','springer','\0'),(2197,'Small-world based trust evaluation model for web service','2012','1','Small-world model; Subjective logic; Trust model; Web service','As popular web applications, web services can provide very flexible application integration taking advantage of existing Internet protocols and open standards. However, there are a few stubborn problems which exist in its architectures, for example, security. Especially in distributed services environment, trust which is a proved way to resolve security problem of web service is crucial to service providers and service customers for protecting service transactions and message delivering. In this paper, a web services trust evaluation model based on small world model is proposed. Firstly, an expanded subjective logic model is proposed. Secondly, a framework of SOA is built upon trust management module. Thirdly, the computing of subjective logic is improved based on small world, and the components in SOA are organized in small world. And then, the trust architecture of web service is presented. Finally, a simulation platform is used to study the evolution process of trust value in the model. The experiments and analysis show that the model can support evolving the web services trust. © 2012 IEEE.','',1,'Yu Z., Liu F.','scopus/soa security.csv','scopus','\0'),(2198,'Practical Interruptible Conversations','2013','8','','Abstract The rigorous and comprehensive verification of communication-based software is an important engineering challenge in distributed systems. Drawn from our industrial collaborations [33,28] on Scribble, a choreography description language based on multiparty session types, this paper proposes a dynamic verification framework for structured interruptible conversation programming. We first present our extension of Scribble to support the specification of asynchronously interruptible conversations. We then implement a concise API for conversation programming with interrupts in Python that enables session types properties to be dynamically verified for distributed processes. Our framework ensures the global safety of a system in the presence of asynchronous interrupts through independent runtime monitoring of each endpoint, checking the conformance of the local execution trace to the specified protocol. The usability of our framework for describing and verifying choreographic communications has been tested by integration into the large scientific cyberinfrastructure developed by the Ocean Observatories Initiative. Asynchronous interrupts have proven expressive enough to represent and verify their main classes of communication patterns, including asynchronous streaming and various timeout-based protocols, without requiring additional synchronisation mechanisms. Benchmarks show conversation programming and monitoring can be realised with little overhead.','',2,'Raymond HuRumyana NeykovaNobuko YoshidaRomain DemangeonKohei Honda','springer/bpel security.csv','springer','\0'),(2199,'Comparative Study of Service-Based Security-Aware Business Processes Automation Tools','2013','0','automation;business processes;service composition;web services','The use of business processes to model and design business activities is becoming a reality to a significant number of companies. Meanwhile, the Service-Oriented Architecture (SOA) is being a widely adopted strategy for business processes execution, which often demands communication between different (and remote) services. This fact leads to the need of incorporating security elements into business processes, because sensitive data can be targeted in the communication process. Existing tools currently focus both on the functional automation by translating high-level business processes in executable artifacts and/or on the security automation by translating security requirements into executable security configurations. In this work, we present a comparative study that evaluates these tools using relevant metrics. A solution named BPA-Sec Analyzer was also developed to automatically generate relevant statistics information related to the produced artifacts. An illustrative scenario is introduced to support the comparison/evaluation.','2013 IEEE International Conference on Systems, Man, and Cybernetics',1,'F. Lins; J. Damasceno; R. Medeiros; E. Sousa; N. Rosa','ieee/service oriented architecture security.csv','ieee','\0'),(2200,'Trust-Based Collaboration Service Framework: A Platform for Communication and Content Sharing','2012','0','','This article discusses a novel framework for trust-based multidevice collaboration services. This framework opens up significant scope for applications and collaboration opportunities among heterogeneous devices mimicking human interaction. We present a topology map middleware service and a distributed querying application service that run on top of this framework. We are currently working on addressing the key challenges presented and developing new middleware, application services, and optimization techniques that leverage heterogeneous multidevice collaboration such as colocation detection, determining colocation pattern, and task offloading.','IEEE Vehicular Technology Magazine',1,'S. Thota; R. Anantharangachar; S. Dixit; B. Mukherjee','ieee/service oriented architecture security.csv','ieee','\0'),(2201,'Information quality in healthcare social media – an architectural approach','2016','0',' Healthcare social networks Information quality Safety System architecture Policy','Abstract The evolution of the Internet has provided new and more efficient communication and collaboration channels between individuals, empowering them to share health information and to interact more and more using social media channels. Information quality is frequently identified as one of the main limitations of social media in healthcare. The objective of the paper is to discuss the social implications and limitations on information quality in healthcare social media, and particularly to contribute to the analysis and development of healthcare social networks (SN) and online healthcare social network services (SNS). For that reason, a formal architectural analysis of healthcare SN and SNS has been proposed, considering the complexity of both systems, but stressing on quality of Information aspects. Any social system - and its network of interrelations - can be analyzed as a real world system. Therefore, it is possible to model the structural components, interrelations and functionality (system architecture) of healthcare SN and SNS. The Generic Component Model (GCM) has demonstrated to be an ideal architectural framework for any real system’s analysis. Based on the GCM, the architecture of quality aware healthcare SNS is proposed. Information quality is addressed in the domain dimension of the GCM, supported by the definition of information quality policies. The practical implementation of quality-driven online SNS and information quality policies was demonstrated by the development of an online SNS supporting health promotion programs in a healthcare institution. In order to evaluate the relevance of the information quality policies proposed, a descriptive study was performed, in which the content published in the online SNS was selected strictly following the information quality policy. The study demonstrated that users’ perceived information quality was high. The paper addresses sociotechnical aspects of social media by providing a formal method for the management of information quality in online healthcare social networks.','Health and Technology',1,'D. M. LopezB. BlobelC. Gonzalez','springer/soa security.csv','springer',''),(2202,'Dynamic Authentication for Cross-Realm SOA-Based Business Processes','2012','3','Authentication;interorganizational security;multiparty interactions;service-oriented architecture;web services.','Modern distributed applications are embedding an increasing degree of dynamism, from dynamic supply-chain management, enterprise federations, and virtual collaborations to dynamic resource acquisitions and service interactions across organizations. Such dynamism leads to new challenges in security and dependability. Collaborating services in a system with a Service-Oriented Architecture (SOA) may belong to different security realms but often need to be engaged dynamically at runtime. If their security realms do not have a direct cross-realm authentication relationship, it is technically difficult to enable any secure collaboration between the services. A potential solution to this would be to locate intermediate realms at runtime, which serve as an authentication path between the two separate realms. However, the process of generating an authentication path for two distributed services can be highly complicated. It could involve a large number of extra operations for credential conversion and require a long chain of invocations to intermediate services. In this paper, we address this problem by designing and implementing a new cross-realm authentication protocol for dynamic service interactions, based on the notion of service-oriented multiparty business sessions. Our protocol requires neither credential conversion nor establishment of any authentication path between the participating services in a business session. The correctness of the protocol is formally analyzed and proven, and an empirical study is performed using two production-quality Grid systems, Globus 4 and CROWN. The experimental results indicate that the proposed protocol and its implementation have a sound level of scalability and impose only a limited degree of performance overhead, which is for example comparable with those security-related overheads in Globus 4.','IEEE Transactions on Services Computing',1,'J. Xu; D. Zhang; L. Liu; X. Li','ieee/service oriented architecture security.csv','ieee','\0'),(2203,'Service oriented evolutionary algorithms','2013','6',' Evolutionary algorithms Service oriented architecture Service oriented science Web services Interoperability Distributed computing','Abstract This work presents a service oriented architecture for evolutionary algorithms, and an implementation of this architecture using a specific technology (called OSGiLiath). Service oriented architecture is a computational paradigm where users interact using services to increase the integration between systems. The presented abstract architecture is formed by loosely coupled, highly configurable and language-independent services. As an example of an implementation of this architecture, a complete process development using a specific service oriented technology is explained. With this implementation, less effort than classical development in integration, distribution mechanisms and execution time management has been attained. In addition, steps, ideas, advantages and disadvantages, and guidelines to create service oriented evolutionary algorithms are presented. Using existing software, or from scratch, researchers can create services to increase the interoperability in this area.','Soft Computing',1,'P. García-SánchezJ. GonzálezP. A. CastilloM. G. ArenasJ. J. Merelo-Guervós','springer/service oriented architecture security.csv','springer','\0'),(2204,'Bücher','2013','0','','','HMD Praxis der Wirtschaftsinformatik',1,'Prof. Dr. Matthias Knoll','springer/soa security.csv','springer','\0'),(2205,'Contractual Proximity of Business Services','2015','0',' Service engineering Goal modeling Service contract Quality of service Service composition Serviceability Outsourcing','Abstract Business services arguably play a central role in service-based information systems as they would fill in the gap between the technicality of Service-Oriented Architecture and the business aspects captured in Enterprise Architecture. Business services have distinctive features that are not typically observed in Web services, e.g. significant portions of the functionality of business services might be executed in a human-mediated fashion. The representation of business services requires that we view human activity and human-mediated functionality through the lens of computing and systems engineering. Given the specification of a relatively complex business service, practitioners can deal with its complexity either by breaking it down into constituent services through common practices such as outsourcing or delegation, or by picking up an existing group of services (e.g. from a service catalog) that best realize that functionality. To address these challenges, we devise a formal machinery to (a) verify if a group of services contractually match the specification of the larger service in question; (b) to assess the contractual proximity of service groups relative to a contractual service specification to help decide which combination of services from a catalog best realize the desired functionality.','',1,'Lam-Son Lê','springer/service oriented architecture security.csv','springer',''),(2206,'Model-based specification and refinement of usage control policies','2013','4','','In existing usage control policy frameworks, policies consisting of authorizations and obligations are specified at a low level of abstraction. As a consequence, these policy specifications become long and complex since they reference many technical elements of the system such as operating system calls or web-service invocations. Due to this complexity, it is difficult for policy authors to assess if the policies they specify are complete and correct in order to achieve their high-level usage control goals. In this paper we describe our approach for specification and refinement of usage control policies that addresses this complexity problem. In our approach, high-level usage control policies are specified considering an abstract system model and automatically refined with the help of policy refinement rules to implementation-level policies. The input of our refinement rules is the abstract system model, the concrete system model, the system refinement steps from abstract to concrete, and the abstract usage control policies. We show the application of our approach in a case study of a supply chain scenario implemented using BPMN. In our case study high-level usage control policies are automatically refined to implementation-level policies that can be enforced in a BPMN engine.','Privacy, Security and Trust (PST), 2013 Eleventh Annual International Conference on',2,'R. Neisse; J. Doerr','ieee/bpmn security.csv','ieee','\0'),(2207,'A Standardized SOA for Clinical Data Interchange in a Cardiac Telemonitoring Environment','2014','1','Electronic health record (EHR);healthcare;healthcare services specification project (HSSP);interoperability;telemedicine solution','Care of chronic cardiac patients requires information interchange between patients\' homes, clinical environments, and the electronic health record. Standards are emerging to support clinical information collection, exchange and management and to overcome information fragmentation and actors delocalization. Heterogeneity of information sources at patients\' homes calls for open solutions to collect and accommodate multidomain information, including environmental data. Based on the experience gained in a European Research Program, this paper presents an integrated and open approach for clinical data interchange in cardiac telemonitoring applications. This interchange is supported by the use of standards following the indications provided by the national authorities of the countries involved. Taking into account the requirements provided by the medical staff involved in the project, the authors designed and implemented a prototypal middleware, based on a service-oriented architecture approach, to give a structured and robust tool to congestive heart failure patients for their personalized telemonitoring. The middleware is represented by a health record management service, whose interface is compliant to the healthcare services specification project Retrieve, Locate and Update Service standard (Level 0), which allows communication between the agents involved through the exchange of Clinical Document Architecture Release 2 documents. Three performance tests were carried out and showed that the prototype completely fulfilled all requirements indicated by the medical staff; however, certain aspects, such as authentication, security and scalability, should be deeply analyzed within a future engineering phase.','IEEE Journal of Biomedical and Health Informatics',1,'R. Gazzarata; F. Vergari; T. S. Cinotti; M. Giacomini','ieee/service oriented architecture security.csv','ieee','\0'),(2208,'Rethinking the ESB: Building a secure bus with an SOA gateway','2012','1','','For years the Enterprise Service Bus (ESB) has been seen as a corporate integration and messaging backbone upon which application architectures are built. However, this concept must evolve to meet the requirements of today\'s corporate landscape, where IT boundaries are blurring, driven by the need to securely integrate with partners, cloud and mobile applications. © 2012 Elsevier Ltd.','',1,'Ryan J.','scopus/soa security.csv','scopus','\0'),(2209,'Information systems security and security extension in Jersey RESTful framework','2012','1','Informacioni sistemi;Jersey;RESTful;servisi;sesije;sigurnost;tokeni','As information systems are becoming more distributed, with an emphasis on service oriented technologies, it is necessary to implement security on access and communication with them. On market vendors offer different software solutions in a form of frameworks in a domain of service application security, and different concepts post certain specific constraints on design of security subsystem of such systems. In this paper current methods in RESTful service security will be depicted, and extension elaborated in detail for Jersey RESTful framework for the purpose of efficiency enhancement.','Telecommunications Forum (TELFOR), 2012 20th',1,'D. Kosmajac; V. Vujović','ieee/service oriented architecture security.csv','ieee','\0'),(2210,'Team Situational Awareness and Architectural Decision Making with the Software Architecture Warehouse','2013','3','','Abstract The core of the design of software architecture is all about architectural decision making. A high-quality design outcome sets high requirements, not only on the skills and knowledge of the design team members, but also on the management of the decision making process. We claim that in order to deliver high quality decisions, the design team needs to obtain a high level of situational awareness. To address this, we present an analysis of the problem of team situational awareness in design workshops and propose a model on how stakeholder positions help to build consensus within the argumentation viewpoint of architectural decisions. We show how the Software Architecture Warehouse tool has been extended to support the argumentation viewpoint within its live design document metaphor to provide support for co-located and distributed design workshops.','',1,'Marcin NowakCesare Pautasso','springer/service oriented architecture security.csv','springer','\0'),(2211,'Learning Algorithms in the Detection of Unused Functionalities in SOA Systems','2013','0','','Abstract The objective of this paper is to present an application of learning algorithms to the detection of anomalies in SOA system. As it was not possible to inject errors into the “real” SOA system and to analyze the effect of these errors, a special model of SOA system was designed and implemented. In this system several anomalies were introduced and the effectiveness of algorithms in detecting them were measured. The results of experiments can be used to select efficient algorithm for anomaly detection. Two algorithms: K-means clustering and Kohonen networks were used to detect the unused functionalities and the results of this experiment are discussed.','',2,'Ilona BluemkeMarcin Tarka','springer/bpel security.csv','springer','\0'),(2212,'A reliable DICOM transfer grid service based on petri net workflows','2008','4','','Medical grid networks typically deal with extremely sensitive information and therefore require a special diligence in terms of security and reliability. This holds especially true in Medical Imaging, which is why the medical community long established DICOM (Digital Imaging and Communication in Medicine), a world-wide imaging and communication standard for secure and reliable data interchange. Most healthgrid projects today use DICOM with a combination of GridFTP and the Reliable-File-Transfer (RFT) webservice. Due to the multiple protocols and services involved, this solution is not ideally suited in terms of reliability or fault-tolerance. The proposed solution in this paper replaces the GridFTP combination by an end-to-end Grid-enhanced DICOM implementation and models the GridDICOM transfers as complex, Petri-Nets-based workflows. Based on these workflows, a respective workflow engine can autonomously and reliably control transfers including complex fault recovery and optimized routing strategies. A first prototype of the service, the components, and the respective workflows have been developed and successfully tested in MediGRID, the German grid network for life-sciences. © 2008 IEEE.','',1,'Vossberg M., Hoheisel A., Tolxdorff T., Krefting D.','scopus/webservice security.csv','scopus','\0'),(2213,'Making Data Meaningful: The Business Intelligence Model and Its Formal Semantics in Description Logics','2012','5',' Business Intelligence Business Model Goal Modeling Situation Analysis Model Reasoning Goal Reasoning Formal Semantics Description Logics','Abstract Business Intelligence (BI) offers great opportunities for strategic analysis of current and future business operations; however, existing BI tools typically provide data-oriented responses to queries, difficult to understand in terms of business objectives and strategies. To make BI data meaningful, we need a conceptual modeling language whose primitive concepts represent business objectives, processes, opportunities and threats. We have previously introduced such a language, the Business Intelligence Model (BIM). In this paper we consolidate and rationalize earlier work on BIM, giving a precise syntax, reducing the number of fundamental concepts by using meta-attributes , and introducing the novel notion of “pursuit”. Significantly, we also provide a formal semantics of BIM using a subset of the OWL Description Logic (DL). Using this semantics as a translation, DL reasoners can be exploited to (1) propagate evidence and goal pursuit in support of “what if?” reasoning, (2) allow extensions to the BIM language, (3) detect inconsistencies in specific BIM models, and (4) automatically classify defined concepts relative to existing concepts, organizing the model.','',2,'Jennifer HorkoffAlex BorgidaJohn MylopoulosDaniele BaroneLei JiangEric YuDaniel Amyot','springer/bpmn security.csv','springer','\0'),(2214,'PGSW-OS: a novel approach for resource management in a semantic web operating system based on a P2P grid architecture','2014','2',' Web operating systems (Web OS) Ontology P2P grid Cloud, resource management Semantic overlay network (SON)','Abstract A web operating system is an operating system that users can access from any hardware at any location. A peer-to-peer (P2P) grid uses P2P communication for resource management and communication between nodes in a grid and manages resources locally in each cluster, and this provides a proper architecture for a web operating system. Use of semantic technology in web operating systems is an emerging field that improves the management and discovery of resources and services. In this paper, we propose PGSW-OS (P2P grid semantic Web OS), a model based on a P2P grid architecture and semantic technology to improve resource management in a web operating system through resource discovery with the aid of semantic features. Our approach integrates distributed hash tables (DHTs) and semantic overlay networks to enable semantic-based resource management by advertising resources in the DHT based upon their annotations to enable semantic-based resource matchmaking. Our model includes ontologies and virtual organizations. Our technique decreases the computational complexity of searching in a web operating system environment. We perform a simulation study using the Gridsim simulator, and our experiments show that our model provides enhanced utilization of resources, better search expressiveness, scalability, and precision.','The Journal of Supercomputing',1,'Saeed JavanmardiMohammad ShojafarShahdad ShariatmadariJemal H. AbawajyMukesh Singhal','springer/soa security.csv','springer','\0'),(2215,'Secure cloud storage service and limited proxy re-encryption for enforcing access control in public cloud','2013','1','Access control; Cloud storage provider; Limited proxy re-encryption; Outsourcing; Secure cloud storage service','Cloud computing is a new computing paradigm wherein the resources of the computing infrastructure are provided as services over the internet. The benefits offered by the public cloud encourage the data owners/organisations to store their data on to the cloud storage provided by the cloud storage provider. Cloud computing poses new security challenges as the users outsource their data to public cloud. Building a secure cloud storage service on top of a public cloud infrastructure where the service provider is not completely trusted by the data owner is a security challenge. The existing popular storage services does not provide cryptographic guarantee for the security. They are often guided by service level agreements and policies. In this paper, we propose and implement a secure storage service providing a cryptographic guarantee for the security to store, access and share the user\'s data. We propose the notion of limited proxy re-encryption scheme to restrict the proxy from re-encrypting more than specified number of delegator\'s ciphertexts. We give the security model and analyse the scheme for security. We use the proposed limited proxy re-encryption scheme as the primitive and design an improved and efficient sharing method for the secure storage service. Copyright © 2013 Inderscience Enterprises Ltd.','',1,'Purushothama B.R., Shrinath B., Amberker B.B.','scopus/service oriented architecture security.csv','scopus','\0'),(2216,'Heuristics for composite Web service decentralization','2014','2',' Service composition Decentralized service execution Quality of service','Abstract A composite service is usually specified by means of a process model that captures control-flow and data-flow relations between activities that are bound to underlying component services. In mainstream service orchestration platforms, this process model is executed by a centralized orchestrator through which all interactions are channeled. This architecture is not optimal in terms of communication overhead and has the usual problems of a single point of failure. In previous work, we proposed a method for executing composite services in a decentralized manner. However, this and similar methods for decentralized composite service execution do not optimize the communication overhead between the services participating in the composition. This paper studies the problem of optimizing the selection of services assigned to activities in a decentralized composite service, both in terms of communication overhead and overall quality of service, and taking into account collocation and separation constraints that may exist between activities in the composite service. This optimization problem is formulated as a quadratic assignment problem. The paper puts forward a greedy algorithm to compute an initial solution as well as a tabu search heuristic to identify improved solutions. An experimental evaluation shows that the tabu search heuristic achieves significant improvements over the initial greedy solution. It is also shown that the greedy algorithm combined with the tabu search heuristic scale up to models of realistic size.','Software & Systems Modeling',2,'Walid FdhilaMarlon DumasClaude GodartLuciano García-Bañuelos','springer/bpel security.csv','springer',''),(2217,'State Machine Abstraction Layer','2014','0','','Abstract Smalldb uses a non-deterministic parametric finite automaton combined with Kripke structures to describe lifetime of an entity, usually stored in a traditional SQL database. It allows to formally prove some interesting properties of resulting application, like access control of users, and provides primary source of metadata for various parts of the application, for example automatically generated user interface and documentation.','',2,'Josef KufnerRadek Mařík','springer/bpel security.csv','springer',''),(2218,'Architectural Design of a Compensation Mechanism for Long Lived Transactions','2013','0',' Compensation Transaction Management SLA Management QoSAware Monitoring Composite Web Services Intelligent function on Workflow','Abstract Together with making Cloud computing reliable and dependable, there is a need to create mature definition of Service Level Agreements (SLA) for the quality assurances of services. Additionally, it is necessary to implement certain mechanisms in order to maintain the SLA further. In particular, the inter-Cloud environment with multiple entities of Cloud computing has evolved. In order to realize the inter-Cloud environment, the Composite Web Service (CWS) is a promising candidate. However, the CWS which consists of multiple elemental services has features of a transactional workflow adopting the notion of a long lived transaction (LLT). A compensation transaction is required for handling the occurrence of an exception. However its design methodology has remained immature. In particular, clarifying a concrete architecture for integrating Transaction-Aware together with the mechanism for maintaining SLA categorized as QoS-Aware has been ongoing. In this paper, we present our initial consideration on the architectural design and its principle for SLA management which carries out the compensations. The architectural aspects for an intelligent function which is required in the next scalable workflow will also be presented.','',2,'Shinji Kikuchi','springer/bpel security.csv','springer','\0'),(2219,'Energy Efficient Computational Offloading Framework for Mobile Cloud Computing','2015','5',' Mobile cloud computing Distributed systems Computational offloading Lightweight Energy efficient','Abstract The latest developments in mobile computing technology have changed user preferences for computing. However, in spite of all the advancements in the recent years, Smart Mobile Devices (SMDs) are still low potential computing devices which are limited in memory capacity, CPU speed and battery power lifetime. Therefore, Mobile Cloud Computing (MCC) employs computational offloading for enabling computationally intensive mobile applications on SMDs. However, state-of-the-art computational offloading frameworks lack of considering the additional overhead of components migration at runtime. Therefore resources intensive and energy consuming distributed application execution platform is established. This paper proposes a novel distributed Energy Efficient Computational Offloading Framework (EECOF) for the processing of intensive mobile applications in MCC. The framework focuses on leveraging application processing services of cloud datacenters with minimal instances of computationally intensive component migration at runtime. As a result, the size of data transmission and energy consumption cost is reduced in computational offloading for MCC. We evaluate the proposed framework by benchmarking prototype application in the real MCC environment. Analysis of the results show that by employing EECOF the size of data transmission over the wireless network medium is reduced by 84 % and energy consumption cost is reduced by 69.9 % in offloading different components of the prototype application. Hence, EECOF provides an energy efficient application layer solution for computational offloading in MCC.','Journal of Grid Computing',1,'Muhammad ShirazAbdullah GaniAzra ShamimSuleman KhanRaja Wasim Ahmad','springer/soa security.csv','springer',''),(2220,'Investigating the role of an enterprise architecture project in the business-IT alignment in Iran','2013','4',' Enterprise architecture (EA) Business-IT alignment (BITA) Luftman’s maturity model Iran','Abstract Ensuring that IT and business have a more mature alignment relationship is recognized as being critical to an organization’s success. To achieve alignment leveraging, enterprise architecture (EA) is considered fundamental as a comprehensive approach to planning and managing IT actions within the organization, based on its business requirements. This paper reports on a study to assess the effect of successful EA projects on the business-IT alignment in Iranian organizations, using the Luftman’s maturity model as the assessment tool. The implications of our findings in this study as well as its limitations are discussed to assist in detecting the flaws in the existing EA frameworks and to propose improvements.','Information Systems Frontiers',1,'Morteza AlaeddiniSepideh Salekfard','springer/service oriented architecture security.csv','springer','\0'),(2221,'On Analyzing Process Compliance in Skin Cancer Treatment: An Experience Report from the Evidence-Based Medical Compliance Cluster (EBMC2)','2012','3',' Data Quality Healthcare Processes Process Modeling Process Mining','Abstract Process mining has proven itself as a promising analysis technique for processes in the health care domain. The goal of the EBMC 2 project is to analyze skin cancer treatment processes regarding their compliance with relevant guidelines. For this, first of all, the actual treatment processes have to be discovered from the available data sources. In general, the L * life cycle model has been suggested as structured methodology for process mining projects. In this experience paper, we describe the challenges and lessons learned when realizing the L * life cycle model in the EBMC 2 context. Specifically, we provide and discuss different approaches to empower data of low maturity levels, i.e., data that is not already available in temporally ordered event logs, including a prototype for structured data acquisition. Further, first results on how process mining techniques can be utilized for data screening are presented.','',2,'Michael BinderWolfgang DordaGeorg DuftschmidReinhold DunklKarl Anton FröschlWalter GallWilfried GrossmannKaan HarmankayaMilan HronskyStefanie Rinderle-MaChristoph RinnerStefanie Weber','springer/bpmn security.csv','springer','\0'),(2222,'Information Governance Requirements for Architectural Solutions Supporting Dynamic Business Networking','2016','0','','Abstract The competition in the globalized markets highlights the need for the formation of dynamic business networks to provide mass-customized integrated solutions for customers. However, dynamic interoperations among parties within a business network results in emerging information governance (IG) requirements. In previous research different architectural solutions have been developed to support dynamic business networks. In this paper we investigate in the extent to which the emerging IG requirements in dynamic business networks are covered by developed architectural solutions. This investigation reflects required future developments to enrich architectural solutions in order to support IG requirements in dynamic business networks.','',1,'Mohammad R. RasouliRik EshuisJos J. M. TrienekensPaul W. P. J. Grefen','springer/service oriented architecture security.csv','springer',''),(2223,'HiPoLDS: A hierarchical security policy language for distributed systems','2013','3','Distributed systems; Security policies; Service-oriented architectures','Expressing security policies to govern distributed systems is a complex and error-prone task. Policies are hard to understand, often expressed with unfriendly syntax, making it difficult for security administrators and for business analysts to create intelligible specifications. We introduce the Hierarchical Policy Language for Distributed Systems (HiPoLDS), which has been designed to enable the specification of security policies in distributed systems in a concise, readable, and extensible way. HiPoLDS design focuses on decentralized execution environments under the control of multiple stakeholders. It represents policy enforcement through the use of distributed reference monitors, which control the flow of information between services. HiPoLDS allows the definition of both abstract and concrete policies, expressing respectively high-level properties required and concrete implementation details to be ultimately introduced into the service implementation. © 2012 Elsevier Ltd. All rights reserved.','',1,'Dell\'Amico M., Serme G., Idrees M.S., Santana De Oliveira A., Roudier Y.','scopus/service oriented architecture security.csv','scopus','\0'),(2224,'A Framework for Policy Similarity Evaluation and Migration Based on Change Detection','2015','0',' Access control Policy similarity Policy migration Change detection','Abstract Access control facilitates controlled sharing and protection of resources in an enterprise. However, given the ubiquity of collaborative applications and scenarios, enterprises no longer function in isolation. Being able to measure policy similarity and integrate heterogeneous policies appropriately is an essential step towards secure interoperation. Existing approaches for measuring policy similarity are based on computing similarity between different components of the access control policy. However, this does not provide a pathway for integrating policies, and may not sufficiently take the security context into account. In this paper, we propose a holistic change detection approach that enables policy similarity evaluation and policy migration. Our approach more comprehensively takes into account different access control semantics to compute policy similarity and finds the common organizational policy with the least cost.','',1,'Jaideep VaidyaBasit ShafiqVijayalakshmi AtluriDavid Lorenzi','springer/service oriented architecture security.csv','springer',''),(2225,'Risk-Based Auto-delegation for Probabilistic Availability','2012','1',' Auto-delegation Access control Risk Availability','Abstract Dynamic and evolving systems might require flexible access control mechanisms, in order to make sure that the unavailability of some users does not prevent the system to be functional, in particular for emergency-prone environments, such as healthcare, natural disaster response teams, or military systems. The auto-delegation mechanism, which combines the strengths of delegation systems and “break-the-glass” policies, was recently introduced to handle such situations, by stating that the most qualified available user for a resource can access this resource. In this work we extend this mechanism by considering availability as a quantitative measure, such that each user is associated with a probability of availability. The decision to allow or deny an access is based on the utility of each outcome and on a risk strategy. We describe a generic framework allowing a system designer to define these different concepts. We also illustrate our framework with two specific use cases inspired from healthcare systems and resource management systems.','',1,'Leanid KrautsevichFabio MartinelliCharles MorissetArtsiom Yautsiukhin','springer/service oriented architecture security.csv','springer','\0'),(2226,'Current developments and challenges in building automation','2012','3',' overview building automation systems BAS HVAC fieldbus optimization security demand response challenges Schlüsselwörter Überblick Gebäudeautomatisierung BAS HLK Feldbus Optimierung Security Demand Response Herausforderungen','Abstract The classical systems of building automation systems (BAS) have evolved from control of heating, ventilation and air-conditioning (HVAC). The wide use of fieldbus technology and powerful embedded systems has enabled new developments. Building automation is employed to integrate user requirements, system requirements and optimizations in order to maintain user comfort—with energy efficiency being a recently added optimization goal. The classic three-layer automation model is transferred into a service-oriented architecture (SOA) of objects. At the same time, the complexity increases as new services are added. Object-oriented solutions are an approach to cope with this. The basic design of controllers has become distributed and is adopting advanced methods. The resulting, highly integrated systems require a defense-in-depth strategy to ensure security. We take a look at the building services today and in the near future, highlight the strength of integrated building automation over different domains and industries and show the upcoming challenges for building automation systems.','e & i Elektrotechnik und Informationstechnik',1,'Stefan SoucekGerhard Zucker','springer/service oriented architecture security.csv','springer','\0'),(2227,'A new system based on web services and RFID for tracking people in a pervasive mining environment','2013','','mining; pervasive; RFID; Web services','This work present a solution for locating people inside of mines with a system designed with the service oriented architecture and RFID technology to help the security of workers. We propose a pervasive computing system designed with a UML process extension, to discover the rights web services to transmit and process data collected from RFID sensors. The data captured from nodes allow calculating the location of workers and machines by reference tags in conjunction with techniques of trilateration. The results were successful, since it achieves a design of pervasive system with web services and a database model to be used by localization algorithm that shown an improvement in its accuracy with an increasing the number of reference tags. © 2013 IEEE.','',1,'Iturralde D., Soto I., Fuentealba D., Bravo J., Becerra N.','scopus/service oriented architecture security.csv','scopus','\0'),(2228,'Discovery and Resolution of Anomalies in Web Access Control Policies','2013','1','Access control policies;XACML;conflict;discovery and resolution;redundancy','Emerging computing technologies such as web services, service-oriented architecture, and cloud computing has enabled us to perform business services more efficiently and effectively. However, we still suffer from unintended security leakages by unauthorized actions in business services while providing more convenient services to Internet users through such a cutting-edge technological growth. Furthermore, designing and managing web access control policies are often error-prone due to the lack of effective analysis mechanisms and tools. In this paper, we represent an innovative policy anomaly analysis approach for web access control policies, focusing on extensible access control markup language policy. We introduce a policy-based segmentation technique to accurately identify policy anomalies and derive effective anomaly resolutions, along with an intuitive visualization representation of analysis results. We also discuss a proof-of-concept implementation of our method called XAnalyzer and demonstrate how our approach can efficiently discover and resolve policy anomalies.','IEEE Transactions on Dependable and Secure Computing',1,'H. Hu; G. J. Ahn; K. Kulkarni','ieee/service oriented architecture security.csv','ieee','\0'),(2229,'Track Report of Capacity Driven Processes and Services for Cyber Physical Society (CPS 2014)','2014','0','','Cyber Physical Society (CPS) feature a tight integration between computation, communication, and control in their operation and interactions with the environment in which they are deployed. The concept of capability, which is the semantics of an action or specific functionality, is therefore a cornerstone in modern Cyber Physical Society, especially those service or process aware. In this track, we present dedicated techniques for capability management and engineering, which can be applied and reused in a large number of areas such as SOA, BPM, Cloud Computing and Internet of Things. These techniques will certainly boost several related research efforts in Cyber Physical Society. This track aims at shedding the light on the importance of capability engineering as well as at bringing together researchers and practitioners working in capability engineering to achieve the vision of cyber physical society by means of current techniques.','2014 IEEE 23rd International WETICE Conference',1,'M. Barhamgi; W. Gaaloul; J. Ezpeleta; Z. Zhou','ieee/service oriented architecture security.csv','ieee','\0'),(2230,'Interoperability-Related Architectural Problems and Solutions in Information Systems: A Scoping Study','2014','2',' Software interoperability software architecture information systems scoping study','Abstract [ Context ] With the increasing industrial demands for seamless exchange of data and services among information systems, architectural solutions are a promising research direction which supports high levels of interoperability at early development stages. [ Objectives ] This research aims at identifying the architectural problems and before-release solutions of interoperability on its different levels in information systems, and exploring the interoperability metrics and research methods used to evaluate identified solutions. [ Methods ] We performed a scoping study in five digital libraries and descriptively analyzed the results of the selected studies. [ Results ] From the 22 studies included, we extracted a number of architectural interoperability problems on the technical, syntactical, semantic, and pragmatic levels. Many problems are caused by systems’ heterogeneity on data representation, meaning or context. The identified solutions include standards, ontologies, wrappers, or mediators. Evaluation methods to validate solutions mostly included toy examples rather than empirical studies. [ Conclusions ] Progress has been made in the software architecture research area to solve interoperability problems. Nevertheless, more researches need to be spent on solutions for the higher levels of interoperability accompanied with proper empirical evaluation for their effectiveness and usefulness.','',1,'Hadil AbukwaikDavide TaibiDieter Rombach','springer/service oriented architecture security.csv','springer','\0'),(2231,'A cloud Computation Architecture for Unconventional Emergency Management','2013','0',' Unconventional emergency Cloud computing Emergency management','Abstract With the development of technologies and the deterioration of natural environment, unconventional emergencies outbreak more unexpectedly and diffuse more quickly and broadly. Secondary and derived disasters increase, and the impacts tend to be indirect and tremendous. Emergency management decisions are facing great challenges, and have attracted great concerns from government departments, academia and industries. In recent years, as a service-oriented computing mode, the cloud computing technology brings advantage in information sharing, resource allocating, and distributed high-performance computing, which makes it a feasible solution to unconventional emergency management, research, quick response and decision support. In this paper, we propose a cloud computation architecture for unconventional emergency management, which involves the key technologies including computation resource pooling, scalable extension of computation resource and services and user-centroid service management. The proposed architecture supports multilevel demand in computation and storage resource by providing services such as virtual machine, big data storage, web information detection and spatio-temporal data visualization. Three experimental scenarios are designed to validate the improvement of decision support capabilities and emergency response speed.','',1,'Jianhui LiYuanchun ZhouWei ShangCungen CaoZhihong ShenFenglei YangXiao XiaoDanhuai Guo','springer/service oriented architecture security.csv','springer','\0'),(2232,'FPGAs for trusted cloud computing','2012','8','','FPGA manufacturers have offered devices with bitstream protection for a number of years. This feature is currently primarily used to prevent IP piracy through cloning. However, in this paper we describe how protected bitstreams can also be used to create a root of trust for the clients of cloud computing services. Unlike related software-based solutions, this hardware-based approach solves a fundamental problem that currently impedes the greater adoption of cloud computing: how to secure client data and computation from both potential external attackers and an untrusted system administrator. We examine how this approach can be applied to the specific application of handling sensitive health data. This system maintains the advantages of the cloud with minimal additional hardware. We also describe how this system can be extended to provide a more generic secure cloud architecture.','22nd International Conference on Field Programmable Logic and Applications (FPL)',1,'K. Eguro; R. Venkatesan','ieee/service oriented architecture security.csv','ieee','\0'),(2233,'Applications of the Future Internet Engineering Project','2012','1','Future Internet;communication-enabled applications;content and context aware applications;pervasive computing;service centric architectures;service-oriented architecture','The paper gain is to present at the glance applications proposed, deployed and tested within Future Internet Engineering (FIE) project. The elaborated applications utilize the general concept of IP Multimedia Subsystem (IMS) according to which the IMS core servers (Parallel Internets) are treated as a docking station for any kind of application servers. It also means that the applications may be running as long as IMS provides standardized and extended interfaces. The mentioned applications have been selected as representative for process-oriented business organizations characterized by service- and process-oriented models and implementation (SOA, Web Services, Semantic Web, Web of data, content- and context aware applications, etc.) based on service-oriented architectures, pervasive computing and communication-enabled applications paradigms. In the applications\' architectures complex, \"autonomic\" self-organizing distributed systems/workflows with autonomous components are specified, realized, simulated and evaluated as a based on active component technologies. Application-driven content- and context-aware networks support process- and service-oriented processes. A combination of the above mentioned models (the push and pull model), architecture and approaches are possible and attractive from research, application and business perspectives. All the shortly presented applications may be considered as Over-The-Top (OTT) applications which effectively commoditize intelligent network services.','Software Engineering, Artificial Intelligence, Networking and Parallel & Distributed Computing (SNPD), 2012 13th ACIS International Conference on',1,'A. Grzech; K. Juszczyszyn; P. Swiatek; C. Mazurek; A. Sochan','ieee/service oriented architecture security.csv','ieee','\0'),(2234,'A Business Process-Driven Approach for Requirements Dependency Analysis','2012','0',' Business process modeling workflow pattern software development and maintenance requirements dependency','Abstract Dependencies among software artifacts are very useful for various software development and maintenance activities such as change impact analysis and effort estimation. In the past, the focus on artifact dependencies has been at the design and code level rather than at the requirements level. This is due to the difficulties in identifying dependencies in a text-based requirements specification. We observed that difficulties reside in the disconnection among itemized requirements and the lack of a more systematic approach to write text-based requirements. Business process models are an increasingly important part of a requirements specification. In this paper, we present a mapping between workflow patterns and dependency types to aid dependency identification and change impact analysis. Our real-world case study results show that some participants, with the help of the mapping, discovered more dependencies than other participants using text-based requirements only. Though many of these additional dependencies are highly difficult to spot from the text-based requirements, they are however very useful for change impact analysis.','',2,'Juan LiRoss JefferyKam Hay FungLiming ZhuQing WangHe ZhangXiwei Xu','springer/bpmn security.csv','springer','\0'),(2235,'Cerberus: Automated Synthesis of Enforcement Mechanisms for Security-Sensitive Business Processes','2016','0','','Abstract Cerberus is a tool to automatically synthesize run-time enforcement mechanisms for security-sensitive Business Processes (BPs). The tool is capable of guaranteeing that the execution constraints \\(EC \\) on the tasks together with the authorization policy \\(AP \\) and the authorization constraints \\(AC \\) are satisfied while ensuring that the process can successfully terminate. Cerberus can be easily integrated in many workflow management systems, it is transparent to process designers, and does not require any knowledge beyond usual BP modeling. The tool works in two phases. At design-time, the enforcement mechanism M , parametric in the authorization policy \\(AP \\) , is generated from \\(EC \\) and \\(AC \\) ; M can thus be used with any instance of the same BP provided that \\(EC \\) and \\(AC \\) are left unchanged. At run-time, a specific authorization policy is added to M , thereby obtaining an enforcement mechanism \\(M^*\\) dedicated to a particular instance of the security-sensitive business process. To validate our approach, we discuss the implementation and usage of Cerberus in the SAP HANA Operational Intelligence platform.','',2,'Luca CompagnaDaniel Ricardo dos SantosSerena Elisa PontaSilvio Ranise','springer/bpmn security.csv','springer',''),(2236,'Tamed Agility in Developing Mobile Business Systems','2013','0',' Mobile systems agile development modeling team interaction','Abstract Mobile systems are determined by requirements which tend to change over time. Agile approaches seem to address this, but fail to provide reliable project plans, budget estimations and capacity forecasts. Thus, mobile enterprise applications demand for tamed agility, reconciling advantages of agile development and plan-driven approaches. In this paper, this tradeoff is addressed. The Interaction Room method is introduced as a low-tech method to support value-oriented development of mobile applications.','',2,'Volker GruhnMatthias Book','springer/bpmn security.csv','springer','\0'),(2237,'A Generalized Algorithm for Publish/Subscribe Overlay Design and Its Fast Implementation','2012','2','','Abstract It is a challenging and fundamental problem to construct the underlying overlay network to support efficient and scalable information distribution in topic-based publish/subscribe systems. Existing overlay design algorithms aim to minimize the node fan-out while building topic-connected overlays, in which all nodes interested in the same topic are organized in a directly connected dissemination sub-overlay. However, most state-of-the-art algorithms suffer from high computational complexity, such as O (| V | 4 | T |), where V is the node set and T is the topic set. We devise a general indexing data structure that provides a significantly faster implementation, with O (| V | 2 | T |) running time, for different state-of-the-art algorithms. The generality of the indexing data structure is due to the fact that it enables edge lookup by both node degree and edge contribution , a central metric in all existing algorithms. When tested on typical pub/sub workloads, the speedup observed was by a factor of over 1 000, thereby rendering the algorithms more suitable for practical use. For example, under a typically Zipf distributed pub/sub workload, with 1 000 nodes and 100 topics, our new implementation completes in 3.823 seconds, while the previous alternative takes over 555 minutes.','',1,'Chen ChenRoman VitenbergHans-Arno Jacobsen','springer/service oriented architecture security.csv','springer','\0'),(2238,'SERVICES 2012: 2012 IEEE Eighth World Congress on Services [Cover art]','2012','0','','The following topics are dealt with: software fault tolerance; service-oriented software; data security; cloud computing; and Web services.','2012 IEEE Eighth World Congress on Services',1,'','ieee/service oriented architecture security.csv','ieee','\0'),(2239,'VxBPEL-ODE: A variability enhanced service composition engine','2014','','Service Compositions; Service Oriented Architecture; Variability Management; VxBPEL','Service compositions have become a powerful development paradigm to create distributed applications out of autonomous Web services. Since such applications are often deployed and executed in open and dynamic environments, variability management is a crucial enabling technique. To address the adaptation issue of service compositions, we proposed VxBPEL, an extension of BPEL for supporting variability, and a variability-based adaptive service composition approach which employs VxBPEL for variability implementation. In this paper, we present a VxBPEL engine for supporting the execution of VxBPEL service compositions. The engine is called VxBPEL-ODE and is implemented by extending a widely recognized open source BPEL engine, Apache ODE. We discuss key issues of developing VxBPEL-ODE, and three real-life service compositions are employed to evaluate and compare its performance with another VxBPEL engine we developed in our previous work. VxBPEL-ODE, together with analysis, design, and run-time management tools for VxBPEL, constitutes a comprehensive supporting platform for variability-based adaptive service compositions. © Springer International Publishing Switzerland 2014.','',2,'Sun C.-A., Wang P., Zhang X., Aiello M.','scopus/bpel security.csv','scopus',''),(2240,'Telecom Applications, APIs and Service Platforms','2013','0','','Abstract In the late 1980s, the open telecommunication services market was proclaimed in many vision statements and research papers, and regulative actions were taken to establish it. Today, due to the convergence of telecommunications, information technologies, Internet, World Wide Web and finally entertainment together with global markets and competition, we are living in an open multimedia services market and the information society is reality. As the competition between operators and service providers in the communications sector increases through, the actual value of networks and communications is decreasing. The remaining assets for future growth of the companies rely on the value of services, content and end systems that are increasing substantially within the new world of convergence and the much more complex multimedia services value chain that has emerged. The split of networks, service platforms, services and content requires on the one hand clear positioning of market players to face these challenges and on the other hand to establish a technological foundation for open business models. In this chapter, we want to trace the evolution of service and service platform concepts in telecommunications and outline technologies for converging networks and services and their latest developments.','',1,'Niklas BlumJulius MüllerFlorian SchreinerThomas Magedanz','springer/service oriented architecture security.csv','springer','\0'),(2241,'Opening web applications for third-party development: a service-oriented solution','2016','0',' Web application SOA Web service Service composition and application migration','Abstract Web applications are nowadays prevalent software systems in our everyday’s life. A lot of these applications have been developed for end users only. Thus, they are not designed by considering future extensions that would be developed by third parties. One possible and interesting solution for opening these applications for such kind of extension development is to create and deploy Web services starting from these applications. In this paper, we present a method and a tool for semiautomatically creating Web service implementations from applications having Web interfaces. The proposed method generates operations that are published in Web services for each functionality provided by a Web application. In addition, it generates new operations starting from Web interfaces. Our approach goes further in the creation of services by generating executable orchestrations, as BPEL processes, starting from navigations in the Web interfaces of these applications and by providing BPMN choreography specifications starting from the collaborations between the generated Web services. We implemented and experimented our solution in the migration of three real-world Web applications toward Web service-oriented systems.','Service Oriented Computing and Applications',1,'Mohamed Lamine KerdoudiChouki TibermacineSalah Sadou','springer/soa security.csv','springer',''),(2242,'Engineering Semantic Web Services for Government Business Processes Automation','2015','0',' E-government Web service Semantic web service Business process modeling Semantic annotation','Abstract Web Services (WS) technology does not allow automatic discovery and execution of services in the current distributed and complex business environments. Semantic Web Services (SWS) overcome this limitation by adding semantic descriptions to WS, enabling automatic discovery, selection, composition and execution of services for intelligent interoperable machine-to-machine interactions over the World Wide Web (WWW). These capabilities of SWS are useful in distributed environments such as that of e-government. On the other hand, existing SWS solutions assume the existence of dedicated service providers of WS to be semantically described. However, government operations and processes may require a certain amount of prior re-engineering (conceptualization, design, modeling, specification, etc.). This study proposed an infrastructure for Semantic Web Services-enabled e-government that integrates Business Process Modelling (BPM) and Semantic Annotation into existing SWS solutions as tools for the modeling and engineering of SWS for non-automated government operations and processes. The proposed infrastructure leverages SWS technology in e-government while enabling continuous re-engineering and automation of government processes. The study presents an example of the application of the proposed infrastructure with emphasis on the modeling and semantic annotation of business processes for SWS design.','',2,'Jean Vincent Fonou-DombeuMagda Huisman','springer/bpmn security.csv','springer',''),(2243,'IEEE Services Visionary Track on Security and Privacy Engineering (SPE 2015)','2015','0','','Message from the IEEE Services Visionary Track on Security and Privacy Engineering (SPE 2015) Program Chairs.','2015 IEEE World Congress on Services',1,'C. A. Ardagna; M. Jensen; M. V. Martin','ieee/service oriented architecture security.csv','ieee',''),(2244,'Open SOA health web platform for mobile medical apps: Connecting securely mobile devices with distributed electronic health records and medical systems','2014','','business process model and notation (BPMN); coordinated health delivery; distributed medical systems and services; health IT services; hybrid cloud; IEC Standard 80001; IHE; integrated care environments; integrated clinical environment (ICE); medical cyber-physical systems; medical device connectivity; medical device interoperability; medical enterprise applications; medical IT networks; medical IT networks; mHealth; openSDC; patient privacy; point of care services; private cloud; public cloud; regulated mobile medical apps; risk management; risk management; secure cloud solutions; secure service proxy; service-composed medical apps; system of systems integration; Web 2.0; Web services; wound management','Doctors and nurses have become amenable and increasingly keen of using smart mobile devices and applications for health delivery support to their patients. The main challenge is to securely connect to the patient\'s electronic health records in time when patient health data are needed and to access patient\'s vital data online for coordinated and individual healthcare delivery. Here, we report about a service-oriented open health Web platform that has been developed for distributed systems, devices and medical IT-services. The open SOA Web platform is suited to host mobile medical apps, which provide automated online access to the vital sign data of the patient and support guided procedures to treat the patients according to individual treatment regimes. A mobile medic app for wound management IT is described that connects to the electronic wound case record of the selected patient. The app supports the healthcare professional during treatment and facilitates the documentation process. © 2014 IEEE.','',2,'Meyer J.-U.','scopus/bpmn security.csv','scopus',''),(2245,'Transactional Correctness for Secure Nested Transactions','2012','0','','Abstract Secure Nested Transactions are an adaptation of traditional nested transactions to support the synergy of language-based security and multi-level database security. They have application in security for enterprise applications, where transactional semantics are a critical feature in middleware systems. This article considers correctness in terms of transactional properties for secure nested transactions. Correctness is expressed in terms of a labeled transition system, the TauZero calculus.','',1,'Dominic DugganYe Wu','springer/service oriented architecture security.csv','springer','\0'),(2246,'Towards the Orchestration of Secured Services under Non-disclosure Policies','2012','0',' Web services Orchestration security policy separation of duty deducibility constraints cryptographic protocols','Abstract The problem of finding a mediator to compose secured services has been reduced in our former work to the problem of solving deducibility constraints similar to those employed for cryptographic protocol analysis. We extend in this paper the mediator synthesis procedure by a construction for expressing that some data is not accessible to the mediator. Then we give a decision procedure for verifying that a mediator satisfying this non-disclosure policy can be effectively synthesized. This procedure has been implemented in CL-AtSe, our protocol analysis tool. The procedure extends constraint solving for cryptographic protocol analysis in a significative way as it is able to handle negative deducibility constraints without restriction. In particular it applies to all subterm convergent theories and therefore covers several interesting theories in formal security analysis including encryption, hashing, signature and pairing.','',1,'Tigran AvanesovYannick ChevalierMichaël RusinowitchMathieu Turuani','springer/service oriented architecture security.csv','springer','\0'),(2247,'Aspectual Interactions for Adaptive Behavioral Web-Services with Tailored Maude-Based Certification','2009','0','','Service technology proposes a loosely-coupled integration and composition of any service functionalities, exposed by XML-based interfaces and composed using standards such as BPEL. Nevertheless, as cross-organizations are swiftly competing, the rigid character as well as the ad-hoc deployment using these standards is still hindering the large-scale application of this service paradigm. This contribution aims at contributing towards overcoming these two serious limitations. First we put forward an intuitive event-driven architectural conceptualization that promotes behavioral rule centric transient interactions for any service composition. Towards non-intrusive and runtime adaptability of such exogenous service interactions, we then present how to abstractly endow them with aspect-oriented mechanizations. Finally a compliant service foundation with rapid-prototyping capabilities is proposed, by accordingly leveraging the distributed rewriting-logic based Maude language. In particular, capitalizing on Maude reflection, we dynamically intercept triggering events, perform inherent behavioural interactions as suitable advices and non-intrusively weave them on respective components using required interfaces.','2009 International Conference on E-Business and Information System Security',2,'A. Alqahtani; H. Zedan','ieee/bpel security.csv','ieee','\0'),(2248,'Case-Based Reasoning on E-Community Knowledge','2013','0',' case-based reasoning meta-knowledge reliability filtering ranking personalization','Abstract This paper presents MKM, a meta-knowledge model to manage knowledge reliability, in order to extend a CBR system so that it can reason on partially reliable, non expert, knowledge from the Web. Knowledge reliability is considered from the point of view of the decision maker using the CBR system. It is captured by the MKM model including notions such as belief, trust, reputation and quality, as well as their relationships and rules to evaluate knowledge reliability. We detail both the model and the associated approach to extend CBR. Given a problem to solve for a specific user, reliability estimation is used to filter knowledge with high reliability as well as to rank the results produced by the CBR system, ensuring the quality of results.','',1,'Emmanuelle GaillardJean LieberYannick NaudetEmmanuel Nauer','springer/service oriented architecture security.csv','springer','\0'),(2249,'A Service-Oriented Architecture (SOA) framework component for verification of choreography','2015','','Choreography; Framework for service choreography (FSC); Orchestration; SOA; Verification model (VM); Web services','Service-Oriented Architecture (SOA) is a paradigm that encourages organization to understand, how their information technology infrastructure capabilities can be organized to achieve business goals? SOA promises a challenging generation of information systems application based on a new set of standards for enabling self describing, interoperable web services. The web service composition supports choreography in SOA. The web service composition is mainly managed through orchestration and choreography of services. In this paper, we propose a Framework for Service Choreography (FSC) to control the business processes in SOA to reduce complexity in web service composition. To address choreography security issues while passing messages between the services choreographed in SOA, we also propose a Verification Model (VM) using Security Assertions Markup Language (SAML 2.0) to provide authentication and authorization. Then, we have implemented the proposed choreography model. © Springer India 2015.','',1,'Bhuyan P., Ray A., Mohapatra D.P.','scopus/service oriented architecture security.csv','scopus',''),(2250,'Formalization of secure service oriented product line','2015','','Map; Secure application engineering; Secure domain engineering; Secure service oriented product line; Software security','In this work, we focus on the SOPL approach (Service Oriented Product Line) which can be used in various domains where SOA based applications are needed such as e/m government, e-business, e-learning and so on. This approach is a combination of Service-Oriented Architecture (SOA) and Software Product Line (SPL). Ensure secure services are vital in order to establish trust between users and service providers. In this context, we aim to propose guidelines for using Secure SOPL which process leads to produce secure service-oriented applications. In fact, with the diversity of the means that allow us to perform security activities, the use of Secure SOPL is difficult especially for developers whose lack experience in the security software, SPL and SOA fields which are the basis the Secure SOPL. Thus, we choose the Map formalism which is a decision-oriented model to formalize the two phases of our Secure SOPL.','',1,'Achour I., Labed L., Ghezala H.B.','scopus/service oriented architecture security.csv','scopus',''),(2251,'PaaSHopper: Policy-driven middleware for multi-PaaS environments','2015','1',' Multi-cloud PaaS Policy-driven adaptation Middleware Portability','Abstract Offering Software-as-a-Service (SaaS) applications on top of a Platform-as-a-Service (PaaS) platform is a promising strategy as the SaaS provider does not need to acquire and maintain private cloud infrastructure, and it enables him/her to enjoy the benefits of cloud scalability and flexiblity as well. However, as this entails losing some control over the application and its data, SaaS providers are in practice reluctant to migrate to a PaaS platform entirely. To alleviate such concerns of vendor lock-in, the concept of a multi-cloud involves integrating and combining multiple cloud environments, private as well as public, but also involving multiple providers and different technologies. This has the added benefit that it further improves overall availability, flexibility and scalability. Current support for multi-cloud applications however is limited. This paper presents PaaSHopper, a middleware platform for developing and operating multi-tenant SaaS applications in a multi-PaaS environment. It enables the SaaS provider to have fine-grained control over the execution of applications and the storage of application data, while offering the tenant some degrees of customization and self-service as well. Driven by stakeholder-specific policies, the middleware dynamically decides which requests and tasks are executed in a particular part of the multi-PaaS environment. We validated this work in the context of four realistic SaaS application cases on top of a multi-cloud consisting of a local JBoss Application Server cluster, Google App Engine, and Red Hat OpenShift.','Journal of Internet Services and Applications',1,'Stefan WalravenDimitri Van LanduytAnsar RafiqueBert LagaisseWouter Joosen','springer/service oriented architecture security.csv','springer',''),(2252,'SATMC: A SAT-Based Model Checker for Security-Critical Systems','2014','3','','Abstract We present SATMC 3.0, a SAT-based bounded model checker for security-critical systems that stems from a successful combination of encoding techniques originally developed for planning with techniques developed for the analysis of reactive systems. SATMC has been successfully applied in a variety of application domains (security protocols, security-sensitive business processes, and cryptographic APIs) and for different purposes (design-time security analysis and security testing). SATMC strikes a balance between general purpose model checkers and security protocol analyzers as witnessed by a number of important success stories including the discovery of a serious man-in-the-middle attack on the SAML-based Single Sign-On (SSO) for Google Apps, an authentication flaw in the SAML 2.0 Web Browser SSO Profile, and a number of attacks on PKCS#11 Security Tokens. SATMC is integrated and used as back-end in a number of research prototypes (e.g., the AVISPA Tool, Tookan, the SPaCIoS Tool) and industrial-strength tools (e.g., the Security Validator plugin for SAP NetWeaver BPM).','',2,'Alessandro ArmandoRoberto CarboneLuca Compagna','springer/bpmn security.csv','springer',''),(2253,'Parallel Processing for Business Artifacts with Declarative Lifecycles','2012','2','','Abstract The business artifact (a.k.a. business entity) approach to modeling and implementing business operations and processes is based on a holistic marriage of data and process and enables a factoring of business operations based on key business-relevant conceptual entities. The recently introduced Guard-Stage- Milestone (GSM) artifact meta-model provides a hierarchical and declarative basis for specifying artifact lifecycles, and is substantially influencing OMG’s emerging Case Management Modeling Notation standard. In previous papers one characterization of the operational semantics for GSM is based on the incremental, strictly serial firing of Event-Condition-Action (ECA) like rules. This paper develops a parallel algorithm equivalent to the sequential one in terms of externally observable characteristics. Optimizations and analysis for the parallel algorithm are discussed. This paper also introduces a simplification of the GSM meta-model that provides more flexibility and makes checking for well-formedness of GSM models simpler and more intuitive than in the preceding works on GSM.','',1,'Yutian SunRichard HullRoman Vaculín','springer/service oriented architecture security.csv','springer','\0'),(2254,'A New Deliberation Mechanism for Service-Oriented Operating Systems','2012','0','multi-agent systems;operating systems;services','Cloud and Service-Oriented Computing have become successful paradigms to use all the power that the network has brought to Operating Systems. In particular, the multi-agent systems paradigm and service-oriented computing offers new ideas for the development of more intelligent and effective OS\'s, which would benefit the end-user due to the advantages of both technologies. The benefits that we present in this work are how to improve the security in transactions between clients and providers over the cloud and how these transactions can be done taking into account temporal constraints. This is done either to obtain a result before a deadline, or simply to improve the quality of the result. In this work we present a deliberation engine for an OS execution model based on goals with temporal and security considerations.','System Science (HICSS), 2012 45th Hawaii International Conference on',1,'J. Palanca; M. Navarro; A. Garcia-Fornes; V. J. Juli´n','ieee/service oriented architecture security.csv','ieee','\0'),(2255,'Assessing the Impact of Firewalls and Database Proxies on SQL Injection Testing','2014','0',' SQL injections Blackbox testing Web services','Abstract This paper examines the effects and potential benefits of utilising Web Application Firewalls (WAFs) and database proxies in SQL injection testing of web applications and services. We propose testing the WAF itself to refine and evaluate its security rules and prioritise fixing vulnerabilities that are not protected by the WAF. We also propose using database proxies as oracles for black-box security testing instead of relying only on the output of the application under test. The paper also presents a case study of our proposed approaches on two sets of web services. The results indicate that testing through WAFs can be used to prioritise vulnerabilities and that an oracle that uses a database proxy finds more vulnerabilities with fewer tries than an oracle that relies only on the output of the application.','',1,'Dennis AppeltNadia AlshahwanLionel Briand','springer/service oriented architecture security.csv','springer','\0'),(2256,'Federation and Security Aspects for the Management of the EHR in Italy','2012','0',' eHealth Electronic Health Record SOA Federation Security','Abstract The Electronic Health Record (EHR) or Electronic Patient Record is a collection of electronic health information about a patient, created to increase personal safety through more accurate evidence-based decision support. Healthcare organizations, especially in different regions/local governments, can have different architectural solutions and procedures, and thus different access control policies. The requirement of compliance with previously developed architectural solutions binds them to using a single Federated infrastructure model. Since data stored in the EHR Infrastructure concerns the health status of patients, they must be considered critical and their confidentiality and integrity must be protected by proper security support. In this paper we will present the analysis of federation and security aspects and issues for the management of the Electronic Health Record in Italy, suggesting a possible solution.','',1,'M. Claudia BuzziFrancesco DoniniAbraham GebrehiwotAlessio LunardelliCristian LucchesiPaolo Mori','springer/service oriented architecture security.csv','springer','\0'),(2257,'Challenges of Quality-Driven Resource Discovery','2012','0','','Abstract We report on the concluding panel of the Third International Workshop on Resource Discovery. The panel followed two invited presentations that addressed the problem of quality in the context of resource discovery. They are Assuring Quality of Service and Quality of Data: New Challenges for Service and Resource Discovery by Laure Berti-Equille and Optimization Techniques for QoS-Aware Workflow Realization in Web Services Context by Joyce El Haddad. The questions discussed by the panelists covered modeling issues, formats, languages, semantics, applications, and benchmarks.','',1,'Bernd AmannLaure Berti-EquilleZoé LacroixMaría-Esther Vidal','springer/service oriented architecture security.csv','springer','\0'),(2258,'Application of Soft Computing Technique for Web Service Selection','2015','0',' Web Service QoS BPN algorithm RBFN PNN Fuzzy logic','Abstract One of the main challenges in service oriented architecture is the optimal selection and ranking of web services. The process of selecting relevant services from a service repository in a heterogeneous environment is a difficult task. Use of different search engines help in selection process by efficiently searching the service repository (like UDDI), peer-to-peer networks, service portals etc. Fixing up appropriate services is necessary because composition of these services leads to the development of a particular application. In this paper, soft computing technique such as ANN and Fuzzy logic are employed for optimal selection of web service with the help of the requisite attributes related to quality of service. A comparative study of performance of both the techniques based on error parameter has been made in order to help in critical assessment.','',1,'Debendra Kumar NaikSmita KumariSantanu Kumar Rath','springer/service oriented architecture security.csv','springer',''),(2259,'On the security of international data exchange services for e-governance systems','2015','0','','Abstract The effects of globalisation and information welfare combined with the increasing mobility of individuals lead to a number of challenges to modern states. In order to guarantee a smooth, secure, uninterrupted organisational flow, governments and their subsidiaries need to cooperate and exchange data on individuals and organisations across national borders. However, insufficiently secured communication of such data imposes security threats which may endanger the individual’s privacy. Currently, several states within Europe develop and operate e-governance systems. These are primarily designed to allow the exchange of data within the institutions of one state. However, examples such as the Estonian e-governance backbone system X-Road strive towards an EU-wide expansion. Technical solutions for the transnational exchange of data between governmental institutions are an unavoidable part of the future of cyberspace. Despite the fact that EU specifications exist, the discrepancy between specification and implementation becomes immanent. This article explores some of the general aspects of the design of secure transnational data exchange frameworks. A comparative analysis of existing e-governance systems within Europe is given based on defined security aspects. It is explored how decisions made in the design may affect the security of the underlying network and its components. The challenges of transnational data exchange frameworks are discussed.','Datenschutz und Datensicherheit - DuD',1,'Kim HartmannChristoph Steup','springer/service oriented architecture security.csv','springer',''),(2260,'An approach to extract RBAC models from BPEL4WS processes','2004','16','','The Business Process Execution Language for Web services (BPEL) has become the defacto standard for Web service composition. Yet, it does not address security aspects. This paper is concerned with access control for BPEL based processes. We present an approach to integrate role-based access control (RBAC) and BPEL on the meta-model level. Moreover, we show that such integration can be used to automate steps of the role engineering process. In particular, we extract RBAC models from BPEL processes and present an XSLT converter that transforms BPEL code to the XML import format of the xoRBAC software component.','Enabling Technologies: Infrastructure for Collaborative Enterprises, 2004. WET ICE 2004. 13th IEEE International Workshops on',2,'J. Mendling; M. Strembeck; G. Stermsek; G. Neumann','ieee/bpel security.csv','ieee',''),(2261,'Business process compliance checking – applying and evaluating a generic pattern matching approach for conceptual models in the financial sector','2016','2',' Conceptual modeling Business process modeling Business process compliance management Model checking Model querying Pattern matching Compliance checking','Abstract Given the strong increase in regulatory requirements for business processes the management of business process compliance becomes a more and more regarded field in IS research. Several methods have been developed to support compliance checking of conceptual models. However, their focus on distinct modeling languages and mostly linear (i.e., predecessor-successor related) compliance rules may hinder widespread adoption and application in practice. Furthermore, hardly any of them has been evaluated in a real-world setting. We address this issue by applying a generic pattern matching approach for conceptual models to business process compliance checking in the financial sector. It consists of a model query language, a search algorithm and a corresponding modelling tool prototype. It is (1) applicable for all graph-based conceptual modeling languages and (2) for different kinds of compliance rules. Furthermore, based on an applicability check, we (3) evaluate the approach in a financial industry project setting against its relevance for decision support of audit and compliance management tasks.','Information Systems Frontiers',2,'Jörg BeckerPatrick DelfmannHanns-Alexander DietrichMatthias SteinhorstMathias Eggert','springer/bpel security.csv','springer',''),(2262,'Controllability of Time-Aware Processes at Run Time','2013','3',' Process-aware Information System Temporal Perspective Temporal Constraints Process Execution Controllability','Abstract Companies increasingly adopt process-aware information systems (PAISs) to analyze, coordinate, and monitor their business processes. Although the proper handling of temporal constraints (e.g., deadlines, minimum time lags between activities) is crucial for many applications, contemporary PAISs lack a sophisticated support of the temporal perspective of business processes. In previous work, we introduced Conditional Simple Temporal Networks with Uncertainty (CSTNU) for checking controllability of time constraint networks with decision points. In particular, controllability refers to the ability of executing a time constraint network independent of the actual duration of its activities, while satisfying all temporal constraints. In this paper, we demonstrate how CSTNUs can be applied to time-aware business processes in order verify their controllability at design as well as at run time. In particular, we present an algorithm for ensuring the controllability of time-aware process instances during run time. Overall, proper run-time support of time-aware business processes will broaden the use of PAIS significantly.','',2,'Andreas LanzRoberto PosenatoCarlo CombiManfred Reichert','springer/bpmn security.csv','springer','\0'),(2263,'Anomaly Detection System Based on Service Oriented Architecture','2012','0','','Abstract The problem of the network security has been taken up since eighties and has been developed up to present day. A major problem of an automatic intrusion detection is that, it is difficult to make a difference between a normal and an abnormal user behaviour. We propose the framework of a distributed anomaly detection system based on Service Oriented Architecture (SOA). The main idea of SOA is to treat applications, systems and processes as encapsulated components, which are called services. These services are represented by input and output parameters and the semantic description of their functionalities. We assume that all the functionalities of our system are delivered by the Web services.','',1,'Grzegorz KołaczekAgnieszka Prusiewicz','springer/service oriented architecture security.csv','springer','\0'),(2264,'Study on EAI Based on Web Services and SOA','2008','3','Enterprise Application Integration;business process;service bus;service oriented architecture;web service','With the advent of Web services and SOA (service-oriented architecture), it seems to be feasible to realize EAI (enterprise application integration) and automatic inter-enterprise interactions. This paper combines SOA and Web service technology which simplify the application integration into the development and using of services, solve the connectivity of the isomerous platform, security, and the loose coupling between systems, as well as the refactoring and optimization of the processes. It integrates the isomerous enterprise systems, applications, and business processes and composing application environment of the data sources as a whole system. In addition, the technique standards, such as SOAP, WSDL, BPEL, WDDI, etc., are studied. The various key components of SOA are integrated and implemented. By studying the service-oriented software analyzing and development characteristics, an EAI system with great interoperability, reusability, flexibility is to be realized.','Electronic Commerce and Security, 2008 International Symposium on',2,'W. Deng; X. Yang; H. Zhao; D. Lei; H. Li','ieee/bpel security.csv','ieee','\0'),(2265,'Making Business Processes Adaptive Through Semantically Enhanced Workflow Descriptions','2010','0','adaptive processes, semantic business process management, semantic web services, service-oriented architectures','Proceedings of the 6th International Conference on Semantic Systems','',2,'Herwig Zeiner and Wolfgang Halb and Harald Lernbeiß and Bernhard Jandl and Christian Derler','acm/bpel security.csv','acm','\0'),(2266,'An Analysis and Evaluation of Security Aspects in the Business Process Model and Notation','2013','1','BPMN;Business Processes;Modeling;Security','Enhancing existing business process modeling languages with security concepts has attracted increased attention in research and several graphical notations and symbols have been proposed. How these extensions can be comprehended by users has not been evaluated yet. However, the comprehensibility of security concepts integrated within business process models is of utmost importance for many purposes such as communication, training, and later automation within a process-aware information system. If users do not understand the security concepts, this might lead to restricted acceptance or even misinterpretation and possible security problems in the sequel. In this paper, we evaluate existing security extensions of Business Process Model and Notation (BPMN) as BPMN constitutes the de facto standard in business modeling languages nowadays. The evaluation is conducted along two lines, i.e., a literature study and a survey. The findings of both evaluations identify shortcomings and open questions of existing approaches. This will yield the basis to convey security-related information within business process models in a comprehensible way and consequently, unleash the full effects of security modeling in business processes.','Availability, Reliability and Security (ARES), 2013 Eighth International Conference on',2,'M. Leitner; M. Miller; S. Rinderle-Ma','ieee/bpmn security.csv','ieee','\0'),(2267,'Expressing Quality of Service and Protection Using Federation-Level Service Level Agreement','2014','0','','Abstract Frameworks for service level agreements (SLAs) have been developed to allow services to discover and negotiate SLAs dynamically, without direct human intervention. We give a description of the experiences of two projects which are building on existing work in SLAs: the main advantages being to obtain better overall services (including pricing) for the consumer, and the SLAs are useful as a component of, or extension to, cloud federations. We also argue that the “Quality of Protection” is an important part of SLAs.','',1,'Lorenzo BlasiJens JensenWolfgang Ziegler','springer/service oriented architecture security.csv','springer','\0'),(2268,'Secure and compliant implementation of business process-driven systems','2013','3','bpmn; business process security; secure service tasks; static program analysis','Today\'s businesses are inherently process-driven. Conseque- ntly, the use of business-process driven systems, usually implemented on top of service-oriented or cloud-based infrastructures, is increasing. At the same time, the demand on the security, privacy, and compliance of such systems is increasing as well. As a result, the costs - with respect to computational effort at runtime as well as financial costs - for operating business-process driven systems increase steadily. In this paper, we present a method for statically checking the security and conformance of the system implementation, e.g., on the source code level, to requirements specified on the business process level. As the compliance is statically guaranteed - already at design-time - this method reduces the number of run-time checks for ensuring the security and compliance and, thus, improves the runtime performances. Moreover, it reduces the costs of system audits, as there is no need for analyzing the generated log files for validating the compliance to the properties that are already statically guaranteed. © 2013 Springer-Verlag Berlin Heidelberg.','',2,'Brucker A.D., Hang I.','scopus/bpmn security.csv','scopus','\0'),(2269,'A framework of spatial co-location pattern mining for ubiquitous GIS','2014','0',' Ubiquitous GIS Ubiquitous data mining Co-location pattern mining Spatial data mining','Abstract A spatial co-location pattern represents relationships between spatial features that are frequently located in close proximity to one another. Such a pattern is one of the most important concepts for geographic context awareness of ubiquitous Geographic Information System (GIS). We constructed a framework for co-location pattern mining using the transaction-based approach, which employs maximal cliques as a transaction-type dataset; we first define transaction-type data and verify that the definition satisfies the requirements, and we also propose an efficient way to generate all transaction-type data. The constructed framework can play a role as a theoretical methodology of co-location pattern mining, which supports geographic context awareness of ubiquitous GIS.','Multimedia Tools and Applications',1,'Seung Kwan KimJee Hyung LeeKeun Ho RyuUngmo Kim','springer/microservice security.CSV','springer',''),(2270,'Model checking adaptive service compositions','2014','','Model-checking; Non-interference; Process algebra; Web services','We present a logic-based verification framework for multilevel security and transactional correctness of service oriented architectures. The framework is targeted at the analysis of data confidentiality, enforced by non-interference, and of service responsiveness, captured by a notion of compliance that implies dead lock and livelock freedom. We isolate a class of modalμ-calculus formulae, interpreted over service configurations, that characterise configurations satisfying the properties of interest. We then investigate an adaptation technique based on the use of coercion filters to block any action that might potentially break security or transactonal correctness. Based on the above, we devise a model checking algorithm for adaptive service compositions which automatically synthesises the maximal (mostexpressive/permissive) filter enforcing the desired security and correctness properties. © 2013 Elsevier B.V. All rights reserved.','',1,'Bugliesi M., Marin A., Rossi S.','scopus/service oriented architecture security.csv','scopus','\0'),(2271,'An Operational Approach to BPEL-like Programming','2007','4','','Web services have become more and more important during these years and BPEL4WS (BPEL) is to be a standard for the Web services composition and orchestration. It contains several distinct features, including the scope-based compensation and fault handling mechanism. In this paper, we formalize an operational semantics for BPEL, which provides the precise understanding of the language. In order to explore program equivalence, bisimulation is introduced for BPEL pro grams in the form of two-layer structure. A set of algebraic laws is studied, which includes several BPEL featured laws. These algebraic laws are verified via the two-layer bisimulation. This reflects that our bisimulation is a practical approach to explore program equivalence for Web services.','Software Engineering Workshop, 2007. SEW 2007. 31st IEEE',2,'H. Zhu; H. Zhu; H. Zhu; H. Zhu; J. He; J. He; J. He; J. He; G. Pu; G. Pu; G. Pu; G. Pu; J. Li; J. Li; J. Li; J. Li','ieee/bpel security.csv','ieee','\0'),(2272,'Integration of data and computing infrastructures for earth science: an image mosaicking use-case','2016','0',' Brokered architectures HPC GEOSS E-infrastructures Business process broker Earth science','Abstract This paper addresses the emerging issue of integrating data sharing and computing e-infrastructures for multidisciplinary applications. In the recent years several solutions have been proposed to implement digital infrastructures for sharing and processing scientific data and observations. Spatial data infrastructures currently enable effective and efficient geo-information data sharing in many disciplinary communities, and innovative solutions are under development to support new open data and linked data paradigms. In parallel, High Performance Computing systems, computing grids and more recently cloud services, enable fast processing of big data. However, the integration of data and computing e-infrastructures is a raising issue in multidisciplinary research. In the context of the Global Earth Observation System of Systems (GEOSS) initiative, an innovative approach has been proposed. Taking into account that the heterogeneity of data and computing e-infrastructures and related technologies cannot be reduced beyond a certain extent, since it is due to the need of supporting use cases and scenarios from different scientific communities, a brokering solution has been designed and developed. A Business Process Broker (BPB) is a component which takes a formal description of a scientific business process, and translates it in an executable process which can be run on multiple and remote processing and workflow services. In doing this it solves all the interoperability issues in a (semi-)automated way. It allows lowering the entry barrier for both computing service providers and users, decoupling the specification of the scientific process from the underlying enabling infrastructures. The paper presents and discusses a BPB use-case from the European project IASON, implementing an Earth Observation application involving satellite image mosaicking, HPC computing services and spatial data e-infrastructures.','Earth Science Informatics',1,'Paolo MazzettiRoberto RoncellaDanut MihonVictor BacuPierre LacroixYaniss GuigozNicolas RayGregory GiulianiDorian GorganStefano Nativi','springer/soa security.csv','springer',''),(2273,'DroidMiner: Automated Mining and Characterization of Fine-grained Malicious Behaviors in Android Applications','2014','5',' Mobile Security Android Malware Analysis and Detection','Abstract Most existing malicious Android app detection approaches rely on manually selected detection heuristics, features, and models. In this paper, we describe a new, complementary system, called DroidMiner , which uses static analysis to automatically mine malicious program logic from known Android malware, abstracts this logic into a sequence of threat modalities, and then seeks out these threat modality patterns in other unknown (or newly published) Android apps. We formalize a two-level behavioral graph representation used to capture Android app program logic, and design new techniques to identify and label elements of the graph that capture malicious behavioral patterns (or malicious modalities). After the automatic learning of these malicious behavioral models, DroidMiner can scan a new Android app to ( i ) determine whether it contains malicious modalities, ( ii ) diagnose the malware family to which it is most closely associated, ( iii ) and provide further evidence as to why the app is considered to be malicious by including a concise description of identified malicious behaviors. We evaluate DroidMiner using 2,466 malicious apps, identified from a corpus of over 67,000 third-party market Android apps, plus an additional set of over 10,000 official market Android apps. Using this set of real-world apps, we demonstrate that DroidMiner achieves a 95.3% detection rate, with only a 0.4% false positive rate. We further evaluate DroidMiner’s ability to classify malicious apps under their proper family labels, and measure its label accuracy at 92%.','',1,'Chao YangZhaoyan XuGuofei GuVinod YegneswaranPhillip Porras','springer/webservice security.csv','springer','\0'),(2274,'Dynamic Resource Management in a HPC and Cloud Hybrid Environment','2013','1','','Abstract Recently, the large-scale cluster of data center is usually constructed to support both HPC and Cloud computing. It can be explained from two aspects: (1) The data center is typically a sharing environment for all the users, users may submit different types of jobs (HPC and Cloud computing) for processing currently; (2) Some applications can be divided into two parts of subtasks which are suitable to HPC and Cloud computing respectively, e.g. the AMS (Alpha Magnetic Spectrometer) experiment is such a typical application. Thus in order to provide good service for both computing models, it is needed to construct a HPC and Cloud hybrid environment. An existing management mechanism is to allocate fixed proportions of resources for different application environments. However, this approach has a significant performance drawback that is the low resource utilization. In order to overcome this drawback, we propose a dynamic resource management framework and mechanism to satisfy the requirements of both HPC and Cloud computing. Firstly we present a prediction model that is used to predict the arrival rate of all kinds of jobs (HPC types and Cloud types). Based on the prediction results, we propose a dynamic resource allocation algorithm, which manages dynamic resources allocation by using queuing theory. Finally, we evaluate our mechanism by real data sets from AMS experiment and Cloud tasks running on the HPC center in Southeast University. The results show that the proposed mechanism can effectively improve resource utilization at least 30% in this hybrid environment.','',2,'Miao ChenFang DongJunzhou Luo','springer/bpel security.csv','springer','\0'),(2275,'Multicenter Data Sharing for Collaboration in Sleep Medicine','2015','0','Cloud;OpenStack;REST;XNAT;biosignal;polysomnography;sleep','Clinical Sleep Research is an inherent multidisciplinary field, as many health issues may affect a person\'s sleep conditions and sleep disorders may cause several health problems. Many patients with chronic sleep disorders suffer from different further medical conditions - called multimorbidity. Due to the high variety of the reasons and the courses of sleep disorders, individual cases are difficult to compare. Therefore there is a high demand for sleep researchers to collaborate with each other to reach necessary participant numbers and multidisciplinary expertise. To date, inter-institutional sleep research is poorly supported by IT systems. In particular the heterogeneity and the quality variations within the acquired bio signal data - caused by different bio signal recorders or different measurement procedures - are impeding common bio signal data processing. In this manuscript we introduce a virtual research platform supporting inter-institutional data sharing and processing. The infrastructure is based on XNAT - a free and open-source neuroimaging research platform - a loosely coupled service oriented architecture and scalable virtualization in the backend. The system is capable of local pseudonymization of bio signal data, mapping to a standardized set of parameters and automatic quality assessment. Terms and quality measures are derived from the \"Manual for the Scoring of Sleep and Associated Events\" of the American Academy of Sleep Medicine, the de-facto standard for diagnostic bio signal analysis in sleep medicine.','Cluster, Cloud and Grid Computing (CCGrid), 2015 15th IEEE/ACM International Symposium on',1,'M. Beier; C. Jansen; G. Mayer; T. Penzel; A. Rodenbeck; R. Siewert; J. Wu; D. Krefting','ieee/service oriented architecture security.csv','ieee',''),(2276,'Automatically Extracting Threats from Extended Data Flow Diagrams','2016','0',' Architectural risk analysis Threat modeling Automatic flaw detection','Abstract Architectural risk analysis is an important aspect of developing software that is free of security flaws. Knowledge on architectural flaws, however, is sparse, in particular in small or medium-sized enterprises. In this paper, we propose a practical approach to architectural risk analysis that leverages Microsoft’s threat modeling. Our technique decouples the creation of a system’s architecture from the process of detecting and collecting architectural flaws. This way, our approach allows an software architect to automatically detect vulnerabilities in software architectures by using a security knowledge base. We evaluated our approach with real-world case studies, focusing on logistics applications. The evaluation uncovered several flaws with a major impact on the security of the software.','',1,'Bernhard J. BergerKarsten SohrRainer Koschke','springer/service oriented architecture security.csv','springer',''),(2277,'Automated Synthesis and Ranking of Secure BPMN Orchestrators','2013','0','Business Process Modelling Notation;Partial Model Checking;Process Algebras;Quantitative security;Secure Service Composition;Synthesis of Functional and Secure Processes','We describe a formal methodology for the automatic synthesis of a secure orchestrator for a set of BPMN processes. The synthesized orchestrator is able to guarantee that all the processes that are started reach their end, and the resulting orchestrator process is secure, that is, it does not allow discloure of certain secret messages. In this work we present an implementation of a forth and back translation from BPMN to crypto-CCS, in such a way to exploit the PaMoChSA tool for synthesizing orchestrators. Furthermore, we study the problem of ranking orchestrators based on quantitative valuations of a process, and on the temporal evolution of such valuations and their security, as a function of the knowledge of the attacker.','Availability, Reliability and Security (ARES), 2013 Eighth International Conference on',2,'V. Ciancia; F. Martinelli; I. Matteucci; M. Petrocchi; J. A. Martín; E. Pimentel','ieee/bpmn security.csv','ieee','\0'),(2278,'Cyber security for service oriented architectures in a Web 2.0 world: An overview of SOA vulnerabilities in financial services','2013','1','Availability;Data security;Information security;Information systems;SOA;Service oriented architecture;Web services;cyber security;secure design;secure software development;security assessment;security awareness','Service oriented architecture is fast becoming ubiquitous enterprise software architecture standard in public and private sector alike. Study of literature and current attacks suggests that with the proliferation of Web API and RESTFul services, the attack vectors prioritized by OWASP top 10, including but not limited to cross site scripting (XSS), cross site request forgery (CSRF), injection, direct object reference, broken authentication and session management now equally apply to web services. In addition service oriented architecture relies heavily on XML/RESTFul web services which are vulnerable to XML Signature Wrapping Attack, Oversize Payload, Coercive parsing, SOAP Action Spoofing, XML Injection, WSDL Scanning, Metadata Spoofing, Oversized Cryptography, BPEL State Deviation, Instantiation Flooding, Indirect Flooding, WS-Addressing spoofing and Middleware Hijacking to name a few. In this paper, we review various such security issues pertaining to service oriented architecture. These and similar techniques, have been employed by Anonymous and other hacktivists, resulting in denial of service attacks on financial applications. While discussing the national security perils of hacktivism, there is an excessive focus on network layer security, and the application layer perspective is not always part of the discussion. In this research, we provide background information and rationale for securing application layer vulnerabilities to facilitate true defense in depth approach for cyber security.','Technologies for Homeland Security (HST), 2013 IEEE International Conference on',2,'A. Masood','ieee/bpel security.csv','ieee','\0'),(2279,'Service Development and Architecture Management for an Enterprise SOA','2014','0',' SOA service-based development enterprise architecture architecture management','Abstract We report on service development and architecture management practices for an enterprise SOA in the financial domain. First we describe how services are currently developed by one of the largest service providers for the financial domain in Austria. Then we show how we have introduced various practices and tools for architecture management over the last years. We have specifically implemented support for architecture extraction, architecture visualization, automatic architecture analysis, and architecture reviews as part of quality gates in the service development process. Finally, we report on lessons learned both in the area of service development and architecture management as well as on existing challenges and future work in this area.','',1,'Thomas KriechbaumGeorg BuchgeherRainer Weinreich','springer/service oriented architecture security.csv','springer','\0'),(2280,'A Security Modeling Approach for Web-Service-Based Business Processes','2009','8','SOA;Web Services;security;security model;views','The rising need for security in SOA applications requires better support for management of non-functional properties in Web-based business processes. Here, the model-driven approach may provide valuable benefits in terms of maintainability and deployment. Apart from modeling the pure functionality of a process, the consideration of security properties at the level of a process model is a promising approach. In this work-in-progress paper we present an extension to the ARIS SOA architect that is capable of modeling security requirements as a separate security model view. Further we provide a transformation that automatically derives WS-security policy-conformant security policies from the process model, which in conjunction with the generated WS-BPEL processes and WSDL documents provides the ability to deploy and run the complete security-enhanced process based on Web service technology.','Engineering of Computer Based Systems, 2009. ECBS 2009. 16th Annual IEEE International Conference and Workshop on the',2,'M. Jensen; S. Feja','ieee/bpel security.csv','ieee','\0'),(2281,'Research and implementation of security framework for small and medium sized E-commerce based on SOA','2015','1','Encrypted database; Legacy systems; Security attacks; Service oriented architectures; Web services','This research paper focuses on the technical considerations for evaluating the E-commerce platform and proposed a logical security framework for small and medium sized E-commerce. The proposed logical security framework is inherited the benefits of Service Oriented Architecture (SOA) and presents an analysis of the eminent security attacks which can be prevented. The proposed logical security framework is implemented and validated on Oscommerce, an open source E-commerce. This paper also presents an analysis on the comparison between the proposed security framework and the security framework of the existing E-commerce systems such as Flipkart and Rechargeitnow. On the basis of comparison with existing security standards and validation of all the major computing attacks on the proposed security framework concludes that the proposed logical security framework helps enterprise to organize an absolute suite of amalgamated security architecture which protects E-commerce system based on SOA. © 2005 - 2015 JATIT & LLS. All rights reserved.','',1,'Luhach A.K., Luhach R.','scopus/service oriented architecture security.csv','scopus',''),(2282,'Gesture Based Robot Control','2012','2','','Abstract The paper proposes a method of controlling robotic manipulators with use of human gestures and movement. Experiments were performed with the use of 4 degree-of-freedom AX-12 Robotic Arm manipulator with force gripper and ASUS Xtion depth sensor also called motion controller. Depth and video capture has been done via OpenNI library. The infrastructure is based on Windows Communication Foundation (WCF) for remote access, authorization, multimedia streaming and servo control. Control of robotic manipulator is implemented with use of human computer interaction algorithm basing on depth sensor information.','',1,'Tomasz GrzejszczakMichał MikulskiTadeusz SzkodnyKarol Jędrasiak','springer/service oriented architecture security.csv','springer','\0'),(2283,'Decomposing Alignment-Based Conformance Checking of Data-Aware Process Models','2014','1',' ProcessMining Conformance Checking Divide-and-Conquer Techniques Multi-Perspective Process Modelling','Abstract Process mining techniques relate observed behavior to modeled behavior, e.g., the automatic discovery of a Petri net based on an event log. Process mining is not limited to process discovery and also includes conformance checking. Conformance checking techniques are used for evaluating the quality of discovered process models and to diagnose deviations from some normative model (e.g., to check compliance). Existing conformance checking approaches typically focus on the control-flow, thus being unable to diagnose deviations concerning data. This paper proposes a technique to check the conformance of data-aware process models. We use so-called Petri nets with Data to model data variables, guards, and read/write actions. Data-aware conformance checking problem may be very time consuming and sometimes even intractable when there are many transitions and data variables. Therefore, we propose a technique to decompose large data-aware conformance checking problems into smaller problems that can be solved more efficiently. We provide a general correctness result showing that decomposition does not influence the outcome of conformance checking. The approach is supported through ProM plug-ins and experimental results show significant performance improvements. Experiments have also been conducted with a real-life case study, thus showing that the approach is also relevant in real business settings.','',2,'Massimiliano de LeoniJorge Munoz-GamaJosep CarmonaWil M. P. van der Aalst','springer/bpmn security.csv','springer',''),(2284,'On applying FMEA to SOAs: A proposal and open challenges','2014','','Business-critical; FMEA; Services; SOA; Validation; Verification','Service Oriented Architectures (SOAs) are being increasingly used to support business-critical systems, raising natural concerns regarding dependability and security attributes. In critical applications, Verification and Validation (V&V) practices are used during system development to achieve the desired level of quality. However, most V&V techniques suit a structured and documented development lifecycle, and assume that the system does not evolve after deployment, contrarily to what happens with SOA. Runtime V&V practices represent one possible solution for this problem, but they are not possible to implement without the adjustment of traditional V&V techniques.This paper studies the adaptation of Failure Mode and Effects Analysis (FMEA) to SOA environments. A preliminary technique named FMEA4SOA is proposed and a case study is used to illustrate its usage. This process raises many challenges that must be overcome for the FMEA4SOA to become usable and effective V&V in SOA environments. The paper discusses these challenges while proposing a research roadmap. © Springer International Publishing Switzerland 2014.','',1,'Areias C., Antunes N., Cunha J.C.','scopus/service oriented architecture security.csv','scopus','\0'),(2285,'Particle Swarm Optimization for Multi-Objective Web Service Location Allocation','2016','0',' Web service location allocation Particle swarm optimization Combinatorial optimization','Abstract Web service location allocation problem is an important problem in the modern IT industry. In this paper, the two major objectives, i.e. deployment cost and network latency, are considered simultaneously. In order to solve this new multi-objective problem effectively, we adopted the framework of binary Particle Swarm Optimization (PSO) due to its efficacy that has been demonstrated in many optimization problems. Specifically, we developed two PSO variants, one with weighted-sum fitness function (WSPSO) and the other with dominance-based fitness function. Concretely, it uses the fast Non-dominate Sorting scheme, and thus is called NSPSO. The experimental results showed that both PSO variants performed better than NSGA-II, which is the one of the most commonly used multi-objective genetic algorithms. Furthermore, we have found that NSPSO achieved a more diverse set of solutions than WSPSO, and thus covers the Pareto front better. This demonstrates the efficacy of using the dominance-based fitness function in solving multi-objective Web service location allocation problem.','',2,'Boxiong TanYi MeiHui MaMengjie Zhang','springer/bpel security.csv','springer',''),(2286,'Coevolution of variability models and related software artifacts','2015','7',' Variability Evolution Software product lines Patterns Linux','Abstract Variant-rich software systems offer a large degree of customization, allowing users to configure the target system according to their preferences and needs. Facing high degrees of variability, these systems often employ variability models to explicitly capture user-configurable features (e.g., systems options) and the constraints they impose. The explicit representation of features allows them to be referenced in different variation points across different artifacts, enabling the latter to vary according to specific feature selections. In such settings, the evolution of variability models interplays with the evolution of related artifacts, requiring the two to evolve together, or coevolve. Interestingly, little is known about how such coevolution occurs in real-world systems, as existing research has focused mostly on variability evolution as it happens in variability models only. Furthermore, existing techniques supporting variability evolution are usually validated with randomly-generated variability models or evolution scenarios that do not stem from practice. As the community lacks a deep understanding of how variability evolution occurs in real-world systems and how it relates to the evolution of different kinds of software artifacts, it is not surprising that industry reports existing tools and solutions ineffective, as they do not handle the complexity found in practice. Attempting to mitigate this overall lack of knowledge and to support tool builders with insights on how variability models coevolve with other artifact types, we study a large and complex real-world variant-rich software system: the Linux kernel. Specifically, we extract variability-coevolution patterns capturing changes in the variability model of the Linux kernel with subsequent changes in Makefiles and C source code. From the analysis of the patterns, we report on findings concerning evolution principles found in the kernel, and we reveal deficiencies in existing tools and theory when handling changes captured by our patterns.','Empirical Software Engineering',1,'Leonardo PassosLeopoldo TeixeiraNicolas DintznerSven ApelAndrzej WąsowskiKrzysztof CzarneckiPaulo BorbaJianmei Guo','springer/soa security.csv','springer',''),(2287,'Autonomic Intelligent Cyber-Sensor to Support Industrial Control Network Awareness','2014','4','Autonomic computing;control systems;industrial ecosystems;network security;service-oriented architecture','The proliferation of digital devices in a networked industrial ecosystem, along with an exponential growth in complexity and scope, has resulted in elevated security concerns and management complexity issues. This paper describes a novel architecture utilizing concepts of autonomic computing and a simple object access protocol (SOAP)-based interface to metadata access points (IF-MAP) external communication layer to create a network security sensor. This approach simplifies integration of legacy software and supports a secure, scalable, and self-managed framework. The contribution of this paper is twofold: 1) A flexible two-level communication layer based on autonomic computing and service oriented architecture is detailed and 2) three complementary modules that dynamically reconfigure in response to a changing environment are presented. One module utilizes clustering and fuzzy logic to monitor traffic for abnormal behavior. Another module passively monitors network traffic and deploys deceptive virtual network hosts. These components of the sensor system were implemented in C++ and PERL and utilize a common internal D-Bus communication mechanism. A proof of concept prototype was deployed on a mixed-use test network showing the possible real-world applicability. In testing, 45 of the 46 network attached devices were recognized and 10 of the 12 emulated devices were created with specific operating system and port configurations. In addition, the anomaly detection algorithm achieved a 99.9% recognition rate. All output from the modules were correctly distributed using the common communication structure.','IEEE Transactions on Industrial Informatics',1,'T. Vollmer; M. Manic; O. Linda','ieee/service oriented architecture security.csv','ieee','\0'),(2288,'Goal-Oriented Opportunistic Sensor Clouds','2012','0','','Abstract Activity- and context-aware systems, as they are known, established, and well evaluated in small-scale laboratory settings for years and decades, suffer from the fact, that they are limited concerning the underlying data delivering entities. The sensor systems are usually attached on the body, on objects, or in the environment, directly surrounding persons or groups whose activities or contextual information has to be detected. For sensors that are exploited in this kind of systems, it is essential that their modalities, positions and technical details are initially defined to ensure a stable and accurate system execution. In contrast to that, opportunistic sensing allows for selecting and utilizing sensors, as they happen to be accessible according to their spontaneous availability, without presumably defining the input modalities, on a goal-oriented principle. One major benefit thereby is the capability of utilizing sensors of different kinds and modalities, even immaterial sources of information like webservices, by abstracting low-level access details. This emerges the need to roll out the data federating entity as decentralized collecting point. Cloud-based technologies enable space- and time-free utilization of a vast amount of heterogeneous sensor devices reaching from simple physical devices (e.g., GPS, accelerometers, as they are conventionally included on today’s smart phones) to social media sensors, like Facebook, Twitter, or LinkedIn. This paper presents an opportunistic, cloud-based approach for large-scale activity- and context-recognition.','',1,'Marc KurzGerold HölzlAlois Ferscha','springer/service oriented architecture security.csv','springer','\0'),(2289,'Evaluating robustness of cloud-based systems','2015','0',' Systems architectures Cloud-based systems Robustness indicators Robustness metric Software deployment Sensitive components Failure sequences','Abstract Various services are now available in the Cloud, ranging from turnkey databases and application servers to high-level services such as continuous integration or source version control. To stand out of this diversity, robustness of service compositions is an important selling argument, but which remains difficult to understand and estimate as it does not only depend on services but also on the underlying platform and infrastructure. Yet, choosing a specific service composition may fail to deliver the expected robustness, but reverting early choices may jeopardise the success of any Cloud project. Inspired by existing models used in Biology to quantify the robustness of ecosystems, we show how to tailor them to obtain early indicators of robustness for cloud-based deployments. This technique helps identify weakest parts in the overall architecture and in turn mitigates the risk of having to revert key architectural choices. We illustrate our approach by comparing the robustness of four alternative deployments of the SensApp application, which includes a MongoDB database, four REST services and a graphical web-front end.','Journal of Cloud Computing',1,'Franck ChauvelHui SongNicolas FerryFranck Fleurey','springer/service oriented architecture security.csv','springer',''),(2290,'Wireless Sensor Networks in Next Generation Communication Infrastructure: Vision and Challenges','2014','0',' Wireless sensor network cyber physical system cloud computing next generation network seamless integration','Abstract Last decade saw the development of Wireless Sensor Networks with multitude of applications built around the sensors. Though most of the issues at protocol and device level remain solved for Wireless Sensor Networks, there is a growing trend in integration of sensors and sensor based systems with Cyber Physical Systems, Machine-to-Machine and Device-to-Device communication both in infrastructure and ad-hoc modes. The emergence of Cloud Computing, highly intelligent ’Smart’ devices and efforts towards 5th Generation telecom systems is expected to lead the revolution of a networked world with increased demand for situational awareness leading proliferation of sensors at the edge of physical world. Mounting intelligence built in ’smart’ devices, scarcity of frequency spectrum, disruptive technologies and limitations on further reduction in base station size may render base station centric-architecture of today’s wireless networks old-fashioned. Due to low data rate bursty nature of sensor data, massive-MIMO antennas, device-centric architectures, smarter devices and native support for Machine-to-Machine and Device-to-Device communication, sensor data originating from these systems and disruptive technologies is expected to grow manifold through passing years. Communication and network engineers face an emerging challenge of designing communication and network protocols that can efficiently get integrated with the emerging wireless cellular and computing paradigms. In this paper, we list down these communication and networking challenges and provide our vision for Wireless Sensor Networks related platforms and enabling technologies of next decade.','',1,'Saad Bin QaisarSalman AliEmad A. Felemban','springer/service oriented architecture security.csv','springer','\0'),(2291,'Simulation of cloud data security processes and performance','2015','','Bonnita soft; Cloud computing; Performance; Security','In the world of cloud computing, millions of people are using cloud computing for the purpose of business, education and socialization. Examples of cloud applications are: Google Drive for storage, Facebook for social networks, etc. Cloud users use the cloud computing infrastructure thinking that these services are easy and safe to use. However, there are security and performance issues to be addressed. This paper discusses how cloud users and cloud providers address performance and security issues. In this research, we have used business process modelling and simulation to explore the performance characteristics and security concerns in the service development life cycle. The results show that Business Process Modelling Notations (BPMN) simulation is effective for the study of cloud security process in detail before actual implementation. The total simulation duration time was 51 days and 9 h 40 min but the results are displayed in 7 s only. © Springer International Publishing Switzerland 2015.','',2,'Chand K., Ramachandran M., Kor A.-L.','scopus/bpmn security.csv','scopus',''),(2292,'VCU: The Three Dimensions of Reuse','2016','0',' Reuse Interfaces Variability Customization Configuration Extension Usage Concern-oriented reuse','Abstract Reuse, enabled by modularity and interfaces, is one of the most important concepts in software engineering. This is evidenced by an increasingly large number of reusable artifacts, ranging from small units such as classes to larger, more sophisticated units such as components, services, frameworks, software product lines, and concerns. This paper presents evidence that a canonical set of reuse interfaces has emerged over time: the variation, customization, and usage interfaces (VCU). A reusable artifact that provides all three interfaces reaches the highest potential of reuse, as it explicitly exposes how the artifact can be manipulated during the reuse process along these three dimensions. We demonstrate the wide applicability of the VCU interfaces along two axes: across abstraction layers of a system specification and across existing reuse techniques. The former is shown with the help of a comprehensive case study including reusable requirements, software, and hardware models for the authorization domain. The latter is shown with a discussion on how the VCU interfaces relate to existing reuse techniques.','',2,'Jörg KienzleGunter MussbacherOmar AlamMatthias SchöttleNicolas BelloirPhilippe ColletBenoit CombemaleJulien DeAntoniJacques KleinBernhard Rumpe','springer/bpmn security.csv','springer',''),(2293,'Towards Compliance Verification Between Global and Local Process Models','2015','0','','Abstract This paper addresses the question how to verify that the local workflow of an organisation participating in a cross-organisational collaboration is in compliance with the globally specified rules of that collaboration. We assume that the collaborative workflow is specified as a BPMN Collaboration Diagram and the local workflows as BPMN Process Diagrams. We then employ existing LTL semantics of the former and token semantics of the latter to verify conformance. We use the graph transformation tool GROOVE to automate the verification, and exemplify our approach with a case study from the financial markets domain.','',2,'Pieter M. KwantesPieter Van GorpJetty KleijnArend Rensink','springer/bpel security.csv','springer',''),(2294,'The Impact of Consistency on System Latency in Fault Tolerant Internet Computing','2015','0',' Internet computing Fault-tolerance Consistency Latency Response time Modelling','Abstract The paper discusses our practical experience and theoretical results in investigating the impact of consistency on latency in distributed fault tolerant systems built over the Internet. Trade-offs between consistency, availability and latency are examined, as well as the role of the application timeout as the main determinant of the interplay between system availability and performance. The paper presents experimental results of measuring response time for replicated service-oriented systems that provide different consistency levels: ONE, ALL and QUORUM. These results clearly show that improvements in system consistency increase system latency. A set of novel analytical models is proposed that would enable quantified response time prediction depending on the level of consistency provided by a replicated system.','',1,'Olga TarasyukAnatoliy GorbenkoAlexander RomanovskyVyacheslav KharchenkoVitalii Ruban','springer/service oriented architecture security.csv','springer',''),(2295,'Event Driven Monitoring of Composite Services','2013','1','BPMN;SOA;complex event processing;composite services;monitoring;security policy;trust','The Future Internet will be populated by not just data and devices, but also services. Service-Oriented Architecture (SOA) approaches are allowing new ways for users and developers to manage, control and benefit from the services that are being made available. However, SOA-based applications are highly dynamic and liable to change significantly at runtime. This justifies the need for monitoring composed services throughout the lifetime of service execution. In this paper we present a novel framework for monitoring services at runtime and ensuring that services behave as they have promised. The framework enables monitoring of both atomic and composite services and offers high flexibility through the use of Complex Event Processing (CEP). Services are defined as Business Process Modeling Notation (BPMN) processes which can then be monitored during execution. The use of CEP and monitoring points that are inserted automatically between services allows the method to be more flexible and accurate than existing techniques.','Social Computing (SocialCom), 2013 International Conference on',2,'M. Asim; D. Llewellyn-Jones; B. Lempereur; B. Zhou; Q. Shi; M. Merabti','ieee/bpmn security.csv','ieee','\0'),(2296,'Technologies for Web and cloud service interaction: a survey','2016','1',' Web technology Web services Cloud services Service architecture Communication protocols Languages Service interaction patterns','Abstract The evolution of Web and service technologies has led to a wide landscape of standards and protocols for interaction between loosely coupled software components. Examples range from Web applications, mashups, apps, and mobile devices to enterprise-grade services. Cloud computing is the industrialization of service provision and delivery, where Web and enterprise services are converging on a technological level. The article discusses this technological landscape and, in particular, current trends with respect to cloud computing. The survey focuses on the communication aspect of interaction by reviewing languages, protocols, and architectures that drive today’s standards and software implementations applicable in clouds. Technological advances will affect both client side and service side. There is a trend toward multiplexing, multihoming, and encryption in upcoming transport mechanisms, especially for architectures, where a client simultaneously sends a large number of requests to some service. Furthermore, there are emerging client-to-client communication capabilities in Web clients that could establish a foundation for upcoming Web-based messaging architectures.','Service Oriented Computing and Applications',1,'Harald Lampesberger','springer/soa security.csv','springer',''),(2297,'Simulation Modeling and Analysis of Business Process','2009','0','Business Process;Simulation;WS-BPEL','Web services composition technology is promising technology to efficiently integrate heterogeneous, distributed and legacy software system. Performance becomes the key issue when Web services composition model complex and mission-critical application. The defect of design can result in the performance bottleneck problem in the running time. In this paper, we propose a simulation-based model for the business process defined by WS-BPEL. Our model takes advantage of general stochastic Petri Net to simulate the control flow and the transaction behavior of WS-BPEL through constructing the state transition space of composite Web service. Therefore, our simulation model can accurately obtain the performance prosperities with the smaller cost in contrast to building experimental system.','Electronic Commerce and Security, 2009. ISECS \'09. Second International Symposium on',2,'Y. He; L. Zhao; Z. Wu; F. Li','ieee/bpel security.csv','ieee','\0'),(2298,'Webservice based vulnerability testing framework','2014','','framework; real time; security testing; Vulnerability Orchestration framework; VulnerabilityTracker; webservice','Software security is no longer just a problem for software designers, developers and testers. Almost all the white-collar crimes are based on computer security. Many research papers are published on static code analysis, dynamic code analysis and software development design time security issues. This paper proposes a framework for testing security vulnerabilities based on publicly known security vulnerabilities database. After vulnerabilities are found in application, the security tester uses Penetration testing tools to test the security flow. The Vulnerability Orchestration framework gets the vulnerability priority from the VulnerabilityTracker webservice. The Webservice collects the vulnerability attacks from the security Vulnerabilities database and update test case priority signature in the web service. The framework runs the test cases based on VulnerabilityTracker web service as part of the build process and execute security test suites for every build. The security tester adds the new test cases whenever they find a new vulnerability. © 2014 IEEE.','',1,'Selvam R., Senthilkumar A.','scopus/webservice security.csv','scopus','\0'),(2299,'A Framework for Secure Service Composition','2013','3','BPMN;secure service composition;service availability;service modelling','Modern applications are inherently heterogeneous: they are built by composing loosely coupled services that are, usually, offered and operated by different service providers. While this approach increases the flexibility of the composed applications, it makes the implementation of security and trustworthiness requirements difficult. As the number of security requirements is increasing dramatically, there is a need for new approaches that integrate security requirements right from the beginning while composing service-based applications. In this paper, we present a framework for secure service composition using a model-based approach for specifying, building, and executing composed services. As a unique feature, this framework integrates security requirements as a first class citizen and, thus, avoids the ``security as an afterthought\'\' paradigm.','Social Computing (SocialCom), 2013 International Conference on',2,'A. D. Brucker; F. Malmignati; M. Merabti; Q. Shi; B. Zhou','ieee/bpmn security.csv','ieee','\0'),(2300,'Performance Characterisation and Evaluation of WRF Model on Cloud and HPC Architectures','2014','0','','Weather forecasting is a computationally intensiveproblem to handle as well as an important application problemwhere Cloud Computing can play a key transformational role.Traditionally the problem of handling such workloads havebeen considered mainly on High Performance Computing (HPC)architectures owing to their tightly-coupled nature and promisingspeed-up gains. However, with modern day Cloud platforms offeringa scalable service infrastructure, current HPC domain expertscontinue to deliberate on the usage of Cloud Computing platformsas an alternate cost effective and efficient way of procuring justin time computing. At the same time, there are a variety offactors to be considered before HPC workloads such as weatherforecasting can be moved to a Cloud infrastructure. In this paper,we have studied the performance characteristics of WeatherResearch and Forecasting (WRF) algorithm on three differentcomputing architectures. The architectures include two publicdomain Cloud service providers and a virtual machine (VM)based setup. Through detailed experiments, we have performeda rigorous comparative analysis of the performance of WRF ineach of these architectures and in that process we have identifiedthe strengths and weaknesses of each architecture for such HPCworkloads. We believe our work of comparing across 3 differentarchitectures is the first of its kind and could be seen as a pilotreference useful to domain experts and system administratorswho are considering to employ Cloud Computing for specificHPC problems.','High Performance Computing and Communications, 2014 IEEE 6th Intl Symp on Cyberspace Safety and Security, 2014 IEEE 11th Intl Conf on Embedded Software and Syst (HPCC,CSS,ICESS), 2014 IEEE Intl Conf on',1,'S. P. T. Krishnan; S. P. T. Krishnan; B. Veeravalli; V. H. Krishna; W. C. Sheng','ieee/service oriented architecture security.csv','ieee','\0'); +INSERT INTO `articles` VALUES (2301,'An analysis of technologies for building information security infrastructure of global distributed computing systems','2015','','Distributed computing systems; Security framework; Security infrastructure','The implementation of global distributed information systems based on cloud and grid approaches. There are many problems of ensuring a high level of information security of these systems because they operate critical or confidential data, and the elements of these systems found in different physical locations to communicate with that uses open standards and protocols of the Internet. The existing distributed information systems implemented using a variety of architectural and technology platforms, which usually do not meet the current challenges in the field of ensuring a high level of information security. In addition, the actual question of the integration of these systems with corporate information systems, and providing a high level of security used integration solutions. The aim of this work was the systematization and analysis of proven technologies for building high reliable information security infrastructure of global distributed computing systems. As part of the work identified approaches to implementation of information security infrastructure based on technical standards Globus Toolkit, OGSA, UNICORE, gLite. The features of the implementation of security infrastructure based on these standards, as well as the possibility to interact with external systems based on industry standards such as SOA, Web Services. © 2005 - 2015 JATIT & LLS. All rights reserved.','',1,'Ptitsyn P.S., Radko D.V.','scopus/soa security.csv','scopus',''),(2302,'409--412','2012','0','locator, service oriented architecture, web service','The Service Oriented model is developed and adopted by different organizations. The services are open and can be developed and consumed independently. The service life cycle needs to be consumed and updated dynamically in order to maintain the availability and the appropriateness of the services. The Second section of this paper describes the fundamentals of the SOA and the requirements of the security parameters with the same. The third section deals with the service life cycle model related to Educational Information System. The fourth section elaborates the functions of secured service lifecycle information model. The fifth section summarizes the results and the findings of the design and implementation. The conclusion indicates the main advantages of this model.','',1,'','acm/soa security.csv','acm','\0'),(2303,'Domain Objects for Dynamic and Incremental Service Composition','2014','0','','Abstract A key feature of service-based applications (SBAs) is the capacity to dynamically define the composition of services independently available, which is required to achieve user goals. For this reason, to effectively deal with the obstacles due to continuous context changes, an incremental refinement of provided services is needed. We propose a new model that allows service functionalities to be defined partially, through the use of abstract activities. The refinement of these activities is postponed and performed incrementally at runtime, using the actual context as a guide. Our approach lets a service provider avoid the hard-coding of all service functionalities and their possible compositions at design time, delaying their refinement until the execution phase. Consequently the whole SBA’s design becomes modular and flexible to better meet the typical dynamism of SBA. We illustrate the approach through an example scenario from the urban mobility domain.','',2,'Antonio BucchiaroneMartina De SanctisMarco Pistore','springer/bpel security.csv','springer',''),(2304,'Security for mobile low power nodes in a personal area network by means of trusted platform modules','2007','3','Platform integrity of resource constrained device; Remote controlled infusion pump; Teletherapy of pain','The growing field of ubiquitous applications and the use of resource constrained mobile devices strongly demands for mechanisms to provide the security and privacy of such mobile devices. In this paper we show that especially new teletherapeutic applications are not feasible without strong cryptographic protection of data and platform. Based on the analysis of security requirements, we introduce a mobile low power node that is secured by means of a Trusted Platform Module (TPM). For privacy and security of the communication between the mobile device and a webserver, which is part of the distributed network, we propose a security protocol based on webservice technology that uses the mechanisms of the TPM. Finally, measurements that were done with the secured mobile node are presented. We show that TPMs are well suited for resource constrained mobile devices and are a step towards trusted ubiquitous computing. © Springer-Verlag Berlin Heidelberg 2007.','',1,'Grossmann U., Berkhan E., Jatoba L.C., Ottenbacher J., Stork W., Mueller-Glaser K.D.','scopus/webservice security.csv','scopus','\0'),(2305,'Towards the Derivation of Secure Business Process Designs','2015','0',' Business process modelling Business process security Secure tropos BPMN Process derivation Goal-to-process transformation','Abstract Security is a critical aspect of business processes that organisations utilise to achieve their goals. Current works on secure business process design mainly focus on annotating existing process models with security related concepts. Meanwhile, little attention is given to the rationale and the alignment of such security choices to high-level organisational security goals. To that end, a goal-to-process transformation approach, with a clear security orientation, is introduced, as part of a wider framework. This transformation process, presented through an illustrative example, uses Secure Tropos goal models as an input to create intermediate, security-annotated process skeletons. These can be then refined, through a series of manual tasks, to create secure BPMN process models.','',2,'Nikolaos ArgyropoulosHaralambos MouratidisAndrew Fish','springer/bpmn security.csv','springer',''),(2306,'Towards a Compliance-Aware Inter-organizational Service Integration Platform','2014','1',' regulatory compliance enterprise service bus complex event processing service-oriented computing enterprise integration middleware','Abstract Organizations are increasingly required to collaborate with each other in order to achieve their business goals. The service oriented paradigm is currently the preferred approach to carry out this collaboration as facilitates interconnecting the software systems of different organizations. More concretely, such integration is supported by integration platforms which are specialized middleware-based infrastructures enabling the provision, discovery and invocation of interoperable software services. On another hand, these integrated and collaborative environments (e.g. e-government, e-health, e-science, e-commerce and e-business) must comply with regulations originating in laws, sectorial regulations, service level agreements and standards, among others. This research aims at proposing solutions to monitor and enforce compliance requirements in inter-organizational service integration platforms. Particularly, this work addresses compliance requirements on services, information exchanged and the flow of interactions between organizations. The solutions, which are based on well-known enterprise integration patterns and other capabilities (e.g. adaptability and context-awareness), are then refined into specific middleware technologies, notably Enterprise Service Bus and Complex Event Processing engines.','',1,'Laura GonzálezRaúl Ruggia','springer/service oriented architecture security.csv','springer','\0'),(2307,'Semantic Annotation of Service Choreographies','2014','0',' semantic annotation ontology service choreography business process similarity measure recommender system','Abstract In a previous paper, we discussed a methodology for the extension of the service choreography model based on ontologies. The main purpose was to extract syntactically and semantically correct recommendations (model annotations) for the process modeler in view of model analysis and improvement. This paper presents ongoing work with a focus on the ontology used for recommendation retrieval and the way the semantic recommender captures and analyses the modeler’s intentions. We discuss similarity computation (which is at the basis of semantic model annotation) at several levels and illustrate it with examples.','',2,'Vinh Thinh LuuIoana Ciuciu','springer/bpel security.csv','springer',''),(2308,'Bidirectional 10 Gb/s/λ, channel-reuse, long-reach DWDM-PON employing tunable optical transceiver with optical intensity detection-based wavelength management','2015','0',' Tunable optical transceiver Wavelength management Channel-reuse Colorless ONU DWDM-PON','Abstract We experimentally demonstrate a channel-reuse, bidirectional 10 Gb/s/λ, long-reach dense wavelength-division-multiplexing passive optical network (DWDM-PON) and an optical intensity detection-based wavelength management method for tunable optical transceiver used in colorless optical network unit. A channel-reuse, full-duplex, 42 km/87 km reach without/with optical amplification, 10 Gb/s transmission on a 50 GHz DWDM grid is achieved. Transmission performance is also measured with different optical-signal-to-Rayleigh-backscattering-noise ratios (OSRBNRs) and different central wavelength shifts between upstream signal and downstream signal in the channel-reuse system. Optimal operating wavelength for the uplink optical signal and effective OSRBNR configurations taking into account AWG pass-band, wavelength instability of the downlink optical transmitter and the distance of the feeder fiber are proposed.','Optical and Quantum Electronics',1,'Zhiguo ZhangXu JiangJiahe WangXue ChenLiqian Wang','springer/soa security.csv','springer',''),(2309,'Security requirements engineering for secure business processes','2012','7','BPMN; business process; Security requirements; social commitments','Traditional approaches to business process modelling deal with security only after the business process has been defined, namely without considering security needs as input for the definition. This may require very costly corrections if new security issues are discovered. Moreover, security concerns are mainly considered at the system level without providing the rationale for their existence, that is, without taking into account the social or organizational perspective, which is essential for business processes related to considerably large organizations. In this paper, we introduce a framework for engineering secure business processes. We propose a security requirements engineering approach to model and analyze participants\' objectives and interactions, and then derive from them a set of security requirements that are used to annotate business processes. We capture security requirements through the notion of social commitment, that is a promise with contractual validity between participants. We illustrate the framework by means of an Air Traffic Management scenario. © 2012 Springer-Verlag Berlin Heidelberg.','',2,'Paja E., Giorgini P., Paul S., Meland P.H.','scopus/bpmn security.csv','scopus','\0'),(2310,'Deployment of Collaborative Softwares as a Service in a Private Cloud to a Software Factory','2015','0',' Cloud computing Deployment Private cloud Software factory Owncloud','Abstract This paper presents a proposal of deploying secure communication services in the cloud for software factory university UNB (University of Brasília - Brazil). The deployment of these services will be conducted in a private cloud, allocated in the CESPE (Centro de Seleção e de Promoção de Eventos) servers. The main service that will be available is the Expresso, which is a system maintained by SERPRO (Serviço Federal de Processamento de Dados). These services increase the productivity of the factory members and increase their collaboration in projects developed internally','',1,'Guilherme Fay VergaraEdna Dias CanedoSergio Antônio Andrade de Freitas','springer/service oriented architecture security.csv','springer',''),(2311,'Quality attributes and design decisions in Service-Oriented Computing','2012','0','','Recently, Service-Oriented Computing is growing rapidly. With new emergences of technologies, software engineers have been facing more and more challenges in this area. Particularly, quality attributes and design decisions in Service-Oriented Computing are seldom discussed. According to the problems, our paper focuses on how to examine the design decisions based on quality attributes and how design decisions impact on the architecture of service in SOA-based system. In order to resolve these design issues, we develop an approach to SOA-based system in high level design based on functional requirements and quality attributes. Finally, a case study is shown by using our approach.','Innovations in Information Technology (IIT), 2012 International Conference on',1,'H. Mcheick; Y. Qi','ieee/service oriented architecture security.csv','ieee','\0'),(2312,'A reliable wavelength division multiplexing metro-access network realizing crosstalk-free transmission between uplink and downlink','2013','0',' Wavelength division multiplexing Network structure Ring topology Reconfiguration Survivability','Abstract A novel wavelength division multiplexing metro-access network based on dual-fiber ring of remote nodes and star topology of optical network units is designed to realize the reliable network in case of either single or dual fiber failure. In the design, the survivability of the network is largely enhanced by three work modes. Simultaneously, this network structure can also avoid the crosstalk between uplink and downlink. The simulation results demonstrated with 2.5-Gb/s up/downstream signals show this approach could work very well.','Optical and Quantum Electronics',1,'Chenwei WuChaoqin GanXuejiao Ma','springer/soa security.csv','springer','\0'),(2313,'A Connection Oriented Framework for Effectively Using Multicore in the Enterprise','2011','1','','Enterprise applications are built for client server architectures and rebuilt using service-oriented principles. When such web service based applications are hosted on multicore there are specific performance issues due to spatial and temporal characteristics of the multicore. Existing literature addresses the spatial case where inherent parallelism is exploited and the temporal case, where data is not available on main memory. We address a second temporal case, where the data is available in memory, but thread local data is of dissimilar sizes. We present a connection oriented framework and a testbed implementation of an enterprise application. We modeled this enterprise applications for both client-server as well as webservice configurations. We used Cache miss as a key metric for measuring spatial and temporal performance and then demonstrate how an \"compute infrastructure awareness\" using feedback can improve the performance on a hybrid multicore without modifying the application.','New Technologies, Mobility and Security (NTMS), 2011 4th IFIP International Conference on',1,'S. Venugopal; S. K. Desikan','ieee/webservice security.csv','ieee','\0'),(2314,'A service oriented architecture for substation fault analytics','2012','','Fault Analytics; IEC 61850; Model Driven Design; Service Oriented Architecture; Tele-Management Forum','Reliability and security in power supply is a measure of how well an electrical load meets the needs of a consumer at a given point in time. Achieving high levels of reliability requires large capital expenditure. Power systems are required to operate at optimal capacity in order to meet its return on large capital investments. In order to attain a high level of reliability in these operating conditions, protection processes are implemented in power systems to reduce failures and protect components that are be connected to the grid. In South Africa, the power grid has aged and traditional infrastructure that has historically supported consumers is unable to support future requirements. To ensure the continued growth and refresh of grid technologies, industry bodies and committees have established standards and guidelines that challenge the traditional approach to substation systems architecture. Standards leverage off modern technologies providing configuration and deployment alternatives. Standards like the IEC 61850 device communication standard is one that has gained support by technology vendors over the last decade. A growth in the number of implementations of this standard is proving that interoperability of functions, processes and information is possible. This paper focuses on the use of standards, approaches and emerging frameworks to establish a service based analytics architecture. © 2012 IEEE.','',1,'Said E.Y., Nixon K.J.','scopus/service oriented architecture security.csv','scopus','\0'),(2315,'A Unified Approach for Static and Runtime Verification: Framework and Applications','2012','0','','Abstract Static verification of software is becoming ever more effective and efficient. Still, static techniques either have high precision, in which case powerful judgements are hard to achieve automatically, or they use abstractions supporting increased automation, but possibly losing important aspects of the concrete system in the process. Runtime verification has complementary strengths and weaknesses. It combines full precision of the model (including the real deployment environment) with full automation, but cannot judge future and alternative runs. Another drawback of runtime verification can be the computational overhead of monitoring the running system which, although typically not very high, can still be prohibitive in certain settings. In this paper we propose a framework to combine static analysis techniques and runtime verification with the aim of getting the best of both techniques. In particular, we discuss an instantiation of our framework for the deductive theorem prover KeY, and the runtime verification tool Larva . Apart from combining static and dynamic verification, this approach also combines the data centric analysis of KeY with the control centric analysis of Larva . An advantage of the approach is that, through the use of a single specification which can be used by both analysis techniques, expensive parts of the analysis could be moved to the static phase, allowing the runtime monitor to make significant assumptions, dropping parts of expensive checks at runtime. We also discuss specific applications of our approach.','',1,'Wolfgang AhrendtGordon J. PaceGerardo Schneider','springer/service oriented architecture security.csv','springer','\0'),(2316,'Spectro-temporal directional derivative based automatic speech recognition for a serious game scenario','2015','5',' Spectro-temporal directional derivative (STDD) Voice disorder Automatic speech recognition Serious games','Abstract Speech is one of the important modalities in a serious game platform. Serious game can be very useful for the rehabilitation of individuals with voice disorders. Therefore, we need an efficient and high-performance automatic speech recognition (ASR) system. In this paper, we propose a spectro-temporal directional derivative (STDD) feature that requires less number of computations in the modeling and yet gives high recognition accuracy in the ASR system. The proposed STDD feature is achieved by applying different directional derivative filters in the spectro-temporal domain. The feature dimension is then compressed by discrete cosine transform. The experiments are performed with voice samples of Arabic numerals spoken by persons with and without voice pathology. The experimental results show that the STDD feature outperforms the conventional mel-frequency cepstral coefficients both in clean and noisy environments.','Multimedia Tools and Applications',1,'Ghulam MuhammadMehedi MasudAbdulhameed AlelaiwiMd. Abdur RahmanAli KarimeAtif AlamriM. Shamim Hossain','springer/service oriented architecture security.csv','springer',''),(2317,'Network and Storage Latency Attacks to Online Trading Protocols in the Cloud','2014','1',' Cloud Multi-party online trading protocol Network latency attack Storage latency attack','Abstract Online trading protocols enable participants to trade, barter, or sell goods and services over a private network or the global Net. Due to diversity of network and computational resources at their disposal, participants communicate and carry out their trading with different latencies. This scenario may give rise to latency attacks , where malicious parties (a.k.a. fast traders ) exploit lower latency to attack trading protocols’ fairness and increase their income. With the advent of the cloud, the problem of identifying and preventing latency attacks is exacerbated by the fact that cloud providers and privileged users could collude to make latency attacks simpler and more effective. In this paper, we give an overview of network and storage latency attacks in multi-party trading protocols, focusing on cloud peculiarities and providing some empirical recommendations for protocol design.','',1,'Claudio A. ArdagnaErnesto Damiani','springer/service oriented architecture security.csv','springer','\0'),(2318,'Alert-response for distributed surveillance: DODAF-based services and systems','2014','0','DODAF 2.0;Multimedia surveilhnce;alert;enterprise architecture;response','Over decades of research and development in surveillance domain, multimedia surveillance systems have achieved a great maturity level. However, due to the distribution of surveillance capabilities in current surveillance systems, new challenges on how to manage and coordinate alerts and responses among the distributed parties becomes a challenge. These alerts and responses are the two very important information items in establishing effective collaboration among the distributed smart surveillance systems. This research aims to develop a enterprise-scale alert-response management framework based on DODAF 2.0 services and systems model. The proposed framework may be considered as generic information assimilation and coordination framework for different surveillance scenarios.','16th International Conference on Advanced Communication Technology',1,'A. Y. Shahrah; M. A. Hossain; A. S. Alghamdi','ieee/service oriented architecture security.csv','ieee','\0'),(2319,'Model-driven risk analysis of evolving critical infrastructures','2014','6',' Risk analysis Security Interdependencies Evolution Critical infrastructures Incident preparedness ATM','Abstract The protection and security of critical infrastructures are important parts of Homeland Defense. Adequate means for analyzing the security risks of such infrastructures is a prerequisite for properly understanding the security needs and for maintaining appropriate incident preparedness. Risk management is coordinated activities to direct and control an organization with regard to risk, and includes the identification, analysis and mitigation of unacceptable risks. For critical infrastructures consisting of interdependent systems, risk analysis and mitigation is challenging because the overall risk picture may be strongly affected by changes in only a few of the systems. In order to continuously manage risks and maintain an adequate level of protection, there is a need to continuously maintain the validity of risk models while systems change and evolve. This paper addresses these challenges by presenting an approach to model-driven security risk analysis of changing and evolving systems. The approach is a tool-supported method with techniques and modeling support for traceability of system changes to risk models, as well as the explicit modeling of the impact of changes on the current risk picture. The presented artifacts are exemplified and validated in the domain of air traffic management.','Journal of Ambient Intelligence and Humanized Computing',1,'Bjørnar SolhaugFredrik Seehusen','springer/soa security.csv','springer','\0'),(2320,'search GenBank: interactive orchestration and ad-hoc choreography of Web services in the exploration of the biomedical resources of the National Center For Biotechnology Information','2013','1',' NCBI entrez Entrez databases Entrez search engine Entrez programming utilities Data exploration Data searching Data querying Web services Orchestration Choreography','Abstract Background Due to the growing number of biomedical entries in data repositories of the National Center for Biotechnology Information (NCBI), it is difficult to collect, manage and process all of these entries in one place by third-party software developers without significant investment in hardware and software infrastructure, its maintenance and administration. Web services allow development of software applications that integrate in one place the functionality and processing logic of distributed software components, without integrating the components themselves and without integrating the resources to which they have access. This is achieved by appropriate orchestration or choreography of available Web services and their shared functions. After the successful application of Web services in the business sector, this technology can now be used to build composite software tools that are oriented towards biomedical data processing. Results We have developed a new tool for efficient and dynamic data exploration in GenBank and other NCBI databases. A dedicated search GenBank system makes use of NCBI Web services and a package of Entrez Programming Utilities (eUtils) in order to provide extended searching capabilities in NCBI data repositories. In search GenBank users can use one of the three exploration paths: simple data searching based on the specified user’s query, advanced data searching based on the specified user’s query, and advanced data exploration with the use of macros. search GenBank orchestrates calls of particular tools available through the NCBI Web service providing requested functionality, while users interactively browse selected records in search GenBank and traverse between NCBI databases using available links. On the other hand, by building macros in the advanced data exploration mode, users create choreographies of eUtils calls, which can lead to the automatic discovery of related data in the specified databases. Conclusions search GenBank extends standard capabilities of the NCBI Entrez search engine in querying biomedical databases. The possibility of creating and saving macros in the search GenBank is a unique feature and has a great potential. The potential will further grow in the future with the increasing density of networks of relationships between data stored in particular databases. search GenBank is available for public use at http://​sgb.​biotools.​pl/​ .','BMC Bioinformatics',1,'Dariusz MrozekBożena Małysiak-MrozekArtur Siążnik','springer/service oriented architecture security.csv','springer','\0'),(2321,'Design and implementation of multilevel security subsystem based on XACML and WEB services','2015','','C4I Systems; Common Operating Picture; Information sharing; Multi Level Security; SOA; WEB Services; XACML','Controlled sharing of confidential information in military environment, especially as a part of joint and coalition forces, is an important mean to achieve the network-centricity goals. During last few years a technology for building the Service-Oriented Architecture has been developed. The Service-Oriented Architecture maps the concept of distributed service-oriented processing. It is a good application framework for integration of heterogeneous military systems. However, these systems could process the confidential data divided onto hierarchical classification levels. We can rise up the question: can Service-Oriented Architecture serve as a middleware layer to integrate such systems? The paper presents selected cases of information systems cooperation in systems federation. We developed the functional mechanisms according to XACML architecture and we proposed necessary attributes for users and data, what enabled to control information exchange and to authorize users to access sensitive information resources. The developed MLS implementations were tested in terms of interoperability in the consortium and domestic test environment. In June 2012, both the implementations services were successfully tested in an international test environment during testing of interoperability with foreign partners (Germany) and NC3A agency in the NATO Secret network during CWIX 2012 exercises. © 2015 Military University of Technology.','',1,'Jarmakiewicz J., Podlasek T.','scopus/service oriented architecture security.csv','scopus',''),(2322,'Der Standard ISO/IEC 27001:2013','2014','0','','Zusammenfassung Nach acht Jahren wurde 2013 der ISMS-Standard ISO/IEC 27001 überarbeitet. In diese überarbeitung sind viele Erfahrungen aus der Praxis eingeflossen, die ein Arbeiten nach dem neuen Standard vereinfachen sollen. In diesem Beitrag werden die wesentlichen Änderungen im Standard und im Anhang A vorgestellt. Um es vorweg zu nehmen: Die Änderungen sind weder belanglos noch revolutionär, sondern überwiegend praxisrelevante Verbesserungen.','Datenschutz und Datensicherheit - DuD',1,'Kai Jendrian','springer/soa security.csv','springer','\0'),(2323,'Designing secure business processes with SecBPMN','2015','0',' Information systems Security policies BPMN Compliance','Abstract Modern information systems are increasingly large and consist of an interplay of technical components and social actors (humans and organizations). Such interplay threatens the security of the overall system and calls for verification techniques that enable determining compliance with security policies. Existing verification frameworks either have a limited expressiveness that inhibits the specification of real-world requirements or rely on formal languages that are difficult to use for most analysts. In this paper, we overcome the limitations of existing approaches by presenting the SecBPMN framework. Our proposal includes: (1) the SecBPMN-ml modeling language, a security-oriented extension of BPMN for specifying composite information systems; (2) the SecBPMN-Q query language for representing security policies; and (3) a query engine that enables checking SecBPMN-Q policies against SecBPMN-ml specifications. We evaluate our approach by studying its understandability and perceived complexity with experts, running scalability analysis of the query engine, and through an application to a large case study concerning air traffic management.','Software & Systems Modeling',2,'Mattia SalnitriFabiano DalpiazPaolo Giorgini','springer/bpel security.csv','springer',''),(2324,'Safety Assurance of Open Adaptive Systems – A Survey','2014','1','','Abstract Open adaptive systems are the basis for a promising new generation of embedded systems with huge economic potential. In many application domains, however, the systems are safety-critical and an appropriate safety assurance approach is still missing. In recent years, models at runtime have emerged as a promising way to systematically engineer adaptive systems. This approach seems to provide the indispensable leverage for applying safety assurance techniques in adaptive systems. Therefore, this survey analyzes the state-of-the-art of models at runtime from a safety engineering point of view in order to assess the potential of this approach and to identify open gaps that have to be closed in future research to yield a safety assurance approach for open adaptive systems.','',1,'Mario TrappDaniel Schneider','springer/service oriented architecture security.csv','springer','\0'),(2325,'A study on the development of one source multi use cross-platform based on zero coding','2015','1',' Cross-platform Osmu(one source multi use) Zero coding Mobile app Native app','Abstract This study is to research and develop a native application based development tool which can perfectly satisfy both OSMU and cross-platform, and secure stable H/W control and execution speed. Additionally, this study is to enable developers in beginner or intermediate level to develop an application with the ‘zero coding methodology’ reflected tool developed by this study and not using the conventional program coding methods, eventually providing the environment that anyone, who can use MS office programs, can easily develop an application. The explosively increasing demand for the development of mobile apps is due to all works on typical PCs that should be converted to the smart basis. Although functions to be implemented are the same, different apps should be developed for each platform to result in cost, period and task forces increased a few times. The web-based application platform emerging as a solution for cross platforms is not capable of embodying the desired One Source Multi Use due to speed, UI, and technical incompleteness. Therefore if a “native-based OSMU development platform” is implemented which can develop native apps operating in various mobile operating systems, their high development productivity will contribute to remarkably reduced task forces, costs and time for development and maintenance. Also it will be possible to preoccupy the market of a potential as great as the exiting operating systems, for example, Android, iOS, Windows 8, etc. In order to develop and makes fullest use of smart app authoring tool different approaches should be appropriately employed. Firstly, it is required to have a close relation with legacy systems. Secondly, developers are fully qualified to use office programs. Thirdly, different programs should be also differently developed for business uses. This study aims to commercialize the authoring tool technology of the GUI method without coding and the source technology for driving apps in the cross platform environment. The high development productivity of one source multi use cross-platform based on Zero Coding will contribute to remarkably reduced task forces, costs and time for development and maintenance. The final goal of this paper is to establish operating platform specialized for business under predominant operating systems such as Google’s Android or Apple’s iOS, and to create making tools for application programs based on GUI, in which anyone can easily learn and implement by this platform.','Multimedia Tools and Applications',1,'YoungHyun ChangSangYeob Oh','springer/service oriented architecture security.csv','springer',''),(2326,'Event-based run-time adaptation in communication-centric systems','2016','0',' Concurrency Behavioral types Session types Run-time adaptation Process calculi','Abstract Communication-centric systems are software systems built as assemblies of distributed artifacts that interact following predefined communication protocols. Session-based concurrency is a type-based approach to ensure the conformance of communication-centric systems to such protocols. This paper presents a model of session-based concurrency with mechanisms for run-time adaptation . Our model allows us to specify communication-centric systems whose session behavior can be dynamically updated at run-time. We improve on previous work by proposing an event-based approach: adaptation requests, issued by the system itself or by its context, are assimilated to events which may trigger adaptation routines. These routines exploit type-directed checks to enable the reconfiguration of processes with active protocols. We equip our model with a type system that ensures communication safety and consistency properties: while safety guarantees absence of run-time communication errors, consistency ensures that update actions do not disrupt already established session protocols. We provide soundness results for binary and multiparty protocols.','Formal Aspects of Computing',2,'Cinzia Di GiustoJorge A. Pérez','springer/bpmn security.csv','springer',''),(2327,'A transformation approach for security enhanced business processes','2008','','Human computer interaction; Model-driven; Security; Software architecture; Visualization','The Business Process Modeling Notation (BPMN) has become the defacto standard for describing processes in an accessible graphical notation. The eXtensible Access Control Markup Language (XACML) and WS-Security are both OASIS standards used to specify and enforce platform independent access control and security policies suitable for service-oriented architectures. In this document we propose a transformation approach based on a security modeling framework for business process management to support access control and security policies for business processes. To deploy and enforce such security policies in an enterprise environment, a model-driven transformation between security annotated process models and a security specification language is used. We argue that specific types of organisational control and compliance policies may be expressed in a graphical fashion at the business process modeling level. These can then be transformed into corresponding access control and security policies for business process-driven information systems based on serviceoriented architectures. This approach acts as an enabler for better collaboration between security and business process domain experts to define consistent and valid security policies that can be easily communicated. We discuss the benefits of our modeling approach and outline how our framework can support security and compliance in business processes.','',2,'Wolter C., Schaad A., Meinel C.','scopus/bpmn security.csv','scopus','\0'),(2328,'Automated Analysis of Infinite State Workflows with Access Control Policies','2012','0','','Abstract Business processes are usually specified by workflows extended with access control policies. In previous works, automated techniques have been developed for the analysis of authorization constraints of workflows. One of main drawback of available approaches is that only a bounded number of workflow instances is considered and analyses are limited to consider intra-instance authorization constraints. Instead, in applications, several workflow instances execute concurrently, may synchronize, and be required to ensure inter-instance constraints. Performing an analysis by considering a finite but arbitrary number of workflow instances can give designers a higher confidence about the quality of their business process. In this paper, we propose an automated technique for the analysis of both intra- and inter-instance authorization constraints in workflow systems. We reduce the analysis problem to a model checking problem, parametric in the number of workflow instances, and identify a sub-class of workflow systems with a decidable analysis problem.','',2,'Alessandro ArmandoSilvio Ranise','springer/bpel security.csv','springer','\0'),(2329,'SOA\n \n \n \n $$^\\mathrm{+d}$$\n \n \n \n \n \n +\n d\n \n \n \n \n : a new way to design the decision in SOA—based on the new standard Decision Model and Notation (DMN)','2016','0',' SOA (Service Oriented Architecture) Decision-making process SoaML (Service oriented architecture Modeling BPMN (Business Process Modeling Notation) Pharmacy Inventory Management Decision Model and Notation (DMN)','Abstract In recent years, Service Oriented Architecture (SOA) technologies are emerging as a powerful vehicle for organizations that need to integrate their applications within and across organizational boundaries. In addition, organizations need to make better decisions more quickly. Moreover, they need to change those decisions immediately to adapt to this increasingly dynamic business environment. It is primarily a question in ensuring the decisional aspect by adopting the SOA as a support architecture. In this paper, we describe a new approach called SOA \\(^\\mathrm{+d}\\) based on a certain number of standards. It is going to be studied on three dimensions: The first is related to the definition of the information system implied in the SOA based on the use case model. The second develops the business dimension which is based on the BPMN (Business Process Modeling Notation). The last dimension addresses the need of decision; we use the new standard decision model and notation (DMN) which is recently approved by Object Management Group (OMG) and considered as a simple notation to specify the decision. Finally, Service Oriented Architecture Modeling Language (SoaML) will be used for design of several services. We also present our meta-model Decisional Model of Service (DMS) to define a new set of concepts necessary for modeling the three levels. Some of them are already known, whereas others are new and are proposed as an element of this work. we illustrate our proposal with a real case study in the Pharmacy Inventory Management.','Service Oriented Computing and Applications',1,'Fatima BoumahdiRachid ChalalAmina GuendouzKhalida Gasmia','springer/soa security.csv','springer',''),(2330,'Service Security Revisited','2014','1','REST;SOA;SOAP;Security;Services','Developing contemporary software architectures requires the consideration and adoption of the Service-oriented Architecture (SOA) principles. Distributed applications are a very common domain in which SOA guides design decisions in particular. For a long time, SOAP and its related stack of standards have been the only technological choice for implementing SOA-based systems. With the increased adoption of the REST concept, an alternative to SOAP is gaining traction. Security considerations have been part of the SOAP-based standardization work since the very beginning. As a result, a mature and comprehensive set of security-related standards is available for building SOAP-based service systems. REST-ful service systems, however, cannot take advantage of such a fully developed security framework yet. This paper therefore revisits the SOAP-based web services security stack in order to identify commonalities, differences and gaps in the security available for REST-ful services. From these findings a desired REST-ful web services security stack is proposed together with related research, development and standardization challenges.','Services Computing (SCC), 2014 IEEE International Conference on',1,'P. L. Gorski; L. L. Iacono; H. V. Nguyen; D. B. Torkian','ieee/service oriented architecture security.csv','ieee','\0'),(2331,'Efficacy-Aware Business Process Modeling','2012','2',' Business Process Modeling and Analysis Business Process Design Business Objectives and Goals','Abstract In business process design, business objective models can fulfill the role of formal requirement definitions. Matching process models against objective models would, for instance, enable sound comparison of implementation alternatives. For that purpose, objective models should be available independently of their concrete implementation in a business process. This issue is not addressed by common business process management concepts yet. Moreover, process models are currently not sufficiently expressive to determine business process efficacy in the sense of fulfilling a business objective. Therefore, this paper develops and integrates constructs required for efficacy-aware process modeling and apt to extend common modeling approaches. The concept is illustrated with a sample scenario. Overall, it serves as an enabler for progressive applications like automated process optimization.','',2,'Matthias LohrmannManfred Reichert','springer/bpmn security.csv','springer','\0'),(2332,'Evaluation of Influencing Factors in an Impact Analysis Methodology for the Adoption of Cloud-Based Services','2015','0','Cloud Computing;Cloud Services;Impact Analysis','Technical advancements in virtualization and Service-oriented Architectures, the technology backbone of Cloud Computing (CC), along with the availability of high speed Internet has escalated the performance of CC in terms of elasticity, throughput, agility, or response time. However, according to the Gartner\'s Hype cycle of 2014, CC is at the \"Trough of Disillusionment\", which hints at \"waning of interest as the implementations fail to deliver\" [7]. The reason for this situation is the lack of a methodological impact analysis for adopting cloud-based services in an organization. In the context of CC an impact analysis is complicated due to the complex architecture of services and presence of influencing factors from multiple dimensions (technical, economical, and organizational). This paper, therefore, extends and evaluates the methodology \"Impact Analysis Methodology for Cloud-based Services (IAMCIS)\" that quantifies the impact of cloud-based services before they are adopted in an organization [6]. The methodology is illustrated in combination with a use-case obtained from a survey conducted with 17 organizations (with varied domain of expertise, size, and geographical scope), who plan to adopt or have adopted cloud-based services for fulfilling their IT requirements.','2015 IEEE 8th International Conference on Cloud Computing',1,'R. Garg; B. Stiller','ieee/service oriented architecture security.csv','ieee',''),(2333,'Systems and Virtualization Management: Standards and the Cloud (A report on SVM 2011)','2012','0','','','Journal of Network and Systems Management',1,'Mark Carlson','springer/soa security.csv','springer','\0'),(2334,'SA4WSs: A Security Architecture for Web Services','2013','0',' Web service Security Architecture','Abstract With the rapid development and wide application of the Web services, its security flaws and vulnerabilities are increasing. Security has become one of the key issues to constrain the development of Web services technology. In this paper, we focus on how to build a security architecture for Web services to meet the security requirements of Web service applications. On the basis of analyzing the existing methods, a new security implementation approach for Web services is proposed to meet both the common security requirements of Web services platform and the specific security requirements of Web service applications. Then a security architecture for Web services is proposed. The architecture supports separating the functional implementations of Web service from the non-functional implementation of Web service, and ensures the portability of the platform.','',1,'Lingxia LiuDongxia WangJinjing ZhaoMinhuan Huang','springer/service oriented architecture security.csv','springer','\0'),(2335,'A web-based two-layered integration framework for smart devices','2012','1',' integration smart device Web of Things REST SOAP SOA service composition business process management.','Abstract The explosions of Internet of Things industry have been bringing more and more smart devices (SDs) into business and people\'s daily life. This creates new opportunities to build applications that better integrate real-time state of the physical world and requires agility for the software to accommodate customers\' requirements. Nevertheless, devices are usually provided by different manufacturers, and applications are independently constructed based on their own infrastructures with little interoperability. Web of Things concept has enabled the interoperability between devices by RESTful web service in a light-weight way; however, it make less efforts to discuss how to integrate devices into complex business environment. Service-Oriented Architecture and Business Process Management approach are becoming applicable to embedded real-world devices and provide flexible service composition. However, it is based on WS-* web service specification which is too heavy and complex for devices and not compatible to RESTful style. In such situation, integrating device into business application with simplicity and providing agility composition of service based on device are significant challenges. We propose a web-based two-layered integration framework that enables SD to integrate with each other via light-weight interface and other back-end applications into agile business process. A real-life use case on elderly care is studied in detail based on the framework.','EURASIP Journal on Wireless Communications and Networking',2,'Zhenyu WuTimo ItäläTingan TangChunhong ZhangYang JiMatti HämäläinenYunjie Liu','springer/bpel security.csv','springer','\0'),(2336,'A novel polarimetric SAR ship detection filter','2013','0','Synthetic aperture radar (SAR);polarimetric characteristics;scattering;ship detection','Synthetic aperture radar (SAR) ship detection is an important application in the context of environment and security monitoring. Many ship detection algorithms have been developed by image-based techniques. However, speckle and natural physical phenomenon, e.g., fronts, internal waves, etc., can cause false alarms and reduce their detection performances. In this paper, a new physical approach which considers ship having dominant double-bounced scattering contribution and therefore, predicting a completely different scattering mechanism for ship targets and sea surface, is here proposed. Based on this rationale, a new simple and very effective filtering technique has been conceived and implemented. Experiments, accomplished over fully polarimetric L-band Uninhabited Aerial Vehicle (UAV) SAR data, show the effectiveness of the proposed approach.','Radar Conference 2013, IET International',1,'Xi Zhang; Jie Zhang; Jun-min Meng; Li-min Chen','ieee/soa security.csv','ieee','\0'),(2337,'The Application Research of Data Exchange Technology in Digital Campus','2012','0',' Data exchange Data sharing Extract Transform and Load (ETL) Enterprise Service Bus (ESB) Privilege','Abstract To meet the needs of data exchange in the information system of Tsinghua University, In this paper, the authors designed and realized a data exchange platform to be implemented in digital campus with improvements in multiple aspects: application of Extract, Transform, and Load (ETL) technology to accomplish data exchange in large quantities of heterogeneous databases, utilization of Enterprise Service Bus (ESB) technology to accomplish real-time data exchange in small quantities of heterogeneous databases, and implementation of authorized management to accomplish data exchange in homogeneous databases. The developed data exchange platform has been operating steadily and produced little impact on the server and business system, exhibiting great potential in digital campus applications.','',1,'Qian WangNaiJia LiuZhiRui Cheng','springer/service oriented architecture security.csv','springer','\0'),(2338,'Web of Services Security','2015','0','','Zusammenfassung Die Bezeichnung „Web of Services“ bezieht sich nach einer Definition des W3C auf ein nachrichtenbasiertes Designprinzip, das häufig zum Entwurf von Internet-Anwendungen oder Unternehmenssoftware zum Einsatz kommt. Die beiden dominierenden Ansätze sind hier derzeit SOAP und REST. Für REST existiert jedoch keine der SOAP-Security entsprechende Sicherheitsarchitektur. Mit den zunehmenden Einsatzmöglichkeiten in verteilten Anwendungen wird eine solche „REST-Security“ jedoch immer dringender benötigt. Diese muss abstrakte Sicherheitsmethoden definieren, deren konkrete Umsetzung über die bei Webanwendungen gebräuchlichen Sicherheitsmechanismen hinausgeht. Der Beitrag gibt einen Überblick über den aktuellen Stand der Technik und formuliert offene Forschungs- und Entwicklungsaufgaben in Form von Anforderungen an REST-Security.','Datenschutz und Datensicherheit - DuD',1,'Peter Leo GorskiLuigi Lo IaconoHoai Viet NguyenDaniel Behnam Torkian','springer/soa security.csv','springer',''),(2339,'Practical Use of Formal Concept Analysis in Service-Oriented Computing','2012','3',' Service-Oriented Computing Pervasive environment Service classification','Abstract Pervasive applications are encountered in a number of settings, including smart houses, intelligent buildings or connected plants. Service-Oriented Computing is today the technology of choice for implementing and exposing resources in such environments. The selection of appropriate services at the right moment in order to compose meaningful applications is however a real issue. In this paper, we propose a FCA-based solution to this problem. We have integrated FCA algorithms in our pervasive gateways and adapted them in order to allow efficient runtime selection of heterogeneous and dynamic services. This work has been applied to realistic use cases in the scope of a European project.','',1,'Stéphanie CholletVincent LestideauYoann MaurelEtienne GandrillePhilippe LalandaOlivier Raynaud','springer/service oriented architecture security.csv','springer','\0'),(2340,'A design pattern for dependable web services using design diversity techniques and WS-BPEL','2009','1','','As the use of web services is growing, there is an increasing demand for dependability. In this paper we intend to introduce various offered solutions for dependable web services. The existing solutions are divided into two categories: fault tolerance techniques, such as active and passive replications, and the use of design diversity. The main contribution of this paper is the use of design diversity techniques and WS-BPEL, which would result in proposing a useful and flexible architecture for dependable web services. The proposed architecture has been used as the basis of a design pattern for dependable web services, called D3WS. We have implemented the proposed architecture in a prototype application using N-version programming (NVP). We have also modeled the architecture using stochastic reward nets (SRNs) for further evaluation of dependability measures.','Innovations in Information Technology, 2009. IIT \'09. International Conference on',2,'E. Nourani; M. A. Azgomi','ieee/bpel security.csv','ieee','\0'),(2341,'Security-as-a-Service for Microservices-Based Cloud Applications','2015','','microservices;network monitoring;security','Microservice architecture allows different parts of an application to be developed, deployed and scaled independently, therefore becoming a trend for developing cloud applications. However, it comes with challenging security issues. First, the network complexity introduced by the large number of microservices greatly increases the difficulty in monitoring the security of the entire application. Second, microservices are often designed to completely trust each other, therefore compromise of a single microservice may bring down the entire application. The problems are only exacerbated by the cloud, since applications no longer have complete control over their networks. In this paper, we propose a design for security-as-a-service for microservices-based cloud applications. By adding a new API primitive FlowTap for the network hypervisor, we build a flexible monitoring and policy enforcement infrastructure for network traffic to secure cloud applications. We demonstrate the effectiveness of our solution by deploying the Bro network monitor using FlowTap. Results show that our solution is flexible enough to support various kinds of monitoring scenarios and policies and it incurs minimal overhead (~6%) for real world usage. As a result, cloud applications can leverage our solution to deploy network security monitors to flexibly detect and block threats both external and internal to their network.','2015 IEEE 7th International Conference on Cloud Computing Technology and Science (CloudCom)',1,'Y. Sun; S. Nanda; T. Jaeger','ieee/microservice security.CSV','ieee',''),(2342,'Performance assessment of a closed-loop system for diabetes management','2015','4',' mHealth SOA Diabetes Sensors Telemonitoring Performance KPI','Abstract Telemedicine systems can play an important role in the management of diabetes, a chronic condition that is increasing worldwide. Evaluations on the consistency of information across these systems and on their performance in a real situation are still missing. This paper presents a remote monitoring system for diabetes management based on physiological sensors, mobile technologies and patient/doctor applications over a service-oriented architecture that has been evaluated in an international trial (83,905 operation records). The proposed system integrates three types of running environments and data engines in a single service-oriented architecture. This feature is used to assess key performance indicators comparing them with other type of architectures. Data sustainability across the applications has been evaluated showing better outcomes for full integrated sensors. At the same time, runtime performance of clients has been assessed spotting no differences regarding the operative environment.','Medical & Biological Engineering & Computing',1,'A. Martinez-MillanaG. FicoC. Fernández-LlatasV. Traver','springer/service oriented architecture security.csv','springer',''),(2343,'Modeling and verifying security policies in business processes','2014','5','BPMN; Compliance; Information systems; Security policies','Modern information systems are large-sized and comprise multiple heterogeneous and autonomous components. Autonomy enables decentralization, but it also implies that components providers are free to change, retire, or introduce new components. This is a threat to security, and calls for a continuous verification process to ensure compliance with security policies. Existing verification frameworks either have limited expressiveness-thereby inhibiting the specification of real-world requirements-, or rely on formal languages that are hardly employable for modeling and verifying large systems. In this paper, we overcome the limitations of existing approaches by proposing a framework that enables: (1) specifying information systems in SecBPMN, a security-oriented extension of BPMN; (2) expressing security policies through SecBPMN-Q, a query language for representing security policies; and (3) verifying SecBPMN-Q against SecBPMN specifications via an implemented query engine. We report on the applicability of our approach via a case study about air traffic management. © Springer-Verlag Berlin Heidelberg 2014.','',2,'Salnitri M., Dalpiaz F., Giorgini P.','scopus/bpmn security.csv','scopus',''),(2344,'Intelligent Data Acquisition and Processing of Remote Monitoring System Based on Internet of Things','2015','0',' SOA architecture Multi thread transmission Cache combined with database','Abstract In this paper, we study how the computational framework underpinned by the Internet of Things (IoT) paradigm can be utilized in remote monitoring industrial reaction kettle. We analyze a wide variety of reaction kettle monitoring parameters and their characteristics to scope of work. Sensor technologies are used for intelligent data acquisition. Such data are then transferred to a host computer with high frequency signal using ZigBee wireless communication technology. We use multi-thread technology to regular polling access to monitored data. We improve overall system performance by employing a cache module for the most recently used (MRU) data. The development of middleware realizes the communication between the host computer and client application systems. Principles of Service Oriented Architecture are adopted in the design of our system to reduce the coupling of the system components. Preliminary evaluation and integration test were also conducted, showing positive outcomes, and are reported in this paper.','',1,'Qiaohong ZuXiaoxue WuXingyu XuWenling Xie','springer/service oriented architecture security.csv','springer',''),(2345,'Eliciting security requirements for business processes using patterns','2012','2','','Business process modelling and security engineering are two important concerns when developing information system (IS). However current practices report that security is addressed rather at the later development stages (i.e., design and implementation). This raises a question whether the business processes are performed securely. In this paper, we propose a method to align business process modelling and security engineering. We develop a set of security risk-oriented patterns. Such patterns help to understand security risks that potentially arise within business processes, and to introduce security solutions. To ease the applicability the security risk-oriented patterns are defined using BPMN notations. The proposal is tested in an industrial business model and the findings indicate a positive usefulness to identify important business assets, their security risks and countermeasures.','',2,'Ahmed N., Matulevičius R., Khan N.H.','scopus/bpmn security.csv','scopus','\0'),(2346,'OData for service-oriented business applications: Comparative analysis of communication technologies for flexible Service-Oriented IT architectures','2015','0','DCOM;Java RMI;OData;REST;SOA','This document examines the OData protocol as a new service oriented approach for distributed IT architectures. The main features of OData were compared with properties of well-established solutions like: REST, DCOM and Java RMI. OData\'s protocol is presented in the context of its application in Service-Oriented Architectures.','Industrial Technology (ICIT), 2015 IEEE International Conference on',1,'R. Cupek; L. Huczala','ieee/service oriented architecture security.csv','ieee',''),(2347,'Evaluating REST architectures-Approach, tooling and guidelines','2015','','REST; Scenario-based evaluation guidelines; Software architecture evaluation','Architectural decisions determine the ability of the implemented system to satisfy functional and quality attribute requirements. The Representational State Transfer (REST) architectural style has been extensively used recently for integrating services and applications. Its adoption to build SOA-based distributed systems brings several benefits, but also poses new challenges and risks. Particularly important among those risks are failures to effectively address quality attribute requirements such as security, reliability, and performance. A proved efficient technique to identify and help mitigate those risks is the architecture evaluation. In this paper we propose an approach, tooling, and guidelines to aid architecture evaluation activities in REST-based systems. These guidelines can be systematically used along with evaluation methods to reason about design considerations and tradeoffs. To demonstrate how the guidelines can help architecture evaluators, we present a proof of concept describing how to use the guidelines in an ATAM (Architecture Tradeoff Analysis Method) evaluation. We also present the results of a survey conducted with industry specialists who have performed architecture evaluations in real world REST-based systems in order to gauge the suitability and utility of the proposed guidelines. Finally, the paper describes a Web tool developed to facilitate the use of the evaluation guidelines. © 2015 Elsevier Inc.','',1,'Costa B., Pires P.F., Delicato F.C., Merson P.','scopus/soa security.csv','scopus',''),(2348,'Self-Managed Micro-containers for Service-Based Applications in the Cloud','2013','0','Cloud Computing;FCAPS;Mobility;Monitoring;Self-Management;Service Containers','Cloud computing enables an economic model for virtual resources provisioning based on Internet protocols. For this paradigm, service oriented Architecture (SOA) is a pillar block to build applications. For service-based applications in the cloud, management becomes a challenging task since it involves an increasing number of layers and a huge number of parameters to take into account. In this paper, we propose a framework that generates self-managed and scalable micro-containers. These micro-containers are enhanced with the resiliency of cellular organisms assuring the fault, configuration, accounting, performance and security constraints (FCAPS) described for each service. The proposed intelligent managed micro-container (IMMC) has a self-monitoring service that allows it to take decisions to enhance its scalability based on migration and replication transactions. These transactions are performed using a Mobility service offered by our IMMC. The primary evaluation that we conducted using our framework are encouraging.','Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE), 2013 IEEE 22nd International Workshop on',1,'M. Mohamed; D. Belaïd; S. Tata','ieee/service oriented architecture security.csv','ieee','\0'),(2349,'ULMS: An Accelerator for the Applications by Shifting Writing Log from Local Disk to Clouds','2010','0','Log;Log Analysis;Performance;SaaS','Log data is critical to applications and the management and analysis of log data is a hot research topic. Existing log managements are normally tightly integrated with applications themselves, which may lead to problems including performance, local storage efficiency, security and non realtime functionality. To solve these problems, we present a SaaS method which shifts writing log data from local disk to clouds, at the same time the log management and analysis functionalities are also done by a cloud. We analyze two architectures to implement this method which are Shift-Log-by-WebService and Shift-Log-by-ActiveMQ. Initial experiments show the efficiency of later one. In the future, we can apply this tool to application systems which are based on web and database systems to improve their performances.','Computer Software and Applications Conference Workshops (COMPSACW), 2010 IEEE 34th Annual',1,'L. Zhou; Y. Zhang; C. Xing','ieee/webservice security.csv','ieee','\0'),(2350,'Network and Control Platforms','2013','0','','Abstract The Internet as the largest global recognized communication system is in constant change and evolves in dimensions of technology, capacity, availability and size continuously since its beginnings in the late 1960’s. The openness and its continuous change became characteristics of the Internet nowadays, but were no available in its origins. This chapter presents an overview about the telecommunication network and control platform evolution from classic fixed Circuit-Switched (CS) on to current fixed and mobile Next-Generation-Networks (NGN) towards future networks trends. Furthermore the Fixed-Mobile-Covergence (FMC) is presented and technology specific details are presented exemplarily.','',1,'Marius CoriciJulius MüllerDragos VingarzanThomas Magedanz','springer/service oriented architecture security.csv','springer','\0'),(2351,'Dynamic monitoring of composed services','2014','','BPMN; Complex event processing; Monitoring; Secure service composition; Security policy; SOA','Service-Oriented Architectures (SOAs) are becoming a dominant paradigm for the integration of heterogeneous systems. However, SOA-based applications are highly dynamic and liable to change significantly at runtime. This justifies the need for monitoring composed services throughout the lifetime of the service execution. In this chapter we present a novel approach to monitor services at runtime and to ensure that services behave as they have promised. Services are defined as BPMN (Business Process Modelling Notation) processes which can then be monitored during execution. © 2014 Springer International Publishing Switzerland. All rights are reserved.','',2,'Asim M., Zhou B., Llewellyn-Jones D., Shi Q., Merabti M.','scopus/bpmn security.csv','scopus',''),(2352,'Autonomous configuration of spatially aware sensor services in service oriented WSNs','2013','2','','Service-oriented Architectures (SOA) for Wireless Sensor Networks (WSNs) are an active research topic. Yet, autonomous configuration of services for real life constraints (spatio-temporal, input/output interoperability, policies, security etc.) is still a challenging problem. In this demonstration we describe the results of our research into the automated and intelligent configuration and composition of services for complex tasks.We present a service-oriented system capable of performing service configuration under spatial and relevancy constraints. It can configure services in one of the three following modes: distributed, centralized and hybrid. It also supports automatic reconfiguration in the event of service failures. This system uses a generic cost representation for services that may include spatial coverage of the services in an area of interest along with other service configuration cost metrics. We demonstrate our system using state-of-the-art emulation frameworks with a real life scenario. © 2013 IEEE.','',1,'Shah S.Y., Szymanski B., Zerfos P., Bisdikian C., Gibson C., Harries D.','scopus/service oriented architecture security.csv','scopus','\0'),(2353,'Modeling and Simulation of Web-of-Things Systems as Multi-Agent Systems','2015','0',' Web of things Sensor-actuator systems Agent-based modeling Simulation','Abstract In the Web of Things (WoT), special communication networks composed of sensor nodes, actuator nodes and service nodes form the basis for new types of web application systems, which are directly connected to the real world via sensors and actuators. We propose a conceptual framework for simulating WoT systems as multi-agent systems where both sensor nodes, actuator nodes and service nodes, as well as other systems in their environment interacting with them (such as other web applications, web services and human users), are modeled and simulated as agents. Our conceptual framework includes an ontology of WoT systems as sensor/actuator systems, and a meta-model for defining an agent-based WoT system simulation language.','',1,'Ion Mircea DiaconescuGerd Wagner','springer/service oriented architecture security.csv','springer',''),(2354,'The New Era of Web Data Warehousing: XML Warehousing Issues and Challenges','2008','0','','Proceedings of the 10th International Conference on Information Integration and Web-based Applications & Services','',2,'J. Wenny Rahayu and Eric Pardede and David Taniar','acm/bpel security.csv','acm','\0'); +/*!40000 ALTER TABLE `articles` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary view structure for view `articles_view` +-- + +DROP TABLE IF EXISTS `articles_view`; +/*!50001 DROP VIEW IF EXISTS `articles_view`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE VIEW `articles_view` AS SELECT + 1 AS `ArticleId`, + 1 AS `Title`, + 1 AS `year`, + 1 AS `cited_by`, + 1 AS `Keywords`, + 1 AS `Abstract`, + 1 AS `Journal`, + 1 AS `ResearchId`, + 1 AS `Authors`, + 1 AS `File`, + 1 AS `Source`*/; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `attribute` +-- + +DROP TABLE IF EXISTS `attribute`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `attribute` ( + `id_attribute` int(11) unsigned NOT NULL AUTO_INCREMENT, + `text` varchar(500) NOT NULL, + `x` varchar(50) DEFAULT '', + `y` varchar(50) DEFAULT '', + `xMajor` varchar(50) DEFAULT '', + `yMajor` varchar(50) DEFAULT '', + `x3D` varchar(50) DEFAULT '', + `y3D` varchar(50) DEFAULT '', + `z3D` varchar(50) DEFAULT '', + `xMajor3D` varchar(50) DEFAULT '', + `yMajor3D` varchar(50) DEFAULT '', + `zMajor3D` varchar(50) DEFAULT '', + `major` tinyint(1) DEFAULT '0', + `id_taxonomy` int(11) unsigned NOT NULL, + PRIMARY KEY (`id_attribute`), + UNIQUE KEY `id_attribute_UNIQUE` (`id_attribute`), + UNIQUE KEY `attribute_text_UNIQUE` (`text`,`id_taxonomy`), + KEY `attribute_id_taxonomy_foreign` (`id_taxonomy`), + CONSTRAINT `attribute_id_taxonomy_foreign` FOREIGN KEY (`id_taxonomy`) REFERENCES `taxonomy` (`id_taxonomy`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=96 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `attribute` +-- + +LOCK TABLES `attribute` WRITE; +/*!40000 ALTER TABLE `attribute` DISABLE KEYS */; +INSERT INTO `attribute` VALUES (1,'Integrity Protection Assets','','','','','','','','','','',0,1),(2,'Behavior','','','','','','','','','','',0,1),(3,'Data','','','','','','','','','','',0,1),(4,'Data and behavior','','','','','','','','','','',0,1),(5,'Representation','','','','','','','','','','',1,1),(6,'Static','','','','','','','','','','',0,1),(7,'In memory','','','','','','','','','','',0,1),(8,'In execution','','','','','','','','','','',0,1),(9,'Code invariants','','','','','','','','','','',0,1),(10,'Data invariants','','','','','','','','','','',0,1),(11,'Trace','','','','','','','','','','',0,1),(12,'Timed trace','','','','','','','','','','',0,1),(13,'HW counters','','','','','','','','','','',0,1),(14,'Granularity','','','','','','','','','','',1,1),(15,'Instructions','','','','','','','','','','',0,1),(16,'BB','','','','','','','','','','',0,1),(17,'Function','','','','','','','','','','',0,1),(18,'Slice','','','','','','','','','','',0,1),(19,'Application','','','','','','','','','','',0,1),(20,'Lifecycle activity','','','','','','','','','','',1,1),(21,'Pre-compile','','','','','','','','','','',0,1),(22,'Compile','','','','','','','','','','',0,1),(23,'Post-compile','','','','','','','','','','',0,1),(24,'Load','','','','','','','','','','',0,1),(25,'Run','','','','','','','','','','',0,1),(26,'Not root','','','','','','','','','','',0,1),(27,'Attack','','','','','','','','','','',1,1),(28,'Binary ','','','','','','','','','','',0,1),(29,'Process memory','','','','','','','','','','',0,1),(30,'Runtime data','','','','','','','','','','',0,1),(31,'Control flow','','','','','','','','','','',0,1),(32,'Measure','','','','','','','','','','',1,1),(33,'Local','','','','','','','','','','',0,1),(34,'Remote','','','','','','','','','','',0,1),(35,'Monitor','','','','','','','','','','',0,1),(36,'State inspection','','','','','','','','','','',0,1),(37,'Introspection','','','','','','','','','','',0,1),(38,'Response','','','','','','','','','','',0,1),(39,'Proactive','','','','','','','','','','',0,1),(40,'Postmortem','','','','','','','','','','',0,1),(41,'Transformation','','','','','','','','','','',0,1),(42,'Manual','','','','','','','','','','',0,1),(43,'Automatic','','','','','','','','','','',0,1),(44,'Check','','','','','','','','','','',0,1),(45,'Checksum','','','','','','','','','','',0,1),(46,'Signature','','','','','','','','','','',0,1),(47,'Equation eval','','','','','','','','','','',0,1),(48,'Majority vote','','','','','','','','','','',0,1),(49,'Access control','','','','','','','','','','',0,1),(50,'Hardening','','','','','','','','','','',0,1),(51,'Cyclic checks','','','','','','','','','','',0,1),(52,'Mutation','','','','','','','','','','',0,1),(53,'Code concealment','','','','','','','','','','',0,1),(54,'Cloning','','','','','','','','','','',0,1),(55,'Layered interpretation','','','','','','','','','','',0,1),(56,'Block chain','','','','','','','','','','',0,1),(57,'Overhead','','','','','','','','','','',1,1),(58,'Fair','','','','','','','','','','',0,1),(59,'Medium','','','','','','','','','','',0,1),(60,'High','','','','','','','','','','',0,1),(61,'N/A','','','','','','','','','','',0,1),(62,'Trust anchor','','','','','','','','','','',1,1),(63,'TPM','','','','','','','','','','',0,1),(64,'SGX','','','','','','','','','','',0,1),(65,'Other','','','','','','','','','','',0,1),(66,'None','','','','','','','','','','',0,1),(67,'Protection level','','','','','','','','','','',1,1),(68,'Internal','','','','','','','','','','',0,1),(69,'External','','','','','','','','','','',0,1),(70,'Hypervisor','','','','','','','','','','',0,1),(71,'Software','','','','','','','','','','',0,1),(72,'Reverse engineering','','','','','','','','','','',1,1),(73,'Attacker','','','','','','','','','','',1,1),(78,'Call interposition','','','','','','','','','','',0,1),(79,'Disassembler','','','','','','','','','','',0,1),(80,'Tools','','','','','','','','','','',1,1),(81,'Debugger','','','','','','','','','','',0,1),(82,'Tracer','','','','','','','','','','',0,1),(83,'Emulator','','','','','','','','','','',0,1),(84,'Discovery','','','','','','','','','','',1,1),(85,'Pattern matching','','','','','','','','','','',0,1),(86,'Taint analysis','','','','','','','','','','',0,1),(87,'Graph-based analysis','','','','','','','','','','',0,1),(88,'Symbolic execution','','','','','','','','','','',0,1),(89,'Dongle','','','','','','','','','','',0,1),(90,'Self-check','','','','','','','','','','',0,1),(91,'Hash chain','','','','','','','','','','',0,1),(92,'Reactive','','','','','','','','','','',0,1),(93,'Asset','','','','','','','','','','',1,1),(94,'Link','','','','','','','','','','',0,1),(95,'Basic block','','','','','','','','','','',0,1); +/*!40000 ALTER TABLE `attribute` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `dimension` +-- + +DROP TABLE IF EXISTS `dimension`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `dimension` ( + `id_dimension` int(11) unsigned NOT NULL AUTO_INCREMENT, + `text` varchar(50) NOT NULL, + `x` varchar(50) DEFAULT '', + `y` varchar(50) DEFAULT '', + `xMajor` varchar(50) DEFAULT '', + `yMajor` varchar(50) DEFAULT '', + `id_taxonomy` int(11) unsigned NOT NULL, + PRIMARY KEY (`id_dimension`), + UNIQUE KEY `id_dimension_UNIQUE` (`id_dimension`), + UNIQUE KEY `dimension_text_UNIQUE` (`text`,`id_taxonomy`), + KEY `dimension_id_taxonomy_foreign` (`id_taxonomy`), + CONSTRAINT `dimension_id_taxonomy_foreign` FOREIGN KEY (`id_taxonomy`) REFERENCES `taxonomy` (`id_taxonomy`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `dimension` +-- + +LOCK TABLES `dimension` WRITE; +/*!40000 ALTER TABLE `dimension` DISABLE KEYS */; +INSERT INTO `dimension` VALUES (1,'System view','','','','',1),(2,'Attack view','','','','',1),(3,'Defense view','','','','',1),(4,'Interdimensional view','','','','',1); +/*!40000 ALTER TABLE `dimension` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `mapping` +-- + +DROP TABLE IF EXISTS `mapping`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `mapping` ( + `id_mapping` int(10) unsigned NOT NULL AUTO_INCREMENT, + `id_paper` int(11) unsigned NOT NULL, + `id_attribute` int(11) unsigned NOT NULL, + `occurrenceCount` int(20) DEFAULT '1', + PRIMARY KEY (`id_paper`,`id_attribute`), + UNIQUE KEY `id_mapping_UNIQUE` (`id_mapping`), + KEY `mapping_id_mapping` (`id_mapping`), + KEY `mapping_id_attribute_foreign` (`id_attribute`), + CONSTRAINT `mapping_id_attribute_foreign` FOREIGN KEY (`id_attribute`) REFERENCES `attribute` (`id_attribute`) ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT `mapping_id_paper_foreign` FOREIGN KEY (`id_paper`) REFERENCES `paper` (`id_paper`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=678 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `mapping` +-- + +LOCK TABLES `mapping` WRITE; +/*!40000 ALTER TABLE `mapping` DISABLE KEYS */; +INSERT INTO `mapping` VALUES (1,1,2,1),(87,1,11,1),(103,1,15,1),(166,1,23,1),(199,1,26,1),(255,1,31,1),(265,1,33,1),(314,1,36,1),(360,1,39,1),(441,1,43,1),(531,1,58,1),(588,1,66,1),(628,1,68,1),(2,2,2,1),(62,2,9,1),(107,2,16,1),(167,2,23,1),(225,2,29,1),(266,2,33,1),(338,2,37,1),(361,2,39,1),(409,2,42,1),(458,2,45,1),(478,2,46,1),(503,2,53,1),(560,2,61,1),(589,2,66,1),(629,2,68,1),(3,3,2,1),(63,3,9,1),(108,3,16,1),(168,3,23,1),(201,3,26,1),(226,3,29,1),(268,3,33,1),(339,3,37,1),(363,3,39,1),(442,3,43,1),(459,3,45,1),(495,3,51,1),(505,3,53,1),(547,3,59,1),(591,3,66,1),(631,3,68,1),(4,4,2,1),(41,4,3,1),(51,4,4,1),(64,4,9,1),(137,4,19,1),(169,4,23,1),(227,4,29,1),(300,4,34,1),(340,4,37,1),(364,4,39,1),(443,4,43,1),(491,4,49,1),(511,4,55,1),(532,4,58,1),(585,4,64,1),(651,4,69,1),(5,5,2,1),(89,5,11,1),(105,5,15,1),(257,5,31,1),(269,5,33,1),(316,5,36,1),(365,5,39,1),(444,5,43,1),(561,5,61,1),(592,5,66,1),(652,5,69,1),(6,6,2,1),(42,6,3,1),(52,6,4,1),(65,6,9,1),(116,6,17,1),(170,6,23,1),(202,6,26,1),(228,6,29,1),(270,6,33,1),(317,6,36,1),(366,6,39,1),(445,6,43,1),(492,6,49,1),(512,6,55,1),(522,6,56,1),(553,6,60,1),(586,6,65,1),(671,6,70,1),(7,7,2,1),(54,7,6,1),(138,7,19,1),(171,7,23,1),(205,7,26,1),(218,7,28,1),(273,7,33,1),(341,7,37,1),(369,7,39,1),(412,7,42,1),(479,7,46,1),(564,7,61,1),(595,7,66,1),(653,7,69,1),(8,8,2,1),(66,8,9,1),(109,8,16,1),(172,8,23,1),(229,8,29,1),(274,8,33,1),(342,8,37,1),(370,8,39,1),(413,8,42,1),(460,8,45,1),(496,8,51,1),(554,8,60,1),(596,8,66,1),(634,8,68,1),(9,9,2,1),(90,9,11,1),(130,9,18,1),(163,9,22,1),(249,9,30,1),(258,9,31,1),(275,9,33,1),(320,9,36,1),(371,9,39,1),(414,9,42,1),(565,9,61,1),(597,9,66,1),(635,9,68,1),(10,10,2,1),(139,10,19,1),(173,10,23,1),(206,10,26,1),(276,10,33,1),(343,10,37,1),(372,10,39,1),(415,10,42,1),(493,10,49,1),(513,10,55,1),(533,10,58,1),(598,10,66,1),(672,10,70,1),(11,11,2,1),(55,11,6,1),(117,11,17,1),(197,11,25,1),(219,11,28,1),(301,11,34,1),(373,11,39,1),(447,11,43,1),(500,11,52,1),(534,11,58,1),(599,11,66,1),(654,11,69,1),(12,12,2,1),(56,12,6,1),(110,12,16,1),(220,12,28,1),(277,12,33,1),(344,12,37,1),(374,12,39,1),(416,12,42,1),(485,12,48,1),(566,12,61,1),(600,12,66,1),(636,12,68,1),(13,13,2,1),(57,13,6,1),(140,13,19,1),(174,13,23,1),(207,13,26,1),(221,13,28,1),(302,13,34,1),(345,13,37,1),(375,13,39,1),(417,13,42,1),(461,13,45,1),(567,13,61,1),(601,13,66,1),(655,13,69,1),(14,14,2,1),(45,14,3,1),(53,14,4,1),(67,14,9,1),(141,14,19,1),(156,14,21,1),(230,14,29,1),(278,14,33,1),(346,14,37,1),(376,14,39,1),(418,14,42,1),(462,14,45,1),(514,14,55,1),(523,14,56,1),(535,14,58,1),(579,14,63,1),(673,14,70,1),(15,15,2,1),(118,15,17,1),(175,15,23,1),(279,15,33,1),(347,15,37,1),(377,15,39,1),(419,15,42,1),(515,15,55,1),(548,15,59,1),(602,15,66,1),(674,15,70,1),(16,16,2,1),(68,16,9,1),(111,16,16,1),(177,16,23,1),(231,16,29,1),(280,16,33,1),(348,16,37,1),(379,16,39,1),(421,16,42,1),(497,16,51,1),(516,16,55,1),(536,16,58,1),(604,16,66,1),(637,16,68,1),(17,17,2,1),(69,17,9,1),(112,17,16,1),(178,17,23,1),(196,17,24,1),(232,17,29,1),(281,17,33,1),(349,17,37,1),(380,17,39,1),(422,17,42,1),(463,17,45,1),(498,17,51,1),(501,17,52,1),(517,17,55,1),(537,17,58,1),(605,17,66,1),(638,17,68,1),(18,18,2,1),(70,18,9,1),(131,18,18,1),(179,18,23,1),(233,18,29,1),(282,18,33,1),(350,18,37,1),(381,18,39,1),(423,18,42,1),(464,18,45,1),(569,18,61,1),(606,18,66,1),(639,18,68,1),(19,19,2,1),(83,19,10,1),(120,19,17,1),(157,19,21,1),(251,19,30,1),(283,19,33,1),(322,19,36,1),(382,19,39,1),(424,19,42,1),(487,19,48,1),(499,19,51,1),(570,19,61,1),(607,19,66,1),(640,19,68,1),(20,20,2,1),(91,20,11,1),(113,20,16,1),(132,20,18,1),(180,20,23,1),(259,20,31,1),(284,20,33,1),(323,20,36,1),(383,20,39,1),(425,20,42,1),(509,20,54,1),(555,20,60,1),(608,20,66,1),(641,20,68,1),(21,21,2,1),(96,21,12,1),(142,21,19,1),(181,21,23,1),(234,21,29,1),(304,21,34,1),(324,21,36,1),(384,21,39,1),(448,21,43,1),(465,21,45,1),(556,21,60,1),(609,21,66,1),(657,21,69,1),(22,22,2,1),(97,22,12,1),(143,22,19,1),(182,22,23,1),(235,22,29,1),(305,22,34,1),(325,22,36,1),(385,22,39,1),(449,22,43,1),(466,22,45,1),(549,22,59,1),(610,22,66,1),(658,22,69,1),(23,23,2,1),(92,23,11,1),(144,23,19,1),(158,23,21,1),(260,23,31,1),(306,23,34,1),(326,23,36,1),(407,23,40,1),(450,23,43,1),(467,23,45,1),(480,23,46,1),(488,23,48,1),(524,23,56,1),(550,23,59,1),(611,23,66,1),(642,23,68,1),(24,24,2,1),(71,24,9,1),(133,24,18,1),(164,24,22,1),(236,24,29,1),(285,24,33,1),(351,24,37,1),(386,24,39,1),(451,24,43,1),(468,24,45,1),(518,24,55,1),(571,24,61,1),(612,24,66,1),(643,24,68,1),(25,25,2,1),(72,25,9,1),(145,25,19,1),(183,25,23,1),(237,25,29,1),(286,25,33,1),(352,25,37,1),(387,25,39,1),(426,25,42,1),(469,25,45,1),(525,25,56,1),(580,25,63,1),(659,25,69,1),(26,26,2,1),(58,26,6,1),(146,26,19,1),(184,26,23,1),(210,26,26,1),(222,26,28,1),(287,26,33,1),(353,26,37,1),(390,26,39,1),(427,26,42,1),(481,26,46,1),(572,26,61,1),(614,26,66,1),(662,26,69,1),(27,27,2,1),(73,27,9,1),(147,27,19,1),(185,27,23,1),(211,27,26,1),(238,27,29,1),(288,27,33,1),(354,27,37,1),(391,27,39,1),(454,27,43,1),(470,27,45,1),(482,27,46,1),(519,27,55,1),(573,27,61,1),(615,27,66,1),(663,27,69,1),(28,28,2,1),(93,28,11,1),(122,28,17,1),(161,28,21,1),(261,28,31,1),(289,28,33,1),(392,28,39,1),(428,28,42,1),(510,28,54,1),(574,28,61,1),(616,28,66,1),(644,28,68,1),(29,29,2,1),(74,29,9,1),(135,29,18,1),(198,29,25,1),(239,29,29,1),(290,29,33,1),(355,29,37,1),(393,29,39,1),(455,29,43,1),(502,29,52,1),(506,29,53,1),(551,29,59,1),(617,29,66,1),(645,29,68,1),(30,30,2,1),(101,30,13,1),(186,30,23,1),(212,30,26,1),(262,30,31,1),(291,30,33,1),(329,30,36,1),(394,30,39,1),(429,30,42,1),(484,30,47,1),(527,30,56,1),(539,30,58,1),(582,30,63,1),(646,30,68,1),(31,31,2,1),(98,31,12,1),(123,31,17,1),(187,31,23,1),(309,31,34,1),(330,31,36,1),(395,31,39,1),(430,31,42,1),(471,31,45,1),(575,31,61,1),(618,31,66,1),(664,31,69,1),(32,32,2,1),(75,32,9,1),(148,32,19,1),(188,32,23,1),(240,32,29,1),(292,32,33,1),(331,32,36,1),(396,32,39,1),(431,32,42,1),(472,32,45,1),(520,32,55,1),(528,32,56,1),(540,32,58,1),(587,32,65,1),(675,32,70,1),(33,33,2,1),(60,33,6,1),(124,33,17,1),(191,33,23,1),(215,33,26,1),(241,33,29,1),(311,33,34,1),(357,33,37,1),(399,33,39,1),(433,33,42,1),(530,33,56,1),(543,33,58,1),(584,33,63,1),(676,33,70,1),(34,34,2,1),(76,34,9,1),(125,34,17,1),(192,34,23,1),(242,34,29,1),(295,34,33,1),(358,34,37,1),(400,34,39,1),(434,34,42,1),(474,34,45,1),(507,34,53,1),(558,34,60,1),(621,34,66,1),(648,34,68,1),(35,35,2,1),(99,35,12,1),(126,35,17,1),(193,35,23,1),(312,35,34,1),(334,35,36,1),(401,35,39,1),(435,35,42,1),(475,35,45,1),(544,35,58,1),(622,35,66,1),(667,35,69,1),(36,36,2,1),(77,36,9,1),(100,36,12,1),(102,36,13,1),(127,36,17,1),(162,36,21,1),(243,36,29,1),(296,36,33,1),(335,36,36,1),(402,36,39,1),(436,36,42,1),(577,36,61,1),(623,36,66,1),(668,36,69,1),(37,37,2,1),(61,37,6,1),(136,37,18,1),(165,37,22,1),(217,37,26,1),(224,37,28,1),(297,37,33,1),(337,37,36,1),(404,37,39,1),(438,37,42,1),(559,37,60,1),(625,37,66,1),(649,37,68,1),(38,38,2,1),(78,38,9,1),(115,38,16,1),(194,38,23,1),(244,38,29,1),(298,38,33,1),(405,38,39,1),(439,38,42,1),(476,38,45,1),(508,38,53,1),(552,38,59,1),(626,38,66,1),(650,38,68,1),(39,39,2,1),(79,39,9,1),(152,39,19,1),(195,39,23,1),(245,39,29,1),(299,39,33,1),(359,39,37,1),(406,39,39,1),(440,39,42,1),(477,39,45,1),(521,39,55,1),(545,39,58,1),(627,39,66,1),(670,39,69,1),(677,39,70,1),(40,40,3,1),(88,40,11,1),(104,40,15,1),(128,40,18,1),(153,40,21,1),(200,40,26,1),(246,40,30,1),(256,40,31,1),(267,40,33,1),(315,40,36,1),(362,40,39,1),(410,40,42,1),(490,40,49,1),(504,40,53,1),(546,40,59,1),(590,40,66,1),(630,40,68,1),(43,41,3,1),(80,41,10,1),(129,41,18,1),(154,41,21,1),(203,41,26,1),(247,41,30,1),(271,41,33,1),(318,41,36,1),(367,41,39,1),(446,41,43,1),(562,41,61,1),(593,41,66,1),(632,41,68,1),(44,42,3,1),(81,42,10,1),(106,42,15,1),(155,42,21,1),(204,42,26,1),(248,42,30,1),(272,42,33,1),(319,42,36,1),(368,42,39,1),(411,42,42,1),(563,42,61,1),(594,42,66,1),(633,42,68,1),(46,43,3,1),(82,43,10,1),(119,43,17,1),(176,43,23,1),(208,43,26,1),(250,43,30,1),(303,43,34,1),(321,43,36,1),(378,43,39,1),(420,43,42,1),(486,43,48,1),(568,43,61,1),(603,43,66,1),(656,43,69,1),(47,44,3,1),(84,44,10,1),(121,44,17,1),(159,44,21,1),(252,44,30,1),(307,44,34,1),(327,44,36,1),(388,44,39,1),(452,44,43,1),(557,44,60,1),(613,44,66,1),(660,44,69,1),(48,45,3,1),(85,45,10,1),(134,45,18,1),(160,45,21,1),(209,45,26,1),(253,45,30,1),(308,45,34,1),(328,45,36,1),(389,45,39,1),(453,45,43,1),(483,45,47,1),(526,45,56,1),(538,45,58,1),(581,45,63,1),(661,45,69,1),(49,46,3,1),(59,46,6,1),(149,46,19,1),(223,46,28,1),(310,46,34,1),(356,46,37,1),(408,46,40,1),(432,46,42,1),(473,46,45,1),(529,46,56,1),(576,46,61,1),(583,46,63,1),(665,46,69,1),(50,47,3,1),(86,47,10,1),(151,47,19,1),(216,47,26,1),(254,47,30,1),(313,47,34,1),(336,47,36,1),(403,47,39,1),(437,47,42,1),(489,47,48,1),(578,47,61,1),(624,47,66,1),(669,47,69,1),(94,48,11,1),(114,48,16,1),(189,48,23,1),(213,48,26,1),(263,48,31,1),(293,48,33,1),(332,48,36,1),(397,48,39,1),(456,48,43,1),(541,48,58,1),(619,48,66,1),(647,48,68,1),(95,49,11,1),(150,49,19,1),(190,49,23,1),(214,49,26,1),(264,49,31,1),(294,49,33,1),(333,49,36,1),(398,49,39,1),(457,49,43,1),(494,49,49,1),(542,49,58,1),(620,49,66,1),(666,49,69,1); +/*!40000 ALTER TABLE `mapping` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `mitarbeiters` +-- + +DROP TABLE IF EXISTS `mitarbeiters`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `mitarbeiters` ( + `Id` int(11) NOT NULL AUTO_INCREMENT, + `Pass_Hash` binary(32) NOT NULL, + `Nme` varchar(100) NOT NULL, + PRIMARY KEY (`Id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `mitarbeiters` +-- + +LOCK TABLES `mitarbeiters` WRITE; +/*!40000 ALTER TABLE `mitarbeiters` DISABLE KEYS */; +INSERT INTO `mitarbeiters` VALUES (1,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','Mohsen'),(2,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','Amjad'); +/*!40000 ALTER TABLE `mitarbeiters` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `paper` +-- + +DROP TABLE IF EXISTS `paper`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `paper` ( + `id_paper` int(11) unsigned NOT NULL AUTO_INCREMENT, + `citation` varchar(500) NOT NULL, + `bib` mediumtext, + `referenceCount` int(20) DEFAULT '0', + `author` varchar(500) DEFAULT '', + `keywords` varchar(500) DEFAULT '', + PRIMARY KEY (`id_paper`), + UNIQUE KEY `id_paper_UNIQUE` (`id_paper`) +) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `paper` +-- + +LOCK TABLES `paper` WRITE; +/*!40000 ALTER TABLE `paper` DISABLE KEYS */; +INSERT INTO `paper` VALUES (1,'abadi2005control','{\"author\": \"Abadi, Mart{\\\\\'\\\\i}n and Budiu, Mihai and Erlingsson, Ulfar and Ligatti, Jay\", \"booktitle\": \"Proceedings of the 12th ACM conference on Computer and communications security\", \"title\": \"Control-flow integrity\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2005\", \"organization\": \"ACM\", \"ID\": \"abadi2005control\", \"pages\": \"340--353\"}',0,'',''),(2,'aucsmith1996tamper','{\"isbn\": \"3-540-61996-8\", \"title\": \"Tamper resistant software: An implementation\", \"journal\": \"Proceedings of the First International Workshop on Information Hiding\", \"author\": \"Aucsmith, David\", \"ENTRYTYPE\": \"article\", \"mendeley-groups\": \"Tamperproofing,Tamperproofing/Methods\", \"link\": \"http://link.springer.com/chapter/10.1007/3-540-61996-8{\\\\_}49\", \"year\": \"1996\", \"ID\": \"aucsmith1996tamper\", \"pages\": \"317--333\"}',0,'',''),(3,'banescu2017detecting','{\"doi\": \"10.1145/3029806.3029835\", \"isbn\": \"978-1-4503-4523-1/17/03\", \"title\": \"Detecting Patching of Executables without System Calls\", \"booktitle\": \"Proceedings of the Conference on Data and Application Security and Privacy\", \"author\": \"Banescu, Sebastian and Ahmadvand, Mohsen and Pretschner, Alexander and Shield, Robert and Hamilton, Chris\", \"ID\": \"banescu2017detecting\", \"year\": \"2017\", \"ENTRYTYPE\": \"inproceedings\"}',0,'',''),(4,'baumann2015shielding','{\"publisher\": \"ACM\", \"author\": \"Baumann, Andrew and Peinado, Marcus and Hunt, Galen\", \"journal\": \"ACM Transactions on Computer Systems (TOCS)\", \"title\": \"Shielding applications from an untrusted cloud with haven\", \"number\": \"3\", \"ENTRYTYPE\": \"article\", \"volume\": \"33\", \"year\": \"2015\", \"ID\": \"baumann2015shielding\", \"pages\": \"8\"}',0,'',''),(5,'Blietz2006','{\"doi\": \"10.1007/11787952_12\", \"isbn\": \"3540359982\", \"author\": \"Blietz, Brian and Tyagi, Akhilesh\", \"journal\": \"Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)\", \"issn\": \"16113349\", \"ENTRYTYPE\": \"article\", \"volume\": \"3919 LNCS\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Blietz, Tyagi/Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)/Blietz, Tyagi - 2006 - Software tamper resistance through dynamic program monitoring.pdf:pdf\", \"year\": \"2006\", \"title\": \"Software tamper resistance through dynamic program monitoring\", \"ID\": \"Blietz2006\", \"pages\": \"146--163\"}',0,'',''),(6,'brasser2015tytan','{\"author\": \"Brasser, Ferdinand and El Mahjoub, Brahim and Sadeghi, Ahmad-Reza and Wachsmann, Christian and Koeberl, Patrick\", \"booktitle\": \"2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC)\", \"title\": \"TyTAN: tiny trust anchor for tiny devices\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"brasser2015tytan\", \"pages\": \"1--6\"}',0,'',''),(7,'catuogno2002format','{\"author\": \"Catuogno, Luigi and Visconti, Ivan\", \"booktitle\": \"International Conference on Security in Communication Networks\", \"title\": \"A format-independent architecture for run-time integrity checking of executable code\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2002\", \"organization\": \"Springer\", \"ID\": \"catuogno2002format\", \"pages\": \"219--233\"}',0,'',''),(8,'chang2001protecting','{\"author\": \"Chang, Hoi and Atallah, Mikhail J\", \"booktitle\": \"ACM Workshop on Digital Rights Management\", \"title\": \"Protecting software code by guards\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2001\", \"organization\": \"Springer\", \"ID\": \"chang2001protecting\", \"pages\": \"160--175\"}',0,'',''),(9,'chen2002oblivious','{\"author\": \"Chen, Yuqun and Venkatesan, Ramarathnam and Cary, Matthew and Pang, Ruoming and Sinha, Saurabh and Jakubowski, Mariusz H\", \"booktitle\": \"International Workshop on Information Hiding\", \"title\": \"Oblivious hashing: A stealthy software integrity verification primitive\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2002\", \"organization\": \"Springer\", \"ID\": \"chen2002oblivious\", \"pages\": \"400--414\"}',0,'',''),(10,'christodorescu2009cloud','{\"author\": \"Christodorescu, Mihai and Sailer, Reiner and Schales, Douglas Lee and Sgandurra, Daniele and Zamboni, Diego\", \"booktitle\": \"Proceedings of the 2009 ACM workshop on Cloud computing security\", \"title\": \"Cloud security is not (just) virtualization security: a short paper\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2009\", \"organization\": \"ACM\", \"ID\": \"christodorescu2009cloud\", \"pages\": \"97--102\"}',0,'',''),(11,'collberg2012distributed','{\"author\": \"Collberg, Christian and Martin, Sam and Myers, Jonathan and Nagra, Jasvir\", \"booktitle\": \"Proceedings of the 28th Annual Computer Security Applications Conference\", \"title\": \"Distributed application tamper detection via continuous software updates\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2012\", \"organization\": \"ACM\", \"ID\": \"collberg2012distributed\", \"pages\": \"319--328\"}',0,'',''),(12,'dedic2007graph','{\"author\": \"Dedi{\\\\\'c}, Nenad and Jakubowski, Mariusz and Venkatesan, Ramarathnam\", \"booktitle\": \"International Workshop on Information Hiding\", \"title\": \"A graph game model for software tamper protection\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2007\", \"organization\": \"Springer\", \"ID\": \"dedic2007graph\", \"pages\": \"80--95\"}',0,'',''),(13,'deswarte2004remote','{\"publisher\": \"Springer\", \"author\": \"Deswarte, Yves and Quisquater, Jean-Jacques and Sa{\\\\\\\"\\\\i}dane, Ayda\", \"booktitle\": \"Integrity and internal control in information systems VI\", \"title\": \"Remote integrity checking\", \"ENTRYTYPE\": \"incollection\", \"year\": \"2004\", \"ID\": \"deswarte2004remote\", \"pages\": \"1--11\"}',0,'',''),(14,'dewan2008hypervisor','{\"author\": \"Dewan, Prashant and Durham, David and Khosravi, Hormuzd and Long, Men and Nagabhushan, Gayathri\", \"booktitle\": \"Proceedings of the 2008 Spring simulation multiconference\", \"title\": \"A hypervisor-based system for protecting software runtime memory and persistent storage\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2008\", \"organization\": \"Society for Computer Simulation International\", \"ID\": \"dewan2008hypervisor\", \"pages\": \"828--835\"}',0,'',''),(15,'Gan2015using','{\"doi\": \"10.1109/SPRO.2015.12\", \"title\": \"Using Virtual Machine Protections to Enhance Whitebox Cryptography\", \"booktitle\": \"Software Protection (SPRO), 2015 IEEE/ACM 1st International Workshop on\", \"author\": \"J. Gan and R. Kok and P. Kohli and Y. Ding and B. Mah\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"ID\": \"Gan2015using\", \"pages\": \"17-23\"}',0,'',''),(16,'Ghosh2010secure','{\"isbn\": \"364216434X\", \"author\": \"Ghosh, Sudeep and Hiser, Jason D. and Davidson, Jack W.\", \"journal\": \"Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)\", \"issn\": \"03029743\", \"ENTRYTYPE\": \"article\", \"volume\": \"6387 LNCS\", \"mendeley-groups\": \"Tamperproofing\", \"year\": \"2010\", \"title\": \"A secure and robust approach to software tamper resistance\", \"ID\": \"Ghosh2010secure\", \"pages\": \"33--47\"}',0,'',''),(17,'ghosh2013software','{\"author\": \"Ghosh, Sudeep and Hiser, Jason and Davidson, Jack W\", \"booktitle\": \"Proceedings of the 2nd ACM SIGPLAN Program Protection and Reverse Engineering Workshop\", \"title\": \"Software protection for dynamically-generated code\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2013\", \"organization\": \"ACM\", \"ID\": \"ghosh2013software\", \"pages\": \"1\"}',0,'',''),(18,'Horne2002','{\"doi\": \"10.1007/3-540-47870-1_9\", \"isbn\": \"978-3-540-43677-5\", \"author\": \"Horne, Bill and Matheson, Lesley and Sheehan, Casey and Tarjan, Robert\", \"ENTRYTYPE\": \"article\", \"abstract\": \"We describe a software self-checking mechanism designed to improve the tamper resistance of large programs. The mechanism consists of a number of testers that redundantly test for changes in the executable code as it is running and report modifications. The mechanism is built to be compatible with copy-specific static watermarking and other tamper-resistance techniques. The mechanism includes several innovations to make it stealthy and more robust.\", \"title\": \"Dynamic Self-Checking Techniques for Improved Tamper Resistance\", \"pages\": \"141--159\", \"mendeley-groups\": \"Tamperproofing/Methods,Tamperproofing\", \"link\": \"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.13.3308\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Horne et al/Security and Privacy in Digital Rights Management/Horne et al. - 2002 - Dynamic Self-Checking Techniques for Improved Tamper Resistance.pdf:pdf\", \"year\": \"2002\", \"ID\": \"Horne2002\", \"annote\": \"They add testers in the post compilation process.\\nLinear checks no circular\\nTo avoid complexity, a block is checked only by one block\\nA 32bit space is added outside basic blocks as corrector that tries to fix the hash values in patch process. The patch process is part of sofware watermarking after-installation process\\nDid not quite get it where do they store hashes? They say we store them but not clear where?!\\nNo inidication of how Address space layout randomization is respected.\", \"journal\": \"Security and Privacy in Digital Rights Management\"}',0,'',''),(19,'ibrahim2016stins4cs','{\"author\": \"Ibrahim, Amjad and Banescu, Sebastian\", \"booktitle\": \"Proceedings of the 2016 ACM Workshop on Software PROtection\", \"title\": \"StIns4CS: A State Inspection Tool for C\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2016\", \"organization\": \"ACM\", \"ID\": \"ibrahim2016stins4cs\", \"pages\": \"61--71\"}',0,'',''),(20,'jacob2007towards','{\"author\": \"Jacob, Matthias and Jakubowski, Mariusz H and Venkatesan, Ramarathnam\", \"booktitle\": \"Proceedings of the 9th workshop on Multimedia \\\\& security\", \"title\": \"Towards integral binary execution: Implementing oblivious hashing using overlapped instruction encodings\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2007\", \"organization\": \"ACM\", \"ID\": \"jacob2007towards\", \"pages\": \"129--140\"}',0,'',''),(21,'jakobsson2010retroactive','{\"numpages\": \"13\", \"publisher\": \"USENIX Association\", \"title\": \"Retroactive Detection of Malware with Applications to Mobile Platforms\", \"series\": \"HotSec\'10\", \"booktitle\": \"Proceedings of the 5th USENIX Conference on Hot Topics in Security\", \"author\": \"Jakobsson, Markus and Johansson, Karl-Anders\", \"ENTRYTYPE\": \"inproceedings\", \"location\": \"Washinton, DC\", \"year\": \"2010\", \"ID\": \"jakobsson2010retroactive\", \"pages\": \"1--13\", \"address\": \"Berkeley, CA, USA\"}',0,'',''),(22,'jakobsson2011practical','{\"author\": \"Jakobsson, Markus and Johansson, Karl-Anders\", \"booktitle\": \"Lightweight Security \\\\& Privacy: Devices, Protocols and Applications (LightSec), 2011 Workshop on\", \"title\": \"Practical and secure software-based attestation\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2011\", \"organization\": \"IEEE\", \"ID\": \"jakobsson2011practical\", \"pages\": \"1--9\"}',0,'',''),(23,'jin2003forensic','{\"author\": \"Jin, Hongxia and Lotspiech, Jeffery\", \"booktitle\": \"Software Reliability Engineering, 2003. ISSRE 2003. 14th International Symposium on\", \"title\": \"Forensic analysis for tamper resistant software\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2003\", \"organization\": \"IEEE\", \"ID\": \"jin2003forensic\", \"pages\": \"133--142\"}',0,'',''),(24,'junod2015obfuscator','{\"author\": \"Junod, Pascal and Rinaldini, Julien and Wehrli, Johan and Michielin, Julie\", \"booktitle\": \"Proceedings of the 1st International Workshop on Software Protection\", \"title\": \"Obfuscator-LLVM: software protection for the masses\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE Press\", \"ID\": \"junod2015obfuscator\", \"pages\": \"3--9\"}',0,'',''),(25,'kanstren2015architecture','{\"author\": \"Kanstr{\\\\\'e}n, Teemu and Lehtonen, Sami and Savola, Reijo and Kukkohovi, Hilkka and H{\\\\\\\"a}t{\\\\\\\"o}nen, Kimmo\", \"booktitle\": \"Cloud Engineering (IC2E), 2015 IEEE International Conference on\", \"title\": \"Architecture for high confidence cloud security monitoring\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"kanstren2015architecture\", \"pages\": \"195--200\"}',0,'',''),(26,'kim1994experiences','{\"ID\": \"kim1994experiences\", \"author\": \"Kim, Gene H and Spafford, Eugene H\", \"year\": \"1994\", \"ENTRYTYPE\": \"article\", \"title\": \"Experiences with tripwire: Using integrity checkers for intrusion detection\"}',0,'',''),(27,'kimball2012emulation','{\"publisher\": \"Google Patents\", \"author\": \"Kimball, William B and Baldwin, Rusty O\", \"title\": \"Emulation-based software protection\", \"month\": \"oct~9\", \"note\": \"US Patent 8,285,987\", \"year\": \"2012\", \"ID\": \"kimball2012emulation\", \"ENTRYTYPE\": \"misc\"}',0,'',''),(28,'kulkarni2014new','{\"author\": \"Kulkarni, Aniket and Metta, Ravindra\", \"booktitle\": \"Service Oriented System Engineering (SOSE), 2014 IEEE 8th International Symposium on\", \"title\": \"A New Code Obfuscation Scheme for Software Protection\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2014\", \"organization\": \"IEEE\", \"ID\": \"kulkarni2014new\", \"pages\": \"409--414\"}',0,'',''),(29,'madou2005software','{\"author\": \"Madou, Matias and Anckaert, Bertrand and Moseley, Patrick and Debray, Saumya and De Sutter, Bjorn and De Bosschere, Koen\", \"booktitle\": \"International Workshop on Information Security Applications\", \"title\": \"Software protection through dynamic code mutation\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2005\", \"organization\": \"Springer\", \"ID\": \"madou2005software\", \"pages\": \"194--206\"}',0,'',''),(30,'Malone2011','{\"doi\": \"10.1145/2046582.2046596\", \"isbn\": \"9781450310017\", \"keyword\": \"hardware performance counters,integrity\", \"author\": \"Malone, Corey and Zahran, Mohamed and Karri, Ramesh\", \"journal\": \"Proceedings of the sixth ACM workshop on Scalable trusted computing - STC \'11\", \"issn\": \"15437221\", \"ENTRYTYPE\": \"article\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"link\": \"http://www.scopus.com/inward/record.url?eid=2-s2.0-80755143408{\\\\&}partnerID=40{\\\\&}md5=ad5db1f8e5c0131a2a17f457ba1b0497$\\\\backslash$nhttp://dl.acm.org/citation.cfm?doid=2046582.2046596\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Malone, Zahran, Karri/Proceedings of the sixth ACM workshop on Scalable trusted computing - STC \'11/Malone, Zahran, Karri - 2011 - Are Hardware Performance Counters a Cost Effective Way for Integrity Checking of Programs.pdf:pdf\", \"year\": \"2011\", \"title\": \"Are Hardware Performance Counters a Cost Effective Way for Integrity Checking of Programs\", \"ID\": \"Malone2011\", \"pages\": \"71\"}',0,'',''),(31,'Martignoni2010conquer','{\"doi\": \"10.1007/978-3-642-14215-4_2\", \"title\": \"Conqueror: Tamper-proof code execution on legacy systems\", \"journal\": \"Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)\", \"author\": \"Martignoni, Lorenzo and Paleari, Roberto and Bruschi, Danilo\", \"ENTRYTYPE\": \"article\", \"volume\": \"6201 LNCS\", \"year\": \"2010\", \"ID\": \"Martignoni2010conquer\", \"pages\": \"21--40\"}',0,'',''),(32,'morgan2015design','{\"author\": \"Morgan, Beno{\\\\^\\\\i}t and Alata, Eric and Nicomette, Vincent and Ka{\\\\^a}niche, Mohamed and Averlant, Guillaume\", \"booktitle\": \"Dependable Computing (PRDC), 2015 IEEE 21st Pacific Rim International Symposium on\", \"title\": \"Design and implementation of a hardware assisted security architecture for software integrity monitoring\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"morgan2015design\", \"pages\": \"189--198\"}',0,'',''),(33,'park2015tgvisor','{\"author\": \"Park, Sungjin and Yoon, Jae Nam and Kang, Cheoloh and Kim, Kyong Hoon and Han, Taisook\", \"booktitle\": \"Mobile Cloud Computing, Services, and Engineering (MobileCloud), 2015 3rd IEEE International Conference on\", \"title\": \"TGVisor: A Tiny Hypervisor-Based Trusted Geolocation Framework for Mobile Cloud Clients\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"park2015tgvisor\", \"pages\": \"99--108\"}',0,'',''),(34,'Protsenko2015dynamic','{\"doi\": \"10.1109/ARES.2015.98\", \"keyword\": \"Android (operating system);computer crime;cryptography;mobile computing;reverse engineering;Android apps;application piracy;dynamic code loading;dynamic obfuscation techniques;dynamic re-encryption;dynamic self-protection;mobile devices;native code;proprietary mobile software;reverse engineering;tamperproofing;Androids;Encryption;Humanoid robots;Loading;Runtime;Software protection;Android;Software Protection\", \"title\": \"Dynamic Self-Protection and Tamperproofing for Android Apps Using Native Code\", \"booktitle\": \"Availability, Reliability and Security (ARES), 2015 10th International Conference on\", \"author\": \"M. Protsenko and S. Kreuter and T. M\\u00fcller\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"ID\": \"Protsenko2015dynamic\", \"pages\": \"129-138\"}',0,'',''),(35,'Seshadri2005pioneer','{\"doi\": \"10.1145/1095809.1095812\", \"isbn\": \"1-59593-079-5\", \"keyword\": \"dynamic root of trust,rootkit detection,self-check-summing code,software-based code attestation,verifiable code execution\", \"author\": \"Seshadri, Arvind and Luk, Mark and Shi, Elaine and Perrig, Adrian and van Doorn, Leendert and Khosla, Pradeep\", \"journal\": \"ACM SIGOPS Operating Systems Review\", \"issn\": \"01635980\", \"ID\": \"Seshadri2005pioneer\", \"mendeley-groups\": \"Tamperproofing\", \"link\": \"http://dl.acm.org/citation.cfm?id=1095809.1095812\", \"year\": \"2005\", \"title\": \"Pioneer: Verifying Code Integrity and Enforcing Untampered Code Execution on Legacy Systems\", \"ENTRYTYPE\": \"article\"}',0,'',''),(36,'Spinellis2000','{\"doi\": \"10.1145/353323.353383\", \"isbn\": \"1094-9224\", \"author\": \"Spinellis, Diomidis\", \"ENTRYTYPE\": \"article\", \"abstract\": \"The integrity verification of a device\'s controlling software is an important aspect of many emerging information appliances. We propose the use of reflection, whereby the software is able to examine its own operation, in conjunction with cryptographic hashes as a basis for developing a suitable software verification protocol. For more demanding applications meta-reflective techniques can be used to thwart attacks based on device emulation strategies. We demonstrate how our approach can be used to increase the security of mobile phones, devices for the delivery of digital content, and smartcards.\", \"issn\": \"10949224\", \"number\": \"1\", \"pages\": \"51--62\", \"volume\": \"3\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Spinellis/ACM Transactions on Information and System Security/Spinellis - 2000 - Reflection as a mechanism for software integrity verification.pdf:pdf\", \"year\": \"2000\", \"title\": \"Reflection as a mechanism for software integrity verification\", \"ID\": \"Spinellis2000\", \"annote\": \"In this approach a software integrity is verified with the help of an external (trusted) entity. Here, the program state is retrieved using reflection, a protocol is proposed to verify the state, and suggested to augment the scheme with CPU perfor.mance counter, before and after the verification call loops.\\nOne obvious attack is to keep an untouched version of the application in the memory next to the tampered with version. Then redirect all hash computations to the good version. The authors, suggest memory expanion and timing as possible countermeasures.\", \"journal\": \"ACM Transactions on Information and System Security\"}',0,'',''),(37,'teixeira2015siot','{\"author\": \"Teixeira, Fernando A and Machado, Gustavo V and Pereira, Fernando MQ and Wong, Hao Chi and Nogueira, Jos{\\\\\'e} and Oliveira, Leonardo B\", \"booktitle\": \"Proceedings of the 14th International Conference on Information Processing in Sensor Networks\", \"title\": \"SIoT: securing the internet of things through distributed system analysis\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"ACM\", \"ID\": \"teixeira2015siot\", \"pages\": \"310--321\"}',0,'',''),(38,'Wang2005Tamper','{\"isbn\": \"8242866627\", \"keyword\": \"integrity checking,multi-blocking encryption,software piracy,tamper resistant\", \"title\": \"Tamper Resistant Software Through Dynamic Integrity Checking\", \"journal\": \"Proc. Symp. on Cyptography and Information Security (SCIS 05)\", \"author\": \"Wang, Ping and Kang, Seok-kyu and Kim, Kwangjo\", \"ID\": \"Wang2005Tamper\", \"year\": \"2005\", \"ENTRYTYPE\": \"article\"}',0,'',''),(39,'yao2014cryptvmi','{\"author\": \"Yao, Fangzhou and Sprabery, Read and Campbell, Roy H\", \"booktitle\": \"Proceedings of the 2nd international workshop on Security in cloud computing\", \"title\": \"CryptVMI: a flexible and encrypted virtual machine introspection system in the cloud\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2014\", \"organization\": \"ACM\", \"ID\": \"yao2014cryptvmi\", \"pages\": \"11--18\"}',0,'',''),(40,'banescu2015software','{\"author\": \"Banescu, Sebastian and Pretschner, Alexander and Battr{\\\\\'e}, Dominic and Cazzulani, St{\\\\\'e}fano and Shield, Robert and Thompson, Greg\", \"booktitle\": \"Proceedings of the 5th ACM Conference on Data and Application Security and Privacy\", \"title\": \"Software-based protection against changeware\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"ACM\", \"ID\": \"banescu2015software\", \"pages\": \"231--242\"}',0,'',''),(41,'Carbone2009','{\"isbn\": \"9781605583525\", \"author\": \"Carbone, Martim and Cui, Weidong and Peinado, Marcus and Lu, Long and Lee, Wenke\", \"journal\": \"Analysis\", \"title\": \"Mapping Kernel Objects to Enable Systematic Integrity Checking\", \"ENTRYTYPE\": \"article\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Carbone et al/Analysis/Carbone et al. - 2009 - Mapping Kernel Objects to Enable Systematic Integrity Checking.pdf:pdf\", \"year\": \"2009\", \"ID\": \"Carbone2009\", \"pages\": \"555--565\"}',0,'',''),(42,'Castro2006','{\"isbn\": \"1-931971-47-1\", \"author\": \"Castro, Miguel and Costa, Manuel and Harris, Tim\", \"ENTRYTYPE\": \"article\", \"abstract\": \"Software attacks often subvert the intended data-flow in a vulnerable program. For example, attackers exploit buffer overflows and format string vulnerabilities to write data to unintended locations. We present a simple technique that prevents these attacks by enforcing data-flow integrity. It computes a data-flow graph using static analysis, and it instruments the program to ensure that the flow of data at runtime is allowed by the data-flow graph. We describe an efficient implementation of data-flow integrity enforcement that uses static analysis to reduce instrumentation overhead. This implementation can be used in practice to detect a broad class of attacks and errors because it can be applied automatically to C and C++ programs without modifications, it does not have false positives, and it has low overhead.\", \"title\": \"Securing software by enforcing data-flow integrity\", \"pages\": \"147--160\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"link\": \"http://dl.acm.org/citation.cfm?id=1298455.1298470$\\\\backslash$nhttp://www.usenix.org/event/osdi06/tech/full{\\\\_}papers/castro/castro{\\\\_}html/\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Castro, Costa, Harris/Proceedings of the 7th symposium on Operating systems design and implementation/Castro, Costa, Harris - 2006 - Securing software by enforcing data-flow integrity.pdf:pdf\", \"year\": \"2006\", \"ID\": \"Castro2006\", \"journal\": \"Proceedings of the 7th symposium on Operating systems design and implementation\"}',0,'',''),(43,'gao2015integrity','{\"doi\": \"10.1109/ICAC.2015.34\", \"keyword\": \"Big Data;cloud computing;data integrity;data privacy;Big Data processing;cloud computing technology;dynamic redundancy computation;integrity protection solution;reputation based redundancy computation;Conferences;MapReduce;cloud computing;integrity protection\", \"title\": \"Integrity Protection for Big Data Processing with Dynamic Redundancy Computation\", \"booktitle\": \"Autonomic Computing (ICAC), 2015 IEEE International Conference on\", \"author\": \"Z. Gao and N. Desalvo and P. D. Khoa and S. H. Kim and L. Xu and W. W. Ro and R. M. Verma and W. Shi\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"ID\": \"gao2015integrity\", \"pages\": \"159-160\"}',0,'',''),(44,'karapanos2016verena','{\"author\": \"Karapanos, Nikolaos and Filios, Alexandros and Popa, Raluca Ada and Capkun, Srdjan\", \"booktitle\": \"Proceedings of the 37th IEEE Symposium on Security and Privacy (IEEE S\\\\&P)\", \"title\": \"Verena: End-to-end integrity protection for web applications\", \"ID\": \"karapanos2016verena\", \"year\": \"2016\", \"ENTRYTYPE\": \"inproceedings\"}',0,'',''),(45,'Kil2009','{\"isbn\": \"9781424444212\", \"keyword\": \"dynamic attestation,integrity,remote attestation,runtime,system security,trusted computing\", \"author\": \"Kil, Chongkyung\", \"journal\": \"IEEE/IFIP International Conference on Dependable Systems {\\\\&} Networks\", \"title\": \"Remote Attestation to Dynamic System Properties: Towards Providing Complete System Integrity Evidence\", \"ENTRYTYPE\": \"article\", \"mendeley-groups\": \"Tamperproofing\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Kil/IEEEIFIP International Conference on Dependable Systems {\\\\&} Networks/Kil - 2009 - Remote Attestation to Dynamic System Properties Towards Providing Complete System Integrity Evidence.pdf:pdf\", \"year\": \"2009\", \"ID\": \"Kil2009\", \"pages\": \"115--124\"}',0,'',''),(46,'neisse2011implementing','{\"author\": \"Neisse, Ricardo and Holling, Dominik and Pretschner, Alexander\", \"booktitle\": \"Proceedings of the 2011 11th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing\", \"title\": \"Implementing trust in cloud infrastructures\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2011\", \"organization\": \"IEEE Computer Society\", \"ID\": \"neisse2011implementing\", \"pages\": \"524--533\"}',0,'',''),(47,'sun2015security','{\"author\": \"Sun, Yuqiong and Nanda, Susanta and Jaeger, Trent\", \"booktitle\": \"2015 IEEE 7th International Conference on Cloud Computing Technology and Science (CloudCom)\", \"title\": \"Security-as-a-Service for Microservices-Based Cloud Applications\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"sun2015security\", \"pages\": \"50--57\"}',0,'',''),(48,'pappas2012smashing','{\"author\": \"Pappas, Vasilis and Polychronakis, Michalis and Keromytis, Angelos D\", \"booktitle\": \"2012 IEEE Symposium on Security and Privacy\", \"title\": \"Smashing the gadgets: Hindering return-oriented programming using in-place code randomization\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2012\", \"organization\": \"IEEE\", \"ID\": \"pappas2012smashing\", \"pages\": \"601--615\"}',0,'',''),(49,'pappas2013transparent','{\"author\": \"Pappas, Vasilis and Polychronakis, Michalis and Keromytis, Angelos D\", \"booktitle\": \"Presented as part of the 22nd USENIX Security Symposium (USENIX Security 13)\", \"title\": \"Transparent ROP exploit mitigation using indirect branch tracing\", \"pages\": \"447--462\", \"year\": \"2013\", \"ID\": \"pappas2013transparent\", \"ENTRYTYPE\": \"inproceedings\"}',0,'',''); +/*!40000 ALTER TABLE `paper` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary view structure for view `paper_attribute` +-- + +DROP TABLE IF EXISTS `paper_attribute`; +/*!50001 DROP VIEW IF EXISTS `paper_attribute`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE VIEW `paper_attribute` AS SELECT + 1 AS `id_taxonomy`, + 1 AS `id_paper`, + 1 AS `citation`, + 1 AS `bib`, + 1 AS `id_attribute`, + 1 AS `text_attribute`, + 1 AS `leaf_attribute`*/; +SET character_set_client = @saved_cs_client; + +-- +-- Temporary view structure for view `paper_merged_attributes` +-- + +DROP TABLE IF EXISTS `paper_merged_attributes`; +/*!50001 DROP VIEW IF EXISTS `paper_merged_attributes`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE VIEW `paper_merged_attributes` AS SELECT + 1 AS `id_taxonomy`, + 1 AS `id_paper`, + 1 AS `citation`, + 1 AS `bib`, + 1 AS `atts`, + 1 AS `leaf_atts`*/; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `relation` +-- + +DROP TABLE IF EXISTS `relation`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `relation` ( + `id_relation` int(10) unsigned NOT NULL AUTO_INCREMENT, + `text` varchar(50) NOT NULL, + `comment` varchar(500) DEFAULT NULL, + PRIMARY KEY (`id_relation`), + UNIQUE KEY `id_relation_UNIQUE` (`id_relation`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `relation` +-- + +LOCK TABLES `relation` WRITE; +/*!40000 ALTER TABLE `relation` DISABLE KEYS */; +INSERT INTO `relation` VALUES (1,'Depends','simple dependency'),(2,'DependsDirected','directed dependency'),(3,'InstanceOf','inheritance'),(4,'MemberOf','aggregation'),(5,'PartOf','composition'); +/*!40000 ALTER TABLE `relation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `research` +-- + +DROP TABLE IF EXISTS `research`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `research` ( + `ResearchId` int(11) NOT NULL AUTO_INCREMENT, + `Questions` varchar(1000) NOT NULL, + `Review_Template` varchar(2000) DEFAULT NULL, + `Title` varchar(100) NOT NULL, + PRIMARY KEY (`ResearchId`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `research` +-- + +LOCK TABLES `research` WRITE; +/*!40000 ALTER TABLE `research` DISABLE KEYS */; +INSERT INTO `research` VALUES (1,'RQ1. What are the key security differences between Microservice and traditional monolithic Services?\n RQ1.1. Architectural differences? \n RQ1.2. Implications on security?\n\nRQ2. What general SOA security considertations(in the literature) is still applicable to microservices? \nRQ2.1. What measures are not applicable and why? e.g. due to performance overhead.','TODO:','Microservice Security'),(2,'RQ1. How can we secure a busness process defined in BPMN?','TODO','Business Process Security'); +/*!40000 ALTER TABLE `research` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `tags` +-- + +DROP TABLE IF EXISTS `tags`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tags` ( + `TagId` int(11) NOT NULL AUTO_INCREMENT, + `Text` varchar(500) NOT NULL, + `ResearchID` int(11) NOT NULL, + PRIMARY KEY (`TagId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `tags` +-- + +LOCK TABLES `tags` WRITE; +/*!40000 ALTER TABLE `tags` DISABLE KEYS */; +/*!40000 ALTER TABLE `tags` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `taxonomy` +-- + +DROP TABLE IF EXISTS `taxonomy`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy` ( + `id_taxonomy` int(11) unsigned NOT NULL AUTO_INCREMENT, + `text` varchar(50) DEFAULT NULL, + PRIMARY KEY (`id_taxonomy`), + UNIQUE KEY `id_taxonomy_UNIQUE` (`id_taxonomy`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `taxonomy` +-- + +LOCK TABLES `taxonomy` WRITE; +/*!40000 ALTER TABLE `taxonomy` DISABLE KEYS */; +INSERT INTO `taxonomy` VALUES (1,'Integrity protection'); +/*!40000 ALTER TABLE `taxonomy` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `taxonomy_dimension` +-- + +DROP TABLE IF EXISTS `taxonomy_dimension`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy_dimension` ( + `id_taxonomy_dimension` int(10) unsigned NOT NULL AUTO_INCREMENT, + `id_taxonomy` int(11) NOT NULL, + `id_attribute` int(11) unsigned NOT NULL, + `id_dimension` int(11) unsigned NOT NULL, + PRIMARY KEY (`id_taxonomy_dimension`), + UNIQUE KEY `id_taxonomy_dimension_UNIQUE` (`id_taxonomy_dimension`), + UNIQUE KEY `taxonomy_dimension_id_attribute_UNIQUE` (`id_taxonomy`,`id_attribute`), + KEY `taxonomy_dimension_id_attribute_foreign` (`id_attribute`), + KEY `taxonomy_dimension_id_dimension_foreign` (`id_dimension`), + CONSTRAINT `taxonomy_dimension_id_attribute_foreign` FOREIGN KEY (`id_attribute`) REFERENCES `attribute` (`id_attribute`) ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT `taxonomy_dimension_id_dimension_foreign` FOREIGN KEY (`id_dimension`) REFERENCES `dimension` (`id_dimension`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=92 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `taxonomy_dimension` +-- + +LOCK TABLES `taxonomy_dimension` WRITE; +/*!40000 ALTER TABLE `taxonomy_dimension` DISABLE KEYS */; +INSERT INTO `taxonomy_dimension` VALUES (1,1,2,1),(2,1,3,1),(3,1,4,1),(4,1,6,1),(5,1,7,1),(6,1,8,1),(7,1,9,1),(8,1,10,1),(9,1,11,1),(10,1,12,1),(11,1,13,1),(12,1,15,1),(13,1,16,1),(14,1,17,1),(15,1,18,1),(16,1,19,1),(17,1,21,1),(18,1,22,1),(19,1,23,1),(20,1,24,1),(21,1,25,1),(22,1,28,2),(23,1,29,2),(24,1,30,2),(25,1,31,2),(26,1,33,3),(27,1,34,3),(28,1,36,3),(29,1,37,3),(30,1,39,3),(31,1,40,3),(32,1,42,3),(33,1,43,3),(34,1,45,3),(35,1,46,3),(36,1,47,3),(37,1,48,3),(38,1,49,3),(39,1,51,3),(40,1,52,3),(41,1,53,3),(42,1,54,3),(43,1,55,3),(44,1,56,3),(45,1,58,3),(46,1,59,3),(47,1,60,3),(48,1,61,3),(49,1,63,3),(50,1,64,3),(51,1,65,3),(52,1,66,3),(53,1,68,3),(54,1,69,3),(55,1,70,3),(56,1,5,1),(57,1,71,3),(58,1,72,2),(59,1,73,2),(60,1,78,2),(61,1,79,2),(62,1,80,2),(63,1,81,2),(64,1,82,2),(65,1,83,2),(66,1,84,2),(67,1,85,2),(68,1,86,2),(69,1,87,2),(70,1,88,2),(71,1,89,3),(72,1,90,3),(73,1,91,3),(74,1,92,3),(75,1,93,1),(76,1,94,1),(77,1,95,1),(78,1,1,1),(79,1,14,1),(80,1,20,1),(81,1,26,2),(82,1,27,2),(83,1,32,3),(84,1,35,3),(85,1,38,3),(86,1,41,3),(87,1,44,3),(88,1,50,3),(89,1,57,3),(90,1,62,3),(91,1,67,3); +/*!40000 ALTER TABLE `taxonomy_dimension` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `taxonomy_relation` +-- + +DROP TABLE IF EXISTS `taxonomy_relation`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy_relation` ( + `id_taxonomy_relation` int(11) NOT NULL AUTO_INCREMENT, + `id_taxonomy` int(11) NOT NULL, + `id_src_attribute` int(11) unsigned NOT NULL, + `id_dest_attribute` int(11) unsigned NOT NULL, + `id_relation` int(11) NOT NULL, + `id_dimension` int(10) DEFAULT '0', + `edgeBendPoints` longtext, + PRIMARY KEY (`id_taxonomy_relation`), + UNIQUE KEY `id_taxonomy_relation_UNIQUE` (`id_taxonomy_relation`), + UNIQUE KEY `taxonomy_relation_attributes_UNIQUE` (`id_taxonomy`,`id_src_attribute`,`id_dest_attribute`,`id_dimension`), + KEY `taxonomy_relation_id_src_attribute_foreign` (`id_src_attribute`), + KEY `taxonomy_relation_id_dest_attribute_foreign` (`id_dest_attribute`), + CONSTRAINT `taxonomy_relation_id_dest_attribute_foreign` FOREIGN KEY (`id_dest_attribute`) REFERENCES `attribute` (`id_attribute`) ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT `taxonomy_relation_id_src_attribute_foreign` FOREIGN KEY (`id_src_attribute`) REFERENCES `attribute` (`id_attribute`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=246 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `taxonomy_relation` +-- + +LOCK TABLES `taxonomy_relation` WRITE; +/*!40000 ALTER TABLE `taxonomy_relation` DISABLE KEYS */; +INSERT INTO `taxonomy_relation` VALUES (56,1,2,93,3,1,NULL),(57,1,3,93,3,1,NULL),(58,1,4,93,3,1,NULL),(59,1,5,93,1,1,NULL),(60,1,21,20,3,1,NULL),(61,1,22,20,3,1,NULL),(62,1,23,20,3,1,NULL),(63,1,24,20,3,1,NULL),(64,1,25,20,3,1,NULL),(65,1,94,20,3,1,NULL),(66,1,6,21,1,1,NULL),(67,1,6,22,1,1,NULL),(68,1,6,94,1,1,NULL),(69,1,6,5,5,1,NULL),(70,1,7,5,5,1,NULL),(71,1,8,5,5,1,NULL),(72,1,9,7,3,1,NULL),(73,1,10,7,3,1,NULL),(74,1,13,8,3,1,NULL),(75,1,11,8,3,1,NULL),(76,1,12,11,3,1,NULL),(77,1,7,24,1,1,NULL),(78,1,7,25,1,1,NULL),(79,1,8,24,1,1,NULL),(80,1,8,25,1,1,NULL),(81,1,5,14,1,1,NULL),(82,1,15,14,3,1,NULL),(83,1,95,14,3,1,NULL),(84,1,17,14,3,1,NULL),(85,1,18,14,3,1,NULL),(86,1,19,14,3,1,NULL),(87,1,79,80,4,2,NULL),(88,1,81,80,4,2,NULL),(89,1,82,80,4,2,NULL),(90,1,83,80,4,2,NULL),(91,1,80,72,5,2,NULL),(92,1,73,72,5,2,NULL),(93,1,84,72,5,2,NULL),(94,1,27,72,5,2,NULL),(95,1,28,27,3,2,NULL),(96,1,29,27,3,2,NULL),(97,1,30,27,3,2,NULL),(98,1,88,84,3,2,NULL),(99,1,31,27,3,2,NULL),(100,1,26,73,3,2,NULL),(101,1,85,84,3,2,NULL),(102,1,86,84,3,2,NULL),(103,1,87,84,3,2,NULL),(104,1,78,27,3,2,NULL),(105,1,57,32,5,3,NULL),(106,1,62,32,5,3,NULL),(107,1,67,32,5,3,NULL),(108,1,35,32,5,3,NULL),(109,1,38,32,5,3,NULL),(110,1,41,32,5,3,NULL),(111,1,44,32,5,3,NULL),(112,1,50,32,5,3,NULL),(113,1,33,32,3,3,NULL),(114,1,34,32,3,3,NULL),(115,1,58,57,3,3,NULL),(116,1,59,57,3,3,NULL),(117,1,60,57,3,3,NULL),(118,1,61,57,3,3,NULL),(119,1,71,62,3,3,NULL),(120,1,89,62,3,3,NULL),(121,1,63,62,3,3,NULL),(122,1,64,62,3,3,NULL),(123,1,65,62,3,3,NULL),(124,1,70,67,3,3,NULL),(125,1,69,67,3,3,NULL),(126,1,90,67,3,3,NULL),(127,1,36,35,3,3,NULL),(128,1,37,35,3,3,NULL),(129,1,39,38,3,3,NULL),(130,1,92,38,3,3,NULL),(131,1,42,41,3,3,NULL),(132,1,43,41,3,3,NULL),(133,1,45,44,3,3,NULL),(134,1,46,44,3,3,NULL),(135,1,47,44,3,3,NULL),(136,1,48,44,3,3,NULL),(137,1,49,44,3,3,NULL),(138,1,51,50,3,3,NULL),(139,1,52,50,3,3,NULL),(140,1,53,50,3,3,NULL),(141,1,54,50,3,3,NULL),(142,1,55,50,3,3,NULL),(143,1,91,50,3,3,NULL),(232,1,32,84,2,4,NULL),(233,1,32,20,2,4,NULL),(234,1,32,27,2,4,NULL),(235,1,32,67,1,4,NULL),(236,1,57,20,2,4,NULL),(237,1,62,32,2,4,NULL),(238,1,93,14,1,4,NULL),(239,1,5,93,2,4,NULL),(240,1,84,32,2,4,NULL),(241,1,80,72,2,4,NULL),(242,1,27,5,2,4,NULL),(243,1,27,32,2,4,NULL),(244,1,73,27,2,4,NULL),(245,1,84,5,2,4,NULL); +/*!40000 ALTER TABLE `taxonomy_relation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `taxonomy_relation_annotation` +-- + +DROP TABLE IF EXISTS `taxonomy_relation_annotation`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy_relation_annotation` ( + `id_taxonomy` int(11) NOT NULL, + `id_taxonomy_relation` int(11) NOT NULL, + `annotation` longtext, + PRIMARY KEY (`id_taxonomy_relation`), + UNIQUE KEY `id_taxonomy_relation_annotation_UNIQUE` (`id_taxonomy_relation`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `taxonomy_relation_annotation` +-- + +LOCK TABLES `taxonomy_relation_annotation` WRITE; +/*!40000 ALTER TABLE `taxonomy_relation_annotation` DISABLE KEYS */; +INSERT INTO `taxonomy_relation_annotation` VALUES (1,232,'Impedes'),(1,233,'Transforms'),(1,234,'Mitigates or raises the bar'),(1,236,'Affects'),(1,237,'Strengthens'),(1,239,'Contains'),(1,240,'Identifies'),(1,241,'Support'),(1,242,'Tampers with'),(1,243,'Tampers with'),(1,244,'Executes'),(1,245,'Identifies asset'); +/*!40000 ALTER TABLE `taxonomy_relation_annotation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary view structure for view `unique_articles_view` +-- + +DROP TABLE IF EXISTS `unique_articles_view`; +/*!50001 DROP VIEW IF EXISTS `unique_articles_view`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE VIEW `unique_articles_view` AS SELECT + 1 AS `ArticleId`, + 1 AS `Title`, + 1 AS `year`, + 1 AS `cited_by`, + 1 AS `Keywords`, + 1 AS `Abstract`, + 1 AS `Journal`, + 1 AS `ResearchId`, + 1 AS `Authors`, + 1 AS `File`, + 1 AS `Source`*/; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `user` +-- + +DROP TABLE IF EXISTS `user`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `user` ( + `email` varchar(128) NOT NULL, + `password` varchar(128) NOT NULL, + `taxonomies` varchar(500) DEFAULT '', + `admin` tinyint(1) DEFAULT '0', + PRIMARY KEY (`email`), + UNIQUE KEY `email_UNIQUE` (`email`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `user` +-- + +LOCK TABLES `user` WRITE; +/*!40000 ALTER TABLE `user` DISABLE KEYS */; +INSERT INTO `user` VALUES ('felixhuber2@gmx.de','123','',1); +/*!40000 ALTER TABLE `user` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vote_tags` +-- + +DROP TABLE IF EXISTS `vote_tags`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `vote_tags` ( + `Vote_Tags_Id` int(11) NOT NULL AUTO_INCREMENT, + `Tag_Id` int(11) NOT NULL, + `VoteId` int(11) NOT NULL, + PRIMARY KEY (`Vote_Tags_Id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vote_tags` +-- + +LOCK TABLES `vote_tags` WRITE; +/*!40000 ALTER TABLE `vote_tags` DISABLE KEYS */; +/*!40000 ALTER TABLE `vote_tags` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `votes` +-- + +DROP TABLE IF EXISTS `votes`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `votes` ( + `VoteId` int(11) NOT NULL AUTO_INCREMENT, + `Vote_State` int(11) NOT NULL, + `MitarbeiterId` int(11) NOT NULL, + `ArticleId` int(11) NOT NULL, + `Review` varchar(5000) DEFAULT NULL, + PRIMARY KEY (`VoteId`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `votes` +-- + +LOCK TABLES `votes` WRITE; +/*!40000 ALTER TABLE `votes` DISABLE KEYS */; +INSERT INTO `votes` VALUES (1,0,1,873,''),(2,0,1,1455,''),(3,0,1,197,''),(4,0,1,205,''),(5,0,1,250,''); +/*!40000 ALTER TABLE `votes` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Dumping routines for database 'classification' +-- +/*!50003 DROP FUNCTION IF EXISTS `getAttributeName` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`localhost` FUNCTION `GETATTRIBUTENAME`(id Integer) RETURNS varchar(100) CHARSET utf8 +BEGIN +return (select text from attribute where id_attribute=id); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `insertallchildrenperattribute` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`localhost` PROCEDURE `insertallchildrenperattribute`(taxonomyId INT(11)) +BEGIN + DECLARE cursor_id_attribute INT(11); + DECLARE cursor_text VARCHAR(50); + DECLARE done INT DEFAULT FALSE; + DECLARE cursor_i CURSOR FOR SELECT id_attribute, text FROM attribute; + DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + DELETE FROM allchildrenperattribute WHERE id_taxonomy = taxonomyId; + OPEN cursor_i; + read_loop: LOOP + FETCH cursor_i INTO cursor_id_attribute, cursor_text; + IF done THEN + LEAVE read_loop; + END IF; + INSERT IGNORE INTO allchildrenperattribute(id_attribute, id_taxonomy, text, children) VALUES(cursor_id_attribute, taxonomyId, cursor_text, (SELECT (CASE WHEN b.children IS NULL THEN CAST(cursor_id_attribute AS CHAR(50)) ELSE CONCAT(CAST(cursor_id_attribute AS CHAR(50)), ",", b.children) END) AS children FROM (SELECT GROUP_CONCAT(lv SEPARATOR ',') AS children FROM (SELECT @pv:=(SELECT GROUP_CONCAT(DISTINCT relation1.id_src_attribute SEPARATOR ',') FROM taxonomy_relation AS relation1 WHERE relation1.id_taxonomy = taxonomyId AND relation1.id_relation > 2 AND FIND_IN_SET(relation1.id_dest_attribute, @pv)) AS lv FROM taxonomy_relation AS relation2 JOIN (SELECT @pv:=cursor_id_attribute) tmp ON (relation2.id_taxonomy = taxonomyId)) a) b)); + END LOOP; + CLOSE cursor_i; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `insertallparentsperattribute` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`localhost` PROCEDURE `insertallparentsperattribute`(taxonomyId INT(11)) +BEGIN + DECLARE cursor_id_attribute INT(11); + DECLARE cursor_text VARCHAR(50); + DECLARE done INT DEFAULT FALSE; + DECLARE cursor_i CURSOR FOR SELECT id_attribute, text FROM attribute; + DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + DELETE FROM allparentsperattribute WHERE id_taxonomy = taxonomyId; + OPEN cursor_i; + read_loop: LOOP + FETCH cursor_i INTO cursor_id_attribute, cursor_text; + IF done THEN + LEAVE read_loop; + END IF; + INSERT IGNORE INTO allparentsperattribute(id_attribute, id_taxonomy, text, parents) VALUES(cursor_id_attribute, taxonomyId, cursor_text, (SELECT (CASE WHEN b.parents IS NULL THEN "" ELSE b.parents END) AS parents FROM (SELECT GROUP_CONCAT(lv SEPARATOR ',') AS parents FROM (SELECT @pv:=(SELECT GROUP_CONCAT(DISTINCT parent.text SEPARATOR ',') FROM taxonomy_relation AS relation1 INNER JOIN attribute as parent ON (relation1.id_dest_attribute = parent.id_attribute AND parent.id_taxonomy = taxonomyId) WHERE relation1.id_taxonomy = taxonomyId AND relation1.id_relation > 2 AND FIND_IN_SET((SELECT DISTINCT text FROM attribute WHERE id_attribute = relation1.id_src_attribute AND id_taxonomy = taxonomyId), @pv)) AS lv FROM taxonomy_relation JOIN (SELECT @pv:=text FROM attribute WHERE id_attribute = cursor_id_attribute AND id_taxonomy = taxonomyId) tmp) a) b)); + END LOOP; + CLOSE cursor_i; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; + +-- +-- Final view structure for view `articles_view` +-- + +/*!50001 DROP VIEW IF EXISTS `articles_view`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8 */; +/*!50001 SET character_set_results = utf8 */; +/*!50001 SET collation_connection = utf8_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ +/*!50001 VIEW `articles_view` AS select `distict_articles`.`ArticleId` AS `ArticleId`,`distict_articles`.`Title` AS `Title`,`distict_articles`.`year` AS `year`,`distict_articles`.`cited_by` AS `cited_by`,`distict_articles`.`Keywords` AS `Keywords`,`distict_articles`.`Abstract` AS `Abstract`,`distict_articles`.`Journal` AS `Journal`,`distict_articles`.`ResearchId` AS `ResearchId`,`distict_articles`.`Authors` AS `Authors`,`distict_articles`.`File` AS `File`,`distict_articles`.`Source` AS `Source` from (select max(`a`.`ArticleId`) AS `ArticleId`,`a`.`Title` AS `Title`,max(cast(`a`.`year` as unsigned)) AS `year`,max(cast(`a`.`cited_by` as unsigned)) AS `cited_by`,max(`a`.`Keywords`) AS `Keywords`,max(`a`.`Abstract`) AS `Abstract`,max(`a`.`Journal`) AS `Journal`,`a`.`ResearchId` AS `ResearchId`,max(`a`.`Authors`) AS `Authors`,min(`a`.`File`) AS `File`,max(`a`.`Source`) AS `Source`,max(`a`.`Enabled`) AS `Enabled` from `classification`.`articles` `a` group by `a`.`Title`,`a`.`ResearchId`) `distict_articles` where (`distict_articles`.`Enabled` = 1) */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `paper_attribute` +-- + +/*!50001 DROP VIEW IF EXISTS `paper_attribute`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8 */; +/*!50001 SET character_set_results = utf8 */; +/*!50001 SET collation_connection = utf8_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ +/*!50001 VIEW `paper_attribute` AS select `taxonomy`.`id_taxonomy` AS `id_taxonomy`,`paper`.`id_paper` AS `id_paper`,`paper`.`citation` AS `citation`,`paper`.`bib` AS `bib`,`mapping`.`id_attribute` AS `id_attribute`,`GETATTRIBUTENAME`(`mapping`.`id_attribute`) AS `text_attribute`,`GETATTRIBUTENAME`(`mapping`.`id_attribute`) AS `leaf_attribute` from ((`paper` join `mapping` on((`paper`.`id_paper` = `mapping`.`id_paper`))) join `taxonomy`) union select `rel1`.`id_taxonomy` AS `id_taxonomy`,`paper`.`id_paper` AS `id_paper`,`paper`.`citation` AS `citation`,`paper`.`bib` AS `bib`,`rel1`.`id_src_attribute` AS `id_attribute`,`GETATTRIBUTENAME`(`rel1`.`id_src_attribute`) AS `text_attribute`,NULL AS `leaf_attribute` from ((`paper` join `mapping` on((`paper`.`id_paper` = `mapping`.`id_paper`))) left join `taxonomy_relation` `rel1` on((`rel1`.`id_dest_attribute` = `mapping`.`id_attribute`))) where (`rel1`.`id_src_attribute` is not null) union select `rel2`.`id_taxonomy` AS `id_taxonomy`,`paper`.`id_paper` AS `id_paper`,`paper`.`citation` AS `citation`,`paper`.`bib` AS `bib`,`rel2`.`id_src_attribute` AS `id_attribute`,`GETATTRIBUTENAME`(`rel2`.`id_src_attribute`) AS `text_attribute`,NULL AS `leaf_attribute` from (((`paper` join `mapping` on((`paper`.`id_paper` = `mapping`.`id_paper`))) left join `taxonomy_relation` `rel1` on((`rel1`.`id_dest_attribute` = `mapping`.`id_attribute`))) left join `taxonomy_relation` `rel2` on((`rel2`.`id_dest_attribute` = `rel1`.`id_src_attribute`))) where (`rel2`.`id_src_attribute` is not null) union select `rel3`.`id_taxonomy` AS `id_taxonomy`,`paper`.`id_paper` AS `id_paper`,`paper`.`citation` AS `citation`,`paper`.`bib` AS `bib`,`rel3`.`id_src_attribute` AS `id_attribute`,`GETATTRIBUTENAME`(`rel3`.`id_src_attribute`) AS `text_attribute`,NULL AS `leaf_attribute` from ((((`paper` join `mapping` on((`paper`.`id_paper` = `mapping`.`id_paper`))) left join `taxonomy_relation` `rel1` on((`rel1`.`id_dest_attribute` = `mapping`.`id_attribute`))) left join `taxonomy_relation` `rel2` on((`rel2`.`id_dest_attribute` = `rel1`.`id_src_attribute`))) left join `taxonomy_relation` `rel3` on((`rel3`.`id_dest_attribute` = `rel2`.`id_src_attribute`))) where (`rel3`.`id_src_attribute` is not null) */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `paper_merged_attributes` +-- + +/*!50001 DROP VIEW IF EXISTS `paper_merged_attributes`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8 */; +/*!50001 SET character_set_results = utf8 */; +/*!50001 SET collation_connection = utf8_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ +/*!50001 VIEW `paper_merged_attributes` AS select distinct `paper_attribute`.`id_taxonomy` AS `id_taxonomy`,`paper_attribute`.`id_paper` AS `id_paper`,`paper_attribute`.`citation` AS `citation`,`paper_attribute`.`bib` AS `bib`,`att_table`.`atts` AS `atts`,`att_table`.`leaf_atts` AS `leaf_atts` from (`classification`.`paper_attribute` join (select `a`.`id_paper` AS `id_paper`,group_concat(concat(`a`.`text_attribute`) separator ',') AS `atts`,group_concat(concat(`a`.`leaf_attribute`) separator ',') AS `leaf_atts` from (select `paper_attribute`.`id_paper` AS `id_paper`,`paper_attribute`.`id_attribute` AS `id_attribute`,`paper_attribute`.`text_attribute` AS `text_attribute`,`paper_attribute`.`leaf_attribute` AS `leaf_attribute` from `classification`.`paper_attribute` order by `paper_attribute`.`id_attribute`) `a` group by `a`.`id_paper`) `att_table` on((`att_table`.`id_paper` = `paper_attribute`.`id_paper`))) */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `unique_articles_view` +-- + +/*!50001 DROP VIEW IF EXISTS `unique_articles_view`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8 */; +/*!50001 SET character_set_results = utf8 */; +/*!50001 SET collation_connection = utf8_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ +/*!50001 VIEW `unique_articles_view` AS select `distict_articles`.`ArticleId` AS `ArticleId`,`distict_articles`.`Title` AS `Title`,`distict_articles`.`year` AS `year`,`distict_articles`.`cited_by` AS `cited_by`,`distict_articles`.`Keywords` AS `Keywords`,`distict_articles`.`Abstract` AS `Abstract`,`distict_articles`.`Journal` AS `Journal`,`distict_articles`.`ResearchId` AS `ResearchId`,`distict_articles`.`Authors` AS `Authors`,`distict_articles`.`File` AS `File`,`distict_articles`.`Source` AS `Source` from (select max(`a`.`ArticleId`) AS `ArticleId`,`a`.`Title` AS `Title`,max(cast(`a`.`year` as unsigned)) AS `year`,max(cast(`a`.`cited_by` as unsigned)) AS `cited_by`,max(`a`.`Keywords`) AS `Keywords`,max(`a`.`Abstract`) AS `Abstract`,max(`a`.`Journal`) AS `Journal`,`a`.`ResearchId` AS `ResearchId`,max(`a`.`Authors`) AS `Authors`,min(`a`.`File`) AS `File`,max(`a`.`Source`) AS `Source`,max(`a`.`Enabled`) AS `Enabled` from `classification`.`articles` `a` group by `a`.`Title`,`a`.`ResearchId`) `distict_articles` */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2018-01-24 16:47:00 diff --git a/SQLSchema/dumps/28_01_02_dump.sql b/SQLSchema/dumps/28_01_02_dump.sql new file mode 100644 index 0000000..fe985aa --- /dev/null +++ b/SQLSchema/dumps/28_01_02_dump.sql @@ -0,0 +1,494 @@ +-- MySQL dump 10.13 Distrib 5.7.17, for Win64 (x86_64) +-- +-- Host: 127.0.0.1 Database: classification +-- ------------------------------------------------------ +-- Server version 5.7.20-log + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `allchildrenperattribute` +-- + +DROP TABLE IF EXISTS `allchildrenperattribute`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `allchildrenperattribute` ( + `id_attribute` int(10) unsigned NOT NULL, + `id_taxonomy` int(11) unsigned NOT NULL, + `text` varchar(50) NOT NULL, + `children` longtext, + PRIMARY KEY (`id_attribute`), + UNIQUE KEY `allchildrenperattribute_id_attribute_UNIQUE` (`id_attribute`), + KEY `allchildrenperattribute_id_taxonomy_foreign` (`id_taxonomy`), + CONSTRAINT `allchildrenperattribute_id_taxonomy_foreign` FOREIGN KEY (`id_taxonomy`) REFERENCES `taxonomy` (`id_taxonomy`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `allchildrenperattribute` +-- + +LOCK TABLES `allchildrenperattribute` WRITE; +/*!40000 ALTER TABLE `allchildrenperattribute` DISABLE KEYS */; +INSERT INTO `allchildrenperattribute` VALUES (1,1,'Integrity Protection Assets','1'),(2,1,'Behavior','2'),(3,1,'Data','3'),(4,1,'Data and behavior','4'),(5,1,'Representation','5,6,7,8,9,10,11,13,12'),(6,1,'Static','6'),(7,1,'In memory','7,9,10'),(8,1,'In execution','8,11,13,12'),(9,1,'Code invariants','9'),(10,1,'Data invariants','10'),(11,1,'Trace','11,12'),(12,1,'Timed trace','12'),(13,1,'HW counters','13'),(14,1,'Granularity','14,15,17,18,19,95'),(15,1,'Instructions','15'),(16,1,'BB','16'),(17,1,'Function','17'),(18,1,'Slice','18'),(19,1,'Application','19'),(20,1,'Lifecycle activity','20,21,22,23,24,25,94'),(21,1,'Pre-compile','21'),(22,1,'Compile','22'),(23,1,'Post-compile','23'),(24,1,'Load','24'),(25,1,'Run','25'),(26,1,'Not root','26'),(27,1,'Attack','27,28,29,30,31,78'),(28,1,'Binary ','28'),(29,1,'Process memory','29'),(30,1,'Runtime data','30'),(31,1,'Control flow','31'),(32,1,'Measure','32,33,34,35,38,41,44,50,57,62,67,36,37,39,42,43,45,46,47,48,49,51,52,53,54,55,58,59,60,61,63,64,65,68,69,70,71,89,90,91,92'),(33,1,'Local','33'),(34,1,'Remote','34'),(35,1,'Monitor','35,36,37'),(36,1,'State inspection','36'),(37,1,'Introspection','37'),(38,1,'Response','38,39,92'),(39,1,'Proactive','39'),(40,1,'Postmortem','40'),(41,1,'Transformation','41,42,43'),(42,1,'Manual','42'),(43,1,'Automatic','43'),(44,1,'Check','44,45,46,47,48,49'),(45,1,'Checksum','45'),(46,1,'Signature','46'),(47,1,'Equation eval','47'),(48,1,'Majority vote','48'),(49,1,'Access control','49'),(50,1,'Hardening','50,51,52,53,54,55,91'),(51,1,'Cyclic checks','51'),(52,1,'Mutation','52'),(53,1,'Code concealment','53'),(54,1,'Cloning','54'),(55,1,'Layered interpretation','55'),(56,1,'Block chain','56'),(57,1,'Overhead','57,58,59,60,61'),(58,1,'Fair','58'),(59,1,'Medium','59'),(60,1,'High','60'),(61,1,'N/A','61'),(62,1,'Trust anchor','62,63,64,65,71,89'),(63,1,'TPM','63'),(64,1,'SGX','64'),(65,1,'Other','65'),(66,1,'None','66'),(67,1,'Protection level','67,68,69,70,90'),(68,1,'Internal','68'),(69,1,'External','69'),(70,1,'Hypervisor','70'),(71,1,'Software','71'),(72,1,'Reverse engineering','72,27,73,80,84,26,28,29,30,31,78,79,81,82,83,85,86,87,88'),(73,1,'Attacker','73,26'),(78,1,'Call interposition','78'),(79,1,'Disassembler','79'),(80,1,'Tools','80,79,81,82,83'),(81,1,'Debugger','81'),(82,1,'Tracer','82'),(83,1,'Emulator','83'),(84,1,'Discovery','84,85,86,87,88'),(85,1,'Pattern matching','85'),(86,1,'Taint analysis','86'),(87,1,'Graph-based analysis','87'),(88,1,'Symbolic execution','88'),(89,1,'Dongle','89'),(90,1,'Self-check','90'),(91,1,'Hash chain','91'),(92,1,'Reactive','92'),(93,1,'Asset','93,2,3,4'),(94,1,'Link','94'),(95,1,'Basic block','95'); +/*!40000 ALTER TABLE `allchildrenperattribute` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `allparentsperattribute` +-- + +DROP TABLE IF EXISTS `allparentsperattribute`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `allparentsperattribute` ( + `id_attribute` int(11) unsigned NOT NULL, + `id_taxonomy` int(11) unsigned NOT NULL, + `text` varchar(50) NOT NULL, + `parents` longtext, + PRIMARY KEY (`id_attribute`), + UNIQUE KEY `allparentsperattribute_id_attribute_UNIQUE` (`id_attribute`), + KEY `allparentsperattribute_id_taxonomy_foreign` (`id_taxonomy`), + CONSTRAINT `allparentsperattribute_id_taxonomy_foreign` FOREIGN KEY (`id_taxonomy`) REFERENCES `taxonomy` (`id_taxonomy`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `allparentsperattribute` +-- + +LOCK TABLES `allparentsperattribute` WRITE; +/*!40000 ALTER TABLE `allparentsperattribute` DISABLE KEYS */; +INSERT INTO `allparentsperattribute` VALUES (1,1,'Integrity Protection Assets',''),(2,1,'Behavior','Asset'),(3,1,'Data','Asset'),(4,1,'Data and behavior','Asset'),(5,1,'Representation',''),(6,1,'Static','Representation'),(7,1,'In memory','Representation'),(8,1,'In execution','Representation'),(9,1,'Code invariants','In memory,Representation'),(10,1,'Data invariants','In memory,Representation'),(11,1,'Trace','In execution,Representation'),(12,1,'Timed trace','Trace,In execution,Representation'),(13,1,'HW counters','In execution,Representation'),(14,1,'Granularity',''),(15,1,'Instructions','Granularity'),(16,1,'BB',''),(17,1,'Function','Granularity'),(18,1,'Slice','Granularity'),(19,1,'Application','Granularity'),(20,1,'Lifecycle activity',''),(21,1,'Pre-compile','Lifecycle activity'),(22,1,'Compile','Lifecycle activity'),(23,1,'Post-compile','Lifecycle activity'),(24,1,'Load','Lifecycle activity'),(25,1,'Run','Lifecycle activity'),(26,1,'Not root','Attacker,Reverse engineering'),(27,1,'Attack','Reverse engineering'),(28,1,'Binary ','Attack,Reverse engineering'),(29,1,'Process memory','Attack,Reverse engineering'),(30,1,'Runtime data','Attack,Reverse engineering'),(31,1,'Control flow','Attack,Reverse engineering'),(32,1,'Measure',''),(33,1,'Local','Measure'),(34,1,'Remote','Measure'),(35,1,'Monitor','Measure'),(36,1,'State inspection','Monitor,Measure'),(37,1,'Introspection','Monitor,Measure'),(38,1,'Response','Measure'),(39,1,'Proactive','Response,Measure'),(40,1,'Postmortem',''),(41,1,'Transformation','Measure'),(42,1,'Manual','Transformation,Measure'),(43,1,'Automatic','Transformation,Measure'),(44,1,'Check','Measure'),(45,1,'Checksum','Check,Measure'),(46,1,'Signature','Check,Measure'),(47,1,'Equation eval','Check,Measure'),(48,1,'Majority vote','Check,Measure'),(49,1,'Access control','Check,Measure'),(50,1,'Hardening','Measure'),(51,1,'Cyclic checks','Hardening,Measure'),(52,1,'Mutation','Hardening,Measure'),(53,1,'Code concealment','Hardening,Measure'),(54,1,'Cloning','Hardening,Measure'),(55,1,'Layered interpretation','Hardening,Measure'),(56,1,'Block chain',''),(57,1,'Overhead','Measure'),(58,1,'Fair','Overhead,Measure'),(59,1,'Medium','Overhead,Measure'),(60,1,'High','Overhead,Measure'),(61,1,'N/A','Overhead,Measure'),(62,1,'Trust anchor','Measure'),(63,1,'TPM','Trust anchor,Measure'),(64,1,'SGX','Trust anchor,Measure'),(65,1,'Other','Trust anchor,Measure'),(66,1,'None',''),(67,1,'Protection level','Measure'),(68,1,'Internal','Protection level,Measure'),(69,1,'External','Protection level,Measure'),(70,1,'Hypervisor','Protection level,Measure'),(71,1,'Software','Trust anchor,Measure'),(72,1,'Reverse engineering',''),(73,1,'Attacker','Reverse engineering'),(78,1,'Call interposition','Attack,Reverse engineering'),(79,1,'Disassembler','Tools,Reverse engineering'),(80,1,'Tools','Reverse engineering'),(81,1,'Debugger','Tools,Reverse engineering'),(82,1,'Tracer','Tools,Reverse engineering'),(83,1,'Emulator','Tools,Reverse engineering'),(84,1,'Discovery','Reverse engineering'),(85,1,'Pattern matching','Discovery,Reverse engineering'),(86,1,'Taint analysis','Discovery,Reverse engineering'),(87,1,'Graph-based analysis','Discovery,Reverse engineering'),(88,1,'Symbolic execution','Discovery,Reverse engineering'),(89,1,'Dongle','Trust anchor,Measure'),(90,1,'Self-check','Protection level,Measure'),(91,1,'Hash chain','Hardening,Measure'),(92,1,'Reactive','Response,Measure'),(93,1,'Asset',''),(94,1,'Link','Lifecycle activity'),(95,1,'Basic block','Granularity'); +/*!40000 ALTER TABLE `allparentsperattribute` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `attribute` +-- + +DROP TABLE IF EXISTS `attribute`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `attribute` ( + `id_attribute` int(11) unsigned NOT NULL AUTO_INCREMENT, + `text` varchar(50) NOT NULL, + `x` varchar(50) DEFAULT '', + `y` varchar(50) DEFAULT '', + `xMajor` varchar(50) DEFAULT '', + `yMajor` varchar(50) DEFAULT '', + `x3D` varchar(50) DEFAULT '', + `y3D` varchar(50) DEFAULT '', + `z3D` varchar(50) DEFAULT '', + `xMajor3D` varchar(50) DEFAULT '', + `yMajor3D` varchar(50) DEFAULT '', + `zMajor3D` varchar(50) DEFAULT '', + `major` tinyint(1) DEFAULT '0', + `id_taxonomy` int(11) unsigned NOT NULL, + `synonyms` varchar(500) DEFAULT '', + PRIMARY KEY (`id_attribute`), + UNIQUE KEY `id_attribute_UNIQUE` (`id_attribute`), + UNIQUE KEY `attribute_text_UNIQUE` (`text`,`id_taxonomy`), + KEY `attribute_id_taxonomy_foreign` (`id_taxonomy`), + CONSTRAINT `attribute_id_taxonomy_foreign` FOREIGN KEY (`id_taxonomy`) REFERENCES `taxonomy` (`id_taxonomy`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=112 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `attribute` +-- + +LOCK TABLES `attribute` WRITE; +/*!40000 ALTER TABLE `attribute` DISABLE KEYS */; +INSERT INTO `attribute` VALUES (1,'Integrity Protection Assets','1539.6977208359122','828.406523846749',NULL,NULL,'2982.356969925021','-2285.019961769441','-864.2180305371212',NULL,NULL,NULL,0,1,''),(2,'Behavior','362.03679880998527','70.61697033346249',NULL,NULL,'-4105.754594713023','2970.805490853027','520.6240466093806',NULL,NULL,NULL,0,1,''),(3,'Data','360.50599492453625','156.00928187629017',NULL,NULL,'-5002.920658104225','2416.7437462541925','-667.9458699193781',NULL,NULL,NULL,0,1,''),(4,'Data and behavior','363.56267226780255','233.77468381901463',NULL,NULL,'-3116.814622838809','2150.293659766716','-739.4750876543186',NULL,NULL,NULL,0,1,''),(5,'Representation','328.44175759223543','432.6782494091842','-706.6576875701488','-609.3344062416174','-5631.8223863130315','-700.1480012803709','232.8933266727454','-2297.307274575899','1861.2451999882087','251.40799472895628',1,1,''),(6,'Static','1020.112697296182','169.14810291408673',NULL,NULL,'-753.8117777226684','2672.900536068831','55.5562648093229',NULL,NULL,NULL,0,1,''),(7,'In memory','1035.9341191918215','319.5410718472651',NULL,NULL,'-859.8475232068192','1419.0143417630459','1049.9932319804325',NULL,NULL,NULL,0,1,''),(8,'In execution','1036.422207754128','515.8949411042306',NULL,NULL,'-525.1480844836708','-997.8604194722125','-515.3976828985001',NULL,NULL,NULL,0,1,''),(9,'Code invariants','1473.5597140112222','232.10834584752325',NULL,NULL,'206.51897236227046','1964.5856119335288','1212.8380148609385',NULL,NULL,NULL,0,1,''),(10,'Data invariants','1475.0087028973157','391.5997213615837',NULL,NULL,'1584.2972884243895','1107.9452114293008','596.1960385203179',NULL,NULL,NULL,0,1,''),(11,'Trace','1476.9101394936774','659.8362915899118',NULL,NULL,'1414.656335785149','-1776.66513018276','-191.61968505004643',NULL,NULL,NULL,0,1,''),(12,'Timed trace','1652.9485817795407','661.3853305327655',NULL,NULL,'2706.2310058466305','-505.4745310046228','-577.2241671516888',NULL,NULL,NULL,0,1,''),(13,'HW counters','1477.121572065918','520.1881886758251',NULL,NULL,'1194.9742695396158','65.74160947273646','-137.41344005045494',NULL,NULL,NULL,0,1,''),(14,'Granularity','327.83669869646576','674.855512732843','-686.6596563047685','-281.3360728952638','-4849.209350403896','-1872.1017791288107','20.015773720053858','2750.4431883226216','-2948.6211902334258','-502.6910289016656',1,1,''),(15,'Instructions','593.8761270678542','600.541071847265',NULL,NULL,'-3677.00212371179','-2059.3275936855316','-1231.9318958901586',NULL,NULL,NULL,0,1,''),(16,'BB','1696.8048303141118','828.2885674277604',NULL,NULL,'2143.4276500237497','-2464.144864036762','-1036.6394584036368',NULL,NULL,NULL,0,1,''),(17,'Function','576.3228150877201','672.3462308565527',NULL,NULL,'-3825.8952008628225','-2536.6896428436626','-495.4057692218644',NULL,NULL,NULL,0,1,''),(18,'Slice','560.9285313738394','752.36643808501',NULL,NULL,'-3435.1692734008243','-2081.4646016536462','1249.2503410645315',NULL,NULL,NULL,0,1,''),(19,'Application','590.1813644885203','825.9356842563209',NULL,NULL,'-3659.547946100021','-2773.817578816789','732.0912311726131',NULL,NULL,NULL,0,1,''),(20,'Lifecycle activity','499.43222543214654','296.8923115428277','-690.6616875388991','-767.670541636393','-4688.243193111236','110.89828167666965','-422.7101612981819','3088.7134093484487','338.8041040030753','-411.428475846131',1,1,''),(21,'Pre-compile','727.983737113648','68.90956051470602',NULL,NULL,'-2098.4675273781886','1903.2747623767602','708.8565788744929',NULL,NULL,NULL,0,1,''),(22,'Compile','708.0208646188082','143.38072880030973',NULL,NULL,'-2060.668061605252','1333.5185979024836','700.4689784693802',NULL,NULL,NULL,0,1,''),(23,'Post-compile','733.842286514448','211.20478025735315',NULL,NULL,'-2417.367759420388','1072.6497859901137','-40.15143208390509',NULL,NULL,NULL,0,1,''),(24,'Load','693.7813361339005','366.75480528573263',NULL,NULL,'-2148.2653425899725','-308.27053657036','59.54550985321248',NULL,NULL,NULL,0,1,''),(25,'Run','695.4851303057279','438.1278956856295',NULL,NULL,'-2078.8620483112054','-1015.7537643835454','82.76219647055268',NULL,NULL,NULL,0,1,''),(26,'Not root','474.7266028589015','454.7732747885879','','',NULL,NULL,NULL,NULL,NULL,NULL,0,1,''),(27,'Attack','959.3360043758585','256.6619190499381','-323.9978125170894','-482.6650312627768','-560.3840244102373','102.1552480434342','-956.7462882957757','-1043.6553421224908','633.6478862886546','4.547473508864641e-13',1,1,''),(28,'Binary ','813.3219621018261','142.03790265880497',NULL,NULL,'-669.670563198074','778.7013671716411','-1338.7442185818304',NULL,NULL,NULL,0,1,''),(29,'Process memory','959.7840594430213','141.03790265880497',NULL,NULL,'-94.03937291157544','-1336.7099182805853','1261.323300421252',NULL,NULL,NULL,0,1,''),(30,'Runtime data','1103.0008419920632','139.4152452627283',NULL,NULL,'-1286.5345978331447','-12.458919208386305','-1284.887427267443',NULL,NULL,NULL,0,1,''),(31,'Control flow','1307.8590227685681','140.11370797641482',NULL,NULL,'613.0758806397226','625.6623474191132','-1220.5401846641005',NULL,NULL,NULL,0,1,''),(32,'Measure','822.3942993388207','398.0985353391625','-987.9939687971188','-766.6627500305989','-1540.1203017455578','164.35563430566253','519.8406371279184','-2885.666024652709','-362.649687924208','366.3875195434952',1,1,''),(33,'Local','1058.8113585010585','322.5760338996515',NULL,NULL,'414.01249022013945','650.3924349711187','217.48400016653432',NULL,NULL,NULL,0,1,''),(34,'Remote','1059.2995836339228','397.4551551031491',NULL,NULL,'491.74632812015005','97.3780742973924','-123.8359011677826',NULL,NULL,NULL,0,1,''),(35,'Monitor','397.4089459471961','325.089115445454',NULL,NULL,'-3569.5793861554353','1840.7840486857215','360.30867064656013',NULL,NULL,NULL,0,1,''),(36,'State inspection','114.41025262586263','125.35572945139711',NULL,NULL,'-5341.030340064095','2669.721222390146','-724.4818029428425',NULL,NULL,NULL,0,1,''),(37,'Introspection','111.15191089189352','325.71535517567395',NULL,NULL,'-4970.62799052557','1395.0657686414263','-235.261091445313',NULL,NULL,NULL,0,1,''),(38,'Response','401.9031877055812','205.79764502657298',NULL,NULL,'-2593.6039171763614','2544.8218260668036','-759.650458124624',NULL,NULL,NULL,0,1,''),(39,'Proactive','279.9316064436389','104.33039620209587',NULL,NULL,'-3372.016016595666','3430.1408603523755','-464.66544817688964',NULL,NULL,NULL,0,1,''),(40,'Postmortem','1771.8697013097888','610.6056002594439',NULL,NULL,'-5498.445586366219','-3168.741296759451','-466.7710346363615',NULL,NULL,NULL,0,1,''),(41,'Transformation','579.4856117755306','200.08131819475398',NULL,NULL,'-674.7676646465982','2349.977089886205','-139.82051733421395',NULL,NULL,NULL,0,1,''),(42,'Manual','528.6373636104923','94.95101950454278',NULL,NULL,'-921.5490625752307','3398.8951229358577','-479.87542564422074',NULL,NULL,NULL,0,1,''),(43,'Automatic','646.6729465958057','94.38822513286442',NULL,NULL,'127.94846090778958','3219.9382164220856','20.700303685751805',NULL,NULL,NULL,0,1,''),(44,'Check','822.6077972507001','214.9154365192295',NULL,NULL,'1837.275949199416','2425.3707306235287','-191.4718377402669',NULL,NULL,NULL,0,1,''),(45,'Checksum','771.7595490856617','92.67969555174551',NULL,NULL,'1281.3745416615216','2879.8359194492364','723.2800076185517',NULL,NULL,NULL,0,1,''),(46,'Signature','888.2121912332129','91.9711659706266',NULL,NULL,'2246.4861157601076','2810.5915954973075','942.1178163301893',NULL,NULL,NULL,0,1,''),(47,'Equation eval','1038.916010867478','91.97116597062654',NULL,NULL,'4753.967841269285','3722.180629086103','-665.6491212581645',NULL,NULL,NULL,0,1,''),(48,'Majority vote','1218.5593911034905','91.97116597062654',NULL,NULL,'5182.609118082028','2736.231141284869','551.5771540960122',NULL,NULL,NULL,0,1,''),(49,'Access control','1390.9515938527904','92.49366741013745',NULL,NULL,'6003.849502008718','2344.8187915623075','899.7533214767686',NULL,NULL,NULL,0,1,''),(50,'Hardening','1054.1773981587537','233.30455196468347',NULL,NULL,'3255.87157917825','840.7435575967074','88.59670625233503',NULL,NULL,NULL,0,1,''),(51,'Cyclic checks','1554.377556140925','237.23018137981813',NULL,NULL,'5319.912403964804','1727.0256279508856','111.736167113791',NULL,NULL,NULL,0,1,''),(52,'Mutation','1559.594457320991','315.1185238230755',NULL,NULL,'4730.551295434692','949.487537634357','746.8857972408391',NULL,NULL,NULL,0,1,''),(53,'Code concealment','1569.0826824538556','405.01779149265667',NULL,NULL,'5356.577880976774','409.08695466782','279.84508938293175',NULL,NULL,NULL,0,1,''),(54,'Cloning','1572.591054052804','495.4798535339163',NULL,NULL,'5418.041195227526','-113.16968086050889','220.2466009992163',NULL,NULL,NULL,0,1,''),(55,'Layered interpretation','1596.5637433394631','572.0876507846166',NULL,NULL,'5193.809046312347','-656.3386097542594','748.8403578656307',NULL,NULL,NULL,0,1,''),(56,'Block chain','1771.4704534387163','673.421241952652',NULL,NULL,'-6603.287282993331','-3590.335405994925','-415.31175748802025',NULL,NULL,NULL,0,1,''),(57,'Overhead','392.70302972341','398.33411832447575','-989.3283021226397','-621.3320208435873','-3111.5808170396704','-114.66231598591185','866.8210719505937','164.35378747602084','1134.055950173481','-753.9175926735629',1,1,''),(58,'Fair','207.52692883344275','644.5330491564459',NULL,NULL,'-5469.649462165422','-1106.5081701160102','688.9308524708213',NULL,NULL,NULL,0,1,''),(59,'Medium','295.36666614110965','645.6617658754263',NULL,NULL,'-4962.526245694544','-1110.5939508533318','750.2335288606791',NULL,NULL,NULL,0,1,''),(60,'High','389.8140466819174','645.4469216878636',NULL,NULL,'-4466.411357115115','-1226.125726118128','787.2822971600735',NULL,NULL,NULL,0,1,''),(61,'N/A','462.1906142580392','645.0880462774242',NULL,NULL,'-3918.0005729833483','-1244.1277199837466','842.8111976052214',NULL,NULL,NULL,0,1,''),(62,'Trust anchor','823.4620620412592','517.1450028790218','-982.6596771379395','-383.9977500175782','-1852.7437633603195','-1111.1540361743937','-97.31951956107605','-1496.7187517790915','-1076.584406805348','1016.42713987056',1,1,''),(63,'TPM','909.5379379587403','642.5063325898627',NULL,NULL,'-1184.9044012773659','-1789.3336295065346','572.4938645051229',NULL,NULL,NULL,0,1,''),(64,'SGX','980.3626363895075','643.5063325898627',NULL,NULL,'-760.1823260827139','-1683.7777345675374','-319.8366899296602',NULL,NULL,NULL,0,1,''),(65,'Other','1052.3129235636318','646.3605973804222',NULL,NULL,'-294.31717100375323','-1603.1064742755818','528.323654467245',NULL,NULL,NULL,0,1,''),(66,'None','1685.7202051212796','673.8820213167838',NULL,NULL,'-8858.024127630688','-3467.2103127353244','-1518.0462141048988',NULL,NULL,NULL,0,1,''),(67,'Protection level','1270.8615880947477','521.2101522241273','-994.6595208891601','-281.33211459285496','996.9534648630378','-1705.7452487059247','512.4409064068868','-2534.5247518544247','256.0799143751864','-203.61227561712337',1,1,''),(68,'Internal','1452.7375791730985','676.6296638716772',NULL,NULL,'-7748.085581592561','-3476.806033232715','-1364.4036208165571',NULL,NULL,NULL,0,1,''),(69,'External','1343.6705318924207','673.6840866444072',NULL,NULL,'2529.0218352225365','-3007.2567771414238','285.6644084838954',NULL,NULL,NULL,0,1,''),(70,'Hypervisor','1203.9431625238847','673.7404915861159',NULL,NULL,'1583.1531063878915','-2645.529174665351','703.9929349935978',NULL,NULL,NULL,0,1,''),(71,'Software','704.4976450265727','642.7900057580437',NULL,NULL,'-2797.358495533419','-2152.495606294804','-225.68108123829825',NULL,NULL,NULL,0,1,''),(72,'Reverse engineering','475.2492122594372','254.81217069010142','-322.6662604198401','-776.0002187482914','-150.57370347755636','-715.1167132090086','-15.635084340648746','-197.80873206507522','-917.9333817485949','326.9834909860764',1,1,''),(73,'Attacker','475.12476237623423','368.1895132940248','-326.9977708507478','-283.333645830892','1144.1859704610501','240.24312276877822','-194.02308367976838','1024.0980845461536','-88.9569907091659','-1366.4392732671088',1,1,''),(78,'Call interposition','1150.347996774703','256.8145864563514',NULL,NULL,'-614.6855742024392','69.78717798899197','172.16880717031245',NULL,NULL,NULL,0,1,''),(79,'Disassembler','119.12950183558092','125.83901894908689',NULL,NULL,'-1995.7698478480065','-1269.2143260974635','-850.0941495725112',NULL,NULL,NULL,0,1,''),(80,'Tools','201.9306181258629','254.34923135684323','-325.33287500358057','-623.9985312614746','-1164.2709035330786','-836.8747820341652','-862.5478927977981','-1342.1191295012839','-114.96057988172356','-15.715835268157775',1,1,''),(81,'Debugger','241.45788738087992','128.4616763451635',NULL,NULL,'-898.1664589407969','-1951.0450139459258','-746.8683106090873',NULL,NULL,NULL,0,1,''),(82,'Tracer','340.07987666203144','127.12817980870784',NULL,NULL,'-1551.0856659947635','-478.5743355733096','-1242.1773531332879',NULL,NULL,NULL,0,1,''),(83,'Emulator','201.89365167201254','367.6398348095756',NULL,NULL,'-1150.7311957570096','-1400.1755468659949','217.24970035778017',NULL,NULL,NULL,0,1,''),(84,'Discovery','728.1518947222971','328.72709096376013','-320.002354148275','-889.3320416767579','134.6578654717242','-290.1059399368047','911.8235960463293','-107.54154854705472','-1454.515798633701','553.3090234561244',1,1,''),(85,'Pattern matching','728.5292554630064','453.4778093963763',NULL,NULL,'1037.20466085537','-142.0301624518263','1259.2820528498744',NULL,NULL,NULL,0,1,''),(86,'Taint analysis','919.9380630792848','451.93938973457784',NULL,NULL,'647.4909578714954','-571.3963813086439','1710.4840235215438',NULL,NULL,NULL,0,1,''),(87,'Graph-based analysis','1111.657682390608','453.1489477500765',NULL,NULL,'696.823432627275','-1526.425663903857','1189.8850144020796',NULL,NULL,NULL,0,1,''),(88,'Symbolic execution','1334.992734564465','451.1965639504301',NULL,NULL,'662.2672080618793','-1189.9103668925495','887.5497529647132',NULL,NULL,NULL,0,1,''),(89,'Dongle','823.9502871741241','643.352800129722',NULL,NULL,'-1758.2619761800556','-1832.5148037505676','517.4632417765356',NULL,NULL,NULL,0,1,''),(90,'Self-check','1567.733584648006','676.368986962789',NULL,NULL,'2254.929586909267','-2091.1030565912292','640.2494531206704',NULL,NULL,NULL,0,1,''),(91,'Hash chain','1550.609501237264','159.10961673256747',NULL,NULL,'5428.823081049158','-1392.7422049872685','622.1884914602401',NULL,NULL,NULL,0,1,''),(92,'Reactive','401.9542072101243','101.19895170523972',NULL,NULL,'-2156.9317741090754','3388.5632998016813','29.848118994063952',NULL,NULL,NULL,0,1,''),(93,'Asset','99.22342242131162','154.6749624574304','-686.6576250706369','-890.6693853954267','-4808.952804641889','1030.5020433257075','5.0788317295755405','3129.4424613034453','-1133.9728517827305','-488.9199597681988',1,1,''),(94,'Link','693.5984849922603','296.93075382868955',NULL,NULL,'-2652.1505220442427','412.8804880622755','131.98179481604484',NULL,NULL,NULL,0,1,''),(95,'Basic block','589.3599425928796','523.6192711996905',NULL,NULL,'-5634.276242050955','-2183.7509211360775','698.4873866131952',NULL,NULL,NULL,0,1,''); +/*!40000 ALTER TABLE `attribute` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `dimension` +-- + +DROP TABLE IF EXISTS `dimension`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `dimension` ( + `id_dimension` int(11) unsigned NOT NULL AUTO_INCREMENT, + `text` varchar(50) NOT NULL, + `x` varchar(50) DEFAULT '', + `y` varchar(50) DEFAULT '', + `xMajor` varchar(50) DEFAULT '', + `yMajor` varchar(50) DEFAULT '', + `id_taxonomy` int(11) unsigned NOT NULL, + PRIMARY KEY (`id_dimension`), + UNIQUE KEY `id_dimension_UNIQUE` (`id_dimension`), + UNIQUE KEY `dimension_text_UNIQUE` (`text`,`id_taxonomy`), + KEY `dimension_id_taxonomy_foreign` (`id_taxonomy`), + CONSTRAINT `dimension_id_taxonomy_foreign` FOREIGN KEY (`id_taxonomy`) REFERENCES `taxonomy` (`id_taxonomy`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `dimension` +-- + +LOCK TABLES `dimension` WRITE; +/*!40000 ALTER TABLE `dimension` DISABLE KEYS */; +INSERT INTO `dimension` VALUES (1,'System view','','','','',1),(2,'Attack view','','','','',1),(3,'Defense view','','','','',1),(4,'Interdimensional view','','','','',1); +/*!40000 ALTER TABLE `dimension` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `mapping` +-- + +DROP TABLE IF EXISTS `mapping`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `mapping` ( + `id_mapping` int(10) unsigned NOT NULL AUTO_INCREMENT, + `id_paper` int(11) unsigned NOT NULL, + `id_attribute` int(11) unsigned NOT NULL, + `occurrenceCount` int(20) DEFAULT '1', + PRIMARY KEY (`id_paper`,`id_attribute`), + UNIQUE KEY `id_mapping_UNIQUE` (`id_mapping`), + KEY `mapping_id_attribute_foreign` (`id_attribute`), + KEY `mapping_id_mapping` (`id_mapping`), + CONSTRAINT `mapping_id_attribute_foreign` FOREIGN KEY (`id_attribute`) REFERENCES `attribute` (`id_attribute`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=678 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `mapping` +-- + +LOCK TABLES `mapping` WRITE; +/*!40000 ALTER TABLE `mapping` DISABLE KEYS */; +INSERT INTO `mapping` VALUES (1,1,2,1),(87,1,11,1),(103,1,15,1),(166,1,23,1),(199,1,26,1),(255,1,31,1),(265,1,33,1),(314,1,36,1),(360,1,39,1),(441,1,43,1),(531,1,58,1),(588,1,66,1),(628,1,68,1),(2,2,2,1),(62,2,9,1),(107,2,16,1),(167,2,23,1),(225,2,29,1),(266,2,33,1),(338,2,37,1),(361,2,39,1),(409,2,42,1),(458,2,45,1),(478,2,46,1),(503,2,53,1),(560,2,61,1),(589,2,66,1),(629,2,68,1),(3,3,2,1),(63,3,9,1),(108,3,16,1),(168,3,23,1),(201,3,26,1),(226,3,29,1),(268,3,33,1),(339,3,37,1),(363,3,39,1),(442,3,43,1),(459,3,45,1),(495,3,51,1),(505,3,53,1),(547,3,59,1),(591,3,66,1),(631,3,68,1),(4,4,2,1),(41,4,3,1),(51,4,4,1),(64,4,9,1),(137,4,19,1),(169,4,23,1),(227,4,29,1),(300,4,34,1),(340,4,37,1),(364,4,39,1),(443,4,43,1),(491,4,49,1),(511,4,55,1),(532,4,58,1),(585,4,64,1),(651,4,69,1),(5,5,2,1),(89,5,11,1),(105,5,15,1),(257,5,31,1),(269,5,33,1),(316,5,36,1),(365,5,39,1),(444,5,43,1),(561,5,61,1),(592,5,66,1),(652,5,69,1),(6,6,2,1),(42,6,3,1),(52,6,4,1),(65,6,9,1),(116,6,17,1),(170,6,23,1),(202,6,26,1),(228,6,29,1),(270,6,33,1),(317,6,36,1),(366,6,39,1),(445,6,43,1),(492,6,49,1),(512,6,55,1),(522,6,56,1),(553,6,60,1),(586,6,65,1),(671,6,70,1),(7,7,2,1),(54,7,6,1),(138,7,19,1),(171,7,23,1),(205,7,26,1),(218,7,28,1),(273,7,33,1),(341,7,37,1),(369,7,39,1),(412,7,42,1),(479,7,46,1),(564,7,61,1),(595,7,66,1),(653,7,69,1),(8,8,2,1),(66,8,9,1),(109,8,16,1),(172,8,23,1),(229,8,29,1),(274,8,33,1),(342,8,37,1),(370,8,39,1),(413,8,42,1),(460,8,45,1),(496,8,51,1),(554,8,60,1),(596,8,66,1),(634,8,68,1),(9,9,2,1),(90,9,11,1),(130,9,18,1),(163,9,22,1),(249,9,30,1),(258,9,31,1),(275,9,33,1),(320,9,36,1),(371,9,39,1),(414,9,42,1),(565,9,61,1),(597,9,66,1),(635,9,68,1),(10,10,2,1),(139,10,19,1),(173,10,23,1),(206,10,26,1),(276,10,33,1),(343,10,37,1),(372,10,39,1),(415,10,42,1),(493,10,49,1),(513,10,55,1),(533,10,58,1),(598,10,66,1),(672,10,70,1),(11,11,2,1),(55,11,6,1),(117,11,17,1),(197,11,25,1),(219,11,28,1),(301,11,34,1),(373,11,39,1),(447,11,43,1),(500,11,52,1),(534,11,58,1),(599,11,66,1),(654,11,69,1),(12,12,2,1),(56,12,6,1),(110,12,16,1),(220,12,28,1),(277,12,33,1),(344,12,37,1),(374,12,39,1),(416,12,42,1),(485,12,48,1),(566,12,61,1),(600,12,66,1),(636,12,68,1),(13,13,2,1),(57,13,6,1),(140,13,19,1),(174,13,23,1),(207,13,26,1),(221,13,28,1),(302,13,34,1),(345,13,37,1),(375,13,39,1),(417,13,42,1),(461,13,45,1),(567,13,61,1),(601,13,66,1),(655,13,69,1),(14,14,2,1),(45,14,3,1),(53,14,4,1),(67,14,9,1),(141,14,19,1),(156,14,21,1),(230,14,29,1),(278,14,33,1),(346,14,37,1),(376,14,39,1),(418,14,42,1),(462,14,45,1),(514,14,55,1),(523,14,56,1),(535,14,58,1),(579,14,63,1),(673,14,70,1),(15,15,2,1),(118,15,17,1),(175,15,23,1),(279,15,33,1),(347,15,37,1),(377,15,39,1),(419,15,42,1),(515,15,55,1),(548,15,59,1),(602,15,66,1),(674,15,70,1),(16,16,2,1),(68,16,9,1),(111,16,16,1),(177,16,23,1),(231,16,29,1),(280,16,33,1),(348,16,37,1),(379,16,39,1),(421,16,42,1),(497,16,51,1),(516,16,55,1),(536,16,58,1),(604,16,66,1),(637,16,68,1),(17,17,2,1),(69,17,9,1),(112,17,16,1),(178,17,23,1),(196,17,24,1),(232,17,29,1),(281,17,33,1),(349,17,37,1),(380,17,39,1),(422,17,42,1),(463,17,45,1),(498,17,51,1),(501,17,52,1),(517,17,55,1),(537,17,58,1),(605,17,66,1),(638,17,68,1),(18,18,2,1),(70,18,9,1),(131,18,18,1),(179,18,23,1),(233,18,29,1),(282,18,33,1),(350,18,37,1),(381,18,39,1),(423,18,42,1),(464,18,45,1),(569,18,61,1),(606,18,66,1),(639,18,68,1),(19,19,2,1),(83,19,10,1),(120,19,17,1),(157,19,21,1),(251,19,30,1),(283,19,33,1),(322,19,36,1),(382,19,39,1),(424,19,42,1),(487,19,48,1),(499,19,51,1),(570,19,61,1),(607,19,66,1),(640,19,68,1),(20,20,2,1),(91,20,11,1),(113,20,16,1),(132,20,18,1),(180,20,23,1),(259,20,31,1),(284,20,33,1),(323,20,36,1),(383,20,39,1),(425,20,42,1),(509,20,54,1),(555,20,60,1),(608,20,66,1),(641,20,68,1),(21,21,2,1),(96,21,12,1),(142,21,19,1),(181,21,23,1),(234,21,29,1),(304,21,34,1),(324,21,36,1),(384,21,39,1),(448,21,43,1),(465,21,45,1),(556,21,60,1),(609,21,66,1),(657,21,69,1),(22,22,2,1),(97,22,12,1),(143,22,19,1),(182,22,23,1),(235,22,29,1),(305,22,34,1),(325,22,36,1),(385,22,39,1),(449,22,43,1),(466,22,45,1),(549,22,59,1),(610,22,66,1),(658,22,69,1),(23,23,2,1),(92,23,11,1),(144,23,19,1),(158,23,21,1),(260,23,31,1),(306,23,34,1),(326,23,36,1),(407,23,40,1),(450,23,43,1),(467,23,45,1),(480,23,46,1),(488,23,48,1),(524,23,56,1),(550,23,59,1),(611,23,66,1),(642,23,68,1),(24,24,2,1),(71,24,9,1),(133,24,18,1),(164,24,22,1),(236,24,29,1),(285,24,33,1),(351,24,37,1),(386,24,39,1),(451,24,43,1),(468,24,45,1),(518,24,55,1),(571,24,61,1),(612,24,66,1),(643,24,68,1),(25,25,2,1),(72,25,9,1),(145,25,19,1),(183,25,23,1),(237,25,29,1),(286,25,33,1),(352,25,37,1),(387,25,39,1),(426,25,42,1),(469,25,45,1),(525,25,56,1),(580,25,63,1),(659,25,69,1),(26,26,2,1),(58,26,6,1),(146,26,19,1),(184,26,23,1),(210,26,26,1),(222,26,28,1),(287,26,33,1),(353,26,37,1),(390,26,39,1),(427,26,42,1),(481,26,46,1),(572,26,61,1),(614,26,66,1),(662,26,69,1),(27,27,2,1),(73,27,9,1),(147,27,19,1),(185,27,23,1),(211,27,26,1),(238,27,29,1),(288,27,33,1),(354,27,37,1),(391,27,39,1),(454,27,43,1),(470,27,45,1),(482,27,46,1),(519,27,55,1),(573,27,61,1),(615,27,66,1),(663,27,69,1),(28,28,2,1),(93,28,11,1),(122,28,17,1),(161,28,21,1),(261,28,31,1),(289,28,33,1),(392,28,39,1),(428,28,42,1),(510,28,54,1),(574,28,61,1),(616,28,66,1),(644,28,68,1),(29,29,2,1),(74,29,9,1),(135,29,18,1),(198,29,25,1),(239,29,29,1),(290,29,33,1),(355,29,37,1),(393,29,39,1),(455,29,43,1),(502,29,52,1),(506,29,53,1),(551,29,59,1),(617,29,66,1),(645,29,68,1),(30,30,2,1),(101,30,13,1),(186,30,23,1),(212,30,26,1),(262,30,31,1),(291,30,33,1),(329,30,36,1),(394,30,39,1),(429,30,42,1),(484,30,47,1),(527,30,56,1),(539,30,58,1),(582,30,63,1),(646,30,68,1),(31,31,2,1),(98,31,12,1),(123,31,17,1),(187,31,23,1),(309,31,34,1),(330,31,36,1),(395,31,39,1),(430,31,42,1),(471,31,45,1),(575,31,61,1),(618,31,66,1),(664,31,69,1),(32,32,2,1),(75,32,9,1),(148,32,19,1),(188,32,23,1),(240,32,29,1),(292,32,33,1),(331,32,36,1),(396,32,39,1),(431,32,42,1),(472,32,45,1),(520,32,55,1),(528,32,56,1),(540,32,58,1),(587,32,65,1),(675,32,70,1),(33,33,2,1),(60,33,6,1),(124,33,17,1),(191,33,23,1),(215,33,26,1),(241,33,29,1),(311,33,34,1),(357,33,37,1),(399,33,39,1),(433,33,42,1),(530,33,56,1),(543,33,58,1),(584,33,63,1),(676,33,70,1),(34,34,2,1),(76,34,9,1),(125,34,17,1),(192,34,23,1),(242,34,29,1),(295,34,33,1),(358,34,37,1),(400,34,39,1),(434,34,42,1),(474,34,45,1),(507,34,53,1),(558,34,60,1),(621,34,66,1),(648,34,68,1),(35,35,2,1),(99,35,12,1),(126,35,17,1),(193,35,23,1),(312,35,34,1),(334,35,36,1),(401,35,39,1),(435,35,42,1),(475,35,45,1),(544,35,58,1),(622,35,66,1),(667,35,69,1),(36,36,2,1),(77,36,9,1),(100,36,12,1),(102,36,13,1),(127,36,17,1),(162,36,21,1),(243,36,29,1),(296,36,33,1),(335,36,36,1),(402,36,39,1),(436,36,42,1),(577,36,61,1),(623,36,66,1),(668,36,69,1),(37,37,2,1),(61,37,6,1),(136,37,18,1),(165,37,22,1),(217,37,26,1),(224,37,28,1),(297,37,33,1),(337,37,36,1),(404,37,39,1),(438,37,42,1),(559,37,60,1),(625,37,66,1),(649,37,68,1),(38,38,2,1),(78,38,9,1),(115,38,16,1),(194,38,23,1),(244,38,29,1),(298,38,33,1),(405,38,39,1),(439,38,42,1),(476,38,45,1),(508,38,53,1),(552,38,59,1),(626,38,66,1),(650,38,68,1),(39,39,2,1),(79,39,9,1),(152,39,19,1),(195,39,23,1),(245,39,29,1),(299,39,33,1),(359,39,37,1),(406,39,39,1),(440,39,42,1),(477,39,45,1),(521,39,55,1),(545,39,58,1),(627,39,66,1),(670,39,69,1),(677,39,70,1),(40,40,3,1),(88,40,11,1),(104,40,15,1),(128,40,18,1),(153,40,21,1),(200,40,26,1),(246,40,30,1),(256,40,31,1),(267,40,33,1),(315,40,36,1),(362,40,39,1),(410,40,42,1),(490,40,49,1),(504,40,53,1),(546,40,59,1),(590,40,66,1),(630,40,68,1),(43,41,3,1),(80,41,10,1),(129,41,18,1),(154,41,21,1),(203,41,26,1),(247,41,30,1),(271,41,33,1),(318,41,36,1),(367,41,39,1),(446,41,43,1),(562,41,61,1),(593,41,66,1),(632,41,68,1),(44,42,3,1),(81,42,10,1),(106,42,15,1),(155,42,21,1),(204,42,26,1),(248,42,30,1),(272,42,33,1),(319,42,36,1),(368,42,39,1),(411,42,42,1),(563,42,61,1),(594,42,66,1),(633,42,68,1),(46,43,3,1),(82,43,10,1),(119,43,17,1),(176,43,23,1),(208,43,26,1),(250,43,30,1),(303,43,34,1),(321,43,36,1),(378,43,39,1),(420,43,42,1),(486,43,48,1),(568,43,61,1),(603,43,66,1),(656,43,69,1),(47,44,3,1),(84,44,10,1),(121,44,17,1),(159,44,21,1),(252,44,30,1),(307,44,34,1),(327,44,36,1),(388,44,39,1),(452,44,43,1),(557,44,60,1),(613,44,66,1),(660,44,69,1),(48,45,3,1),(85,45,10,1),(134,45,18,1),(160,45,21,1),(209,45,26,1),(253,45,30,1),(308,45,34,1),(328,45,36,1),(389,45,39,1),(453,45,43,1),(483,45,47,1),(526,45,56,1),(538,45,58,1),(581,45,63,1),(661,45,69,1),(49,46,3,1),(59,46,6,1),(149,46,19,1),(223,46,28,1),(310,46,34,1),(356,46,37,1),(408,46,40,1),(432,46,42,1),(473,46,45,1),(529,46,56,1),(576,46,61,1),(583,46,63,1),(665,46,69,1),(50,47,3,1),(86,47,10,1),(151,47,19,1),(216,47,26,1),(254,47,30,1),(313,47,34,1),(336,47,36,1),(403,47,39,1),(437,47,42,1),(489,47,48,1),(578,47,61,1),(624,47,66,1),(669,47,69,1),(94,48,11,1),(114,48,16,1),(189,48,23,1),(213,48,26,1),(263,48,31,1),(293,48,33,1),(332,48,36,1),(397,48,39,1),(456,48,43,1),(541,48,58,1),(619,48,66,1),(647,48,68,1),(95,49,11,1),(150,49,19,1),(190,49,23,1),(214,49,26,1),(264,49,31,1),(294,49,33,1),(333,49,36,1),(398,49,39,1),(457,49,43,1),(494,49,49,1),(542,49,58,1),(620,49,66,1),(666,49,69,1); +/*!40000 ALTER TABLE `mapping` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `paper` +-- + +DROP TABLE IF EXISTS `paper`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `paper` ( + `id_paper` int(10) unsigned NOT NULL AUTO_INCREMENT, + `citation` varchar(100) NOT NULL, + `bib` mediumtext, + `referenceCount` int(20) DEFAULT '0', + `author` varchar(500) DEFAULT '', + `keywords` varchar(500) DEFAULT '', + PRIMARY KEY (`id_paper`), + UNIQUE KEY `id_paper_UNIQUE` (`id_paper`) +) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `paper` +-- + +LOCK TABLES `paper` WRITE; +/*!40000 ALTER TABLE `paper` DISABLE KEYS */; +INSERT INTO `paper` VALUES (1,'abadi2005control','{\"author\": \"Abadi, Mart{\\\\\'\\\\i}n and Budiu, Mihai and Erlingsson, Ulfar and Ligatti, Jay\", \"booktitle\": \"Proceedings of the 12th ACM conference on Computer and communications security\", \"title\": \"Control-flow integrity\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2005\", \"organization\": \"ACM\", \"ID\": \"abadi2005control\", \"pages\": \"340--353\"}',5,'',''),(2,'aucsmith1996tamper','{\"isbn\": \"3-540-61996-8\", \"title\": \"Tamper resistant software: An implementation\", \"journal\": \"Proceedings of the First International Workshop on Information Hiding\", \"author\": \"Aucsmith, David\", \"ENTRYTYPE\": \"article\", \"mendeley-groups\": \"Tamperproofing,Tamperproofing/Methods\", \"link\": \"http://link.springer.com/chapter/10.1007/3-540-61996-8{\\\\_}49\", \"year\": \"1996\", \"ID\": \"aucsmith1996tamper\", \"pages\": \"317--333\"}',161,'',''),(3,'banescu2017detecting','{\"doi\": \"10.1145/3029806.3029835\", \"isbn\": \"978-1-4503-4523-1/17/03\", \"title\": \"Detecting Patching of Executables without System Calls\", \"booktitle\": \"Proceedings of the Conference on Data and Application Security and Privacy\", \"author\": \"Banescu, Sebastian and Ahmadvand, Mohsen and Pretschner, Alexander and Shield, Robert and Hamilton, Chris\", \"ID\": \"banescu2017detecting\", \"year\": \"2017\", \"ENTRYTYPE\": \"inproceedings\"}',0,'',''),(4,'baumann2015shielding','{\"publisher\": \"ACM\", \"author\": \"Baumann, Andrew and Peinado, Marcus and Hunt, Galen\", \"journal\": \"ACM Transactions on Computer Systems (TOCS)\", \"title\": \"Shielding applications from an untrusted cloud with haven\", \"number\": \"3\", \"ENTRYTYPE\": \"article\", \"volume\": \"33\", \"year\": \"2015\", \"ID\": \"baumann2015shielding\", \"pages\": \"8\"}',0,'',''),(5,'Blietz2006','{\"doi\": \"10.1007/11787952_12\", \"isbn\": \"3540359982\", \"author\": \"Blietz, Brian and Tyagi, Akhilesh\", \"journal\": \"Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)\", \"issn\": \"16113349\", \"ENTRYTYPE\": \"article\", \"volume\": \"3919 LNCS\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Blietz, Tyagi/Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)/Blietz, Tyagi - 2006 - Software tamper resistance through dynamic program monitoring.pdf:pdf\", \"year\": \"2006\", \"title\": \"Software tamper resistance through dynamic program monitoring\", \"ID\": \"Blietz2006\", \"pages\": \"146--163\"}',5,'',''),(6,'brasser2015tytan','{\"author\": \"Brasser, Ferdinand and El Mahjoub, Brahim and Sadeghi, Ahmad-Reza and Wachsmann, Christian and Koeberl, Patrick\", \"booktitle\": \"2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC)\", \"title\": \"TyTAN: tiny trust anchor for tiny devices\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"brasser2015tytan\", \"pages\": \"1--6\"}',0,'',''),(7,'catuogno2002format','{\"author\": \"Catuogno, Luigi and Visconti, Ivan\", \"booktitle\": \"International Conference on Security in Communication Networks\", \"title\": \"A format-independent architecture for run-time integrity checking of executable code\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2002\", \"organization\": \"Springer\", \"ID\": \"catuogno2002format\", \"pages\": \"219--233\"}',9,'',''),(8,'chang2001protecting','{\"author\": \"Chang, Hoi and Atallah, Mikhail J\", \"booktitle\": \"ACM Workshop on Digital Rights Management\", \"title\": \"Protecting software code by guards\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2001\", \"organization\": \"Springer\", \"ID\": \"chang2001protecting\", \"pages\": \"160--175\"}',93,'',''),(9,'chen2002oblivious','{\"author\": \"Chen, Yuqun and Venkatesan, Ramarathnam and Cary, Matthew and Pang, Ruoming and Sinha, Saurabh and Jakubowski, Mariusz H\", \"booktitle\": \"International Workshop on Information Hiding\", \"title\": \"Oblivious hashing: A stealthy software integrity verification primitive\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2002\", \"organization\": \"Springer\", \"ID\": \"chen2002oblivious\", \"pages\": \"400--414\"}',55,'',''),(10,'christodorescu2009cloud','{\"author\": \"Christodorescu, Mihai and Sailer, Reiner and Schales, Douglas Lee and Sgandurra, Daniele and Zamboni, Diego\", \"booktitle\": \"Proceedings of the 2009 ACM workshop on Cloud computing security\", \"title\": \"Cloud security is not (just) virtualization security: a short paper\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2009\", \"organization\": \"ACM\", \"ID\": \"christodorescu2009cloud\", \"pages\": \"97--102\"}',0,'',''),(11,'collberg2012distributed','{\"author\": \"Collberg, Christian and Martin, Sam and Myers, Jonathan and Nagra, Jasvir\", \"booktitle\": \"Proceedings of the 28th Annual Computer Security Applications Conference\", \"title\": \"Distributed application tamper detection via continuous software updates\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2012\", \"organization\": \"ACM\", \"ID\": \"collberg2012distributed\", \"pages\": \"319--328\"}',15,'',''),(12,'dedic2007graph','{\"author\": \"Dedi{\\\\\'c}, Nenad and Jakubowski, Mariusz and Venkatesan, Ramarathnam\", \"booktitle\": \"International Workshop on Information Hiding\", \"title\": \"A graph game model for software tamper protection\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2007\", \"organization\": \"Springer\", \"ID\": \"dedic2007graph\", \"pages\": \"80--95\"}',5,'',''),(13,'deswarte2004remote','{\"publisher\": \"Springer\", \"author\": \"Deswarte, Yves and Quisquater, Jean-Jacques and Sa{\\\\\\\"\\\\i}dane, Ayda\", \"booktitle\": \"Integrity and internal control in information systems VI\", \"title\": \"Remote integrity checking\", \"ENTRYTYPE\": \"incollection\", \"year\": \"2004\", \"ID\": \"deswarte2004remote\", \"pages\": \"1--11\"}',34,'',''),(14,'dewan2008hypervisor','{\"author\": \"Dewan, Prashant and Durham, David and Khosravi, Hormuzd and Long, Men and Nagabhushan, Gayathri\", \"booktitle\": \"Proceedings of the 2008 Spring simulation multiconference\", \"title\": \"A hypervisor-based system for protecting software runtime memory and persistent storage\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2008\", \"organization\": \"Society for Computer Simulation International\", \"ID\": \"dewan2008hypervisor\", \"pages\": \"828--835\"}',22,'',''),(15,'Gan2015using','{\"doi\": \"10.1109/SPRO.2015.12\", \"title\": \"Using Virtual Machine Protections to Enhance Whitebox Cryptography\", \"booktitle\": \"Software Protection (SPRO), 2015 IEEE/ACM 1st International Workshop on\", \"author\": \"J. Gan and R. Kok and P. Kohli and Y. Ding and B. Mah\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"ID\": \"Gan2015using\", \"pages\": \"17-23\"}',0,'',''),(16,'Ghosh2010secure','{\"isbn\": \"364216434X\", \"author\": \"Ghosh, Sudeep and Hiser, Jason D. and Davidson, Jack W.\", \"journal\": \"Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)\", \"issn\": \"03029743\", \"ENTRYTYPE\": \"article\", \"volume\": \"6387 LNCS\", \"mendeley-groups\": \"Tamperproofing\", \"year\": \"2010\", \"title\": \"A secure and robust approach to software tamper resistance\", \"ID\": \"Ghosh2010secure\", \"pages\": \"33--47\"}',11,'',''),(17,'ghosh2013software','{\"author\": \"Ghosh, Sudeep and Hiser, Jason and Davidson, Jack W\", \"booktitle\": \"Proceedings of the 2nd ACM SIGPLAN Program Protection and Reverse Engineering Workshop\", \"title\": \"Software protection for dynamically-generated code\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2013\", \"organization\": \"ACM\", \"ID\": \"ghosh2013software\", \"pages\": \"1\"}',6,'',''),(18,'Horne2002','{\"doi\": \"10.1007/3-540-47870-1_9\", \"isbn\": \"978-3-540-43677-5\", \"author\": \"Horne, Bill and Matheson, Lesley and Sheehan, Casey and Tarjan, Robert\", \"ENTRYTYPE\": \"article\", \"abstract\": \"We describe a software self-checking mechanism designed to improve the tamper resistance of large programs. The mechanism consists of a number of testers that redundantly test for changes in the executable code as it is running and report modifications. The mechanism is built to be compatible with copy-specific static watermarking and other tamper-resistance techniques. The mechanism includes several innovations to make it stealthy and more robust.\", \"title\": \"Dynamic Self-Checking Techniques for Improved Tamper Resistance\", \"pages\": \"141--159\", \"mendeley-groups\": \"Tamperproofing/Methods,Tamperproofing\", \"link\": \"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.13.3308\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Horne et al/Security and Privacy in Digital Rights Management/Horne et al. - 2002 - Dynamic Self-Checking Techniques for Improved Tamper Resistance.pdf:pdf\", \"year\": \"2002\", \"ID\": \"Horne2002\", \"annote\": \"They add testers in the post compilation process.\\nLinear checks no circular\\nTo avoid complexity, a block is checked only by one block\\nA 32bit space is added outside basic blocks as corrector that tries to fix the hash values in patch process. The patch process is part of sofware watermarking after-installation process\\nDid not quite get it where do they store hashes? They say we store them but not clear where?!\\nNo inidication of how Address space layout randomization is respected.\", \"journal\": \"Security and Privacy in Digital Rights Management\"}',0,'',''),(19,'ibrahim2016stins4cs','{\"author\": \"Ibrahim, Amjad and Banescu, Sebastian\", \"booktitle\": \"Proceedings of the 2016 ACM Workshop on Software PROtection\", \"title\": \"StIns4CS: A State Inspection Tool for C\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2016\", \"organization\": \"ACM\", \"ID\": \"ibrahim2016stins4cs\", \"pages\": \"61--71\"}',0,'',''),(20,'jacob2007towards','{\"author\": \"Jacob, Matthias and Jakubowski, Mariusz H and Venkatesan, Ramarathnam\", \"booktitle\": \"Proceedings of the 9th workshop on Multimedia \\\\& security\", \"title\": \"Towards integral binary execution: Implementing oblivious hashing using overlapped instruction encodings\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2007\", \"organization\": \"ACM\", \"ID\": \"jacob2007towards\", \"pages\": \"129--140\"}',25,'',''),(21,'jakobsson2010retroactive','{\"numpages\": \"13\", \"publisher\": \"USENIX Association\", \"title\": \"Retroactive Detection of Malware with Applications to Mobile Platforms\", \"series\": \"HotSec\'10\", \"booktitle\": \"Proceedings of the 5th USENIX Conference on Hot Topics in Security\", \"author\": \"Jakobsson, Markus and Johansson, Karl-Anders\", \"ENTRYTYPE\": \"inproceedings\", \"location\": \"Washinton, DC\", \"year\": \"2010\", \"ID\": \"jakobsson2010retroactive\", \"pages\": \"1--13\", \"address\": \"Berkeley, CA, USA\"}',0,'',''),(22,'jakobsson2011practical','{\"author\": \"Jakobsson, Markus and Johansson, Karl-Anders\", \"booktitle\": \"Lightweight Security \\\\& Privacy: Devices, Protocols and Applications (LightSec), 2011 Workshop on\", \"title\": \"Practical and secure software-based attestation\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2011\", \"organization\": \"IEEE\", \"ID\": \"jakobsson2011practical\", \"pages\": \"1--9\"}',13,'',''),(23,'jin2003forensic','{\"author\": \"Jin, Hongxia and Lotspiech, Jeffery\", \"booktitle\": \"Software Reliability Engineering, 2003. ISSRE 2003. 14th International Symposium on\", \"title\": \"Forensic analysis for tamper resistant software\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2003\", \"organization\": \"IEEE\", \"ID\": \"jin2003forensic\", \"pages\": \"133--142\"}',9,'',''),(24,'junod2015obfuscator','{\"author\": \"Junod, Pascal and Rinaldini, Julien and Wehrli, Johan and Michielin, Julie\", \"booktitle\": \"Proceedings of the 1st International Workshop on Software Protection\", \"title\": \"Obfuscator-LLVM: software protection for the masses\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE Press\", \"ID\": \"junod2015obfuscator\", \"pages\": \"3--9\"}',0,'',''),(25,'kanstren2015architecture','{\"author\": \"Kanstr{\\\\\'e}n, Teemu and Lehtonen, Sami and Savola, Reijo and Kukkohovi, Hilkka and H{\\\\\\\"a}t{\\\\\\\"o}nen, Kimmo\", \"booktitle\": \"Cloud Engineering (IC2E), 2015 IEEE International Conference on\", \"title\": \"Architecture for high confidence cloud security monitoring\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"kanstren2015architecture\", \"pages\": \"195--200\"}',3,'',''),(26,'kim1994experiences','{\"ID\": \"kim1994experiences\", \"author\": \"Kim, Gene H and Spafford, Eugene H\", \"year\": \"1994\", \"ENTRYTYPE\": \"article\", \"title\": \"Experiences with tripwire: Using integrity checkers for intrusion detection\"}',0,'',''),(27,'kimball2012emulation','{\"publisher\": \"Google Patents\", \"author\": \"Kimball, William B and Baldwin, Rusty O\", \"title\": \"Emulation-based software protection\", \"month\": \"oct~9\", \"note\": \"US Patent 8,285,987\", \"year\": \"2012\", \"ID\": \"kimball2012emulation\", \"ENTRYTYPE\": \"misc\"}',0,'',''),(28,'kulkarni2014new','{\"author\": \"Kulkarni, Aniket and Metta, Ravindra\", \"booktitle\": \"Service Oriented System Engineering (SOSE), 2014 IEEE 8th International Symposium on\", \"title\": \"A New Code Obfuscation Scheme for Software Protection\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2014\", \"organization\": \"IEEE\", \"ID\": \"kulkarni2014new\", \"pages\": \"409--414\"}',0,'',''),(29,'madou2005software','{\"author\": \"Madou, Matias and Anckaert, Bertrand and Moseley, Patrick and Debray, Saumya and De Sutter, Bjorn and De Bosschere, Koen\", \"booktitle\": \"International Workshop on Information Security Applications\", \"title\": \"Software protection through dynamic code mutation\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2005\", \"organization\": \"Springer\", \"ID\": \"madou2005software\", \"pages\": \"194--206\"}',31,'',''),(30,'Malone2011','{\"doi\": \"10.1145/2046582.2046596\", \"isbn\": \"9781450310017\", \"keyword\": \"hardware performance counters,integrity\", \"author\": \"Malone, Corey and Zahran, Mohamed and Karri, Ramesh\", \"journal\": \"Proceedings of the sixth ACM workshop on Scalable trusted computing - STC \'11\", \"issn\": \"15437221\", \"ENTRYTYPE\": \"article\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"link\": \"http://www.scopus.com/inward/record.url?eid=2-s2.0-80755143408{\\\\&}partnerID=40{\\\\&}md5=ad5db1f8e5c0131a2a17f457ba1b0497$\\\\backslash$nhttp://dl.acm.org/citation.cfm?doid=2046582.2046596\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Malone, Zahran, Karri/Proceedings of the sixth ACM workshop on Scalable trusted computing - STC \'11/Malone, Zahran, Karri - 2011 - Are Hardware Performance Counters a Cost Effective Way for Integrity Checking of Programs.pdf:pdf\", \"year\": \"2011\", \"title\": \"Are Hardware Performance Counters a Cost Effective Way for Integrity Checking of Programs\", \"ID\": \"Malone2011\", \"pages\": \"71\"}',0,'',''),(31,'Martignoni2010conquer','{\"doi\": \"10.1007/978-3-642-14215-4_2\", \"title\": \"Conqueror: Tamper-proof code execution on legacy systems\", \"journal\": \"Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)\", \"author\": \"Martignoni, Lorenzo and Paleari, Roberto and Bruschi, Danilo\", \"ENTRYTYPE\": \"article\", \"volume\": \"6201 LNCS\", \"year\": \"2010\", \"ID\": \"Martignoni2010conquer\", \"pages\": \"21--40\"}',12,'',''),(32,'morgan2015design','{\"author\": \"Morgan, Beno{\\\\^\\\\i}t and Alata, Eric and Nicomette, Vincent and Ka{\\\\^a}niche, Mohamed and Averlant, Guillaume\", \"booktitle\": \"Dependable Computing (PRDC), 2015 IEEE 21st Pacific Rim International Symposium on\", \"title\": \"Design and implementation of a hardware assisted security architecture for software integrity monitoring\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"morgan2015design\", \"pages\": \"189--198\"}',0,'',''),(33,'park2015tgvisor','{\"author\": \"Park, Sungjin and Yoon, Jae Nam and Kang, Cheoloh and Kim, Kyong Hoon and Han, Taisook\", \"booktitle\": \"Mobile Cloud Computing, Services, and Engineering (MobileCloud), 2015 3rd IEEE International Conference on\", \"title\": \"TGVisor: A Tiny Hypervisor-Based Trusted Geolocation Framework for Mobile Cloud Clients\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"park2015tgvisor\", \"pages\": \"99--108\"}',0,'',''),(34,'Protsenko2015dynamic','{\"doi\": \"10.1109/ARES.2015.98\", \"keyword\": \"Android (operating system);computer crime;cryptography;mobile computing;reverse engineering;Android apps;application piracy;dynamic code loading;dynamic obfuscation techniques;dynamic re-encryption;dynamic self-protection;mobile devices;native code;proprietary mobile software;reverse engineering;tamperproofing;Androids;Encryption;Humanoid robots;Loading;Runtime;Software protection;Android;Software Protection\", \"title\": \"Dynamic Self-Protection and Tamperproofing for Android Apps Using Native Code\", \"booktitle\": \"Availability, Reliability and Security (ARES), 2015 10th International Conference on\", \"author\": \"M. Protsenko and S. Kreuter and T. M\\u00fcller\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"ID\": \"Protsenko2015dynamic\", \"pages\": \"129-138\"}',0,'',''),(35,'Seshadri2005pioneer','{\"doi\": \"10.1145/1095809.1095812\", \"isbn\": \"1-59593-079-5\", \"keyword\": \"dynamic root of trust,rootkit detection,self-check-summing code,software-based code attestation,verifiable code execution\", \"author\": \"Seshadri, Arvind and Luk, Mark and Shi, Elaine and Perrig, Adrian and van Doorn, Leendert and Khosla, Pradeep\", \"journal\": \"ACM SIGOPS Operating Systems Review\", \"issn\": \"01635980\", \"ID\": \"Seshadri2005pioneer\", \"mendeley-groups\": \"Tamperproofing\", \"link\": \"http://dl.acm.org/citation.cfm?id=1095809.1095812\", \"year\": \"2005\", \"title\": \"Pioneer: Verifying Code Integrity and Enforcing Untampered Code Execution on Legacy Systems\", \"ENTRYTYPE\": \"article\"}',2,'',''),(36,'Spinellis2000','{\"doi\": \"10.1145/353323.353383\", \"isbn\": \"1094-9224\", \"author\": \"Spinellis, Diomidis\", \"ENTRYTYPE\": \"article\", \"abstract\": \"The integrity verification of a device\'s controlling software is an important aspect of many emerging information appliances. We propose the use of reflection, whereby the software is able to examine its own operation, in conjunction with cryptographic hashes as a basis for developing a suitable software verification protocol. For more demanding applications meta-reflective techniques can be used to thwart attacks based on device emulation strategies. We demonstrate how our approach can be used to increase the security of mobile phones, devices for the delivery of digital content, and smartcards.\", \"issn\": \"10949224\", \"number\": \"1\", \"pages\": \"51--62\", \"volume\": \"3\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Spinellis/ACM Transactions on Information and System Security/Spinellis - 2000 - Reflection as a mechanism for software integrity verification.pdf:pdf\", \"year\": \"2000\", \"title\": \"Reflection as a mechanism for software integrity verification\", \"ID\": \"Spinellis2000\", \"annote\": \"In this approach a software integrity is verified with the help of an external (trusted) entity. Here, the program state is retrieved using reflection, a protocol is proposed to verify the state, and suggested to augment the scheme with CPU perfor.mance counter, before and after the verification call loops.\\nOne obvious attack is to keep an untouched version of the application in the memory next to the tampered with version. Then redirect all hash computations to the good version. The authors, suggest memory expanion and timing as possible countermeasures.\", \"journal\": \"ACM Transactions on Information and System Security\"}',0,'',''),(37,'teixeira2015siot','{\"author\": \"Teixeira, Fernando A and Machado, Gustavo V and Pereira, Fernando MQ and Wong, Hao Chi and Nogueira, Jos{\\\\\'e} and Oliveira, Leonardo B\", \"booktitle\": \"Proceedings of the 14th International Conference on Information Processing in Sensor Networks\", \"title\": \"SIoT: securing the internet of things through distributed system analysis\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"ACM\", \"ID\": \"teixeira2015siot\", \"pages\": \"310--321\"}',0,'',''),(38,'Wang2005Tamper','{\"isbn\": \"8242866627\", \"keyword\": \"integrity checking,multi-blocking encryption,software piracy,tamper resistant\", \"title\": \"Tamper Resistant Software Through Dynamic Integrity Checking\", \"journal\": \"Proc. Symp. on Cyptography and Information Security (SCIS 05)\", \"author\": \"Wang, Ping and Kang, Seok-kyu and Kim, Kwangjo\", \"ID\": \"Wang2005Tamper\", \"year\": \"2005\", \"ENTRYTYPE\": \"article\"}',0,'',''),(39,'yao2014cryptvmi','{\"author\": \"Yao, Fangzhou and Sprabery, Read and Campbell, Roy H\", \"booktitle\": \"Proceedings of the 2nd international workshop on Security in cloud computing\", \"title\": \"CryptVMI: a flexible and encrypted virtual machine introspection system in the cloud\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2014\", \"organization\": \"ACM\", \"ID\": \"yao2014cryptvmi\", \"pages\": \"11--18\"}',0,'',''),(40,'banescu2015software','{\"author\": \"Banescu, Sebastian and Pretschner, Alexander and Battr{\\\\\'e}, Dominic and Cazzulani, St{\\\\\'e}fano and Shield, Robert and Thompson, Greg\", \"booktitle\": \"Proceedings of the 5th ACM Conference on Data and Application Security and Privacy\", \"title\": \"Software-based protection against changeware\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"ACM\", \"ID\": \"banescu2015software\", \"pages\": \"231--242\"}',4,'',''),(41,'Carbone2009','{\"isbn\": \"9781605583525\", \"author\": \"Carbone, Martim and Cui, Weidong and Peinado, Marcus and Lu, Long and Lee, Wenke\", \"journal\": \"Analysis\", \"title\": \"Mapping Kernel Objects to Enable Systematic Integrity Checking\", \"ENTRYTYPE\": \"article\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Carbone et al/Analysis/Carbone et al. - 2009 - Mapping Kernel Objects to Enable Systematic Integrity Checking.pdf:pdf\", \"year\": \"2009\", \"ID\": \"Carbone2009\", \"pages\": \"555--565\"}',0,'',''),(42,'Castro2006','{\"isbn\": \"1-931971-47-1\", \"author\": \"Castro, Miguel and Costa, Manuel and Harris, Tim\", \"ENTRYTYPE\": \"article\", \"abstract\": \"Software attacks often subvert the intended data-flow in a vulnerable program. For example, attackers exploit buffer overflows and format string vulnerabilities to write data to unintended locations. We present a simple technique that prevents these attacks by enforcing data-flow integrity. It computes a data-flow graph using static analysis, and it instruments the program to ensure that the flow of data at runtime is allowed by the data-flow graph. We describe an efficient implementation of data-flow integrity enforcement that uses static analysis to reduce instrumentation overhead. This implementation can be used in practice to detect a broad class of attacks and errors because it can be applied automatically to C and C++ programs without modifications, it does not have false positives, and it has low overhead.\", \"title\": \"Securing software by enforcing data-flow integrity\", \"pages\": \"147--160\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"link\": \"http://dl.acm.org/citation.cfm?id=1298455.1298470$\\\\backslash$nhttp://www.usenix.org/event/osdi06/tech/full{\\\\_}papers/castro/castro{\\\\_}html/\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Castro, Costa, Harris/Proceedings of the 7th symposium on Operating systems design and implementation/Castro, Costa, Harris - 2006 - Securing software by enforcing data-flow integrity.pdf:pdf\", \"year\": \"2006\", \"ID\": \"Castro2006\", \"journal\": \"Proceedings of the 7th symposium on Operating systems design and implementation\"}',0,'',''),(43,'gao2015integrity','{\"doi\": \"10.1109/ICAC.2015.34\", \"keyword\": \"Big Data;cloud computing;data integrity;data privacy;Big Data processing;cloud computing technology;dynamic redundancy computation;integrity protection solution;reputation based redundancy computation;Conferences;MapReduce;cloud computing;integrity protection\", \"title\": \"Integrity Protection for Big Data Processing with Dynamic Redundancy Computation\", \"booktitle\": \"Autonomic Computing (ICAC), 2015 IEEE International Conference on\", \"author\": \"Z. Gao and N. Desalvo and P. D. Khoa and S. H. Kim and L. Xu and W. W. Ro and R. M. Verma and W. Shi\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"ID\": \"gao2015integrity\", \"pages\": \"159-160\"}',0,'',''),(44,'karapanos2016verena','{\"author\": \"Karapanos, Nikolaos and Filios, Alexandros and Popa, Raluca Ada and Capkun, Srdjan\", \"booktitle\": \"Proceedings of the 37th IEEE Symposium on Security and Privacy (IEEE S\\\\&P)\", \"title\": \"Verena: End-to-end integrity protection for web applications\", \"ID\": \"karapanos2016verena\", \"year\": \"2016\", \"ENTRYTYPE\": \"inproceedings\"}',0,'',''),(45,'Kil2009','{\"isbn\": \"9781424444212\", \"keyword\": \"dynamic attestation,integrity,remote attestation,runtime,system security,trusted computing\", \"author\": \"Kil, Chongkyung\", \"journal\": \"IEEE/IFIP International Conference on Dependable Systems {\\\\&} Networks\", \"title\": \"Remote Attestation to Dynamic System Properties: Towards Providing Complete System Integrity Evidence\", \"ENTRYTYPE\": \"article\", \"mendeley-groups\": \"Tamperproofing\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Kil/IEEEIFIP International Conference on Dependable Systems {\\\\&} Networks/Kil - 2009 - Remote Attestation to Dynamic System Properties Towards Providing Complete System Integrity Evidence.pdf:pdf\", \"year\": \"2009\", \"ID\": \"Kil2009\", \"pages\": \"115--124\"}',0,'',''),(46,'neisse2011implementing','{\"author\": \"Neisse, Ricardo and Holling, Dominik and Pretschner, Alexander\", \"booktitle\": \"Proceedings of the 2011 11th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing\", \"title\": \"Implementing trust in cloud infrastructures\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2011\", \"organization\": \"IEEE Computer Society\", \"ID\": \"neisse2011implementing\", \"pages\": \"524--533\"}',37,'',''),(47,'sun2015security','{\"author\": \"Sun, Yuqiong and Nanda, Susanta and Jaeger, Trent\", \"booktitle\": \"2015 IEEE 7th International Conference on Cloud Computing Technology and Science (CloudCom)\", \"title\": \"Security-as-a-Service for Microservices-Based Cloud Applications\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"sun2015security\", \"pages\": \"50--57\"}',0,'',''),(48,'pappas2012smashing','{\"author\": \"Pappas, Vasilis and Polychronakis, Michalis and Keromytis, Angelos D\", \"booktitle\": \"2012 IEEE Symposium on Security and Privacy\", \"title\": \"Smashing the gadgets: Hindering return-oriented programming using in-place code randomization\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2012\", \"organization\": \"IEEE\", \"ID\": \"pappas2012smashing\", \"pages\": \"601--615\"}',122,'',''),(49,'pappas2013transparent','{\"author\": \"Pappas, Vasilis and Polychronakis, Michalis and Keromytis, Angelos D\", \"booktitle\": \"Presented as part of the 22nd USENIX Security Symposium (USENIX Security 13)\", \"title\": \"Transparent ROP exploit mitigation using indirect branch tracing\", \"pages\": \"447--462\", \"year\": \"2013\", \"ID\": \"pappas2013transparent\", \"ENTRYTYPE\": \"inproceedings\"}',0,'',''); +/*!40000 ALTER TABLE `paper` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary view structure for view `paper_merged_attributes` +-- + +DROP TABLE IF EXISTS `paper_merged_attributes`; +/*!50001 DROP VIEW IF EXISTS `paper_merged_attributes`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE VIEW `paper_merged_attributes` AS SELECT + 1 AS `id_taxonomy`, + 1 AS `id_paper`, + 1 AS `citation`, + 1 AS `bib`, + 1 AS `atts`, + 1 AS `leaf_atts`*/; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `relation` +-- + +DROP TABLE IF EXISTS `relation`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `relation` ( + `id_relation` int(10) unsigned NOT NULL AUTO_INCREMENT, + `text` varchar(50) NOT NULL, + `comment` varchar(500) DEFAULT NULL, + PRIMARY KEY (`id_relation`), + UNIQUE KEY `id_relation_UNIQUE` (`id_relation`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `relation` +-- + +LOCK TABLES `relation` WRITE; +/*!40000 ALTER TABLE `relation` DISABLE KEYS */; +INSERT INTO `relation` VALUES (1,'Depends','simple dependency'),(2,'DependsDirected','directed dependency'),(3,'InstanceOf','inheritance'),(4,'MemberOf','aggregation'),(5,'PartOf','composition'); +/*!40000 ALTER TABLE `relation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `taxonomy` +-- + +DROP TABLE IF EXISTS `taxonomy`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy` ( + `id_taxonomy` int(11) unsigned NOT NULL AUTO_INCREMENT, + `text` varchar(50) DEFAULT NULL, + PRIMARY KEY (`id_taxonomy`), + UNIQUE KEY `id_taxonomy_UNIQUE` (`id_taxonomy`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `taxonomy` +-- + +LOCK TABLES `taxonomy` WRITE; +/*!40000 ALTER TABLE `taxonomy` DISABLE KEYS */; +INSERT INTO `taxonomy` VALUES (1,'Integrity protection'); +/*!40000 ALTER TABLE `taxonomy` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `taxonomy_dimension` +-- + +DROP TABLE IF EXISTS `taxonomy_dimension`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy_dimension` ( + `id_taxonomy_dimension` int(10) unsigned NOT NULL AUTO_INCREMENT, + `id_taxonomy` int(11) NOT NULL, + `id_attribute` int(11) unsigned NOT NULL, + `id_dimension` int(11) unsigned NOT NULL, + PRIMARY KEY (`id_taxonomy_dimension`), + UNIQUE KEY `id_taxonomy_dimension_UNIQUE` (`id_taxonomy_dimension`), + UNIQUE KEY `taxonomy_dimension_id_attribute_UNIQUE` (`id_taxonomy`,`id_attribute`), + KEY `taxonomy_dimension_id_attribute_foreign` (`id_attribute`), + KEY `taxonomy_dimension_id_dimension_foreign` (`id_dimension`), + CONSTRAINT `taxonomy_dimension_id_attribute_foreign` FOREIGN KEY (`id_attribute`) REFERENCES `attribute` (`id_attribute`) ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT `taxonomy_dimension_id_dimension_foreign` FOREIGN KEY (`id_dimension`) REFERENCES `dimension` (`id_dimension`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=99 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `taxonomy_dimension` +-- + +LOCK TABLES `taxonomy_dimension` WRITE; +/*!40000 ALTER TABLE `taxonomy_dimension` DISABLE KEYS */; +INSERT INTO `taxonomy_dimension` VALUES (1,1,2,1),(2,1,3,1),(3,1,4,1),(4,1,6,1),(5,1,7,1),(6,1,8,1),(7,1,9,1),(8,1,10,1),(9,1,11,1),(10,1,12,1),(11,1,13,1),(12,1,15,1),(13,1,16,1),(14,1,17,1),(15,1,18,1),(16,1,19,1),(17,1,21,1),(18,1,22,1),(19,1,23,1),(20,1,24,1),(21,1,25,1),(22,1,28,2),(23,1,29,2),(24,1,30,2),(25,1,31,2),(26,1,33,3),(27,1,34,3),(28,1,36,3),(29,1,37,3),(30,1,39,3),(31,1,40,3),(32,1,42,3),(33,1,43,3),(34,1,45,3),(35,1,46,3),(36,1,47,3),(37,1,48,3),(38,1,49,3),(39,1,51,3),(40,1,52,3),(41,1,53,3),(42,1,54,3),(43,1,55,3),(44,1,56,3),(45,1,58,3),(46,1,59,3),(47,1,60,3),(48,1,61,3),(49,1,63,3),(50,1,64,3),(51,1,65,3),(52,1,66,3),(53,1,68,3),(54,1,69,3),(55,1,70,3),(56,1,5,1),(57,1,71,3),(58,1,72,2),(59,1,73,2),(60,1,78,2),(61,1,79,2),(62,1,80,2),(63,1,81,2),(64,1,82,2),(65,1,83,2),(66,1,84,2),(67,1,85,2),(68,1,86,2),(69,1,87,2),(70,1,88,2),(71,1,89,3),(72,1,90,3),(73,1,91,3),(74,1,92,3),(75,1,93,1),(76,1,94,1),(77,1,95,1),(78,1,1,1),(79,1,14,1),(80,1,20,1),(81,1,26,2),(82,1,27,2),(83,1,32,3),(84,1,35,3),(85,1,38,3),(86,1,41,3),(87,1,44,3),(88,1,50,3),(89,1,57,3),(90,1,62,3),(91,1,67,3); +/*!40000 ALTER TABLE `taxonomy_dimension` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `taxonomy_relation` +-- + +DROP TABLE IF EXISTS `taxonomy_relation`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy_relation` ( + `id_taxonomy_relation` int(11) NOT NULL AUTO_INCREMENT, + `id_taxonomy` int(11) NOT NULL, + `id_src_attribute` int(11) unsigned NOT NULL, + `id_dest_attribute` int(11) unsigned NOT NULL, + `id_relation` int(11) NOT NULL, + `id_dimension` int(10) DEFAULT '0', + `edgeBendPoints` longtext, + PRIMARY KEY (`id_taxonomy_relation`), + UNIQUE KEY `id_taxonomy_relation_UNIQUE` (`id_taxonomy_relation`), + UNIQUE KEY `taxonomy_relation_attributes_UNIQUE` (`id_taxonomy`,`id_src_attribute`,`id_dest_attribute`,`id_dimension`), + KEY `taxonomy_relation_id_src_attribute_foreign` (`id_src_attribute`), + KEY `taxonomy_relation_id_dest_attribute_foreign` (`id_dest_attribute`), + CONSTRAINT `taxonomy_relation_id_dest_attribute_foreign` FOREIGN KEY (`id_dest_attribute`) REFERENCES `attribute` (`id_attribute`) ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT `taxonomy_relation_id_src_attribute_foreign` FOREIGN KEY (`id_src_attribute`) REFERENCES `attribute` (`id_attribute`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=249 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `taxonomy_relation` +-- + +LOCK TABLES `taxonomy_relation` WRITE; +/*!40000 ALTER TABLE `taxonomy_relation` DISABLE KEYS */; +INSERT INTO `taxonomy_relation` VALUES (56,1,2,93,3,1,'{\'x\':245.99999999999997,\'y\':71.99999999999996};{\'x\':246.99999999999997,\'y\':155}'),(57,1,3,93,3,1,'{\'x\':232.36470867292397,\'y\':155.35488918195506}'),(58,1,4,93,3,1,'{\'x\':246.99999999999997,\'y\':234};{\'x\':246.99999999999997,\'y\':155.99999999999994}'),(59,1,5,93,1,1,'{\'x\':99.99999999999991,\'y\':431.9999999999999}'),(60,1,21,20,3,1,'{\'x\':647.1794253666435,\'y\':69.82057517234267};{\'x\':650.6666891188631,\'y\':296.3333098646116}'),(61,1,22,20,3,1,'{\'x\':648.2100417611323,\'y\':143.79604123777884};{\'x\':649.4742480270277,\'y\':296.5104000328528}'),(62,1,23,20,3,1,'{\'x\':648.3866880746442,\'y\':211.6541379857174};{\'x\':649.3213879220136,\'y\':296.6063372240162}'),(63,1,24,20,3,1,'{\'x\':651.1102947476124,\'y\':366.7756595403927};{\'x\':650.602317217686,\'y\':297.7944639029661}'),(64,1,25,20,3,1,'{\'x\':651.0420523241444,\'y\':435.7642012738366};{\'x\':649.9017992903628,\'y\':297.80051601778246}'),(65,1,94,20,3,1,'{\'x\':631.5153552122035,\'y\':296.9184622110439}'),(66,1,6,21,1,1,'{\'x\':837.0000000000001,\'y\':168.00000000000003};{\'x\':835,\'y\':70.00000000000003}'),(67,1,6,22,1,1,'{\'x\':836.0000000000002,\'y\':169};{\'x\':836.0000000000002,\'y\':144}'),(68,1,6,94,1,1,'{\'x\':836.9999999999999,\'y\':169.0000000000001};{\'x\':837.9999999999997,\'y\':298.00000000000017}'),(69,1,6,5,5,1,'{\'x\':1019.9999999999998,\'y\':231.00000000000006};{\'x\':926,\'y\':231};{\'x\':929.9999999999997,\'y\':487};{\'x\':483.99999999999994,\'y\':482};{\'x\':480.9999999999998,\'y\':435}'),(70,1,7,5,5,1,'{\'x\':926.9999999999998,\'y\':319};{\'x\':929,\'y\':486};{\'x\':482.99999999999994,\'y\':482};{\'x\':482.0000000000001,\'y\':434.99999999999994}'),(71,1,8,5,5,1,'{\'x\':929,\'y\':514.9999999999999};{\'x\':929.0000000000002,\'y\':487};{\'x\':481.9999999999999,\'y\':481};{\'x\':480.9999999999999,\'y\':434}'),(72,1,9,7,3,1,'{\'x\':1474,\'y\':318}'),(73,1,10,7,3,1,'{\'x\':1473.7949380792272,\'y\':317.9784915175459}'),(74,1,13,8,3,1,'{\'x\':1259.2718899100228,\'y\':518.0659196311467}'),(75,1,11,8,3,1,'{\'x\':1361,\'y\':659};{\'x\':1360,\'y\':518.9999999999998}'),(76,1,12,11,3,1,'{\'x\':1549.9293606366093,\'y\':660.4788195267564}'),(77,1,7,24,1,1,'{\'x\':1036,\'y\':366.99999999999994}'),(78,1,7,25,1,1,'{\'x\':1036,\'y\':443.0000000000001}'),(79,1,8,24,1,1,'{\'x\':1035,\'y\':368.00000000000006}'),(80,1,8,25,1,1,'{\'x\':1035,\'y\':444};{\'x\':886.7188837054866,\'y\':441.4353930845009}'),(81,1,5,14,1,1,'{\'x\':328.1392281443622,\'y\':553.7668810710022}'),(82,1,15,14,3,1,'{\'x\':506.9999999999999,\'y\':603};{\'x\':506.99999999999994,\'y\':673.0000000000001}'),(83,1,95,14,3,1,'{\'x\':505.99999999999994,\'y\':525};{\'x\':506.99999999999994,\'y\':672.9999999999999}'),(84,1,17,14,3,1,'{\'x\':459.5797568920929,\'y\':673.5251347098841}'),(85,1,18,14,3,1,'{\'x\':507.9999999999999,\'y\':752};{\'x\':506.99999999999994,\'y\':674}'),(86,1,19,14,3,1,'{\'x\':509,\'y\':825};{\'x\':507,\'y\':673}'),(87,1,79,80,4,2,'{\'x\':119.21985912716738,\'y\':191.88190867508243};{\'x\':202.21985912716733,\'y\':190.88190867508223}'),(88,1,81,80,4,2,'{\'x\':241.21985912716747,\'y\':190.88190867508288};{\'x\':202.21985912716724,\'y\':190.881908675083}'),(89,1,82,80,4,2,'{\'x\':338.84847248584714,\'y\':191.5349713095123};{\'x\':203.21985912716718,\'y\':191.8819086750825}'),(90,1,83,80,4,2,'{\'x\':201.9121348988953,\'y\':310.9945330830352}'),(91,1,80,72,5,2,'{\'x\':303.5899151926502,\'y\':254.52141900969116}'),(92,1,73,72,5,2,'{\'x\':475.1869873177485,\'y\':311.500841992063}'),(93,1,84,72,5,2,'{\'x\':474.97515501915564,\'y\':327.65226755612076}'),(94,1,27,72,5,2,'{\'x\':749.7926083176478,\'y\':255.86123090994874}'),(95,1,28,27,3,2,'{\'x\':814.84152913225,\'y\':196.7518137564864};{\'x\':959.8415291322498,\'y\':196.75181375648648}'),(96,1,29,27,3,2,'{\'x\':959.5600319095079,\'y\':198.8499108543131}'),(97,1,30,27,3,2,'{\'x\':1103.8484724858467,\'y\':198.53497130951226};{\'x\':959.8415291322493,\'y\':197.7518137564864}'),(98,1,88,84,3,2,'{\'x\':1336.8484724858472,\'y\':396.53497130951206};{\'x\':728.0668472804629,\'y\':394.8950055421265}'),(99,1,31,27,3,2,'{\'x\':1307.8415291322503,\'y\':197.75181375648594};{\'x\':959.8415291322494,\'y\':198.75181375648614}'),(100,1,26,73,3,2,'{\'x\':474.9256826175398,\'y\':411.481394041331}'),(101,1,85,84,3,2,'{\'x\':728.34057509258,\'y\':391.10245018006844}'),(102,1,86,84,3,2,'{\'x\':919.8484724858474,\'y\':395.5349713095123};{\'x\':729.0743617269079,\'y\':394.50376596600955}'),(103,1,87,84,3,2,'{\'x\':1111.8484724858467,\'y\':396.534971309512};{\'x\':728.6180005479822,\'y\':393.9837999791198}'),(104,1,78,27,3,2,'{\'x\':1024.842000575281,\'y\':256.71427508485874}'),(105,1,57,32,5,3,'{\'x\':610.0486645311152,\'y\':398.21495617920175}'),(106,1,62,32,5,3,'{\'x\':822.9281806900138,\'y\':457.621769109086}'),(107,1,67,32,5,3,'{\'x\':1268,\'y\':473.9999999999998};{\'x\':824,\'y\':474}'),(108,1,35,32,5,3,'{\'x\':532.9999999999999,\'y\':326};{\'x\':533,\'y\':397.9999999999998}'),(109,1,38,32,5,3,'{\'x\':400.99999999999983,\'y\':274.99999999999994};{\'x\':581,\'y\':276};{\'x\':822.9999999999999,\'y\':278}'),(110,1,41,32,5,3,'{\'x\':580,\'y\':275.0000000000002};{\'x\':823,\'y\':278.0000000000001}'),(111,1,44,32,5,3,'{\'x\':822.5010482949103,\'y\':306.5069859296839}'),(112,1,50,32,5,3,'{\'x\':1055,\'y\':276.99999999999994};{\'x\':823.0000000000002,\'y\':277.99999999999955}'),(113,1,33,32,3,3,'{\'x\':987,\'y\':323};{\'x\':988,\'y\':397.00000000000006}'),(114,1,34,32,3,3,'{\'x\':943.265277262353,\'y\':397.77027757769054}'),(115,1,58,57,3,3,'{\'x\':208.99999999999994,\'y\':589};{\'x\':239.9999999999999,\'y\':589.0000000000001};{\'x\':390,\'y\':589.0000000000002}'),(116,1,59,57,3,3,'{\'x\':295.99999999999994,\'y\':589};{\'x\':389.99999999999994,\'y\':589.0000000000001}'),(117,1,60,57,3,3,'{\'x\':391.2585382026573,\'y\':521.8905200061671}'),(118,1,61,57,3,3,'{\'x\':461.00000000000006,\'y\':590.0000000000007};{\'x\':389.9999999999999,\'y\':590}'),(119,1,71,62,3,3,'{\'x\':703.9999999999997,\'y\':593.0000000000002};{\'x\':823.9999999999995,\'y\':594}'),(120,1,89,62,3,3,'{\'x\':823.7061746076718,\'y\':580.2489015044896}'),(121,1,63,62,3,3,'{\'x\':909,\'y\':595};{\'x\':823.0000000000007,\'y\':594.0000000000001}'),(122,1,64,62,3,3,'{\'x\':980,\'y\':596};{\'x\':980.9485620377977,\'y\':596.0121610517666};{\'x\':824.0000000000002,\'y\':594.0000000000003}'),(123,1,65,62,3,3,'{\'x\':1053,\'y\':596.9999999999999};{\'x\':824.0000000000005,\'y\':593.9999999999995}'),(124,1,70,67,3,3,'{\'x\':1203,\'y\':616.0000000000003};{\'x\':1272.9999999999993,\'y\':616.9999999999994}'),(125,1,69,67,3,3,'{\'x\':1344.0712099571524,\'y\':615.984697000612};{\'x\':1345.056723117731,\'y\':615.9706182411755};{\'x\':1273.0000000000011,\'y\':616.9999999999995}'),(126,1,90,67,3,3,'{\'x\':1568.9999999999998,\'y\':617.9999999999999};{\'x\':1274.0000000000002,\'y\':615}'),(127,1,36,35,3,3,'{\'x\':113.99999999999997,\'y\':205};{\'x\':211.00000000000003,\'y\':204.99999999999997};{\'x\':211.0000000000001,\'y\':326}'),(128,1,37,35,3,3,'{\'x\':281.759866540906,\'y\':325.34211900316063}'),(129,1,39,38,3,3,'{\'x\':280.9999999999997,\'y\':151.99999999999983};{\'x\':402.00000000000006,\'y\':152}'),(130,1,92,38,3,3,'{\'x\':401.9286974579407,\'y\':153.4982983659064}'),(131,1,42,41,3,3,'{\'x\':579,\'y\':95.00000000000048}'),(132,1,43,41,3,3,'{\'x\':577.9999999999999,\'y\':95.00000000000018}'),(133,1,45,44,3,3,'{\'x\':770.6061590568141,\'y\':148.2083477327829};{\'x\':823.469182439591,\'y\':148.94299868851013}'),(134,1,46,44,3,3,'{\'x\':889,\'y\':147.99999999999997};{\'x\':822.9999999999999,\'y\':148.00000000000114}'),(135,1,47,44,3,3,'{\'x\':1039,\'y\':146.99999999999972};{\'x\':824.0794455437408,\'y\':149.13048301003042}'),(136,1,48,44,3,3,'{\'x\':1217.0000000000005,\'y\':144.99999999999986};{\'x\':824.0000000000002,\'y\':149.99999999999994}'),(137,1,49,44,3,3,'{\'x\':1392,\'y\':143.0000000000001};{\'x\':821.8473473305276,\'y\':150.10812131452286}'),(138,1,51,50,3,3,'{\'x\':1293.616778310066,\'y\':235.18370025934934}'),(139,1,52,50,3,3,'{\'x\':1442,\'y\':313.9999999999999};{\'x\':1441.0000000000007,\'y\':237.00000000000003}'),(140,1,53,50,3,3,'{\'x\':1444,\'y\':403.9999999999999};{\'x\':1439.999999999999,\'y\':236.99999999999977}'),(141,1,54,50,3,3,'{\'x\':1445.9999999999998,\'y\':494.00000000000017};{\'x\':1440.9999999999995,\'y\':236.99999999999972}'),(142,1,55,50,3,3,'{\'x\':1448,\'y\':571.9999999999998};{\'x\':1440.0000000000002,\'y\':237}'),(143,1,91,50,3,3,'{\'x\':1439,\'y\':159};{\'x\':1440.0000000000005,\'y\':236.99999999999997}'),(232,1,32,84,2,4,'{\'x\':-988.2359632913441,\'y\':-951.8103241540371};{\'x\':-319.4815098371267,\'y\':-953.0186736286499}'),(233,1,32,20,2,4,'{\'x\':-854.6013207506861,\'y\':-767.1148771605798}'),(234,1,32,27,2,4,'{\'x\':-988.3387121979307,\'y\':-671.6765206578543};{\'x\':-974.8746142326793,\'y\':-671.6633472599729};{\'x\':-881.6030760219256,\'y\':-671.6327409718069};{\'x\':-880.3387121979304,\'y\':-533.0098539911878};{\'x\':-323.00537886459705,\'y\':-530.3431873245208}'),(235,1,32,67,1,4,'{\'x\':-1112.6030760219257,\'y\':-766.6327409718037};{\'x\':-1109.4158110522417,\'y\':-280.0665701535794}'),(236,1,57,20,2,4,'{\'x\':-923.4018092467566,\'y\':-621.137974980062};{\'x\':-922.6030760219257,\'y\':-697.6327409718073};{\'x\':-779.605755831528,\'y\':-698.2517769899473};{\'x\':-691.6030760219255,\'y\':-697.6327409718069}'),(237,1,62,32,2,4,'{\'x\':-1064.0866850676534,\'y\':-384.47223943593764};{\'x\':-1063.6030760219257,\'y\':-766.6327409718072}'),(238,1,93,14,1,4,'{\'x\':-808.3387121979307,\'y\':-891.6765206622291};{\'x\':-808.6389747768841,\'y\':-281.22937748887347}'),(239,1,5,93,2,4,'{\'x\':-706.6030760219257,\'y\':-666.6327409718074};{\'x\':-545.6030760219257,\'y\':-665.6327409718065};{\'x\':-547.4698322288425,\'y\':-875.642814249965};{\'x\':-547.6030760219257,\'y\':-890.6327409718065}'),(240,1,84,32,2,4,'{\'x\':-319.94685346915963,\'y\':-837.0064609626666};{\'x\':-987.5115317947335,\'y\':-834.3519942169112}'),(241,1,80,72,2,4,'{\'x\':-181.6030760219259,\'y\':-623.6327409718075};{\'x\':-181.6030760219258,\'y\':-776.6327409718083}'),(242,1,27,5,2,4,'{\'x\':-369.47753487234206,\'y\':-482.1635275661221};{\'x\':-706.6030760219259,\'y\':-483.6327409718072}'),(243,1,27,32,2,4,'{\'x\':-403.0053788645975,\'y\':-482.3431873245204};{\'x\':-403.00537886459716,\'y\':-214.34318732452073};{\'x\':-1137.672045531264,\'y\':-214.34318732452084};{\'x\':-1137.6720455312643,\'y\':-767.6765206578542}'),(244,1,73,27,2,4,'{\'x\':-258.60307602192586,\'y\':-284.63274097180545};{\'x\':-258.60899150214834,\'y\':-483.8567189443867}'),(245,1,84,5,2,4,'{\'x\':-485.60307602192574,\'y\':-890.632740971807};{\'x\':-485.9305355073303,\'y\':-696.4536368161712};{\'x\':-485.09227442745885,\'y\':-608.4362234296373}'),(246,1,23,23,1,1,NULL),(247,1,23,6,1,1,'{\'x\':838.0000000000002,\'y\':211.00000000000006};{\'x\':836.9999999999999,\'y\':169.00000000000003}'),(248,1,68,67,3,3,'{\'x\':1451.9999999999998,\'y\':616.9999999999998};{\'x\':1273.9999999999998,\'y\':615.9999999999999}'); +/*!40000 ALTER TABLE `taxonomy_relation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `taxonomy_relation_annotation` +-- + +DROP TABLE IF EXISTS `taxonomy_relation_annotation`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy_relation_annotation` ( + `id_taxonomy` int(11) NOT NULL, + `id_taxonomy_relation` int(11) NOT NULL, + `annotation` longtext, + PRIMARY KEY (`id_taxonomy_relation`), + UNIQUE KEY `id_taxonomy_relation_annotation_UNIQUE` (`id_taxonomy_relation`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `taxonomy_relation_annotation` +-- + +LOCK TABLES `taxonomy_relation_annotation` WRITE; +/*!40000 ALTER TABLE `taxonomy_relation_annotation` DISABLE KEYS */; +INSERT INTO `taxonomy_relation_annotation` VALUES (1,232,'Impedes'),(1,233,'Transforms'),(1,234,'Mitigates or raises the bar'),(1,236,'Affects'),(1,237,'Strengthens'),(1,239,'Contains'),(1,240,'Identifies'),(1,241,'Support'),(1,242,'Tampers with'),(1,243,'Tampers with'),(1,244,'Executes'),(1,245,'Identifies asset'); +/*!40000 ALTER TABLE `taxonomy_relation_annotation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `user` +-- + +DROP TABLE IF EXISTS `user`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `user` ( + `email` varchar(128) NOT NULL, + `password` varchar(128) NOT NULL, + `admin` tinyint(1) DEFAULT '0', + `taxonomies` varchar(500) DEFAULT '', + PRIMARY KEY (`email`), + UNIQUE KEY `email_UNIQUE` (`email`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `user` +-- + +LOCK TABLES `user` WRITE; +/*!40000 ALTER TABLE `user` DISABLE KEYS */; +INSERT INTO `user` VALUES ('222@df.de','222',0,''),('felixhuber245@gmx.de','123',0,''),('felixhuber2465@gmx.de','123',0,''),('felixhuber2@gmx.de','123',1,''),('felixhuber4@gmx.de','123',0,''),('felixhuber5@gmx.de','123',0,''),('felixhuber62@gmx.de','123',0,''),('felixhuber6@gmx.de','123',0,''),('felixhuber7@gmx.de','123',0,''),('test3434@gmx.de','234',0,''),('test@gmx.de','123',0,''); +/*!40000 ALTER TABLE `user` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Dumping routines for database 'classification' +-- +/*!50003 DROP PROCEDURE IF EXISTS `insertallchildrenperattribute` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`localhost` PROCEDURE `insertallchildrenperattribute`(taxonomyId INT(11)) +BEGIN + DECLARE cursor_id_attribute INT(11); + DECLARE cursor_text VARCHAR(50); + DECLARE done INT DEFAULT FALSE; + DECLARE cursor_i CURSOR FOR SELECT id_attribute, text FROM attribute; + DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + DELETE FROM allchildrenperattribute WHERE id_taxonomy = taxonomyId; + OPEN cursor_i; + read_loop: LOOP + FETCH cursor_i INTO cursor_id_attribute, cursor_text; + IF done THEN + LEAVE read_loop; + END IF; + INSERT IGNORE INTO allchildrenperattribute(id_attribute, id_taxonomy, text, children) VALUES(cursor_id_attribute, taxonomyId, cursor_text, (SELECT (CASE WHEN b.children IS NULL THEN CAST(cursor_id_attribute AS CHAR(50)) ELSE CONCAT(CAST(cursor_id_attribute AS CHAR(50)), ",", b.children) END) AS children FROM (SELECT GROUP_CONCAT(lv SEPARATOR ',') AS children FROM (SELECT @pv:=(SELECT GROUP_CONCAT(DISTINCT relation1.id_src_attribute SEPARATOR ',') FROM taxonomy_relation AS relation1 WHERE relation1.id_taxonomy = taxonomyId AND relation1.id_relation > 2 AND FIND_IN_SET(relation1.id_dest_attribute, @pv)) AS lv FROM taxonomy_relation AS relation2 JOIN (SELECT @pv:=cursor_id_attribute) tmp ON (relation2.id_taxonomy = taxonomyId)) a) b)); + END LOOP; + CLOSE cursor_i; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `insertallparentsperattribute` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`localhost` PROCEDURE `insertallparentsperattribute`(taxonomyId INT(11)) +BEGIN + DECLARE cursor_id_attribute INT(11); + DECLARE cursor_text VARCHAR(50); + DECLARE done INT DEFAULT FALSE; + DECLARE cursor_i CURSOR FOR SELECT id_attribute, text FROM attribute; + DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + DELETE FROM allparentsperattribute WHERE id_taxonomy = taxonomyId; + OPEN cursor_i; + read_loop: LOOP + FETCH cursor_i INTO cursor_id_attribute, cursor_text; + IF done THEN + LEAVE read_loop; + END IF; + INSERT IGNORE INTO allparentsperattribute(id_attribute, id_taxonomy, text, parents) VALUES(cursor_id_attribute, taxonomyId, cursor_text, (SELECT (CASE WHEN b.parents IS NULL THEN "" ELSE b.parents END) AS parents FROM (SELECT GROUP_CONCAT(lv SEPARATOR ',') AS parents FROM (SELECT @pv:=(SELECT GROUP_CONCAT(DISTINCT parent.text SEPARATOR ',') FROM taxonomy_relation AS relation1 INNER JOIN attribute as parent ON (relation1.id_dest_attribute = parent.id_attribute AND parent.id_taxonomy = taxonomyId) WHERE relation1.id_taxonomy = taxonomyId AND relation1.id_relation > 2 AND FIND_IN_SET((SELECT DISTINCT text FROM attribute WHERE id_attribute = relation1.id_src_attribute AND id_taxonomy = taxonomyId), @pv)) AS lv FROM taxonomy_relation JOIN (SELECT @pv:=text FROM attribute WHERE id_attribute = cursor_id_attribute AND id_taxonomy = taxonomyId) tmp) a) b)); + END LOOP; + CLOSE cursor_i; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; + +-- +-- Final view structure for view `paper_merged_attributes` +-- + +/*!50001 DROP VIEW IF EXISTS `paper_merged_attributes`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8 */; +/*!50001 SET character_set_results = utf8 */; +/*!50001 SET collation_connection = utf8_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ +/*!50001 VIEW `paper_merged_attributes` AS select 1 AS `id_taxonomy`,1 AS `id_paper`,1 AS `citation`,1 AS `bib`,1 AS `atts`,1 AS `leaf_atts` */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2018-01-28 14:47:16 diff --git a/SQLSchema/dumps/28_01_dump.sql b/SQLSchema/dumps/28_01_dump.sql new file mode 100644 index 0000000..0e0e081 --- /dev/null +++ b/SQLSchema/dumps/28_01_dump.sql @@ -0,0 +1,793 @@ +-- MySQL dump 10.13 Distrib 5.7.17, for Win64 (x86_64) +-- +-- Host: 127.0.0.1 Database: classification +-- ------------------------------------------------------ +-- Server version 5.7.20-log + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `allchildrenperattribute` +-- + +DROP TABLE IF EXISTS `allchildrenperattribute`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `allchildrenperattribute` ( + `id_attribute` int(10) unsigned NOT NULL, + `id_taxonomy` int(11) unsigned NOT NULL, + `text` varchar(50) NOT NULL, + `children` longtext, + PRIMARY KEY (`id_attribute`), + UNIQUE KEY `allchildrenperattribute_id_attribute_UNIQUE` (`id_attribute`), + KEY `allchildrenperattribute_id_taxonomy_foreign` (`id_taxonomy`), + CONSTRAINT `allchildrenperattribute_id_taxonomy_foreign` FOREIGN KEY (`id_taxonomy`) REFERENCES `taxonomy` (`id_taxonomy`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `allchildrenperattribute` +-- + +LOCK TABLES `allchildrenperattribute` WRITE; +/*!40000 ALTER TABLE `allchildrenperattribute` DISABLE KEYS */; +INSERT INTO `allchildrenperattribute` VALUES (1,1,'Integrity Protection Assets','1'),(2,1,'Behavior','2'),(3,1,'Data','3'),(4,1,'Data and behavior','4'),(5,1,'Representation','5,6,7,8,9,10,11,13,12'),(6,1,'Static','6'),(7,1,'In memory','7,9,10'),(8,1,'In execution','8,11,13,12'),(9,1,'Code invariants','9'),(10,1,'Data invariants','10'),(11,1,'Trace','11,12'),(12,1,'Timed trace','12'),(13,1,'HW counters','13'),(14,1,'Granularity','14,15,17,18,19,95'),(15,1,'Instructions','15'),(16,1,'BB','16'),(17,1,'Function','17'),(18,1,'Slice','18'),(19,1,'Application','19'),(20,1,'Lifecycle activity','20,21,22,23,24,25,94'),(21,1,'Pre-compile','21'),(22,1,'Compile','22'),(23,1,'Post-compile','23'),(24,1,'Load','24'),(25,1,'Run','25'),(26,1,'Not root','26'),(27,1,'Attack','27,28,29,30,31,78'),(28,1,'Binary ','28'),(29,1,'Process memory','29'),(30,1,'Runtime data','30'),(31,1,'Control flow','31'),(32,1,'Measure','32,33,34,35,38,41,44,50,57,62,67,36,37,39,42,43,45,46,47,48,49,51,52,53,54,55,58,59,60,61,63,64,65,68,69,70,71,89,90,91,92'),(33,1,'Local','33'),(34,1,'Remote','34'),(35,1,'Monitor','35,36,37'),(36,1,'State inspection','36'),(37,1,'Introspection','37'),(38,1,'Response','38,39,92'),(39,1,'Proactive','39'),(40,1,'Postmortem','40'),(41,1,'Transformation','41,42,43'),(42,1,'Manual','42'),(43,1,'Automatic','43'),(44,1,'Check','44,45,46,47,48,49'),(45,1,'Checksum','45'),(46,1,'Signature','46'),(47,1,'Equation eval','47'),(48,1,'Majority vote','48'),(49,1,'Access control','49'),(50,1,'Hardening','50,51,52,53,54,55,91'),(51,1,'Cyclic checks','51'),(52,1,'Mutation','52'),(53,1,'Code concealment','53'),(54,1,'Cloning','54'),(55,1,'Layered interpretation','55'),(56,1,'Block chain','56'),(57,1,'Overhead','57,58,59,60,61'),(58,1,'Fair','58'),(59,1,'Medium','59'),(60,1,'High','60'),(61,1,'N/A','61'),(62,1,'Trust anchor','62,63,64,65,71,89'),(63,1,'TPM','63'),(64,1,'SGX','64'),(65,1,'Other','65'),(66,1,'None','66'),(67,1,'Protection level','67,68,69,70,90'),(68,1,'Internal','68'),(69,1,'External','69'),(70,1,'Hypervisor','70'),(71,1,'Software','71'),(72,1,'Reverse engineering','72,27,73,80,84,26,28,29,30,31,78,79,81,82,83,85,86,87,88'),(73,1,'Attacker','73,26'),(78,1,'Call interposition','78'),(79,1,'Disassembler','79'),(80,1,'Tools','80,79,81,82,83'),(81,1,'Debugger','81'),(82,1,'Tracer','82'),(83,1,'Emulator','83'),(84,1,'Discovery','84,85,86,87,88'),(85,1,'Pattern matching','85'),(86,1,'Taint analysis','86'),(87,1,'Graph-based analysis','87'),(88,1,'Symbolic execution','88'),(89,1,'Dongle','89'),(90,1,'Self-check','90'),(91,1,'Hash chain','91'),(92,1,'Reactive','92'),(93,1,'Asset','93,2,3,4'),(94,1,'Link','94'),(95,1,'Basic block','95'); +/*!40000 ALTER TABLE `allchildrenperattribute` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `allparentsperattribute` +-- + +DROP TABLE IF EXISTS `allparentsperattribute`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `allparentsperattribute` ( + `id_attribute` int(11) unsigned NOT NULL, + `id_taxonomy` int(11) unsigned NOT NULL, + `text` varchar(50) NOT NULL, + `parents` longtext, + PRIMARY KEY (`id_attribute`), + UNIQUE KEY `allparentsperattribute_id_attribute_UNIQUE` (`id_attribute`), + KEY `allparentsperattribute_id_taxonomy_foreign` (`id_taxonomy`), + CONSTRAINT `allparentsperattribute_id_taxonomy_foreign` FOREIGN KEY (`id_taxonomy`) REFERENCES `taxonomy` (`id_taxonomy`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `allparentsperattribute` +-- + +LOCK TABLES `allparentsperattribute` WRITE; +/*!40000 ALTER TABLE `allparentsperattribute` DISABLE KEYS */; +INSERT INTO `allparentsperattribute` VALUES (1,1,'Integrity Protection Assets',''),(2,1,'Behavior','Asset'),(3,1,'Data','Asset'),(4,1,'Data and behavior','Asset'),(5,1,'Representation',''),(6,1,'Static','Representation'),(7,1,'In memory','Representation'),(8,1,'In execution','Representation'),(9,1,'Code invariants','In memory,Representation'),(10,1,'Data invariants','In memory,Representation'),(11,1,'Trace','In execution,Representation'),(12,1,'Timed trace','Trace,In execution,Representation'),(13,1,'HW counters','In execution,Representation'),(14,1,'Granularity',''),(15,1,'Instructions','Granularity'),(16,1,'BB',''),(17,1,'Function','Granularity'),(18,1,'Slice','Granularity'),(19,1,'Application','Granularity'),(20,1,'Lifecycle activity',''),(21,1,'Pre-compile','Lifecycle activity'),(22,1,'Compile','Lifecycle activity'),(23,1,'Post-compile','Lifecycle activity'),(24,1,'Load','Lifecycle activity'),(25,1,'Run','Lifecycle activity'),(26,1,'Not root','Attacker,Reverse engineering'),(27,1,'Attack','Reverse engineering'),(28,1,'Binary ','Attack,Reverse engineering'),(29,1,'Process memory','Attack,Reverse engineering'),(30,1,'Runtime data','Attack,Reverse engineering'),(31,1,'Control flow','Attack,Reverse engineering'),(32,1,'Measure',''),(33,1,'Local','Measure'),(34,1,'Remote','Measure'),(35,1,'Monitor','Measure'),(36,1,'State inspection','Monitor,Measure'),(37,1,'Introspection','Monitor,Measure'),(38,1,'Response','Measure'),(39,1,'Proactive','Response,Measure'),(40,1,'Postmortem',''),(41,1,'Transformation','Measure'),(42,1,'Manual','Transformation,Measure'),(43,1,'Automatic','Transformation,Measure'),(44,1,'Check','Measure'),(45,1,'Checksum','Check,Measure'),(46,1,'Signature','Check,Measure'),(47,1,'Equation eval','Check,Measure'),(48,1,'Majority vote','Check,Measure'),(49,1,'Access control','Check,Measure'),(50,1,'Hardening','Measure'),(51,1,'Cyclic checks','Hardening,Measure'),(52,1,'Mutation','Hardening,Measure'),(53,1,'Code concealment','Hardening,Measure'),(54,1,'Cloning','Hardening,Measure'),(55,1,'Layered interpretation','Hardening,Measure'),(56,1,'Block chain',''),(57,1,'Overhead','Measure'),(58,1,'Fair','Overhead,Measure'),(59,1,'Medium','Overhead,Measure'),(60,1,'High','Overhead,Measure'),(61,1,'N/A','Overhead,Measure'),(62,1,'Trust anchor','Measure'),(63,1,'TPM','Trust anchor,Measure'),(64,1,'SGX','Trust anchor,Measure'),(65,1,'Other','Trust anchor,Measure'),(66,1,'None',''),(67,1,'Protection level','Measure'),(68,1,'Internal','Protection level,Measure'),(69,1,'External','Protection level,Measure'),(70,1,'Hypervisor','Protection level,Measure'),(71,1,'Software','Trust anchor,Measure'),(72,1,'Reverse engineering',''),(73,1,'Attacker','Reverse engineering'),(78,1,'Call interposition','Attack,Reverse engineering'),(79,1,'Disassembler','Tools,Reverse engineering'),(80,1,'Tools','Reverse engineering'),(81,1,'Debugger','Tools,Reverse engineering'),(82,1,'Tracer','Tools,Reverse engineering'),(83,1,'Emulator','Tools,Reverse engineering'),(84,1,'Discovery','Reverse engineering'),(85,1,'Pattern matching','Discovery,Reverse engineering'),(86,1,'Taint analysis','Discovery,Reverse engineering'),(87,1,'Graph-based analysis','Discovery,Reverse engineering'),(88,1,'Symbolic execution','Discovery,Reverse engineering'),(89,1,'Dongle','Trust anchor,Measure'),(90,1,'Self-check','Protection level,Measure'),(91,1,'Hash chain','Hardening,Measure'),(92,1,'Reactive','Response,Measure'),(93,1,'Asset',''),(94,1,'Link','Lifecycle activity'),(95,1,'Basic block','Granularity'); +/*!40000 ALTER TABLE `allparentsperattribute` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `articles` +-- + +DROP TABLE IF EXISTS `articles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `articles` ( + `ArticleId` int(11) NOT NULL AUTO_INCREMENT, + `Title` varchar(500) NOT NULL, + `year` varchar(4) DEFAULT NULL, + `cited_by` varchar(100) DEFAULT NULL, + `Keywords` varchar(2000) DEFAULT NULL, + `Abstract` varchar(10000) DEFAULT NULL, + `Journal` varchar(500) DEFAULT NULL, + `ResearchId` int(11) NOT NULL, + `Authors` varchar(1000) NOT NULL, + `File` varchar(200) NOT NULL, + `Source` varchar(50) NOT NULL, + `Enabled` bit(1) NOT NULL DEFAULT b'0', + PRIMARY KEY (`ArticleId`) +) ENGINE=InnoDB AUTO_INCREMENT=2355 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `articles` +-- + +LOCK TABLES `articles` WRITE; +/*!40000 ALTER TABLE `articles` DISABLE KEYS */; +INSERT INTO `articles` VALUES (1,'','2012','0','','Proceedings of the 2Nd International Workshop on Adaptive Services for the Future Internet and 6th International Workshop on Web APIs and Service Mashups','',2,'','acm/bpel security.csv','acm','\0'),(2,'Cloud-Assisted IoT-Based SCADA Systems Security: A Review of the State of the Art and Future Challenges','2016','','APT;Industrial Control System;Internet of Things (IoT);NIST;PRECYSE;SOA;Supervisory Control and Data Acquisition;industrial control system;supervisory control and data acquisition system','Industrial systems always prefer to reduce their operational expenses. To support such reductions, they need solutions that are capable of providing stability, fault tolerance, and flexibility. One such solution for industrial systems is cyber physical system (CPS) integration with the Internet of Things (IoT) utilizing cloud computing services. These CPSs can be considered as smart industrial systems, with their most prevalent applications in smart transportation, smart grids, smart medical and eHealthcare systems, and many more. These industrial CPSs mostly utilize supervisory control and data acquisition (SCADA) systems to control and monitor their critical infrastructure (CI). For example, WebSCADA is an application used for smart medical technologies, making improved patient monitoring and more timely decisions possible. The focus of the study presented in this paper is to highlight the security challenges that the industrial SCADA systems face in an IoT-cloud environment. Classical SCADA systems are already lacking in proper security measures; however, with the integration of complex new architectures for the future Internet based on the concepts of IoT, cloud computing, mobile wireless sensor networks, and so on, there are large issues at stakes in the security and deployment of these classical systems. Therefore, the integration of these future Internet concepts needs more research effort. This paper, along with highlighting the security challenges of these CI\'s, also provides the existing best practices and recommendations for improving and maintaining security. Finally, this paper briefly describes future research directions to secure these critical CPSs and help the research community in identifying the research gaps in this regard.','IEEE Access',1,'A. Sajid; H. Abbas; K. Saleem','ieee/soa security.csv','ieee',''),(3,'Web Services and Formal Methods - 8th International Workshop, WS-FM 2011, Revised Selected Papers','2012','','','The proceedings contain 10 papers. The topics discussed include: understanding distributed services through the π-calculus; reliable contracts for unreliable half-duplex communications; behavior based service composition; compatibility of data-centric web services; time and exceptional behavior in multiparty structured interactions; toward design, modeling and analysis of dynamic workflow reconfigurations: a process algebra perspective; an operational semantics of BPEL orchestrations integrating web services resource framework; design of a BPEL verification tool; applying process analysis to the Italian egovernment enterprise architecture; and domain-specific multi-modeling of security concerns in service-oriented architectures.','',2,'[No author name available]','scopus/bpel security.csv','scopus','\0'),(4,'Research Challenges for Business Process Models at Run-Time','2014','1',' run-time models business process models business process management adaptive systems business process optimisation','Abstract Today’s fast and competitive markets require businesses to react faster to changes in its environment, and sometimes even before the changes actually happen. Changes can occur on almost every level, e.g. change in demand of customers, change of law, or change of the corporate strategy. Not adapting to these changes can result in financial and legal consequences for any business organisation. IT-controlled business processes are essential parts of modern organisations which motivates why business processes are required to efficiently adapt to these changes in a quick and flexible way. This requirement suggests a more dynamic handling of business processes and their models, moving from design-time business process models to run-time business process models. One general approach to address this problem is provided by the community of models@run.time , in which models reflect the system’s current state at any point in time and allow immediate reasoning and adaptation mechanisms. This paper examines the potential role of business process models at run-time by: (1) discussing the state-of the art of both, business process modelling and models@run.time, (2) reflecting on the nature of business processes at run-time, and (3) most importantly, highlighting key research challenges that need addressing to make this step.','',2,'David RedlichGordon BlairAwais RashidThomas MolkaWasif Gilani','springer/bpel security.csv','springer',''),(5,'Integration Adapter Modeling','2015','0',' Business Process Model and Notation (BPMN) Conceptual modeling Language design Message endpoints Quality of service','Abstract Integration Adapters are a fundamental part of an integration system, since they provide (business) applications access to its messaging channel. However, their modeling and configuration remain under-represented. In previous work, the integration control and data flow syntax and semantics have been expressed in the Business Process Model and Notation (BPMN) as a semantic model for message-based integration, while adapter and the related quality of service modeling were left for further studies. In this work we specify common adapter capabilities and derive general modeling patterns, for which we define a compliant representation in BPMN. The patterns extend previous work by the adapter flow, evaluated syntactically and semantically for common adapter characteristics.','',2,'Daniel RitterManuel Holzleitner','springer/bpmn security.csv','springer',''),(6,'Geospatial Information Security Web Service Based on Agent','2010','0','WebService;geospatial information security;mobile agent','With the development of remote sensing technology, the use of remote sensing images collected by space platforms is becoming more and more pervasive. There is more and more need to distribute processing of remote sensing images. At present, WebService can figure out non-security remote sensing images network processing, but due to network transmit without non-encryption at client side, which may lead to image information leakage. To settle this problem, we propose a geospatial information security Web service based on mobile agent and WebService. This method can guarantee security image security network processing, which is useful complent of WebService.','2010 International Conference on Multimedia Information Networking and Security',1,'J. Sun; J. Liu; Z. Xu; Z. Wu','ieee/webservice security.csv','ieee','\0'),(7,'A Mashup-Based Application for the Smart City Problematic','2015','0',' HCI Mashup Smart city Orchestration Service orchestration User interface orchestration','Abstract A mashup is an application that combines data and functionalities from more than one source. It groups disparate data in ways that enable users to do new things or accomplish common tasks with newfound efficiency. The introduction of mashup applications and their increasing use by users in the field of e-Learning and e-commerce highlights new issues in a context called the “smart city”. Indeed, transportation based on private cars, public transportation services and shared bicycles need appropriate user interfaces, which can be “mashuped” to allow an integrated approach to transportation related to weather conditions, real-time traffic situations and personal preferences. These new needs for composition and combination (orchestration) of existing web services and their underlying user interfaces are good examples of mashuping. First, we provide in this paper some valuable explanations on two kinds of orchestration: service orchestration and HCI (Human Computer Interface) orchestration. Secondly, we apply this global approach to the context of “smart cities”.','',2,'Abdelghani AtroucheDjilali IdoughiBertrand David','springer/bpel security.csv','springer',''),(8,'An authentication and access control framework for CoAP-based Internet of Things','2014','0','','Internet of Things (IoT) and Cyber-physical Systems (CPS) are two very hot research topics today, and more and more products are starting to appear on the market. Research has shown that the use of Service Oriented Architecture (SOA) can enable distributed application and devices to device communication, even on very resource constrained devices, and thus play an important role for IoT and CPS. In order to realize the vision of Internet of Things, communication between devices must be secured. Security mechanisms for resource constrained devices has attracted much interest from the academic community, where research groups have shown solutions like IPsec, VPN-tunnels, (D)TLS, etc. are feasible to use on this type of networks. However, even though the use of well-known security mechanisms are vital for SOA-based IoT/CPS networks and systems to be protected, they do not provide any fine-grain access control. In this paper, a CoAP-based framework for service-level access control on low-power devices is presented. The framework allows fine grain access control on a per service and method basis. For example, by using this approach a device can allow read/write access to its services to one group of users while only allowing read access to another group. Users without the right credentials are not even allowed to discover available services. To demonstrate the validity of the proposed approach, several implementations are presented together with test results. The aim is to provide a holistic framework for secure SOA-based low power networks comprise by resource constrain devices.','IECON 2014 - 40th Annual Conference of the IEEE Industrial Electronics Society',1,'P. P. Pereira; J. Eliasson; J. Delsing','ieee/service oriented architecture security.csv','ieee','\0'),(9,'Quantitative trust management with QoS-aware service selection','2015','','QoS-based service selection; Quality of service; Service-oriented architecture; Trust management','As the number of services available on the web increases, discovering which services are trustworthy becomes vital. Given the black-box nature of services, selecting a trustworthy service that best fits users\' requirements is critical. Once a set of services fulfilling users\' functional requirements has been found, which one a user chooses depends mostly on the Quality of Services (QoS), particularly security, trust and reputation. This paper proposes a trust management model to support service discovery and selection based on QoS. We define a quantitative trust-evaluation method for dynamic service discovery and selection and show experimental results. The proposed model allows service consumers to get the most trustworthy services possible. Our mechanism uses consumers\' feedback to describe how trustworthy they have found services and service providers to be. Choosing services using a quantitative measurement rather than their intuition will allow consumers to select a highly reliable service that meets their quality and technical requirements. Copyright © 2015 Inderscience Enterprises Ltd.','',1,'Kim Y., Shin Y., Doh K.-G.','scopus/service oriented architecture security.csv','scopus',''),(10,'Form Follows Function','2012','2','','Abstract We argue that, for certain constrained domains, elaborate model transformation technologies—implemented from scratch in general-purpose programming languages—are unnecessary for model-driven engineering; instead, lightweight configuration of commercial off-the-shelf productivity tools suffices. In particular, in the CancerGrid project, we have been developing model-driven techniques for the generation of software tools to support clinical trials. A domain metamodel captures the community’s best practice in trial design. A scientist authors a trial protocol, modelling their trial by instantiating the metamodel; customized software artifacts to support trial execution are generated automatically from the scientist’s model. The metamodel is expressed as an XML Schema, in such a way that it can be instantiated by completing a form to generate a conformant XML document. The same process works at a second level for trial execution: among the artifacts generated from the protocol are models of the data to be collected, and the clinician conducting the trial instantiates such models in reporting observations—again by completing a form to create a conformant XML document, representing the data gathered during that observation. Simple standard form management tools are all that is needed. Our approach is applicable to a wide variety of information-modelling domains: not just clinical trials, but also electronic public sector computing, customer relationship management, document workflow, and so on.','',2,'Jim DaviesJeremy GibbonsRadu CalinescuCharles CrichtonSteve HarrisAndrew Tsui','springer/bpel security.csv','springer','\0'),(11,'A virtual mart for knowledge discovery in databases','2013','4','','Abstract The Web has profoundly reshaped our vision of information management and processing, enlightening the power of a collaborative model of information production and consumption. This new vision influences the Knowledge Discovery in Databases domain as well. In this paper we propose a service-oriented, semantic-supported approach to the development of a platform for sharing and reuse of resources (data processing and mining techniques), enabling the management of different implementations of the same technique and characterized by a community-centered attitude, with functionalities for both resource production and consumption, facilitating end-users with different skills as well as resource providers with different technical and domain specific capabilities. We first describe the semantic framework underlying the approach, then we demonstrate how this framework is exploited to give different functionalities to users through the presentation of the platform functionalities.','Information Systems Frontiers',2,'Claudia DiamantiniDomenico PotenaEmanuele Storti','springer/bpel security.csv','springer','\0'),(12,'Verification of business process entailment constraints using SPIN','2009','8','Access Control; Model Checking; Processes; SPIN; Verification','The verification of access controls is essential for providing secure systems. Model checking is an automated technique used for verifying finite state machines. The properties to be verified are usually expressed as formula in temporal logic. In this paper we present an approach to verify access control security properties of a security annotated business process model. To this end we utilise a security enhanced BPMN notation to define access control properties. To enhance the usability the complex and technical details are hidden from the process modeller by using an automatic translation of the process model into a process meta language (Promela) based on Coloured Petri net (CPN) semantics. The model checker SPIN is used for the process model verification and a trace file is written to provide visual feedback to the modeller on the abstraction level of the verified process model. As a proof of concept the described translation methodology is implemented as a plug-in for the free web-based BPMN modelling tool Oryx. © 2009 Springer Berlin Heidelberg Business.','',2,'Wolter C., Miseldine P., Meinel C.','scopus/bpmn security.csv','scopus','\0'),(13,'A Review of Agent and Service-Oriented Concepts Applied to Intelligent Energy Systems','2014','21','Active demand response;distributed generation;electrical grid;multiagent systems (MASs);power balancing;renewable energy sources (RESs);service-oriented architectures (SOAs);smart grid','The intention of this paper is to provide an overview of using agent and service-oriented technologies in intelligent energy systems. It focuses mainly on ongoing research and development activities related to smart grids. Key challenges as a result of the massive deployment of distributed energy resources are discussed, such as aggregation, supply-demand balancing, electricity markets, as well as fault handling and diagnostics. Concepts and technologies like multiagent systems or service-oriented architectures are able to deal with future requirements supporting a flexible, intelligent, and active power grid management. This work monitors major achievements in the field and provides a brief overview of large-scale smart grid projects using agent and service-oriented principles. In addition, future trends in the digitalization of power grids are discussed covering the deployment of resource constrained devices and appropriate communication protocols. The employment of ontologies ensuring semantic interoperability as well as the improvement of security issues related to smart grids is also discussed.','IEEE Transactions on Industrial Informatics',1,'P. Vrba; V. Mařík; P. Siano; P. Leitão; G. Zhabelova; V. Vyatkin; T. Strasser','ieee/service oriented architecture security.csv','ieee','\0'),(14,'Inter-organizational Reference Models – May Inter-organizational Systems Profit from Reference Modeling?','2012','0','','Abstract Inter-organizational systems span from business models over business process models to their execution on top of a service-oriented architecture. In our project BSopt we have developed an integrated model-driven approach that addresses the different layers and builds up-on well-estabilshed languages on each of these layers. When applying our integrated methodology we recognized that models for the same business case are similar, but still varying for different business partner networks. Accordingly, a systematic approach to derive a model from another model, i.e., from a reference model, is needed. Significant achievements have been made by the reference modeling community in finding ways to leverage the potentials of model reuse in business process modeling. In this paper we outline the potentials of adapting design techniques known from reference modeling to the specific needs of inter-organizational system develpment even if we do not provide a solution yet.','',2,'Birgit HofreiterChristian HuemerGerti KappelDieter MayrhoferJan vom Brocke','springer/bpel security.csv','springer','\0'),(15,'Performance and reliability prediction for evolving service-oriented software systems','2013','1',' Software architecture Performance prediciton Reliablity prediction Case study','Abstract During software system evolution, software architects intuitively trade off the different architecture alternatives for their extra-functional properties, such as performance, maintainability, reliability, security, and usability. Researchers have proposed numerous model-driven prediction methods based on queuing networks or Petri nets, which claim to be more cost-effective and less error-prone than current practice. Practitioners are reluctant to apply these methods because of the unknown prediction accuracy and work effort. We have applied a novel model-driven prediction method called Q-ImPrESS on a large-scale process control system from ABB consisting of several million lines of code. This paper reports on the achieved performance prediction accuracy and reliability prediction sensitivity analyses as well as the effort in person hours for achieving these results.','Empirical Software Engineering',1,'Heiko KoziolekBastian SchlichSteffen BeckerMichael Hauck','springer/soa security.csv','springer','\0'),(16,'Approach and Refinement Strategies for Flexible Choreography Enactment','2014','0',' Process Flexibility Choreography Flexibility Refinement Strategies Late Modeling Late Selection Process Fragments','Abstract Collaborative, Dynamic & Complex (CDC) systems such as adaptive pervasive systems, eScience applications, and complex business systems inherently require modeling and run time flexibility. Since domain problems in CDC systems are expressed as service choreographies and enacted by service orchestrations, we propose an approach introducing placeholder modeling constructs usable both on the level of choreographies and orchestrations, and a classification of strategies for their refinement to executable workflows. These abstract modeling constructs allow deferring the modeling decisions to later points in the life cycle of choreographies. This supports run time scenarios such as incorporating new participants into a choreography after its enactment has started or enhancing the process logic of some of the participants. We provide a prototypical implementation of the approach and evaluate it by means of a case study.','',2,'Andreas WeißSantiago Gómez SáezMichael HahnDimka Karastoyanova','springer/bpel security.csv','springer',''),(17,'Computationally efficient ontology selection in software requirement planning','2016','1',' Requirements Ontologies Process models Retrieval tool','Abstract Understanding the needs of stakeholders and prioritizing requirements are the vital steps in the development of any software application. Enabling tools to support these steps have a critical role in the success of the corresponding software application. Based on such a critical role, this paper presents a computationally efficient ontology selection in software requirement planning. The key point guiding the underlying design is that, once gathered, requirements need to be processed by decomposition towards the generation of a specified systems design. A representational framework allows for the expression of high level abstract conceptions under a single schema, which may then be made explicit in terms of axiomatic relations and expressed in a suitable ontology. The initial experimental results indicate that our framework for filtered selection of a suitable ontology operates in a computationally efficient manner.','Information Systems Frontiers',1,'R. B. K. BrownG. BeydounG. LowW. TibbenR. ZamaniF. García-SánchezR. Martinez-Bejar','springer/service oriented architecture security.csv','springer',''),(18,'Using SOA and web 2.0 in web service applications','2015','','','This paper proposes a three-tier architecture, which includes content network, social network and service network. It also presents a structure for web and load services in ad-hoc computer networks, which is a new system architecture using SOA (Service Oriented Architecture) and Web 2.0 concepts to implement functions for web and load services. It is a three-tier system structure based on Web service functions to implement services seeking and load distribution. Furthermore, this project would construct a knowledge sharing and learning platform based on the mentioned three-tier architecture. Different communities provide their services to each other by using our new knowledge platform and this forms a “virtual community”. It leads to our desired accomplishments of “service reusability” and “service innovation”. It also proposes the frameworks of new SOA and therefore provides a platform to enhance the interactions between academia and industry. © 2015 Taylor & Francis Group, London.','',1,'Huang M.C.','scopus/service oriented architecture security.csv','scopus',''),(19,'Security Services Efficiency in Disadvantaged Networks','2015','0','','Modern coalition operations require efficient cooperation between partners of allied forces. They usually rely on their national systems equipped with software solutions supporting interoperability. Federation of systems built for the purpose of such operations assumes however independence of particular individual ones. In order to support efficient exchange of information between allies there are necessary federated software solutions promoting secure cross-domain information exchange. Lately the concept of Federated Mission Networking following Service Oriented Architecture (SOA) is being developed by NATO. In terms of secure information exchange for SOA-based services it proposes to use Web Authentication standard based on WS-Federation. In the article the authors present the results of tests of this standard efficiency in disadvantaged network environment built with PR4G radios. The architecture of the solution is presented with necessary information exchange relations and their invocation times.','2015 IEEE 81st Vehicular Technology Conference (VTC Spring)',1,'J. Sliwa; B. Jasiul; T. Podlasek; R. Matyszkiel','ieee/service oriented architecture security.csv','ieee','\0'),(20,'Signature replacement attack and its counter-measures','2010','0','BPEL;Digital Signature;SOAP;SWOT;TTP;XML Security','2-tuple Digital Signature scheme has two elements: a message and a signature. A tempered message can be verified by the decryption of the message digest, encrypted by the secret key of the signer, with the help of its corresponding public key. On the contrary, if the signature element is replaced then it cannot be verified. This is termed as signature replacement attack hitherto not discussed in the literature. In case of signature replacement attack, proof of origin is compromised. In this paper this attack is brought into focus for the first time. A solution for digital signature, resilient to signature replacement attack, is also proposed, where a trusted central arbiter is used as an in-line TTP. However, the central arbiter becomes the main bottleneck of performance. The problem is equally true for XML signature scheme used in Web service security today. This paper also proposes a solution with a BPEL process which acts as a central arbiter in the proposed special protocol.','Advance Computing Conference (IACC), 2010 IEEE 2nd International',2,'S. Sinha; S. K. Sinha','ieee/bpel security.csv','ieee','\0'),(21,'An authorization architecture for web services','2015','','','This paper considers the authorization service requirements for the service oriented architecture and proposes an authorization architecture for Web services. It describes the architectural framework, the administration and runtime aspects of our architecture and its components for secure authorization of Web services as well as the support for the management of authorization information. The proposed architecture has several benefits. It is able to support legacy applications exposed as Web services as well as new Web service based applications built to leverage the benefits offered by the service oriented architecture; it can support multiple access control models and mechanisms and is decentralized and distributed and provides flexible management and administration of Web services and related authorization information. The proposed architecture can be integrated into existing middleware platforms to provide enhanced security to exposed Web services. The architecture is currently being implemented within the.NET framework. © IFIP International Federation for Information Processing 2005.','',1,'Indrakanti S., Varadharajan V.','scopus/service oriented architecture security.csv','scopus',''),(22,'A Process for Generating Concrete Architectures','2013','0','','','',1,'Mathieu BoussardStefan MeissnerAndreas NettsträterAlexis OlivereauAlexander Salinas SeguraMatthias ThomaJoachim W. Walewski','springer/service oriented architecture security.csv','springer','\0'),(23,'Enhance enterprise Android application security with cloud computing and big data analytics','2014','1','Android Application; Big Data; Cloud; Enterprise; Security; SOA','In modern enterprises, conventional Android application assessment approaches have many limitations, one of which is the isolation of different assessment systems that hinders the efficiency and capacity of the assessing processes. The objective of this research is to develop a framework that promotes the use of cloud computing and Big Data Analytics on building the assessment system. Cloud-based design allows the system to achieve computing capacity in a lower cost, so that it can apply mixed utilization of various assessment techniques to generate more diversified and objective testing results. Centralized information repository on the cloud enables Big Data Analytics to be performed on the extensive testing results to achieve enhanced insight of the application security status. BDA techniques such as clustering and visualization provides better comprehension on the underlying security issues and prediction on how to improve the enterprise information systems. To aggrandize the availability of the analytic results, SOA should be adopted in the system design, so that the data can be provided as extendable services for other systems. Finally, an experimental system is designed based on the proposed framework as an illustration on the framework implementation. © 2014 IEEE.','',1,'Zhong H., Xiao J., Zheng X.','scopus/soa security.csv','scopus','\0'),(24,'Conflict detection and resolution in home and building automation systems: a literature review','2014','3',' Ambient intelligence Home and building automation systems Conflict detection Conflict resolution','Abstract The evolution and increasing commoditization of home and building automation systems (HBAS) is contributing to their widespread adoption. However, an effort must still be made to render them usable, intelligent, highly adaptive and able to fulfill users’ needs. When distinct users interact with such a system, their intentions are likely to be different, often resulting in conflicting situations, which the system ought to recognize and, if possible, resolve automatically. However, conflict detection and resolution in HBAS are not yet fully understood. This work aims at investigating conflict in Ambient Intelligence systems, namely those supported by HBAS. Our main contribution is a systematization and review of existing literature concerning conflict detection and resolution in these systems.','Journal of Ambient Intelligence and Humanized Computing',1,'Sílvia ResendesPaulo CarreiraAndré C. Santos','springer/soa security.csv','springer','\0'),(25,'A Petri Net Approach to Reliable Execution for Web Service Composition','2013','0','Petri Net;SOA;Web service;reliable','With development of SOA, the complex problem can be solved by combining available individual services and ordering them to best suit user\'s requirements. Web services composition is widely used to business environment. With the features of inherent autonomy and heterogeneity for component Web services it is difficult to predict the behaviors of the overall composite service. Therefore, transactional properties and non-functional quality of service (QoS) properties are crucial for selecting the web services to take part in the composition. Transactional properties ensure reliability of composite Web service, and QoS properties can identify the best candidate web services from a set of functionally-equivalent services. In this paper we define a Colored Petri Net (CPN) model which involves transactional properties of Web services in the composition process. To ensure reliable and correct execution, unfolding processes of the CPN are followed. The execution of transactional composition Web service (TCWS) is formalized by CPN properties.','Computational Intelligence and Security (CIS), 2013 9th International Conference on',1,'L. Chen; G. Zhang','ieee/service oriented architecture security.csv','ieee','\0'),(26,'Integrated Information System Based on Web Services','2007','0','BPEL, PHP, SOAP, WSDL, XPDL, information systems, web security, web service','Proceedings of the 2007 International Conference on Computer Systems and Technologies','',2,'Krasimir Trichkov and Elisaveta Trichkova and Elena Ivanova','acm/bpel security.csv','acm','\0'),(27,'A Standardized SOA Based Solution to Guarantee the Secure Access to EHR','2015','','access control; auditability; interoperability; secure use of cloud for clinical data','Continued advances in science and technology and general improvements in environmental and social conditions is extending the population\'s life expectancy with the consequence that a person can undergo many episodes of healthcare during lifetime. In this context, the Electronic Health Record (EHR) represents a fundamental tool to support treatment continuity, education and research. The economic restrictions in healthcare and the need to increase efficiency in term of cost/effectiveness ration could lead institutional organizations to choose cloud solutions to host the EHR. In this paper, a cloud infrastructure architecture, focus on the EHR and based on SOA (Service Oriented Architecture) paradigm, which is able both to completely support technical, semantic and process interoperability, and to guarantee security, is proposed. In order to achieve this goal, the indications and the standards proposed by Healthcare Services Specification Project (HSSP) was adopted. Different situations can be managed by the proposed architecture and are described: the user access to an encrypted resource in EHR, the availability of EHR content for external Decision Support Systems, the update of EHR content, the management of semantic of clinical data exchanged among distributed healthcare organizations. Finally, the authors propose a discussion on the proposed solution. © 2015 The Authors. Published by Elsevier B.V.','',1,'Gazzarata G., Gazzarata R., Giacomini M.','scopus/service oriented architecture security.csv','scopus',''),(28,'Adaptive interaction support in ambient-aware environments based on quality of context information','2013','3',' Human environment interaction Ambient-aware environment Quality of context information Media services User satisfaction Trust','Abstract Ambient-aware environments are technologically augmented with myriad sensors, devices and other emerging services in order to support users. However, users find it complex in interacting with such environments due to the presence of numerous devices and services. In this situation, providing context-aware implicit or automatic interaction support may help reducing the cognitive load of the users and facilitate easy access of the available devices and services. However, due to the imprecision in context information, implicit interactions performed by the environment often leads to mis-automation. The result of such impaired implicitness causes distrust and dissatisfaction to the user. In order to address this issue, we propose a system that considers quality of information to dynamically adjust the level of implicit interaction and allows a system to operate in different modes such as full-automation, action suggestion, simple notification, or null action. We conduct experiment in a smart home scenario in order to elicit users’ acceptance and trust regarding the proposed system. Our experiment shows that dynamic and alternative mode of interaction not only increases the satisfaction of users but also helps to avoid distrust in automated actions carried out by the environment under varying contexts.','Multimedia Tools and Applications',1,'M. Anwar HossainAli Asghar Nazari ShirehjiniAbdullah S. AlghamdiAbdulmotaleb El Saddik','springer/service oriented architecture security.csv','springer','\0'),(29,'Discrete Control for Smart Environments Through a Generic Finite-State-Models-Based Infrastructure','2014','0',' System architecture Middleware Domain ontologies Discrete-event control Finite-state automata Reactive systems Control theory','Abstract Drawing requirements and models from reactive and real-time systems, we propose a self-configurable data mediation infrastructure for Smart Environments and the Internet of Things, showing how it can be used to effect discrete control in smart home environments by mediating and adapting generic rules through finite-state-machine models drawn from a domain ontology, representing observable & controllable “things” and space entities in this infrastructure.','',1,'Mengxuan ZhaoGilles PrivatEric RuttenHassane Alla','springer/service oriented architecture security.csv','springer','\0'),(30,'System of Systems for Quality-of-Service Observation and Response in Cloud Computing Environments','2015','1','Cloud computing;distributed denial of service (DDoS);enterprise systems;information assurance;net centric;quality of service (QoS);security;service-oriented architecture (SOA);systems of systems (SoS)','As military, academic, and commercial computing systems evolve from autonomous entities that deliver computing products into network centric enterprise systems that deliver computing as a service, opportunities emerge to consolidate computing resources, software, and information through cloud computing. Along with these opportunities come challenges, particularly to service providers and operations centers that struggle to monitor and manage quality of service (QoS) for these services in order to meet customer service commitments. Traditional approaches fall short in addressing these challenges because they examine QoS from a limited perspective rather than from a system-of-systems (SoS) perspective applicable to a net-centric enterprise system in which any user from any location can share computing resources at any time. This paper presents a SoS approach to enable QoS monitoring, management, and response for enterprise systems that deliver computing as a service through a cloud computing environment. A concrete example is provided for application of this new SoS approach to a real-world scenario (viz., distributed denial of service). Simulated results confirm the efficacy of the approach.','IEEE Systems Journal',1,'P. C. Hershey; S. Rao; C. B. Silio; A. Narayan','ieee/service oriented architecture security.csv','ieee',''),(31,'User-centric protection and privacy in smart surveillance systems','2012','2','','During the last decades surveillance systems developed from analog one camera one monitor systems to highly complex distributed systems with heterogeneous sensors that can handle surveillance tasks autonomously. With raising power and complexity, ensuring privacy became a key challenge. An event-driven SOA architecture that follows the privacy by design principle is a promising approach to realize a smart surveillance system and is described in this work. Enforcement of privacy is not only complex for engineers and system designers; rather it is not understandable for the average user, who cannot even assess potentials and limitations of smart surveillance systems. This work presents an approach for privacy that is focused on the user, i.e., the observed subject. By using a mobile device the user can interact with the surveillance system and is not passive anymore, as in conventional surveillance deployments. This restores the balance between the observed and the observers, enhances transparency and will raise the acceptance of surveillance technology. In the highlighted approach the user can control his individual-related data and privacy preferences and can use services that are beneficial for him. © 2012 Springer-Verlag.','',1,'Vagts H., Krempel E., Beyerer J.','scopus/soa security.csv','scopus','\0'),(32,'From product-centric to customer-centric services in a financial institution – exploring the organizational challenges of the transition process','2015','0',' Customer-centric services Transition process from product to customer orientation Work system theory Organizational challenges Case study research','Abstract This research aims to contribute to an increased understanding of the strategic, cultural and other organizational challenges in a transition process from product-centric to customer-centric services. The paper describes an exploratory case study, conducted in a complex financial services organization in the context of their customer-facing services. The transition process was examined through the theoretical lens of Work System Theory (WST), following the argument made by previous researchers that service systems could be seen as work systems. This holistic theory enabled us to capture the three key phases of the transition process as work systems snapshots and through their evolving relationships show the manner in which the transitions occurred from one phase to another. This innovative approach provided the researchers with an in-depth insight into key issues related to organizational environment, strategy, customers, products and services, processes and activities, participants, and information and technologies – all relevant for each phase of the transition process. This research contributes to both information systems (IS) and service science research, bringing the key service research priority of “service infusion” to the attention of IS researchers.','Information Systems Frontiers',1,'Olivera MarjanovicVijaya Murthy','springer/service oriented architecture security.csv','springer',''),(33,'Security Policy Conflicts in Service-oriented Systems','2012','0',' Security Policy Conflict Detection Algorithm','Abstract This paper considers methods for knowledge exploitation in security policies for Service-Oriented Architecture (SOA) environments, discovering the modality conflicts in particular. Two algorithms for discovering SOA-specific modality conflicts are proposed. First, a trivial ( ad-hoc ) approach is presented and further extended by the improved algorithm which offers lower time complexity. The formal verification of the proposal is followed by experimental results confirming the expected supremacy of the improved algorithm.','New Generation Computing',1,'Bartosz BrodeckiMichał SzychowiakPiotr Sasak','springer/service oriented architecture security.csv','springer','\0'),(34,'A note on BPMN analysis. Towards a taxonomy of selected potential anomalies','2014','0','','Modeling based on a graphical notation understandable for different specialists has become very popular. Within the area of business processes, the most common one is the Business Process Modeling and Notation (BPMN). BPMN is aimed at all business users who design, analyze, manage and monitor business processes. Most papers in this area focus on making use of the possibilities that BPMN makes available, but there is lack of papers analyzing possible errors and ways of detecting and eliminating them. Specification of a BPMN diagram is relatively precise, but it is only a descriptive form presented at some abstract, graphical level. Hence, the main focus of this article is an attempt to analyze the topic of the anomalies which are likely to occur when modeling with use of BPMN.','Computer Science and Information Systems (FedCSIS), 2014 Federated Conference on',2,'A. Mroczek; A. Ligęza','ieee/bpmn security.csv','ieee',''),(35,'TRUMP: A Trusted Mobile Platform for Self-management of Chronic Illness in Rural Areas','2013','1','','Abstract Disease self-management interventions have the potential to greatly benefit both sufferers of chronic illnesses and healthcare providers in rural areas. In this paper, we discuss our vision for a trusted platform for delivering self-management interventions in rural areas of the UK and India using second-generation mobile devices, and outline the key trust and privacy challenges in realising such an infrastructure. We illustrate our discussion with an example depression intervention scenario, highlighting some progress to date, and our plans towards realising this architecture.','',2,'Chris BurnettPeter EdwardsTimothy J. NormanLiang ChenYogachandran RahulamathavanMariesha JaffrayEdoardo Pignotti','springer/bpmn security.csv','springer','\0'),(36,'Two-Dimensional Evidence Reliability Amplification Process Model for Digital Forensics','2008','3','BPMN;Digital Evidence;Digital Forensics;Digital Forensics Process;Evidence Reliability;Umbrella Activity','Being related to law and state-of-the-art technology, digital forensics needs more discipline than traditional forensics. The variety of types of crimes, distribution of networks and complexity of information and communication technology, add to the complexity of the process of digital investigations. A rigorous and flexible process model is needed to overcome challenges and obstacles in this area. In this paper we propose a digital forensics process, called \"two-dimensional evidence reliability amplification process model\", which presents a detailed digital forensic process model in five main phases and different roles to perform it. At the same time, this iterative process addresses four essential tasks as the umbrella activities that are applicable across all phases and sub-phases. We have also developed a hypothetical solution based on intersection of events and exploit mathematical operations and symbols for making an algorithm to increase the reliability of evidence. This process model is detailed enough to describe the investigation process so that it could possibly provide a guideline that investigators can take advantage of it during a forensics investigation process.','Digital Forensics and Incident Analysis, 2008. WDFIA \'08. Third International Annual Workshop on',2,'M. Khatir; S. M. Hejazi; E. Sneiders','ieee/bpmn security.csv','ieee','\0'),(37,'Web Service Composition Based on Petri Nets: Review and Contribution','2013','2',' Transactional Composite Web Services Automatic Composition Execution of Composite Web Services Petri-Nets','Abstract Web Services (WSs) are the most used implementation of service-oriented architectures allowing the construction and the sharing of independent and autonomous software. WS composition consists in combining several WSs into a Composite one, which becomes a value-added service, in order to satisfy complex users queries. Thus, the WS composition process may imply several phases to identify how and which WSs will conform the Composite WS, including specification, verification, evaluation, WSs selection, and execution. As it is known, Petri Nets are the main formal models used to describe static vision of a system and dynamic behavior of processes. Then, Petri Nets are well suited to model internal operations of WSs and interactions among them as well as to model the processes in all phases of the WS composition process. In this article we present a review of approaches using Petri Nets for WS composition. Moreover, we describe our experiences in this field: a transactional-QoS-driven WS selection approach and a framework for reliable execution of Composite WSs based on Colored Petri Nets.','',2,'Yudith CardinaleJoyce El HaddadMaude ManouvrierMarta Rukoz','springer/bpel security.csv','springer','\0'),(38,'Eliciting security requirements for business processes of legacy systems','2015','','BPMN; Business process modeling; Goal-oriented security requirements; Legacy systems; MARBLE; Secure Tropos','The modernisation of enterprise legacy systems, without compromises in their functionality, is a demanding and time consuming endeavour. To retain the underlying business behaviour during their modernisation, the MARBLETM framework has been developed for the extraction of business process models from their source code. Building on top of that work, in this paper we propose an integrated approach for transforming the extracted legacy process models into Secure Tropos goal models. Such models facilitate the elicitation of security requirements in a high level of abstraction, which are then incorporated back into the process models of the modernised systems as security features. Therefore high level models can be derived from legacy source code with minimal manual intervention, where security can be elaborated by nontechnical stakeholders in alignment with organisational objectives. © IFIP International Federation for Information Processing 2015.','',2,'Argyropoulos N., Alcañiz L.M., Mouratidis H., Fish A., Rosado D.G., De Guzmán I.G.-R., Fernández-Medina E.','scopus/bpmn security.csv','scopus',''),(39,'Supporting the internet-based evaluation of research software with cloud infrastructure','2012','2',' Reproducible research Model transformation Tool contest Peer review Cloud computing','Abstract Due to license restrictions and installation issues, it is often not feasible to experiment with software without making substantial investments. Especially in the case of legacy tools, it turns out that even free software is often too costly (i.e., time-consuming) to be installed for evaluating the quality of a research contribution. After organizing a series of events related to software modeling, we have constructed (and started to use) SHARE, a system for sharing practically any type of software artifact to reviewers and to other participants who have very limited time available. The system relies on cloud-computing technologies to provide online access to interactive environments containing all the tools, documentation, input and output models to reproduce alleged research results. The system also enables one to clone such an environment and add additional models or tools in order to extend a contribution or pinpoint a problem. In retrospect, we observe that the approach is not limited to software modeling and SHARE is in fact gaining acceptance in other fields already.','Software & Systems Modeling',2,'Pieter Van GorpPaul Grefen','springer/bpel security.csv','springer','\0'),(40,'An economic mechanism to manage operational security risks for inter-organizational information systems','2014','1',' Inter-organizational information systems Information security Risk management Economics of information systems Economic mechanisms','Abstract As organizations increasingly deploy Inter-organizational Information Systems (IOS), the interdependent security risk they add is a problem affecting market efficiency. Connected organizations become part of entire networks, and are subject to threats from the entire network; but members’ security profile information is private, members lack incentives to minimize impact on peers and are not accountable. We model the problem as a signaling-screening game, and outline an incentive mechanism that addresses these problems. Our mechanism proposes formation of secure communities of organizations anchored by Security Compliance Consortium (SCC), with members held accountable to the community for security failures. We study the interconnection decisions with and without the mechanism, and characterize conditions where the mechanism plays roles of addressing moral hazard and hidden information issues by screening the organizations’ security types and/or by providing them incentives to improve. We also discuss the welfare gains and the broad impact of the mechanism.','Information Systems Frontiers',1,'Fang FangManoj ParameswaranXia ZhaoAndrew B. Whinston','springer/service oriented architecture security.csv','springer','\0'),(41,'IT risk management framework based on ISO 31000:2009','2012','','ERM; FMEA; ISO 31000:2009; IT Risk; SOA Section 404','Utilization of Information Technology (IT) in an enterprise, in addition to achieve benefit from the implementation of IT should come along with the risks (Information Technology Risk) that may affect the achievement of corporate goals. IT risk management will always involving the company\'s overall risk management for IT risk will impact enterprise itself, thus a framework is required as a tool to integrate the IT risks with ERM. This paper present a case study research on IT risk management framework based on ISO 31000. The research methodology used in this study is Design Science Research Methodology (DSRM). The designed architecture includes three components, they are the principles of IT risk management, risk identification and analysis of IT. The method used to examine the framework was a Focus Group Methodology while sampling technique that used was purposive sampling. The Focus Group Discussion (FGD), conducted based on expert judgment in the PT. Telekomunikasi Indonesia, Tbk. The examination of IT risk management framework resulting in accordance with the needs of companies that engaged in the telecommunications industry and has been integrating IT risk with ERM. In this case the company need is a security related financial statements to support compliance with Sarbanes-Oxley Act agreement (SOA). The main thing in the development of IT risk management framework is the presence of internal control as a key role in the Enterprise Risk Management. © 2012 IEEE.','',1,'Ernawati T., Suhardi, Nugroho D.R.','scopus/soa security.csv','scopus','\0'),(42,'Enforcement of entailment constraints in distributed service-based business processes','2013','8','Architecture (SOA); Business process management; Entailment constraints; Identity and access management; Service-Oriented; WS-BPEL','Context A distributed business process is executed in a distributed computing environment. The service-oriented architecture (SOA) paradigm is a popular option for the integration of software services and execution of distributed business processes. Entailment constraints, such as mutual exclusion and binding constraints, are important means to control process execution. Mutually exclusive tasks result from the division of powerful rights and responsibilities to prevent fraud and abuse. In contrast, binding constraints define that a subject who performed one task must also perform the corresponding bound task(s). Objective We aim to provide a model-driven approach for the specification and enforcement of task-based entailment constraints in distributed service-based business processes. Method Based on a generic metamodel, we define a domain-specific language (DSL) that maps the different modeling-level artifacts to the implementation-level. The DSL integrates elements from role-based access control (RBAC) with the tasks that are performed in a business process. Process definitions are annotated using the DSL, and our software platform uses automated model transformations to produce executable WS-BPEL specifications which enforce the entailment constraints. We evaluate the impact of constraint enforcement on runtime performance for five selected service-based processes from existing literature. Results Our evaluation demonstrates that the approach correctly enforces task-based entailment constraints at runtime. The performance experiments illustrate that the runtime enforcement operates with an overhead that scales well up to the order of several ten thousand logged invocations. Using our DSL annotations, the user-defined process definition remains declarative and clean of security enforcement code. Conclusion Our approach decouples the concerns of (non-technical) domain experts from technical details of entailment constraint enforcement. The developed framework integrates seamlessly with WS-BPEL and the Web services technology stack. Our prototype implementation shows the feasibility of the approach, and the evaluation points to future work and further performance optimizations. © 2013 Elsevier B.V. All rights reserved.','',2,'Hummer W., Gaubatz P., Strembeck M., Zdun U., Dustdar S.','scopus/bpel security.csv','scopus','\0'),(43,'Legal Issues About Metadata Data Privacy vs Information Security','2014','1',' Privacy Metadata Information security Socio-economic issues','Abstract For the purposes of our work we use the concept of metadata to implement enterprise digital right management mechanisms in an intelligent document environment. Such metadata allows us to firstly define contextual security rules and secondly to ensure the information traceability. However, its use may have legal implications, especially with regard to metadata that can be stored (see personal data, privacy), how it should be stored (see probative value in case of litigation, digital forensics) or computer processing in which it may be involved. Another topical issue is the storage and the processing of data using a service provider: the cloud. We must ensure, however, that this solution does not lead to a loss of information controllability for the company. This article aims to position our work with respect to these legal issues.','',1,'Manuel MunierVincent LalannePierre-Yves ArdoyMagali Ricarde','springer/service oriented architecture security.csv','springer','\0'),(44,'[Front cover]','2012','0','','The following topics are dealt with: robust communication system; Internet computing; Web applications; wireless mesh networks; fault tolerant systems; vehicular networks; energy-efficient wireless sensor networks; intelligent systems; distributed database; data mining; communication protocols; pervasive computing; intelligent computing; intelligent networks; distributed systems; distributed networking; semantics computing; semantics networks; mobile ad hoc networks; routing; P2P networks; trusted computing; cloud computing; QoS; service-oriented architecture; social networking; multimedia; authentication system security; cryptographic techniques; green computing; autonomic computing; dependable systems; SOA; ubiquitous computing; peer-to-peer computing; and scalable systems.','2012 IEEE 26th International Conference on Advanced Information Networking and Applications',1,'','ieee/service oriented architecture security.csv','ieee','\0'),(45,'257--258','2012','0','','Mobile devices are changing the way individuals and organizations operate. These devices are becoming a pervasive computing platform that helps improve employee productivity, allowing quick, informed decision making on the go, aided by the ability to access a wealth of real time information available regardless of (or specific to) location. Successful businesses realize that a mobile transformation is necessary today. According to a recent IBM Study, 75% of CIO\'s indicated that they will invest in mobile this year and that a mobile strategy is critical to ensure success.','',1,'','acm/soa security.csv','acm','\0'),(46,'A sharing-oriented design strategy for networked knowledge organization systems','2016','2',' NKOS Periodization Service-oriented architecture Semantic web JSON-LD','Abstract Designers of networked knowledge organization systems often follow a service-oriented design strategy, assuming an organizational model where one party outsources clearly delineated business processes to another party. But the logic of outsourcing is a poor fit for some knowledge organization practices. When knowledge organization is understood as a process of exchange among peers, a sharing -oriented design strategy makes more sense. As an example of a sharing-oriented strategy for designing networked knowledge organization systems, we describe the design of the PeriodO period gazetteer. We analyze the PeriodO data model, its representation using JavaScript Object Notation-Linked Data, and the management of changes to the PeriodO dataset. We conclude by discussing why a sharing-oriented design strategy is appropriate for organizing scholarly knowledge.','International Journal on Digital Libraries',1,'Ryan ShawAdam RabinowitzPatrick GoldenEric Kansa','springer/service oriented architecture security.csv','springer',''),(47,'Standardization in cyber-physical systems: The ARUM case','2015','2','','Cyber-physical systems concept supports the realization of the Industrie 4.0 vision towards the computerization of traditional industries, aiming to achieve intelligent and reconfigurable factories. Standardization assumes a critical role in the industrial adoption of cyber-physical systems, namely in the integration of legacy systems as well as the smooth migration from existing running systems to the new ones. This paper analyses some existing standards in related fields and presents identified limitations and efforts for a wider acceptance of such systems by industry. Special attention is devoted to the efforts to develop a standard-compliant service-oriented multi-agent system solution within the ARUM project.','Industrial Technology (ICIT), 2015 IEEE International Conference on',1,'P. Leitão; J. Barbosa; M. E. C. Papadopoulou; I. S. Venieris','ieee/service oriented architecture security.csv','ieee',''),(48,'Towards an energy-aware Internet: modeling a cross-layer optimization approach','2013','8',' Energy efficiency Energy-awareness Energy-oriented network models Power consumption minimization Carbon footprint minimization Integer Linear Programming','Abstract The containment of power consumption and the use of alternative green sources of energy are the new main goals of telecommunication operators, to cope with the rising energy costs, the increasingly rigid environmental standards, and the growing power requirements of modern high-performance networking devices. To address these challenges, we envision the necessity of introducing energy-efficiency and energy-awareness in the design, configuration and management of networks, and specifically in the design and implementation of enhanced control-plane protocols to be used in next generation networks. Accordingly, we focus on research and industrial challenges that foster new developments to decrease the carbon footprint while leveraging the capacities of highly dynamic, ultra-high-speed, networking. We critically discuss current approaches, research trends and technological innovations for the coming green era and we outline future perspectives towards new energy-oriented network planning, protocols and algorithms. We also combine all the above elements into a comprehensive energy-oriented network model within the context of a general constrained routing and wavelength assignment problem framework, and analyze and quantify through ILP formulations the savings that can be attained on the next generation networks.','Telecommunication Systems',1,'Sergio RicciardiDavide CareglioGermán Santos-BoadaJosep Solé-ParetaUgo FioreFrancesco Palmieri','springer/soa security.csv','springer','\0'),(49,'An informatics framework for public health information systems: a case study on how an informatics structure for integrated information systems provides benefit in supporting a statewide response to a public health emergency','2015','0',' Public health informatics Information systems Public health emergency preparedness and response','Abstract This chapter illustrates how a well-established public health informatics framework provides an integrated information system infrastructure that assures and enhances the efficacy of public health emergency preparedness (PHEP) actions throughout the phases of the health emergency event life cycle. Key PHEP activities involved in supporting this cycle include planning; surveillance; alerting; resource assessment and management; data-driven decision support; and intervention for prevention and control of disease or injury in populations. Information systems supporting these activities are most effective in assuring optimal response to an emergent health event when they are integrated within an informatics framework that supports routine (day to day) information exchange within the health information exchange community. In late April 2009, New York State (NYS) initiated a statewide PHEP response to the emergence of Novel Influenza A (H1N1), culminating in a statewide vaccination campaign during the last quarter of 2009. The established informatics framework of integrated information systems within NYS conveyed significant advantages and flexibility in supporting the range of PHEP activities required for an effective response to this health event. This chapter describes, and provides, performance metrics to illustrate how a public health informatics framework can enhance the efficacy of all phases of a public health emergency response. It also provides informatics lessons learned from the event.','Information Systems and e-Business Management',1,'Ivan J. GothamLinh H. LeDebra L. SottolanoKathryn J. Schmit','springer/service oriented architecture security.csv','springer',''),(50,'Maintenance of Reliable Distributed Applications with Open-Source Middleware: Fifteen Years Later','2015','0',' Middleware Open-source CORBA TAO JacORB Maintenance','Abstract Open-source middleware started to be used several years ago for the development of complex applications. When these applications were developed, no real data were available about how maintenance activities could be affected over time. This is especially important for critical applications expected to be maintained over several years. This paper presents maintenance experiences with applications using open-source middleware (TAO and JacORB). These applications are developed using a component model for real-time applications implemented on top of the middleware. Improvements for software reliability have been detected during this time. We present them and how they can be applied to applications using TAO.','',1,'Manuel DíazDaniel Garrido','springer/service oriented architecture security.csv','springer',''),(51,'A novel classification of web service composition and optimization approach using skyline algorithm integrated with agents','2013','1','Classification matrix;context-oriented;technology-oriented','This paper narrates a brief survey about the existing approaches in web services composition. The main research areas in web services are related to discovery, security, and composition. Among all these areas, web services composition turns out to be a challenging one, because within the service-oriented computing domain, Web service composition is an effective recognition to satisfy the hastily changing requirements of business. Therefore, the Web service composition has unfolded broadly in the research side. However, the current attempts to classify Web service composition is not appropriate to the objectives. This paper proposes a novel classification matrix for Web service composition, that distinguishes between the context and technology dimension. The context dimension is aimed at analyzing the QoS influence on the effort of Web service composition, while the technology dimension focuses on the technique influence on the effort. Finally, this paper provides a suggestion to improve the quality of service selection those participates in the composition process with Cskyline approach using agents.','Computational Intelligence and Computing Research (ICCIC), 2013 IEEE International Conference on',1,'R. Gowri; R. Lavanya','ieee/service oriented architecture security.csv','ieee','\0'),(52,'Realising next-generation web service-driven industrial systems','2012','3',' Service-oriented architecture Enterprise systems Web services on devices Dynamic discovery Cooperating objects','Abstract Business continuity and agility form the core modus operandi of modern global enterprises. Complex business processes performed in highly distributed production systems need to be efficiently integrated with the shop floor, which needs to be able to fully respond to dynamic adaptations and sophisticated interactions with the enterprise systems in a timely manner. As the new generation of industrial devices coming to the shop floors features greatly improved storage, computing and networking capabilities, the factory of the future transforms itself to a system of systems, where of large numbers of heterogeneous networked embedded devices dynamically exchange information, complement each other’s functionality and provide new innovative capabilities that satisfy the emergent dynamic business requirements. This new breed of networked embedded devices goes beyond simple passive roles, e.g. being able to store and report information about themselves and their physical surroundings once queried, but execute complex computations and global logic locally, as well as dynamically adapt to fulfil goal-driven conditions. They communicate in an open interoperable way, form cooperative peer-to-peer networks and strongly interact with enterprise systems. This leads to highly modular, manageable and dynamic factories that will be able to adapt and optimize their behaviour to achieve the business goals pursued in a cross-layer collaborative way.','The International Journal of Advanced Manufacturing Technology',1,'Stamatis Karnouskos','springer/soa security.csv','springer','\0'),(53,'A Reference Software Architecture to Support Unmanned Aircraft Integration in the National Airspace System','2013','5',' Unmanned Air vehicle Sense and Avoid Service Oriented Architecture Testbed Reference architecture','Abstract This paper outlines an architecture that provides data and software services to enable a set of Unmanned Aircraft (UA) platforms to operate in a wide range of air domains which may include terminal, en route, oceanic and tactical. The architecture allows a collection of command, control, situational awareness, conflict detection and avoidance, and data management elements to be composed in order to meet different requirement sets as defined by specific UA platforms, users, and operating regimes. The architecture discussed is based on a Service Oriented Architecture (SOA) with open standards on the interfaces between elements. Services may include common situational awareness, sense and avoid, weather, data management and flight plan information. Service contracts specify quality of service, interface specifications, service description metadata, security provisions, and governance. Pieces of the architecture have been implemented by MIT Lincoln Laboratory in the form of a Sense and Avoid (SAA) testbed that provides some of the core services. This paper describes the general architecture and a SAA testbed implementation that begins to realize that architecture and quantifies the benefits. The proposed architecture is not directed at a specific program but is intended to provide guidance and offer architectural best practices.','Journal of Intelligent & Robotic Systems',1,'Curtis W. HeiseyAdam G. HendricksonBarbara J. ChludzinskiRodney E. ColeMark FordLarry HerbekMagnus LjungbergZakir MagdumD. MarquisAlexander MezhirovJohn L. PennellTed A. RoeAndrew J. Weinert','springer/service oriented architecture security.csv','springer','\0'),(54,'SecureBPMN: Modeling and Enforcing Access Control Requirements in Business Processes','2012','3','bpmn, process security, rbac, securebpmn','Proceedings of the 17th ACM Symposium on Access Control Models and Technologies','',2,'Achim D. Brucker and Isabelle Hang and Gero Lückemeyer and Raj Ruparel','acm/bpmn security.csv','acm','\0'),(55,'Effective Web-Service Discovery Using K-Means Clustering','2013','1',' Web Service WSDL document features K-means Clustering WV Tool','Abstract Web Services are proving to be a convenient way to integrate distributed software applications. As service-oriented architecture is getting popular, vast numbers of web services have been developed all over the world. But it is a challenging task to find the relevant or similar web services using web services registry such as UDDI. Current UDDI search uses keywords from web service and company information in its registry to retrieve web services. This information cannot fully capture user’s needs and may miss out on potential matches. Underlying functionality and semantics of web services need to be considered. In this study, we explore the resemblance among web services using WSDL document features such as WSDL Content and Web Services name. We compute the similarity of web services and use this data to generate clusters using K-means clustering algorithm. This approach has really yielded good results and can be efficiently used by any web service search engine to retrieve similar or related web services.','',1,'A. Santhana VijayanS. R. Balasundaram','springer/service oriented architecture security.csv','springer','\0'),(56,'SCaaS: A Platform for Managing Adaptation in Collaborative Pervasive Applications','2013','1','','Abstract In this paper, we present a social context as a service (SCaaS) platform for managing adaptations in collaborative pervasive applications that support interactions among a dynamic group of actors such as users, stakeholders, infrastructure services, businesses and so on. Such interactions are based on predefined agreements and constraints that characterize the relationships between the actors and are modeled with the notion of social context . In complex and changing environments, such interaction relationships, and thus social contexts, are also subject to change. In existing approaches, the relationships among actors are not modeled explicitly, and instead are often hard-coded into the application. Furthermore, these approaches do not provide adequate adaptation support for such relationships as the changes occur in user requirements and environments. In our approach, inter-actor relationships in an application are modeled explicitly using social contexts, and their execution environment is generated and adaptations are managed by the SCaaS platform. The key features of our approach include externalization of the interaction relationships from the applications, representation and modeling of such relationships from a domain and actor perspectives, their implementation using a service oriented paradigm, and support for their runtime adaptation. We quantify the platform’s adaptation overhead and demonstrate its feasibility and applicability by developing a telematics application that supports cooperative convoy.','',1,'Muhammad Ashad KabirJun HanAlan ColmanJian Yu','springer/service oriented architecture security.csv','springer','\0'),(57,'Methods towards API Usability: A Structural Analysis of Usability Problem Categories','2012','1',' API Usability Contextual Interaction Framework HCI','Abstract The usability of Application Programming Interfaces (APIs) is one of the main factors defining the success of a software based framework. Research in the area of human computer interaction (HCI) currently mainly focuses on end-user usability and only little research has been done regarding the usability of APIs. In this paper, we present a methodology on how to use and combine HCI methods with the goal to evaluate the usability of APIs. The methodology consist of three phases - a heuristic evaluation, a developer workshop and interviews. We setup a case-study according to the methodology, in which we are evaluating the usability of a service-oriented framework API. The goal was to explore different HCI methods and compare the applicability of such methods to find usability problems in an API. The case-study combined qualitative and quantitative methods in order to investigate the usability and intuitiveness of the API itself. It allowed us to identify relevant problem areas for usability related issues that could be mapped to specific types of HCI methods. Examples for this are e.g. structural problems, which are identified mainly in inspection methods, while problems regarding errors and exception handling are mainly identified during the hands-on example part of the developer workshops conducted. The resulting problem areas allow us to develop a first classification of API related usability problems that are making the relevancy of usability issues for APIs more explicit and applicable.','',1,'Thomas GrillOndrej PolacekManfred Tscheligi','springer/service oriented architecture security.csv','springer','\0'),(58,'IMDD-based bidirectional 20 Gb/s/λ WDM-PON with Nyquist 4 PAM employing Rayleigh backscattering noise detection-based self wavelength management','2016','0',' WDM-PON Channel-reuse Nyquist 4 level pulse amplitude modulation Intensity modulation Direct detection Fiber Bragg grating filter Self wavelength management','Abstract We experimentally demonstrate an optical intensity modulation transmitter with a Nyquist 4 level pulse amplitude modulation and direct detection (DD) receiver-based channel-reuse wavelength-division-multiplexing passive optical network (WDM-PON). A Rayleigh backscattering noise detection-based wavelength management method is employed for the tunable optical transmitter used in colorless optical network unit to achieve bidirectional 20 Gb/s/λ transmission over 45-km standard single-mode-fiber on a 100-GHz WDM grid. Chromatic dispersion induced power fading in the DD system is avoided with fiber Bragg grating filter-based vestigial-sideband filtering. The inter-symbol interference is cancelled with digital signal processing-based overlap frequency-domain equalizer. The transmission performance is also measured with different optical signal to Rayleigh backscattering noise ratio and different central wavelength shift between upstream and downstream in the channel-reuse system.','Optical and Quantum Electronics',1,'Zhiguo ZhangNa LiuCheng JuXue Chen','springer/soa security.csv','springer',''),(59,'URL query string anomaly sensor designed with the bidimensional Haar wavelet transform','2015','1',' Anomaly detector 2D Haar wavelet transform Thresholding Best approximation method','Abstract In this paper, the 2D Haar wavelet transform is the proposed analysis technique for HTTP traffic data. Web attacks are detected by two threshold operations applied to the wavelet coefficients of the 2D transform: one based on their median and the other on the best approximation method. The two proposed algorithms are validated through an extensive number of simulations, including comparisons with well-established techniques, confirming the effectiveness of the designed sensor.','International Journal of Information Security',1,'Alice KozakeviciusCristian CappoBruno A. MozzaquatroRaul Ceretta NunesChristian E. Schaerer','springer/soa security.csv','springer',''),(60,'Towards a Process Calculus for Rest: Current State of the Art','2015','','formal modeling; process calculi; REST; ROA; SOA','SOA is a popular paradigm for building distributed systems that has gained a great recognition over past years. There are two main approaches to implementing SOA: SOAP-based and RESTful Web services. In order to address problems of modeling and verification of Web services, several process calculi have been proposed for SOAP-based Web services but none for the RESTful Web services based systems. This article is a comparative survey on existing process calculi for SOA systems, also the existing attempts to formalize REST systems are discussed. The aim of the article is to see how process calculi for SOAP-based systems deal with different aspects of their modeling domain, and whether their approaches can be used to model RESTful and ROA systems. Finally, basing on the survey, requirements for a new process calculus specific for REST are defined. © by Jerzy Brzeziński 2015.','',1,'Dwornikowski D., Stroiński A., Brzeziński J.','scopus/soa security.csv','scopus',''),(61,'An Operational Decision Support Framework for Monitoring Business Constraints','2012','4',' Declare process mining monitoring operational decision support','Abstract Only recently, process mining techniques emerged that can be used for Operational decision Support (OS), i.e., knowledge extracted from event logs is used to handle running process instances better. In the process mining tool ProM, a generic OS service has been developed that allows ProM to dynamically interact with an external information system, receiving streams of events and returning meaningful insights on the running process instances. In this paper, we present the implementation of a novel business constraints monitoring framework on top of the ProM OS service. We discuss the foundations of the monitoring framework considering two logic-based approaches, tailored to Linear Temporal Logic on finite traces and the Event Calculus.','',2,'Fabrizio Maria MaggiMarco MontaliWil M. P. van der Aalst','springer/bpel security.csv','springer','\0'),(62,'Service based architecture in healthcare domain using fingerprint image identification','2012','1','Context handler; Healthcare; Minutiae point; Policy decision point (PDP); Policy enforcement point (PEP); Policy information point (PIP); Service consumer; Service provider; User agent; Web services','The Service Oriented Architecture (SOA) facilitates the development of systems by supporting modular design, application integration and software reuse. Healthcare is going to change the way how patients and healthcare providers interact. The exchange of confidential and integrate information is one of the major open issues for the health care sector. In the service-oriented environment all the servicesare loosely coupled. Due to the loose coupling of services, security of the services becomes more important. Required authorization by an authenticated identity and applying confidentiality techniques which ordinarily are gained via encryption, are essential for structured implementations according to service oriented architecture principles. This papertends to propose a new architecture and a new algorithm(MSFMR- Modified SpecialFalse Minutiae Removal) to improve the authentication techniquein healthcare domain based on service oriented technique. © EuroJournals Publishing, Inc. 2012.','',1,'Nirmala Sugirtha Rajini S., Bhuvaneswari T., Rajagopalan S.P.','scopus/service oriented architecture security.csv','scopus','\0'),(63,'Ensuring reliability in B2B services: Fault tolerant inter-organizational workflows','2012','2',' Reliability Mobile computing Fault tolerance Workflow management systems Business process management','Abstract In the age of Business-to-Business (B2B) collaboration, ensuring reliability of workflows underlying inter-organizational business processes is of significant importance. There are, however, quite a few challenges towards achieving seamless operation. Such challenges arise from heterogeneity in infrastructure and coordination mechanism at participant organizations, as well as time and cost associated with recovery from failure. Our research presents foundations for a reliable scheme for recovery from failure of workflow processes spanning through multiple business entities. First, a system model is adapted from the mobile computing literature that serves to establish the requirements to be enforced by each participating organization. In our model, we adopt the Maximal Sequence Path (MSP) approach from Yoo et al . (Lecture Notes in Artificial Intelligence 2132:222–236, 2001 ), as a means of decomposing workflows into mobile agent-driven processes that communicate via web services at each organization. This decomposition ensures defining logical points within the dynamics of a workflow instance for locating accurate and consistent states of the system for recovery in case of a failure. Then, a set of algorithms for various business scenarios are developed and presented as practical solutions. These algorithms are shown to create checkpoints such that the system is always in a globally consistent state. As such, these algorithms constitute a set of standards that can be incorporated in business process management suites that support reliable inter-organizational collaboration.','Information Systems Frontiers',1,'Haluk DemirkanSagnika SenMichael GoulJason Nichols','springer/service oriented architecture security.csv','springer','\0'),(64,'Management of service compositionbased on self-controlled components','2015','1',' Service component Quality of service Autonomic control Service composition','Abstract Cloud computing and Future Internet promise a new ecosystem where everything is \"as a service\", reachable and connectable anywhere and anytime, everyone succeeding to get a service composition that meets his needs. But do we have the structure and the appropriate properties to design the service components and do we have the means to manage, at run-time, the personalised compositions corresponding to Service Level Agreement? In this article we introduce an entity of service composition called Self-Controlled Component (SCC), including, since the design step, functional and non-functional specifications. SCCs benefit both from the strong structure, explicit composition, and autonomic management of component-oriented programming, from the highly dynamic composition, and from the discovery capacities of service-oriented computing. Self-control mechanisms are then attached automatically to SCCs to enable autonomic application management during execution. The objective of this new concept is to provide strong Quality of Service (QoS) guarantees of composed applications. We illustrate the approach using an example called Springoo, to how in the context of a legacy application the contributions and benefits of our solution. For the management of the service composition we propose the concept of Virtual Private Service Network (VPSN) and Virtual Service Community (VSC) that allows us to model the personalised Service Level Agreement (SLA) where user requirements and provider offers converge on a QoS contract.','Journal of Internet Services and Applications',2,'Tatiana AubonnetLudovic HenrioSoumia KessalOleksandra KulankhinaFrédéric LemoineEric MadelaineCristian RuzNoëmie Simoni','springer/bpel security.csv','springer',''),(65,'From Concept to Implementation: Web-Based Cartographic Visualisation with CartoService','2012','0',' Geovisualisation cartographic modelling web cartography quality web mapping web services quality maps','Abstract This paper deals with the implementation and prototypical application of a concept of a web-based on-demand service for the modelling and visualisation of quality maps (CartoService, CS). Drawing on state-of-the-art web technology and software architecture CS can be considered a cartographic customisation of the standard visualisation system. The CS architecture is generic and completely based on the use and integration of web-services, more precisely, on a set of loosely coupled, self-contained methods and information units (services). Map modelling and visualisation components are sequentially ordered in a process chain which facilitates an automated production workflow. Interaction between web-service players (communicators) is based on a three-tier architecture. Tasks assigned to CS essential services are discussed and exemplified for one common application scenario: CS as map configurator. Presently, full implementation of CS is under way. As a fully operational product, CS will significantly contribute to the enhancement of web-based map visualisation in comparison to existing standards-based map dissemination.','',2,'Hartmut AscheRita Engemaier','springer/bpel security.csv','springer','\0'),(66,'Extending enterprise architecture modeling languages for domain specificity and collaboration: application to telecommunication service design','2014','1',' Enterprise architecture framework Enterprise architecture modeling language Domain-specific modeling language Language extension Meta-model Design rationale Telecommunication service','Abstract The competitive market forces organizations to be agile and flexible so as to react robustly to complex events. Modeling helps managing this complexity. However, in order to model an enterprise, many stakeholders, with different expertise, must work together and take decisions. These decisions and their rationale are not always captured explicitly, in a standard, formal manner. The main problem is to persuade stakeholders to capture them. This article synthesizes an approach for capturing and using the rationale behind enterprise modeling decisions. The approach is implemented through a domain-specific modeling language, defined as an extension of a standard enterprise architecture modeling language. It promotes coordination, enables presenting different stakeholders’ points of view, facilities participation and collaboration in modeling activities—activities focused here on enterprise architecture viewpoints. To present its benefits, such as rapid prototyping, the approach is applied to large organizations in the context of telecommunication service design. It is exemplified on modeling and capturing decisions on a conference service.','Software & Systems Modeling',1,'Vanea ChiprianovYvon KermarrecSiegfried RouvraisJacques Simonin','springer/service oriented architecture security.csv','springer','\0'),(67,'Interconnecting Federated Clouds by Using Publish-Subscribe Service','2013','36',' Cloud Federation Publish/Subscribe Service Intercommunication Reliability Denial of Service Cloud Computing','Abstract Cloud Federation is an emerging computing model where multiple resources from independent Cloud providers are leveraged to create large-scale distributed virtual computing clusters, operating as into a single Cloud organization. This model enables the implementation of environmental diversity for Cloud applications, and overcomes the provisioning and scalability limits of a single Cloud, by introducing minimal additional cost for the Cloud consumer. In such a scenario, it is necessary to leverage on specific networking technologies that enable the effective support of inter-Cloud communication services between Cloud providers. This paper proposes an interconnection solution for Cloud federations based on publish/subscribe services. Moreover, we discuss some fundamental concerns needed to satisfy the inter-Cloud communication requirements in terms of reliability and availability. Finally, we present some experimental results that highlight some key reliability and denial of service vulnerability concerns in this domain.','Cluster Computing',1,'Christian EspositoMassimo FiccoFrancesco PalmieriAniello Castiglione','springer/soa security.csv','springer',''),(68,'The research of information management based on networked manufacturing system','2012','','Grid; Information management; Networked manufacturing system; Service-oriented architecture','Using information technology to reform manufacturing industry is the important way to promote international competition of manufacturing industry. Networked manufacturing is an important part in Manufacture Information Engineering, it becomes a development direction of manufacturing industry in 21st century. In combining with the experiments and researches of the subject, this paper discusses current status of domestic and world networked manufacturing system, and studies information management technology on networked manufacturing system, such as communication technology of networked manufacturing, effective management and security on networked manufacturing, and designs models that correspond with the networked manufacturing system, including a communication model, an effective management model and a safe model. The practice indicates that these models have guaranteed the information management of networked manufacturing system effectively. Finally, the development of information management on networked manufacturing system is prospected. © 2012 IEEE.','',1,'Jiao H., Zhao Q.','scopus/service oriented architecture security.csv','scopus','\0'),(69,'Flexible procedural interoperability across security and coalition boundaries using rapidly re-configurable boundary protection definitions','2013','1','business process; Decentralized Operating Procedure; DOP; Interoperability; Lean Services; middleware; SOA','Existing configuration of boundary protection devices, which validate the content and context of information crossing between security domains, uses a set of accreditor-agreed steps individually agreed for every situation. This has traditionally been a slow and exacting process of negotiation between integrators and accreditors. The Decentralized Operation Procedure1 (DOP) technique allows interoperability definitions of system interactions to be created as XML files and deployed across the battlefield environment. By extending the security information definitions within the DOP technique, it is intended to provide sufficient incorporated information to allow boundary protection devices to also immediately load and utilize a DOP XML file and then apply established standards of security. This allows boundary devices to be updated with the same dynamism as the deployment of new DOPs and DOP interoperability definitions to also exploit coalitional capabilities having crossed security boundaries. The proposal describes an open and published boundary definition to support the aims of the MOD 23-13 Generic Base Architecture Defense Standard2 when working with coalition partners. The research aims are; a) to identify each element within a DOP that requires security characteristics to be described; b) create a means to define security characteristics using XML; c) determine whether external validation of an approved DOP requires additional authentication; d) determine the actions that end users will have to perform on boundary protection devices in support of these aims. The paper will present the XML security extensions and the results of a practical implementation achieved through the modification of an existing accredited barrier device. © 2013 SPIE.','',1,'Peach N.','scopus/soa security.csv','scopus','\0'),(70,'Cost-Effective Feature Placement of Customizable Multi-Tenant Applications in the Cloud','2014','7',' Distributed computing Cloud computing SPLE Application placement','Abstract Cloud computing technologies can be used to more flexibly provision application resources. By exploiting multi-tenancy, instances can be shared between users, lowering the cost of providing applications. A weakness of current cloud offerings however, is the difficulty of creating customizable applications that retain these advantages. In this article, we define a feature-based cloud resource management model, making use of Software Product Line Engineering techniques, where applications are composed of feature instances using a service-oriented architecture. We focus on how resources can be allocated in a cost-effective way within this model, a problem which we refer to as the feature placement problem. A formal description of this problem, that can be used to allocate resources in a cost-effective way, is provided. We take both the cost of failure to place features, and the cost of using servers into account, making it possible to take energy costs or the cost of public cloud infrastructure into consideration during the placement calculation. Four algorithms that can be used to solve the feature placement problem are defined. We evaluate the algorithm solutions, comparing them with the optimal solution determined using an integer linear problem solver, and evaluating the execution times of the algorithms, making use of both generated inputs and a use case based on three applications. We show that, using our approach a higher degree of multi-tenancy can be achieved, and that for the considered scenarios, taking the relationships between features into account and using application-oriented placement performs 25–40 % better than a purely feature-oriented placement.','Journal of Network and Systems Management',1,'Hendrik MoensEddy TruyenStefan WalravenWouter JoosenBart DhoedtFilip De Turck','springer/soa security.csv','springer','\0'),(71,'PMG-Pro: A Model-Driven Development Method of Service-Based Applications','2012','1','','Abstract In the Internet of Things, billions of networked and software-driven devices will be connected to the Internet. They can communicate and cooperate with each other to form a composite system. In this paper, we propose PMG-pro (present, model, generate and provide), a language independent, bottom-up and model-driven method for the development of such composite system. We envision that all devices in the Internet of Things provide their functionalities as services. From a service description, a service presenter generates source code (i.e., for the service invocations) and uses an abstract graphical representation to represent a service. The code is connected to the abstract graphical service representation. A service abstractor constructs the abstract graphical representations even more abstract in hierarchical service taxonomy. Software developers use the abstract graphical service presentations to specify new service-based applications, while the source code is used for the automation of code generation.','',2,'Selo SulistyoAndreas Prinz','springer/bpel security.csv','springer','\0'),(72,'Representing and Elaborating Quality Requirements: The QRA Approach','2013','1',' quality requirements (QRs) goal modeling business process modeling quality requirements analysis','Abstract This paper presents the quality requirements analysis ( \\(\\mathcal{QRA}\\) ) approach to requirements modeling. The \\(\\mathcal{QRA}\\) approach supports functional and non-functional requirements modeling in three dimensions: First, it extends functional goal modeling with non-functional goals. Second, it injects QR (quality requirement) specification into business process models. Third, it provides a set of rules for elaborating and refining QRs alongside functional decomposition of business processes. This paper describes \\(\\mathcal{QRA}\\) ’s conceptual foundations and illustrates them through goals and business processes of a real world stock trading system.','',2,'Jie SunPericles LoucopoulosLiping Zhao','springer/bpmn security.csv','springer','\0'),(73,'Automatic trust calculation for service-oriented systems','2014','0','','Among various service providers providing identical or similar services with varying quality of service, trust is essential for service consumers to find the right one. Manually assigning feedback costs much time and suffers from several drawbacks. Only automatic trust calculation is feasible for large-scale service-oriented applications. Therefore an automatic method of trust calculation is proposed. To make the calculation accurate, the Kalman filter is adopted to filter out malicious non-trust quality criterion (NTQC) values instead of malicious trust values. To offer higher detection accuracy, it is further improved by considering the relationship between NTQC values and variances. Since dishonest or inaccurate values can still influence trust values, the similarity between consumers is used to weight data from other consumers. As existing models only used the Euclidean function and ignored others, a collection of distance functions is modified to calculate the similarity. Finally, experiments are carried out to access the robustness of the proposed model. The results show that the improved algorithm can offer higher detection accuracy, and it was discovered that another equation outperformed the Euclidean function.','IET Software',1,'B. Ye; M. Nekovee; A. Pervez; M. Ghavami','ieee/service oriented architecture security.csv','ieee','\0'),(74,'Security-oriented cloud platform for SOA-based SCADA','2015','','Cloud computing; Critical infrastructure; SCADA; SOA','During the last 10 years, experts in critical infrastructure security have been increasingly directing their focus and attention to the security of control structures such as Supervisory Control and Data Acquisition (SCADA) systems in the light of the move toward Internet-connected architectures. However, this more open architecture has resulted in an increasing level of risk being faced by these systems, especially as they became offered as services and utilised via Service Oriented Architectures (SOA). For example, the SOA-based SCADA architecture proposed by the AESOP project concentrated on facilitating the integration of SCADA systems with distributed services on the application layer of a cloud network. However, whilst each service specified various security goals, such as authorisation and authentication, the current AESOP model does not attempt to encompass all the necessary security requirements and features of the integrated services. This paper presents a concept for an innovative integrated cloud platform to reinforce the integrity and security of SOA-based SCADA systems that will apply in the context of Critical Infrastructures to identify the core requirements, components and features of these types of system. The paper uses the SmartGrid to highlight the applicability and importance of the proposed platform in a real world scenario. © 2015 IEEE.','',1,'Baker T., Mackay M., Shaheed A., Aldawsari B.','scopus/service oriented architecture security.csv','scopus','\0'),(75,'Multiparty Session Nets','2014','3','','Abstract This paper introduces global session nets, an integration of multiparty session types (MPST) and Petri nets, for role-based choreographic specifications to verify distributed multiparty systems. The graphical representation of session nets enables more liberal combinations of branch, merge, fork and join patterns than the standard syntactic MPST. We use session net token dynamics to verify a flexible conformance between the graphical global net and syntactic endpoint types, and apply the conformance to ensure type-safety and progress of endpoint processes with channel mobility. We have implemented Java APIs for validating global session graph well-formedness and endpoint type conformance.','',2,'Luca FossatiRaymond HuNobuko Yoshida','springer/bpel security.csv','springer',''),(76,'User-Customisable Policy Monitoring for Multi-tenant Cloud Architectures','2012','0',' Cloud architecture Policy customisation Monitoring','Abstract Cloud computing needs end-user customisation and personalisation of multi-tenant cloud service offerings. Particularly, QoS and governance policy management and monitoring is needed. We propose a user-customisable policy definition solution that can be enforced in multitenant cloud offerings through automated instrumentation and monitoring. Service processes run by cloud and SaaS providers can be made policy-aware in a transparent way.','',2,'Ming-Xue WangClaus Pahl','springer/bpel security.csv','springer','\0'),(77,'Capturing and Aligning Assurance Requirements for Business Services Systems','2012','0',' service system business service assurance requirements goaloriented techniques business models construction sector service level management','Abstract In this chapter we introduce and illustrate a systematic and rigorous approach for the elicitation and the modelling of assurance requirements inherent to business services offered by a service system. The approach is based on guidelines provided by the ISO 15504 norm, which is applicable for the assessment of any type of process in order to check its compliance against assurance requirements. We explain how 15504 can be applied in the context of business services with the support provided by goal-oriented requirements engineering techniques like i* . Its use is illustrated through the handling of an excerpt of a real case from the construction sector complemented with expertise developed in IT service level management. While this chapter is focusing on the capture of business requirements and their transformation into a business oriented solution, we also briefly explain how this business view is part of a more complete methodology also encompassing the service value and the service software views associated with a service system.','',2,'Eric DuboisSylvain KubickiSophie RamelAndré Rifaut','springer/bpel security.csv','springer','\0'),(78,'9--10','2012','1','aspects, formal methods, reference monitors, security, service-oriented architecture','In this paper we introduce a model as a foundation for heterogeneous services, therefore unifying web services technologies in SOA (Service Oriented Architecture), specifically, SOAP/WS* and RESTful models. This model abstracts away from service implementations, in order to verify and to enforce some important security properties.','',1,'','acm/soa security.csv','acm','\0'),(79,'Semantic-based transaction model for web service','2013','3',' Web service Cloud system BPEL Semantic transaction model','Abstract Cloud computing technology has become more and more utilized in business application in today’s industrial fields. In general, many business systems developed based on web services are indeed heterogeneous software systems that process business data by complying with integrated business rules. Web services have until recently been regarded as software building blocks that can be assembled to construct the distributed business applications of the next generation and assist enterprises to promote operational efficiency and organizational flexibility. As a result, Web services can be employed to improve the integration of value chain processes and/or activities. However, Web services are usually implicit as a black box that prohibits users and developers from comprehending an actual scenario and present status inside the web service component as said developers deal with other associated heterogeneous components. Additionally, developers are unable to increase overall efficiency while integrating Web service components if they do not possess the ability to modify/improve the implementation scenario. This research first defines the component as corresponding state transitions that should be decomposed further into sub-transactions and semantic transactions, which can make possible re-implementation of the specific Web services in an efficient way and increase the overall throughputs for the new composite Web services. Secondly, this study implements an MTNet Project, which can be employed to assist developers’ analysis and construction of the semantic models for Web services according to the previously described definitions. Last, the simulation experiment provided in this manuscript proved that the proposed semantic model can indeed improve the throughput and, consequently, decrease the delay time for concurrent transactions.','Information Systems Frontiers',2,'Shing-Han LiShi-Ming HuangDavid C. YenJui-Chang Sun','springer/bpel security.csv','springer','\0'),(80,'BETaaS: A Platform for Development and Execution of Machine-to-Machine Applications in the Internet of Things','2016','0',' IoT platforms M2M Local cloud Fog computing Context awareness','Abstract The integration of everyday objects into the Internet represents the foundation of the forthcoming Internet of Things (IoT). Smart objects will be the building blocks of the next generation of applications that will exploit interaction between machines to implement enhanced services with minimum or no human intervention in the loop. A crucial factor to enable Machine-to-Machine (M2M) applications is a horizontal service infrastructure that seamlessly integrates existing IoT heterogeneous systems. The authors present BETaaS, a framework that enables horizontal M2M deployments. BETaaS is based on a distributed service infrastructure built on top of an overlay network of gateways that allows seamless integration of existing IoT systems. The platform enables easy deployment of applications by exposing to developers a service oriented interface to access things (according to a Things-as-a-Service model) regardless of the technology and the physical infrastructure they belong to.','Wireless Personal Communications',1,'Carlo VallatiEnzo MingozziGiacomo TanganelliNovella BuonaccorsiNicola ValdambriniNikolaos ZonidisBelén MartínezAlessandro MamelliDavide SommacampagnaBayu AnggorojatiSofoklis KyriazakosNeeli PrasadFrancisco Javier NietoOliver Barreto Rodriguez','springer/soa security.csv','springer',''),(81,'Enabling the IoT Paradigm in E-health Solutions through the VIRTUS Middleware','2012','8','Internet of Things;VIRTUS Middleware;XMPP;e-health;telemonitoring','In Europe, in a context of growing population and decreasing resources, ageing related diseases represent one of the most relevant challenges in terms of healthcare organization complexity, plus care levels and system financing balancing. Nowadays there are several researches that are studying the application of the IoT (Internet of Things) paradigm in the e-health field. This paper explains how a solution, built on the top of the VIRTUS IoT middleware, provides a valid alternative to current IoT solutions, which are mainly based on SOA (Service Oriented Architecture). VIRTUS leverage an Instant Messaging protocol (XMPP) to guarantee a (near) real-time, secure and reliable communication channel among heterogeneous devices. The presented development has been exploited in a healthcare case study: an implementation of a cost-savvy remote body movement monitoring system, aimed at classify daily patients\' activities, designed as a modular architecture and deployed in a large scale scenario. The paper analyzes the features offered by the VIRTUS middleware, if used within a e-health solution, providing a comparison with other well-known systems.','2012 IEEE 11th International Conference on Trust, Security and Privacy in Computing and Communications',1,'M. Bazzani; D. Conzon; A. Scalera; M. A. Spirito; C. I. Trainito','ieee/service oriented architecture security.csv','ieee','\0'),(82,'Utilizing linear subspaces to improve cloud security','2012','2','','Cloud computing is quickly becoming the infrastructure of choice for hosting data and software solutions for many individuals, businesses, and governmental organizations. While such systems may provide increased flexibility and utility, efficient and easily-managed cloud storage solutions that ensure data confidentiality are needed to maintain this trend. In this work, we propose an algebraic-based encoding solution to provide data confidentiality. Additionally, through the use of the various algebraic subspaces present in the coding process, we are able to verify basic Service Level Agreement (SLA) guarantees. We demonstrate the feasibility of our solution through implementations and deployments on test systems.','IEEE/IFIP International Conference on Dependable Systems and Networks Workshops (DSN 2012)',1,'D. Zage; J. Obert','ieee/service oriented architecture security.csv','ieee','\0'),(83,'Cloud migration for SMEs in a service oriented approach','2013','4','Cloud computing; cloud migration; migration framework; SMEs; SOA','Cloud computing has gained immense momentum during recent years and has ultimately become a viable solutions not only for larger firms, but also for small and medium-sized enterprises (SMEs). For smaller companies to stay competitive, many have therefore decided in favour of adapting cloud solutions. Given the multitude of issues and challenges that occur during the cloud migration phase, this work proposes a novel framework that helps SMEs to master migration related impediments. Firstly, the work takes into account SME specific requirements and articulates their importance during the cloud provider selection phase. The elicitation results demonstrate that factors such as security, reliability, cost, performance as well as flexibility and service and support have a pivotal role to play and require close attention. Secondly, decisive attributes were defined that qualify business components and services as cloud-fit. Finally, the framework itself was proposed, which focuses on a systematic service-oriented approach and helps companies to analyse their existing business processes in the course of cloud migration. The framework was verified in its practicability using a concrete scenario and a subsequent prototypical cloud implementation. © 2013 IEEE.','',1,'Nussbaumer N., Liu X.','scopus/soa security.csv','scopus','\0'),(84,'Validating Orchestration of Web Services with BPEL and Aggregate Signatures','2008','2','aggregate signatures;secure workflow;service orchestration','In this paper, we present a framework providing integrity and authentication for secure workflow computation based on BPEL Web service orchestration.Whereas much attention has been dedicated to security issues for Web services, no standard and practical solutions have been provided to secure workflows. In this paper, we address a recent cryptographic tool, aggregate signatures, to validate the orchestration by requiring all partners to sign the result of their computation. Security operations are performed during the orchestration and require no change in the services implementation. We present a prototype implementation for validating linear workflows and we evaluate its performance. We further give a generalization of our basic scheme that can be used to validate generic workflows.','on Web Services, 2008. ECOWS \'08. IEEE Sixth European Conference',2,'C. Blundo; E. D. Cristofaro; C. Galdi; G. Persiano','ieee/bpel security.csv','ieee','\0'),(85,'Service-oriented smart home applications: composition, code generation, deployment, and execution','2012','7',' Ontology Smart home Composition Code generation Service-oriented','Abstract A smart home usually has a variety of devices or home appliance, instead of designing software for a specific home, this paper proposes a service-oriented framework with a set of ontology systems to support service and device publishing, discovery of devices and their services, composition of control software using existing control services that wrap devices, deployment, and execution of the composed service in an computing environment, monitoring the execution, and recovery from device failure. The ontology systems specify semantic information about devices, services, and workflows used in various smart home, and users can compose and recompose services for their specific needs. New devices, workflows, and services can be added into ontology. Most of the steps in this process can be automated including code generation. For example, service composition will be carried out in three steps: abstract workflow design, function construction, and device discovery, and different codes can be generated for different computing platforms such as Java and Open Services Gateway initiative environments. In this way, a variety of smart home can be constructed rapidly using the framework by discovery and composition using existing services and workflows. This paper illustrates this framework using a media control example to illustrate the ontology, discovery, composition, deployment, execution, monitoring, and recovery.','Service Oriented Computing and Applications',1,'Wu LiYann-Hang LeeWei-Tek TsaiJingjing XuYoung-Sung SonJun-Hee ParkKyung-Duk Moon','springer/soa security.csv','springer','\0'),(86,'A Web Visualization System of Cyberinfrastructure Resources','2012','0',' cyberinfrastructure spatiotemporal visualization GIS','Abstract With the development of cyberinfrastructure (CI), the massive heterogeneous resources emerge gradually. The resources are multi-source, heterogeneous and spatiotemporally distributed. Traditional structural management of resources has been unable to meet the needs of global resource sharing because of the lack of efficiency in expressing spatiotemporal features of CI. Since the CI resources leap over time and space, it is essential to establish a unified spatiotemporal metadata model for CI services across different disciplines. The adoption of a system with intuitive resource visualization and management would aid interoperability and collaboration of scientific research activities among organizations and domains. In this paper, we propose a spatiotemporal metadata model which characterizes the resources as spatial entities with time and space dimensions. Furthermore, a web-based GIS platform is implemented for spatiotemporal visualization. The well-known data, computing and network resources are used as the cases in the model and the visualization system. This allows the easy integration of emerging CI services into the system. Our work here would provide the scientists with great benefits for the integration, management, spatiotemporal analysis of CI resources and auxiliary optimization of resource distribution.','',1,'Yuwei WangKaichao WuDanhuai GuoWenting XiangBaoping Yan','springer/service oriented architecture security.csv','springer','\0'),(87,'A novel architecture for green document services — GDS','2013','0','GDS;Internet and Mobile Network;SOA;Smart Devices','An architecture for SOA based universal Green Document Services - GDS system is proposed in this paper. This GDS system uses internet and mobile network, is a revolutionary idea to change the whole world, perhaps to save billions of trees from getting converted into paper media; using the existing Post Office concept, the GDS requires that the sender and receiver to have a smart device to connect to internet / mobile network. GDS will handle all the Document Services Systems involving letters, documents, bills, coupons, receipts etc., which doesn\'t require physical objects like credit cards and parcels. The proposed GDS will serve a one stop shop solution for all documents related transactions/archival.','Computational Intelligence and Computing Research (ICCIC), 2013 IEEE International Conference on',1,'K. Nallaperumal; S. Arumugaperumal; N. Nainar; K. Marappan; N. Vishwanath','ieee/service oriented architecture security.csv','ieee','\0'),(88,'The Problem of Handling Multiple Headers in WS-Security Implementations','2014','0','SOAP;WS-Security;banking application;security header','This paper discusses some practical problems encountered when generating multiple WS-Security confidentiality headers to be handled by different intermediaries along the SOAP message delivery chain of a real banking application. A patch using a special-purpose encryption component is described.','Computer Software and Applications Conference Workshops (COMPSACW), 2014 IEEE 38th International',1,'E. Damiani; V. Coviello; F. Frati; C. Santacesaria','ieee/service oriented architecture security.csv','ieee','\0'),(89,'On Guaranteeing Global Dependability Properties in Collaborative Business Process Management','2012','0','','Abstract The Service-Oriented Architecture (SOA) paradigm supports a collaborative business model, where business applications are built from independently developed services, and services and applications build up complex dependencies. Guaranteeing high dependability levels in such complex environment is a key factor for the success of this model. In this chapter we discuss issues concerning the design of such software systems, evidencing the limits of the proposed approaches, and suggesting directions for advancements in this field. Moreover, we also discuss issues concerning the case of self-adaptive SOA systems, whose goal is to self- configure themselves, to cope with changes in the operating conditions and to meet the required dependability with a minimum of resources.','',2,'Valeria CardelliniEmiliano CasalicchioVincenzo GrassiFrancesco Lo Presti','springer/bpel security.csv','springer','\0'),(90,'Model-driven engineering of middleware-based ubiquitous services','2014','0',' Service-oriented development Model-driven service engineering Service-oriented middleware Ubiquitous computing','Abstract Supporting the execution of service-oriented applications over ubiquitous networks specifically calls for a service-oriented middleware (SOM), which effectively enables ubiquitous networking while benefiting from the diversity and richness of the networking infrastructure. However, developing ubiquitous applications that exploit the specific features offered by a SOM might be a time-consuming task, which demands a deep knowledge spanning from the application domain concepts down to the underlying middleware technicalities. In this paper, first we present the model-driven development process underpinning ubi SOAP, a SOM for the ubiquitous networking domain. Then, based on the domain concepts defined by the conceptual model of ubi SOAP, its architecture and its technicalities, we propose a domain-specific environment, called ubi DSE, that aids the development of applications that exploits the ubi SOAP features, from design to implementation. ubi DSE allows developers to focus on the main behavior of the modeled systems, rather than on complex details inherent to ubiquitous environments. As part of ubi DSE, specific tools are provided to automatically generate skeleton code for service-oriented applications to be executed on ubi SOAP-enabled devices, hence facilitating the exploitation of ubi SOAP by developers.','Software & Systems Modeling',1,'Marco AutiliMauro CaporuscioValérie IssarnyLuca Berardinelli','springer/service oriented architecture security.csv','springer','\0'),(91,'User Driven Data Access Mechanisms','2013','0','','Abstract Most climate and climate impact studies include data analyses and therefore rely on scientific data. Generally, only a small part out of the whole available data of an experiment or model run is used. Hosting these data and making it easily accessible meets two challenges: First, the community of data users virtual organization (VO) grows and becomes more diverse, e.g. the Geographical Information System (GIS) users have started to use scientific climate data. The community investigates natural scientific as well as political, economical and social scientific questions (e.g. climate impact). And as heterogeneous as their questions are their data requirements. The second challenge lies in the continuous intensive growth of the amount of data, which is spread over different specialized data archives worldwide. Researchers create greater amounts of data in a shorter amount of time on the quickly evolving high-performance computing systems, whereas the storage amounts and network capacities develop less rapidly.','',1,'Martina Stockhause','springer/webservice security.csv','springer','\0'),(92,'Security modelling along business process model of SOA systems using modified \"UML-SOA-Sec\"','2012','','Business Process Modelling; Domain Specific Language; Model Driven Architecture; Security Objectives; Service Oriented Architecture; Unified Modelling Language','In SOA environment, software systems are composed of services which are scattered across enterprises and architectures. Security play vital role during the design, development and operation of SOA applications. However, analysis of today\'s software development approaches reveals that the engineering of security into the system design is often neglected. This may happened due to the fact that the general purpose modelling languages lack the elements for security modelling. As a result, either security is ignored in the model or indicated in a textual way. The post-hoc, low-level integration of security has a negative impact on resulting SOA applications. A Domain Specific Language named \"UML-SOA-Sec\" is proposed for security modelling along the business process modelling of SOA Applications. © 2012 IEEE.','',1,'Saleem M.Q., Jaafar J., Fadzil Hassan M.','scopus/service oriented architecture security.csv','scopus','\0'),(93,'Expert discovery and interactions in mixed service-oriented systems','2012','10','crowdsourcing; hubs and authorities; Human-provided services; service-oriented expertise provisioning; social trust','Web-based collaborations and processes have become essential in today\'s business environments. Such processes typically span interactions between people and services across globally distributed companies. Web services and SOA are the defacto technology to implement compositions of humans and services. The increasing complexity of compositions and the distribution of people and services require adaptive and context-aware interaction models. To support complex interaction scenarios, we introduce a mixed service-oriented system composed of both human-provided and Software-Based Services (SBSs) interacting to perform joint activities or to solve emerging problems. However, competencies of people evolve over time, thereby requiring approaches for the automated management of actor skills, reputation, and trust. Discovering the right actor in mixed service-oriented systems is challenging due to scale and temporary nature of collaborations. We present a novel approach addressing the need for flexible involvement of experts and knowledge workers in distributed collaborations. We argue that the automated inference of trust between members is a key factor for successful collaborations. Instead of following a security perspective on trust, we focus on dynamic trust in collaborative networks. We discuss Human-Provided Services (HPSs) and an approach for managing user preferences and network structures. HPS allows experts to offer their skills and capabilities as services that can be requested on demand. Our main contributions center around a context-sensitive trust-based algorithm called ExpertHITS inspired by the concept of hubs and authorities in web-based environments. ExpertHITS takes trust-relations and link properties in social networks into account to estimate the reputation of users. © 2012 IEEE.','',1,'Schall D., Skopik F., Dustdar S.','scopus/soa security.csv','scopus','\0'),(94,'Dynamic Performance Management in Multi-tenanted Business Process Servers Using Nonlinear Control','2012','1','','Abstract The methodologies to develop multi-tenanted architectures have been investigated in the recent literature due to the popularity of cloud computing. A number of challenges need to be overcome if multi-tenanted architectures are to be effective and efficient. Among the challenges is the management of performance properties while effectively sharing the limited resources between the tenants. This work presents an approach to design such a management system for a multi-tenanted business process server. This approach not only enables performance to be maintained at different levels for different tenants depending on their priorities, but also autonomously detects the overloads of aggressive tenants and dynamically changes the control objectives to safeguard the business operations of other tenants. The novelty of the proposed approach is the use of the nonlinear feedback control. The experiment results indicate that the proposed nonlinear control approach achieves the objectives much better compared to the existing fixed and linear control techniques.','',2,'Tharindu PatikirikoralaIndika KumaraAlan ColmanJun HanLiuping WangDenis WeerasiriWaruna Ranasinghe','springer/bpel security.csv','springer','\0'),(95,'PBA4WSSP: a policy-based architecture for web services security processing','2014','1',' Web services Security Security policy PBA4WSSP','Abstract Due to the dynamic, heterogeneous and interorganizational nature, different web services and different ports or operations in the same service, even the same services at different times may have their different security requirements because of their different security domains and different business backgrounds. How to design a flexible, fine-grained and comprehensive architecture for web services security processing has become a matter of great urgency. However, no ideal solutions have been worked out for these problems. As a result of our study, we have presented in this paper a policy-based architecture termed policy-based architecture for web services security processing (PBA4WSSP) to meet the dynamic, complete and fine-grained security requirements. In PBA4WSSP, the processing of all security problems is based on security policy in service stage to support flexibly security configuration. Moreover, we have designed a service policy model to describe the fine-grained security requirements. And the conversion method between security policy model and security policy expression has also been described. In addition, a staged complete security processing architecture is provided to reduce the dependency among protocol implementations. Furthermore, with PBA4WSSP, a web service security module has been designed and implemented as well. Eventually, the performance evaluation results amply demonstrate that our system is flexible and usable.','Service Oriented Computing and Applications',1,'Hao ZengDianfu MaYongwang ZhaoZhuqing Li','springer/soa security.csv','springer','\0'),(96,'SoaML and UPIA Model Integration for Secure Distributed SOA Clouds','2012','1','DoDAF;SOA;SOA-RA;SOA-RM;SoaML;UML;UPIA;modeling;services','The U.S. Department of Defense (DoD) specifies the Department of Defense Architecture Framework (DoDAF) for military architecture models. Industry typically uses different modeling tools, including the Unified Modeling Language. There are many modeling techniques for Service Oriented Architecture (SOA). DoDAF supports SOA through DoDAF version 2.0. Industry supports SOA through several toolsets including UML Profile-based Integrated Architecture (UPIA) and the SOA modeling language (SoaML). This paper presents background information on SOA modeling techniques and some methods to transition between DoD and commercial tools. Variables and metrics for analysis in SOA models are presented. UPIA is advanced as a means to transition between DoDAF 2.0 and SoaML. SoaML is rendered within UPIA models to help address potential future DoD initiatives for implementation of SOA within cloud architectures. This paper advances methods for industry-to-DoDAF model integration for secure distributed SOA clouds and provides background on defense and industry modeling techniques for enterprise-class SOA.','2012 IEEE Eighth World Congress on Services',1,'R. W. Maule','ieee/service oriented architecture security.csv','ieee','\0'),(97,'Testing of PolPA-based usage control systems','2014','3',' Authorization systems PolPA language Usage control History-based access control Testing Test case generation','Abstract The implementation of an authorization system is a critical and error-prone activity that requires a careful verification and testing process. As a matter of fact, errors in the authorization system code could grant accesses that should instead be denied, thus jeopardizing the security of the protected system. In this paper, we address the testing of the implementation of the Policy Decision Point (PDP) within the PolPA authorization system that enables history-based and usage-based control of accesses. Accordingly, we propose two testing strategies specifically conceived for validating the history-based access control and the usage control functionalities of the PolPA PDP. The former is based on a fault model able to highlight the problems and vulnerabilities that could occur during the PDP implementation. The latter combines the standard technique for conditions coverage with a methodology for simulating the continuous control of the PDP during the runtime execution. Both strategies are implemented within a testing framework supporting the automatic generation and execution of security test suites. Results produced by the application of this testing framework to a real case study are presented.','Software Quality Journal',1,'Antonia BertolinoSaid DaoudaghFrancesca LonettiEda MarchettiFabio MartinelliPaolo Mori','springer/soa security.csv','springer','\0'),(98,'Docker','2015','1','Docker; Docker containers; James Turnbull; microservices; SE Radio; Software Engineering Radio','In episode 217 of Software Engineering Radio, host Charles Anderson talks with James Turnbull, a software developer and security specialist who\'s vice president of services at Docker. Lightweight Docker containers are rapidly becoming a tool for deploying microservice-based architectures. © 2015 IEEE.','',1,'Anderson C.','scopus/microservice security.CSV','scopus',''),(99,'Geospatial Data Interoperability, Geography Markup Language (GML), Scalable Vector Graphics (SVG), and Geospatial Web Services','2015','0','','Abstract Although many GIS databases have been developed, geospatial data interoperability is still a challenge faced by the geospatial community. GML, as a standard data exchange format, aims to achieve the goal of data interoperability by providing mechanisms for data sharing and reuse at the feature level over the Web. While GML provides a means to encode and transport geospatial features into XML, SVG provides a means to display these GML-encoded geospatial features into vector maps on the Web. The Geospatial Web Services Implementation Specifications developed by the OGC, such as Web Feature Service (WFS), Web Map Service (WMS), Web Coverage Service (WCS), Web Processing Service (WPS), and Catalogue Service (CS), provide the state-of-the-art technologies for achieving geospatial data interoperability at the syntax level. Services-Oriented Architecture (SOA) moves away from monolithic systems towards distributive systems with interoperable components, and implementations of the SOA may decrease problems in data and model duplication and maintenance.','',2,'Chuanrong ZhangTian ZhaoWeidong Li','springer/bpel security.csv','springer',''),(100,'What Can Agent-Based Computing Offer Service-Oriented Architectures, and Vice Versa?','2012','1','','Abstract This article serves as a record of a panel discussion held at PRIMA in November, 2010. The panel consisted of two academic and three industry representatives, and thus provided a rare opportunity to discuss the relationship between agent-based computing and service-oriented architectures from both points of view. The basic question for the panel was to identify the key research and industry issues that arise in the deployment of systems based on service-oriented architectures, and in particular to address whether the agent-based computing paradigm offers any resolution of those issues. The question was also posed whether applications based on service-oriented architectures provide a suitable platform for implementing agent-based systems, which are presently limited in application by comparison. This summary is presented with the aim of stimulating further academic and industry collaborative research in this fast growing area which potentially has wide-ranging practical application.','',1,'Wayne WobckeNirmit DesaiFrank DignumAditya GhoseSrinivas PadmanabhuniBiplav Srivastava','springer/service oriented architecture security.csv','springer','\0'),(101,'Component-Based Information Service Platform for Heating Industry','2014','0','SOA;business process;heating;information integration;service platform','To solve the problem of low information integration for heating industry, a framework of information service platform is proposed. The framework realizes information sharing and integration control of central heating. Four core components are designed to implement process development, service collaboration, publish/subscribe and event rule. A heating management system has been designed based on these components, which realizes intelligent and security of the production management. And three application subsystems have been developed to realize heating maintenance service, multi-level alarm service and heating charging service. The information service platform effectively achieves information integration and rapid service development.','Web Services (ICWS), 2014 IEEE International Conference on',1,'G. Hu; B. Wu; B. Cheng; J. Chen','ieee/service oriented architecture security.csv','ieee','\0'),(102,'Service-oriented middleware architecture for mobile personal health monitoring','2012','1','Diabetes; Internet of Things; Middleware; Remote Healthcare Monitoring; Semantics; SOA','Developers of applications for health and wellness monitoring are facing a diversity of protocols, standards and communication mechanisms for collecting data from heterogeneous sensors, devices and services, as well as when exporting data to various health and wellness services and systems. The REACTION platform addresses this using a middleware approach which leverages the development tasks to a service-oriented level allowing developers to use open standard technologies like web services. The REACTION SOA (Service-Oriented Architecture) approach offers a scalable and inter-operable platform for use in different healthcare settings. The REACTION applications are based on numerous individual services that can be developed and deployed to perform clinical monitoring and feedback tasks, execute distributed decision support and security tasks, support work flow management, and perform event handling and crisis management. © 2012 ICST Institute for Computer Science, Social Informatics and Telecommunications Engineering.','',1,'Ahlsén M., Asanin S., Kool P., Rosengren P., Thestrup J.','scopus/service oriented architecture security.csv','scopus','\0'),(103,'Implementing the logical security framework for E-commerce based on service-oriented architecture','2016','','Encrypted database; Legacy systems; Security attacks; Service-oriented architectures; Web services','Logical security of the modern E-commerce system is one of the major issues, effecting the growth of sophisticated E-commerce systems. Due to poor designing and configuration of the modern E-commerce’s system, they lacked in quality attributes such as logical security. In the last decade, the number of highly equipped and trained intruders is increased significantly, due to increase in availability of computer systems and internet. These highly equipped and trained intruders are serious threat for the growing E-commerce industry. One of the leading Indian newspapers in 2013 reported about bugs on some of the most famous E-commerce websites such as Western Union and Facebook. This paper proposed a logical security framework for the small-and medium-sized E-commerce systems. The proposed logical security framework is inherited the benefits of serviceoriented architecture and presents an analysis of the eminent security attacks which can be prevented. The proposed logical security framework is implemented and validated on osCommerce, an open source E-commerce. © Springer Science+Business Media Singapore 2016.','',1,'Luhach A.K., Dwivedi S.K., Jha C.K.','scopus/service oriented architecture security.csv','scopus',''),(104,'Enhancing Model Driven Security through Pattern Refinement Techniques','2013','0','','Abstract Security requirements are typically defined at a business abstract level by non-technical security officers. However, in order to fulfill the security requirements, technical security controls or mechanisms have to be considered and deployed on the target system. Based on these security controls security patterns have to be selected. The MDS (Model Driven Security) approach uses security requirement models at a high level of abstraction to automatically generate security artefacts that configure security services. The main drawback of the current MDS solutions is that they consider just one security pattern for each security requirement. Current SOA and cloud services are scattered across multiple heterogeneous security domains. Partners and clients with different security infrastructures are changing continuously, which requires the support of multiple patterns for the same security service. The challenge is to provide configurable security services that can support different patterns. In order to overcome this shortcoming we propose a framework that integrates pattern refinement to the MDS approach. In this approach a security pattern refinement layer is added to the traditional MDS layers. The pattern refinement layer supports the configuration of one security service with different patterns, which are stored in a pattern catalog. For example, our approach enables the generation of security artefacts that configure a non-repudiation service to support both fair non-repudiation and naive non-repudiation patterns.','',2,'Basel KattMatthias GanderRuth BreuMichael Felderer','springer/bpel security.csv','springer','\0'),(105,'A Metamodel for the Design of Access-Control Policy Enforcement Managers: Work in Progress','2012','0','','Abstract This paper presents a metamodel of a policy enforcement manager responsible for applying the rules defined in security policies with the aim to constraint the access to the functionalities and data of information systems. The metamodel is useful to derive platform-specific security models that provide the basis for the design and implementation of such managers for Web services as well as legacy information systems in various business sectors.','',2,'Michel Embe JiagueMarc FrappierFrédéric GervaisRégine LaleauRichard St-Denis','springer/bpel security.csv','springer','\0'),(106,'Abstract privacy policy framework: Addressing privacy problems in SOA','2012','','','This paper argues that privacy policies in SOA needs a lifecycle model. We formalize the lifecycle of personal data and associated privacy policies in Service Oriented Architectures (SOA), thus generalizing privacy-friendly data handling in cross-domain service compositions. First, we summarize our learning in two research projects (PrimeLife and SecPAL for Privacy) by proposing generic patterns to enable privacy policies in SOA. Second, we map existing privacy policy technologies and ongoing research work to the proposed abstraction. This highlights advantages and shortcomings of existing privacy policy technologies when applied to SOA. © 2012 Springer-Verlag.','',1,'Bussard L., Pinsdorf U.','scopus/service oriented architecture security.csv','scopus','\0'),(107,'A survey of methods and approaches for reliable dynamic service compositions','2014','18',' Composite service Service architecture Reliability evaluation Reliability-awareness','Abstract An increasing amount of today’s software systems is developed by dynamically composing available atomic services to form a single service that responds to consumers’ demand. These composite services are distributed across the network, adapted dynamically during run-time, and still required to work correctly and be available on demand. The development of these kinds of modern services requires new modeling and analysis methods and techniques to enable service reliability during run-time. In this paper, we define the required phases of the composite service design and execution to achieve reliable composite service. These phases are described in the form of a framework. We perform a literature survey of existing methods and approaches for reliable composite services to find out how they match with the criteria of our framework. The contribution of the work is to reveal the current status in the research field of reliable composite service engineering.','Service Oriented Computing and Applications',2,'Anne ImmonenDaniel Pakkala','springer/bpel security.csv','springer',''),(108,'Coping with the complexity of SOA systems with message forensics','2012','','forensics; message mediation; messaging network; SOA','This paper introduces an approach to construct SOA (Service Oriented Architecture) systems using the so called a synchronous messaging network. An asynchronous messaging network (or simply messaging network) refers to an overlay network (over LAN, VPN, Internet, etc.) that allows exchanging well-formatted asynchronous messages (typically in XML) between the service providers and consumers in the system. The proposed approach aims at reducing the operation and maintenance cost of the system by using a messaging network enhanced with the capability to store, inspect and analyze selected portions of the exchanged messages under the strict control of security and privacy. Complexity makes any information system vulnerable to design flaws, operation error, and security problems. The proposed approach facilitates analyzing these problems associated with complex SOA systems through the message-store analysis. We consider that the application of computer forensics to the message store in SOA helps the system administrator to identify and fix various problems. The requirements for the messaging network for SOA systems are also presented. © 2012 IEEE.','',1,'Hayashi T., Kara A., Miyazaki T., Iwase J., Fukuhara H., Saburi T., Hisada M.','scopus/service oriented architecture security.csv','scopus','\0'),(109,'OR.NET: Safe Interconnection of Medical Devices','2014','2','','Abstract This position paper gives an overview on the OR.NET project which focuses on the dynamic and safe interconnection of medical devices in an operating room. A brief overview of the legal situation for the approval of medical devices is given to highlight today’s limitations of the dynamic interconnection of safety critical devices in hospitals. A collection of methods equipped with a methodology is presented and discussed, which is intended to replace current integration tests at runtime.','',1,'Franziska KühnMartin Leucker','springer/service oriented architecture security.csv','springer','\0'),(110,'Experimenter\'s Portal: The Collection, Management and Analysis of Scientific Data from Remote Sites','2012','0','cloud computing, e-science, remote instrument control, service-oriented architecture, web-based services','This paper describes an e-Science initiative to enable teams of scientists to run experiments with secure links at one or more advanced research facilities. The software provides a widely distributed team with a set of controls and screens via common browsers to operate, observe and record essential parts of an experiment and to access remote cloud-based analysis software to process the large data sets that are often involved in complex experiments. This paper describes the architecture of the software, the underlying web services used for remote access to research facilities and describes the cloud-based approach for data analysis. The core services are general and can be used as the basis for access to a variety of systems, though specific screen interfaces and analysis software must be tailored to a facility. For illustrative purposes, we focus on use of the system to access a single site - a synchrotron beamline at the Canadian Light Source. We conclude with a discussion of the generality and extensibility of the software and services.','',1,'M. Bauer and N. S. McIntyre and N. Sherry and J. Qin and M. Suominen Fuller and Y. Xie and O. Mola and D. Maxwell and D. Liu and E. Matias','acm/service oriented architecture security.csv','acm','\0'),(111,'Security Policy Enforcement in BPEL-Defined Collaborative Business Processes','2007','3','Business Process Execution Language (BPEL);Collaborative Business Processes;Information Flow Analysis;Security Policy Enforcement;Semantic Analysis;Service Oriented Computing (SOC);Web Services','This paper presents an approach to security policy enforcement with collaborative business processes defined using BPEL and deployed across enterprise domain boundaries for execution. The assessment of compliance with security policies at the location where a BPEL script is to be executed is facilitated by re-formulating the security policies with respect to the potential of violation inherent in BPEL The results of an analysis of the security-relevant semantics of BPEL-defined business processes conducted for this purpose indicate the paramount role of information flow analysis in business processes. Based on these results, the paper proposes an XML-based schema for specifying security policies for cross-organisational business processes that allows for automatic checking of BPEL scripts for compliance to these security policies. The paper also introduces a prototype implementation of an automatic compliance check that approves the feasibility of the method for practical application in security policy enforcement.','Data Engineering Workshop, 2007 IEEE 23rd International Conference on',2,'K. P. Fischer; U. Bleimann; W. Fuhrmann; S. M. Furnell','ieee/bpel security.csv','ieee','\0'),(112,'Methods and Tools for Knowledge Exploitation in SOA Systems','2012','0','','','New Generation Computing',1,'Adan GrzechJanusz Sobecki','springer/service oriented architecture security.csv','springer','\0'),(113,'A Model-checking Approach to Analysing Organisational Controls in a Loan Origination Process','2006','34','delegation, model-checking, organisational control, revocation, separation','Proceedings of the Eleventh ACM Symposium on Access Control Models and Technologies','',2,'Andreas Schaad and Volkmar Lotz and Karsten Sohr','acm/bpel security.csv','acm',''),(114,'Self-adaptive Service Deployment in Context-Aware Systems','2014','0',' Context-awareness self-adaptation ubiquitous environments Service Oriented Architecture (SOA)','Abstract Ubiquitous environments present a dynamic network topology which implies frequent context changes which can affect the availability of the services deployed in the system. In order to obtain the full potential that this kind of environments can provide to assist human beings, this challenge must be faced. Service replication models in combination with self-adaptive capabilities may help to improve service availability and strengthen the system. In this work, it is presented a conceptual model to support a run-time service deployment taking into consideration relevant context information, such as resource availability, network topology and service requirements.','',1,'Gabriel Guerrero-ContrerasJosé Luis GarridoCarlos Rodríguez-DomínguezSara Balderas-Díaz','springer/service oriented architecture security.csv','springer','\0'),(115,'Inferring relevance and presence of evidence in service-oriented and SaaS architectures','2016','','Bayes methods; Conferences; Forensics; Security; Semantics; Service-oriented architecture','Gathering forensic evidence in distributed or cloud environments poses a number of legal, administrative, and technical challenges even at relatively coarse levels of granularity. For Software-As-A-Service (SaaS) and related Service-Oriented Architectures (SOA), however, the addition of loose binding lending such architectures their important flexibility and adaptability renders even identifying possible loci of evidence problematic. Moreover, even where the existence of evidence is known, its relevance for a given hypothesis may vary. We describe an approach to identify the existence of potential evidence based on a causality model of control flow, and seek to prioritise relevance based on a probabilistic graph model. This allows not only the explicit formulation of hypotheses and derivation of criteria for locating and retrieving evidence to be evaluated by Bayesian belief networks (BBN), but to minimise the otherwise highly problematic complexity of maximum a posteriori (MAP) hypotheses based on service orchestration and choreography semantics. © 2015 IEEE.','',1,'Almulla S., Iraqi Y., Wolthusen S.D.','scopus/service oriented architecture security.csv','scopus',''),(116,'A Low-Cost Security Certification Scheme for Evolving Services','2012','6','Evolving services;Model-based testing;SOA;Security certification','Security certification schemes for Service-Oriented Architecture (SOA) extend service specifications with the evidence that a service supports a set of security properties and provides a given level of assurance. However, services are subject to continuous refinements, and uncontrolled changes can easily invalidate existing certification results and require re-certification from scratch, with high costs and overheads on service providers. In this paper, we present an approach to manage the impact of service evolution on security certification. Our approach aims to support the incremental certification of evolving services and re-use, as much as possible, the certification evidence available from older certificates in the release of a new certificate.','Web Services (ICWS), 2012 IEEE 19th International Conference on',1,'M. Anisetti; C. A. Ardagna; E. Damiani','ieee/service oriented architecture security.csv','ieee','\0'),(117,'The SmarterContext Ontology and Its Application to the Smart Internet: A Smarter Commerce Case Study','2013','1',' dynamic context smart internet personal web context representation semantic web ontologies context reasoning smarter commerce','Abstract In the smart internet interactions must be situation-aware and smart. That is, they must be realized with awareness of, and adaptation to users’ individual and collective context situations. Therefore, context management is crucial to deliver contents and services that are relevant to the user’s matters of concern. This paper presents the S marter C ontext ontology, our semantic web approach to context representation and reasoning applicable to user-centric domains of the smart internet. We illustrate the application of the S marter C ontext ontology using a personal web case study based on IBM’s smarter commerce initiative. This case study demonstrates how our ontology supports context representation and reasoning to improve the relevance of retailer offers with respect to shopper situations. Our ontology is the core of the S marter C ontext infrastructure, our context management solution that exploits user web interactions as sources of meaningful personal context information, and empowers users to control context gathering and provisioning.','',1,'Norha M. VillegasHausi A. Müller','springer/webservice security.csv','springer','\0'),(118,'Automated Risk Mitigation in Business Processes','2012','1','','Abstract This paper proposes a concrete approach for the automatic mitigation of risks that are detected during process enactment. Given a process model exposed to risks, e.g. a financial process exposed to the risk of approval fraud, we enact this process and as soon as the likelihood of the associated risk(s) is no longer tolerable, we generate a set of possible mitigation actions to reduce the risks’ likelihood, ideally annulling the risks altogether. A mitigation action is a sequence of controlled changes applied to the running process instance, taking into account a snapshot of the process resources and data, and the current status of the system in which the process is executed. These actions are proposed as recommendations to help process administrators mitigate process-related risks as soon as they arise. The approach has been implemented in the YAWL environment and its performance evaluated. The results show that it is possible to mitigate process-related risks within a few minutes.','',2,'Raffaele ConfortiArthur H. M. ter HofstedeMarcello La RosaMichael Adams','springer/bpel security.csv','springer','\0'),(119,'Towards a framework for the development of adaptable service-based applications','2014','3',' Service-based application life-cycle Service-based application adaptation Maintenance process Software process','Abstract Service-oriented computing is a promising computing paradigm which facilitates the composition of loosely coupled and adaptable applications. Unfortunately, this new paradigm does not lend itself easily to traditional software engineering methods and principles due to the decentralised nature of software services. The goal of this paper is to identify a set of engineering activities that can be used to develop adaptable service-based applications. Rather than focusing on the entire service-based application development life-cycle, this paper will focus on adaptation-specific processes and activities and map them to an existing high-level service-based application development life-cycle. Existing software engineering literature as well as research results from service engineering research is reviewed for relevant activities. The result is an adaptation framework that can guide software engineers in developing adaptable service-based applications.','Service Oriented Computing and Applications',1,'Stephen LaneQing GuPatricia LagoIta Richardson','springer/soa security.csv','springer','\0'),(120,'Scalability Patterns for Platform-as-a-Service','2012','6','Cloud;Platform-as-a-Service;Scalability','Platform-as-a-Service is a cloud-based approach that provides enterprises with all the functionalities for developing, deploying, and administering services, without the burden of installing, configuring, and managing the underlying middleware, operating system, and hardware. In this context, scalability becomes a fundamental requirement, and appropriate solutions need to be studied and evaluated. In this paper, we present different scalability patterns for a Platform-as-a-Service infrastructure and a two-level approach to performance monitoring allowing automatic scalability management. We also provide a performance evaluation of the scalability patterns on a Service-Oriented Architecture (SOA) PaaS, which considers the impact on performance of SOA security standards.','Cloud Computing (CLOUD), 2012 IEEE 5th International Conference on',1,'C. A. Ardagna; E. Damiani; F. Frati; D. Rebeccani; M. Ughetti','ieee/service oriented architecture security.csv','ieee','\0'),(121,'Exploiting SAaaS in Smart City Scenarios','2013','0',' Cloud sensors and actuators Smart Cities mobile crowdsensing','Abstract Most of the current shortcomings in relation to Clouds made up of sensing resources can be addressed, as detailed in past work from the authors, following a Sensing and Actuation as a service (SAaaS) approach, i.e. enabling an Infrastructure-oriented (IaaS-like) provisioning model for sensors and actuators. The aforementioned approach matches the technological requirements and constraints springing around certain application domains belonging to the Future Internet research area. One of the most prominent scenarios is computer-assisted data treatment and automation of urban areas and public facilities, going under the umbrella term of a so-called Smart City. Aim of this paper is to provide specific processes, rules and guidelines for the adoption of the SAaaS paradigm in IT infrastructure powering Smart Cities. Such artifacts are for assessing the feasibility of deploying Smart City applications over SAaaS, moreover the design of some specific use cases is presented and discussed.','',1,'Salvatore DistefanoGiovanni MerlinoAntonio Puliafito','springer/service oriented architecture security.csv','springer','\0'),(122,'Comparative study of service-based security-aware business processes automation tools','2013','','Automation; Business processes; Service composition; Web services','The use of business processes to model and design business activities is becoming a reality to a significant number of companies. Meanwhile, the Service-Oriented Architecture (SOA) is being a widely adopted strategy for business processes execution, which often demands communication between different (and remote) services. This fact leads to the need of incorporating security elements into business processes, because sensitive data can be targeted in the communication process. Existing tools currently focus both on the functional automation by translating high-level business processes in executable artifacts and/or on the security automation by translating security requirements into executable security configurations. In this work, we present a comparative study that evaluates these tools using relevant metrics. A solution named BPA-Sec Analyzer was also developed to automatically generate relevant statistics information related to the produced artifacts. An illustrative scenario is introduced to support the comparison/evaluation. © 2013 IEEE.','',1,'Lins F., Damasceno J., Medeiros R., Sousa E., Rosa N.','scopus/service oriented architecture security.csv','scopus','\0'),(123,'Secure integrated framework for business processes','2015','','Business Process Security; Integrated Framework; Secure Framework','Business processes are most widely used industry oriented approaches for service composition. These are capable of solving complex issues in grid computing, cloud computing and heterogeneous networks. Business process can develop and deploy the workflow design with the help of BPEL language. These business processes are lacking into security aspects such as, encryption, decryption, authentication, load balancing activities. There is need of secure integrated framework for business processes, so that its network environment is secured for intended audience. In this paper, a secure integrated framework is proposed for business processes and its communication environment over the network because of their wide scope of application support. © 2015 IEEE.','',2,'Bhandari R., Suman U.','scopus/bpel security.csv','scopus',''),(124,'A Proactive Solution to Manage Web Service Unavailability in Service Oriented Software Systems','2016','0',' Web service availability Proactive solutions Reactive solution Software agents','Abstract A service oriented application consists of component web services which cooperate with each other to offer the desired functionality. Due to the distributed and unpredictable nature of the underlying environment, the component web services have uncertain dependability characteristics. This paper looks into the issue of web service availability. The paper proposes a proactive framework to manage the situation when third party web services become unavailable. Software agents are employed to monitor web services on the provider side. The framework is implemented in J2EE, using JADE environment for creating and deploying software agents. Experimental analysis shows that the proposed solution is effective and behaves considerably well when availability of component web services is varied from 0 % to 100 %.','',1,'Navinderjit Kaur KahlonSalil Vishnu KapurKuljit Kaur ChahalSukhleen Bindra Narang','springer/service oriented architecture security.csv','springer',''),(125,'Security certification-aware service discovery and selection','2012','','Security; Service discovery and selection; SOA; Test-based security certification; Web services','We present a security-enhanced solution to the discovery and selection of services. This solution integrates a test-based certification scheme proving the security properties of services. In particular, we describe two algorithms enabling clients to select the service that best addresses their security requirements. We also present a prototype implementation of our approach and an experimental evaluation of its performances. © 2012 IEEE.','',1,'Anisetti M., Ardagna C.A., Damiani E., Maggesi J.','scopus/soa security.csv','scopus','\0'),(126,'IoT Reference Model','2013','2','','Abstract The first major contribution of the IoT Architectural Reference Model (IoT ARM) is the IoT Reference Model itself. Besides models, the IoT Reference Model provides the concepts and definitions on which IoT architectures can be built. This Chapter introduces the IoT Reference Model as a precondition for working with the Reference Architecture that is introduced in Chap.​ 8 .','',2,'Martin BauerNicola BuiJourik De LoofCarsten MagerkurthAndreas NettsträterJulinda StefaJoachim W. Walewski','springer/bpmn security.csv','springer','\0'),(127,'Secure Cognitive Relay Network: Joint the Impact of Imperfect Spectrum Sensing and Outdated Feedback','2016','0',' Cognitive relay network Physical layer security Imperfect spectrum sensing Outdated feedback Secrecy outage probability','Abstract In this paper, we consider cognitive relay networks with N th best relay and beamforming schemes under the joint impact of imperfect spectrum sensing and outdated channel feedback. Specifically, we examine the secrecy performance by deriving the exact and asymptotic analytical expressions for the secrecy outage probability. Based on the analysis, we observe that these two types of channel impairments, i.e., imperfect spectrum sensing and outdated channel feedback, greatly affect the system performance. Particularly, the outdated channel feedback (i.e., the outdated coefficient \\(\\rho\\,<\\,1\\) ) reduces the secrecy outage diversity gain of the two schemes, i.e., N th best relay and beamforming, to one regardless of the number of relays. Our proposed analysis provides a helpful guideline for security system designers to cope with the unpleasant channel impairments.','Wireless Personal Communications',1,'Xinjie WangEnyu LiDac-Binh HaTiep Minh HoangHao Zhang','springer/soa security.csv','springer',''),(128,'Automated Theorem Proving in GeoGebra: Current Achievements','2015','1',' Secondary education Interactive learning environments Intelligent tutoring systems Automatic theorem proving','Abstract GeoGebra is an open-source educational mathematics software tool, with millions of users worldwide. It has a number of features (integration of computer algebra, dynamic geometry, spreadsheet, etc.), primarily focused on facilitating student experiments, and not on formal reasoning. Since including automated deduction tools in GeoGebra could bring a whole new range of teaching and learning scenarios, and since automated theorem proving and discovery in geometry has reached a rather mature stage, we embarked on a project of incorporating and testing a number of different automated provers for geometry in GeoGebra. In this paper, we present the current achievements and status of this project, and discuss various relevant challenges that this project raises in the educational, mathematical and software contexts. We will describe, first, the recent and forthcoming changes demanded by our project, regarding the implementation and the user interface of GeoGebra. Then we present our vision of the educational scenarios that could be supported by automated reasoning features, and how teachers and students could benefit from the present work. In fact, current performance of GeoGebra, extended with automated deduction tools, is already very promising—many complex theorems can be proved in less than 1 second. Thus, we believe that many new and exciting ways of using GeoGebra in the classroom are on their way.','Journal of Automated Reasoning',1,'Francisco BotanaMarkus HohenwarterPredrag JaničićZoltán KovácsIvan PetrovićTomás RecioSimon Weitzhofer','springer/webservice security.csv','springer',''),(129,'KIPO: the knowledge-intensive process ontology','2015','1',' Knowledge-intensive process Knowledge-intensive process ontology Process representation Foundational ontology','Abstract A business process is a sequence of activities that aims at creating products or services, granting value to the customer, and is generally represented by a business process model. Business process models play an important role in bridging the gap between the business domain and the information technology, increasing the weight of business modeling as first step of software development. However, the traditional way of representing a process is not suitable for the so-called Knowledge-Intensive Processes (KIP). This type of process comprises sequences of activities based on intensive acquisition, sharing, storage and (re)use of knowledge, so that the amount of value added to the organization depends on the actor knowledge. Current research in the literature points to the lack of approaches to make this kind of process explicit and strategies for handling information that is necessary for their understanding and support. The goal of this paper is to present KIPO—a knowledge-intensive process ontology, which encompasses a clear and semantically rich definition of KIPs, and to discuss the results of a case study to evaluate KIPO with regard to its applicability and capability of making all relevant knowledge embedded in a KIP explicit.','Software & Systems Modeling',2,'Juliana Baptista dos Santos FrançaJoanne Manhães NettoJuliana do E. S. CarvalhoFlávia Maria SantoroFernanda Araujo BaiãoMariano Pimentel','springer/bpmn security.csv','springer',''),(130,'Policy chain for securing service oriented architectures','2013','3','Security of Service Oriented Architecture; Security Policy Management and Enforcement','Service Providers using Service Oriented Architecture in order to deliver in-house services as well as on-demand and cloud services have to deal with two interdependent challenges: (1) to achieve, maintain and prove compliance with security requirements stemming from internal needs, 3rd party demands and international regulations and (2) to manage requirements, policies and security configuration in a cost-efficient manner. The deficiencies of current processes and tools force these service providers to trade off profitability against security and compliance. This paper summarizes a novel approach of a policy chain, which links high-level, abstract and declarative security policies on one side and low-level, imperative, and technical security configuration settings on the other side. The paper describes an architecture linking several applications and models via state-machines in order to provide a toolset supporting service providers to build such a holistic policy chain at design time, and to maintain and leverage it during system operation. © 2013 Springer-Verlag.','',1,'Arsac W., Laube A., Plate H.','scopus/service oriented architecture security.csv','scopus','\0'),(131,'FSToolkit: Adopting Software Engineering Practices for Enabling Definitions of Federated Resource Infrastructures','2012','0',' Federation experimentally driven research Resource Broker Domain Specific Modeling','Abstract Today organizations own resources and infrastructures (i.e. networking devices, gateways, wireless devices) that would like to either offer through the cloud model or to combine with resources of other infrastructures. Federation can be enabled by means of a resource broker that matches customer’s requested services and providers’ resources according to the agreed SLA. Users need ways to define complex deployments and request for resources without knowing the underlying infrastructure details. In this paper we present the Federation Scenario Toolkit (FSToolkit) that enables the definition of resource request scenarios, agnostic in term of providers. This work adopts Software Engineering practices considering the concepts of modeling and meta-modeling to define a resource broker and to specify scenarios by applying the Domain Specific Modeling (DSM) paradigm. FSToolkit is developed for experimentally driven research for validating through testing-scenarios new architectures and systems at scale and under realistic environments by enabling federation of resources.','',2,'Christos TranorisSpyros Denazis','springer/bpel security.csv','springer','\0'),(132,'An extension of business process model and notation for security risk management','2015','','','Business process modelling is one of the major aspects in the modern information system development. Recently business process model and notation (BPMN) has become a standard technique to support this activity. Typically the BPMN notations are used to understand enterprise\'s business processes. However, limited work exists regarding how security concerns are addressed during the management of the business processes. This is a problem, since both business processes and security should be understood in parallel to support a development of the secure information systems. In the previous work we have analysed BPMN with respect to the domain model of the IS security risk management (ISSRM) and showed how the language constructs could be aligned to the concepts of the ISSRM domain model. In this paper the authors propose the BPMN extensions for security risk management based on the BPMN alignment to the ISSRM concepts. We illustrate how the extended BPMN could express assets, risks and risk treatment on few running examples related to the Internet store regarding the asset confidentiality, integrity and availability. Our proposal would allow system analysts to understand how to develop security requirements to secure important assets defined through business processes. The paper opens the possibility for business and security model interoperability and the model transformation between several modelling approaches (if these both are aligned to the ISSRM domain model). © 2015 by IGI Global. All rights reserved.','',2,'Altuhhov O., Matulevičius R., Ahmed N.','scopus/bpmn security.csv','scopus',''),(133,'Preserving Confidentiality in Component Compositions','2013','1','','Abstract The preservation of any security property for the composition of components in software engineering is typically regarded a non-trivial issue. Amongst the different possible properties, confidentiality however poses the most challenging one. The naive approach of assuming that confidentiality of a composition is satisfied if it is provided by the individual components may lead to insecure systems as specific aspects of one component may have undesired effects on others. In this paper we investigate the composition of components that each on its own provide confidentiality of their data. We carve out that the complete behaviour between components needs to be considered, rather than focussing only on the single interaction points or the set of actions containing the confidential data. Our formal investigation reveals different possibilities for testing of correct compositions of components, for the coordinated distributed creation of composable components, and for the design of generally composable interfaces, ensuring the confidentiality of the composition.','',2,'Andreas FuchsSigrid Gürgens','springer/bpel security.csv','springer','\0'),(134,'Dynamic Evolution of Context-Aware Systems with Models at Runtime','2012','4','','Abstract Model-driven techniques have proven to yield significant benefits for context-aware systems. Specifically, semantically-rich models are used at runtime to monitor the system context and guide necessary changes. Under the closed-world assumption, adaptations are fully known at design time. Nevertheless, it is difficult to foresee all the possible situations that may arise in uncertain and complex contexts. In this paper, we present a model-based framework to support the dynamic evolution of context-aware systems to deal with unexpected context events in the open world. If model adaptations are not enough to solve uncertainty, our model-based evolution planner guides the evolution of the supporting models to preserve high-level requirements. A case study about a context-aware Web service composition, which is executed in a distributed computing infrastructure, illustrates the applicability of our framework. A realization methodology and a prototype system support our approach.','',1,'Germán H. AlférezVicente Pelechano','springer/service oriented architecture security.csv','springer','\0'),(135,'Ontology-Driven Dynamic Discovery and Distributed Coordination of a Robot Swarm','2012','1',' Service Discovery Semantics Context-awareness Distri- buted Planning Swarm Robotics','Abstract Swarm robotic systems rely heavily on dynamic interactions to provide interoperability between the different autonomous robots. In current systems, interactions between robots are programmed into the applications controlling them. Incorporating service discovery into these applications allows the robots to dynamically discover other devices. However, since most of these mechanisms use syntax-based matching, the robots cannot reason about the offered functionality. Moreover, as contextual information is often not included in the matching process, it is impossible for robots to select the most suitable device under the current context. This paper aims to tackle these issues by proposing a framework for semantic service discovery in a dynamically changing environment. A semantic layer was added to an existing discovery protocol, offering a semantic interface. Using this framework, services can be searched based on what they offer, with services best suiting the current context yielding the highest matching scores.','',1,'Niels BoutenAnna HristoskovaFemke OngenaeJelle NelisFilip De Turck','springer/service oriented architecture security.csv','springer','\0'),(136,'Everything as a Service (XaaS) on the Cloud: Origins, Current and Future Trends','2015','','Anything as a Service; Cloud computing; Everything as a Service; SOA','For several years now, scientists have been proposing numerous models for defining anything \'as a service (aaS)\', including discussions of products, processes, data & information management, and security as a service. In this paper, based on a thorough literature survey, we investigate the vast stream of the state of the art in Everything as a Service (XaaS). We then use this investigation to explore an integrated view of XaaS that will help propose approaches for migrating applications to the cloud and exposing them as services. © 2015 IEEE.','',1,'Duan Y., Fu G., Zhou N., Sun X., Narendra N.C., Hu B.','scopus/soa security.csv','scopus',''),(137,'An Ontology for Run-Time Verification of Security Certificates for SOA','2012','1','Ontologies for security certification;Run-time verification;Semantic Security Certificates;Service Certification;Service Oriented Architecture (SOA);Service Security','Software systems are often certified to guarantee they satisfy particular functional or non-functional requirements, including safety, security or privacy. In this paper, we propose an approach based on the use of ontologies to support the description of the content of security certificates for services. The work frames in the scope of the ASSERT4SOA project, which investigates the way to dynamically search for services satisfying certain security requirements. The ASSERT4SOA Ontology, the main result of this work, supports the interoperability and comparison of heterogeneous certificates and the run-time verification of the compliance of services with the security requirements asserted in their certificates.','Availability, Reliability and Security (ARES), 2012 Seventh International Conference on',1,'S. DAgostini; V. Di Giacomo; C. Pandolfo; D. Presenza','ieee/service oriented architecture security.csv','ieee','\0'),(138,'Developing a NovaGenesis architecture model for service oriented future Internet and IoT: An advanced transportation system scenario','2014','1','Future Internet;ID/LOC splitting;Internet of Things;Name-Oriented Design;NovaGenesis Architecture;Service-Oriented Design;Software-Defined Networking','We are designing a NovaGenesis Architecture Model to support Future Internet services, which are going to address some fundamental issues of the Internet of Things, such as address resolution, mobility, routing, scalability, security, and network control. The aim is to support trillion of things connect to the Internet. In NovaGenesis, we have presented a set of distributed systems where any information processing is seen as service. Services organize themselves based on names and agreements to meet semantics rich goals, policies, regulations, etc. Even networking functionalities are considered as services. Every existence could have one or more names: natural language names or self-certifying names. All the communication, processing, and storage are name-oriented. The protocol stacks are built on demand in a contract-based way. Hence, we can state that NovaGenesis architecture could be an alternative solution for current internet oriented innovations in a scalable manner. The aim of this architecture is the coverage of Internet and sensors oriented smart objects. The paper discusses the proposed model in the context of an Advanced Rural Transportation System.','Internet of Things (WF-IoT), 2014 IEEE World Forum on',1,'A. M. Alberti; D. Singh','ieee/service oriented architecture security.csv','ieee','\0'),(139,'Special issue on evolutionary computing and complex systems','2013','0','','','Soft Computing',1,'Alexandru-Adrian TantarEmilia TantarPascal BouvryOliver SchützeCarlos A. Coello CoelloPierre Del Moral','springer/service oriented architecture security.csv','springer','\0'),(140,'SOA - Based authentication system for dynamic handwritten signature','2013','','Authentication System; Biometry; Dynamic Signature; Information Security; Service Oriented Architecture','The increased frequency and damage caused by virtual attacks, reveals a need for stronger, easily deployable authentication solutions. This paper describes the architecture of a biometric authentication system based on dynamic handwritten signatures. Our design uses the principles of service-oriented architecture (SOA) and consists of non-intrusive, easy-to-integrate services and software components. Its features are enhanced security, reduced development time for the applications that use it, and modularity with respect to the underlying biometric system. Our experiments demonstrate that the system is a cost-efficient solution capable of handling thousands of authentication requests per minute. © 2013 Springer-Verlag.','',1,'Salinca A., Rusu S.M., Pricochi A.-M.','scopus/service oriented architecture security.csv','scopus','\0'),(141,'Design and Development of Secure Cloud Architecture for Sensor Services','2015','0',' secure cloud sensor service intelligent middleware SOA SASS formal specification xml','Abstract This paper is aimed at the design and development of secure cloud architecture for the Wireless Sensor Networks (WSN), in which the sensor data are represented as services and are accessed by the client applications in a secure manner with a simple authentication solution for sensors (SASS). Currently, sensor system needs an intelligent middleware to integrate with the cloud. Service Oriented Architecture (SOA), which makes use of the web services and XML technologies, will provide a solution to meet the current demands. Web services provide a mechanism for open and flexible interaction between heterogeneous systems with loosely coupled service endpoints. Further a technique based on formal specification is utilized which reduces the data volume of xml documents at a level that can be handled by the resource constrained environment of the wireless sensors. The proposed architecture will provide a scalable infrastructure for integrating heterogeneous sensor networks using a small set of powerful abstractions.','',1,'R. S. PonmagalN. DineshUma Rajaram','springer/service oriented architecture security.csv','springer',''),(142,'Is Node.js a viable option for building modern web applications? A performance evaluation study','2015','0',' Node.js End-to-end JavaScript WebSockets WebRTC Real-time Web Software performance evaluation Mathematics Subject Classification 68M20 Performance evaluation; queueing; scheduling 68M11 Internet topics 68M15 Reliability, testing and fault tolerance 68M14 Distributed systems 68N01 General','Abstract We examine the implications of end-to-end web application development, in the social web era. The paper describes a distributed architecture, suitable for modern web application development, as well as the interactivity components associated with it. Furthermore, we conducted a series of stress tests, on popular server side technologies. The PHP/Apache stack was found inefficient to address the increasing demand in network traffic. Nginx was found more than 2.5 times faster in input/output (I/O) operations than Apache, whereas Node.js outperformed both. Node.js, although excellent in I/O operations and resource utilization, was found lacking in serving static files using its built in HTTP server, while Nginx performed great at this task. So, in order to address efficiency, an Nginx server could be placed in-front and proxy static file requests, allowing the Node.js processes to only handle dynamic content. Such a configuration can offer a better infrastructure in terms of efficiency and scalability, replacing the aged PHP/Apache stack. Furthermore we have found that building cross platform applications based on web technologies, is both feasible and highly productive, especially when addressing stationary and mobile devices, as well as the fragmentation among them. Our study concludes that Node.js offers client-server development integration, aiding code reusability in web applications, and is the perfect tool for developing fast, scalable network applications.','Computing',1,'Ioannis K. ChaniotisKyriakos-Ioannis D. KyriakouNikolaos D. Tselikas','springer/service oriented architecture security.csv','springer',''),(143,'Scalability issues in cloud computing','2012','2','','The following topics are dealt with: ad hoc & sensor networks; agent based systems; autonomous computing; body area network; cloud computing; cluster computing; compiler optimizations; data mining; digital image computing; distributed databases; e-learning; e-commerce; e-governance; green IT; grid computing; image processing; intelligent agents; knowledge management; theoretical computer science; virtualization; machine learning; mobile computing; multicore architecture; multimedia streaming; natural language processing; network security; network management; neural networks; parallel computing; pattern recognition; pervasive computing; power aware computing; semantic Web; service oriented architecture; soft computing; software architecture; social computing; storage management; ubiquitous computing; and Web intelligence.','2012 Fourth International Conference on Advanced Computing (ICoAC)',1,'T. S. Somasundaram; V. Prabha; M. Arumugam','ieee/service oriented architecture security.csv','ieee','\0'),(144,'Ideas for Future Mission Networks (Invited Paper)','2013','0','Cognitive Radio (CR);Core;Dynamic Spectrum Management(DSA);Future Military Networks (FMN);Multilateral Interoperability Program (MIP);Multiple Independent Levels of Security (MLS);P2P;Service Oriented Architecture (SOA);Trusted Platform Module (TPM)','The content of Future Mission Networks (FMN) is in the process of being defined. In this article some ideas are presented which may improve its usefulness compared to the Afghanistan Mission Networks, like how more frequency bands can be used more efficiently by a distributed peer to peer (P2P) network. A P2P network is be believed to be more scalable and more robust to failures compared to a centralized system using a common database. Several hot military research topics are discussed.','MILCOM 2013 - 2013 IEEE Military Communications Conference',1,'T. Maseng','ieee/service oriented architecture security.csv','ieee','\0'),(145,'Service Value Broker Patterns: Integrating Business Modeling and Economic Analysis with Knowledge Management (Short Paper)','2013','0','Business Value;Design Patterns;Knowledge Management;Value Driven Design','Service engineering is an emerging interdisciplinary subject which crosscuts business modeling, knowledge management and economic analysis. To better satisfy service providers\' profiting goals, the service system modeling needs to take care of both the short and long run customer satisfaction. We believe that the ideology of value driven design fits well for this need. We propose to work towards value driven design by introducing a form of service design patterns, we call service value broker(SVB) patterns, with the aim to shorten the distance between economical analysis and IT implementation. SVB patterns allow us to not only study the value added in terms of functional and business aspects, but also reason about the need for brokerage across various domains. In this paper, we focus on modeling the basis of SVB. The analysis is provided with a formal development of SVB to be integrated across a variety of functional and business aspects of services. Placing particular emphasis on scenarios where these can be applied, an example of improvements provided by SVB is also included.','2013 IEEE 6th International Conference on Service-Oriented Computing and Applications',1,'Y. Duan; A. Kattepur; Q. Zagarese; W. Du','ieee/service oriented architecture security.csv','ieee','\0'),(146,'Rational computing protocol based on fuzzy theory','2016','0',' Game theory Private type Cloud computing Fuzzy set Cooperation','Abstract Secure multi-party computing (SMPC) is often used to solve security problems in cloud computing. Rational SMPC is a kind of SMPC in the presence of rational parties, who wish to maximize their utilities. Previous works about rational SMPC only studied the security properties under complete information scenario, where parties’ types are common knowledge. However, parties in practical applications have private types, which is unknown to others. This scenario is called incomplete information. In this paper, rational parties are allowed to have private types, which affect their utilities. Previously, rational parties obtain expected utilities due to unknown private types under incomplete information scenario. However, rational parties prefer to obtain pure utilities in actual life. To solve this contradiction, we use fuzzy theory to confirm the private type of his opponent; then they execute the protocol as if they know the private types just like the execution under complete information scenario. Consequently, they obtain pure utilities other than expected utility. In addition, our protocol can reduce round complexity than previous ones. Consequently, it will improve the security level and efficiency of cloud computing.','Soft Computing',1,'Yilei WangTao LiLufeng ChenPing LiHo-fung LeungZhe LiuQiuliang Xu','springer/service oriented architecture security.csv','springer',''),(147,'An aspect-oriented framework for specification and enforcement of non-functional concerns in WS-BPEL','2012','','AO4BPEL; Aspects; Non-functional concerns; Reliable messaging; Security; Transactions; Web service composition; WS-BPEL','Web Service processes in WS-BPEL have several non-functional requirements such as security and reliable messaging. Although there are many WS-* specifications that address these concerns, their integration with WSBPEL is still open. In this paper, we discuss these non-functional requirements and present a survey on the current support for their specification and enforcement in WS-BPEL engines. Moreover, we introduce an aspect-oriented container framework that uses a declarative deployment descriptor to specify the non-functional requirements. For the enforcement, aspects in AO4BPEL 2.0 are generated, which intercept the process execution and call dedicated middleware Web Services. Copyright © 2012 Inderscience Enterprises Ltd.','',2,'Charfi A., Schmeling B., Mezini M.','scopus/bpel security.csv','scopus','\0'),(148,'Harvesting and analysis of weak signals for detecting lone wolf terrorists','2013','7','','Abstract Abstract Lone wolf terrorists pose a large threat to modern society. The current ability to identify and stop these kinds of terrorists before they commit a terror act is limited since they are hard to detect using traditional methods. However, these individuals often make use of Internet to spread their beliefs and opinions, and to obtain information and knowledge to plan an attack. Therefore there is a good possibility that they leave digital traces in the form of weak signals that can be gathered, fused, and analyzed. In this article we present an analysis method that can be used to analyze extremist forums to detect digital traces of possible lone wolf terrorists. This method is conceptually demonstrated using the FOI Impactorium fusion platform. We also present a number of different technologies which can be used to harvest and analyze pieces of information from Internet that may serve as weak digital traces that can be fused using the suggested analysis method in order to discover possible lone wolf terrorists.','Security Informatics',1,'Joel BrynielssonAndreas HorndahlFredrik JohanssonLisa KaatiChristian MårtensonPontus Svenson','springer/webservice security.csv','springer','\0'),(149,'Schwierigkeiten mit IT-Projekten der Öffentlichen Verwaltung – Neuere Entwicklungen','2012','3','','Zusammenfassung 2009 hatten wir in dieser Zeitschrift anhand von sieben Vorhaben die Ergebnisse einer Studie über Schwierigkeiten mit IT-Projekten der Öffentlichen Verwaltung (ITÖ) in Deutschland publiziert. Diese Projekte entwickelten sich sehr unterschiedlich. Einige schlugen fehl und fanden bisher keinen Nachfolger. Andere sind immer noch im Gang, wobei die Schwierigkeiten nicht behoben werden konnten und zum Teil noch wachsen. Wieder andere mündeten in erfolgreiche, nachhaltige Systemlösungen. Im vorliegenden Aufsatz werden diese Pfade kurz nachgezeichnet. Die Stichprobe haben wir von sieben auf zehn erweitert, indem drei 2009 noch nicht behandelte Vorhaben aufgegriffen wurden. Aus unseren Beobachtungen leiten wir Vorschläge zur Verbesserung des Entscheidungsprozesses und der Kontrollmaßnahmen ab.','Informatik-Spektrum',1,'Peter Mertens','springer/soa security.csv','springer','\0'),(150,'A guidance process to modernize legacy applications for SOA','2015','1',' SOA Web services Legacy applications Modernization techniques Wrapping techniques Wrapping tools Session-based wrapping Transaction-based wrapping Data-based wrapping Guidance process','Abstract Enterprises willing to move to SOA with Web services to challenge changes in business requirements need to modernize their legacy applications mainly by using wrapping techniques. Indeed, (1) SOA is mainly about reuse of assets; in this regard, legacy applications are running smoothly and performing critical tasks, (2) most of the business functions are locked within them, (3) legacy applications were built at high cost, and we need to preserve these investments, and (4) migration to SOA can give new life to legacy applications. A solution consists in extending the critical business logic of the legacy applications while preserving the investments, through their migration to Web services and SOA environments. This leads IT departments to select an appropriate modernization technique, which requires a guidance process to avoid any failure risk. The process would include analysis, selection of business functions, and wrapping. This work first surveys several types of approaches and automated tools that deal with one of the most modernization technique for SOA that is wrapping legacy applications into Web services. Next, it categorizes the wrapping techniques into session-based, transaction-based, and data-based wrapping techniques with regard to the three distinct parts of an application: presentation, logic, and data. This clear categorization assists in deciding an adequate technique. Then, it describes a practical guidance process for wrapping. Finally, it illustrates the guidance process with a real student information system.','Service Oriented Computing and Applications',1,'Youcef BaghdadiWisal Al-Bulushi','springer/soa security.csv','springer',''),(151,'Low-Cost Web Service Discovery Based on Distributed Decision Tree in P2P Environments','2013','0',' P2P Web service Service discovery QoS Distributed decision tree Range query Load balance','Abstract Peer to Peer (P2P) techniques were widely applied into Web service discovery fields, but most existing schemes only focused on matching the functional attributes of Web services and ignored the non-functional attributes, i.e. quality of services (QoS). In this paper, we present a QoS-aware Web service discovery approach. The approach maps each Web service into virtual space to distribute all QoS attributes among P2P nodes, and then designs a distributed decision tree to support range service query with QoS requirements. Finally, a load balance algorithm is used to reduce range query cost. Experimental results based on synthetic and real datasets show our proposed approach can perform effective service discovery with low cost in P2P environments.','Wireless Personal Communications',1,'Shangguang WangXilu ZhuQibo SunHua ZouFangchun Yang','springer/service oriented architecture security.csv','springer','\0'),(152,'A Game-Theoretic Approach for Dynamic and Adaptive Managers Selection in Service Specific Overlay Networks','2015','0',' Management Self-adaptation Self-organization Regret matching','Abstract The introduction of Service Overlay Networks (SON) enabled service providers to offer new services with end-to-end quality of service guarantees. As a consequence, modern networks have become more service centric, which require the application of service specific management approaches. However, increased heterogeneity of network components and access technologies made management tasks more tedious and complex. In this article, we propose the use of game theory in the management tasks of overlay networks to reduce cost and complexity. We propose a fully distributed, self-organizing, and self-adapting algorithm for overlay nodes to efficiently select their managers. The proposed algorithm copes with the highly decentralized and dynamic nature of SON and adapts to changing network conditions. Extensive simulation results validate the effectiveness of the approach compared to existing solutions and the optimal solution.','Journal of Network and Systems Management',1,'Imad AbdeljaouadAhmed Karmouch','springer/soa security.csv','springer',''),(153,'Securing Data Provenance in the Cloud','2012','1',' Secure Data Provenance Encrypted Cloud Storage Security Privacy','Abstract Cloud storage offers the flexibility of accessing data from anywhere at any time while providing economical benefits and scalability. However, cloud stores lack the ability to manage data provenance. Data provenance describes how a particular piece of data has been produced. It is vital for a post-incident investigation, widely used in healthcare, scientific collaboration, forensic analysis and legal proceedings. Data provenance needs to be secured since it may reveal private information about the sensitive data while the cloud service provider does not guarantee confidentiality of the data stored in dispersed geographical locations. This paper proposes a scheme to secure data provenance in the cloud while offering the encrypted search.','',1,'Muhammad Rizwan AsgharMihaela IonGiovanni RusselloBruno Crispo','springer/service oriented architecture security.csv','springer','\0'),(154,'A Business Process Modeling Notation Extension for Risk Handling','2012','1',' Business Process Modeling Notation Risk Management BPMN Extension','Abstract During the years of prosperity, numerous organizations neglected numerous aspects of risk management. As systematic approach to handling identified risks is crucial to achieving success by the organization, modern business modeling standards and techniques are supposed to take risk-related features into account. The article is devoted to elaborating and exemplifying an extension aimed at risk handling for OMG’s Business Process Modeling Notation (BPMN), one of the most prospective standards for business process modeling. After an introduction, key risk management concepts are discussed. Section 3 discusses extensions introduced within BPMN meta-model, while section 4 exemplifies proposed concepts. The article is concluded with a summary.','',2,'Bartosz MarcinkowskiMichal Kuciapski','springer/bpmn security.csv','springer','\0'),(155,'Integrating Service Matchers into a Service Market Architecture','2014','1',' Service Matching Service Markets Software Architecture On-The-Fly Computing','Abstract Service markets provide software components in the form of services. In order to enable a service discovery that satisfies service requesters and providers best, markets need automatic service matching: approaches for comparing whether a provided service satisfies a service request. Current markets, e.g., app markets, are limited to basic keyword-based search although many better suitable matching approaches are described in literature. However, necessary architectural decisions for the integration of matchers have a huge impact on quality properties like performance or security. Architectural decisions wrt. service matchers have rarely been discussed, yet, and systematic approaches for their integration into service markets are missing. In this paper, we present a systematic integration approach including the definition of requirements and a discussion on architectural tactics. As a benefit, the decision-making process of integrating service matchers is supported and the overall market success can be improved.','',1,'Marie Christin PlateniusSteffen BeckerWilhelm Schäfer','springer/service oriented architecture security.csv','springer','\0'),(156,'Configuring Private Data Management as Access Restrictions: From Design to Enforcement','2012','2',' Access restriction SOA workflow private data','Abstract Service-Oriented Computing (SOC) is a major trend in designing and implementing distributed computer-based applications. Dynamic late biding makes SOC a very promising way to realize pervasive computing, which promotes the integration of computerized artifacts into the fabric of our daily lives. However, pervasive computing raises new challenges which SOC has not addressed yet. Pervasive application relies on highly dynamic and heterogeneous entities. They also necessitate an important data collection to compute the context of users and process sensitive data. Such data collection and processing raise well-known concerns about data disclosure and use. They are a brake to the development of widely accepted pervasive applications. SOC already permits to impose constraints on the bindings of services. We propose to add a new range of constraints to allow data privatization, i.e. the restriction of their disclosure. We extend the traditional design and binding phases of a Service-Oriented Architecture with the expression and the enforcement of privatization constraints. We express and enforce these constraints according to a two phases model-driven approach. Our work is validated on real-world services.','',2,'Aurélien FaravelonStéphanie CholletChristine VerdierAgnès Front','springer/bpel security.csv','springer','\0'),(157,'A smart assistant toward product-awareness shopping','2014','2',' Smart shopping assistant Sensor technique Smart phone Home shopping','Abstract This research employs sensor techniques (i.e., radio-frequency identification system) in developing a smart assistant for home furniture shopping. The implemented assistant provides friendly accessed interface that allows consumers to easily locate the product, confirm the detail information of it, and moreover, provide real-time recommendation(s) in accordance with interests of consumers. Unlike conventional online stores, the system offers the retailer extra spaces for varieties of merchandize, eliminated duplicated products display, etc. In addition, the assistant can avoid an unnecessary crashing of huge shopping carts in a crowded situation. This research discusses a new shopping pattern implemented by a smart assistant with the integration of consumer, retailer, and warehouse sides. In addition, an application is provided on smart phones in conjunction with the system to improve the competiveness in the market and increase the loyalty of their consumers. The experiment results demonstrate that collected data from end users (e.g., consumer, warehouse, and retailer itself) may provide essential information to revise business models.','Personal and Ubiquitous Computing',1,'Chia-Chen ChenTien-Chi HuangJames J. ParkHuang-Hua TsengNeil Y. Yen','springer/soa security.csv','springer','\0'),(158,'Smartphone intelligent applications: a brief review','2015','2',' Smartphone Sensor Mobile agent Internet','Abstract In this deployment-oriented objective review of smartphones (SFs), we briefly discuss their main features at device-level, system-level, and application-level, in an attempt to help with the process. In the background of this paper we point out four main enabling factors. We envisage advanced SF solutions would be able to help us with a better life style and our industries with a brighter productivity: (1) SF is a well-known and socially accepted hybrid device built on decades of maturity and of successful progress of mobile and wireless technologies, (2) SF stands upon the advancing pillar of our natural nomadic life style enhanced with superb connectivity, (3) ever growing personal and health needs are due to change in our social and healthcare systems and require SF’s safety and security features, and finally (4) the computing intelligence is there to be discovered and used for the most needed basic human requirements so that with it we expect to see a variety of integrated intelligence in the form of distributed and multi-agent style using software intensive, lightweight, and agile applications. We also enhance our message by exemplifying few but informative typical application cases for researchers and developers to help to harness this unique technological development opportunity.','Multimedia Systems',2,'Habib F. RashvandKuei-Fang Hsiao','springer/bpel security.csv','springer',''),(159,'A Decentralized Approach for Implementing Identity Management in Cloud Computing','2012','0','cloud computing;grouping algorithm;identity management (IdM);security;service oriented architecture (SOA)','Cloud computing is the next generation of computing paradigm. Along with cloud computing, many related problems come up. And these problems in turn slow the speed of the development of cloud computing down. Among these problems, e.g. interoperability and privacy, identity management and security are strong concerned. Many researchers and enterprises have already done a lot to optimize the identity management and strengthen the security in cloud computing. Most of these studies focus on the usability of identity management and various kinds of method to help improve security. But in this paper, we do some research from a new angle. While the federated solution of identity management helps relieve many problems, it\'s adopted by many platforms and enterprises. The general approach for deploying identity management is a centralized component processing authentication and authorization requests. But with the cloud growing in scale and the increasing number of users, this centralized solution will be the bottleneck of the cloud. In this paper, we propose a decentralized approach for implementing identity management in service oriented architecture in cloud computing and a grouping algorithm as the deploy strategy. Security is another problem involved in this paper. Since many researchers have done many detailed and fruitful studies in security, the security solution illustrated in this paper is specific in the proposed architecture.','Cloud and Green Computing (CGC), 2012 Second International Conference on',1,'J. Chen; X. Wu; S. Zhang; W. Zhang; Y. Niu','ieee/service oriented architecture security.csv','ieee','\0'),(160,'Impact of Policy Design on Workflow Resiliency Computation Time','2015','0',' Workflow satisfiability problem Probabilistic model checker User availability','Abstract Workflows are complex operational processes that include security constraints restricting which users can perform which tasks. An improper user-task assignment may prevent the completion of the workflow, and deciding such an assignment at runtime is known to be complex, especially when considering user unavailability (known as the resiliency problem). Therefore, design tools are required that allow fast evaluation of workflow resiliency. In this paper, we propose a methodology for workflow designers to assess the impact of the security policy on computing the resiliency of a workflow. Our approach relies on encoding a workflow into the probabilistic model-checker PRISM, allowing its resiliency to be evaluated by solving a Markov Decision Process. We observe and illustrate that adding or removing some constraints has a clear impact on the resiliency computation time, and we compute the set of security constraints that can be artificially added to a security policy in order to reduce the computation time while maintaining the resiliency.','',2,'John C. MaceCharles MorissetAad van Moorsel','springer/bpmn security.csv','springer',''),(161,'Adoption of Cloud Computing in Supply Chain Management Solutions: A SCOR-Aligned Assessment','2012','1',' supply chain management SCOR cloud computing','Abstract Efficient supply chains are a vital necessity for many companies. Supply chain management acts on operational processes, divergent and consolidated information flows and interaction processes with a variety of business partners. Efforts of recent years are usually facing this diversity by creating and organizing central information system solutions. Taking in account all the well-known problems of these central information systems, the question arises, whether cloud-based information systems represent a better alternative to establish an IT support for supply chain management. Aim of this paper is to investigate this question. This is done by considering fundamental aspects of cloud-based solutions under the perspectives of the SCOR model. We present the SCOR model shortly and provide a current market perspective on cloud computing and supply chain from the position of logistics and from the perspective of the software industry. Along the five key processes of the SCOR model we evaluate the potential of cloud-based information system architectures, and we discuss successful implemented examples from practice, but also challenges in future implementation. The paper concludes with recommendations for design and implementation to cloud-based information system support for supply chain management.','',2,'Holger Schrödl','springer/bpel security.csv','springer','\0'),(162,'A Generic Logging Template for Infrastructure as a Service Cloud','2013','1','IaaS;cloud monitoring;logging system','Infrastructure as a Service (IaaS) consists of a cloud-based infrastructure to offer consumers raw computation resources such as storage and networking. These resources are billed using a pay-per-use cost model. However, this type of infrastructure is far from being a security haven as the seven main threats defined by the Cloud Security Alliance (CSA) indicate. Using logging systems can provide evidence to support accountability for an IaaS cloud, which helps us mitigating known threats. In this paper, we research to which extent such logging systems help mitigate risks associated with the threats identified by the CSA. A generic architecture \'template\' for logging systems is proposed. This template encompasses all possible instantiations of logging solutions for IaaS cloud. We map existing logging systems to our generic template, and identify a logging solution to mitigate the risks associated with CSA threat number one (related to spam activities). We then argue that the template we suggest can be used to perform a systematic analysis of logging systems in terms of security before deploying them in production systems.','Advanced Information Networking and Applications Workshops (WAINA), 2013 27th International Conference on',1,'W. Wongthai; F. L. Rocha; A. van Moorsel','ieee/service oriented architecture security.csv','ieee','\0'),(163,'Service-oriented digital identity-related privacy interoperability: Implementation framework of Privacy-as-a-Set-of-Services (PaaSS)','2012','','Digital identity; implementation framework; interoperability; privacy; SOA','Protecting digital identity is crucial aspect in order to successfully enable collaboration between heterogeneous and distributed information systems. In this context, privacy could play a key role for digital identity protection and security. Thus, an identity layer in which interoperable privacy is delivered in the shape of a set of services, rather than monolithic applications, would be inevitably responding to the need of collaboration. In this article, we suggest a novel layered service-oriented implementation framework that information systems security projects\' members could borrow to successfully turn digital identity-related privacy requirements into a set of services. Several blocks are distributed amongst five layers and three mapping gateways determine the roadmap of the implementation effort governance. Seven loosely coupled, publicly hosted and available to on-demand calls services are specified to accommodate service-oriented architectures. OMG SoaML diagrams, BPMN process descriptions and SOA-artifacts specifications are provided and explained. © 2012 Springer-Verlag.','',2,'Ayed G.B., Ghernaouti-Hélie S.','scopus/bpmn security.csv','scopus','\0'),(164,'A unified formal model for service oriented architecture to enforce security contracts','2012','1','Aspects; Formal methods; Reference monitors; Security; Service-Oriented Architecture','In this paper we introduce a model as a foundation for heterogeneous services, therefore unifying web services technologies in SOA (Service Oriented Architecture), specifically, SOAP/WS * and RESTful models. This model abstracts away from service implementations, in order to verify and to enforce some important security properties.','',1,'Allam D.','scopus/service oriented architecture security.csv','scopus','\0'),(165,'Designing cloud-based electronic health record system with attribute-based encryption','2015','4',' Electronic health record Attribute-based encryption Cloud computing','Abstract With the development of cloud computing, electronic health record (EHR) system has appeared in the form of patient-centric, in which patients store their personal health records (PHRs) at a remote cloud server and selectively share them with physicians for convenient medical care. Although the newly emerged form has many advantages over traditional client-server model, it inevitably introduces patients’ concerns on the privacy of their PHRs due to the fact that cloud servers are very likely to be in a different trusted domain from that of the patients. In this paper, aiming at allowing for efficient storing and sharing PHRs and also eliminating patients’ worries about PHR privacy, we design a secure cloud-based EHR system, which guarantees security and privacy of medical data stored in the cloud, relying on cryptographic primitive but not the full trust over cloud servers. Based on our proposed basic EHR system, we provide several extensions including adding searchability, supporting revocation functionality and enabling efficient local decryption, which fills the gap between theoretical proposal and practical application.','Multimedia Tools and Applications',1,'Fatos XhafaJingwei LiGansen ZhaoJin LiXiaofeng ChenDuncan S. Wong','springer/service oriented architecture security.csv','springer',''),(166,'A service-oriented gateway for remote monitoring of building sensor networks','2013','2','','This paper proposes a service-oriented gateway architecture for remote monitoring and control of wireless sensor and actuator networks (WSAN). It is specifically designed to enable multi-user, remote monitoring and automation of even complex buildings. The gateway can be effectively exploited to manage energy, comfort, structural health, safety and security of buildings as well as social interactions among building inhabitants. The proposed architecture stands out by leveraging modern web-based approaches like RESTful access and WebSocket sessions. The paper describes the capabilities of the management framework, introduces the remote commands available and also shows a reference implementation of a remote graphical user interface (GUI). © 2013 IEEE.','',1,'Guerrieri A., Geretti L., Fortino G., Abramo A.','scopus/service oriented architecture security.csv','scopus','\0'),(167,'A Model Driven security Engineering approach to support collaborative tools deployment over clouds','2013','','Business process; Cloud computing; MDE; Security model','The development of web 2.0 increases the call for agile and simple business process support. SOA (Service oriented Architecture) provides companies a new model to build their IT applications around their business processes and to combine them dynamically with the services of partner companies. Moreover cloud computing offers new business models and deployment opportunities to support adaptive and scalable execution environment. However, to provide services collaboration from several companies, the security policy associate to each company must be respected. So, the Business Process (BP) provides by these companies services inter-connections should be adapted to the security policy of each company and to the platform where it will be deployed. This leads to propose a new platform based on MDE (Model-Driven Engineering) approach to allow companies to build and deploy safely their BP in the Cloud environments. © Springer-Verlag London 2013.','',1,'Ouedraogo W.F., Biennier F., Ghodous P.','scopus/service oriented architecture security.csv','scopus','\0'),(168,'COAST: An architectural style for decentralized on-demand tailored services','2012','4','client-driven adaptation; decentralized systems; service-oriented architectures; software architecture','Decentralized systems are systems-of-systems whose services are governed by two or more separate organizations under distinct spheres of authority. Coordinated evolution of the various elements of a decentralized system may be difficult, if not impossible, as individual organizations evolve their service offerings in response to organization- and service-specific pressures, including market demand, technology, competitive and cooperative interests, and funding. Consequently, decentralized services offer unique challenges for evolution and adaptation that reach well beyond any\\ one single organizational boundary. However, client-driven service customization and tailoring is a powerful tool for meeting conflicting, independent client demands in an environment where disorderly and uneven service evolution predominates. To this end, we contribute an architectural style, COmputAtional State Transfer (COAST), designed to provide extensive, safe, and secure client-directed customization of decentralized services. COAST combines mechanisms from software architecture, cryptography, security, and programming languages, granting application architects flexible provisioning of their core services and assets while protecting those services and assets from attack and misuse. © 2012 IEEE.','',1,'Gorlick M.M., Strasser K., Taylor R.N.','scopus/service oriented architecture security.csv','scopus','\0'),(169,'IT Security Architecture Approaches for Smart Metering and Smart Grid','2013','1','','Abstract The power grid is currently undergoing changes towards highly volatile and localized energy production and storage, supported by IT and communication components. Smart Metering is going to provide fine-grained measurement and automatic remote reading of consumption and production amounts. It enables flexible tariffing and dynamic load optimization, ultimately aiming at cost and consumption reduction. The related security requirements are mainly authenticity, integrity, and privacy of metering data. Even more challenging is grid automation, which is critical for the safety and availability of the grid. The overall situation calls for an integrated security architecture that not only addresses all relevant security threats but also satisfies functional, safety, performance, process integration, and economic side conditions. In this article, we summarize and evaluate the IT security architecture and security requirements prescribed by the German BSI in their Smart Meter Gateway Protection Profile and related documents. For instance, there are problems regarding the integration of the required security module and multicast communication. We contrast their requirements with alternatives offering better protection against sophisticated local attacks and with a much simpler approach to communication security, which focuses on the core security needs of smart metering and is suitable for grid automation in distribution networks as well. We provide a formal model and analysis of the latter solution w.r.t. communication security.','',1,'David von Oheimb','springer/service oriented architecture security.csv','springer','\0'),(170,'Efficient Privacy Preserving Content Based Publish Subscribe Systems','2012','4','confidentiality, privacy, publish subscribe','The ability to seamlessly scale on demand has made Content-Based Publish-Subscribe (CBPS) systems the choice of distributing messages/documents produced by Content Publishers to many Subscribers through Content Brokers. Most of the current systems assume that Content Brokers are trusted for the confidentiality of the data published by Content Publishers and the privacy of the subscriptions, which specify their interests, made by Subscribers. However, with the increased use of technologies, such as service oriented architectures and cloud computing, essentially outsourcing the broker functionality to third-party providers, one can no longer assume the trust relationship to hold. The problem of providing privacy/confidentiality in CBPS systems is challenging, since the solution to the problem should allow Content Brokers to make routing decisions based on the content without revealing the content to them. The previous work attempted to solve this problem was not fully successful. The problem may appear unsolvable since it involves conflicting goals, but in this paper, we propose a novel approach to preserve the privacy of the subscriptions made by Subscribers and confidentiality of the data published by Content Publishers using cryptographic techniques when third-party Content Brokers are utilized to make routing decisions based on the content. Our protocols are expressive to support any type of subscriptions and designed to work efficiently. We distribute the work such that the load on Content Brokers, where the bottleneck is in a CBPS system, is minimized. We extend a popular CBPS system using our protocols to implement a privacy preserving CBPS system.','',1,'Mohamed Nabeel and Ning Shang and Elisa Bertino','acm/service oriented architecture security.csv','acm','\0'),(171,'2013 International Conference of Information Technology and Industrial Engineering, ITIE 2013','2014','','','The proceedings contain 176 papers. The special focus in this conference is on Information Technology and Industrial Engineering and its related topics. The topics include: construct turbine blade FEM model by UG; application research of SOA in the area of business intelligence system; management and control of sport training system structure; the research of CPFR model classification and factors influencing CPFR model selection; empirical research on e-commerce\'s driving force to growth of logistics industry; improved TOPSIS model based on interval numbers; echo cancellation technique based on adaptive filter for digital repeater; pricing strategies in a dual channel supply chain under asymmetric information; the waltz lifting technology analysis based on human motion; design and implementation of RF matching and filter circuit based on ADS; dynamic measurement on technological innovation efficiency of high technology industry in China; an IHE XDS-based approach for electrocardiograms sharing; two scheduling problems of two agents\' jobs with unit processing time and different release dates; multi-agent based vehicle simulation model for CBTC system testbed; information security strategies for China enterprises in overseas; empirical study on effect of coal mine policies on safety in China; crowd formation detection using Bayesian network classifier; a research on the management of enterprise environmental costs; a planar model based intra prediction method for depth map coding; an outlook for the quantum-based retrieval model; research on fund control during using surplus housing accumulation fund for indemnificatory housing program; the effects of font, structure, and stroke-number on Chinese characters recognition efficiency; computer technology application in the sports field in the context of information; the application of service science in sports field; solving unconstrained binary quadratic programming using binary particle swarm optimization; synchronization research of data based on SyncML and Huffman Coding; Study on the effects of social capital on knowledge transfer in cooperative network; research on evaluation of freight forwarding logistics information system; identify equivalent signal lines for logic verification of combinational circuits; a brief analysis of electromagnetic interference in the underground coal mine safety monitoring system; a new revenue management optimization model for wind power; the study on the ways of the enhancement of corporate soft power based on innovation ability; modeling and optimization of marketing based on artificial neural network; an adaptive control strategy for QoS in wireless multimedia network; the research of Web marketing system based on data warehouse; Research on computer aided design of sports actions; data analysis for sports training based on information technology; research on computer application management system of the University sports; the research on applications of Internet in tourism industry; an adaptive precoding scheme in MIMO systems; application of modern garden project appraisal and supervision platform; research of the emerging E-commerce ecosystem and its symbiotic model; THP technology research based on implicit feedback; research on the path of logistics cost control under the background of globalization; the fit between control mechanism and project characteristic; the research of complex product data warehouse architecture and key management technology based on cloud computing; based on the nonlinear theory of mechanical processing technology system chaos mechanism research; Intelligent human face recognition utilized computer image processing method; security vulnerabilities in computer software testing technology and its application; computer technology application in enterprise information management; showroom design research based on 3D virtual technique; research on software engineering system work steps based on system engineering; research of agent-based business intelligence system; research of basketball tactical training based on multimedia system; network-assisted system of sportunterricht; the design and implementation of dynamic password identity authentication system; algorithm research on automated assessment technology in subjective items; research of speed routing software based on Linux; security management research based on financial database; multimedia application research based on basketball teaching; the apply of image analysis base on scale space; research of financial management system; design of wireless data acquisition system based on ARM; fuzzy DEA model based on independent subsystems and its application; the research of small and micro enterprises\' financial problems in China; the evaluation of innovation talent base on AHP-fuzzy in universities; research on the role of government in the construction of Guangdong industrial transfer parks; evaluation of economic coordination of port informatization; research on incentives of carbon fund investment based on tripartite principal agents; research on selection method of leading enterprise based on fuzzy preference relations; research on labor cost advantage of Chinese manufacturing; the empirical research of search engine optimization in hotel service; the strategy of developing low-carbon buildings in Tianjin; political risks of international electricity trade in GMS; research on intensive use of cultivated land and its driving forces in Gansu; secondary data analysis system development and design for basketball coaches; based on mechanical analysis of sports ball trajectory model; the technique of control and predictive regression analysis; clever urban development and circular economy; an efficient pseudorandom test pattern generator; using BTDB structure to hide branch misprediction cycles; lakeside plaza super-tall structures antiseismic concept design; research on data preparation technique in web usage mining; application of web network management based on mobile agent and on membership function in fuzzy risk assessment of groundwater contamination.','',1,'[No author name available]','scopus/soa security.csv','scopus','\0'),(172,'Cloud-based Smart CDSS for chronic diseases','2013','12',' Activity recognition Social media Cloud computing Healthcare CDSS HL7','Abstract The rise in living standards that has occurred with the advancement of new technologies has increased the demand for sophisticated standards-based health-care applications that provide services anytime, anywhere, and with low cost. To achieve this objective, we have designed and developed the Smart Clinical Decision Support System (Smart CDSS) that takes input from diverse modalities, such as sensors, user profile information, social media, clinical knowledge bases, and medical experts to generate standards-based personalized recommendations. Smartphone-based, accelerometer-based, environment-based activity-recognition algorithms are developed with this system that recognizes users’ daily life activities. For example, social media data are captured for a diabetic patient from his/her social interactions on Twitter, e-mail, and Trajectory and then combined with clinical observations from real encounters in health-care facilities. The input is converted into standard interface following HL7 vMR standards and submitted to the Smart CDSS for it to generate recommendations. We tested the system for 100 patients from Saint Mary’s Hospital: 20 with type-1 diabetes, 40 with type-2 diabetes mellitus, and 40 with suspicions for diabetes but no diagnosis during clinical observations. The system knowledge base was initialized with standard guidelines from online resources for diabetes, represented in HL7 Arden syntax. The system generates recommendations based on physicians’ guidelines provided at the hospital during patient follow-ups. With support from the Azure cloud infrastructure, the system executed the set of guidelines represented in Arden syntax in a reasonable amount of time. Scheduling and executing the 3–5 guidelines called medical logic modules (MLMs) required less than a second.','Health and Technology',1,'M. HussainA. M. KhattakW. A. KhanI. FatimaM. B. AminZ. PervezR. BatoolM. A. SaleemM. AfzalM. FaheemM. H. SaddiqiS. Y. LeeK. Latif','springer/soa security.csv','springer',''),(173,'Safena and QBPM: A Proposition for Modeling and Enacting Processes in Supply Chain Network','2011','0','BPMN, UML, business process modeling','Proceedings of the 2011 ACM Symposium on Research in Applied Computation','',2,'Katarzyna Antosz and Sławomir Świrad and Dorota Nieć and Piotr Osiński and Katarzyna Zapart','acm/bpel security.csv','acm','\0'),(174,'Agent-based development for business processes','2012','','','Due to the ever-changing business environment, the supporting IT-systems that execute business processes within organisations must be increasingly flexible and adaptable if those organisations are to remain competitive in today\'s environment. On the other hand, despite offering promising solutions to autonomy, flexibility and adaptability, intelligent agent technology still faces many challenges in being adopted by the industry. Due to their distinct properties, agent-based systems provide a powerful platform for business process execution. Our work focuses in this area with the aim to bridge the gap between business process modelling and agent-oriented development, and consequently contributes to bring benefits to both communities. More specifically, we propose a method for a seamless transition from business process models in Business Process Modelling Notation (BPMN) to agent-oriented models in the Prometheus methodology. © Springer-Verlag Berlin Heidelberg 2012.','',2,'Dam H.K., Ghose A.','scopus/bpmn security.csv','scopus','\0'),(175,'Managing Heterogeneous Access Control Models Cross-Organization','2015','0',' Access control Collaborative system Heterogeneous security policy Web service Heterogeneous access control ABAC XACML WSO2','Abstract Business process collaboration has gained a lot of attention due to the great need for integrating business process of different organizations. The most suitable issue to secure this collaboration is using access control model. However access control model diversity makes it more complex to collaborate cross-organization, especially when each organization refuses to change its security policies, prefers to preserve its access control model and needs to protect its information assets. To meet this problem we propose a flexible architecture based on Attribute Based Access Control (ABAC) model to ensure heterogeneity of access control cross-organization and on specified collaboration contract between these organizations. To validate our approach we have used web services technology, and we have implemented a prototype based on open source platforms WSO2.','',1,'Samira HaguoucheZahi Jarir','springer/service oriented architecture security.csv','springer',''),(176,'The Importance of Teaching Systematic Analysis for Conceptual Models: An Experience Report','2015','0',' Conceptual modeling Models Analysis Education','Abstract In this paper, we report on our experience in teaching conceptual modeling at a master-level course at the University of Trento. We use our experiences to argue that systematic model analysis is an important factor that influences learning and understanding of conceptual modeling techniques. In particular, we have observed this effect with the i * goal-oriented language. In previous years students were required to perform only modeling as part of their projects, while in the last year they were also required to apply systematic analysis. We observe that i * analysis not only allows students to evaluate the satisfaction of goals in their model, but also to better understand their models, helping to refine models until they are more meaningful and more likely to fulfill their intended purpose.','',2,'Elda PajaJennifer HorkoffJohn Mylopoulos','springer/bpmn security.csv','springer',''),(177,'Ibidas: Querying Flexible Data Structures to Explore Heterogeneous Bioinformatics Data','2013','1','','Abstract Nowadays, bioinformatics requires the handling of large and diverse datasets. Analyzing this data demands often significant custom scripting, as reuse of code is limited due to differences in input/output formats between both data sources and algorithms. This recurring need to write data-handling code significantly hinders fast data exploration. We argue that this problem cannot be solved by just data integration and standardization alone. We propose that the integration-analysis chain misses a link: a query solution which can operate on diversely structured data throughout the whole bioinformatics workflow, rather than just on data available in the data sources. We describe how a simple concept (shared ’dimensions’) allows such a query language to be constructed, enabling it to handle flat, nested and multi-dimensional data. Due to this, one can operate in a unified way on the outputs of algorithms and the contents of files and databases, directly structuring the data in a format suitable for further analysis. These ideas have been implemented in a prototype system called Ibidas. To retain flexibility, it is directly integrated into a scripting language. We show how this framework enables the reuse of common data operations in different problem settings, and for different data interfaces, thereby speeding up data exploration.','',1,'Marc HulsmanJan J. BotArjen P. de VriesMarcel J. T. Reinders','springer/webservice security.csv','springer','\0'),(178,'Jasmin: An alternative for secure modularity inside the Digital Home','2012','','Application management; Embedded systems; Home network; Isolation; Modularity; Native components; Security; SOA','The Digital Home (DH) is emerging as a distributed platform hosting services for the end user. This promising home environment depends on availability of numerous value-added services for the DH. Therefore DH implies to fullfil several requirements. (i) New services should easily invoke existing ones so as to build rich services. (ii) The Platform should be adapted to resource-constrained DH devices. (iii) Service providers should easily develop and deploy services onto the DH platform that must be shared between many providers without any security and reliability flaws. We propose Jasmin: a DH middleware following the SOA paradigm [9] to host applications based on the MIND framework that implements the Fractal [3] component model. Applications run inside isolation containers with selectable isolation levels on top of an OS abstraction layer. Our evaluation shows that Jasmin is suitable for legacy code reuse, urges clean design, and automates dynamic application deployment. Jasmin selected virtualization container technology to implement the highest level of isolation containers. Jasmin not only has a low resource usage, but also incurs a very low overhead on hosted applications, making it appropriate for embedded environments. Copyright © 2012 ACM.','',1,'Anne M., Attouchi K., Henry-De-Villeneuve D., Pulou J.','scopus/soa security.csv','scopus','\0'),(179,'The RBAC model and implementation architecture in multi-domain environment','2013','','Composite services; Domains; Implementation architecture; RBAC; Service oriented','Nowadays in the IT convergence environment, the Service Oriented Architecture has its unique significance. The RBAC model has a variety of advantages in protecting the security of services. When the network is extended to a certain scale, it must be divided into multi domains for convenient management. However, the study to the RBAC model can be applied in multi-domain environment is still lacked. Corresponding feasible implementation architectures for the individual and composite services are also in weak. In this paper, we proposed a domain model and a domain based RBAC model can better adapt to the multi-domain security requirements. Then based on the model we designed feasible and efficient access control architectures respectively focusing on the individual services and different type of composite services. The evaluation cases showed the proposed model and implementation architectures achieved desired effects and the performances are in promising. © 2013 Springer Science+Business Media New York.','',1,'Yang Z., Wang J.-X., Yang L., Yang R.-G., Kou B.-S., Chen J.-K., Yang S.-M.','scopus/service oriented architecture security.csv','scopus','\0'),(180,'Vino4TOSCA: A Visual Notation for Application Topologies Based on TOSCA','2012','2',' TOSCA Modeling Visual Notation Application Topologies','Abstract A major difficulty in enterprise computing is the modeling of complex application topologies consisting of numerous individual components and their relationships. Especially in the context of cloud computing, the Topology and Orchestration Specification for Cloud Applications (TOSCA) has been proposed recently for standardization to tackle this issue. However, TOSCA currently lacks a well-defined visual notation enabling effective and efficient communication in order to transport the semantics of the encoded information to human beings. In this paper, we propose a visual notation for TOSCA based on established usability research which provides additional concepts for visual modularization and abstraction of large application topologies.','',2,'Uwe BreitenbücherTobias BinzOliver KoppFrank LeymannDavid Schumm','springer/bpel security.csv','springer','\0'),(181,'Security Considerations in Cloud Computing Virtualization Environment','2013','1',' Cloud Computing Services Cloud Computing Architecture Virtualization Security Layer Security Requirement','Abstract Almost cloud service providers are having their own architectures for providing a variety of cloud services to their customers, cloud service clients. These various architectures and services increase the complexity of security management policies, frameworks, and systems, because they would require different aspects of security solutions for their own architectures and services. Consequently, such compatibility issues make us difficult to design a common security framework, security management system, or security evaluation system. Recognizing the need to solve such issues, we analyze common security elements to be required for cloud computing virtualization, and identify requirements for information protection in this paper. We also identify possible threats that may occur depending on different functions and roles over the cloud virtualization environments, and define security elements and requirements to deal with those issues. We show a set of common directions or approaches to prevent any possible treats to cloud computing, and provide more efficient and systematic method of managing and operating cloud computing system.','',1,'Sang-Soo YeoJong Hyuk Park','springer/service oriented architecture security.csv','springer','\0'),(182,'Extending OpenStack Access Control with Domain Trust','2014','6',' Distributed Access Control Identity Management Security in Cloud and Grid Systems Trust Management','Abstract OpenStack has been rapidly established as the most popular open-source platform for cloud Infrastrusture-as-a-Service in this fast moving industry. In response to increasing access control requirements from its users, the OpenStack identity service Keystone has introduced several entities, such as domains and projects in addition to roles, resulting in a rather complex and somewhat obscure authorization model. In this paper, we present a formalized description of the core OpenStack access control (OSAC). We further propose a domain trust extension for OSAC to facilitate secure cross-domain authorization. We have implemented a proof-of-concept prototype of this trust extension based on Keystone. The authorization delay introduced by the domain trusts is 0.7 percent on average in our experiments.','',1,'Bo TangRavi Sandhu','springer/service oriented architecture security.csv','springer','\0'),(183,'Networked enterprise business model alignment: A case study on smart living','2015','3',' Business model Alignment Implementation Smart living Health and care platforms Case study','Abstract One of the first steps in innovation projects and entrepreneurial initiative involves formulating a Business Model (BM) that describes the value creation, delivery and capturing logic of a business idea. However, when formulating a BM for networked enterprises, the alignment of the collective BM, supporting the joint service or product on offer, and the underlying operational processes of the networked businesses, need to be taken into account. This paper analyses the concept of Business Model Alignment (BMA) based on qualitative case studies of two Smart Living projects in Finland and China. To begin with, a Business Model framework (STOF) is applied to describe the high-level BM. Next, the Value, Information and Process (VIP) framework is applied to analyse BMA. The case studies show that an analytical framework, such as the VIP model, helps reveal the hurdles that may undermine BMA and, as a result, obstruct BM implementation. This paper contributes to existing BM literature by identifying the steps that are necessary to move from an abstract, often strategy-driven BM, of collaborating enterprises towards an aligned BM that can be implemented. This paper also contributes to theory formation by identifying the issues that play a role in achieving BMA.','Information Systems Frontiers',2,'Sam SolaimaniHarry BouwmanTimo Itälä','springer/bpmn security.csv','springer',''),(184,'WSACd - A usable access control framework for smart home devices','2015','','DPWS; Policy-based access control; Service architectures; Smart home; Ubiquitous computing; XACML','Computing devices already permeate working and living environments; a trend which is expected to intensify in the coming years. However, the direct interaction smart devices often have with the physical world, along with the processing, storage and communication of private sensitive data pertaining to users’ lives, bring security concerns into the limelight. This paper presents Web Service Access Control for devices (WSACd), a framework that combines access control provided by the eXtensible Access Control Markup Language (XACML) with the benefits of Service Oriented Architectures through the use of the Devices Profile for Web Services (DPWS). Based on standardized technologies, it enables fine-grained policy-based management of the heterogeneous embedded devices that may be found in a smart residential setting. The proposed framework is implemented in full and its performance is evaluated on a test-bed featuring devices expected to be found in a typical residential environment. © IFIP International Federation for Information Processing 2015.','',1,'Fysarakis K., Konstantourakis C., Rantos K., Manifavas C., Papaefstathiou I.','scopus/service oriented architecture security.csv','scopus','\0'),(185,'Secure and seamless session management in mobile and heterogeneous environment','2012','','Device as a service; Mobility and heterogeneity; Secure and unique session; Security as a service; Security continuity; SIP+; Token; Virtual private device network','The Next Generation Network and Services (NGN/NGS) environment becomes more and more heterogeneous and mobile. Furthermore, today user seeks to access his services within a secured session ensuring the continuity and the quality of service. This rapid evolution and requirements raise the issue of guarantying the continuity of user-centric session in an advanced mobility context. This work targets particularly access control and security aspects based on Service Oriented Architecture in mobile and heterogeneous environments. To address the aforementioned challenges, we propose a secure and seamless session management solution that is based on several concepts and mechanisms. First, this solution ensures security management that overcomes session security and uniqueness challenges by gathering ubiquitous, mutualisable, autonomous and stateless service components. Second, we present a multiple and heterogeneous terminal composition by proposing a Virtual Private Device Network (VPDN) concept that is based on secure and auto-managed components. Finally, in addition to these proposed architecture components and concepts, we introduce SIP+ in order to ensure the security continuity within a seamless session during user mobility.','',1,'Hammami A., Simoni N.','scopus/service oriented architecture security.csv','scopus','\0'),(186,'Using Model Driven Security Approaches in Web Application Development','2014','0','','Abstract With the rise of Model Driven Engineering (MDE) as a software development methodology, which increases productivity and, supported by powerful code generation tools, allows a less error-prone implementation process, the idea of modeling security aspects during the design phase of the software development process was first suggested by the research community almost a decade ago. While various approaches for Model Driven Security (MDS) have been proposed during the years, it is still unclear, how these concepts compare to each other and whether they can improve the security of software projects. In this paper, we provide an evaluation of current MDS approaches based on a simple web application scenario and discuss the strengths and limitations of the various techniques, as well as the practicability of MDS for web application security in general.','',1,'Christoph HochreinerZhendong MaPeter KiesebergSebastian SchrittwieserEdgar Weippl','springer/webservice security.csv','springer','\0'),(187,'The BPEL orchestrating framework for secured grid services','2005','8','','Workflow has been considered as a crucial component in several Grid projects. Among many workflow standards, BPEL, Business Process Execution Language, is emerging as a de-facto workflow standard in Grid and Web services communities. In this paper, we present the adoption of standard BPEL to orchestrate Grid services based on OGSI specification. Our approach is based on proxy services, which enable user to interact with OGSI Grid services supporting GSI security mechanisms, OGSI factory mechanism, and notification mechanism. Our proposed architecture is platform-neutral as it does not depend on any specific security architecture. With our implementation, the proxy services witl be generated automatically for each target Grid service. Thus, they are not limited to pre-defined Grid services. In addition, our proxy services also remove design-time binding limitations of BPEL and allow user to define the binding information of proxy services in run-time. As our approach utilizes original BPEL specification without special modification, we believe that developing Grid applications on our architecture will benefit from standard BPEL-compliant tools and generic Web services tools. We illustrate the example of using our proposed framework by orchestrating drug discovery processes using BPEL and Grid services.','International Conference on Information Technology: Coding and Computing (ITCC\'05) - Volume II',2,'P. Amnuaykanjanasin; N. Nupairoj','ieee/bpel security.csv','ieee','\0'),(188,'A framework to monitor cloud infrastructure in service oriented approach','2013','','Cloud; Intrusion detection; Monitoring; Services','Cloud computing processes and stores the organization\'s sensitive data in the third party infrastructure. Monitoring these activities within the cloud environment is a major task for the security analysts and the cloud consumer. The cloud service providers may voluntarily suppress the security threats detected in their Infrastructure from the consumers. The goal is to decouple Intrusion Detection System (IDS) related logic from individual application business logic and adhere to the Service Oriented Architecture Standards. This paper provides a framework for Intrusion Detection and reporting service to the cloud consumers based on the type of applications and their necessary security needs. Cloud consumers can choose the desired signatures from this framework to protect their applications. The proposed technique is deployed in existing open source cloud environment with minimum changes. A proof-of-concept prototype has been implemented based on Eucalyptus open source packages to show the feasibility of this approach. Our results show that this framework provides effective way to monitor the cloud infrastructure in service oriented approach. © 2013 IEEE.','',1,'Veigas J.P., Sekaran K.C.','scopus/service oriented architecture security.csv','scopus','\0'),(189,'Towards a Generic Data Model for the Integrated Intelligent Computer-Assisted Language Learning (iiCALL) Environment','2013','1','Computer-Assisted Language Learning, Generic Data Model, Integrated E-Learning, Learning of Foreign Languages, Natural Language Processing, Semantic Web Technologies, iiCALL','The Integrated Intelligent Computer-Assisted Language Learning (iiCALL) environment is a Web-based e-learning platform that enables language learning in common working environments like Web browsers or email clients. Business logic and language issues are mainly implemented at the iiCALL server. To meet the challenges for providing high quality and context-related language learning, the iiCALL system is assumed to be semantically interoperable, scalable and flexible. Additionally, existing and well approved technologies and standards have to be taken into consideration. Open technologies for communication are as important as a knowledge-based and service-oriented architecture (SOA). Following an idea coming from the healthcare sector, in particular the development of Health Level Seven International (HL7) version 3, the iiCALL development process concentrates on object-oriented analysis and object-oriented design to achieve a generic data model. Based on the initial architecture and database design, the development process for iiCALL applications is redeveloped, which by abstraction yields to the iiCALL generic data model.','',1,'Harald Wahl and Werner Winiwarter','acm/service oriented architecture security.csv','acm','\0'),(190,'PWWM: A Personal Web Workflow Methodology','2013','0','','Abstract The personal web vision promises to give users a highly personalized experience on the web. This paper proposes and describes a Personal Web Workflow Methodology, designed to elicit, operationalize and execute a personal web user’s goals. Our approach relies heavily on our prior research in goal modeling and operationalization, model matching and merging, and web service monitoring and recovery. We integrate this research with the social networking concept of crowd-sourcing to create a novel methodology for allowing users to produce customized workflows in order to accomplish their unique goals.','',2,'Marsha ChechikJocelyn SimmondsSotirios LiaskosShiva NejatiMehrdad SabetzadehRick Salay','springer/bpel security.csv','springer','\0'),(191,'A scientific workflow management system architecture and its scheduling based on cloud service platform for manufacturing big data analytics','2016','0',' Manufacturing big data Scientific workflow Scheduling algorithm Cloud service platform','Abstract To improve the efficiency and productivity of modern manufacturing, the requirements for enterprises are discussed. The new emerged technologies such as cloud computing and internet of things are analyzed and the bottlenecks faced by enterprises in manufacturing big data analytics are investigated. Scientific workflow technology as a method to solve the problems is introduced and an architecture of scientific workflow management system based on cloud manufacturing service platform is proposed. The functions of each layer in the architecture are described in detail and implemented with an existing workflow system as a case study. The workflow scheduling algorithm is the key issue of management system, and the related work is reviewed. This paper takes the general problems of existing algorithms as the motivation to propose a novel scheduling algorithm called MP (max percentages) algorithm. The simulation results indicate that the proposed algorithm has performed better than the other five classic algorithms with respect to both the total completion time and load balancing level.','The International Journal of Advanced Manufacturing Technology',1,'Xiu LiJingdong SongBiqing Huang','springer/soa security.csv','springer',''),(192,'A semantic web services-based infrastructure for context-adaptive process support','2007','4','','Carrent technologies aimed at supporting processes -whether it is a business or learning process - primarily follow a metadata- and data-centric paradigm. Whereas process metadata is usually based on a specific standard specification - such as the Business Process Modeling Notation (BPMN) or the IMS Learning Design Standard - the allocation of resources is done manually at designtime, and the used data is often specific to one process context only. These facts limit the reusability of process models across different standards and contexts. To overcome these issues, we introduce an innovative Semantic Web Service-based framework aimed at changing the current paradigm to a context-adaptive service-oriented approach. Following the idea of layered semantic abstractions, our approach supports the development of abstract semantic process model - reusable across different contexts and standards - that enables a dynamic adaptation to specific actor needs and objectives. To illustrate the application of our framework and establish its feasibility, we describe a prototypical application in the E-Learning domain. © 2007 IEEE.','',2,'Dietze S., Gugliotta A., Domingue J.','scopus/bpmn security.csv','scopus','\0'),(193,'Internet banking adoption in a developing country: an empirical study in Vietnam','2015','0',' Internet banking TAM TPB model SEM','Abstract Internet banking is growing faster than other e-commerce sectors and has emerged as an evolution in applied banking technology. This study investigates the factors influencing customer intention regarding Internet banking services in Vietnam using elements of an extended technology acceptance model and the theory of planned behaviors. We use structured equation modeling to evaluate the strength of the hypothesized relationships. The results of this study indicate that the use of Internet banking services in Vietnam may be motivated by a set of specific factors (i.e., perceived usefulness, perceived ease of use, perceived credibility, perceived behavioral control, subjective norms, and attitude toward use). These results are expected to help banks understand the critical factors influencing Internet banking usage and to contribute to the creation of competitive promotional campaigns in Vietnam.','Information Systems and e-Business Management',1,'Feng-Teng LinHsin-Ying WuThi Nguyet Nga Tran','springer/service oriented architecture security.csv','springer',''),(194,'Model-Driven Development of Mobile Applications Allowing Role-Driven Variants','2014','2',' model-driven development mobile application Android','Abstract Rapidly increasing numbers of applications and users make the development of mobile applications to one of the most promising fields in software engineering. Due to short time-to-market, differing platforms and fast emerging technologies, mobile application development faces typical challenges where model-driven development can help. We present a modeling language and an infrastructure for the model-driven development (MDD) of Android apps supporting the specification of different app variants according to user roles. For example, providing users may continuously configure and modify custom content with one app variant whereas end users are supposed to use provided content in their variant. Our approach allows a flexible app development on different abstraction levels: compact modeling of standard app elements, detailed modeling of individual elements, and separate provider models for specific custom needs. We demonstrate our MDD-approach at two apps: a phone book manager and a conference guide being configured by conference organizers for participants.','',2,'Steffen VaupelGabriele TaentzerJan Peer HarriesRaphael StrohRené GerlachMichael Guckert','springer/bpel security.csv','springer',''),(195,'Structural analysis of issues in exchanging qualified master data under cloud computing','2015','','Cloud computing; Data quality management; DQM; Master data; Meta-data management; Operational constraints','Various applications including the data quality management (DQM) have been forced to reconsider their structural aspects for deployment since the figures of cloud computing have been revealed more clearly. In enterprise computing, huge efforts to apply service-oriented architecture (SOA) and business process integration (BPI) have been spent to make their information systems more agile and flexible. However, generic principles for implementing the enterprise systems should be updated owing to the advent of cloud computing. Under the practical operations with cloud computing, redeploying qualified data after cleansing, ordering and integration at prior stages depends on commissioning commercial services, despite their features as assets. Therefore, another issue could occur for example, security scope under licensing which is distinguished from the traditional security framework. In this paper, we present the operational issues of master data management (MDM) as one of the sub-fields of DQM. We will touch on the relationship with security requirements under cloud computing and will sketch the formularisation which will become the foundation when considering suitable operational rules. © 2015 Inderscience Enterprises Ltd.','',1,'Kikuchi S.','scopus/service oriented architecture security.csv','scopus',''),(196,'VPML: an approach to detect design patterns of MOF-based modeling languages','2015','2',' Design pattern Modeling MOF UML BPMN QVT GoF VPML','Abstract A design pattern is a recurring and well-understood design fragment. In a model-driven engineering methodology, detecting occurrences of design patterns supports the activities of model comprehension and maintenance. With the recent explosion of domain-specific modeling languages, each with its own syntax and semantics, there has been a corresponding explosion in approaches to detecting design patterns that are so much tailored to those many languages that they are difficult to reuse. This makes developing generic analysis tools extremely hard. Such a generic tool is however desirable to reduce the learning curve for pattern designers as they specify patterns for different languages used to model different aspects of a system. In this paper, we propose a unified approach to detecting design patterns of MOF-based modeling languages. MOF is increasingly used to define modeling languages, including UML and BPMN. In our approach, a pattern is modeled with a Visual Pattern Modeling Language and mapped to a corresponding QVT-Relations transformation. Such a transformation runs over an input model where pattern occurrences are to be detected and reports those occurrences in a result model. The approach is prototyped on Eclipse and validated in two large case studies that involve detecting design patterns—specifically a subset of GoF patterns in a UML model and a subset of Control Flow patterns in a BPMN model. Results show that the approach is adequate for modeling complex design patterns for MOF-based modeling languages and detecting their occurrences with high accuracy and performance.','Software & Systems Modeling',2,'Maged ElaasarLionel C. BriandYvan Labiche','springer/bpmn security.csv','springer',''),(197,'3D vs. 4D Ontologies in Enterprise Modeling','2014','0','','Abstract This paper presents a comparison between a 3D and a 4D ontology, with the purpose of identifying modeling variations that arise from using these different kinds of ontologies. The modeling variations are illustrated by using two enterprise modeling enigmas to which both ontologies are applied. The goal of our comparison is to demonstrate that the choice of an ontology impacts on the representation of real world phenomena and will eventually result in different enterprise models.','',2,'Michaël VerdonckFrederik GaillyGeert Poels','springer/bpmn security.csv','springer',''),(198,'Least privilege analysis in software architectures','2013','0',' Security analysis Least privilege Software architecture','Abstract Due to the lack of both precise definitions and effective software engineering methodologies, security design principles are often neglected by software architects, resulting in potentially high-risk threats to systems. This work lays the formal foundations for understanding the security design principle of least privilege in software architectures and provides a technique to identify violations against this principle. The technique can also be leveraged to analyze violations against the security design principle of separation of duties. The proposed approach is supported by tools and has been validated in four case studies, two of which are presented in detail in this paper.','Software & Systems Modeling',2,'Koen BuyensRiccardo ScandariatoWouter Joosen','springer/bpel security.csv','springer','\0'),(199,'A standardized SOA for clinical data interchange in a cardiac telemonitoring environment','2014','1','Electronic health record (EHR); Healthcare; Healthcare services specification project (HSSP); Interoperability; Telemedicine solution','Care of chronic cardiac patients requires information interchange between patients\' homes, clinical environments, and the electronic health record. Standards are emerging to support clinical information collection, exchange and management and to overcome information fragmentation and actors delocalization. Heterogeneity of information sources at patients\' homes calls for open solutions to collect and accommodate multidomain information, including environmental data. Based on the experience gained in a European Research Program, this paper presents an integrated and open approach for clinical data interchange in cardiac telemonitoring applications. This interchange is supported by the use of standards following the indications provided by the national authorities of the countries involved. Taking into account the requirements provided by the medical staff involved in the project, the authors designed and implemented a prototypal middleware, based on a service-oriented architecture approach, to give a structured and robust tool to congestive heart failure patients for their personalized telemonitoring. The middleware is represented by a health record management service, whose interface is compliant to the healthcare services specification project Retrieve, Locate and Update Service standard (Level 0), which allows communication between the agents involved through the exchange of Clinical Document Architecture Release 2 documents. Three performance tests were carried out and showed that the prototype completely fulfilled all requirements indicated by the medical staff; however, certain aspects, such as authentication, security and scalability, should be deeply analyzed within a future engineering phase. © 2014 IEEE.','',1,'Gazzarata R., Vergari F., Cinotti T.S., Giacomini M.','scopus/service oriented architecture security.csv','scopus','\0'),(200,'Monitoring web services’ quality of service: a literature review','2014','1',' Web service monitoring Web service QoS Vague QoS Fuzzy type-2 QoS monitoring','Abstract Monitoring Quality of Service (QoS) compliance is an important procedure in web service environment. It determines whether users’ expectations are met, and becomes the vital factor for them to decide whether to continue paying for the service or not. The monitoring is performed by checking the actual services performance against the QoS stated in Service Level Agreement (SLA). In relation to that, the need for monitoring vague QoS specifications in SLA has become more apparent nowadays. This paper reviews the published literature on web services QoS monitoring. A total of 60 selected articles were systematically analyzed. There were 23 of the articles selected through restrictive search criteria while the other 37 were selected based on unrestrictive search criteria. The review shows that little evidence exists on monitoring vague QoS specifications of web services. Providing ability for monitoring QoS that is specified vaguely in SLA could give new insights and implications to web services field. This paper concludes with some recommended future works to construct the theory and perform the empirical research.','Artificial Intelligence Review',2,'Mohd Hilmi HasanJafreezal JaafarMohd Fadzil Hassan','springer/bpel security.csv','springer',''),(201,'An Empirical Evaluation of a Usability Measurement Method in a Model Driven Framework','2013','1',' Plastic User Interface Usability Model Empirical Evaluation Model Driven Engineering','Abstract Usability is increasingly considered as a basic determinant of the Interactive Systems (IS) success. An IS that satisfies all the functional requirements can be rejected by end-users if it presents usability problems. Unusable User Interface (UI) is probably the main reason that may lead to the failure in the actual use of an IS. Therefore, several approaches dealing with the evaluation of the user interface usability have been proposed in literature. However, these approaches are focused on the final system and require a large amount of resources to perform the evaluation (end-users, video cameras, questionnaires, etc.). The ability to go back and makes major changes to the design is greatly reduced. It is widely accepted that the evaluation performed at the beginning of the development process is a critical part of ensuring that the product will be used and effective for its intended purpose. In addition, an early usability evaluation would be a significant advantage with regard to saving time and resources. The purpose of the present paper is to investigate the integration of the usability issues at an early stage of the development process. A model based approach is presented and empirically evaluated.','',2,'Lassad Ben AmmarAdel Mahfoudhi','springer/bpmn security.csv','springer','\0'),(202,'A Survey on Testing for Cyber Physical System','2015','0',' Testing Cyber physical systems Survey','Abstract Cyber Physical Systems (CPS) bridge the cyber-world of computing and communications with the physical world and require development of secure and reliable software. It asserts a big challenge not only on testing and verifying the correctness of all physical and cyber components of such big systems, but also on integration of these components. This paper develops a categorization of multiple levels of testing required to test CPS and makes a comparison of these levels with the levels of software testing based on the V-model. It presents a detailed state-of-the-art survey on the testing approaches performed on the CPS. Further, it provides challenges in CPS testing.','',1,'Sara Abbaspour AsadollahRafia InamHans Hansson','springer/service oriented architecture security.csv','springer',''),(203,'An Agent-Oriented Method for Designing Large Socio-technical Service-Ecosystems','2014','0','business-process aware;cloud;ecosystem;service;socio-technical system;software engineering','The development of large socio-technical systems is now more feasible with the availability of service-oriented cloud computing although this results in a higher complexity level with respect to security and dependability in service-ecosystems. Additionally, the communication between humans and software is more complex too. Developing system architectures that comprise proactive agents are a means to tackle that complexity. However, there is a lack of socio-technical design methods for generating agent-based architectures that get deployed on platforms as a service in Clouds. Such a method must be easy to comprehend and enactable in a pragmatic way. To demonstrate the method, the paper uses a running case based on an emergency healthcare-provision scenario in homes for elderly in sparsely populated areas.','2014 IEEE World Congress on Services',1,'A. Norta; M. Mahunnah; T. Tenso; K. Taveter; N. C. Narendra','ieee/service oriented architecture security.csv','ieee','\0'),(204,'Towards a Forensic-Based Service Oriented Architecture Framework for Auditing of Cloud Logs','2013','5','SOA;cloud;web; forensic','Cloud computing log digital investigations relate to the investigation of a potential crime using the digital forensic evidence from a virtual machine (VM) host operating system using the hypervisor event logs. In cloud digital log forensics, work on the forensic reconstruction of evidence on VM hosts system is required, but with the heterogeneous complexity involved with an enterprise\'s private cloud not to mention public cloud distributed environments, a possible Web Services-centric approach may be required for such log supported investigations. A data cloud log forensics service oriented architecture (SOA) audit framework for this type of forensic examination needs to allow for the reconstruction of transactions spanning multiple VM hosts, platforms and applications. This paper explores the requirements of a cloud log forensics SOA framework for performing effective digital investigation examinations in these abstract web services environments. This framework will be necessary in order to develop investigative and forensic auditing tools and techniques for use in cloud based log-centric SOAs.','2013 IEEE Ninth World Congress on Services',1,'S. Thorpe; T. Grandison; A. Campbell; J. Williams; K. Burrell; I. Ray','ieee/service oriented architecture security.csv','ieee','\0'),(205,'4th International Conference on Enterprise Resource Planning, ERP Future 2015','2016','','','The proceedings contain 12 papers. The special focus in this conference is on Education in Enterprise Systems and Business Process Models. The topics include: Introducing a best practice example for vocational training in universities; business process model semantics in BPMN; integration of risk aspects into business process modeling; towards rigid actor assignment in dynamic workflows; towards a generic resource booking management system; strategic management in the branch of online accounting solution providers; systems in use, system vendors and implementation consultancies; semantic technologies for managing complex product information in enterprise systems; research challenges of industry 4.0 for quality management; security-based approach for transformations of mobile accesses to ERP systems and vertical integration and adaptive services in networked production environments.','',2,'[No author name available]','scopus/bpmn security.csv','scopus',''),(206,'Agent-based interoperability for e-government','2013','','','The provision of valuable e-government services depends upon the capacity to integrate the disperse provision of services by the public administration and thus upon the availability of interoperability platforms. These platforms are commonly built according to the principles of service oriented architectures, which raise the question of how to dynamically orchestrate services while preserving information security. Recently, it was presented an e-government interoperability model that preserves privacy during the dynamic orchestration of services. In this paper we present a prototype that implements that model using software agents. The model and the prototype are briefly described; an illustrative use case is presented; and the advantages of using software agents to implement the model are discussed. © Springer International Publishing Switzerland 2013.','',1,'Marques F., Dias G.P., Zúquete A.','scopus/service oriented architecture security.csv','scopus','\0'),(207,'Towards a business-centric definition of access control policies','2011','','','Security requirements are part of business requirements, either because they derive from forensic rules, or because they derive from the business logic that should be translated into functional requirements to guaranty that a system meets its users\' needs. Extending several notations such as the UML and the BPMN has been proposed as a means to bridge the gap between business processes engineering, security policies design and system engineering. However, a gap remains between these extensions on the one hand and between the large number of access control models on the other hand. Business logic, system engineering and security design thus remain separated when they should be intertwined. In this paper, we address this issue by defining a metamodel for access control to gather the different aspects of access control. We then introduce extensions to the UML et to BPMN that we derive from this metamodel and show that from a business-centric perspective, we can derive functional requirements, and model security to generate actual security policies. © 2011 IEEE.','',2,'Faravelon A., Verdier C., Front A.','scopus/bpmn security.csv','scopus','\0'),(208,'Access Control Architecture Separating Privilege by a Thread on a Web Server','2012','0','Access Control;Runtime Privilege;Security in a Server;Web Server','In Web hosting services, hosting systems use access controls like suEXEC on apache Web servers to separate privilege by each virtual host. However, existing access control architectures on Web servers have a problem in their low performance and are not appropriate for dynamic contents like Web API since these architectures require termination of the process after each HTTP session. System developers are not easy to install existing access controls since these are provided by each interpreter and program execution methods conventionally. In this paper, we propose the access control architecture gmod_process_securityh. In this architecture a server process creates a new thread on the server process when accepting a request. Then, the web server separates privilege by the thread and processes the contents on the thread. The server process installed gmod_process_securityh executes programs faster. System developers can easily install it on web servers since we replace it with the complicated existing access controls. gmod_process_securityh can be installed for Apache HTTP Server on Linux as Apache Module which is widely used.','Applications and the Internet (SAINT), 2012 IEEE/IPSJ 12th International Symposium on',1,'R. Matsumoto; Y. Okabe','ieee/service oriented architecture security.csv','ieee','\0'),(209,'Cloud identity management security issues & solutions: a taxonomy','2014','2',' Cloud computing security Identity management Assessment criteria IDMS taxonomy','Abstract Purpose Cloud computing systems represent one of the most complex computing systems currently in existence. Current applications of Cloud involve extensive use of distributed systems with varying degree of connectivity and usage. With a recent focus on large-scale proliferation of Cloud computing, identity management in Cloud based systems is a critical issue for the sustainability of any Cloud-based service. This area has also received considerable attention from the research community as well as the IT industry. Numerous Cloud Identity Management Systems (IDMSs) have been proposed so far; however, most of those systems are neither widely accepted nor considered highly reliable due to their constraints in terms of scope, applicability and security. In order to achieve reliability and effectiveness in IDMs for Cloud, further extensive research needs to be carried out to critically examine Cloud based IDMSs and their level of security. Methods In this work, we have holistically analyzed Cloud IDMSs to better understand the general as well as the security aspects of this domain. From the security perspective, we present a comprehensive list of attacks that occur frequently in Cloud based IDMSs. In order to alleviate those attacks, we present a well-organized taxonomy tree covering the most desired features essential for any Cloud-based IDMSs. Additionally, we have specified various mechanisms of realization (such as access control polices, encryption, self-service) against each of the features of Cloud IDMSs. We have further used the proposed taxonomy as an assessment criterion for the evaluation of Cloud based IDMSs. Results Our in-depth analysis of various Cloud based IDMSs reveals that most of the systems do not offer support to all the essential features of Cloud IDMS and the ones that do, have their own certain weaknesses. None of the discussed techniques heuristically covers all the security features; moreover, they lack compliance to international standards which, understandably, undermines their credibility. Conclusion Presented work will help Cloud subscribers and providers in understanding the available solutions as well as the involved risks, allowing them to make more knowledgeable decisions while selecting potential Cloud IDMSs that best suits their functional and security requirements.','Complex Adaptive Systems Modeling',1,'Umme HabibaRahat MasoodMuhammad Awais ShibliMuaz A Niazi','springer/service oriented architecture security.csv','springer','\0'),(210,'An environment for service composition, execution and resource allocation','2013','','service composition; Service Oriented Architecture; service request distribution; service security','In recent years the evolution of software architectures led to the rising prominence of the Service Oriented Architecture (SOA) concept. The services can be deployed in distributed environments and executed on different hardware and software platforms. In the paper a configurable and flexible environment, allowing composition, deployment and execution of composite services, which can be applied in the wide range of SOA-based systems is presented. It supports service semantic description, composition and the distribution of service requests guaranteeing services quality, especially efficient allocating communication and computational resources to services. We present an unified approach, which assumes the semantic description of Web service functionalities with an XML-based language - Smart Service Description Language which provides similar features to that of OWL-S or WSDL, however, it was designed to support services execution and monitoring. These unique features allow to design a service execution engine, compatible with the underlying execution environment and providing support for service QoS guarantees. © 2013 Springer-Verlag.','',1,'Kwiatkowski J., Juszczyszyn K., Kolaczek G.','scopus/service oriented architecture security.csv','scopus','\0'),(211,'Web services: Design choices for space ground system integration','2012','0','Integration;REST;SOA;SOAP;Space Ground System;Web Service','The primary role of a ground system in the design of a space ground network is to exchange information between the space fleet and the end users. In order to maintain secure, reliable communications and provide situational awareness, a ground system needs to choreograph services between heterogeneous interfaces of various key elements in the ground system architecture. The choice of Service Oriented Architecture and Web Services provides a cost effective and scalable solution to integrate disparate software elements of the ground system. The two major concepts in web service technology are SOAP and REST. While SOAP is a protocol to transfer information between two end points, REST principles concentrate on representing resource state information using resource identifiers. The paper discusses merits and de-merits of each approach in the integration of a space ground system\'s heterogeneous interfaces. The paper starts with the large grain description of a typical space ground system, followed by a discussion of SOAP and REST principles. A comparison of SOAP and REST based approaches in the design and integration of a ground system is discussed. Finally the paper concludes with a discussion of recent trends in the techniques of web services.','MILCOM 2012 - 2012 IEEE Military Communications Conference',1,'S. Nath','ieee/service oriented architecture security.csv','ieee','\0'),(212,'An Intents-based approach for dynamic service discovery','2016','1',' Services computing Web services Service discovery Intents','Abstract Service discovery has been a very active research field attracting many researchers around the world. Most of the previous research efforts on service discovery have been based on the ternary classification of participant roles in web services, including service providers, brokers, and consumers. This classification is insufficient because it fails to make a difference between application developers and end users who both belong to service consumers. As a result, application developers usually take the responsibility of seeking services while end users who ultimately use the application are ignored. In order to address this issue, this paper presents an Intents-based approach for dynamic service discovery. The proposed approach is motivated from two industrial protocols: Android Intents and web Intents. It improves the two protocols by a generic model from the aspects of architecture, intent messages and their resolving process, Intents services, and user agents. It classifies the implicit intents into authoritative and naïve intents and is compatible with the current web service triangular architecture. This paper also illustrates a way of creating Intents services from SOAP and REST web services and presents two cases to demonstrate some benefits of the proposed approach.','Service Oriented Computing and Applications',1,'Cheng ZhengWeiming ShenHamada H. Ghenniwa','springer/soa security.csv','springer',''),(213,'FRWSC: a framework for robust Web service composition','2016','0',' Web service composition SOAP errors Runtime failure BPEL Service replacement','Abstract The deployment of Web services in a highly dynamic environment brings about a number of research challenges. In dynamic Web services composition, failures and changes to atomic services cannot be detected before invocation. Hence, the failure or even the change in an atomic service may lead to the overall failure of the composite service. In addition, SOAP error code is not sufficient for the client to analyze the failure reason and handle it. In this work, we introduce a framework to deal with unexpected failures during runtime composition. The proposed framework is built on top of composite services stack as an interface between the composite service and its external service partners. The evaluation results show that by using the proposed framework, it is possible to avoid composite service failures that are caused by changes or failures in atomic services.','Service Oriented Computing and Applications',1,'Mohamed El KholyAhmed El Fatatry','springer/soa security.csv','springer',''),(214,'SeSaMe: Towards a Semantic Self Adaptive Middleware for Smart Spaces','2013','2','','Abstract Smart spaces are inherently complex and dynamic systems, where diverse devices, sensors, actuators and computational elements need to interact with one another. A middleware infrastructure can provide suitable abstractions that simplify the task, and allow designers to ignore the details of the underlying elements. Unfortunately, however, existing middleware solutions do not generalize well to different kinds of spaces, since they often fail to address the scalability and dynamism of such spaces. In this paper we propose SeSaMe, a semantic and self-adaptive middleware infrastructure for highly dynamic and massive smart spaces. SeSaMe establishes a “backbone” to let components connect to the system without any prior knowledge of its topology. It is capable of maintaining the system’s overall reliability, even when multiple components leave or fail unexpectedly, and of coping with message congestion, by dynamically altering the system’s topology. SeSaMe also provides a simple declarative language for defining how one wants the system to evolve over time, and semantic technologies for harmonizing the interaction of different kinds of components. The main new features of SeSaMe are exemplified on two example smart spaces with significantly different characteristics.','',1,'Luciano BaresiSam GuineaAdnan Shahzada','springer/service oriented architecture security.csv','springer','\0'),(215,'Scope-Aware Delegations in Distributed Social Networks','2015','1',' Security Delegation Semantic web Social web WebID','Abstract Swiftly meeting challenges by distributing tasks to the most suitable knowledge workers is an important matter, especially for network-centric organizations. In such distributed work environments delegations help to solve tasks faster, but also require measures to prevent delegatees from exceeding assigned competencies. By providing universal identification, WebID by W3C can assist in establishing a basis for distributed collaboration. Yet, it does not allow users for delegating access rights to others in a controlled way to act on their behalves. This paper presents the DASC approach to enable scope-aware delegations in distributed social networks using WebID. We introduce a vocabulary to describe delegations including associated constraints and demonstrate a prototypical implementation of DASC within an existing WebID identity provider.','',2,'Anna ScholtzStefan WildMartin Gaedke','springer/bpmn security.csv','springer',''),(216,'8th International Conference on Dependability and Complex Systems, DepCoS-RELCOMEX 2013','2013','','','The proceedings contain 50 papers. The special focus in this conference is on Dependability and Complex Systems. The topics include: Application level execution model for transparent distributed computing; risk assessment aspects in mastering the value function of security measures; reduction of computational cost in mutation testing by sampling mutants; reliability analysis of discrete transportation systems using critical states; a reference model for the selection of open source tools for requirements management; a probabilistic approach to the count-to-infinity problem in distance-vector routing algorithms; a quality estimation of mutation clustering in C# programs; using virtualization technology for fault-tolerant replication in LAN; quantification of simultaneous-AND gates in temporal fault trees; improving of non-interactive zero-knowledge arguments using oblivious transfer; virtual environment for implementation and testing private wide area network solutions; optimization of privacy preserving mechanisms in mining continuous patterns; technical and program aspects on monitoring of highway flows; integral functionals of semi-Markov processes in reliability problems; generating repair rules for database integrity maintenance; optimization algorithm for the preservation of sensor coverage; towards evolution methodology for service-oriented systems; The LVA-index in clustering; the end-to-end rate adaptation application for real-time video monitoring; discrete transportation systems quality performance analysis by critical states detection; freshness constraints in the RT framework; transformational modeling of BPMN business process in SOA context; reliability assessment of supporting satellite system EGNOS; an approach to automated verification of multi-level security system models; a web service-based platform for distributed web applications integration; universal platform for composite data stream processing services management; proposal of cost-effective tenant-based resource allocation model for a SaaS system; automatic load testing of web application in SaaS model; on testing wireless sensor networks; towards precise architectural decision models; K-induction based verification of real-time safety critical systems; dependability aspects of autonomic cooperative computing systems; life cycle cost through reliability and verification of info communication system components for modeling and control of saturated traffic in megalopolis.','',2,'[No author name available]','scopus/bpmn security.csv','scopus','\0'),(217,'Achieving high-performance video analytics with lightweight cores and a sea of hardware accelerators','2014','','','High performance and energy efficient video analytics systems that can extract rich metadata from voluminous visual content, will enable a variety of high-value surveillance, driver assistance, video tagging, and first person analytics systems. These big-data applications are pervasive across retail, automotive, medical, agriculture and security domains. However, current trends in general purpose and multicore architectures will not keep pace with the growing computational demands of cutting edge visual perception algorithms. Hardware acceleration is crucial to surpassing what is realizable on modern multicore and GPGPU architectures. In this paper we detail a Sea-of-Accelerators, SoA, platform that combines a mix of macro-accelerators, microaccelerators, and lightweight processors to achieve high performance and energy efficiency in video analytics applications. In this paper, we describe a framework for video and image analytics and highlight its benefits with a case study of a customized visual saliency accelerator. We describe the architecture of a full custom macro-accelerator that is suitable when raw performance is of critical importance. As an alternative, we illustrate the composition of an accelerator from a constituent of loosely coupled microaccelerators and evaluate the performance achievable when performance and flexibility are competing objectives. © 2014 IEEE.','',1,'Irick K.M., Chandramoorthy N.','scopus/soa security.csv','scopus','\0'),(218,'Putting It All Together: Using the ArtDeco Approach in the Wine Business Domain','2012','0','','Abstract This chapter summarises the results achieved by the ArtDeco project and presents the overall approach for developing the models that the large-scale middleware infrastructure designed during the project uses to drive the behaviours of the information systems of a sample networked enterprise operating in the domain of wine production. This domain is sufficiently wide to cover many business aspects that highlight the ability of the proposed infrastructure to adapt its behavior to the evolving execution context by reacting to unexpected events with a very limited human intervention. The same approach has been experimented also in different domains, including fashion industry and value added services for TLC providers.','',2,'Eugenio ZimeoValentina MazzaGiorgio OrsiElisa QuintarelliAntonio RomanoPaola SpoletiniGiancarlo TretolaAlessandro AmiranteAlessio BottaLuca CavallaroDomenico ConsoliEster GiallonardoFabrizio Maria MaggiGabriele Tiotto','springer/bpmn security.csv','springer','\0'),(219,'Spatio-temporal enabled urban decision-making process modeling and visualization under the cyber-physical environment','2015','0',' decision-making process meta-model process chain SensorML emergency management 关键词 决策过程 元模型 过程链 传感器建模语言 应急管理 100105','Abstract Urban management is increasingly dependent on the construction of cyber-physical systems, which have been widely deployed in multiple fields, including agriculture, transportation, and health care. Cyberphysical systems provide a large volume of big sensory data. Thus, the application of big data for urban emergency decision-making has become a challenge. Traditional decision-making models are unable to overcome several technical problems, including spatio-temporal information support and access to real-time service for disaster management and emergency response. In this paper, we propose a spatio-temporal enabled urban decision-making process modeling method in the cyber-physical environment and discuss the development off our basic metadata components, the definition of eleven-tuple information description structure. A prototype system is designed for modeling registering, management, visualization, and other functions. Decision-making processes are implemented as composite process chains through three phases, i.e., decision-making process modeling, instantiation of the decision-making process chain and execution of the decision-making process chain. For application to gas leak events, the decision-making process is executed to confirm the feasibility of the proposed decision-making process modeling method and the flexibility of the eleven-tuple information structure.','Science China Information Sciences',1,'Wei WangChuanBo HuNengCheng ChenChangJiang XiaoChao WangZeQiang Chen','springer/soa security.csv','springer',''),(220,'A Web Services Based Solution for Online Loan Management via Smartphone','2012','0',' Web services E-finance Unified Modeling Language Case studies Tools and applications','Abstract Small microfinance institutions (in underdeveloped countries), despite their determination to expand into rural areas, are limited by geographic isolation and high transaction costs. For this, a solution has been proposed to access some features of the enterprise application via Smartphone. This solution is based on a service-oriented architecture in which the main features are developed as web services. The invocation of the methods is performed from a Smartphone or a PC, while the execution will be on a server that returns an understandable result through WSDL (Web Service Description Language) generated by web services, where the transport is provided by SOAP (Simple Object Access Protocol).','',1,'Théophile K. DagbaErcias LohounmèAnge Nambila','springer/service oriented architecture security.csv','springer','\0'),(221,'Preference based service adaptation using service substitution','2013','2','','In many applications such as service-oriented computing, users often prefer some compositions over the others based on their preferences over non-functional attributes such as security and cost. After a composition is deployed, apart from changes in the functional requirements, service-oriented architectures often have to deal with changes in the user preferences over the non-functional attributes and/or repository of available components. We formulate the problem of adaptation as iterative substitution of appropriate components in a composition, and provide two algorithms that produce a sequence of increasingly preferred adaptations with time: a fast algorithm that searches for preferred adaptations by improving the valuation of the relatively more important attributes, and another that is computationally more intensive but guaranteed to produce at least one preferred adaptation, if one exists. © 2013 IEEE.','',1,'Santhanam G.R., Basu S., Honavar V.','scopus/service oriented architecture security.csv','scopus','\0'),(222,'Cooperative caging and transport using autonomous aquatic surface vehicles','2012','6',' Marine robotics Cooperative control Cooperative caging Field robotics','Abstract We present a study on the cooperative control of two autonomous surface vehicles performing a caging and transport mission on the water surface. The two vehicles, connected to each other by means of a floating flexible rope, are required to capture a floating target from a given location, and transport it to a designated position. We focus on the coordination and control strategy to meet these requirements, and on its implementation on two under-actuated vehicles. We describe a multi-layered control architecture which achieves the goal, followed by simulation studies and field experiments with the two vehicles caging and transporting a floating target on the surface of a lake.','Intelligent Service Robotics',1,'Filippo ArrichielloHordur K. HeidarssonStefano ChiaveriniGaurav S. Sukhatme','springer/soa security.csv','springer','\0'),(223,'Web-Based Authoring and Secure Enactment of Bioinformatics Workflows','2009','3','BPEL;Grid;scientific workflows;security;web2.0','The recent advances in the field of bioinformatics present a number of challenges in the secure and efficient management and analysis of biological data resources. Workflow technologies aim to assist scientists and domain experts in the design of complex, long running, data and computing intensive experiments that involve many data processing and analysis tasks. In this paper we present a bioinformatics workflow authoring and execution environment that intends to greatly facilitate the whole lifecycle of such experiments. The main contributions of this work are a Web based, easy to use, graphical workflow designer and a BPEL compliant execution environment. The ethical and security requirements when dealing with sensitive personal data that are inherent in the field of bioinformatics impose the introduction of ldquocredentials delegationrdquo in the workflow execution and we describe its design and implementation through bridging Grid security mechanisms with business workflows technologies.','Grid and Pervasive Computing Conference, 2009. GPC \'09. Workshops at the',2,'S. Sfakianakis; L. Koumakis; G. Zacharioudakis; M. Tsiknakis','ieee/bpel security.csv','ieee','\0'),(224,'Cirrus: A Disruption-Tolerant Cloud','2012','0','','Abstract Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, virtual machines, applications, and services) that can be rapidly and elastically provisioned, to quickly scale out, and rapidly released to quickly scale in. However, commercially available cloud services such as public grids target the needs for the broader customer base and do not meet the specialized requirements of real-time, data-centric applications, such as sensor data aggregation, messaging, media streaming and commodity exchange, that need to process very large volumes of diverse, streaming data in near real time. To make matters worse, end-to-end communication paths between real-time data providers and consumers are no longer guaranteed, due to either node unavailability or service unavailability. The DTN paradigm has shown to promote interoperable and reliable communications in the presence of disruptions, however, is not directly applicable to cloud computing. A new cloud computing model is therefore needed for the above scenarios. This paper proposes a novel concept, that of a generalized cloud, Cirrus , defined as a computing cloud with the following characteristics: (i) abiding by the NIST Cloud Definition, (ii) providing specialized, core Cloud services targeted to real-time, data centric applications, (iii) allowing for the elastic use of Cirrus cloud resources by ad-hoc networks and (iv) allowing for the elastic incorporation of nomadic and/or severely resource constrained devices, in Cirrus. Cirrus is built on top of DTN application-layer extensions, such as the Bundle Protocol (BP). As a result, Cirrus behaves as an ”overlay Cloud”, elastically forming, expanding and shrinking over networks of dynamic topology that may contain both fixed and ad-hoc infrastructure, thus providing a more fair and de-centralized Cloud Computing solution that is not exclusive to ”big players” in the field.','',1,'Eleftheria Katsiri','springer/service oriented architecture security.csv','springer','\0'),(225,'Proceedings - 12th IEEE International Conference on Trust, Security and Privacy in Computing and Communications, TrustCom 2013','2013','','','The proceedings contain 256 papers. The topics discussed include: efficient fair UC-secure two-party computation on committed inputs; on the design of a trust enhanced distributed authorisation architecture for service oriented architectures; a framework for authentication and authorization credentials in cloud computing; building confidence in information-trustworthiness metrics for decision support; on the application of supervised machine learning to trustworthiness assessment; on the application of supervised machine learning to trustworthiness assessment; an online query authentication system for outsourced databases; card-present transactions on the Internet using the smart card web server; a direct insight into victims of cybercrime; S2Logger: end-to-end data tracking mechanism for cloud data provenance; privacy protected data forwarding in human associated delay tolerant networks; and word n-gram based classification for data leakage prevention.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus','\0'),(226,'DNS configuration detection model','2014','0','Domain Name System;configuration errors;detection','The domain name system (DNS) plays a crucial role in the Internet. However, DNS configuration errors seriously affect the performance of DNS recently. In order to know current DNS configuration, we have studied and classified common configuration problems, proposed a DNS configuration detection model and detected the top 500 zones of China. The detection results show that DNS configuration errors are widespread. Percentages of misconfigured NS records in the top 500 zones, SOA records and MX records are all over 25%. And more than 25% of the zones do not allow TCP connection. Moreover, percentages of each configuration error class of the zones, such as delegation inconsistency, lame inconsistency and diminished server redundancy are all over 5%, especially delegation inconsistency, which accounts for 28%. Therefore, the DNS configuration is expected to improve to avoid DNS attack.','Systems and Informatics (ICSAI), 2014 2nd International Conference on',1,'K. Lu; K. Dong; C. Wang; H. Xu','ieee/soa security.csv','ieee','\0'),(227,'Runtime Enforcement of Dynamic Security Policies','2014','0',' Security enforcement Security policy Aspect-Oriented Programming Dynamicity','Abstract The security policies of an application can change at runtime due to several reasons, as for example the changes on the user preferences, the lack of enough resources in mobile environments or the negotiation of security levels between the interacting parties. As these security policies change, the application code that copes with the security functionalities should be adapted in order to enforce at runtime the changing security policies. In this paper we present the design, implementation and evaluation of a runtime security adaptation service. This service is based on the combination of autonomic computing and aspect-oriented programming, where the security functionalities are implemented as aspects that are dynamically configured, deployed or un-deployed by generating and executing a security adaptation plan. This service is part of the INTER-TRUST framework, a complete solution for the definition, negotiation and run-time enforcement of security policies.','',1,'Jose-Miguel HorcasMónica PintoLidia Fuentes','springer/service oriented architecture security.csv','springer','\0'),(228,'A Multi-agent Approach to Professional Software Engineering','2013','3',' Agent Framework MAS Development Industrial Adoption','Abstract The community of agent researchers and engineers has produced a number of interesting and mature results. However, agent technology is still not widely adopted by industrial software developers or software companies—possibly because existing frameworks are infused with academic premises that rarely apply to industrial settings. In this paper, we analyse the requirements of current industry-driven software projects and show how we are able to cope with these requirements in the Java Intelligent Agent Componentware agent framework, JIAC V. We argue that the lack of industry-grade requirements and features in other agent frameworks is one of the reasons for the slow acceptance of agent technology in the software industry. The JIAC V framework tries to bridge that gap—not as a final solution, but as a stepping stone towards industrial acceptance.','',2,'Marco LützenbergerTobias KüsterThomas KonnerthAlexander ThieleNils MasuchAxel HeßlerJan KeiserMichael BurkhardtSilvan KaiserJakob TonnMichael KaisersSahin Albayrak','springer/bpmn security.csv','springer','\0'),(229,'Doctoral dissertations in logistics and supply chain management: a review of Nordic contributions from 2009 to 2014','2016','0',' Doctoral dissertations Collection of articles Monographs Dissertation score Logistics and supply chain management','Abstract The purpose of this paper is to identify and analyze Nordic doctoral dissertations in logistics and supply chain management (SCM) published from the years 2009–2014. The paper is based on a detailed review of 150 doctoral dissertations. Compared with previous studies, this paper identifies a trend toward: more dissertations based on a collection of articles than monographs; more dissertations focusing on inter-organizational SCM issues; a shift from a focal company perspective to functional aspects and supply chain-related research; and finally, a continued decreased focus on the philosophy of science. A score for measuring the significance of article-based dissertations is also proposed.','Logistics Research',1,'Christopher RajkumarLone KavinXue LuoJan Stentoft','springer/service oriented architecture security.csv','springer',''),(230,'Research on IOT RESTful Web Service Asynchronous Composition Based on BPEL','2014','0','BPEL;IOT Architecture;Internet of Things;RESTful Web Service;Service Asynchronous Composition','In recent years, The Internet of Things(IOT) is one of the hottest research topics. It was originally defined as connected all the things through the sensing devices to the Internet. In addition, Service-Oriented methodology has gradually drawn people\'s attention. Therefore, integrated The IOT with Service-Oriented methodology is very important. But now IOT service composition is mostly synchronous and service model is more complex. RESTful web services have been widely recognized and used because of their lightweight and succinct. RESTful web services introduce a new kind of abstraction, the resource, so that they are hard to compose using the Business Process Execution Language (BPEL). In order to compose asynchronous RESTful web services and make use of various IOT services, this paper proposes an asynchronous RESTful web service recursive measure, which is based on the BPEL extention. First, design the architecture of IOT RESTful web services, the architecture is divided into six layers so that it can integrate The IOT and RESTful web services effectively. Second, we show how to invoke the RESTful web services from the IOT and publish a BPEL process as a RESTful web service by extending BPEL. Finally, through an experiment to verify the correctness and validity of the proposed method in this paper.','Intelligent Human-Machine Systems and Cybernetics (IHMSC), 2014 Sixth International Conference on',2,'L. Zhang; S. Yu; X. Ding; X. Wang','ieee/bpel security.csv','ieee',''),(231,'A Framework for Improving Trust in Dynamic Service-Oriented Systems','2012','1','component;provenance;service-oriented computing;trust','Large-scale data processing systems frequently require users to make timely and high-value business decisions based upon information that is received from a variety of heterogeneous sources. Such heterogeneity is especially true of service-oriented systems, which are often dynamic in nature and composed of multiple interacting services. However, in order to establish user trust in such systems, there is a need to determine the validity and reliability of all the data sources that go into the making of a decision. This paper analyses the concept of provenance and discusses how the establishment of personalized provenance recording and retrieval systems can be used to increase the utility of data and engender user trust in complex service-based systems. An overview of current provenance research is presented, and a real-world project to address the abstract concepts of trust and data quality in industrial and clinical settings is presented. From this, we conclude that the addition of provenance into data processing and decision making systems can have a tangible benefit to improving the trust of system users.','Object/Component/Service-Oriented Real-Time Distributed Computing Workshops (ISORCW), 2012 15th IEEE International Symposium on',1,'P. Townend; C. C. Venters; L. Lau; K. Djemame; V. Dimitrova; A. Marshall; J. Xu; C. Dibsdale; N. Taylor; J. Austin; J. McAvoy; M. Fletcher; S. Hobson','ieee/service oriented architecture security.csv','ieee','\0'),(232,'CloudThinking as an Intelligent Infrastructure for Mobile Robotics','2014','2',' Mobile robotics Cloud-based approaches Computer Thinking','Abstract Mobile robotics is a transforming field that presents a varying set of challenges. The discussion on the autonomy of (self-powered) robots is not settled, and as the communication infrastructure evolves, centralized concepts become more attractive over distributed concepts. This paper presents the CloudThinking architecture applied to intelligent cloud-based robotic operation. CloudThinking offloads most of complex robotic tasks to a central cloud, which retrieves inputs from the environment as a whole in order to instruct the robots to perform its actions. CloudThinking is a natural approach to the orchestration of multiple specialized robotic systems, defining the best mechanisms for reaching a goal. Furthermore, this architecture provides a set of automatic features which can be useful for application developers. These features can fully exploit novel cloud tools development as it becomes available, providing a time-resilient infrastructure of easy upgrade. The resulting approach has the potential to create a different set of market for robotic application developers.','Wireless Personal Communications',1,'Rui L. AguiarDiogo GomesJoão Paulo BarracaNuno Lau','springer/service oriented architecture security.csv','springer','\0'),(233,'Preserving Data Flow Correctness in Process Adaptation','2010','5','BPEL;Correctness-by-Construction;Data Flow Correctness;Process Adaptation','In services and cloud computing, processes need to be continually adapted to changing environments and requirements. Undisciplined process adaptation could easily lead to data flow anomalies, e.g., input missing for some activities in the process. In this paper, we study the problem of data-flow-correctness-preserving adaptation and propose three important criteria that can maintain the data flow correctness in process adaptation. We demonstrate our approach by using a typical process adaptation scenario in BPEL.','Services Computing (SCC), 2010 IEEE International Conference on',2,'W. Song; X. Ma; S. C. Cheung; H. Hu; J. Lü','ieee/bpel security.csv','ieee','\0'),(234,'How much security for switching a light bulb — The SOA way','2012','1','DPWS;Devices Profile for Web Services;Internet of Things;Pervasive Computing;SOA for devices;Security','What visions of technologies such as the Internet of Things (IoT), Pervasive Computing (PC) or Ambient Intelligence (AI) have in common is that they employ a very high amount of critically resource-constrained devices. This of course raises a whole set of new security challenges. Instead of proposing another middleware for IoT, PC or AI, and presenting a security approach for it we focus on existing, widely-adopted security mechanisms and concepts and give a comprehensive overview. Furthermore, we examine the Web Service security suite as an example for a comprehensive security framework on application level. We use an intentionally kept simple scenario including light bulbs and switches to demonstrate necessary security mechanisms and properties and to judge applicability of the presented existing security techniques and frameworks.','2012 8th International Wireless Communications and Mobile Computing Conference (IWCMC)',1,'S. Unger; S. Pfeiffer; D. Timmermann','ieee/service oriented architecture security.csv','ieee','\0'),(235,'Replication Infrastructure for RESTful Web Services','2012','0','','Abstract This paper describes a proposal for replication of RESTful web services. It focuses on the exploitation of specific features of RESTful web services in the context of replication. The features imposed by the REST architectural style that are crucial to replication include: resource orientation, explicit resource identification, and fixed interface with well understood semantics of operations. We propose a replication infrastructure for RESTful web services in the form of interceptors between consumers and providers. Interceptors in the case of HTTP protocol take the form of proxy servers. The concept has been materialized in a prototype implementation.','',1,'Marcin BazydłoSzymon FrancuzikCezary SobaniecDariusz Wawrzyniak','springer/service oriented architecture security.csv','springer','\0'),(236,'A Pragmatic Approach towards Safe and Secure Medical Device Integration','2014','0',' medical device integration remote control safety-critical cybersecurity risk-based approach','Abstract Compared to other safety-related domains, harmonizing efforts regarding electronic device integration and interaction – in terms of real-time and remote control – are conducted less ambitious in the medical device sector. There are a couple of reasons for this restrained progress. Traditionally, medical devices are either both small-sized and self-sufficient or they are highly integrated parts of a complete setup provided by one vendor. Especially when equipping critical care facilities such as intensive care units, producer and brand diversity is low, whereas the pressure of competition is high. The results are proprietary communication and control solutions when connecting devices in order to interact. On the other hand, any modern hospital heavily relies on highly available critical medical devices providing and sharing data but also on confidentiality and integrity of vitally important information. This paper discusses a pragmatic risk-based approach to handle integration problems facing the current situation described above, while focusing on future development challenges. The background of this paper is a project for defining a safe and secure integration interface that – open to integration partners – enables to monitor and remote-control a critical medical device.','',1,'Christoph Woskowski','springer/service oriented architecture security.csv','springer','\0'),(237,'IoT6 – Moving to an IPv6-Based Future IoT','2013','7',' IoT M2M IPv6 CoAP architecture interoperability building automation','Abstract IoT6 is a research project on the future Internet of Things. It aims at exploiting the potential of IPv6 and related standards to overcome current shortcomings and fragmentation of the Internet of Things. The main challenges and objectives of IoT6 are to research, design and develop a highly scalable IPv6-based Service-Oriented Architecture to achieve interoperability, mobility, cloud computing integration and intelligence distribution among heterogeneous smart things components, applications and services. The present article starts by a short introduction on IPv6 capabilities for the Internet of Things and information on the current deployment of IPv6 in the world. It continues with a presentation of the IoT6 architecture model and its concept of service discovery. Finally, it illustrates the potential of such IPv6-based architecture by presenting the integration of building automation components using legacy protocols.','',1,'Sébastien ZieglerCedric CrettazLatif LadidSrdjan KrcoBoris PokricAntonio F. SkarmetaAntonio JaraWolfgang KastnerMarkus Jung','springer/service oriented architecture security.csv','springer','\0'),(238,'Homeland Security Exercise and Evaluation Program - Enterprise platform (HSEEP-EP): An innovative service oriented architecture approach','2012','0','HSEEP;SOA;exercises;service oriented architecture;web services','Federal Emergency Management Agency (FEMA) and the Department of Homeland Security, Science and Technology Directorate (DHS S&T) and are working together, in collaboration with MIT Lincoln Laboratory (MIT LL) to modernize and transform the existing Homeland Security Exercise and Evaluation Program (HSEEP) Toolkit into an agile enterprise platform for integrating existing and future capabilities in support of HSEEP. The architecture for the new HSEEP enterprise platform (HSEEP-EP) focuses on a service oriented approach that relies on emerging web-based technologies to create an innovative and flexible platform for the development and consumption of HSEEP capabilities. This paper provides a technical description of the architecture, core services, and methods for interfacing with architecture components. This paper will also discuss concepts for fielding and transitioning the new HSEEP Toolkit to DHS and State/Local communities.','Homeland Security (HST), 2012 IEEE Conference on Technologies for',1,'A. Norige; S. Yenson; G. Elkin; J. Mapar; J. Legary','ieee/service oriented architecture security.csv','ieee','\0'),(239,'QoS-Based Reputation Feedback Fusion under Unknown Correlation','2014','0','','Abstract Due to the flood of web services that offer similar functionalities, service consumers are left with a challenging selection decision. A popular approach to assist them with the service selection task is based on the reputation of web services. However, the propagation of reputation feedback in an open and distributed system of web services yield correlated reputation estimates. The existing web service reputation literature still lacks a system that handles the aggregation of reputation feedback under unknown correlation. To fill this gap, we employ two data fusion algorithms, the covariance intersection and ellipsoidal intersection, to aggregate QoS-based reputation feedback. Our experimental results endorse the advantageous capability and scalability of the proposed methods in aggregating reputation estimates, and show an enhanced performance when compared with the Kalman filter method.','',1,'Mohamad MehdiNizar BouguilaJamal Bentahar','springer/service oriented architecture security.csv','springer','\0'),(240,'Security oriented service composition: A framework','2012','2','Software service;security compatibility;security ontology;security properties','This paper argues that in order to address the challenges of security compatibility checking between the client\'s software and the service software in a service oriented software environment, the followings have to be achieved: (i) services need to be specified together with their security policies along with importance of stakeholders (users and providers), and (ii) the security compatibility needs to be analyzed in terms of security requirements and capabilities of the interacting systems at the time of service composition. With these objectives in mind, this paper proposes a framework for security compatibility of service consumptions. The framework is based on a method of abstracting security policies using an ontology, and a rule based technique for automatically checking the security compatibility between interacting software systems.','Innovations in Information Technology (IIT), 2012 International Conference on',1,'K. M. Khan; A. Erradi; S. Alhazbi; J. Han','ieee/service oriented architecture security.csv','ieee','\0'),(241,'Anti-fragile Cloud Solutions','2016','0','','Abstract To better understand how to achieve anti-fragility to downtime, the chapters of Part II discuss how to realize the four design principles and the one operational principle from Chap. 4 in different types of systems. The current chapter focuses on how to realize the principles in customer-facing web-scale solutions in the cloud. Much of the discussion is based on design and operational patterns described by Michael T. Nygard and Netflix’s realization of these patterns in its cloud-based streaming service.','',1,'Kjell Jørgen Hole','springer/microservice security.CSV','springer',''),(242,'Risk Management Lifecycle Implementation Services in SOA','2015','0','A model for IT risk management in SOA;IT Risk Management;SOA Implementation Risks;SOA Lifecycle Risks','A structured environment of IT risk management can influence an improving the flexibility and adaptability of business processes and information technology, including information systems in a secure manner. As with all other technologies, the adoption of SOA involves risk. These risks often manifest themselves during an implementation of the SOA solution and arise mainly due to insufficient detail in the SOA project. In this paper, we present the main ideas about the impact of IT risks on the life cycle of the implementation of service-oriented architecture and how we could minimize these impacts by using a model of managing IT risks.','Information Technology - New Generations (ITNG), 2015 12th International Conference on',1,'E. L. Monteiro; P. C. d. Silva','ieee/service oriented architecture security.csv','ieee',''),(243,'Sometimes It’s Better to Be STUCK! SAML Transportation Unit for Cryptographic Keys','2013','0',' SAML XML Key Transportation Key Distribution SAML Extension','Abstract Over the last decade the Security Assertion Markup Language (SAML) framework evolved to a versatile standard for exchanging security statements about subjects. Most notably, SAML facilitates the authentication of users, and is thus deployed in both Webservice (SOAP, WS-Security) and REST-based (SAML SSO webbrowser profile, SAML Bearer token in OAuth) services. This paper recommends an extension to the SAML framework which provides an easy way to transport cryptographic key material bound to assertions issued by particular subjects. The proposal fits into existing solutions and is fully compliant with the Security Assertion Markup Language, XML Digital Signature and XML Encryption standards.','',1,'Christopher MeyerFlorian FeldmannJörg Schwenk','springer/webservice security.csv','springer','\0'),(244,'Extending the MOF for the Adaptation of Hooks, Aspects, Plug-Ins and Add-Ons','2015','0',' Meta meta modeling Meta model extensions Conceptual languages Abstract syntax Meta object facility','Abstract Conceptual modeling languages are valuable means for analyzing, designing and controlling information systems. In recent years, some languages became de facto standards in their particular field of application, which simultaneously leads to an increasing demand for domain-specific extensions in order to both benefit from dissemination and apposite concepts. However, recent studies reveal a remarkable lack of methodical support for language extensibility, which hampers systematic extension design, comprehensibility and interoperability. This research article therefore aims to outline different meta model extension mechanisms based on an analogy to extension principles from the field of Software Engineering. The techniques of hooking, aspects, plug-ins and add-ons are presented and their adaptation is elaborated by the definition of additional extension packages within the Meta Object Facility (MOF) in order to provide constructs for the definition of extensible meta models.','',2,'Richard BraunWerner Esswein','springer/bpel security.csv','springer',''),(245,'QoS of Web Services Architecture','2015','0','Middleware, QoS, SOAP, Service Oriented Architecture, UDDI, Web services, XML','This paper, web services architectures gives a compatible and scalable structure for web service interactions. The rapid development of web services and applications in various domains such as B2B, e-commerce, banking has led to the best quest for design in a QoS of web service architecture that can meet industry standards. Organizations to design and develop a best suitable QoS web service architecture to meet the industry demands various QoS web service parameters, reliable, quick services required for access the web services. In this paper we proposed a modified 3-tier architecture with a new component quality service manager that can fall in the core layer (i.e middle ware technology). This new component is concerned with the most important QoS parameters such as availability, reliability, adaptability, performance, response time, security and integrity. As a case study we have taken multimedia application and infrastructural components in multimedia applications. The improved quality parameters such as bandwidth, and access time, throughput by using round robin algorithm in the web server interface applications/services. We proposed this new architecture that would help the organizations in best possible QoS service architecture solutions','',1,'M. Swami Das and A. Govardhan and D. Vijaya lakshmi','acm/service oriented architecture security.csv','acm',''),(246,'An Architecture and Reference Implementation of an Open Health Information Mediator: Enabling Interoperability in the Rwandan Health Information Exchange','2013','1',' interoperability national health information system architecture enterprise service bus health information exchange','Abstract Rwanda, one of the smallest and most densely populated countries in Africa, has made rapid and substantial progress towards designing and deploying a national health information system. One of the more challenging aspects of the system is the design of an architecture to support: interoperability between existing health information systems already in use in the country; incremental extension into a fully integrated national health information system without substantial re-engineering; and scaling, from a single district in the initial phase, to national level without requiring a fundamental change in technology or design paradigm. This paper describes the key requirements and the design of the current architecture using the ISO/IEC/IEEE 42010 standard architecture descriptions. The architecture takes an Enterprise Service Bus approach. A partial implementation and preliminary analysis of the architecture is given. Since these challenges are experienced by other developing African countries, the next steps involves creating a generic architecture that can be reused for health information exchange in other developing African countries.','',1,'Ryan CrichtonDeshendran MoodleyAnban PillayRichard GakubaChristopher J. Seebregts','springer/service oriented architecture security.csv','springer','\0'),(247,'A classification scheme for agent based approaches to dynamic optimization','2014','0',' Dynamic optimization problems (DOPs) Agent-based modeling Agent based systems Agent based dynamic optimization problem solution strategy (ABDOPSS)','Abstract Several papers in the literature employ agent-based modeling approach for providing reasonable solutions to dynamic optimization problems (DOPs). However, these studies employ a variety of agent-based modeling approaches with different strategies and features for different DOPs. On the other hand, there is an absence in the literature of a formal representation of the existing agent-based solution strategies. This paper proposes a representation scheme indicating how the solution strategies with agent-based approach can be summarized in a concise manner. We present these in a tabular form called “Agent Based Dynamic Optimization Problem Solution Strategy” (ABDOPSS). ABDOPSS distinguishes different classes of agent based algorithms (via communication type, cooperation type, dynamism domain and etc.) by specifying the fundamental ingredients of each of these approaches with respect to problem domain (problems with dynamic objective functions, constraints and etc.). This paper also analyzes 18 generic studies in the literature employing agent-based modeling based on ABDOPSS.','Artificial Intelligence Review',1,'Adil BaykasogluZeynep D. U. Durmusoglu','springer/soa security.csv','springer','\0'),(248,'Proceedings of the 2nd International Workshop on Enterprise Modelling and Information Systems Architectures - Concepts and Applications, EMISA 2007','2007','','','The proceedings contain 15 papers. The topics discussed include: EA model as central part of the transformation into a more flexible and powerful organisation; generating visualizations of enterprise architectures using model transformations; architecture principles - a regulative perspective on enterprise architecture; an approach to use executable models for testing; a federated approach to enterprise architecture model maintenance; modelling of cross-organizational business processes - current methods and standards; service oriented security architecture; using BPEL as a workflow engine for local enterprise applications; design and usage of an it-system for workplace management with ergonomic analysis under health protection aspects; on industrial use of requirements engineering techniques; BPMN-Q: a language to query business processes; UML 2 profiles for ontology charts and diplans issues on metamodelling; viewpoint-based meta model engineering; and OBSE - an approach to ontology-based software engineering in the practice.','',2,'[No author name available]','scopus/bpmn security.csv','scopus','\0'),(249,'Cloud computing in e-Science: research challenges and opportunities','2014','3',' e-Science e-Research Informatics Cloud computing Semantic web Grid computing Workflow Digital research Big data','Abstract Service-oriented architecture (SOA), workflow, the Semantic Web, and Grid computing are key enabling information technologies in the development of increasingly sophisticated e-Science infrastructures and application platforms. While the emergence of Cloud computing as a new computing paradigm has provided new directions and opportunities for e-Science infrastructure development, it also presents some challenges. Scientific research is increasingly finding that it is difficult to handle “big data” using traditional data processing techniques. Such challenges demonstrate the need for a comprehensive analysis on using the above-mentioned informatics techniques to develop appropriate e-Science infrastructure and platforms in the context of Cloud computing. This survey paper describes recent research advances in applying informatics techniques to facilitate scientific research particularly from the Cloud computing perspective. Our particular contributions include identifying associated research challenges and opportunities, presenting lessons learned, and describing our future vision for applying Cloud computing to e-Science. We believe our research findings can help indicate the future trend of e-Science, and can inform funding and research directions in how to more appropriately employ computing technologies in scientific research. We point out the open research issues hoping to spark new development and innovation in the e-Science field.','The Journal of Supercomputing',1,'Xiaoyu YangDavid WallomSimon WaddingtonJianwu WangArif ShaonBrian MatthewsMichael WilsonYike GuoLi GuoJon D. BlowerAthanasios V. VasilakosKecheng LiuPhilip Kershaw','springer/soa security.csv','springer','\0'),(250,'8th IFIP WG 8.1. Working Conference on Practice of Enterprise Modeling, PoEM 2015','2015','','','The proceedings contain 33 papers. The special focus in this conference is on Evolving Enterprises and Securing Enterprises. The topics include: Towards guiding the use of enterprise modeling in the context of business and IT alignment; towards a generic goal model to support continuous improvement in SME construction companies; a risk-based approach supporting enterprise architecture evolution; pattern-based security requirements derivation from secure tropos models; analyzing attack strategies through anti-goal refinement; eliciting security requirements for business processes of legacy systems; testing a selection of BPMN tools for their support of modelling guidelines; consistently formalizing a business process and its properties for verification; dealing with risks and workarounds; case-based development of consumer preferences using brand personality and values co-creation; modelling users feedback in crowd-based requirements engineering; factors influencing productization of enterprise modeling; methods in designing and developing capabilities; benefits of enterprise architecture management; using value models for business risk analysis in e-service networks; analyzing trust requirements in socio-technical systems; an experience report of improving business process compliance using security risk-oriented patterns; towards an OSS adoption business impact assessment; the concepts of decision making; modeling DevOps deployment choices using process architecture design dimensions; simplicity is not simple; agile modelling method engineering and towards DW support for formulating policies.','',2,'[No author name available]','scopus/bpmn security.csv','scopus',''),(251,'Anomaly Detection with HTM','2016','0','','Abstract We model information and communications technology (ICT) systems as complex adaptive systems. Since we cannot hope to predict all future incidents in complex systems, real-time monitoring is needed to detect local failures before they propagate into global failures with an intolerable impact. In particular, monitoring is required to determine the consequences of injecting artificial errors into production systems and to learn how to avoid or limit the impact of future incidents.','',1,'Kjell Jørgen Hole','springer/microservice security.CSV','springer',''),(252,'Trustworthy Service Selection Using Long-Term Monitoring of Trust Contracts','2013','0','Distributed Systems;Service Contract;Service Selection;Software Services;Trust','Composing a distributed software system out of independently developed and publically hosted services leads to savings in effort, time, and cost. Such an approach requires a careful selection of a set of services for realizing a particular distributed software system. Hence, identifying and quantifying the trust of such publically available services becomes a prerequisite for composing distributed software systems. The quantification of the trust associated with a service is a challenging task due to the subjective nature of trust, lack of standards, and associated uncertainty. Moreover, the trust of a service is not a static value and should be updated periodically. To achieve a proper quantification of a trust associated with a service, there is a need to periodically collect, monitor, and aggregate various evidences available about that service. This paper augments previously defined quantification of the trust by monitoring and aggregating various available evidences. This enhanced approach is used to improve the service selection process. Publically available mobile app services from the Android marketplace are utilized, as the dataset, to empirically validate this approach.','Enterprise Distributed Object Computing Conference (EDOC), 2013 17th IEEE International',1,'L. S. Gallege; D. U. Gamage; J. H. Hill; R. R. Raje','ieee/service oriented architecture security.csv','ieee','\0'),(253,'A framework for medical and health care databases and data warehouses conceptual modeling support','2016','0',' Medical Databases Medical data warehouses UML extension UML profile Medical image annotation','Abstract To improve their knowledge of diseases, physicians need to study and learn from their patients and from their related medical records. Physicians continue to initiate this learning process by taking into account the history of the patient’s medical problems and physical examination findings in the patient’s medical record, which illustrates the importance of medical and health care databases. In other side, the evolution of medical data volume needs to be modeled using data warehouses. A medical data warehouse is a particular database targeted toward decision support. It takes data from various medical databases and other data sources and transforms it into new structures that fit better for the task of performing the decision making. For this reason, the medical database and data warehouse models needed to produce a formal description, a conceptual schema of all the data generated in medical and health care institutions, and how all of the data were related. However, it is still difficult to find references models, since classical conceptual modeling does not incorporate the specificity of the medical field. The design phase is the most important activity in the successful building of a database and a data warehouse. To address these shortcomings, this paper proposes a new modeling framework based on an UML profile, called medical profile. This profile was proposed to standardize the task of medical data modeling, using the Unified Modeling Language (UML) extensibility mechanisms. Our proposal is aligned with model driven architecture (MDA), thus permitting to define and clarify all concepts and elements related to medical field including the medical image annotation process. To show the benefits of our profile, we develop an example related to the medical image annotation process. Finally, we also need to verify whether our framework is considered by the specialists as a potential aid. We evaluate our framework impact by inquiring the specialists about the degree of confidence in our framework. By analyzing the obtained results, we can argue that the proposed framework presented a high acceptance regarding the specialists’ interests.','Network Modeling Analysis in Health Informatics and Bioinformatics',1,'Mouhamed Gaith AyadiRiadh BouslimiJalel Akaichi','springer/soa security.csv','springer',''),(254,'Decentralized Web Service Orchestration: A Reflective Approach','2008','0','BPEL4WS, composite web services, decentralized orchestration, reflection, throughput, web service orchestration','Proceedings of the 2008 ACM Symposium on Applied Computing','',2,'Ricardo Jiménez-Peris and Marta Patiño-Martínez and Ernestina Martel-Jordán','acm/bpel security.csv','acm','\0'),(255,'Cognitive mechanism related to line drawings and its applications in intelligent process of visual media: a survey','2016','1',' line drawings cognitive computation visual media intelligent process','Abstract Line drawings, as a concise form, can be recognized by infants and even chimpanzees. Recently, how the visual system processes line-drawings attracts more and more attention from psychology, cognitive science and computer science. The neuroscientific studies revealed that line drawings generate similar neural actions as color photographs, which give insights on how to efficiently process big media data. In this paper, we present a comprehensive survey on line drawing studies, including cognitive mechanism of visual perception, computational models in computer vision and intelligent process in diverse media applications. Major debates, challenges and solutions that have been addressed over the years are discussed. Finally some of the ensuing challenges in line drawing studies are outlined.','Frontiers of Computer Science',1,'Yongjin LiuMinjing YuQiufang FuWenfeng ChenYe LiuLexing Xie','springer/soa security.csv','springer',''),(256,'A High-Level Service Composition Model for Building Applications on Sensor Networks','2013','1','Business Process;Sensor Networks;Service Oriented Analysis;Service orchestration;abstract composition','Recently, Sensor Networks (SNs) have become an emergent technology for various applications areas such as security and surveillance applications, traffic control, logistics, energy control in public and private buildings, etc. However, designing and constructing new applications using these technologies are still a very hard task. There is no standard API to access to the large variety of sensors and actuators which have also very different functionalities and capabilities. Applications are in general very specific and tightly coupled with the underlying infrastructure. Reuse is also very difficult or even impossible. This paper aims to provide a high-level environment based on a three levels model to program such infrastructure. At the lower level, sensors and actuators are encapsulated by lightweight web services, accessible through gateways. On top of this layer, abstract blocks denote sensors and actuators participating in the composite service along with a semantic description. Finally, these blocks are orchestrated as abstract graphs describing complex applications. This environment has been prototyped using service standards such as BPMN and BPEL within the context of the VITRO European project and validated by several use cases.','Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE), 2013 IEEE 22nd International Workshop on',2,'Z. Movahedi; B. Defude','ieee/bpel security.csv','ieee','\0'),(257,'Monitoring Web Services for Conformance','2013','0','AOP;ActiveBPEL;MREG;Service monitoring;WS-Policy','In this article, we paid more attention on researching how to monitor Web services for checking conformance, where an AOP-based run-time monitoring framework was proposed and explored. In the framework, WS-Policy was firstly used to express the monitoring requirement, then monitoring requirement was described as AOP monitoring logic, Active BPEL engine was extended to weave the monitoring logic and the service core execution logic dynamically, a checking algorithm was introduced to analyze whether the user\'s monitoring requirement was satisfied according to MREG (Monitoring Requirement Expression Graph) and EMSC (Extended Message Sequence Charts), and finally, some control and modification measures were adopted in order to rise the quality of the service composition.','Service Oriented System Engineering (SOSE), 2013 IEEE 7th International Symposium on',2,'B. Li; S. Ji; L. Liao; D. Qiu; M. Sun','ieee/bpel security.csv','ieee','\0'),(258,'On the Practicality of Practical Byzantine Fault Tolerance','2012','0',' Byzantine Fault Tolerance Reliability Distributed Systems','Abstract Byzantine Fault Tolerant (BFT) systems are considered to be state of the art with regards to providing reliability in distributed systems. Despite over a decade of research, however, BFT systems are rarely used in practice. In this paper, we describe our experience, from an application developer’s perspective, trying to leverage the publicly available, highly- studied and extended “PBFT” middleware (by Castro and Liskov), to provide provable reliability guarantees for an electronic voting application with high security and robustness needs. We describe several obstacles we encountered and drawbacks we identified in the PBFT approach. These include some that we tackled, such as lack of support for dynamic client management and leaving state management completely up to the application. Others still remaining include the lack of robust handling of non-determinism, lack of support for web-based applications, lack of support for stronger cryptographic primitives, and more. We find that, while many of the obstacles could be overcome, they require significant engineering effort and time and their performance implications for the end-application are unclear. An application developer is thus unlikely to be willing to invest the time and effort to do so to leverage the BFT approach.','',1,'Nikos ChondrosKonstantinos KokordelisMema Roussopoulos','springer/service oriented architecture security.csv','springer','\0'),(259,'Design proposal of a photonic multicast Bloom filter node','2012','1',' Bloom filter Information-centric networking All-optical processing Optical packet switching','Abstract This paper presents the design of a hardware accelerated forwarding architecture for processing packets that are labelled with a Bloom Filter (BF)-based header. The architecture consists of a conventional broadcast-and-select all-optical switching fabric, composed of Semiconductor Optical Amplifiers (SOAs), and a hardware-based Serial Processing Unit (SPU) that uses an on-the-fly processing mechanism to forward optical packets. The proposed SPU avoids the use of memory units and uses a small number of logic gates that facilitate a straightforward all-optical implementation using photonic logic gates. The SPU also supports flexible wavelength multicasting by allowing each incoming wavelength to be forwarded to any number of output ports. Contention resolution is provided by the introduction of an Optical Delay Line (ODL) that provides a single-packet optical buffer if the output channel is occupied.','Photonic Network Communications',1,'M. F. AL-NadayR. C. Almeida Jr.K. M. GuildM. J. Reed','springer/soa security.csv','springer','\0'),(260,'RT-SPDM: Real-Time Security, Privacy and Dependability Management of Heterogeneous Systems','2015','1',' SOAs DPWS Event calculus Formal methods Security validation Metrics composition JADE Jess OSGi Policy-based access control','Abstract The need to manage embedded systems, brought forward by the wider adoption of pervasive computing, is particularly vital in the context of secure and safety-critical applications. This work presents RT-SPDM, a framework for the real-time management of devices populating ambient environments. The proposed framework utilizes a formally validated approach to reason the composability of heterogeneous embedded systems, evaluate their current security, privacy and dependability levels based on pre-defined metrics, and manage them in real-time. An implementation of Event Calculus is used in the Jess rule engine in order to model the ambient environment context and the rule-based management procedure. The reasoning process is modeled as an agent’s behavior and applied on an epistemic multi-agent reasoner for ambient intelligence applications. Agents monitor distinct embedded systems and are deployed as OSGi bundles to enhance the real-time management of embedded devices. A Service Oriented Architecture is adopted, through the use of the Devices Profile for Web Services standard, in order to provide seamless interaction between the framework’s entities, which exchange well-formed information, determined by the OASIS CAP standard. Proof-of-concept implementations of all entities are developed, also investigating user-friendly GUIs for both the front-end and back-end of the framework. A preliminary performance evaluation on typical embedded devices confirms the viability of the proposed approach.','',1,'Konstantinos FysarakisGeorge HatzivasilisIoannis AskoxylakisCharalampos Manifavas','springer/service oriented architecture security.csv','springer','\0'),(261,'Web Services Verification and Prudent Implementation','2012','1',' Web Services Security Policy Automated deployment','Abstract Alice&Bob notation is widely used to describe conversations between partners in security protocols. We present a tool that compiles an Alice&Bob description of a Web Services choreography into a set of servlets. For that we first compute for each partner an executable specification as prudent as possible of her role in the choreography. This specification is expressed in ASLan language, a formal language designed for modeling Web Services tied with security policies. Then we can check with automatic tools that this ASLan specification verifies some required security properties such as secrecy and authentication. If no flaw is found, we compile the specification into Java servlets that real partners can use to execute the choreography.','',2,'Tigran AvanesovYannick ChevalierMohammed Anis MekkiMichaël Rusinowitch','springer/bpel security.csv','springer','\0'),(262,'Secure and authenticated access to LLN resources through policy constraints','2015','','Body sensor networks; DPWS; Policy-based access control; SAML; Security; Web services; XACML','Ubiquitous devices comprising several resource-constrained sensors and actuators while having the long desired Internet connectivity, are becoming part of many solutions that seek to enhance user’s environment smartness and quality of living. Their intrinsic resource limitations however constitute critical requirements, such as security, a great challenge. When these nodes are associated with applications that might have an impact in user’s privacy or even become life threatening, the security issues are of primary concern. Access to these resources should be appropriately controlled to ensure that such wearable nodes are adequately protected. On the other hand, it is very important to not restrict access to only a very closed group of entities. This work presents a service oriented architecture that utilizes policy-based, unified, cross-platform and flexible access control to allow authenticated entities consume the services provided by wearable nodes while protecting their valuable resources. © IFIP International Federation for Information Processing 2015.','',1,'Rantos K., Fysarakis K., Soultatos O., Askoxylakis I.','scopus/service oriented architecture security.csv','scopus','\0'),(263,'Data encryption framework model with watermark security for data storage in public cloud model','2014','2','Cloud Data Storage; Cloud Encryption; Data Confidency; Data Privacy; Encryption Model; Watermark Security','Cloud computing technology is a new concept of providing dramatically scalable and virtualized resources. It implies a SOA (Service Oriented Architecture) type, reduced information technology overhead for the end level user, greater flexibility model, reduced total cost of ownership and on-demand service providing structure. From the user point of view, one of the main concerns is cloud security from the unknown threats. The lack of physical access to servers constitutes a completely new and disruptive challenge for investigators. The Clients can store, transfer or exchange their data using public cloud model. This paper represents the encryption method for public cloud and also the cloud service provider\'s verification mechanism using the third party auditors with framework model. The Cloud Data Storage is one of the mandatory services which are acquiring in this rapid development business world. © 2014 IEEE.','',1,'Boopathy D., Sundaresan M.','scopus/service oriented architecture security.csv','scopus','\0'),(264,'SLA Management & Monitoring Based-eTOM and WS-Composite for IMS Networks','2011','1','','The scope of IMS QoS management is limited to session initialization and QoS provisioning, thus lacking follow-up or monitoring functionality; neither does it tackle user differentiation. A tempting approach would be to leverage the standard 3GPP architecture by Assurance services based on TMForum\'s eTOM framework. This scenario would however expose a set of general business processes and would require a projection of IMS processes towards the eTOM. The work presented here follows this strategy, providing monitoring functionality to IMS services based on eTOM processes able to provide SLA assessment and Assurance services. The distributed architecture involves the BPEL language for orchestration and SOA components.','New Technologies, Mobility and Security (NTMS), 2011 4th IFIP International Conference on',2,'B. Raouyane; M. Errais; M. Bellafkih; D. Ranc','ieee/bpel security.csv','ieee','\0'),(265,'Enabling Privacy-Preserving Image-Centric Social Discovery','2014','5','Cloud computing;Image;Privacy-preserving;Social discovery','The increasing popularity of images at social media sites is posing new opportunities for social discovery applications, i.e., suggesting new friends and discovering new social groups with similar interests via exploring images. To effectively handle the explosive growth of images involved in social discovery, one common trend for many emerging social media sites is to leverage the commercial public cloud as their robust backend data center. While extremely convenient, directly exposing content-rich images and the related social discovery results to the public cloud also raises new acute privacy concerns. In light of the observation, in this paper we propose a privacy-preserving social discovery service architecture based on encrypted images. As the core of such social discovery is to compare and quantify similar images, we first adopt the effective Bag-of-Words model to extract the \"visual similarity content\" of users\' images into image profile vectors, and then model the problem as similarity retrieval of encrypted high-dimensional image profiles. To support fast and scalable similarity search over hundreds of thousands of encrypted images, we propose a secure and efficient indexing structure. The resulting design enables social media sites to obtain secure, practical, and accurate social discovery from the public cloud, without disclosing the encrypted image content. We formally prove the security and discuss further extensions on user image update and the compatibility with existing image sharing social functionalities. Extensive experiments on a large Flickr image dataset demonstrate the practical performance of the proposed design. Our qualitative social discovery results show consistency with human perception.','Distributed Computing Systems (ICDCS), 2014 IEEE 34th International Conference on',1,'X. Yuan; X. Wang; C. Wang; A. Squicciarini; K. Ren','ieee/service oriented architecture security.csv','ieee','\0'),(266,'Smart Cities via Data Aggregation','2014','0',' Resilient IoT Adaptive and scalable sensing Social IoT Smart city sensing toolkit Sensing zoom-in','Abstract Cities have an ever increasing wealth of sensing capabilities, recently including also internet of things (IoT) systems. However, to fully exploit such sensing capabilities with the aim of offering effective city-sensing-driven applications still presents certain obstacles. Indeed, at present, the main limitation in this respect consists of the vast majority of data sources being served on a “best effort” basis. To overcome this limitation, we propose a “resilient and adaptive IoT and social sensing platform”. Resilience guarantees the accurate, timely and dependable delivery of the complete/related data required by smart-city applications, while adaptability is introduced to ensure optimal handling of the changing requirements during application provision. The associated middleware consists of two main sets of functionalities: (a) formulation of sensing requests: selection and discovery of the appropriate data sources; and (b) establishment and control of the necessary resources (e.g., smart objects, networks, computing/storage points) on the delivery path from sensing devices to the requesting applications. The middleware has the intrinsic feature of producing sensing information at a certain level of detail (geographical scope/timeliness/accuracy/completeness/dependability) as requested by the applications in a given domain. The middleware is assessed and validated at a proof-of-concept level through innovative, dependable and real-time applications expected to be highly reproducible across different cities.','Wireless Personal Communications',1,'Javier PoncelaPanagiotis VlacheasRaffaele GiaffredaSuparna DeMassimo VecchioSeptimiu NechiforRaquel BarcoMari Carmen Aguayo-TorresVera StavroulakiKlaus MoessnerPanagiotis Demestichas','springer/service oriented architecture security.csv','springer','\0'),(267,'A smart citizen healthcare assistant framework','2013','1',' Health informatics Social care systems Personal health assistance service Resident assessment instrument Minimum data set Care plan u_Health m_Health Personal health records Enterprise mashup Distributed database management system','Abstract This paper focuses on the development of a citizen-oriented lifelong healthcare assistant system, which will support not only health Care Delivery Organizations (CDOs) but also health care providers. In other words this work proposes an u_Health system that will enhance not only the health care services but it will also provide individuals with the opportunity to manage their health needs via a “Five Cs” comprehensive and consistent scheme. Its goal is to take advantage of the ongoing emerging technologies by including them in the process of healthcare with the synergy among health experts’ and the continuous interactive-exchange of knowledge and information in connection with the providers’ and the users’ experiences. Acting in this direction, the smart citizen healthcare assistant ( sCHcA ) framework proposes the infrastructure and the tools necessary in order to achieve the continuous monitoring and provision of care no matter where the individual may be. Specifically, this article presents a platform for a mobile mashup system that can be established on a CDO server and it will extend to a group of interrelated widgets that will work as a mobile service. The system will be able to create, install and operate as an integrated construction that will monitor and gather data from various health sensors and then send them to the CDO server and further may implement individuals’ health matters. Healthcare professionals and organizations can further exploit this novel integrated tele-monitoring mechanism. Moreover, they may also utilize it as a ubiquitous individual home health care service and facilitate vulnerable groups, those living in remote areas, patients suffering from incurable diseases and long-term patients.','Health and Technology',1,'Stella C. Christopoulou','springer/soa security.csv','springer','\0'),(268,'262--264','2012','0','','Automatic recognition of people and their activities has very important social implications, because it is related to the extremely sensitive topic of civil liberties. Society needs to address this issue of automatic recognition and find a balanced solution that is able to meet its various needs and concerns. In the post 9/11 period, population security and safety considerations have given rise to research needs for identification of threatening human activities and emotional behaviours.Timely identification of human intent is one of the most challenging areas of \"all-hazards\" risk assessment in the protection of critical infrastructure, business continuity planning and community safety. The \"all-hazards\" approach is used extensively by the public and private sector, including Public Safety Canada (PS Canada -- formerly PSEPC), Emergency Management Ontario (EMO), US Federal Emergency Management Agency (FEMA) and US Department of Homeland Security (DHS).There is a clear need for industry and the research community to addresses fundamental issues involved in the prevention of human-made disasters, namely the variable context-dependent, real-time detection/identification of potential threatening behaviour of humans, acting individually or in crowded environments.Such an industry and academia forum will have to discuss development and commercialization of new multimodal (video and infrared, voice and sound, RFID and perimeter intrusion) intelligent sensor technologies for location and socio-cultural context-aware security risk assessment and decision support in human-crowd surveillance applications in environments such as school campuses, hospitals, shopping centers, subways or railway stations, airports, sports and artistic arenas etc. Due to the complexity of the surveillance task, there is a clear need for the development of a distributed intelligent surveillance system architecture, which combines visual and audio surveillance based on wireless sensor nodes equipped with video or infrared (IR) cameras, audio detectors, or other object detection and motion sensors with location aware wireless sensor network solutions. The integration of visual, sound and radio tracking methods results in a highly intelligent, proactive, and adaptive surveillance and security solution sensor networks. Task-directed sensor data collection and observation planning algorithms need to be developed to allow for a more elastic and efficient use of the inherently limited sensing and processing capabilities. Each task a sensor has to carry out determines the nature and the level of the information that is actually needed. There is a need for \"selective environment perception\" methods that focus on object parameters that are important for the specific decision to be made for the task at hand and avoid wasting effort to process irrelevant data.Multisensor data fusion techniques should be investigated for the dynamic integration of the multi-thread flow of information provided by the heterogeneous network of surveillance sensors into a coherent multimodal model of the monitored human crowd.In the context of crowds, robust tracking of people represents an important challenge. The numerous sources of occlusions and the large diversity of interactions that might occur make difficult the long-term tracking of a particular individual over an extended period of time and using a network of sensors. Realtime image processing and computer-vision algorithms need to be studied for the identification, tracking and recognition of gait and other relevant body-language patterns of the human agents who can be deemed of interest for security reasons. Real-time signal processing algorithms have to be designed for the identification and evaluation of environmental and human-subject multimodal parameters (such as human gait, gestures, facial emotions, human voice, background sound, ambient light, etc.) that provide the contextual information for the specific surveillance activity.A multidisciplinary, context-aware, situation-assessment system, including human behaviour, cognitive psychology, multicultural sociology, learning systems, artificial intelligence, distributed multimedia and software design elements, has to be ultimately developed for the real-time evaluation of the activity and emotional behaviour of the human subjects identified as being potentially of security interest in the monitored dynamic environment.The development of such a complex system requires the seamless integration of new and improved surveillance techniques and methodologies supporting both functional and non functional requirements for surveillance networks. Functional requirements are signal processing functions and data fusion, archiving and tracking human behaviours, assessment and interpretation functions of the data, and supporting human decision makers, among others. Non-functional requirements include interoperability, scalability, availability, and manageability.The partial and heterogeneous sensor-views of the environment have to fuse into a coherent Virtualized Reality Environment (VRE) model of the explored environment. Being based on information about real/physical world objects and phenomena, as captured by a variety of sensors, VREs have more \"real content\" than the pure Virtual Reality environments entirely based on computer simulations. The VREs model of the explored environment allows human operators to combine their intrinsic reactive-behaviour with higher-order world model representations of the immersive VRE systems.A synthetic environment will eventually be needed to provide efficient multi granularity-level function-specific feedback and human-computer interaction interfaces for the human users who are the final assessors and decision makers in the specific security monitoring situation.An ideal system should provide efficient multi granularity-level function-specific feedback for the human users who are the final assessors and decision makers in the specific security monitoring situation.The rate at which surveillance systems can currently disseminate data to evaluate new threats is mainly limited due to the developed and implemented nature of existing systems and their limited ability to operate with other systems. IBM\'s Service-Oriented Architecture (SOA) provides the much needed deployment ready solution which supports the integration of external systems developed by diverse industrial and institutional partners.','',1,'','acm/soa security.csv','acm','\0'),(269,'A novel platform architecture for web applications by spinning off end-to-end communications','2015','0','','This paper describes a demonstration of a novel architecture that frees service providers from having to design a direct connectivity mechanisms between end users. To confirm the applicability and validity of our proposed architecture, we assumed three use cases: machine-to-machine home security, content distribution service and real time network game services. The results of our implementation confirm that this architecture is versatile enough to be used for a variety of purposes.','2015 IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS)',1,'M. Mori; Y. Sueda; T. Ohba; T. Hishiki; A. Koike; M. Aihara','ieee/service oriented architecture security.csv','ieee',''),(270,'A Self-disclosure Framework for Social Mobile Applications','2014','0','','With the growing interest in social media, attention should be given to privacy and trust issues. Social applications are usually proposed and developed without clear measures related to privacy and trust issues. In this paper, we propose a framework for data sharing in social mobile applications that helps users having dynamic control of their information sharing on social networks. We also show how this framework can be implemented by means of a simulation console and an example.','2014 6th International Conference on New Technologies, Mobility and Security (NTMS)',1,'A. Ali-Eldin; J. van den Berg','ieee/service oriented architecture security.csv','ieee','\0'),(271,'Distributed Orchestration of Web Services under Security Constraints','2012','0',' Web services automatic composition security distributed orchestration formal methods','Abstract We present a novel approach to automated distributed orchestration of Web services tied with security policies. The construction of an orchestration complying with the policies is based on the resolution of deducibility constraint systems and has been implemented for the non-distributed case as part of the AVANTSSAR Validation Platform. The tool has been successfully experimented on several case-studies from industry and academia.','',2,'Tigran AvanesovYannick ChevalierMohammed Anis MekkiMichaël RusinowitchMathieu Turuani','springer/bpel security.csv','springer','\0'),(272,'A novel mechanism for secure e-tendering in an open electronic network','2013','1','Cryptography;Session key;Steganography','It is considered a good practice when traditional paper-based business documents and processes are migrated to digital systems. As evident from the past 3-4 decades of digital revolution, using available or new digital technology has plenty of advantages in achieving business objectives. Electronic Tendering (e-tendering), is one such application through which calls, proposals, bids and reviews are exchanged between interested parties for securing a project that is published via a tender management system. Few e-tendering systems exist that automate all the processes. Although, techniques have been developed to provide the basic exchange of documents and messaging service, very little research and application has been done in the area of authentication, secure exchange of data, and storage of tender applications in multi-user environments. Our work focuses on developing a holistic solution for meeting the security requirements of e-tendering system. We first investigate the main drawbacks of using SSL for such applications, and also highlight the threats, attacks and implementation issues encountered in implementing systems without SSL. In this paper we propose a novel mechanism to overcome the drawbacks, focusing on the e-tendering steps related to authentication, submission of bid proposal, data transmission and key exchange between trusted parties, and secure data storage. In each of these steps, we identify the possible attacks and propose novel ways to apply techniques so that the security needs are met. We believe that our application of techniques, use of key exchange in e-tendering, and other algorithms provides a practical mechanism for secure e-tendering in open electronic networks. The prototype we have developed shows that our framework is very usable, and could easily be adapted as a secure e-trading system in practice.','Computer Science & Education (ICCSE), 2013 8th International Conference on',1,'A. Damsika; D. Ranasinghe; D. Kulkarni','ieee/service oriented architecture security.csv','ieee','\0'),(273,'Internet of Things','2013','0',' M2M IoT WoT','Abstract This chapter addresses the Internet of Things (IoT); from the concept and fundamental characteristics to the advantages of machine-to-machine communications, as well as the key requirements for the IoT. Examples of the IoT are illustrated, including their core technologies. Architectural models for the IoT are presented to identify related functionalities. This chapter also introduces recent efforts towards standardization of the various technical aspects.','',1,'Gyu Myoung LeeNoel CrespiJun Kyun ChoiMatthieu Boussard','springer/service oriented architecture security.csv','springer','\0'),(274,'The MPI Structure of Chimere','2012','0',' ozone production Chimere domain partitioning grid computing Chemistry Transport Model','Abstract The multiscale three dimensional Chemistry and Transport Model (CTM) package Chimere has been ported onto the segment of the European Grid Initiative platform available to the Virtual Organization COMPCHEM as part of the MPI parallelization activities of the European project EGI-Inspire. The model adopted by the package, its structure, the parallel restructuring made to execute it on EGI and an analysis of some of the main factors affecting its parallel performances are illustrated and discussed.','',1,'Antonio LaganàStefano CrocchiantiGiorgio TentellaAlessandro Costantini','springer/service oriented architecture security.csv','springer','\0'),(275,'A Security-enabled Grid System for MINDS Distributed Data Mining','2014','1',' Distributed Data Mining Security-enabled Grid Access Control MINDS','Abstract Interest has been increasing in mining information from a huge amount of data for various purposes such as business processes, scientific discoveries, and security. MINDS (Minnesota INtrusion Detection System) is a tool utilizing data mining techniques to identify both known and unknown network intrusions. While performing well with a high degree of accuracy in detecting intrusions, MINDS is intrinsically limited due to its centralized design. At the same time, there are increasing needs for coordinating multiple distributed sites to find correlations of suspicious events and for sharing distributed anomaly data in different administrative domains since network intrusions become more sophisticated and harder to identify by a single site analysis. In this work, we consider a distributed model of MINDS to eliminate the limitations that the current MINDS suffers from due to its centralized nature. We utilize Grid technologies to achieve the distribution of services. In addition, we develop security frameworks for authentication and access control since it is important to preserve privacy and sensitivity of data regardless of distribution. To verify the feasibility of our approach, we also present our experimental results conducted in a local testbed with four nodes and in a wide-area setting in PlanetLab with 20 nodes geographically dispersed.','Journal of Grid Computing',1,'Seonho KimJinoh KimJon B. Weissman','springer/soa security.csv','springer','\0'),(276,'Doctoral Colloquium: Integrating Web Content into Mashups on Desktop and Mobile Devices','2012','0',' mashups web applications web technologies mobile devices','Abstract Mashups, web application hybrids that combine content from different services, are exploiting pervasiveness of the Internet and offering great value for the end user. Constantly evolving web technologies and new web services open up unforeseen possibilities for mashup development. Combining dynamic scripts with binary software is an interesting option. However, developing mashups with current methods and tools for existing deployment environments is challenging. This work concentrates on these challenges and finds ways to solve and circumvent issues related to mashups. Another important topic is analyzing the impact of new web technologies on mashup development. This research presents the mashups as a new breed of web applications that are intended for parsing the web content into easily accessed form on both regular computers as well as on other platforms, e.g. on embedded devices.','',1,'Arto Salminen','springer/service oriented architecture security.csv','springer','\0'),(277,'Composition and Execution of Secure Workflows in WSRF-Grids','2008','2','BPEL;Business Process Management;Grid Computing;Security;WSRF;Workflow','BPEL is the de-facto standard for business process modeling in today\'s enterprises and is a promising candidate for the integration of business and Grid applications. While BPEL works well for traditional web services, it has a number of drawbacks with respect to the more complex world of WSRF- based Grid computing, especially where security is concerned. In this paper, a solution that extends the BPEL security approach to encompass secure Grid application interactions is presented. The proposed approach is capable of handling both web service and Grid service resources and their corresponding security mechanisms. The BPEL language is extended by security-related settings. An implementation of a GSI-compliant BPEL engine that can also manage the lifetime of proxy certificates is presented.','Cluster Computing and the Grid, 2008. CCGRID \'08. 8th IEEE International Symposium on',2,'T. Dörnemann; M. Smith; B. Freisleben','ieee/bpel security.csv','ieee','\0'),(278,'A test-based security certification scheme for Web services','2013','11','Model-based testing; Security certification; Service-Oriented Architecture; Symbolic transition systems; Web services','The Service-Oriented Architecture (SOA) paradigm is giving rise to a new generation of applications built by dynamically composing loosely coupled autonomous services. Clients (i.e., software agents acting on behalf of human users or service providers) implementing such complex applications typically search and integrate services on the basis of their functional requirements and of their trust in the service suppliers. A major issue in this scenario relates to the definition of an assurance technique allowing clients to select services on the basis of their nonfunctional requirements and increasing their confidence that the selected services will satisfy such requirements. In this article, we first present an assurance solution that focuses on security and supports a test-based security certification scheme for Web services. The certification scheme is driven by the security properties to be certified and relies upon a formal definition of the service model. The evidence supporting a certified property is computed using a model-based testing approach that, starting from the service model, automatically generates the test cases to be used in the service certification. We also define a set of indexes and metrics that evaluate the assurance level and the quality of the certification process. Finally, we present our evaluation toolkit and experimental results obtained applying our certificationsolution to a financial service implementing the Interactive Financial eXchange (IFX) standard. © 2013 ACM.','',1,'Anisetti M., Ardagna C.A., Damiani E., Saonara F.','scopus/service oriented architecture security.csv','scopus','\0'),(279,'Reusability of Data Flow Designs in Complex CSCL Scripts: Evaluation Results from a Case Study','2012','1',' reusability data flow complex CSCL scripts workflow','Abstract Several approaches have addressed the consistency and automatic enactment dimensions of CSCL scripts with data flow, but they have not appropriately tackled the problem of reusing such learning designs. For instance, workflow-based solutions such as LeadFlow4LD only capture particular case behaviors, instead of describing generic data flow situations. This limitation hinders the reusability of these designs because the workflow needs to be adapted for specific technical, teaching and social contexts. This adaptation is complex and time consuming, especially with a large number of students. In order to show the relevance of this problem, this paper analyzes the LeadFlow4LD approach through a real-world complex CSCL script. The study characterizes the reuse effort of CSCL scripts with and without data flow definition, in different social context settings. The findings illustrate how the data flow representation may affect the particularization of complex CSCL scripts, and pave the path for alternative, higher abstraction level representations of data flows, to reduce the reuse effort.','',2,'Osmel BordiésEloy VillasclarasYannis DimitriadisAdolfo Ruiz-Calleja','springer/bpmn security.csv','springer','\0'),(280,'Towards a formal analysis of dynamic reconfiguration in WS-BPEL','2013','2','π-calculus; BP-calculus; dynamic reconfiguration; formal methods; RBAC; WS-BPEL','The BP-calculus is a formalism based on the π-calculus, which is encoded in WS-BPEL. The BP-calculus is intended to specifically model and verify Service Oriented Applications (SOA). One important feature of SOA is the ability to compose services which may evolve dynamically or at runtime. Dynamic reconfiguration of services increases their availability but, simultaneously, it complicates validation, verification, and evaluation to some extent. In this paper, we formally model and analyze dynamic reconfigurations and their requirements in BP-calculus and we show how reconfigurable components can be modeled using handlers that are essential parts of WS-BPEL language. Besides, we consider security rules and their formal specification as required to implement dynamic reconfiguration. © 2013-IOS Press and the authors. All rights reserved.','',2,'Abouzaid F., Mazzara M., Mullins J., Qamar N.','scopus/bpel security.csv','scopus','\0'),(281,'Prioritizing Consumer-Centric NFPs in Service Selection','2014','0',' Service Oriented Architecture (SOA) Web Services Non- Functional Properties (NFPs) Service Selection','Abstract Service Selection continues to be a challenge in Service Oriented Architecture (SOA). In this paper, we propose a consumer-centric Non- Functional Properties (NFP) based services selection approach that relies on an externally-validated set of NFP descriptions integrated with the Web Service Description Language (WSDL). Our approach is based on three steps: (1) a Filtering step based on Hard NFPs defined in the consumer’s request, (2) a Matchmaking step to discover the functionally-equivalent services, and (3) a Ranking step that sorts the resulting set of services based on the Soft NFPs defined by the consumer. The evaluation of our proposed service selection approach shows that the prioritization of NFP usage enhances the performance time of the service selection process while satisfying the functional and the nonfunctional requirements of the consumer.','',2,'Hanane BechaSana Sellami','springer/bpel security.csv','springer',''),(282,'Secure communication using dynamic VPN provisioning in an Inter-Cloud environment','2012','2','','Most of the current cloud computing platforms offer Infrastructure as a Service (IaaS) model, which aims to provision basic virtualised computing resources as on-demand and dynamic services. Nevertheless, a single cloud does not have limitless resources to offer to its users, hence the notion of an Inter-Cloud enviroment where a cloud can use the infrastructure resources of other clouds. However, there is no common framework in existence that allows the service owners to seamlessly provision even some basic services across multiple cloud service providers, albeit not due to any inherent incompatibility or proprietary nature of the foundation technologies on which these cloud platforms are built. In this paper we present a novel solution which aims to cover a gap in a subsection of this problem domain. Our solution offers a security architecture that enables service owners to provision a dynamic and service-oriented secure virtual private network on top of multiple cloud IaaS providers. It does this by leveraging the scalability, robustness and flexibility of peer-to-peer overlay techniques to eliminate the manual configuration, key management and peer churn problems encountered in setting up the secure communication channels dynamically, between different components of a typical service that is deployed on multiple clouds. We present the implementation details of our solution as well as experimental results carried out on two commercial clouds.','2012 18th IEEE International Conference on Networks (ICON)',1,'A. Sajjad; A. Zisman; M. Rajarajan; S. K. Nair; T. Dimitrakos','ieee/service oriented architecture security.csv','ieee','\0'),(283,'Enterprise Application Integration - The Cloud Perspective','2013','0',' Enterprise application integration cloud integration integration styles enterprise service bus open-source ESB systems integration patterns messaging business process integration','Abstract So far, asynchronous messaging has proven to be the best strategy for enterprise application integration (EAI) success. However, building and deploying messaging solutions causes several problems for developers and new technologies and computing paradigms as cloud computing demand for new solutions. There are more than sixty enterprise integration patterns that are designed to effectively develop messaging solutions for enterprises. The tutorial introduces the visual notation framework to describe large-scale integration solutions across different systems and technologies. This includes examples covering a variety of different integration styles and techniques. In a case study we illustrate the application of the patterns in practice and review existing and emerging standards. Also we try to shed light into the future of EAI. In particular cloud integration is an upcoming trend which is discussed in the tutorial, addressing advantages and limitations of this and other modern EAI strategies and architectures. Looking at open-source solutions for enterprise service buses and messaging systems, we also provide practical advice on designing code that connects an application to a messaging system. This provides information to help the practitioner to design EAI or cloud integration solutions by applying the introduced knowledge.','',2,'Jörg LässigMarkus Ullrich','springer/bpel security.csv','springer','\0'),(284,'Formal Consistency Verification Between BPEL Process and Privacy Policy','2006','6','business process, consistency verification, graph transformation, privacy policy','Proceedings of the 2006 International Conference on Privacy, Security and Trust: Bridge the Gap Between PST Technologies and Business Services','',2,'Yin Hua Li and Hye-Young Paik and Boualem Benatallah','acm/bpel security.csv','acm','\0'),(285,'Embedding ‘Break the Glass’ into Business Process Models','2012','0',' Security process model annotation language immediate context','Abstract Break the Glass (BTG) is an important feature for authorization infrastructures, as it provides flexible access control in exceptional cases. Current realizations have two drawbacks: They neglect the need to manage authorization steps, and they do not take immediate process context into account. Our approach in turn embeds BTG functionality into business processes (BPs): The steps to perform BTG and the obligations compensating a BTG access for data are parts of the BPs. To support process designers in embedding BTG steps and obligations, we introduce an expressive annotation language for specifying BTG tasks for BP models. In particular, our language allows process designers to take BP context into account and to specify security constraints for role holders performing BTG tasks. Using our approach, one can efficiently specify and use context-aware BTG functionality for BPs.','',2,'Silvia von StackelbergKlemens BöhmMatthias Bracht','springer/bpmn security.csv','springer','\0'),(286,'Contracts + Goals = Roles?','2012','0',' i * Business Contracts Role Modeling Formal Methods','Abstract The concept of role has been investigated in various fields of computer science as well as social sciences. While there is no clear consensus on how roles should be represented, a survey of the literature suggests that we should address both responsibilities and rights in the modeling of roles [1]. Based on this, we argue that the responsibilities and rights of roles can be captured by leveraging the notions of business contract and goal (in the sense of the goals of an actor being constrained by the rights associated with the role played by the actor) in the realm of requirements engineering. We leverage existing work on the formalization of business contracts [2] and the formulation of goals in the i * modeling framework [3]. We devise formal techniques for reasoning about the composition and substitutability of roles and illustrate them through a running example.','',2,'Lam-Son LêAditya Ghose','springer/bpmn security.csv','springer','\0'),(287,'Design and implementation of ONVIF-based event service for DM 814x camera','2015','','camera; Event service; ONVIF; webservice','Nowadays, IP-based physical security products like IP network camera (IPNC) are becoming essential in construction of a modern security system. In order to guarantee interoperability among them, ONVIF has been a de facto standard communication framework. In addition to core specification, ONVIF defines many services. ONVIF Event service is supposed to provide notification messages to registered clients when events happen, which is an essential mechanism to be support to make IPNC intelligent. Currently, we are developing a smart IPNC based on TI DM814x media processor. In this paper, we report our efforts to implement ONVIF Event service for the smart IPNC. First, we design S/W architecture, necessary data structures, and workflow of ONVIF Event service according to ONVIF Event service specification. Then, we implement the design about ONVIF Event service by extending TI\'s IPNC reference RDK S/W package. Testing via an Open source ONVIF client verifies our implementation works properly. © 2015 IEEE.','',1,'Phan C.C., Nguyen T.B., Chung S.-T.','scopus/webservice security.csv','scopus',''),(288,'Suggestions for security technology improvement on regional power grid energy management system','2012','','Concurrent versions system (CVS); Energy management system (EMS); Regional power grid; Security configuration; Service-oriented architecture (SOA)','In view of the easily ignored safety problems in the power grid automation of the energy management system (EMS) itself, suggestions for improvement are made while verifying those for realizing the systemic alarming mechanism that is loosely coupled with the EMS platform. As the security configuration files of EMS usually lack systematic design, the safe hierarchical modular design for EMS is provided first. All the security installations are reorganized and packed based on their character and importance. The security configuration management is practiced based on the concurrent versions system (CVS). The data-mining technology is used for searching EMS fault in advance. Finally, case studies on EMS in Guangdong power grid have verified the rationality of the above-mentioned suggestions. © 2012 State Grid Electric Power Research Institute Press.','',1,'Gu H., Liu Y., Xiong W., Huang X., Yin Y.','scopus/service oriented architecture security.csv','scopus','\0'),(289,'A fine-grained context-aware access control model for health care and life science linked data','2016','0',' Context-aware access control Fine-grained Semantic scope Health care and life science linked data','Abstract Health Care and Life Sciences (HCLS) have long been a test-bed for the standards proposed by the W3C to build the Semantic Web. One of the challenges to HCLS Linked Data is access control. In this paper, we present a fine-grained context-aware access model for HCLS Linked Data based on Semantic Web tools. The model consists of two basic components: ontology base and access policy. Ontology base refers to a set of ontologies that include subject ontology, resource ontology, environment ontology, and action ontology. In the access policy module, we describe the access policy with eXtensible Access Control Markup Language (XACML) model, which allows users to achieve access rule reproduction by defining the semantic scope and inference rules among different entities. Results of the analysis indicate that indicates that our model expands the scopes of authorization rules for users. Inference of semantic authorization rules is also realized. These rules enable fine-grained access to data and meet the need for dynamic change of HCLS Linked Data. Finally, we show the process of authorization and present a system framework. Simulation experiments verify the acceptability of our model in protecting secured data.','Multimedia Tools and Applications',1,'Zhengtao LiuJiandong Wang','springer/soa security.csv','springer',''),(290,'Bioelectromagnetic simulation for everyone','2013','1',' Computational electromagnetics Software engineering Web service System design Mathematics Subject Classification 68M14 68U35','Abstract Cloud computation technologies open a new perspective for scientific computing. Sophisticated software can now be made available as an on-demand service, reducing costs of maintenance and improving availability of the software to end-users. The paper presents a web based service system for electromagnetic computations. The back-end of the system is built of open-source scientific code. The service is targeted on medical staff and electromagnetic safety engineers which usually are not familiar with electromagnetic field simulation methods but its design allows it to be extended for more demanding, scientific-oriented users. The primary goal of the system is user friendliness for medical and engineering staff combined with flexibility, scalability and extendibility for scientists developing simulation software. These goals were achieved with help of carefully designed concept of configurable usage-scenarios (workflows). The purpose of this paper is to present in detail the concept and implementation of scientific scenarios.','Computing',1,'Jacek StarzyńskiRobert SzmurłoBartosz Chaber','springer/webservice security.csv','springer','\0'),(291,'Mobile Platform for Executing Medical Business Processes and Data Collecting','2013','0',' data collecting business process electronic health record integration SOA REST','Abstract Medicine becomes more and more complex domain. The process from patient registration through to the provision of the right treatment becomes complex and sophisticated, and any mistakes or inaccuracies can have a significant consequences for both the patient and the care professionals. This paper presents a MMDCP — Medical Mobile Data Collecting Platform, which aims is to reduce the error rate and speed up the process of data collection. Since medical staff should have the access to medical data from any place of the healthcare facility, the MMDCP provides it’s users the mobility. The proposed platform also distinguishes itself with flexibility, simplicity of maintenance and integration.','',2,'Jerzy BrzezińskiAnna KobusińskaJacek KobusińskiAndrzej StroińskiKonrad Szałkowski','springer/bpel security.csv','springer','\0'),(292,'Cost-Aware Reorganization Service for Multiagent Systems','2012','0','','Abstract Reorganization in Multigent Systems is aimed at providing support to dynamically adapt the structure and the behaviour of organizations. Current reorganization approaches are mainly focused on providing reorganization solutions that take the benefits of the future organization into account but that do not include the impact of the reorganization costs in the process. Therefore, the costs for achieving future instances of an organization cannot be computed until the reorganization process ends. Organization transition provides a paradigm for relating two different instances of the same organization at different moments. In this paper, we provide a Reorganization Facilitator Service that implements a cost-aware reorganization mechanism that is based on organization transitions. This service provides the associated costs for transition from a current organization to a future organization and the sequence of steps required for this transition. The paper also presents two different examples of organization transition in order to illustrate the use of the proposed service.','',1,'Juan M. AlberolaVicente JulianAna Garcia-Fornes','springer/service oriented architecture security.csv','springer','\0'),(293,'Decidability of Equivalence of Symbolic Derivations','2012','2',' Security protocol Dolev–Yao model Observational equivalence Symbolic derivation Subterm deduction system','Abstract We give in this paper an alternative, and we believe simpler, proof of a deep result by Mathieu Baudet, namely that the equivalence of symbolic constraints is decidable for deduction systems on a finite signature modulo a subterm convergent equational theory.','Journal of Automated Reasoning',1,'Yannick ChevalierMichaël Rusinowitch','springer/service oriented architecture security.csv','springer','\0'),(294,'Self-managed micro-containers for service-based applications in the cloud','2013','','Cloud Computing; FCAPS; Mobility; Monitoring; Self-Management; Service Containers','Cloud computing enables an economic model for virtual resources provisioning based on Internet protocols. For this paradigm, service oriented Architecture (SOA) is a pillar block to build applications. For service-based applications in the cloud, management becomes a challenging task since it involves an increasing number of layers and a huge number of parameters to take into account. In this paper, we propose a framework that generates self-managed and scalable micro-containers. These micro-containers are enhanced with the resiliency of cellular organisms assuring the fault, configuration, accounting, performance and security constraints (FCAPS) described for each service. The proposed intelligent managed micro-container (IMMC) has a self-monitoring service that allows it to take decisions to enhance its scalability based on migration and replication transactions. These transactions are performed using a Mobility service offered by our IMMC. The primary evaluation that we conducted using our framework are encouraging. © 2013 IEEE.','',1,'Mohamed M., Belaid D., Tata S.','scopus/service oriented architecture security.csv','scopus','\0'),(295,'A Framework for Realizing Artifact-Centric Business Processes in Service-Oriented Architecture','2012','0','','Abstract Over the past few years, the artifact-centric approach to workflow modeling has been beneficially evidenced for both academic and industrial researches. This approach not only provides a rich insight to key business data and their evolution through business processes, but also allows business and IT stakeholders to have a single unified view of the processes. There are several studies on the modeling and its theoretical aspects; however, the possible realization of this approach in a particular technology is still in its fancy stage. Recently, there exist proposals to achieve such realization by converting from artifact-centric model to activity-centric model that can be implemented on existing workflow management systems. We argue that this approach has several drawbacks as the transformation, which is unidirectional, poses loss of information. In this paper, we propose a framework for the realization of artifact-centric business processes in service-oriented architecture achieving a fully automated mechanism that can realize the artifact-centric model without performing model transformation. A comprehensive discussion and comparison of our framework and other existing works are also presented.','',2,'Kan NgamakeurSira YongchareonChengfei Liu','springer/bpel security.csv','springer','\0'),(296,'Tailored e-Health services for the dementia care setting: a pilot study of ‘eHealthMonitor’','2015','1',' e-health Web portal Dementia Caregiver','Abstract Background The European eHealthMonitor project (eHM) developed a user-sensitive and interactive web portal for dementia care: the eHM Dementia Portal (eHM-DP). It aims to provide targeted and personalized support for informal caregivers of people with dementia in a home-based care setting. The objective of the pilot study was to obtain feedback on the eHM-DP from two user perspectives (caregivers and medical professionals), focusing on caregiver empowerment, decision aid, and the perceived benefits of the eHM-DP. Methods The study on the eHM-DP was conducted from March 2014 to June 2014. The methodological approach followed a user-participatory design with a total number of 42 participants. The study included caregivers of people with dementia and medical professionals (MPs) from the metropolitan region of Erlangen-Nürnberg (Bavaria, Germany). Study participants were interviewed face-to-face with semi-structured, written interviews. Results Caregivers indicated a high degree of perceived support by the eHM-DP and of provided decision aid. In total, 89 % of caregivers and 54 % of MPs would use the eHM-DP if access were provided. The primary benefits participants perceived were the acquisition of individualized information, computerized interaction between caregivers and MPs, empowerment in health-related decisions and comprehensive insights into the progress of the disease. Major recommendations for improving the eHM-DP encompassed: an active search functionality based on predefined terms, the implementation of a chatroom for caregivers, an upload function and alerts for MPs, as well as the overall design. Conclusions Our study is the first to have provided new insights and results on an interactive and needs-oriented web portal, endeavouring towards empowerment and assistance in decision making for caregivers as well as MPs within the realm of caring for patients with dementia. The acceptance and willingness to use the eHM-DP emphasizes the potential of eHealth services for community-based dementia care settings.','BMC Medical Informatics and Decision Making',1,'Sandra SchallerVelislava Marinova-SchmidtJasmin GobinManfred Criegee-RieckLena GriebelSabine EngelVeronika SteinElmar GraesselPeter L Kolominsky-Rabas','springer/service oriented architecture security.csv','springer',''),(297,'A mashup based framework for multi level healthcare interoperability','2012','2',' Interoperability Process interoperability Healthcare Collaboration Web 2.0 Mashups Systems design','Abstract Healthcare delivery is evolving from disease-centered to patient-centered care delivery where patients are active participants in their healthcare delivery. This calls for more communication and collaboration among all healthcare actors. There is also an increasing demand for personalized healthcare systems that provide effective information management, facilitate communication and collaboration, and support applications to meet user requirements. To address these challenges, we need to advance the integration and interoperability of healthcare applications in a controlled manner. Drawing upon a conceptual model from a collaborative care case study, we identified a set of interoperability requirements and developed a Mashup based interoperability framework. Our framework allows patients and other healthcare actors to engage in collaborative processes through online applications facilitated by mashups. We then use proof-of-concept implementations to demonstrate how our framework is able to facilitate different types of interoperability. We believe that collaborative technologies such as mashups can implement process interoperability requirements to support collaborative care delivery, particularly for asynchronous care delivery.','Information Systems Frontiers',1,'Payam SadeghiMorad BenyoucefCraig E. Kuziemsky','springer/service oriented architecture security.csv','springer','\0'),(298,'Identifying factors affecting software development cost and productivity','2012','4',' Cost estimation Software development cost Software development productivity Estimation models Function points','Abstract Software systems of today are often complex, making development costs difficult to estimate. This paper uses data from 50 projects performed at one of the largest banks in Sweden to identify factors that have an impact on software development cost. Correlation analysis of the relationship between factor states and project costs was assessed using ANOVA and regression analysis. Ten out of the original 31 factors turned out to have an impact on software development project cost at the Swedish bank including the: number of function points, involved risk, number of budget revisions, primary platform, project priority, commissioning body’s unit, commissioning body, number of project participants, project duration, and number of consultants. In order to be able to compare projects of different size and complexity, this study also considers the software development productivity defined as the amount of function points per working hour in a project. The study at the bank indicates that the productivity is affected by factors such as performance of estimation and prognosis efforts, project type, number of budget revisions, existence of testing conductor, presentation interface, and number of project participants. A discussion addressing how the productivity factors relate to cost estimation models and their factors is presented. Some of the factors found to have an impact on cost are already included in estimation models such as COCOMO II, TEAMATe, and SEER-SEM, for instance function points and software platform. Thus, this paper validates these well-known factors for cost estimation. However, several of the factors found in this study are not included in established models for software development cost estimation. Thus, this paper also provides indications for possible extensions of these models.','Software Quality Journal',1,'Robert LagerströmLiv Marcks von WürtembergHannes HolmOscar Luczak','springer/soa security.csv','springer','\0'),(299,'Interactive Web Documents','2012','1',' ODF HTML XForms SCXML Web application Rich internet application Document-centric Workflow Collaboration','Abstract Documents allow end-users to encapsulate information related to a collaborative business process into a package that can be saved, emailed, digitally signed, and used as the basis for interaction in an activity or an ad hoc workflow. While documents are used incidentally today in web applications, for example in HTML presentations of content stored otherwise in back-end systems, they are not yet the central artifact for developers of dynamic, data intensive web applications. This paper unifies the storage and management of the various artifacts of web applications into an Interactive Web Document (IWD). Data, presentation, behavior, attachments, and digital signatures collected throughout the business process are unified into a single composite web resource. We describe a standards-based approach to packaging multiple resources into IWD archives based on the Open Document Format, a REST-based protocol for interacting with IWDs, and an extensible interaction controller architecture.','Computer Science - Research and Development',2,'John M. BoyerCharles F. WiechaRahul P. Akolkar','springer/bpel security.csv','springer','\0'),(300,'Methods and software tools to support combined binary code analysis','2014','0','','Abstract Methods and tools for binary code analysis developed in the Institute of System Programming, Russian Academy of Sciences, and their applications in algorithm and data format recovery are considered. The executable code of various general-purpose CPU architectures is analyzed. The analysis is performed given no source codes, debugging information, and specific OS version requirements. The approach implies collecting a detailed machine instruction level execution trace; a method for successively increasing presentation level; extraction of algorithm’s code followed by structuring of both code and data formats it processes. Important results are obtained, viz. an intermediate representation is developed that allows carrying out most preliminary processing tasks and algorithm code extraction without having to focus on specifics of a given machine; and a method and software tool are developed for automated recovery of network message and file formats. The tools are integrated into the unified analysis platform that supports their combined use. The architecture behind the platform is also described. Examples of its application to real programs are given.','Programming and Computer Software',1,'V. A. PadaryanA. I. GetmanM. A. SolovyevM. G. BakulinA. I. BorzilovV. V. KaushanI. N. LedovskikhYu. V. MarkinS. S. Panasenko','springer/soa security.csv','springer','\0'),(301,'A visual language for modeling multiple perspectives of business process compliance rules','2016','0',' Business process compliance Extended Compliance Rule Graphs Business process modeling Smart processes','Abstract A fundamental challenge for enterprises is to ensure compliance of their business processes with imposed compliance rules stemming from various sources, e.g., corporate guidelines, best practices, standards, and laws. In general, a compliance rule may refer to multiple process perspectives including control flow, time, data, resources, and interactions with business partners. On one hand, compliance rules should be comprehensible for domain experts who must define, verify, and apply them. On the other, these rules should have a precise semantics to avoid ambiguities and enable their automated processing. Providing a visual language is advantageous in this context as it allows hiding formal details and offering an intuitive way of modeling the compliance rules. However, existing visual languages for compliance rule modeling have focused on the control flow perspective so far, but lack proper support for the other process perspectives. To remedy this drawback, this paper introduces the extended Compliance Rule Graph language, which enables the visual modeling of compliance rules with the support of multiple perspectives. Overall, this language will foster the modeling and verification of compliance rules in practice.','Software & Systems Modeling',2,'David KnupleschManfred Reichert','springer/bpmn security.csv','springer',''),(302,'Upgradation of Business Applications with Autonomic Computing','2013','0','CRM, ERP, autonomic computing, e-commerce, multi-agent architecture, service oriented architecture','Autonomic computing has come a long way since its inception a decade ago and has been positioned as a venerable and value-adding technology for producing and sustaining self-managing, real-time, and resilient systems for the future. A series of concerted efforts by multiple IT companies and academic research laboratories across the world have brought in a number of advancements in this discipline with vigorous study and research. A variety of proven and potential mathematical and computational concepts have been selected and synchronized to arrive at noteworthy improvements in the autonomic systems design, development, deployment, and delivery methods. Having understood the unique value-proposition and the significant achievements in the autonomic computing space, business executives and IT experts are consciously embracing the autonomic idea, which is very generic to be easily embedded in any kind of business and IT systems. However, the penetration of this technology into both IT and business applications has not been as originally envisaged by its creators due to various reasons.The business environment is still filled and saturated with large-scale packaged and monolithic applications. If the autonomic capabilities are innately squeezed into business and IT applications, then there can be major differentiators in how those applications function in seamlessly and spontaneously automating business operations. Both, existing as well as emerging applications can be targeted to become autonomic in their operations, outputs, and outlooks. In this paper, we have described how the leading enterprise packages (ERP, CRM, SCM, and so on.) can be enabled to be adaptive, highly available, secure, and scalable in their actions and reactions. The well-known enterprise applications such as CRM, Online Retail, and Marketing with focus on self-optimization characteristics are described here. A detailed analysis of a Discount Manager in an online retail scenario is also explained. The simulation results obtained clearly show how embedded autonomic capability is very close to human thinking and decision-making ability.','',1,'Devasia Kurian and Pethuru Raj Chelliah','acm/service oriented architecture security.csv','acm','\0'),(303,'Interoperable integration of building automation systems using RESTful BACnet Web services','2015','','','Building automation domain is affected by a diversity of standards and technologies. With the upcoming Internet of Things heading for a pervasive network of interconnected smart things and the need for efficient and intelligent energy management systems, the necessity of integrating these heterogeneous building automation environments soars. Thus, standardized, interoperable, secure, and scalable solutions are required. Well-established Web service technologies based on the Internet Protocol act as key enabler to realize this vision. In this work, an approach for the seamless and interoperable integration of building automation systems based on RESTful BACnet/WS is presented. In order to ease the integration process, the BAC-net/WS specification is described as formal, machine-readable object model. Additionally, most common building blocks of building automation systems including logical as well as physical resources are specified in the form of type definitions to unify integration. Furthermore, a proof-of-concept implementation of a BACnet/WS server is realized in order to illustrate the functional capability of the presented approach.','Industrial Electronics Society, IECON 2015 - 41st Annual Conference of the IEEE',1,'D. Schachinger; C. Stampfel; W. Kastner','ieee/service oriented architecture security.csv','ieee',''),(304,'Service Oriented Architecture - Collaborative Educational Framework','2013','0','Modeler;Process choreography;Service Oriented Architecture','The Service orientation with the educational institutions is a boon to the existing conventional model. There are many advantages which can be measured under the parameters like reusability, resource sharing, time, cost etc. The implementation of SOA may also arise various security issues like privacy, availability etc. The study in this paper analyses and highlights the dynamics of SOA implementation. It is an empirical analysis which adopts a case study method to understand the implication issues of Service Oriented Architecture with the Educational Information system.','Cloud & Ubiquitous Computing & Emerging Technologies (CUBE), 2013 International Conference on',1,'R. Kamatchi','ieee/service oriented architecture security.csv','ieee','\0'),(305,'Architecture of automotive electronic cloud manufacturing based on AUTOSAR','2012','3','Automotive electronics; Automotive open system architecture; Cloud manufacturing; Service oriented architecture','To meet the requirements of real-time and security in the future automotive electronics manufacturing, on the support of cloud manufacturing architecture, combined with Service Oriented Architecture(SOA) and Automotive Open System Architecture(AUTOSAR), the request description package approach, the protocol adapter modification method and service invocation method selection for automotive electronic cloud manufacturing oriented to service were studied and solved. A future automobile electronic cloud manufacturing architecture oriented to network, intelligence and services was put forward to meet safety and real-time requirements of automotive electronics manufacturing. An example was used to prove the feasibility of proposed architecture.','',1,'Ji L., Wang L.-F., Liao C.-L.','scopus/service oriented architecture security.csv','scopus','\0'),(306,'CoNSIS: Demonstration of SOA interoperability in heterogeneous tactical networks','2012','0','SOA;Web services;publish/subscribe;service discovery','The Coalition Network for Secure Information Sharing (CoNSIS) conducted a large scale experiment in Germany in June 2012. During this experiment, multiple aspects of interoperability in the tactical domain were tested in practice. This paper presents the challenges faced by Task 2, which focuses on service orientation, and the use of Web services technology as a means to achieve interoperability between nations. Furthermore, it describes how these challenges were addressed by the different information infrastructures involved. We also present our experiences with several central Web service standards, and describe some lessons learned when it comes to utilizing these standards in tactical networks.','Communications and Information Systems Conference (MCC), 2012 Military',1,'T. H. Bloebaum; K. Lund','ieee/service oriented architecture security.csv','ieee','\0'),(307,'On access control of cloud service chains','2014','','','Service-oriented architecture may be regarded as an incubator for small resources entrepreneurs to bid and work on bigger projects. It also helps large enterprise to trade their resources at various levels. This has opened new gateways for renting out resources. Sometimes a single service is sold at different levels making the Cloud service a supply chain of added value. This supply chain which is built on the same resources but varying claims of ownership, poses novel challenges related to security, trust and privacy of data. There is still no popular system of governing body which can glue together the participating stakeholders through mutual trust and organizational policies. A governing mechanism that can preserve stakeholders\' privacy issues and resolve their conflicts throughout the emerging service chains is also non-existent. In this paper we are introducing a mechanism of access control for such Cloud service chains. Building on our pevious work of SLA-based privacy model, we have discussed the realization of Role-based Access Control (RBAC) to services of federated-cloud. The main advantage of RBAC is that it provides an efficient control to resources and data access. We have also provided a preliminary analysis of this on-going research. © 2014 IEEE.','',1,'Abbasi K.M., Ul Haq I., Malik A.K., Khalid S., Fazil S., Durad H.','scopus/service oriented architecture security.csv','scopus','\0'),(308,'VxBPEL_ODE: A Variability Enhanced Service Composition Engine','2014','1',' Service Oriented Architecture Service Compositions Variability Management VxBPEL','Abstract Service compositions have become a powerful development paradigm to create distributed applications out of autonomous Web services. Since such applications are often deployed and executed in open and dynamic environments, variability management is a crucial enabling technique. To address the adaptation issue of service compositions, we proposed VxBPEL, an extension of BPEL for supporting variability, and a variability-based adaptive service composition approach which employs VxBPEL for variability implementation. In this paper, we present a VxBPEL engine for supporting the execution of VxBPEL service compositions. The engine is called VxBPEL_ODE and is implemented by extending a widely recognized open source BPEL engine, Apache ODE. We discuss key issues of developing VxBPEL_ODE, and three real-life service compositions are employed to evaluate and compare its performance with another VxBPEL engine we developed in our previous work. VxBPEL_ODE, together with analysis, design, and run-time management tools for VxBPEL, constitutes a comprehensive supporting platform for variability-based adaptive service compositions.','',2,'Chang-Ai SunPan WangXin ZhangMarco Aiello','springer/bpel security.csv','springer',''),(309,'SmartMal: A Service-Oriented Behavioral Malware Detection Framework for Smartphones','2013','1','Malware;Security;Service-oriented;Smartphones','This paper presents SmartMal-A novel service-oriented behavioral malware detection framework for vehicular and mobile devices. The highlight of SmartMal is to introduce Service Oriented Architecture (SOA) concepts and behavior analysis into the malware detection paradigms. The proposed framework relies on client-server architecture, the client continuously extracts various features and transfers them to the server, and the server\'s main task is to detect anomalies using state-of-art detection algorithms. Multiple distributed servers simultaneously analyze the feature vector using various detectors and information fusion is used to concatenate the results of detectors. We also propose a cycle-based statistical approach for mobile device anomaly detection. We accomplish this by analyzing the users\' regular usage patterns. Empirical results suggest that the proposed framework and novel anomaly detection algorithm are highly effective in detecting malware on Android devices.','High Performance Computing and Communications & 2013 IEEE International Conference on Embedded and Ubiquitous Computing (HPCC_EUC), 2013 IEEE 10th International Conference on',1,'C. Wang; Z. Wu; A. Wang; X. Li; F. Yang; X. Zhou','ieee/service oriented architecture security.csv','ieee','\0'),(310,'A Software Development Process Model for Cloud by Combining Traditional Approaches','2015','0',' Cloud computing Software development Process','Abstract Even though cloud computing is a technological paradigm that has been adopted more and more in various domains, there are few studies investigating the software development lifecycle in cloud computing applications and there is still not a comprehensive software development process model developed for cloud computing yet. Due to the nature of cloud computing that is completely different from the traditional software development, there is a need of suggesting process models to perform the software development systematically to create high quality software. In this study, we propose a new conceptual Software Development Life Cycle Model for Cloud Software Development that incorporates characteristics of different process models for traditional software development. The proposed model takes traditional model’s specific characteristics into account and also considers cloud’s specific nature i.e. advantages and challenges as well.','',1,'Tuna HacalogluP. Erhan ErenDeepti MishraAlok Mishra','springer/service oriented architecture security.csv','springer',''),(311,'Evolving security requirements in multi-layered service-oriented- architectures','2012','4','AOP; Evolution; REST; Security; SOA','Due to today\'s rapidly changing corporate environments, business processes are increasingly subject to dynamic configuration and evolution. The evolution of new deployment architectures, as illustrated by the move towards mobile platforms and the Internet Of Services, and the introduction of new security regulations (imposed by national and international regulatory bodies, such as SOX1 or BASEL2) are an important constraint in the design and development of business processes. In such a context, it is not sufficient to apply the corresponding adaptations only at the service orchestration or at the choreography level; there is also the need for controlling the impact of new security requirements to several architectural layers, specially in cloud computing, where the notion of Platforms as Services and Infrastructure as Services are fundamental. In this paper we survey several research questions related to security cross-domain and cross-layer security functionality in Service Oriented Architectures, from an original point of view. We provide the first insights on how a general service model empowered with aspect oriented programming capabilities can provide clean modularization to such cross-cutting security concerns. © Springer-Verlag Berlin Heidelberg 2012.','',1,'Idrees M.S., Serme G., Roudier Y., De Oliveira A.S., Grall H., Südholt M.','scopus/service oriented architecture security.csv','scopus','\0'),(312,'Taming the Raven – Testing the Random Access, Visualization and Exploration Network RAVEN','2012','0',' Testing Distributed Systems Parallel Systems High-Performance Computing TTCN-3','Abstract The Random Access, Visualization and Exploration Network (RAVEN) aims to allow for the storage, analysis and visualisation of peta-bytes of scientific data in (near) real-time. In essence, RAVEN is a huge distributed and parallel system. While testing of distributed systems, such as huge telecommunication systems, is well understood and performed systematically, testing of parallel systems, in particular high-performance computing, is currently lagging behind and is mainly based on ad-hoc approaches. This paper surveys the state of the art of software testing and investigates challenges of testing a distributed and parallel high-performance RAVEN system. While using the standardised Testing and Test Control Notation (TTCN-3) looks promising for testing networking and communication aspects of RAVEN, testing the visualisation and analysis aspects of RAVEN may open new frontiers.','',1,'Helmut Neukirchen','springer/service oriented architecture security.csv','springer','\0'),(313,'Multiagent trust management of web services: the “asynchronous computing environment profile unification methodology” (acepum)','2015','','SOA;methodology;trust management;web services','Web services are considered as a major challenge for the information technology industry as they emerge from integration of several technologies adaptable within different architectures and platforms. Web Services are deployed within heterogeneous distributed environments; specifically B-2-B interactions are considered as critical-mission processes and services, the main goal for these processes is to provide a secured inter-organizational computing environment. Ion the web, we deploy web services on the web for the purpose of achieving reusability, interoperability, and standards utilization. Web services are based on interactions of peers where loosely coupled systems interact in anonymous computing environments. The environments of web services are considered more vulnerable to faults and incidents than tightly coupled services. In this paper; I introduce a token-based methodology which is utilized for the purpose of achieving trust between end points of communication. I introduce the Asynchronous Computing Environment Profile Unification Methodology (ACEPUM) as a vulnerability reduction methodology which audits the environment profile variables; this approach introduces several levels of trust management routines that addresses different aspects of security requirements.','2015 World Congress on Internet Security (WorldCIS)',1,'K. A. Abuosba','ieee/soa security.csv','ieee',''),(314,'Context-aware multimedia services modeling: an e-Health perspective','2014','3',' Body sensor network e-Health Sensor networks Internet-based services User context Context modeling','Abstract In this paper we present an e-Health framework model that can dynamically provide context-aware multimedia services to a user. The framework collects live user context by analyzing sensory data obtained from a body sensor network and multimedia content available from live heterogeneous Internet-based services. Finally, we share the implementation details and test results.','Multimedia Tools and Applications',1,'Md. Abdur RahmanM. Shamim HossainAbdulmotaleb El Saddik','springer/service oriented architecture security.csv','springer','\0'),(315,'Multiparty Session Types Meet Communicating Automata','2012','12','','Abstract Communicating finite state machines (CFSMs) represent processes which communicate by asynchronous exchanges of messages via FIFO channels. Their major impact has been in characterising essential properties of communications such as freedom from deadlock and communication error, and buffer boundedness. CFSMs are known to be computationally hard: most of these properties are undecidable even in restricted cases. At the same time, multiparty session types are a recent typed framework whose main feature is its ability to efficiently enforce these properties for mobile processes and programming languages. This paper ties the links between the two frameworks to achieve a two-fold goal. On one hand, we present a generalised variant of multiparty session types that have a direct semantical correspondence to CFSMs. Our calculus can treat expressive forking, merging and joining protocols that are absent from existing session frameworks, and our typing system can ensure properties such as safety, boundedness and liveness on distributed processes by a polynomial time type checking. On the other hand, multiparty session types allow us to identify a new class of CFSMs that automatically enjoy the aforementioned properties , generalising Gouda et al’s work [12] (for two machines) to an arbitrary number of machines.','',2,'Pierre-Malo DeniélouNobuko Yoshida','springer/bpmn security.csv','springer',''),(316,'Compliance validation of secure service compositions','2014','1','BPMN; Compliance; SecureBPMN; Security; Validation','In this chapter, we present the Composition Security Validation Module (CSVM). The CSVM provides a service for checking the compliance of secure and trustworthy composition plans to the service designer. As proof-of-concept we created a prototype in which the CSVM module is deployed on the SAP NetWeaver Cloud and two CSVM Connectors are built supporting two well-known BPMN tools: SAP NetWeaver BPM and Activiti Designer.The Aniketos Secure Composition Framework supports the specification of secure and trustworthy composition plans in term of BPMN. The diversity of security and trust properties that is supported by the Aniketos framework allows, on the one hand, for expressing a large number of security and compliance requirements. On the other hand, the resulting expressiveness results in the risk that high-level compliance requirements (e. g., separation of duty) are not implemented by low-level security means (e. g., role-based access control configurations). © Springer International Publishing Switzerland 2014.','',2,'Brucker A.D., Compagna L., Guilleminot P.','scopus/bpmn security.csv','scopus','\0'),(317,'Challenges and Implementation on Cross Layer Design for Wireless Sensor Networks','2016','0',' Cross layer design (CLD) survey Wireless sensor networks Architecture Performance Unified','Abstract Cross-layer design (CLD) has emerged as an important area in wireless sensor networks (WSNs). Cross-layer enables interaction between different non- adjacent layers and, thereby, exchanging information between layers,\n which, indeed is not possible in traditional architectures. CLD is used for enhancing the performance of the existing architectures by utilizing the flexible prospects of the protocol layers to improve system performance and to satisfy QoS demands of the applications. The CLD leads to increase in network efficiency and optimized network throughput. In this paper, the various cross-layer design methodologies for WSNs have been reviewed, which have basically been designed to enhance the network performance in WSN. At the end, the paper proposes a CLD based on ongoing research.','Wireless Personal Communications',1,'Rajeev RanjanShirshu Varma','springer/service oriented architecture security.csv','springer',''),(318,'OPC unified architecture: A service-oriented architecture for smart grids','2012','1','Automation; Communication; OPC UA; Service-Oriented Architectures; Smart Grids; Standardization','In this paper, the OPC UA is introduced as a key technology for realizing a variety of Smart Grid use cases enabling relevant tasks of automation and control. OPC UA is the successor of the established Classic OPC specification and state of the art regarding information exchange in the industrial automation branch. One of its key improvements over the Classic OPC is that the area of application is no longer restricted to industrial automation but OPC UA can be applied almost in every domain facing challenges in automated control. This improvement stems from a more generic and object-oriented approach. For the adoption of OPC UA to Smart Grids, two of the most important data models - the Common Information Model (CIM) and the IEC 61850 - have been identified to be integrated into OPC UA communication. In this contribution, basic OPC UA features and functionalities (information modeling, communication services, and information security) are introduced and discussed in the context of Smart Grids. © 2012 IEEE.','',1,'Lehnhoff S., Rohjans S., Uslar M., Mahnke W.','scopus/service oriented architecture security.csv','scopus','\0'),(319,'Mapping Study about Usability Requirements Elicitation','2013','1',' Usability MDD Non-functional Requirements Mapping Study','Abstract The HCI community has developed guidelines and recommendations for improving the usability system that are usually applied at the last stages of the software development process. On the other hand, the SE community has developed sound methods to elicit functional requirements in the early stages, but usability has been relegated to the last stages together with other non-functional requirements. Therefore, there are no methods of usability requirements elicitation to develop software within both communities. An example of this problem arises if we focus on the Model-Driven Development paradigm, where the methods and tools that are used to develop software do not support usability requirements elicitation. In order to study the existing publications that deal with usability requirements from the first steps of the software development process, this work presents a mapping study. Our aim is to compare usability requirements methods and to identify the strong points of each one.','',2,'Yeshica Isela OrmeñoJose Ignacio Panach','springer/bpmn security.csv','springer','\0'),(320,'A Risk-Evaluation Assisted System for Service Selection','2015','','Databases; Protocols; Prototypes; Registers; Security; Service-oriented architecture; Silicon','With the rapid adoption of Service Oriented Architecture (SOA), increasingly more application-level services are developed through composing service components offered by different service providers. While such application development mode offers advantages in terms of cost-effectiveness and flexibility, application developers cannot understand or deal with risks potentially resulting from vulnerabilities within composed services due to non-transparency of the service providers. Furthermore, some of the vulnerabilities in practice are deeply hidden in dependency structures underlying composed services, thus making even the service providers fail to know the vulnerabilities. This paper proposes a risk-evaluation assisted service selection system, called Risk Evaluation-as-a-Service(or REaaS), which aims to assist application developers to understand vulnerability risks hidden within alternative services when the developers at first attempt to adopt their applications. In particular, for a given application developer\'s service selection requirement, REaaS produces a ranking list based upon vulnerability risks of alternative services to serve as a guideline regarding which service has the lowest potential risks (e.g., Bugs) for this application deployment. REaaS achieves this goal through the following three steps: 1) generating a package dependency graph for each alternative service, 2) assigning threat-degrees to packages in each dependency graph, and 3) analyzing each dependency graph and evaluating service-risk of each service. We have built a REaaS prototype and used real case study to demonstrate the practicality of REaaS. © 2015 IEEE.','',1,'Zhai E., Gu L., Hai Y.','scopus/service oriented architecture security.csv','scopus',''),(321,'A message interaction security mechanism based on SOA','2012','1','Message layer security mechanisms; SOA; SOAP; Web Services','At present, SOA (Service-Oriented Architecture) is already widely applied in the enterprise commercial development as it is loose coupling, cross-platform, language-independent, supporting organic businesses architecture. Security for communication between services has become a key technology which restricts SOA and Web services to continue to develop. Network attackers can keep the signature and certification sections of the message unchanged and modify the SOAP messages by removing or adding some elements in the head or the body part at the same time. Current security mechanisms rarely consider the effective use of the structure of the SOAP message itself to detect this type of tampering attacks. Here we give a mechanism using the structured information of SOAP Further to spot XML tampering attacks and make the appropriate details of the principle and implementation. Experiments prove that using this mechanism we can choose different security levels more flexibly without affecting the system efficiency while maintaining the security. © 2012 IEEE.','',1,'Wei R., Qiao L., Yang Z.','scopus/service oriented architecture security.csv','scopus','\0'),(322,'Command and control information systems semantic interoperability using a canonical messaging approach','2012','0',' canonical messaging command and control information system integration semantic interoperability','Abstract In presence of rapid development of information and communications technology (ICT) able to increase data processing, much more data can be stored, used and/or mediated and disseminated. Today, information and knowledge become a resource of strategic importance in complex systems, both business and military. On the other hand the question of credibility of the collected data arises: complex systems have to deal with an increasing access to information with less knowledge about their origins and their quality. Due to this lack of information on information, contemporary organizations suffer from organizational indifference. In this paper the ways and means for ensuring semantic interoperability in order to achieve information superiority in complex systems are examined, with special emphasis to military systems using Command and Control Information Systems (C2IS). Canonical messages (canonical intermediaries) based on canonical forms (canonical data models and formats) reduce the number of transformation maps that system must create and manage. An approach based on canonical messaging within the military domain is presented: Multilateral Interoperability Programme (MIP). If implemented correctly and consistently it should lead to achievement of information superiority.','Central European Journal of Computer Science',1,'Darko GalinecWilliam SteingartnerDanijel Macanga','springer/soa security.csv','springer','\0'),(323,'Research on the application in disaster reduction for using cloud computing technology','2013','','Cloud Computing; Disaster Reduction; Service; SOA; Virtualization','Cloud Computing technology has been rapidly applied in different domains recently, promotes the progress of the domain\'s informatization. Based on the analysis of the state of application requirement in disaster reduction and combining the characteristics of Cloud Computing technology, we present the research on the application of Cloud Computing technology in disaster reduction. First of all, we give the architecture of disaster reduction cloud, which consists of disaster reduction infrastructure as a service (IAAS), disaster reduction cloud application platform as a service (PAAS) and disaster reduction software as a service (SAAS). Secondly, we talk about the standard system of disaster reduction in five aspects. Thirdly, we indicate the security system of disaster reduction cloud. Finally, we draw a conclusion the use of cloud computing technology will help us to solve the problems for disaster reduction and promote the development of disaster reduction.','',1,'Tao L., Fan Y., Wang X.','scopus/soa security.csv','scopus','\0'),(324,'Towards User Centric Data Governance and Control in the Cloud','2012','2','','Abstract Cloud Computing, i. e. providing on-demand access to virtualised computing resources over the Internet, is one of the current mega-trends in IT. Today, there are already several providers offering cloud computing infrastructure (IaaS), platform (PaaS) and software (SaaS) services. Although the cloud computing paradigm promises both economical as well as technological advantages, many potential users still have reservations about using cloud services as this would mean to trust a cloud provider to correctly handle their data according to previously negotiated rules. Furthermore, the virtualisation causes a location independence of offered services which could interfere with domain specific legislative regulations. In this paper, we present an approach of putting the cloud user back into power when migrating data and services into and within the cloud. We outline our work in progress, that aims at providing a platform for developing flexible service architectures for cloud computing with special consideration of security and non-functional properties.','',1,'Stephan GroßAlexander Schill','springer/service oriented architecture security.csv','springer','\0'),(325,'Quality Measures for ETL Processes','2014','1',' ETL business process quality measures','Abstract ETL processes play an increasingly important role for the support of modern business operations. These business processes are centred around artifacts with high variability and diverse lifecycles, which correspond to key business entities. The apparent complexity of these activities has been examined through the prism of Business Process Management, mainly focusing on functional requirements and performance optimization. However, the quality dimension has not yet been thoroughly investigated and there is a need for a more human-centric approach to bring them closer to business-users requirements. In this paper we take a first step towards this direction by defining a sound model for ETL process quality characteristics and quantitative measures for each characteristic, based on existing literature. Our model shows dependencies among quality characteristics and can provide the basis for subsequent analysis using Goal Modeling techniques.','',2,'Vasileios TheodorouAlberto AbellóWolfgang Lehner','springer/bpel security.csv','springer',''),(326,'Policy Chain for Securing Service Oriented Architectures','2013','1',' Security of Service Oriented Architecture Security Policy Management and Enforcement','Abstract Service Providers using Service Oriented Architecture in order to deliver in-house services as well as on-demand and cloud services have to deal with two interdependent challenges: (1) to achieve, maintain and prove compliance with security requirements stemming from internal needs, 3rd party demands and international regulations and (2) to manage requirements, policies and security configuration in a cost-efficient manner. The deficiencies of current processes and tools force these service providers to trade off profitability against security and compliance. This paper summarizes a novel approach of a policy chain, which links high-level, abstract and declarative security policies on one side and low-level, imperative, and technical security configuration settings on the other side. The paper describes an architecture linking several applications and models via state-machines in order to provide a toolset supporting service providers to build such a holistic policy chain at design time, and to maintain and leverage it during system operation.','',1,'Wihem ArsacAnnett LaubeHenrik Plate','springer/service oriented architecture security.csv','springer','\0'),(327,'On the Synthesis of Secure Services Composition','2014','1',' Synthesis of Functional and Secure Processes Secure Service Composition Partial Model Checking Process Algebras Quantitative Security','Abstract Web service composition is one of the main research challenges of the last decades. Several frameworks have been developed to compose services in order to meet requirements and constraints imposed by a service consumer. Hereafter, we survey research work on evaluation and automatic synthesis of service composition with a particular eye to security aspects. Furthermore, we describe our logical approach based on the partial model checking technique and open system analysis for the synthesis of secure service orchestrators that are also able to exploit some cryptographic primitives. We also show two implementations able to automatically generate an orchestrator process that composes several services in such a way to guarantee both functional and security requirements.','',2,'Jose A. MartínFabio MartinelliIlaria MatteucciErnesto PimentelMathieu Turuani','springer/bpel security.csv','springer',''),(328,'Towards an energy management system of systems: An industrial case study','2012','1','EcoStruxure;Energy Management;Schneider Electric;Service-Oriented Architecture;System of Systems','A cloud based on energy related information, which is provided as services from all system components from the shop floor to the management systems, is a desire of the industry business. This paper is based on the first part of a Case Study applied to the multinational company Schneider Electric, focused to a System of Systems approach for Energy Management. It presents a State-of-the-Art analysis of some general topics related to System of Systems, Energy Management, and European Projects in order to understand the new architecture approached today, and their care towards Energy Efficiency. This background helped to start a Case Study, which in its first part regards to Energy Efficiency tools from machine builders and the next step to EcoStruxure program. This approach explains its methodology and architecture inside the industry business. It is concluded generally that Schneider Electric, as one sample of the companies providing solutions for the industry, care about developing products, services, and projects oriented to an Energy Efficient world.','IECON 2012 - 38th Annual Conference on IEEE Industrial Electronics Society',1,'D. Mora; M. Taisch; A. W. Colombo','ieee/service oriented architecture security.csv','ieee','\0'),(329,'On the Design of a Trust Enhanced Distributed Authorisation Architecture for Service Oriented Architectures','2013','0','','Authorisation systems play a vital role in protecting access to resources in distributed systems. Traditionally, authorisation is performed at the user level to determine whether a user has the necessary privileges to access a requested resource. However, when it comes to the user\'s platform, it is often assumed that the system hosting the user and the software running on it are \'trusted\' and that it will behave correctly. In this paper, we propose a comprehensive trust enhanced distributed authorisation architecture that provides a holistic framework for authorisation taking into account the state of a user platform. The model encompasses the notions of \'hard\' and \'soft\' trust to determine whether a platform can be trusted for authorisation. We first explain the rationale for the overall model and then describe our hybrid model with \'hard\' and \'soft\' trust components, followed by a description of the system architecture. We then illustrate proposed architecture in the context of a simple scenario involving a social networking system.','2013 12th IEEE International Conference on Trust, Security and Privacy in Computing and Communications',1,'A. Krishna; V. Varadharajan; N. Tarr','ieee/service oriented architecture security.csv','ieee','\0'),(330,'A Review of Monitoring Techniques for Service Based Applications','2013','0','Business Activity Monitoring;Composite Service;Monitoring;Service-Based Application;Service-Infrastructure','A Service-Based Application (SBA) is composed of a number of loosely coupled services available on the network which provide the desired functionalities. Service Based Applications execute in dynamic business environments and have to address evolving requirements. Hence they should be flexible to identify violations and adapt to changes in business requirements or context. Monitoring is the key element for adaptation. A Service Based Application can be viewed in terms of three layers i.e., Business Process Management Layer, Service Composition Layer and Service Infrastructure Layer. Application performance depends on the combined performance of components and their interactions within the SBA layers. Therefore it necessitates to constantly monitor the health of the application by monitoring activities occurring in SBA layers. In this paper we present a view of the monitoring approaches across the three layers.','2013 2nd International Conference on Advanced Computing, Networking and Security',1,'S. Saralaya; R. DSouza','ieee/service oriented architecture security.csv','ieee','\0'),(331,'Cloud Computting: New Research Perspectives for Computers and Law','2012','0',' Cloud computing automated agents contractual negotiations','Abstract Cloud computing represents a new business paradigm whereby a series of computing resources are offered as a service, available on-demand, on a pay-per-use basis, over the Internet. In this paper, we propose a hypothesis of how Cloud computing can be described as a complex system and we describe the various risks and opportunities connected with the current implementation Cloud computing. We then present a preliminary model for the implementation an automated system of certification based upon the formalization of contractual rules and consumers’ preferences.','',1,'Daniele BourcierPrimavera De Filippi','springer/service oriented architecture security.csv','springer','\0'),(332,'Architecting the smart grid as a holarchy','2012','3','Architecture; Prosumer; Smart Grid','The ever increasing concerns for energy security, energy efficiency, and sustainable energy is offering various challenges for the power grid. With increasing penetration of the distributed generations, the electricity power system is facing an era of prosumerization, whereby all stakeholders can autonomously produce, consume, import and/or export power. The classical power grid with top-down organization and control does not fit this dynamics, hence reorganizing the rather old architecture of the system is indispensable. In this paper, we propose a generic architecture of the smart grid that fits the new scenario based on the concepts of holons. The proposed architecture of the system is composed of autonomous prosumers that are organized bottom-up in a recursive manner involving various aggregation layers, forming a dynamically reconfigurable system. A corresponding control architecture that employs a holonic approach to simultaneously capture the autonomy of the prosumers, the recursion and the dynamic reconfiguration of the proposed system is also proposed. We extend our work by proposing a service oriented architecture (SOA) framework to support our control architecture.','',1,'Negeri E., Baken N.','scopus/service oriented architecture security.csv','scopus','\0'),(333,'Using Agent Technology for Ambient Assisted Living','2013','1',' Multi-Agent Systems Ambient Assisted Living Argumentation Alzheimer disease','Abstract The goal of this paper is to provide some arguments in favor of the use of agent technology in real word applications. It does so through the, as much as possible, detailed description of a multi-agent system in the context of a real world application in the domain of ambient assisted living. It discusses development issues involving the use of the platform JADE and integrating computational argumentation and web services. It also gives some feedback concerning the experience of engineering such systems, especially when integrated in a more complex system with other components, but also concerning the perception of real users when using the system in an everyday life context.','',1,'Nikolaos I. SpanoudakisPavlos Moraitis','springer/service oriented architecture security.csv','springer','\0'),(334,'Stateless security filtering of optical data signals: An approach based on code words','2013','','all-optical network; code words; optical logic gates; optical stateless filtering; optical traffic identifier; SOA','In this paper, we propose an optical stateless filtering architecture which allows the traffic filtering at the optical layer. Indeed, each traffic stream will be identified by a unique identifier composed of a set of code words. In the core node, a set of optical filtering rules will be applied to this traffic stream based on its corresponding identifier in order to accept or reject the traffic stream. The stateless filtering process is based on the logical comparison between the received traffic identifier and the optical filtering signal which are composed of a set of code words. The proposed architecture is composed by two main components. The first component is an encoder implemented in the edge node, which generates traffic stream identifiers. And, the second component is the optical stateless filtering module which is implemented in the core node. © 2013 IFIP.','',1,'Sliti M., Boudriga N.','scopus/soa security.csv','scopus','\0'),(335,'Alloy4SPV : A Formal Framework for Software Process Verification','2014','0','','Abstract In this paper we present a framework for software process verification called Alloy4SPV which uses a subset of UML2 Activity Diagrams as a process modeling language. In order to achieve software process verification, we i) define a formal model of our process modeling language using first-order logic, ii) we give it a formal semantics based on the fUML standard, and iii) we implement this formalization using the Alloy language [1]. In order to ease its adoption by process modelers, our framework comes with a graphical tool and a ready to use and customizable set of software process properties. We categorize these properties into two categories, syntactical and behavioral. We extend the set of behavioral properties we identified from the literature with two new categories that we defined, namely, organizational properties which relate to resource management and planning during process execution and business properties which are project/process specific properties.','',2,'Yoann LaurentReda BendraouSouheib BaarirMarie-Pierre Gervais','springer/bpel security.csv','springer',''),(336,'Risk assessment for a video surveillance system based on Fuzzy Cognitive Maps','2014','1',' Security Risk assessment Video surveillance Fuzzy cognitive maps','Abstract For various IT systems security is considered a key quality factor. In particular, it might be crucial for video surveillance systems, as their goal is to provide continuous protection of critical infrastructure and other facilities. Risk assessment is an important activity in security management; it aims at identifying assets, threats and vulnerabilities, analysis of implemented countermeasures and their effectiveness in mitigating risks. This paper discusses an application of a new risk assessment method, in which risk calculation is based on Fuzzy Cognitive Maps (FCMs) to a complex automated video surveillance system. FCMs are used to capture dependencies between assets and FCM based reasoning is applied to aggregate risks assigned to lower-level assets (e.g. cameras, hardware, software modules, communications, people) to such high level assets as services, maintained data and processes. Lessons learned indicate, that the proposed method is an efficient and low-cost approach, giving instantaneous feedback and enabling reasoning on effectiveness of security system.','Multimedia Tools and Applications',1,'Piotr SzwedPawel SkrzynskiWojciech Chmiel','springer/service oriented architecture security.csv','springer','\0'),(337,'Proceedings - 7th International Workshop on Modeling in Software Engineering, MiSE 2015','2015','','','The proceedings contain 14 papers. The topics discussed include: reconciling a component and process view; modularity for uncertainty; incremental and commutative composition of state-machine models of features; compositional reliability analysis for probabilistic component automata; a field study of modellers at work; ARCA - automated analysis of autoSAR meta-model changes; MASC: modelling architectural security concerns; towards executing dynamically updating finite-state controllers on a robot system; identifying instances of model design patterns and antipatterns using model clone detection; mining correlations of ATL model transformation and metamodel metrics; towards application and evolution of model-based heuristics for improving SOA service design; software modelling languages: a wish list; adding temporal intention dynamics to goal modeling: a position paper; and dice: quality-driven development of data-intensive cloud applications.','',1,'[No author name available]','scopus/soa security.csv','scopus',''),(338,'Secure and Authenticated Access to LLN Resources Through Policy Constraints','2015','0',' Body sensor networks Policy-based access control XACML SAML DPWS Web services Security','Abstract Ubiquitous devices comprising several resource-constrained sensors and actuators while having the long desired Internet connectivity, are becoming part of many solutions that seek to enhance user’s environment smartness and quality of living. Their intrinsic resource limitations however constitute critical requirements, such as security, a great challenge. When these nodes are associated with applications that might have an impact in user’s privacy or even become life threatening, the security issues are of primary concern. Access to these resources should be appropriately controlled to ensure that such wearable nodes are adequately protected. On the other hand, it is very important to not restrict access to only a very closed group of entities. This work presents a service oriented architecture that utilizes policy-based, unified, cross-platform and flexible access control to allow authenticated entities consume the services provided by wearable nodes while protecting their valuable resources.','',1,'Konstantinos RantosKonstantinos FysarakisOthonas SoultatosIoannis Askoxylakis','springer/service oriented architecture security.csv','springer',''),(339,'Enhancing Agent Intelligence through Evolving Reservoir Networks for Predictions in Power Stock Markets','2012','0',' Data Mining Power Stock Markets Reservoir Computing Multi-Agent System Neuroevolution','Abstract In recent years, Time Series Prediction and clustering have been employed in hyperactive and evolving environments –where temporal data play an important role– as a result of the need for reliable methods to estimate and predict the pattern or behavior of events and systems. Power Stock Markets are such highly dynamic and competitive auction environments, additionally perplexed by constrained power laws in the various stages, from production to transmission and consumption. As with all real-time auctioning environments, the limited time available for decision making provides an ideal testbed for autonomous agents to develop bidding strategies that exploit time series prediction. Within the context of this paper, we present Cassandra , a dynamic platform that fosters the development of Data-Mining enhanced Multi-agent systems. Special attention was given on the efficiency and reusability of Cassandra , which provides Plug-n-Play capabilities, so that users may adapt their solution to the problem at hand. Cassandra ’s functionality is demonstrated through a pilot case, where autonomously adaptive Recurrent Neural Networks in the form of Echo State Networks are encapsulated into Cassandra agents, in order to generate power load and settlement price prediction models in typical Day-ahead Power Markets . The system has been tested in a real-world scenario, that of the Greek Energy Stock Market.','',1,'Kyriakos C. ChatzidimitriouAntonios C. ChrysopoulosAndreas L. SymeonidisPericles A. Mitkas','springer/service oriented architecture security.csv','springer','\0'),(340,'Testing web services in the cloud','2012','','','Cloud Computing makes it possible for users to access a wide range of web services in the public domain and to embed these global services in their local applications. This promises to save a significant amount of individual development cost. The biggest obstacle to using this technology is the problem of trust. To gain trust in the services offered they have to be extensively tested, either by the user himself or by a trusted agent. This chapter deals with the testing of web services in the cloud. There are many similarities to testing web services in a local service-oriented architecture, but there are also significant differences. In a company specific SOA, testers can gain access to the source. This is not true of the cloud. There is no possibility of accessing the source. Therefore, testers must rely solely on the specification contained in the service level agreement - SLA - and the web service interface definition - WSDL or REST - to base their test upon. Testing in the cloud is strictly a black-box test. The goal of a cloud service test is also not to find errors but to assess the suitability of the service to the purpose of the user. It may be necessary to test several services in order to find that one best suited to the requirements of the user. To judge suitability it is necessary to define an ideal usage profile, including performance, security and other non-functional criteria, and to compare that with the actual profile of each potential service. For this both static and dynamic analysis methods must be applied. The chapter presents an automated approach to assessing cloud services and selecting that one most suitable to the user\'s application. © 2013, IGI Global.','',1,'Sneed H.M.','scopus/service oriented architecture security.csv','scopus','\0'),(341,'The impact of SOA on a system design for a telemedicine healthcare system','2015','0',' SOA healthcare system SOA in telemedicine system SOA Tele-Wound','Abstract Telemedicine \n systems have been rapidly increasing in number and size over the past decades. This increasing trend intensifies the need for tele-medicine in the area of national healthcare system. The increasing size of distributed telemedicine systems creates problems of data integration, vendor lock-in, and interoperability. In this paper, we present a next generation telemedicine system architecture, which is based on service oriented architecture (SOA). \n We believe SOA can resolve several problems in today’s telemedicine systems. In the current infrastructure of telemedicine, several problems have been identified such as users becoming limited to a single vendor. \n Therefore, we performed requirements analysis and evaluation to propose a robust solution to avoid the problem of vendor locking and interoperability.','Network Modeling Analysis in Health Informatics and Bioinformatics',1,'Asadullah Shaikh','springer/soa security.csv','springer',''),(342,'Distributed Accounting in Scope of Privacy Preserving','2013','0','','Abstract Accounting is an essential part of distributed computing infrastructures, regardless whether these are more service-driven like Clouds or more computing oriented like traditional Grid Computing environments. Those infrastructures have evolved over more than the last decade and additional. beside the further development towards service-oriented architectures, the business aspect of especially Cloud Computing solutions becomes more and more relevant. In this paper we focus on user-centric aspects like privacy preserving methods to hide the users behaviour and to collect only necessary information for billing, under the assumption that an accounting system has to be integrated in the computing infrastructure and that a central interface is still desirable for billing and financial clearing.','',1,'Marcus HilbrichRené Jäkel','springer/service oriented architecture security.csv','springer','\0'),(343,'Automatic Ontology User Profiling for Social Networks from URLs Shared','2013','0',' Twitter Social Networks Ontology RDF OWL NoSQL','Abstract User profiling, defined as the inference of user interests, intentions, characteristics, behaviors and preferences, is nowadays one of the most important keys in personalized services on Internet, such as segmented target advertisements. In this paper, we propose a scalable and automated technique for user ontology profiling in social networks by extracting URL content shared by users in tweets. The new approach models a user profile as a semantic ontology where user interests and intentions are represented. OpenDNS and DBpedia collective knowledge databases are utilized in order to find the interests and intentions categories of the user profile ontology, enhancing the performance of our method and taking the collective categorization of the websites. User profile ontology evolves constantly and is populated with assertions of individuals and relationships of interest and intention from these collective knowledge repositories. Experimental results indicate strongly that the proposed method automatically generates, correctly, the interests and intentions of a user profile.','',2,'Paula PeñaRafael Del HoyoJorge Vea-MurguíaCarlos GonzálezSergio Mayo','springer/bpel security.csv','springer','\0'),(344,'An Effective Model for Indirect Trust Computation in Pervasive Computing Environment','2014','1',' Recommendation model Pervasive computing Malicious recommendation detection','Abstract The performance of indirect trust computation models (based on recommendations) can be easily compromised due to the subjective and social-based prejudice of the provided recommendations. Eradicating the influence of such recommendation remains an important and challenging issue in indirect trust computation models. An effective model for indirect trust computation is proposed which is capable of identifying dishonest recommendations. Dishonest recommendations are identified by using deviation based detecting technique. The concept of measuring the credibility of recommendation (rather than credibility of recommender) using fuzzy inference engine is also proposed to determine the influence of each honest recommendation. The proposed model has been compared with other existing evolutionary recommendation models in this field, and it is shown that the model is more accurate in measuring the trustworthiness of unknown entity.','Wireless Personal Communications',1,'Naima IltafAbdul GhafoorUsman ZiaMukhtar Hussain','springer/service oriented architecture security.csv','springer','\0'),(345,'Mobile application webservice performance analysis: Restful services with JSON and XML','2011','2','Android; JSON; Mobile Applications; Performance; Webservices; XML','Mobile devices are growing on a pace without precedents. It is estimated that by 2013 there will be about 1.1 Billion Smartphones on use. This quick growth on Smartphone numbers and the appearance of marketplaces where mobile applications can easily be bought or downloaded is turning mobile development into a big market. As the number of users grows in a fast pace, so does the demand for new applications, leading to faster development cycles in order to produce faster results. In many cases, mobile applications are connected to pre-existing systems and it is necessary to find a quick, but stable, secure and light way to establish a communication between the mobile application and the pre-existing background system. This article aims to show how restful Webservices, combined with JSON, may help developers to fill this gap while keeping security, stability and speed. © 2011 Springer-Verlag.','',1,'Rodrigues C., Afonso J., Tomé P.','scopus/webservice security.csv','scopus','\0'),(346,'CDCGM Track Report','2013','1','Cloud Computing;Distributed Intelligent Managed Element Networks;Distributed Services Management;Many-core Servers;Parallel Computing;Services Virtualization;grid computing','The Convergence of distributed clouds, grids and their management conference track focuses on virtualization and cloud computing as they enjoy wider acceptance. A recent IDC report predicts that by 2016, $1 of every $5 will be spent on cloud-based software and infrastructure. Three papers address key issues in cloud computing such as resource optimization and scaling to address changing workloads and energy management. In addition, the DIME network architecture proposed in WETICE2010 is discussed in two papers in this conference, both showing its usefulness in addressing fault, configuration, accounting, performance and security of service transactions with in the service oriented architecture implementation and also spanning across multiple clouds. While virtualization has brought resource elasticity and application agility to the services infrastructure management, the resulting layers of orchestration and the lack of end-to-end service visibility and control spanning across multiple service provider infrastructure have added an alarming degree of complexity. Hopefully, reducing the complexity in the next generation datacenters will be a major research topic in this conference.','Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE), 2013 IEEE 22nd International Workshop on',1,'R. Mikkilineni; G. Morana','ieee/service oriented architecture security.csv','ieee','\0'),(347,'Formal Modeling of Mobile Computing Systems Based on Ambient Abstract State Machines','2013','1','','Abstract In this paper, we present a high-level definition of a formal method in terms of ambient abstract state machine rules which makes it possible to describe formal models of mobile computing systems and complex service oriented architectures in two abstraction layers. This means that while the algorithms and local interactions of executable components ( agents ) are specified in terms of abstract state machines; the long-term interactions as well as movements of various components via various administrative domains are given in terms of ambient calculus in our approach.','',1,'Károly Bósa','springer/service oriented architecture security.csv','springer','\0'),(348,'Using the NIST Reference Model for Refining Logical Architectures','2014','0',' Cloud Computing Logical Architectures Reference Model NIST Model Requirements','Abstract The emergence of the Internet as a ubiquitous means of communication fostered the growth of new business and service models based on Cloud Computing. Information and Communication Technology companies use reference models to define their Cloud Computing strategies. NIST Cloud Computing Reference Architecture is one of these reference models that assist in the design of business, services, and architecture models. This paper aims to present the use of NIST reference architecture in the design of Cloud Computing architectures by employing a method that enables the application of the reference architecture to the refinement of logical architectures.','',1,'António PereiraRicardo J. MachadoJosé Eduardo FernandesJuliana TeixeiraNuno SantosAna Lima','springer/service oriented architecture security.csv','springer','\0'),(349,'Service-oriented trust and reputation architecture','2012','','','As the Future Internet arrives, more complex, service-based applications are spreading. These applications pose several challenges, including the huge amount of entities that must interact and their heterogeneity. The success of these applications depends on the collaboration and communication of these entities, that might belong to different organizations and administrative domains. Therefore, trust and reputation become two crucial issues. We propose the specification and design of a service-based security architecture that stresses the delivery of trust and reputation services to any application that might require them.','',1,'Moyano F., Fernandez-Gago C., Lopez J.','scopus/service oriented architecture security.csv','scopus','\0'),(350,'Patterns and tools for business process monitoring customization','2015','0',' Business process Monitoring Customization','Abstract In a cross-organizational service-based process provisioning scenario, one provider is likely to execute a given business process to serve several customers. Each customer may hold different expectations about the way this process can be monitored. We present a solution allowing the provider to support the requirements of different customers on the monitoring of a given process, i.e., offering them the opportunity to customize the way a process will be monitored. We propose a multi-dimensional classification model of patterns for process monitoring and rules to compose the patterns to design customized monitoring infrastructures. The fit for purpose of the patterns is evaluated empirically, whereas the feasibility of our solution is demonstrated by a tool supporting process monitoring customization adhering to our pattern design and composition methodology.','Service Oriented Computing and Applications',2,'Marco ComuzziSamuil Angelov','springer/bpel security.csv','springer',''),(351,'Design and implementation of mobile digital campus based on mobile internet','2013','0','WAP;mobile digital campus;mobile internet;web application','Mobile digital campus construction of Three Gorges University is taken as an example to discuss the meanings of mobile digital campus, and how to design and implement mobile digital campus. Mobile digital campus is a development direction, which can not be ignored in the construction of mobile digital campus in the future, and it promotes functions and really does effective extension for traditional digital campus. In this paper, from the beginning of construction of mobile digital campus of Three Gorges University, firstly, the importance and necessity is put forward for mobile digital campus, secondly, the whole architecture of mobile digital campus is designed, including WAP portal and relative interfaces, thirdly, implementation technology of mobile portal and mobile application are introduced, finally, analysis and consideration are raised from aspects of security and reliability, meanwhile, combined with practical experience, development direction is also discussed.','Mechatronic Sciences, Electric Engineering and Computer (MEC), Proceedings 2013 International Conference on',1,'Rui Zhang; Xiyan Wu; Zhipin Dan','ieee/service oriented architecture security.csv','ieee','\0'),(352,'A property-based testing framework for encryption programs','2014','0',' software testing encryption programs test oracles metamorphic testing (MT)','Abstract In recent years, a variety of encryption algorithms were proposed to enhance the security of software and systems. Validating whether encryption algorithms are correctly implemented is a challenging issue. Software testing delivers an effective and practical solution, but it also faces the oracle problem (that is, under many practical situations, it is impossible or too computationally expensive to know whether the output for any given input is correct). In this paper, we propose a property-based approach to testing encryption programs in the absence of oracles. Our approach makes use of the so-called metamorphic properties of encryption algorithms to generate test cases and verify test results. Two case studies were conducted to illustrate the proposed approach and validate its effectiveness. Experimental results show that even without oracles, the proposed approach can detect nearly 50% inserted faults with at most three metamorphic relations (MRs) and fifty test cases.','Frontiers of Computer Science',1,'Chang-ai SunZuoyi WangGuan Wang','springer/soa security.csv','springer','\0'),(353,'Data flow-oriented process mining to support security audits','2012','1','','The automated execution of dynamically-evolving business processes in service-oriented architectures requires audit methods to assert that they fulfill required security properties. Process mining techniques can provide models for the actual process behavior, but mostly disregard the dynamics of processes running in highly flexible environments and neglect the data flow perspective. This research plan is on novel data-oriented mining techniques to tackle these shortcomings in order to support effective security audits. © 2012 Springer-Verlag.','',1,'Stocker T.','scopus/service oriented architecture security.csv','scopus','\0'),(354,'Interoperability Description of Web Services Based Application Servers','2012','0',' Interoperability Distributed programming Web services System integration and implementation','Abstract Web services standards were designed to enable interoperability of heterogeneous application servers in the Service Oriented Architecture. Although the standards proved to be highly successful, there are still difficulties in effective services integration. The paper presents a methodology that enables description of application servers interoperability in order to improve the service integration process. The methodology proposes a systematic classification of Web services standards, versions and configuration options, and uses the classification for interoperability rating. Concrete integrations are rated by developers that specify integration scope, configuration complexity and required expertise level. The methodology was implemented in a web system that enables definition of standards and configuration options as well as rating of integrations. As a part of the research, interoperability experiments were executed and registered in the system.','',1,'Paweł L. Kaczmarek','springer/service oriented architecture security.csv','springer','\0'),(355,'An Automated Semantically Enabled Fuzzy Based SLA in Cloud Computing Environment Using Multi-agent System','2015','0',' Service level agreement (SLA) Multi-agent system Fuzzy ontology Quality of service (QoS)','Abstract In order to make reservations for cloud services, consumers and providers need to work on Service Level Agreements (SLAs) to achieve negotiation. Since cloud computing represents a category of distributed system, negotiation should be established between service providers and consumers in a faster and reliable manner. Automated Negotiation is such a process that is closely associated with Multi-agent Systems. We propose A Negotiation system using fuzzy ontology is addressed by us in this research work where the cloud service specification and consumer requirements with vagueness are stored on cloud ontology. Here, each party needs to choose its own agent in order for negotiation. Agents have both consumer’s and provider’s details and their hard and soft preferences for a particular service. Agents need to negotiate on the basis of a set of Quality of Service (QoS) parameters like duration, availability, price etc. as required by the user. On completion of the negotiation process, user receives a feedback from the agent regarding the probability of negotiation. This negotiation framework is dynamic and efficient in nature.','',1,'Manoranjan ParhiBinod Kumar PattanayakManas Ranjan Patra','springer/service oriented architecture security.csv','springer',''),(356,'A decentralized approach for implementing identity management in cloud computing','2012','3','cloud computing; grouping algorithm; identity management (IdM); security; service oriented architecture (SOA)','Cloud computing is the next generation of computing paradigm. Along with cloud computing, many related problems come up. And these problems in turn slow the speed of the development of cloud computing down. Among these problems, e.g. interoperability and privacy, identity management and security are strong concerned. Many researchers and enterprises have already done a lot to optimize the identity management and strengthen the security in cloud computing. Most of these studies focus on the usability of identity management and various kinds of method to help improve security. But in this paper, we do some research from a new angle. While the federated solution of identity management helps relieve many problems, it\'s adopted by many platforms and enterprises. The general approach for deploying identity management is a centralized component processing authentication and authorization requests. But with the cloud growing in scale and the increasing number of users, this centralized solution will be the bottleneck of the cloud. In this paper, we propose a decentralized approach for implementing identity management in service oriented architecture in cloud computing and a grouping algorithm as the deploy strategy. Security is another problem involved in this paper. Since many researchers have done many detailed and fruitful studies in security, the security solution illustrated in this paper is specific in the proposed architecture. © 2012 IEEE.','',1,'Chen J., Wu X., Zhang S., Zhang W., Niu Y.','scopus/service oriented architecture security.csv','scopus','\0'),(357,'Model-Based Adaptation of Software Communicating via FIFO Buffers','2015','0','','Abstract Software Adaptation is a non-intrusive solution for composing black-box components or services (peers) whose individual functionality is as required for the new system, but that present interface mismatch, which leads to deadlock or other undesirable behaviour when combined. Adaptation techniques aim at automatically generating new components called adapters. All the interactions among peers pass through the adapter, which acts as an orchestrator and makes the involved peers work correctly together by compensating for mismatch. Most of the existing solutions in this field assume that peers interact synchronously using rendezvous communication. However, many application areas rely on asynchronous communication models where peers interact exchanging messages via buffers. Generating adapters in this context becomes a difficult problem because peers may exhibit cyclic behaviour, and their composition often results in infinite systems. In this paper, we present a method for automatically generating adapters in asynchronous environments where peers interact using FIFO buffers.','',2,'Carlos CanalGwen Salaün','springer/bpel security.csv','springer',''),(358,'Modeling and enforcing secure object flows in process-driven SOAs: An integrated model-driven approach','2014','5','Model-driven development; Process modeling; Secure object flows; Security engineering; Service-oriented architecture; SoaML; UML; Web services','In this paper, we present an integrated model-driven approach for the specification and the enforcement of secure object flows in process-driven service-oriented architectures (SOA). In this context, a secure object flow ensures the confidentiality and the integrity of important objects (such as business contracts or electronic patient records) that are passed between different participants in SOA-based business processes. We specify a formal and generic metamodel for secure object flows that can be used to extend arbitrary process modeling languages. To demonstrate our approach, we present a UML extension for secure object flows. Moreover, we describe how platform-independent models are mapped to platform-specific software artifacts via automated model transformations. In addition, we give a detailed description of how we integrated our approach with the Eclipse modeling tools. © 2012 Springer-Verlag.','',1,'Hoisl B., Sobernig S., Strembeck M.','scopus/service oriented architecture security.csv','scopus','\0'),(359,'Building European software architecture community: how far have we come?','2013','1','','','Software & Systems Modeling',1,'Muhammad Ali BabarIan GortonFlavio Oquendo','springer/service oriented architecture security.csv','springer','\0'),(360,'Special issue on Semantic Information Management guest editorial','2013','0','','','Information Systems Frontiers',1,'Gabriele KotsisIsmail Khalil','springer/service oriented architecture security.csv','springer','\0'),(361,'An Efficient Search Strategy for Service Provider Selection in Complex Social Networks','2012','3','path search;service provider selection;social networks;trustworthiness','The trustworthiness of service providers plays an important role when a consumer selects a service. This paper studies the problem of how to efficiently search and select trustworthy service providers for users in social networks consisting of service providers and consumers. A trust value between two participants can be derived by existing methods from the optimal trust path between them in a social network. When more than one trust factors are taken into consideration, the exact optimal trust path selection algorithm is NP-complete. Although several heuristic algorithms have been proposed to find approximate solutions, their time complexities are still too high to be acceptable in practice, especially when they are used in very large scale social networks. Focusing on reducing trust path searching time, this paper proposes an efficient preprocessing-based search strategy. It exploits structural properties of the social networks and builds an advanced data structure from preprocessing, which can be used to simplify and accelerate the trust path searching. Experimental results show our strategy is very efficient and nearly achieves a constant time complexity. The computed trustworthiness based on our method has excellent performance close to that of the best existing heuristic algorithm.','Services Computing (SCC), 2012 IEEE Ninth International Conference on',1,'Y. Xu; J. Liu; M. Tang; B. Cao; X. Liu','ieee/service oriented architecture security.csv','ieee','\0'),(362,'Autonomic care platform for optimizing query performance','2013','0','','Abstract Background As the amount of information in electronic health care systems increases, data operations get more complicated and time-consuming. Intensive Care platforms require a timely processing of data retrievals to guarantee the continuous display of recent data of patients. Physicians and nurses rely on this data for their decision making. Manual optimization of query executions has become difficult to handle due to the increased amount of queries across multiple sources. Hence, a more automated management is necessary to increase the performance of database queries. The autonomic computing paradigm promises an approach in which the system adapts itself and acts as self-managing entity, thereby limiting human interventions and taking actions. Despite the usage of autonomic control loops in network and software systems, this approach has not been applied so far for health information systems. Methods We extend the COSARA architecture, an infection surveillance and antibiotic management service platform for the Intensive Care Unit (ICU), with self-managed components to increase the performance of data retrievals. We used real-life ICU COSARA queries to analyse slow performance and measure the impact of optimizations. Each day more than 2 million COSARA queries are executed. Three control loops, which monitor the executions and take action, have been proposed: reactive, deliberative and reflective control loops. We focus on improvements of the execution time of microbiology queries directly related to the visual displays of patients’ data on the bedside screens. Results The results show that autonomic control loops are beneficial for the optimizations in the data executions in the ICU. The application of reactive control loop results in a reduction of 8.61% of the average execution time of microbiology results. The combined application of the reactive and deliberative control loop results in an average query time reduction of 10.92% and the combination of reactive, deliberative and reflective control loops provides a reduction of 13.04%. Conclusions We found that by controlled reduction of queries’ executions the performance for the end-user can be improved. The implementation of autonomic control loops in an existing health platform, COSARA, has a positive effect on the timely data visualization for the physician and nurse.','BMC Medical Informatics and Decision Making',1,'Kristof SteurbautSteven LatréJohan DecruyenaereFilip De Turck','springer/service oriented architecture security.csv','springer','\0'),(363,'Experiences with Arthron for Live Surgery Transmission in Brazilian Telemedicine University Network','2013','0',' New Technology and its Usefulness eHealth and Telemedicine Systems','Abstract The increasing network bandwidth capacity and the diminishing costs of related services have led to a rising number of applications in the field of Information and Communication Technology. A special case is applications based on video streaming. Telemedicine can be highlighted in some scenarios for applying this technology, such as clinical sessions, second medical opinion, interactive lessons or virtual conferences. These scenarios often imply a dedicated transmission environment. A restriction in such solutions is the inability to handle multiple video streams. Thus, this paper presents a low-cost infrastructure for video collaboration in healthcare and based on open technologies. The proposed infrastructure enables remote management of simultaneous multiple streams. We also discuss results of experiments held in the Lauro Wanderley Academic Hospital, Brazil. One of the results is the contribution for teaching experiences, particularly by allowing students to remotely regard surgical procedures and providing real-time interaction. Finally, we present new prospects for using the developed technology on other applications in Telemedicine and Telepresence.','',1,'Tatiana A. TavaresGustavo H. M. B. MottaGuido Souza FilhoErick Mello','springer/webservice security.csv','springer','\0'),(364,'Recover Fault Services via Complex Service-to-Node Mappings in Wireless Sensor Networks','2015','1',' WSN Faulty recovery Context awareness Knowledge granularity Bloom Filter','Abstract With the motivation of seamlessly extending wireless sensor networks to the external environment, service-oriented architecture comes up as a promising solution. However, as sensor nodes are failure prone, this consequently renders the whole wireless sensor network to seriously faulty. When a particular node is faulty, the service on it should be migrated into those substitute sensor nodes that are in a normal status. Currently, two kinds of approaches exist to identify the substitute sensor nodes: the most common approach is to prepare redundancy nodes, though the involved tasks such as maintaining redundancy nodes, i.e., relocating the new node, lead to an extra burden on the wireless sensor networks. More recently, other approaches without using redundancy nodes are emerging, and they merely select the substitute nodes in a sensor node’s perspective i.e., migrating the service of faulty node to it’s nearest sensor node, though usually neglecting the requirements of the application level. Even a few work consider the need of the application level, they perform at packets granularity and don’t fit well at service granularity. In this paper, we aim to remove these limitations in the wireless sensor network with the service-oriented architecture. Instead of deploying redundancy nodes, the proposed mechanism replaces the faulty sensor node with consideration of the similarity on the application level, as well as on the sensor level. On the application level, we apply the Bloom Filter for its high efficiency and low space costs. While on the sensor level, we design an objective solution via the coefficient of a variation as an evaluation for choosing the substitute on the sensor level.','Journal of Network and Systems Management',1,'Qian LiWenjia NiuGang LiEndong TongYue HuPing LiuLi Guo','springer/soa security.csv','springer',''),(365,'Systematic literature review of the objectives, techniques, kinds, and architectures of models at runtime','2016','0',' Models Runtime Literature review','Abstract In the context of software development, models provide an abstract representation of a software system or a part of it. In the software development process, they are primarily used for documentation and communication purposes in analysis, design, and implementation activities. Model-Driven Engineering (MDE) further increases the importance of models, as in MDE models are not only used for documentation and communication, but as central artefacts of the software development process. Various recent research approaches take the idea of using models as central artefacts one step further by using models at runtime to cope with dynamic aspects of ever-changing software and its environment. In this article, we analyze the usage of models at runtime in the existing research literature using the Systematic Literature Review (SLR) research method. The main goals of our SLR are building a common classification and surveying the existing approaches in terms of objectives, techniques, architectures, and kinds of models used in these approaches. The contribution of this article is to provide an overview and classification of current research approaches using models at runtime and to identify research areas not covered by models at runtime so far.','Software & Systems Modeling',2,'Michael SzvetitsUwe Zdun','springer/bpel security.csv','springer',''),(366,'RT-SPDM: Real-time security, privacy and dependability management of heterogeneous systems','2015','1','DPWS; Event calculus; Formal methods; JADE; Jess; Metrics composition; OSGi; Policy-based access control; Security validation; SOAs','The need to manage embedded systems, brought forward by the wider adoption of pervasive computing, is particularly vital in the context of secure and safety-critical applications. This work presents RT-SPDM, a framework for the real-time management of devices populating ambient environments. The proposed framework utilizes a formally validated approach to reason the composability of heterogeneous embedded systems, evaluate their current security, privacy and dependability levels based on pre-defined metrics, and manage them in real-time. An implementation of Event Calculus is used in the Jess rule engine in order to model the ambient environment context and the rule-based management procedure. The reasoning process is modeled as an agent’s behavior and applied on an epistemic multi-agent reasoner for ambient intelligence applications. Agents monitor distinct embedded systems and are deployed as OSGi bundles to enhance the real-time management of embedded devices. A Service Oriented Architecture is adopted, through the use of the Devices Profile for Web Services standard, in order to provide seamless interaction between the framework’s entities, which exchange well-formed information, determined by the OASIS CAP standard. Proof-of-concept implementations of all entities are developed, also investigating user-friendly GUIs for both the front-end and back-end of the framework. A preliminary performance evaluation on typical embedded devices confirms the viability of the proposed approach. © Springer International Publishing Switzerland 2015.','',1,'Fysarakis K., Hatzivasilis G., Askoxylakis I., Manifavas C.','scopus/service oriented architecture security.csv','scopus',''),(367,'Using Social Network Technology to Provide e-Administration Services as Collaborative Tasks','2012','1',' Social Network Collaborative Tasks E-administration Recommendation Mechanism AI Planning OpenSocial','Abstract This paper presents an approach employing social network technology to facilitate e-administration within collaborative communities. E-administration services are provided through task coordination between specific participants. Task activities are performed by gadgets acting on behalf of participants. Task assignment is based on participant roles and relations in the community, explicitly defined within the social network. Interaction between gadgets is governed by rules based on participant roles, dictating the obligations and responsibilities of each party. Whenever the execution of a certain gadget depends on the previous execution of a series of other gadgets, a recommendation mechanism employing AI planning is used to provide a plan according to which gadgets should be combined. The implementation of a social network platform supporting e-administration based on extending the OpenSocial API is also presented. The proposed platform has been utilized to develop a social network for the academic community, featuring pilot implementation of specific e-administration services.','',2,'Ourania HatziMara NikolaidouPanagiotis Katsivelis-PerakisValentino HudhraDimosthenis Anagnostopoulos','springer/bpel security.csv','springer','\0'),(368,'Managing Expectations: Runtime Negotiation of Information Quality Requirements in Event-Based Systems','2014','1',' event-based systems quality of information self-adaptive systems runtime negotiation malleability','Abstract Interconnected smart devices in the Internet of Things (IoT) provide fine-granular data about real-world events, leveraged by service-based systems using the paradigm of event-based systems (EBS) for invocation. Depending on the capabilities and state of the system, the information propagated in EBS differs in content but also in properties like precision, rate and freshness. At runtime, consumers have different dynamic requirements about those properties that constitute quality of information (QoI) for them. Current approaches to support quality-related requirements in EBS are either domain-specific or limited in terms of expressiveness, flexibility and scope as they do not allow participants to adapt their behavior. We introduce the generic concept of expectations to express, negotiate and enforce arbitrary requirements about information quality in EBS at runtime. In this paper, we present the model of expectations, capabilities and feedback based on generic properties. Participants express requirements and define individual tradeoffs between them as expectations while system features are expressed as capabilities. We discuss the algorithms to (i) negotiate requirements at runtime in the middleware by matching expectations to capabilities and (ii) adapt participants as well as the middleware. We illustrate the architecture for runtime-support in industry-strength systems by describing prototypes implemented within a centralized and a decentralized EBS.','',1,'Sebastian FrischbierPeter PietzuchAlejandro Buchmann','springer/service oriented architecture security.csv','springer','\0'),(369,'Security issues in cloud environments: a survey','2014','30',' Clouds Cloud computing Issues Security Survey','Abstract In the last few years, the appealing features of cloud computing have been fueling the integration of cloud environments in the industry, which has been consequently motivating the research on related technologies by both the industry and the academia. The possibility of paying-as-you-go mixed with an on-demand elastic operation is changing the enterprise computing model, shifting on-premises infrastructures to off-premises data centers, accessed over the Internet and managed by cloud hosting providers. Regardless of its advantages, the transition to this computing paradigm raises security concerns, which are the subject of several studies. Besides of the issues derived from Web technologies and the Internet, clouds introduce new issues that should be cleared out first in order to further allow the number of cloud deployments to increase. This paper surveys the works on cloud security issues, making a comprehensive review of the literature on the subject. It addresses several key topics, namely vulnerabilities, threats, and attacks, proposing a taxonomy for their classification. It also contains a thorough review of the main concepts concerning the security state of cloud environments and discusses several open research topics.','International Journal of Information Security',1,'Diogo A. B. FernandesLiliana F. B. SoaresJoão V. GomesMário M. FreirePedro R. M. Inácio','springer/soa security.csv','springer',''),(370,'Enabling DevOps Collaboration and Continuous Delivery Using Diverse Application Environments','2015','0',' Continuous delivery Pipeline Requirements Topology DevOps','Abstract Aiming to provide the means for efficient collaboration between development and operations personnel, the DevOps paradigm is backed by an increasingly growing collection of tools and reusable artifacts for application management. Continuous delivery pipelines are established based on these building blocks by implementing fully automated, end-to-end application delivery processes, which significantly shorten release cycles to reduce risks and costs as well as gaining a critical competitive advantage. Diverse application environments need to be managed along the pipeline such as development, build, test, and production environments. In this work we address the need for systematically specifying and maintaining diverse application environment topologies enriched with environment-specific requirements in order to implement continuous delivery pipelines. Beside the representation of such requirements, we focus on their systematic and collaborative resolution with respect to the individual needs of the involved application environments.','',1,'Johannes WettingerVasilios AndrikopoulosFrank Leymann','springer/microservice security.CSV','springer',''),(371,'Decentralized Governance of Distributed Systems via Interaction Control','2012','0','','Abstract This paper introduces an abstract reference model, called interaction control (IC), for the governance of large and heterogeneous distributed systems. This model goes well beyond conventional access control, along a number of dimensions. In particular, the IC model has the following characteristics: (1) it is inherently decentralized, and thus scalable even for a wide range of stateful policies; (2) it is very general, and not biased toward any particular type of policies; thus providing a significant realization of the age-old principle of separation of policy from mechanism ; and (3) it enables flexible, composition-free, interoperability between different policies. The IC model, which is an abstraction of a mechanism called law-governed interaction (LGI), has been designed as a minimalist reference model that can be reified into a whole family of potential control mechanisms that may support different types of communication, with different performance requirements and for different application domains.','',2,'Naftaly H. Minsky','springer/bpel security.csv','springer','\0'),(372,'Introduction to the Fifth Workshop on Non-Functional Properties and Service Level Agreements Management in Service-Oriented Computing (NFPSLAM-SOC 2011)','2012','0','','Abstract Nowadays businesses as well as the Web require information to be available in real-time in order to reply to requests, make effective decisions and generally remain competitive. This in turn requires data to be processed in realtime. In general in service-oriented architecture (SOA) one is less concerned with latency in data processing. Clearly, there are investigations of service-level agreements (SLA) and quality of service (QoS) to guarantee service delivery. Research around non-functional properties and service-level agreements for serviceoriented computing has reached a level of maturity. There are approaches for describing properties, managing SLAs and even for selecting and composing services based on NFPs. Beyond these classical topics SOA inspired extensions are enabling new and creative domains like the Internet of Things, real-time business or real-time Web. These new domains impose new requirements on SOA, such as a huge data volume, mediation between various data structures and a large number of sources that need to be procured, processed and provided. Questions like how to pick the right service out of tens of thousands of services if we talk about sensor networks or how to provide results with almost near zero-latency describe actual questions and challenges we are currently facing. Therefore, we have to look into new ways for processing data, converting and composing data coming from various sources and for enabling an easy and lightweight way to impose it on various sets of devices.','',1,'Flavio De PaoliIoan TomaCarlos PedrinaciMarcel Tilly','springer/service oriented architecture security.csv','springer','\0'),(373,'A software system infrastructure and integrated service implementation model of manufacturing integrated service platform','2012','5','Distributed software architecture; Electronic business service; Implementation model; Integrated service; Preponderant resource sharing; Service-oriented architecture; Virtual design and manufacture; Web service','For expediently integrating service partners and software modules to enhance the openness and service level of the manufacturing integrated service platform, the browser/server/database architecture is presented as its software architecture, on this basis, its function structure is divided into preponderant manufacturing resource sharing system, intelligentized and independent design system for the industry, virtual design and manufacture center, electronic business and logistics service system etc, some of these modules are emphatically described. And based on SOA service model and Web Service architecture, integrated service implementation model of manufacturing integrated service platform is established. This solution has effectively integrated hardware and software, service providers, service consumers, service supporters and function modules of the platform. So the thirdparty operators can provide manufacturing enterprises with many integrated services, example for innovative design and manufacture of key products, merchandise catalogue services, security and authentication services, electronic payment services, logistics information services, sharing and utilizing of preponderant manufacturing resources. It is easily learning, using and extending in the future, and breaks through the traditional service mode which is based on information delivery model.','',1,'Xie P., Rui Z., Cao J.','scopus/service oriented architecture security.csv','scopus','\0'),(374,'Integrated care concept using smart items and cloud infrastructure','2015','','BPMN; Cloud computing; Cloud security; Health care; Sensors; Smart items','In this paper, we explain the OpSIT approach of an integrated cloud system targeting health care facilities and their care staff. Main objective is providing a platform that integrates different smart items in order to support care processes. Therefore, knowledge of the business processes and their related tasks is highly necessary and can be properly gained with the use of Business Process Modeling Notation. We present two independent use cases which are integrated with a secure hybrid cloud system using different access levels and mechanisms, smart gateways for pre-processing and smart items for measuring. The considered smart items are smart blister dispenser, smart emergency button and smart watch. © 2015 The Authors.','',2,'Schubert J., Ghulam S., Prieto-González L.','scopus/bpmn security.csv','scopus',''),(375,'Revisiting lower and upper bounds for selective decommitments','2013','4','','In [6,7], Dwork et al. posed the fundamental question of existence of commitment schemes that are secure against selective opening attacks (SOA, for short). In [2] Bellare, Hofheinz, and Yilek, and Hofheinz in [13] answered it affirmatively by presenting a scheme which is based solely on the non-black-box use of a one-way permutation needing a super-constant number of rounds. This result however opened other challenging questions about achieving a better round complexity and obtaining fully black-box schemes using underlying primitives and code of the adversary in a black-box manner. Recently, in TCC 2011, Xiao ([23]) investigated on how to achieve (nearly) optimal SOA-secure commitment schemes where optimality is in the sense of both the round complexity and the black-box use of cryptographic primitives. The work of Xiao focuses on a simulation-based security notion of SOA. Moreover, the various results in [23] focus only on either parallel or concurrent SOA. In this work we first point out various issues in the claims of [23] that actually re-open several of the questions left open in [2,13]. Then, we provide new lower bounds and concrete constructions that produce a very different state-of-the-art compared to the one claimed in [23]. © 2013 International Association for Cryptologic Research.','',1,'Ostrovsky R., Rao V., Scafuro A., Visconti I.','scopus/soa security.csv','scopus','\0'),(376,'Prognosis: Cloudy with SAAS','2012','0','','Most of the IT industry recognized the power of cloud and grid computing. Next generation of SAAS applications is already drastically increasing business performance and offers unimaginable information integration, fusing with new and existing applications, leveraging newest social communication platforms and professional services. This new wave of global IT infrastructure is rapidly changing the way the users work, think and collaborate. New web technologies like HTML5 and sophisticated JavaScript libraries are providing rich user interfaces which perform like classical desktop systems and in combination with scalable and flexible architecture open new possibilities for better, faster and more controlled integration of information sources. This brings some challenges and issues which must be addressed before potential information loss, security vulnerability or unintended sharing. How will next generation of software look like and where is it shifting to? Several answers are emerging, let\'s take a look.','MIPRO, 2012 Proceedings of the 35th International Convention',1,'B. Kraut','ieee/service oriented architecture security.csv','ieee','\0'),(377,'An information-theoretic treatment of passive haptic media','2016','0',' Haptic rendering Information theory Haptic information loss Haptic filter Haptic coding','Abstract Haptic rendering has been long considered as the process of estimating the force that stems from the interaction of a user and an object. Even if this approach follows the principles of natural haptic interaction, it places severe limitations in processing haptic media. This paper presents an information theoretic framework that aims to provide a new view of haptic rendering that can accommodate for open-loop synthetic haptic media, where interaction-based rendering is a special case. As a result, using the proposed information-theoretic approach, the haptic signal can be precomputed as a force field, stored and then filtered by taking into account device and perceptual capabilities of the receiver in order to lower the required bandwidth of the resulting stream, thus opening new possibilities for the representation and processing of haptic media.','Multimedia Tools and Applications',1,'Konstantinos MoustakasAris S. Lalos','springer/soa security.csv','springer',''),(378,'Novel hybrid WDM/TDM PON architectures to manage flexibility in optical access networks','2013','0',' Optical access PON architectures Hybrid WDM/TDM Flexibility Dynamic bandwidth allocation','Abstract Different hybrid WDM/TDM PON architectures are compared in terms of flexibility, simplicity (affecting the cost), insertion loss (affecting the reach) and security. Special attention is given to the flexibility aspect in next generation optical access networks by designing different architectures with a different degree of flexibility, which are able to cope with different ranges of dynamic bandwidth allocation (DBA) possibilities. This paper assesses the degree of architectural flexibility needed to deal with some important flexibility advantages. It is shown that mostly a partially flexible architecture fulfils the needs. The architectures are then further evaluated from a cost and reach perspective. In this way, we provide a complete comparison considering all the key aspects of access network design. It is shown that a hybrid WDM/TDM PON with a partially flexible architecture in the first remote node can be an interesting candidate for next-generation optical access networks.','Telecommunication Systems',1,'Bart LannooGoutam DasAbhishek DixitDidier ColleMario PickavetPiet Demeester','springer/soa security.csv','springer','\0'),(379,'An Adaptive Enterprise Service Bus Infrastructure for Service Based Systems','2014','0',' enterprise service bus service-based systems adaptation mediation','Abstract Service-based systems (SBS) increasingly need adaptation capabilities to agilely respond to unexpected changes (e.g. regarding quality of service). The Enterprise Service Bus (ESB), a recognized infrastructure to support the development of SBS, provides native mediation capabilities (e.g. message transformation) which can be used to perform adaptation actions. However, the configuration of these capabilities cannot usually be performed at runtime. To deal with this limitation, Adaptive ESB Infrastructures have been proposed which leverage their mediation capabilities to deal with adaptation requirements in SBSs in an automatic and dynamic way at runtime. This paper presents a JBossESB-based implementation of an Adaptive ESB Infrastructure and demonstrates its operation by describing their main functionalities. The paper also presents an evaluation of the implemented solution.','',1,'Laura GonzálezJorge Luis LabordeMatías GalnaresMauricio FenoglioRaúl Ruggia','springer/service oriented architecture security.csv','springer','\0'),(380,'Architecting Web Service Attack Detection Handlers','2012','2','messaging attacks;security;web services','There is a wealth of research on web service attack types and different techniques to mitigate them. However, there is little discussion on reusable methods for implementing these known techniques. In this paper, we introduce two handler architectures that can be reused to implement a broad set of known attack countermeasures. While structurally similar, the architectures differ in the information they require for attack detection, in the needed changes to or restructuring of the message and its content, and in their invocation order among other handlers deployed on the application server and used by the web service. We present the handler architecture designs and how they address the specific web service attack types. We discuss the benefits of their attachment to the Web service. Also, we cover their implementation and deployment details on a JBoss application server and provide a case study to document the results of test runs.','Web Services (ICWS), 2012 IEEE 19th International Conference on',1,'A. Andrekanic; R. Gamble','ieee/service oriented architecture security.csv','ieee','\0'),(381,'An Industrial Control Systems incident response decision framework','2015','','','The integration of Industrial Control Systems (ICS) with Information and Communication Technologies (ICT) systems has resulted in tremendous increase in the number of ICS security incidents. Current ICS incident response practices can hardly be applied into ICS directly as the two systems are fundamentally different in terms of system complexity, criticality, flexibility and dependability. This paper addresses this challenges by proposing an ICS incident response decision framework. It is based on decision-making theory and has descriptive, predictive and prescriptive models that particularly address ICS incident response decision-making. This framework is implemented using a service-oriented architecture (SOA) that provides incident response decision making as services and offers standardized interfaces to integrate with existing incident management systems.','Communications and Network Security (CNS), 2015 IEEE Conference on',1,'Ying He; L. A. Maglaras; H. Janicke; K. Jones','ieee/service oriented architecture security.csv','ieee',''),(382,'A Comprehensive Ontology for Knowledge Representation in the Internet of Things','2012','13','Internet of Things;IoT Services;Ontology;Ontology Modelling;Service Testing','Semantic modeling for the Internet of Things has become fundamental to resolve the problem of interoperability given the distributed and heterogeneous nature of the \"Things\". Most of the current research has primarily focused on devices and resources modeling while paid less attention on access and utilisation of the information generated by the things. The idea that things are able to expose standard service interfaces coincides with the service oriented computing and more importantly, represents a scalable means for business services and applications that need context awareness and intelligence to access and consume the physical world information. We present the design of a comprehensive description ontology for knowledge representation in the domain of Internet of Things and discuss how it can be used to support tasks such as service discovery, testing and dynamic composition.','2012 IEEE 11th International Conference on Trust, Security and Privacy in Computing and Communications',1,'W. Wang; S. De; R. Toenjes; E. Reetz; K. Moessner','ieee/service oriented architecture security.csv','ieee',''),(383,'Managing Entire Lifecycles of e-Science Applications in the GridSpace2 Virtual Laboratory – From Motivation through Idea to Operable Web-Accessible Environment Built on Top of PL-Grid e-Infrastructure','2012','3',' virtual laboratories computational science application development collaborative research','Abstract The GridSpace2 environment, developed in the scope of the PL-Grid Polish National Grid Initiative, constitutes a comprehensive platform which supports e-science applications throughout their entire lifecycle. Application development may involve multiple phases, including writing, prototyping, testing and composing the application. Once the application attains maturity it becomes operable and capable of being executed, although it may still be subject to further development – including actions such as sharing with collaborating researchers or making results publicly available with the use of dedicated publishing interfaces. This paper describes each of these phases in detail, showing how the GridSpace2 platform can assist the developers and publishers of computational experiments.','',2,'Eryk CiepielaPiotr NowakowskiJoanna KocotDaniel HarężlakTomasz GubałaJan MeiznerMarek KasztelnikTomasz BartyńskiMaciej MalawskiMarian Bubak','springer/bpel security.csv','springer','\0'),(384,'Cloud storage service in digital campus','2013','0','cloud storage;digital campus','With the development of information technology, the research of digital campus faces more and more new challenges and opportunities. The construction of digital campus is now focusing on the development of personal digital spaces, personal interactive information systems, and open platforms for interactive participation and knowledge sharing. Being the foundation of the digital campus infrastructure, cloud storage service supports the storage, synchronization and sharing of mass data in a fast and secure way. In this paper we illustrate the contents and implementation of cloud storage service in digital campus.','Software Engineering and Service Science (ICSESS), 2013 4th IEEE International Conference on',1,'Yu Peng; Yu Zhang; Xiong Lv; Li Bi','ieee/service oriented architecture security.csv','ieee','\0'),(385,'ConHA: An SOA-based API gateway for consolidating heterogeneous HA clusters','2013','','API gateway; cluster; consolidation; high availability','Server and cluster consolidating is very common in cloud computing era. However, it is not easy to consolidate heterogeneous high-availability (HA) clusters due to the lack of unified administrative tool for managing various kinds of high-availability clusters developed by different vendors. To solve this problem, an SOA-based API gateway, ConHA, is proposed in this paper. ConHA provides unified web service APIs and the functionalities for managing heterogeneous HA cluster. ConHA is designed in a scalable and extensible way. The security issues are also discussed in this paper. © 2013 IEEE.','',1,'Li M., Zhang Q., Chu H., Hu X., Xu F.','scopus/soa security.csv','scopus','\0'),(386,'A semantic model to support security matching in cloud environments','2013','1','Cloud computing; Ontology; Security policies; Semantic','Despite its technological advances, cloud computing\'s adoption is not as wide as expected. Security is still a big concern that prevents many to \"cloudify\" their applications and put their data in the hands of a cloud provider. Also, interoperable scenarios fostered by SOA technologies exacerbate the security question, as customers have to deal with multiple providers who, in their turn, must establish mutual trust relationships in order to interoperate. In the last few years, policies are being used as a means to build networks of trustiness among cloud providers. Standards and specifications on security management through policies have also appeared. We argue that the main problem with this approach is that policies are expressed through syntactic languages which, if processed by computers, show well-known limitations. We then propose an approach that leverages on the semantic technologies to enrich security policies with semantic contents enabling machine reasoning. The framework we developed caters for the security needs of both customers and providers, and aims at making a smart match between what is requested and what is offered in terms of security. On the customer side, no extra effort is required other than specifying their security policies according to well-established security notations; an automatic procedure is charged of adding semantic content to the policies.','',1,'Di Modica G., Tomarchio O.','scopus/service oriented architecture security.csv','scopus','\0'),(387,'SDE-driven service provision control','2012','','Differential Evolution; Service Provision Control; Stochastic differential equation','The service-oriented architecture (SOA) allows distributed resources to be provided through standard service interfaces, resulting in easy and flexible access to domain-specific functionality. Depending on resource availability and the demand for services, a service-providing host may choose to provide one or several services in the direction of maximizing its service-providing utility. This is known as the service provision control (SPC) problem. With the help of stochastic differential equations (SDEs), this problem will be tackled in this paper within a stochastic optimization framework. Differential evolution (DE) algorithm will be further utilized to identify near-optimal service-providing policies. Experimental study has been conducted based on an example inspired by Cyber security. The experiment results show that our approach is effective in tackling the SPC problem and may be therefore suitable for many practical applications. © 2012 Springer-Verlag.','',1,'Chen G., Pang S., Sarrafzadeh A., Ban T., Inoue D.','scopus/service oriented architecture security.csv','scopus','\0'),(388,'An autonomic approach to extend the business value of a legacy order fulfillment system','2015','','autonomic computing; legacy software systems; self-adaptive systems; self-managing systems; service-oriented architecture; software evolution; software maintenance; systems interoperability; systems of systems','In the modern retailing industry, many enterprise resource planning (ERP) systems are considered legacy software systems that have become too expensive to replace and too costly to re-engineer. Countering the need to maintain and extend the business value of these systems is the need to do so in the simplest, cheapest, and least risky manner available. There are a number of approaches used by software engineers to mitigate the negative impact of evolving a legacy systems, including leveraging service-oriented architecture to automate manual tasks previously performed by humans. A relatively recent approach in software engineering focuses upon implementing self-managing attributes, or \'autonomic\' behavior in software applications and systems of applications in order to reduce or eliminate the need for human monitoring and intervention. Entire systems can be autonomic or they can be hybrid systems that implement one or more autonomic components to communicate with external systems. In this paper, we describe a commercial development project in which a legacy multi-channel commerce enterprise resource planning system was extended with service-oriented architecture an autonomic control loop design to communicate with an external third-party security screening provider. The goal was to reduce the cost of the human labor necessary to screen an ever-increasing volume of orders and to reduce the potential for human error in the screening process. The solution automated what was previously an inefficient, incomplete, and potentially error-prone manual process by inserting a new autonomic software component into the existing order fulfillment workflow. © 2015 IEEE.','',1,'Mulcahy J.J., Huang S.','scopus/service oriented architecture security.csv','scopus',''),(389,'Dynamic intelligence towards merging cloud and communication services','2014','0','','','Information Systems Frontiers',1,'Ching-Hsien HsuJianhua MaMohammad S. Obaidat','springer/service oriented architecture security.csv','springer','\0'),(390,'On a Classification Approach for SOA Vulnerabilities','2009','7','SOA;Security;Vulnerability Classification;Vulnerability Management','Vulnerabilities in operating systems and Web applications have been and are being put into various classifications, leading to a better understanding of their causes and effects, and to improved vulnerability management tool support. In a service-oriented architecture (SOA), additional vulnerabilities exist in the implementations of new standards such as BPEL and SOAP. Attackers can exploit these vulnerabilities to interfere with the business processes, which are executed as orchestration of services. We describe our approach and ongoing work of creating a SOA vulnerability classification.','2009 33rd Annual IEEE International Computer Software and Applications Conference',2,'L. Lowis; R. Accorsi','ieee/bpel security.csv','ieee','\0'),(391,'Formal Verification of Finite State Transactional Security Policy','2014','0',' transaction isolation security policy finite edit automata formal verification','Abstract Security policy helps to ensure that system always takes the desired input action sequence and works in a proper manner. Formal verification of finite state transactional security policy is necessary to check whether the given policy conforms to the specification. One way to specify finite state transactional security policy is by using a filter automaton. A filter automaton is an action sequence transformer that maps an input action sequence into another, so that the output action sequence obeys the specified policy. A method for verification of finite state transactional security policy enforced by filter automata is being proposed. The observable actions finite security automaton and the observable actions finite truncation automaton are used to verify a finite state transactional security policy.','',1,'N. RajamanickamR. NadarajanAtilla Elçi','springer/service oriented architecture security.csv','springer','\0'),(392,'A Web Service trust evaluation model based on small-world networks','2014','4','Small-world networks; SOA; Subjective logic; Trust model; Web Services','As a popular innovation, Web Service provides a flexible solution to integrate diverse online applications with existing Internet protocols and open standards. The availability and flexibility of Web Service enable its potential to handle dynamic requests in distributed online collaboration. However, this potential is limited by Web Service\'s security concerns due to its uncertainty, openness and fraudulence. A solution to this problem, Trust, an important social concept in all human interactions, has been proven to be a promising way to resolve the security issues raised by these distributed collaborations. This paper introduces a novel evaluation model of Web Service by leveraging trust as an approach. We first incorporate a trust management module into the standard Service Oriented Architecture (SOA). Then, after transforming a Web Service network to a small-world network based on the trust relationships of service entities, we propose a trust evaluation model with an amendatory subjective logic. The simulation experiments we ran compared our trust evaluation model with two other popular models. The result shows our proposed model outperforms in terms of both detection capability and stability. © 2013 Elsevier B.V. All rights reserved.','',1,'Liu F., Wang L., Gao L., Li H., Zhao H., Men S.K.','scopus/service oriented architecture security.csv','scopus','\0'),(393,'Link Prediction in Dynamic Networks of Services Emerging during Deployment and Execution of Web Services','2012','1','','Abstract We propose an approach, according to which the Web services interoperability and resulting composition schemes may be used to create the network structures reflecting the patterns according to which the services interact during execution of composition and execution queries. We show how to create so-called networks of Web services which allow to effectively use the network structural analysis and optimization techniques to solve the network composition problems. The service network is created on the basis of the semantic bindings between the services in the repository joined with the actual patterns of the service usage resulting from composition queries. Next we show how available techniques of dynamic network structure prediction and analysis may help to assess the future service usage and resource consumption of the service execution layer. Our approach is illustrated by the real data gathered from the PlaTel platform, dedicated to the complex service planning, management, provision, composition, execution and validation.','',1,'Adam GrzechKrzysztof JuszczyszynPaweł StelmachŁukasz Falas','springer/service oriented architecture security.csv','springer','\0'),(394,'Zukunftsfähige Softwaresysteme','2016','1','','Zusammenfassung Software ist heute allgegenwärtig: Man findet sie in fast allen Produkten und Diensten der heutigen Gesellschaft und Industrie. Die Abhängigkeit von Software ist nahezu total geworden. In den vergangenen zwei Jahrzehnten hat sich Software für die Unternehmen von Systembausteinen zu signifikanten Investitionsgütern entwickelt, welche die Chancen und Risiken der Unternehmen stark mitbestimmen. Viele Softwaresysteme haben eine lange Lebensdauer und müssen während dieser Zeit kontinuierlich neuen Anforderungen angepasst werden. Dabei sind zunehmende Anforderungen an Qualitätseigenschaften – wie Sicherheit, Verfügbarkeit, gesetzliche Vorschriften usw. – nachweisbar zu erfüllen. Dies stellt sehr hohe Anforderungen an die Software selbst und an ihre Evolutionsstrategie. Kurz gefasst muss die Software zukunftsfähig sein, d. h. sie muss sowohl die heutigen Anforderungen optimal erfüllen, aber gleichzeitig ihre erfolgreiche Evolution für längere Zeit gewährleisten. Dieser Beitrag beschreibt eine praktisch erprobte Evolutionsstrategie – die Managed Evolution . Die Managed Evolution ist eine stark architekturzentrierte Evolutionsstrategie für mittlere bis sehr große Informationssysteme in allen Anwendungsgebieten. Sie zeichnet sich dadurch aus, dass sie eine enge Zusammenarbeit der Geschäftseinheiten und der IT-Abteilungen aufweist.','Informatik-Spektrum',1,'Frank J. Furrer','springer/soa security.csv','springer',''),(395,'Trust as a facilitator in cloud computing: a survey','2012','15',' Cloud computing Cloud taxonomy Trust evaluation Reputation system Trust management Trust models','Abstract Abstract Cloud computing offers massively scalable, elastic resources (e.g., data, computing power, and services) over the internet from remote data centres to the consumers. The growing market penetration, with an evermore diverse provider and service landscape, turns Cloud computing marketplaces a highly competitive one. In this highly competitive and distributed service environment, the assurances are insufficient for the consumers to identify the dependable and trustworthy Cloud providers. This paper provides a landscape and discusses incentives and hindrances to adopt Cloud computing from Cloud consumers’ perspective. Due to these hindrances, potential consumers are not sure whether they can trust the Cloud providers in offering dependable services. Trust-aided unified evaluation framework by leveraging trust and reputation systems can be used to assess trustworthiness (or dependability) of Cloud providers. Hence, cloud-related specific parameters (QoS + ) are required for the trust and reputation systems in Cloud environments. We identify the essential properties and corresponding research challenges to integrate the QoS + parameters into trust and reputation systems. Finally, we survey and analyse the existing trust and reputation systems in various application domains, characterizing their individual strengths and weaknesses. Our work contributes to understanding 1) why trust establishment is important in the Cloud computing landscape, 2) how trust can act as a facilitator in this context and 3) what are the exact requirements for trust and reputation models (or systems) to support the consumers in establishing trust on Cloud providers.','Journal of Cloud Computing: Advances, Systems and Applications',1,'Sheikh Mahbub HabibSascha HaukeSebastian RiesMax Mühlhäuser','springer/service oriented architecture security.csv','springer',''),(396,'Access control for a Smart Grid SOA','2012','6','Access control; Service-oriented Computing; Smart Grid; Web services','In the future Smart Grid numerous stakeholders within the electric power grid need to exchange information in order to realize applications like customer energy feedback, billing and invoicing of variable tariffs, demand side management and efficient charging of electric vehicles. Using a Service-oriented Architecture (SOA) based on Web services promises a convenient way to provide a data infrastructure capable to realize the required interactions in a flexible way. A main concern in such an architecture is how access to data can be controlled in order to prevent security or privacy violations. Access control depends strongly on authentication and authorization mechanisms. Therefore this paper contributes i) a SOA for the Smart Grid and ii) an access control mechanism that is taken into consideration from the early beginning of the system design. Furthermore, a proof of concept implementation and a scalability analysis are used to investigate the requirements on computational resources in a large scale deployment. © 2012 Infonomics Society.','',1,'Jung M., Hofer T., Döbelt S., Kienesberger G., Judex F., Kastner W.','scopus/service oriented architecture security.csv','scopus','\0'),(397,'Trusted Interaction Patterns in Large-scale Enterprise Service Networks','2010','2','human involvement in SOA;interaction patterns;mixed systems;online help and support;trust','The evolution towards cross-organizational collaboration and interaction patterns has led to the emergence of scalable, Web services-based composition infrastructures. The success of service-oriented architecture (SOA) was mainly influenced by the standardization of composition languages such as BPEL. However, compositions require humans to be in the loop and ways to interface with people in a service-oriented manner. In this paper, we discuss Human-Provided Services (HPS) enabling the seamless integration of human capabilities in SOA. In complex and large-scale environments, processes might span interactions among partially unknown participants residing in different organizational units. To address the problem of trusted selection of participants, we introduce a mining approach for the automatic inference of trust relations. Unlike a security-based view on trust, our approach relates to the emergence of trust across humans and services from a social perspective.','2010 18th Euromicro Conference on Parallel, Distributed and Network-based Processing',2,'F. Skopik; D. Schall; S. Dustdar','ieee/bpel security.csv','ieee','\0'),(398,'Improving the Quality of Architecture Design Through Peer-Reviews and Recombination','2015','0',' Software architecture design Design quality Peer-review Recombination Architectural design decision','Abstract Software architecture reviews help improve the quality of architecture design decisions. Traditional reviews are considered expensive and time-consuming. We assert that organizations can consider leveraging peer-reviews and recombination (i.e., promoting design improvement through sharing design ideas) activities to improve the quality of architectures and getting staff trained. This paper reports a case study aimed at exploring the potential impact of combining peer-review and recombination on the quality of architecture design and design decisions made by novice architects, who usually have limited practical experience of architecture design. The findings show that the use of peer-review and recombination can improve both the quality of architecture design and documented decisions. From the decision-making perspective, this study also identifies the main types of challenges that the participants faced during architectural decision making and reasoning. These findings can be leveraged to focus on the types of training novice architects may need to effectively and efficiently address the types of challenges identified in this study.','',1,'Mojtaba ShahinMuhammad Ali Babar','springer/service oriented architecture security.csv','springer',''),(399,'Cyber-physical systems challenges: a needs analysis for collaborating embedded software systems','2016','1',' Cyber-physical systems Computation Embedded systems Challenges Internet of Things Modeling and simulation','Abstract Embedding computing power in a physical environment has provided the functional flexibility and performance necessary in modern products such as automobiles, aircraft, smartphones, and more. As product features came to increasingly rely on software, a network infrastructure helped factor out common hardware and offered sharing functionality for further innovation. A logical consequence was the need for system integration. Even in the case of a single original end manufacturer who is responsible for the final product, system integration is quite a challenge. More recently, there have been systems coming online that must perform system integration even after deployment—that is, during operation. This has given rise to the cyber-physical systems (CPS) paradigm. In this paper, select key enablers for a new type of system integration are discussed. The needs and challenges for designing and operating CPS are identified along with corresponding technologies to address the challenges and their potential impact. The intent is to contribute to a model-based research agenda in terms of design methods, implementation technologies, and organization challenges necessary to bring the next-generation systems online.','Software & Systems Modeling',1,'Pieter J. MostermanJustyna Zander','springer/service oriented architecture security.csv','springer',''),(400,'Security testing of orchestrated business processes in SOA','2015','','Orchestrated Business Process; Security; SOA; Vulnerability','Service Oriented Architecture (SOA) has been widely used during the past decade due to its ability to seamlessly integrate various applications developed using different technologies. Web services based on open standards are the most commonly used technology to realize an SOA. Business processes are executed by appropriate orchestration of various services from different departments that belong to a single organization or from multiple organizations. Security is an important quality attribute that has to be built into any application that is developed using SOA. XML is the underlying technology for Web Service Description Language (WSDL), SOAP protocol and Business Process Execution Language (BPEL). It is highly probable that an attacker could inject malicious information into these XML files to modify the flow of the business process. Further, SOAP was not designed with security in mind, it is possible to tamper the SOAP messages while they are in transit. There exist a number of such potential vulnerabilities which lead to possible security breach in the individual services. In an orchestrated business process, there are possibilities of more vulnerabilities. One of the existing tools namely WS-Attacker is only capable of testing the security of individual web services alone. In spite of the widespread usage of SOA, currently there is limited automatic tool support for testing the security provided by an entire SOA application involving service orchestration. In this context, this paper focuses on designing and implementing a plug-in for WS-Attacker to analyze a few security vulnerabilities present in SOA business processes. © 2014 IEEE.','',2,'Hariharan C., Babu C.','scopus/bpel security.csv','scopus',''),(401,'A survey on quality attributes in service-based systems','2016','2',' Quality attributes Service-based systems Software design Survey Empirical study','Abstract Service-based systems have become popular in the software industry. In software engineering, it is widely acknowledged that requirements on quality attributes (e.g., performance, security, reliability) significantly impact the design of software systems. This study explores the role of quality attributes during the design of service-based systems. We investigate the significance of quality attributes when designing service-based systems and how quality attributes are addressed through design decisions, across application domains, and related to other aspects of software development, e.g., architecture documentation. We conducted a descriptive survey. The survey was done as an online questionnaire targeting practitioners. Furthermore, we included researchers with practical design experience. We obtained 56 valid responses. Most survey participants consider quality attributes and functionality as equally important and treat quality attributes explicitly rather than implicitly. Furthermore, dependability is the most relevant quality attribute in service-based systems; we do not find quality attributes that are particularly important in specific application domains. Most quality attributes are addressed by ad hoc decisions, rather than established architecture or design patterns or technologies. Only few decision alternatives are considered when making architectural decisions to address quality attributes. Our results partially confirm anecdotal evidence from current literature, but also strengthen previous claims by providing empirical evidence. Our results point to future research directions (e.g., exploring the impact of decision types on how well quality attributes can be achieved) and implications for practitioners (e.g., training makes a difference to how quality attributes are treated).','Software Quality Journal',1,'David AmellerMatthias GalsterParis AvgeriouXavier Franch','springer/soa security.csv','springer',''),(402,'Applications of ontologies in requirements engineering: a systematic review of the literature','2015','3',' Ontologies Requirements engineering Systematic literature review','Abstract There is an increase use of ontology-driven approaches to support requirements engineering (RE) activities, such as elicitation, analysis, specification, validation and management of requirements. However, the RE community still lacks a comprehensive understanding of how ontologies are used in RE process. Thus, the main objective of this work is to investigate and better understand how ontologies support RE as well as identify to what extent they have been applied to this field. In order to meet our goal, we conducted a systematic literature review (SLR) to identify the primary studies on the use of ontologies in RE, following a predefined review protocol. We then identified the main RE phases addressed, the requirements modelling styles that have been used in conjunction with ontologies, the types of requirements that have been supported by the use of ontologies and the ontology languages that have been adopted. We also examined the types of contributions reported and looked for evidences of the benefits of ontology-driven RE. In summary, the main findings of this work are: (1) there are empirical evidences of the benefits of using ontologies in RE activities both in industry and academy, specially for reducing ambiguity, inconsistency and incompleteness of requirements; (2) the majority of studies only partially address the RE process; (3) there is a great diversity of RE modelling styles supported by ontologies; (4) most studies addressed only functional requirements; (5) several studies describe the use/development of tools to support different types of ontology-driven RE approaches; (6) about half of the studies followed W3C recommendations on ontology-related languages; and (7) a great variety of RE ontologies were identified; nevertheless, none of them has been broadly adopted by the community. Finally, we conclude this work by showing several promising research opportunities that are quite important and interesting but underexplored in current research and practice.','Requirements Engineering',1,'Diego DermevalJéssyka VilelaIg Ibert BittencourtJaelson CastroSeiji IsotaniPatrick BritoAlan Silva','springer/service oriented architecture security.csv','springer',''),(403,'An Extension to UDDI for the Discovery of User Driven Web Services','2016','0','','Abstract Service registries are used by web service providers to publish services and registries are used by requestors to find them in an SOA (Service Oriented Architecture). The following drawbacks are presented in the main existing service registry specifications, UDDI (Universal Description, Discovery and Integration). First, only abstract, unscalable and inefficient definition of the web services publications is present in all UBR (Universal Business Registry) nodes. Second, it matches only the business name and service name given in the WSDL document to collect service information. In order to overcome these difficulties, author have proposed an efficient and effective UDDI architecture called E-UDDI, which extends the UDDI design by incorporating a QoS in additional bag in the business entity data structure. Moreover, to enable service customer for easily finding more appropriate service information, an effective service matching mechanism is adopted in the E-UDDI so that the user can take the decisions. Service discovery and publishing is improved considerably in the proposed system by means of an effective UDDI registry with flexible and more suitable service searching facility.','',1,'Anu Saini','springer/service oriented architecture security.csv','springer',''),(404,'Test-Enhanced Life Cycle for Composed IoT-Based Services','2013','0',' SOA IoT Test Life Cycle Composition Deployment','Abstract Major challenges in developing services for the Internet of Things (IoT) are based on heterogeneous interfaces and radio technologies. This paper proposes a knowledge driven service life cycle, which enables a structured utilisation of semantic descriptions for re-usability and testing. Furthermore the approach facilitates the process of encapsulating IoT resources into services.','',2,'Daniel KuemperEike Steffen ReetzDaniel HölkerRalf Tönjes','springer/bpmn security.csv','springer','\0'),(405,'Formalisation and Implementation of the XACML Access Control Mechanism','2012','4',' PBAC XACML formal semantics CASE tools','Abstract We propose a formal account of XACML, an OASIS standard adhering to the Policy Based Access Control model for the specification and enforcement of access control policies. To clarify all ambiguous and intricate aspects of XACML, we provide it with a more manageable alternative syntax and with a solid semantic ground. This lays the basis for developing tools and methodologies which allow software engineers to easily and precisely regulate access to resources using policies. To demonstrate feasibility and effectiveness of our approach, we provide a software tool, supporting the specification and evaluation of policies and access requests, whose implementation fully relies on our formal development.','',1,'Massimiliano MasiRosario PuglieseFrancesco Tiezzi','springer/service oriented architecture security.csv','springer','\0'),(406,'Cross-layer optimization with MIPv6-based multiple mobile routers for cognitive networks','2016','0',' Cognitive Radio Networks (CRN) Cross-layer optimization Mobile router (MR) Mobile IPv6 (MIPv6)','Abstract To allow secondary and primary concurrent transmissions achieving the increment of optimal mobile network performance in heterogeneous cognitive networks, this paper proposes a cross-layer optimization framework with a distributed cooperative MIPv6-based multiple mobile routers using adaptive opportunistic route optimization entitled Mobile IPv6 Route Optimization for Cognitive radio networks (MIROC) protocol. A gripping slant of MIROC protocol is the benefit to develop mobile cognitive routers based on MIPv6. The proposed protocol is elaborated in details from angular RO and multiangular routing which can be utilized in practical network deployment. The performance in M/M/n and M/M/∞ Queue and evaluation of cognitive mobile Network with multiple mobile routers using stochastic process in Markov chain model are analyzed.','Wireless Networks',1,'Dan Ye','springer/soa security.csv','springer',''),(407,'Addressing the evolution of automated user behaviour patterns by runtime model interpretation','2015','0',' System behaviour evolution Routine task automation Models at runtime Runtime interpretation of models','Abstract The use of high-level abstraction models can facilitate and improve not only system development but also runtime system evolution. This is the idea of this work, in which behavioural models created at design time are also used at runtime to evolve system behaviour. These behavioural models describe the routine tasks that users want to be automated by the system. However, users’ needs may change after system deployment, and the routine tasks automated by the system must evolve to adapt to these changes. To facilitate this evolution, the automation of the specified routine tasks is achieved by directly interpreting the models at runtime. This turns models into the primary means to understand and interact with the system behaviour associated with the routine tasks as well as to execute and modify it. Thus, we provide tools to allow the adaptation of this behaviour by modifying the models at runtime. This means that the system behaviour evolution is performed by using high-level abstractions and avoiding the costs and risks associated with shutting down and restarting the system.','Software & Systems Modeling',1,'Estefanía SerralPedro ValderasVicente Pelechano','springer/service oriented architecture security.csv','springer',''),(408,'Personality assessment using multiple online social networks','2015','0',' Online social networks Personality Facebook LinkedIn','Abstract Personality plays an important role in various aspects of our daily life. It is being used in many application scenarios such as i) personalized marketing and advertisement of commercial products, ii) designing personalized ambient environments, iii) personalized avatars in virtual world, and iv) by psychologists to treat various mental and personality disorders. Traditional methods of personality assessment require a long questionnaire to be completed, which is time consuming. On the other hand, several works have been published that seek to acquire various personality traits by analyzing Internet usage statistics. Researchers have used Facebook, Twitter, YouTube, and various other websites to collect usage statistics. However, we are still far from a successful outcome. This paper uses a range of divergent features of Facebook and LinkedIn social networks, both separately and collectively, in order to achieve better results. In this work, the big five personality trait model is used to analyze the five traits: openness to experience, conscientiousness, extroversion, agreeableness, and neuroticism. The experimental results show that the accuracy of personality detection improves with the use of complementary features of multiple social networks (Facebook and LinkedIn, in our case) for openness, conscientiousness, agreeableness, and neuroticism. However, for extroversion we found that the use of only LinkedIn features provides better results than the use of only Facebook features or both Facebook and LinkedIn features.','Multimedia Tools and Applications',1,'Shally BhardwajPradeep K. AtreyMukesh K. SainiAbdulmotaleb El Saddik','springer/service oriented architecture security.csv','springer',''),(409,'Towards Unified Vulnerability Assessment with Open Data','2013','1','CVE;OVAL;SCAP;SOA;cloud computing;computer security;vulnerability assessment','Continuous and comprehensive vulnerability management is a difficult task for administrators. The difficulties are not because of a lack of tools, but because they are designed without service-oriented architecture viewpoint and there is insufficient trustworthy machine-readable input data. This paper presents a service-oriented architecture for vulnerability assessment systems based on the open security standards and related contents. If the functions are provided as a service, various kinds of security applications can be interoperated and integrated in loosely-coupled way. We also studied the effectiveness of the available public data for automated vulnerability assessment. Despite the large amount of efforts that goes toward describing machine-readable assessment test in conformity to the OVAL standard, the evaluation result proves inadequate for comprehensive vulnerability assessment. Only about 12% of all the known vulnerabilities are covered by existing OVAL tests, while some popular client applications in the Top 30 with most unique vulnerabilities are covered more than 90%.','Computer Software and Applications Conference Workshops (COMPSACW), 2013 IEEE 37th Annual',1,'A. Nakamura','ieee/service oriented architecture security.csv','ieee','\0'),(410,'Concurrent home multimedia conferencing platform using a service component architecture','2015','0',' Concurrent Ubiquitous Home multimedia conferencing Platform Service component architecture','Abstract Recent advances in audio/video processing, communication protocols, and Internet technologies have allowed for high-quality multimedia conferencing services at relatively low cost in the digital home. This paper presents a high concurrent and ubiquitous home multimedia conferencing platform using a service component architecture. For the proposed architecture, we focus on the design of a home multimedia conferencing platform framework, as well as home conferencing components, session management for media signaling, load balancing, and concurrent control for conferencing process management. We also present an efficient network address translation and a firewall traversal schema. High concurrency of the proposed architecture is achieved by coordinated distributed home conferencing services and concurrent control for conferencing process management. The performance of the proposed home multimedia conferencing platform has been evaluated, and the results show that the proposed architecture greatly improves the concurrency.','Multimedia Tools and Applications',2,'Cheng BoHu XiaoxiaoZhang ShichengChen Junliang','springer/bpel security.csv','springer',''),(411,'Performance evaluation of a massively parallel ESB-oriented architecture','2012','','ESB-Oriented Architecture; Massively Parallel Processing; Multithreading; Performance Evaluation','Enterprise Service Bus (ESB) is an SOA-based software architecture for business application integration in distributed and heterogeneous environments. Most of open-source or commercial solutions offer the same set of basic services such as message transformation, message routing, security, etc... however, none of them take advantage of the multicore/multiprocessor technologies which make possible the massively parallel processing. This work concerns performance evaluation of a massively parallel ESB oriented architecture (denoted MPAB). After a brief description of its main components, we present the results of this evaluation based on operational analysis. © 2012 IEEE.','',1,'Benosman R., Albrieux Y., Barkaoui K.','scopus/soa security.csv','scopus','\0'),(412,'Proposal for Interoperability Standards Applications in the Health Sector','2015','0',' CDA HL7 HCEU Interoperation PIX SOA XDS','Abstract The technological framework of the health sector is complex and problematic; each actor has created islands of information, where the exchange of information with other actors is the exception, where this provides a sea of technological heterogeneity and information systems providers with different stages of development even inside institutions. This scheme is not very effective in coordinating policies and implements concrete joint projects to improve the global search. In this scenario the efforts are not coordinated, processes are duplicated, yield is lost and increase costs. This paper presents the results of a technology proposal that allows solving this problematic.','',1,'Alejandro Paolo DazaBrayan S. Reyes DazaOctavio J. Salcedo Parra','springer/service oriented architecture security.csv','springer',''),(413,'Software-as-a-service (SaaS): Perspectives and challenges','2014','11','customization; multi-tenancy architecture; redundancy and recovery; SaaS architecture; scalability; software-as-a-service','Software-as-a-service (SaaS) has received significant attention recently as one of three principal components of cloud computing, and it often deals with applications that run on top of a platform-as-a-service (PaaS) that in turn runs on top of infrastructure-as-a-service (IaaS). This paper provides an overview of SaaS including its architecture and major technical issues such as customization, multi-tenancy architecture, redundancy and recovery mechanisms, and scalability. Specifically, a SaaS system can have architecture relating to a database-oriented approach, middleware-oriented approach, service-oriented approach, or PaaS-oriented approach. Various SaaS customization strategies can be used from light customization with manual coding to heavy customization where the SaaS system and its underlying PaaS systems are customized together. Multi-tenancy architecture is an important feature of a SaaS and various trade-offs including security isolation, performance, and engineering effort need to be considered. It is important for a SaaS system to have multi-level redundancy and recovery mechanisms, and the SaaS system needs to coordinate these with the underlying PaaS system. Finally, SaaS scalability mechanisms include a multi-level architecture with load balancers, automated data migration, and software design strategies. © 2014 Science China Press and Springer-Verlag Berlin Heidelberg.','',1,'Tsai W.T., Bai X.Y., Huang Y.','scopus/service oriented architecture security.csv','scopus','\0'),(414,'Developing a Service Oriented IT Platform for Synchromodal Transportation','2014','0',' Service Oriented Architecture SOA Synchromodal IT platform Logistics Multimodal Transportation','Abstract Due to rapid global economic growth and competition, there is an increased pressure on logistic companies. On one hand, they have to be flexible and agile, to meet Service Level Agreements (SLA’s) with clients, while on the other hand they have to comply with government regulations and environment protection laws. Better utilization of different modes of transport and improved decision making can contribute to solving both these challenges. This requires increased co-operation between logistic service providers (LSPs). Our aim is to develop an IT platform which facilitates increased cooperation between logistic partners and allows them to function in a synchromodal way. We use the principles of Service Oriented Architecture (SOA) to design the IT platform. Using this platform, a single consignment can be fulfilled using different modes of transport and unforeseen problems in transportation can be dealt with. A consortium of leading Dutch logistic companies will be the test bed for this research.','',1,'Prince Mayurank Singh','springer/service oriented architecture security.csv','springer','\0'),(415,'Service-oriented intelligent group decision support system: Application in transportation management','2014','2',' Service-oriented architecture Group decision support system Transportation Management Artificial intelligence','Abstract In today’s ever changing consumer driven market economy, it is imperative for providers to respond expeditiously to the changes demanded by the customer. This phenomenon is no different in the transportation sector in which a service-oriented Group Decision Support System (GDSS) provides an important role in transportation enterprise to effectively manage and rapidly respond to the varying needs of the customer. In this paper, we explore the integration problem of service-oriented system and intelligence technology through the use of a GDSS. Initially, we analyze a service-oriented architecture and then, propose the design architecture of a service-oriented GDSS. Next, we put forward a general framework that integrates the intelligent techniques as a component into the architecture of service oriented GDSS. In addition, we illustrate how Artificial Intelligence techniques can resolve the conflicts of distributed group decisions. The paper is concluded by providing a number of applications in the railway management system that demonstrates the benefits of the utilization of a service oriented intelligent GDSS.','Information Systems Frontiers',1,'Shiwei HeRui SongSohail S. Chaudhry','springer/service oriented architecture security.csv','springer','\0'),(416,'Towards Enabling Behavioral Trust among Participating Cloud Forensic Data Center Agencies','2012','1','','Abstract In this position paper, the authors present some of the concerns with respect to monitoring and managing the behavioral trust of participants in a forensic cloud data center environment. The basic idea of the approach is to view the interaction process of collaborating forensic cloud data centers overseeing an existing investigation or a set of such investigations across distinct jurisdictions. This work is an important first step to support the need for enabling trustable cloud digital investigations among participating law enforcement agencies.','',1,'Sean ThorpeTyrone GrandisonIndrajit RayAbbie Barbir','springer/service oriented architecture security.csv','springer','\0'),(417,'Towards a BPEL model-driven approach for Web services security','2012','0','AOP;BPEL;Security;UML;Web Services','By handling the orchestration, composition and interaction of Web services, the Business Process Execution Language (BPEL) has gained tremendous interest. However, such process-based language does not assure a secure environment for Web services composition. The key solution cannot be seen as a simple embed of security properties in the source code of the business logic since the dynamism of the BPEL process will be affected when the security measures get updated. In this context, several approaches have emerged to tackle such issue by offering the ability to specify the security properties independently from the business logic based on policy languages. Nevertheless, these languages are complex, verbose and require programming expertise. Owing to these difficulties, specifying and the enforcing BPEL security policies become very tedious tasks. To mitigate these challenges, we propose in this paper, a novel approach that takes advantage of both the Unified Modeling Language (UML) and the Aspect Oriented Paradigm (AOP). By elaborating a UML extension mechanism, called UML Profile, our approach provides the users with model-based capabilities to specify aspects that enforce the required security policies. On the other hand, it offers a high level of flexibility when enforcing security hardening solutions in the BPEL process by exploiting the AOP approach. We illustrate our approach through an example of the dynamic generation and integration of model-based security aspects in a BPEL process.','Privacy, Security and Trust (PST), 2012 Tenth Annual International Conference on',2,'H. Tout; A. Mourad; H. Yahyaoui; C. Talhi; H. Otrok','ieee/bpel security.csv','ieee','\0'),(418,'Research on innovating, evaluating and applying multicast routing technique for routing messages in service-oriented routing','2012','0','','MANET (short for Mobile Ad-Hoc Network) consists of a set of mobile network nodes, network configuration changes very fast. Each node will act as a router to maintain network operation. There is no central node for controlling entire network. So routing in MANET is very important.','Ultra Modern Telecommunications and Control Systems and Workshops (ICUMT), 2012 4th International Congress on',1,'Nguyen Thanh Long; Nguyen Duc Thuy; Pham Huy Hoang','ieee/service oriented architecture security.csv','ieee','\0'),(419,'OSIRIS-SR: A Safety Ring for self-healing distributed composite service execution','2012','3','','The advent of service-oriented architectures has strongly facilitated the development and deployment of large-scale distributed applications. The middleware for orchestrating applications that consist of several distributed services has to be inherently distributed as well, in order to provide a high degree of scalability and to avoid any single point of failure. Self-healing execution of composite services requires replicated control metadata and instance data in a way that does not affect adaptivity and elasticity of the middleware. In this paper, we present OSIRIS-SR, a decentralized approach to self-healing composite service execution in a distributed environment. OSIRIS-SR exploits dedicated node monitors, organized in a self-organizing Safety Ring, for the replication of control data. Moreover, OSIRIS-SR leverages virtual stable storage for managing composite service instance data in a robust way. We present the architecture of OSIRIS-SR\'s Safety Ring and discuss how it provides self-healing composite service execution. The performance evaluation shows that the additional gain in robustness has only marginal effects on the scalability characteristics of the system.','2012 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS)',1,'N. Stojnić; H. Schuldt','ieee/service oriented architecture security.csv','ieee','\0'),(420,'Modeling information systems from the viewpoint of active documents','2015','0',' Information System Web information system Document-centric process and data modeling Process algebra Information system architecture web services Service-oriented architectures Zachman framework','Abstract The development of document handling by organizations at the level of business processes and business information systems leads to the phenomenon that the majority of documents and their contents remain in semi-structured format and definite minorities of documents are directly mapped onto structured databases. The rapidly evolving technology on the database field provides the opportunity to manage directly the semi-structured documents in line with the requirements of business processes. A continuum of possible document formats may exist in business environments. The documents can be categorized by the organization of the underlying data collections and according to the necessity and capability of data included in documents as whether wholly or partially is to be structured. The most modern database technology yields tools for handling and retrieving data making use of semi-structured and unstructured data. Our proposed approach (1) on one hand provides a theoretical framework for modeling IS to shape into some structure, (2) on the other hand yields guidance for design method to employ it for practical application with the extension of specific elementary models. The proposed modeling method that places the emphasis onto the documents and their symbiotic life with processes helps in understanding the behavior of most modern information systems. As a result, the combination of document-centric modeling and the enterprise architecture approach gives an opportunity for a unified modeling approach that keeps an eye on Conway’s thesis that states that software architecture congruent with the structure of development team, and this statement may be paraphrased that the overall document structure may reflect the structure of the specific organization.','Vietnam Journal of Computer Science',1,'Bálint MolnárAndrás Benczúr','springer/service oriented architecture security.csv','springer',''),(421,'Restoring security of evolving software models using graph transformation','2015','2',' Evolution Graph transformation Model transformation Model-based software engineering security','Abstract Security certification of complex systems requires a high amount of effort. As a particular challenge, today’s systems are increasingly long-living and subject to continuous change. After each change of some part of the system, the whole system needs to be re-certified from scratch (since security properties are not in general modular), which is usually far too much effort. When models for software get changed, this can lead to security weaknesses that are also part of the software system that is derived from those models. Hence, it is important to check the models with respect to security properties and correct them respectively. To address this challenge, we present an approach which not only finds security weaknesses but can also correct them in a tool-supported way. As time goes by, a diverse number of changing requirements that may be security-related and non-security-related lead to an evolving system that met its security requirements at design time but can contain vulnerabilities with respect to meanwhile updated security knowledge. Supported by patterns we can describe and detect potential flaws that may arise in models, such as inconsistencies in security requirements. Potential violations can be formalized in the patterns as well as the correction alternatives to fix these. It is based on graph transformation and can be applied to different types of models and violations. For flaw detection, these patterns are used as the left-hand sides of graph transformation rules. Using graph transformation, we can further correct the models and establish that they no longer violate the security requirements under investigation. The approach is supported by a tool which can check whether these patterns arise in models and assist the user in correcting the security vulnerabilities.','International Journal on Software Tools for Technology Transfer',2,'Jens BürgerJan JürjensSven Wenzel','springer/bpmn security.csv','springer',''),(422,'SOA in the CoNSIS coalition environment: Extending the WS-I Basic Profile for using SOA in a tactical environment','2012','','autarchy; fully distributed; NNEC; non-hierarchical; schema-based compression; SOAP-based security mechanisms','This article describes the elements necessary to allow SOA based CCIS systems to operate in a mobile tactical environment. All elements which are mandatory to allow a SOA based implementation to react to bandwidth limited, jammed and temporarily unavailable network connections and to span a common information domain across various coalition partners are listed in comparison to the WS-I Basic Profile. © 2012 Military Univ of Tech.','',1,'Seifert H., Franke M., Diefenbach A., Sevenich P.','scopus/soa security.csv','scopus','\0'),(423,'Reliable Messaging for BPEL Processes','2006','2','','There are currently two specifications that address reliable messaging in Web services: WS-reliablemessaging and WS-reliability. Both specifications consider the general case of Web services as being black boxes with WSDL interfaces. In this paper, we address the reliable messaging requirements of composite Web wervices in BPEL. In such Web services, the BPEL programmer sees not only the WSDL interface but also the implementation, i.e., the process definition. BPEL processes have several reliable messaging requirements, which cannot be supported by current reliable messaging specifications. The most challenging of those requirements is to support ordered message delivery between many endpoints. Current reliable messaging specifications support only reliable messaging between two endpoints. This paper presents several approaches to support multi-party reliable messaging and introduces a reliable messaging Web service for BPEL that is integrated with a BPEL engine by using a process container framework. This Web service supports the reliable messaging requirements of BPEL processes and its implementation is based on Sandesha, which is an open source implementation of WS-ReliableMessaging','2006 IEEE International Conference on Web Services (ICWS\'06)',2,'A. Charfi; B. Schmeling; M. Mezini','ieee/bpel security.csv','ieee','\0'),(424,'Development of manufacturing execution system service oriented software architecture','2013','0','manufacturing execution system;service oriented architecture;software architecture;view model','This paper discusses and the main features of MES software architecture. Based on considered requirements we offer implementation of one of the possible options of the software architecture. In addition, generic scheme and architectural principles were proposed. Paper describes the level of service and the level of client that uses services, design pattern for a client that effectively meets the architectural requirements and shows the possibility of joint development using given architecture.','Control and Communications (SIBCON), 2013 International Siberian Conference on',1,'K. A. Nechaev; V. V. Matveev; D. D. Zykov','ieee/service oriented architecture security.csv','ieee','\0'),(425,'Modeling security requirements in service based business processes','2012','4','BPMN; Business Process Modeling; Non-functional properties; Security','Non-functional concerns such as security are essential in business process management and in service based realizations of business processes. Many works and efforts addressed these concerns on the service layer by developing a number of XML-based standards such as WS-Security and other WS-*standards. However, there are non-functional properties that are on the business process layer and need therefore to be specified in business process models. We notice nevertheless that current business process modeling languages lack appropriate means for specifying non-functional properties such as security for example. In this paper, we present a model driven approach for the development of service based business processes which supports both functional and non functional concerns. We also introduce the concept of profiles to BPMN in analogy to UML Profiles. Based on that, we present a BPMN profile to specify security properties in business process models and illustrate its usage through an example. © 2012 Springer-Verlag Berlin Heidelberg.','',2,'Turki S.H., Bellaaj F., Charfi A., Bouaziz R.','scopus/bpmn security.csv','scopus','\0'),(426,'Towards a BPEL model-driven approach for web services security','2012','','AOP; BPEL; Security; UML; Web Services','By handling the orchestration, composition and interaction of Web services, the Business Process Execution Language (BPEL) has gained tremendous interest. However, such process-based language does not assure a secure environment for Web services composition. The key solution cannot be seen as a simple embed of security properties in the source code of the business logic since the dynamism of the BPEL process will be affected when the security measures get updated. In this context, several approaches have emerged to tackle such issue by offering the ability to specify the security properties independently from the business logic based on policy languages. Nevertheless, these languages are complex, verbose and require programming expertise. Owing to these difficulties, specifying and the enforcing BPEL security policies become very tedious tasks. To mitigate these challenges, we propose in this paper, a novel approach that takes advantage of both the Unified Modeling Language (UML) and the Aspect Oriented Paradigm (AOP). By elaborating a UML extension mechanism, called UML Profile, our approach provides the users with model-based capabilities to specify aspects that enforce the required security policies. On the other hand, it offers a high level of flexibility when enforcing security hardening solutions in the BPEL process by exploiting the AOP approach. We illustrate our approach through an example of the dynamic generation and integration of model-based security aspects in a BPEL process. © 2012 IEEE.','',2,'Tout H., Mourad A., Yahyaoui H., Talhi C., Otrok H.','scopus/bpel security.csv','scopus','\0'),(427,'Verification Requirements for Secure and Reliable Cloud Computing','2013','0','Cloud computing;service level agreements;verification requirements','Cloud computing has been widely adopted in a large variety of applications. This brings besides others also many new challenges in the fields of security and reliability. Like any other security and correctness sensitive computer system, it is beneficial to fully verify cloud solutions to ensure their correctness. Verification and validation of distributed systems has been widely studied, however, it has not been analyzed whether verification approaches in distributed systems can be directly applied to cloud computing or not. In this study, we present a comparison of verification requirements for distributed computing and cloud computing to establish the need of a specialized verification model/architecture for cloud computing. We differentiate the verification in distributed and cloud systems based on their business models, architecture models, programming models and security models. We argue that service level agreements (SLAs), which span across the cloud, become more critical in the verification process. Based on our study, we present an abstract verification model focusing specifically on cloud computing, paving the way to an implementation of a viable verification model which can practically verify complex cloud systems.','Cloud and Green Computing (CGC), 2013 Third International Conference on',1,'W. A. Ghumman; J. Lässig','ieee/service oriented architecture security.csv','ieee','\0'),(428,'Improving Access Control for Mobile Consumers of Services by Use of Context and Trust within the Call-Stack','2012','0',' Trust Web Services Distributed Trust Management Mobile Clients Call-Stack','Abstract Access control is a key issue in the deployment of systems within corporations. To comply with legal and business requirements and to prevent unauthorized access, the identification and authentication of all users is required. This is typically achieved by using an access control system that performs the identification & authentication of each user at the point of entry into the system. However, as the systems evolve and thus become more complex it is difficult to ensure reliable access control, especially if they are accessed via mobile devices. This paper focuses on improving the existing access control approach for service-oriented systems by applying the concept of device comfort to service providers. Similar to the concept of device comfort, service providers are empowered to decide if they feel comfortable with requests sent to them. This paper presents and evaluates the idea of integrating trust evaluations into service-oriented systems by requiring each service provider to evaluate the trustworthiness of requests and to share their evaluations as part of the call-context within the call-stack.','',1,'Min LuoRalph Deters','springer/service oriented architecture security.csv','springer','\0'),(429,'From Cloud Governance to IoT Governance','2013','3','Cloud computing;Cloud governance;Internet of things;IoT governance','Recent migration towards the cloud has lead to boom of initiatives that address key issues related to it. One of these issues, integrating various available cloud services while providing automated lifecycle management, was addressed by cloud governance. However, while mostly until now computers and phones were linked to the internet, new devices like tablets, sensors, smart devices (embedded devices) are now making their way into this environment. This, in turn, raises questions related to managing, governing these devices. Similarly to how cloud governance extends SOA governance, this article will detail the way in which IoT governance extends cloud governance.','Advanced Information Networking and Applications Workshops (WAINA), 2013 27th International Conference on',1,'A. Copie; T. F. Fortis; V. I. Munteanu; V. Negru','ieee/service oriented architecture security.csv','ieee','\0'),(430,'On the comprehension of workflows modeled with a precise style: results from a family of controlled experiments','2015','0',' Family of experiments Precise and Ultra-light styles UML activity diagrams Workflow modeling','Abstract In this paper, we present the results from a family of experiments conducted to assess whether the level of formality/precision in workflow modeling, based on UML activity diagrams, influences two aspects of construct comprehensibility: correctness of understanding and task completion time. In particular, we have considered two styles for workflow modeling with different levels of formality: a precise style (with specific rules and imposed constraints) and an ultra-light style (no rules, no imposed constraints). Experiments were conducted with 111 participants (Bachelor and Master students). In each experiment, participants accomplished comprehension tasks on two workflows, modeled either with the precise style or with a lighter variant. The main results from our data analysis can be summarized as follows: (i) all participants achieved a significantly better comprehension of workflows written in the precise style, (ii) the style had no significant impact on task completion time, (iii) more experienced participants benefited more, with respect to less experienced ones, from the precise style, as for their correctness of understanding, and (iv) all participants found the precise style useful in comprehending workflows.','Software & Systems Modeling',2,'Gianna ReggioFilippo RiccaGiuseppe ScannielloFrancesco Di CerboGabriella Dodero','springer/bpel security.csv','springer',''),(431,'Unique Identity Enabled Service Delivery through NSDG','2012','0',' NSDG Aadhaar Authentication Unique Identity Service Delivery Aadhaar-enabled Service Delivery','Abstract Unique Identity (Aadhaar) is issued by Unique Identification Authority of India (UIDAI) to the residents of India. With Aadhaar enrolment happening in full swing across the country, there is a strong need to formulate and furnish Aadhaar-enabled Service Delivery for the citizens. The National e-Governance Service Delivery Gateway (NSDG) as a messaging middleware provides Integrated Service Delivery based on Service Oriented Architecture for various government services. By positioning NSDG as Authentication User Agency (AUA) in Aadhaar Authentication Ecosystem, it can cater Aadhaar Authentication Service to all the government departments who wish to offer Aadhaar-enabled services and benefit schemes to the citizens. NSDG as AUA will provide Aadhaar authentication in conjunction with service access portal authentication process. With this NSDG can deliver Aadhaar-enabled Services to citizens based on online identity verification, thus improving efficiency, reliability and transparency in service delivery to the citizens. In this paper we will present integration of Aadhaar Authentication service with Messaging service of NSDG and its benefits.','',1,'Swapnil ShrivastavaZia SaquibGopinath P.Peeyush Chomal','springer/service oriented architecture security.csv','springer','\0'),(432,'SOA framework for geriatric remote health care using wireless sensor network','2013','2','Healthcare services; Privacy; Sensor web enablement; Vital signs; Wireless sensor network','Remote healthcare system is widely used in developed and developing countries. Rapid development in network technologies and Sensor Web Enablement (SWE) provide anytime anywhere access of healthcare data. But Sensor Web Enablement faces challenges such as privacy, security, scalability etc. This paper proposes a framework that addresses above issues. The proposed framework comprises of Wireless Body Sensor Network (WBSN), Service Oriented Architecture (SOA) and web services to provide health services to the doctors, caregivers and patients. In order to address the privacy issues of sensitive health data, the proposed framework uses role based authorization technique to formulate the rules and decide whether to allow or deny the user access request. The proposed framework has been implemented using Java. Experimental results show that the proposed SOA framework guarantees high quality service with average response time of 0.237 ms and average throughput of 87%. © 2013 The Authors. Published by Elsevier B.V.','',1,'Ganapathy K., Priya B., Priya B., Dhivya A., Prashanth V., Vaidehi V.','scopus/service oriented architecture security.csv','scopus','\0'),(433,'Reinforcing Math Knowledge by Immersing Students in a Simulated Learning-By-Teaching Experience','2014','3',' Intelligent tutoring systems Learning-by-teaching Mathematics Student model Software agent Teachable agents','Abstract We often understand something only after we’ve had to teach or explain it to someone else. Learning-by-teaching (LBT) systems exploit this phenomenon by playing the role of tutee . BELLA, our sixth-grade mathematics LBT systems, departs from other LTB systems in several ways: (1) It was built not from scratch but by very slightly extending the ontology and knowledge base of an existing large AI system, Cyc. (2) The “teachable agent”—Elle—begins not with a tabula rasa but rather with an understanding of the domain content which is close to the human student’s. (3) Most importantly, Elle never actually learns anything directly from the human tutor! Instead, there is a super-agent (Cyc) which already knows the domain content extremely well. BELLA builds up a mental model of the human student by observing them interact with Elle. It uses that Socratically to decide what Elle’s current mental model should be (what concepts and skills Elle should already know, and what sorts of mistakes it should make) so as to best help the user to overcome their current confusions. All changes to the Elle model are made by BELLA, not by the user—the only learning going on is BELLA learning more about the user—but from the user’s point of view it often appears as though Elle were attending to them and learning from them. Our main hypothesis is that this may prove to be a particularly powerful and effective illusion to maintain.','International Journal of Artificial Intelligence in Education',1,'Douglas B. LenatPaula J. Durlach','springer/webservice security.csv','springer','\0'),(434,'Proceedings of the 2012 IEEE 6th International Conference on Software Security and Reliability, SERE 2012','2012','','','The proceedings contain 31 papers. The topics discussed include: an autonomic framework for integrating security and quality of service support in databases; VRank: a context-aware approach to vulnerability scoring and ranking in SOA; security impacts of virtualization on a network testbed; CRAX: software crash analysis for automatic exploit generation by modeling attacks as symbolic continuations; a study of using two-parameter generalized pareto model to analyze the fault distribution of open source software; DESERVE: a framework for detecting program security vulnerability exploitations; on the effective use of security test patterns; toward systematic construction of timing diagrams from UML/MARTE behavioral models for time-triggered embedded software; a precise information flow measure from imprecise probabilities; using weighted attributes to improve cluster test selection; and mobile application and device power usage measurements.','',1,'[No author name available]','scopus/soa security.csv','scopus','\0'),(435,'Intelligent based large scale multi agent\'s resource management on shopping service with security','2012','1','Agent based grid service for shopping service;Agent\'s Resource Management Technique;Grid service deployment Life Cycle;Integrated Agent Migration based Hash Search;Service Oriented Computing','Grid computing is an Internet based large scale computing network. It works with resources and services for the purpose sharing in the network from their own or lease based. Power of Grid computing is everywhere present over the world for computing the solution for the problem through Resource management technique (RMT). RMT consist of Resource requester, resource matchmaker for a task, Resource provider and Agent-based resource manager. Agent-based resource manager produce enhanced Resource discovery service. Agent is software, decision maker for grid service. Grid service is requiring when, where, what type, alternate service arrangement and how to discover the services for public / private grid network. Multiple Agents are available in between the grid supplier and client. Multiple Agents communicated together through message passing via grid network. Large scale agent in the sense number of agents is large with big data handling capability. In each grid site active optimized agents are presented for execute the job. Each agent has a unique ID and different role in grid computing network. In some situation agents are used to migrate the one supplier to another supplier easily that is work replacement carried out by multi agent. Overloaded agent\'s host is relocating the service to other agent\'s host named as agent migration. Little work and idle agents are waiting for upcoming job. For deploying the application via host, first predict the best agent from a lot of distributed active agents. Buyer or consumer asks the service request from the supplier or seller. In this pairing service, the multi agents are acting as bridge between Buyer and supplier. List of Intelligent based large scale multi agents are deployment agent, task agent, mobility agent, optimization agent, matchmaker agent, mobile agent, supplier agent, resource agent, application agent. Agent software is used to replace the difficulty of shopping & shipment application (service) through Servic- Oriented Computing (SOC). Shopping process fully will take care by grid agents. Agents are assigning for grid Trust purpose and Security problems also overcome by the agents based on pseudo random number RSA algorithm through Grid Security Infrastructure (GSI).','2012 Nirma University International Conference on Engineering (NUiCONE)',1,'R. Surendran; B. P. Varthini','ieee/service oriented architecture security.csv','ieee','\0'),(436,'A Computational Model of XACML–Based Access Control Management in Distributed Networks','2014','0',' distributed access control enforcement XACML rule combining algorithms networks of parallel multiset string processors information dynamics developmental systems','Abstract In this paper, we propose a novel approach to enforcing eXtensible Access Control Markup Language (XACML) policy specifications in distributed environments. Our approach is based on a formal language theoretic construction, a variant of networks of parallel language processors. The language processors form teams, send and receive information through component and team level filters. The hierarchical nature of the network supports multiple levels of nesting. Consequently, different security needs can be defined at varying levels of granularity. We use various context conditions for filtering information, thus controlling information flow. Our theoretical contributions include establishing the connection between the growth of the number of strings at the components of the networks and the growth functions of developmental systems.','',1,'Katalin Anna Lázár','springer/service oriented architecture security.csv','springer','\0'),(437,'Aligning service-oriented architectures with security requirements','2012','1','alignment; evolution; security requirements; SOA','Aligning requirements and architectures is a long-standing concern in software engineering. Alignment is crucial in the area of systems evolution, wherein requirements and system architectures keep changing after system deployment. We address a specific alignment problem, namely, checking the compliance of a service-oriented architecture-representing a composite service-with security requirements. Service-oriented architectures are dynamic (services can be replaced on-the-fly), and assessing compliance with security requirements is key, since non-compliance may lead to sanctions as well as privacy violation. After motivating and describing the problem, we propose algorithms to check two specific security requirements: non-disclosure and non-repudiation. We illustrate the approach using an e-government scenario. © 2012 Springer-Verlag.','',1,'Salnitri M., Dalpiaz F., Giorgini P.','scopus/service oriented architecture security.csv','scopus','\0'),(438,'Another look at the middleware for dependable distributed computing','2012','2',' Middleware Dependability Cloud computing Large-scale systems','Abstract Key concepts of reliable distributed computing developed during the 1980s and 1990s (e.g., transactions, replication) influenced the standards based middleware such as CORBA and Java EE. This middleware has evolved steadily over the years with message passing facilities to support construction of loosely coupled systems. However, the way networked computing is being used for business and social uses is undergoing rapid changes as new ways of constructing distributed execution environments from varieties of resources, ranging from computational, storage, network to application level services, provided by globally distributed service providers are emerging. In light of these developments, the paper examines what core concepts, components, and techniques that will be required in the next-generation middleware for dependable distributed computing. The paper puts forward the case for five topics for further research: better coordination facilities for loosely coupled systems, restructuring of the middleware stack for supporting multi-tenancy, replication in the large, negotiation, and enforcement of service agreements, and accountability.','Journal of Internet Services and Applications',1,'Mark LittleSantosh ShrivastavaStuart Wheater','springer/service oriented architecture security.csv','springer','\0'),(439,'Cloud Infrastructure for Higher Education: The Sullivan Experience','2014','0','Cloud Migration;Cloud Security and Cloud Service Provider;IaaS;PaaS;SLA;SaaS','The growth in data traffic within higher institutions has always been accompanied with the adoption of a more scalable IT infrastructure. With the increasing budgetary constraints, cloud computing (a disruptive technology) presents an attractive means to address the scalability challenges while realizing the potential of ubiquitous IT services. The on-demand business proposition of the cloud provides virtualized resources (software, platform, and infrastructure) with far-reaching efficiencies that have lowered the initial and operating IT costs for both small and large organizations. In migrating to the cloud environments, various organizations encounter challenges and experiences which are worthy of considerations by new entrants and established users. In this paper, we present the experiences of Sullivan University in transitioning to the complex cloud environment, in which a mixture of pilot and phased conversion steps were deployed in the migration process.','Information and Computer Technology (GOCICT), 2014 Annual Global Online Conference on',1,'E. Udoh; M. Khan; M. Grosse; D. Arnette','ieee/service oriented architecture security.csv','ieee','\0'),(440,'Intelligible software delivery in smart environments supported by a macro and micro context awareness model','2013','0',' Context-awareness Smart environment Service delivery Intelligibility','Abstract Smart environments help to increase the autonomy and quality of life of people with special needs (PwSN) through adapted assistive services. In conjunction with context awareness and service delivery mechanisms, it is possible to dynamically deliver services to users by taking into account contextual information, e.g., user’s locations, devices’ states, current activities. However, implementing such systems in actual smart spaces is not trivial. The micro and macro context awareness model helps in defining layers on which contextual information are processed as close as possible from their sources (micro), without losing the benefits of information processing at a systemic level (macro). This paper describes the micro and macro context awareness model and its uses in the implementation of a service provision system for smart environments. Transparency and intelligibility are important factors in context awareness system, which help developers to fully understand the full behavior of the systems and help users to learn how the systems work. We therefore accompanied our micro and macro model with an intelligibility model which allow the generation of explanations describing the system’s behaviors according to the processed context. Finally, results coming from the evaluations of the micro/macro model and comparison with related works are presented.','Health and Technology',1,'Charles Gouin-VallerandPatrice RoyBessam AbdulrazakSylvain GirouxAnind Dey','springer/soa security.csv','springer','\0'),(441,'Dynamic provisioning in multi-tenant service clouds','2012','2',' Service-oriented architecture Service clouds Cloud computing Multi-tenant systems','Abstract Cloud-based systems promise an on-demand service provisioning system along with a “pay-as-you-use” policy. In the case of multi-tenant systems this would mean dynamic creation of a tenant by integrating existing cloud-based services on the fly. Presently, dynamic creation of a tenant is handled by building the required components from scratch. Although multi-tenant systems help providers save cost by allocating multiple tenants to the same instance of an application, they incur huge reconfiguration costs. Cost and time spent on these reconfiguration activities can be reduced by re-constructing tenants from existing tenant configurations supported by service providers. Multi-tenant cloud-based systems also lack the facility of allowing clients to specify their requirements. Giving clients the flexibility to specify requirements helps them avoid spending an excessive amount of time and effort looking through a list of services, many of which might not be relevant to them. Moreover, dynamic provisioning in the cloud requires an integrated solution across the technology stack (software, platform and infrastructure) combining functional, non-functional and resource allocation requirements. Existing research works in the area of web service matching, although numerous, still fall short, since they usually consider each requirement type in isolation and cannot provide an integrated solution. To that end, in this paper we investigate the features needed for dynamic service provisioning on the cloud. We propose a novel User Interface-Tenant Selector-Customizer (UTC) model and approach, which enables cloud-based services to be systematically modeled and provisioned as variants of existing service tenants in the cloud. Our approach considers functional, non-functional and resource allocation requirements, which are explicitly specified by the client via the user interface component of the model. To the best of our knowledge, ours is the first such integrated approach. We illustrate our ideas using a realistic running example, and also present a proof-of-concept prototype built using IBM’s Rational Software Architect modeling tool. We also present experimental results demonstrating the applicability of our matching algorithm. Our results show significant reduction in matching time with the help of an elimination process that reduces the search space needed for performing matching.','Service Oriented Computing and Applications',1,'Lakshmi RamachandranNanjangud C. NarendraKarthikeyan Ponnalagu','springer/soa security.csv','springer','\0'),(442,'Fault-Tolerant Control, Fault Diagnosis and Recovery in Runtime of Business Docking Service Composition Flow in the Cloud Environment','2014','0',' Fault-tolerant control Fault diagnosis Business docking service composition flow Services choreography and orchestration','Abstract In the design and remote maintenance of district and city petition business docking platform, loose coupling environment of service composition flow, and autonomy of distributed resources can easily lead to failures of inter-process interaction, the platform running will gradually changes form trouble-free operation to operation with fault, so we design a docking platform with fault-isolation and fault-tolerance control based on services choreography and orchestration, and a remote monitoring system based on fault-diagnosis by fussy inference. More than two years’ operation and remote maintenance verify the effectiveness of the fault-tolerant control mode in the process of business docking services composition. Achieve the goal, that the improving of fault-recovery mechanism and the changing of business docking requirements won’t affect each other. Accordingly, it reduces the complexity of maintenancing services composition software, provides application value in business docking service mode for service computing and cloud computing, and SaaS-level monitoring and repair method.','',1,'Jianhua HanSilu HeHengxin LiJianping Huang','springer/service oriented architecture security.csv','springer','\0'),(443,'Adaptive and Secure Load-Balancing Routing Protocol for Service-Oriented Wireless Sensor Networks','2014','0','Congestion control;load balance;multipath;service-oriented architecture;wireless sensor networks (WSNs)','Service-oriented architectures for wireless sensor networks (WSNs) have been proposed to provide an integrated platform, where new applications can be rapidly developed through flexible service composition. In WSNs, the existing multipath routing schemes have demonstrated the effectiveness of traffic distribution over multipaths to fulfill the quality of service requirements of applications. However, the failure of links might significantly affect the transmission performance, scalability, reliability, and security of WSNs. Thus, by considering the reliability, congestion control, and security for multipath, it is desirable to design a reliable and service-driven routing scheme to provide efficient and failure-tolerant routing scheme. In this paper, an evaluation metric, path vacant ratio, is proposed to evaluate and then find a set of link-disjoint paths from all available paths. A congestion control and load-balancing algorithm that can adaptively adjust the load over multipaths is proposed. A threshold sharing algorithm is applied to split the packets into multiple segments that will be delivered via multipaths to the destination depending on the path vacant ratio. Simulations demonstrate the performance of the adaptive and secure load-balance routing scheme.','IEEE Systems Journal',1,'S. Li; S. Zhao; X. Wang; K. Zhang; L. Li','ieee/service oriented architecture security.csv','ieee','\0'),(444,'Healthcare interoperability-lessons learned from the manufacturing standards sector','2009','1','','The high cost of healthcare in America is well-known, with imperfect interoperability adding as much as $77.8 billion/year to that cost, according to one study [1]. One of the principal causes of this high cost is the large amount of \"paperwork\" - the administrative expenses incurred for each medical procedure. While the debate continues about whether the country would be better off with a single-payer medical system or the current private insurance approach, there are a number of ways to reduce the administrative costs without excessive risk. These costs are essentially about getting information in the right form, to the right place, at the right time - a challenge that is by no means unique to the healthcare industry. This presentation identifies some of the approaches that have been successful in the manufacturing sector to make the sharing of information - interoperability - more efficient. Manufacturing technology has been developing and improving for decades. Principles like lean manufacturing, paperless design, ISO 9000 performance practices and Taguchi methods are a given for today\'s major manufacturers. With trends toward global manufacturing and outsourcing, practices have now evolved to Internetbased communication of engineering designs, inventory levels, purchase orders, and a wide variety of other logistical, financial and technical data. Supporting all this, a suite of standards has been developed, deployed, and winnowed down to some that really help, leaving others that seemed promising but failed to meet expectations by the wayside. So what can we learn from all those years of development, deployment, and trial and error? There are a few \"lowhanging fruit\" that the healthcare community can take advantage of to save years of expensive experimentation. Large, universal solutions tend to be difficult to implement. An expensive lesson that cannot be overemphasized is to avoid the temptation to design a comprehensive, universal solution \"from soup to nuts.\" Choose solutions that can be adopted in bite-size chunks, and ensure that those solutions are extensible. Take advantage of solutions that are already in use in the eCommerce/eBusiness sector. For example, the Open Application Group, Inc. (OAGi) is an open industry consortium that has defined a comprehensive set of \"Business Object Documents,\" or BODs, to exchange information about commercial orders, requests for bids, inventory levels, capacities, and much more. These are in use by auto makers, retailers, governments, and service providers in over 40 countries. As communication needs are being revisited in the healthcare sector, it makes sense to review the catalog of messages from OAGi to see which ones can be used \"out of the box\" and which might be adapted to this industry. As another example, the Object Management Group (OMG) has developed a language called BPMN to describe the flow of business processes and information in a neutral, open way. This allows business partners using a variety of commercial project management tools to integrate their respective procedures. This could be especially useful, given the flow of patients, goods, and information in a clinical environment. Finally, we should build the information exchange protocols on top of established communications layers, using middleware standards including Web Services (from W3C, the World Wide Web Consortium) and ebXML (from UN/CEFACT and OASIS). These international standards are supported by a wide selection of commercial tools that make the goal of seamlessly communicating with your business partners both more achievable and affordable. Build testing into your solution. Often, standards are developed without giving attention to the testing that is critical to a successfully deployed standards-based solution. Several types of testing are needed: validation testing to ensure the standard itself can meet the needs of the users and is of high quality; conformance testing to ensure that software applications meet all of, or a known portion of a standard; and interoperability testing to ensure that different implementations have compatible interpretations of the standard to the extent that meaningful information is transferred from one application to another. Standards that are developed with testing in mind are less expensive to test later on. Having poor interoperability is expensive. Studies at NIST (National Institute of Standards and Technology) such as \"Economic Impact of Inadequate Infrastructure for Supply Chain Integration\" [2] have shown wasted expenses in the billions of dollars directly attributable to data exchange errors. Achieving interoperability is not easy. A NIST report, \"Concepts for Automating Systems Integration\" [3] identifies 23 different dimensions of interoperability problems, only one of which is syntactic conflict (which most people think of when integrating systems). We need to approach this problem with an appreciation of the degree of complexity it presents. Assume the world will always be heterogeneous. \"Integration\" is a process, not an end state (so we must pay attention to the process). It is important to make the integration process itself easy and fluid, because there will constantly be a need to re-integrate a distributed system as technology, tools, and requirements evolve. © 2009 IEEE.','',2,'Ray S.R.','scopus/bpmn security.csv','scopus','\0'),(445,'Where does model-driven engineering help? Experiences from three industrial cases','2013','8',' Model-driven engineering Domain-specific language Simulation Experience report Eclipse Complex systems','Abstract There have been few experience reports from industry on how Model-Driven Engineering (MDE) is applied and what the benefits are. This paper summarizes the experiences of three large industrial participants in a European research project with the objective of developing techniques and tools for applying MDE on the development of large and complex software systems. The participants had varying degrees of previous experience with MDE. They found MDE to be particularly useful for providing abstractions of complex systems at multiple levels or from different viewpoints, for the development of domain-specific models that facilitate communication with non-technical experts, for the purposes of simulation and testing, and for the consumption of models for analysis, such as performance-related decision support and system design improvements. From the industrial perspective, a methodology is considered to be useful and cost-efficient if it is possible to reuse solutions in multiple projects or products. However, developing reusable solutions required extra effort and sometimes had a negative impact on the performance of tools. While the companies identified several benefits of MDE, merging different tools with one another in a seamless development environment required several transformations, which increased the required implementation effort and complexity. Additionally, user-friendliness of tools and the provision of features for managing models of complex systems were identified as crucial for a wider industrial adoption of MDE.','Software & Systems Modeling',2,'Parastoo MohagheghiWasif GilaniAlin StefanescuMiguel A. FernandezBjørn NordmoenMathias Fritzsche','springer/bpmn security.csv','springer','\0'),(446,'Resilient and trustworthy dynamic data-driven application systems (DDDAS) services for crisis management environments','2015','1','Cloud computing; RDaaS; Resilience; Service-oriented computing; Trust and security','Future crisis management systems need resilient and trustworthy infrastructures to quickly develop reliable applications and processes, and ensure end-to-end security, trust, and privacy. Due to the multiplicity and diversity of involved actors, volumes of data, and heterogeneity of shared information; crisis management systems tend to be highly vulnerable and subject to unforeseen incidents. As a result, the dependability of crisis management systems can be at risk. This paper presents a cloud-based resilient and trustworthy infrastructure (known as rDaaS) to quickly develop secure crisis management systems. The rDaaS integrates the Dynamic Data-Driven Application Systems (DDDAS) paradigm into a service-oriented architecture over cloud technology and provides a set of resilient DDDAS-As-A Service (rDaaS) components to build secure and trusted adaptable crisis processes. The rDaaS also ensures resilience and security by obfuscating the execution environment and applying Behavior Software Encryption and Moving Technique Defense. A simulation environment for a nuclear plant crisis management case study is illustrated to build resilient and trusted crisis response processes. © The Authors. Published by Elsevier B.V.','',1,'Badr Y., Hariri S., Al-Nashif Y., Blasch E.','scopus/service oriented architecture security.csv','scopus',''),(447,'Efficient Querying and SOAP Based Streaming of Multimedia Content Using WEB Services','2014','0','SOA;multimedia streaming;web service','Web service standards provides a standard support for interoperability and reusability among various platforms, but in case of streaming multimedia data the current web service standards in terms of data transfer is not well supported. At present mostly Universal Description Discovery and Integration (UDDI) is used for publishing and discovery of multimedia web services providing a key word based search for the user. The web service standards used for delivering the multimedia streaming objects is also not sufficient due to very large object size and also the processing and delivering continuous stream of large scale data is difficult and time consuming to variety of client devices. This paper describes about the Service Oriented Architecture, in using an efficient querying mechanism which is specified in an extension of WSDL using the multimedia content metadata and its descriptions for querying the best service. Transmission of streaming data requires a message exchange protocol (MEP) to be defined and then implement the MEP in their SOAP HTTP bindings of the web service. Processing the demand for non functional requirements such as efficiency and security in streaming increases and the performance of SOAP is impacted by XML processing and communication overheads. To overcome these we go for various compression schemes for SOAP messages, so that the transfer overhead is reduced. By the new querying mechanism the efficiency of finding services can be improved as irrelevant data can be eliminated and by creating the MEP, efficiency is increased in terms of resource consumption.','Intelligent Computing Applications (ICICA), 2014 International Conference on',1,'S. G. C. Isaac; V. U. Devi','ieee/service oriented architecture security.csv','ieee','\0'),(448,'Security and safety of assets in business processes','2012','1','BPMN; monitoring; resource modeling; safety; security','Business processes and service compositions are defined independent of the realizing systems. The visualization of security and safety constraints on the business process model level appears to be a promising approach to system independent specification of the security and safety requirements. Such requirements can be realized through business process annotation and used for communication or documentation, but they also can have an execution semantics that allows for automating the security and safety controls. In this paper, we present a tool-supported framework that extends modeling and execution of business processes with specification, execution and monitoring of the security and safety constraints that are used to protect business assets. We illustrate our approach on basis of a case study modeling a supply chain for perishable goods. © 2012 ACM.','',2,'Monakova G., Brucker A.D., Schaad A.','scopus/bpmn security.csv','scopus','\0'),(449,'Design and implementation of a secure service-oriented workflow platform','2014','1','Security; Service-oriented architecture; Workflow','The current focus of enterprises on automating processes has led to the extensive application of workflow management systems. To integrate traditional workflow management systems with others has previously been difficult; however, rapid development of Web services has solved the communication problems among heterogeneous platforms and allows for the efficient integration of legacy systems. This paper emphasizes the design and implementation of a secure service-oriented workflow platform effectively integrating heterogeneous platforms. Moreover, current system architectures could adopt the developed WSSecurity application framework rapidly and inexpensively.','',1,'Chang T.-K., Huang J.-S.','scopus/service oriented architecture security.csv','scopus','\0'),(450,'Using secureBPMN for modelling security-aware service compositions','2014','','Access Control; BPMN; Confidentiality; SecureBPMN','Today, many systems are built by orchestrating existing services,custom developed services, as well as interaction with users. Theseorchestrations, also called composition plans, are often described usinghigh-level modelling languages that allow for simplifying 1) the implementationof systems by using generic execution engines and 2) the adaptionof deployed systems to changing business needs. Thus, compositionplans play an important role for both communicating business requirementsbetween domain experts and system experts, and serving as abasis for the system implementation.At the same time, ICT systems need to fulfil an increasing numberof security and compliance requirements. Thus, there is a demand forintegrating security and compliance requirements into composition plans.We present SecureBPMN, a language for modelling security propertiesthat can easily be integrated into languages used for describing serviceorchestrations. Moreover, we integrate SecureBPMN into BPMN and,thus, present a common language for describing service orchestration(in terms of business process models) together with their security andcompliance requirements. © Springer International Publishing Switzerland 2014.','',2,'Brucker A.D.','scopus/bpmn security.csv','scopus','\0'),(451,'20th International Science Conference Computer Networks, CN 2013','2013','','','The proceedings contain 58 papers. The special focus in this conference is on Computer Networks. The topics include: Experimental results of dynamic load scheduling in the CMS data acquisition system; client-side processing environment based on component platforms and web browsers; modelling the pertubation of traffic based on Ateb-functions; spatial econometrics models in web server\'s performance; empirical web performance evaluation with MWING system and turning bands method; a note on the local minimum problem in wireless sensor networks; lessons learned from the deployment of wireless sensor networks; analysis and optimization of LEACH protocol for wireless sensor networks; simulation comparison of LEACH-based routing protocols for wireless sensor networks; routing protocols for border surveillance using zigbee-based wireless sensor networks; quantitative risk analysis for data storage systems; onion routing efficiency for web anonymization in various configurations; monitoring system\'s network activity for rootkit malware detection; the concept of using multi-protocol nodes in real-time distributed systems for increasing communication reliability; communication performance tests in distributed control systems; some problems of integrating industrial network control systems using service oriented architecture; spectrum access game for cognitive radio networks with incomplete information; performance modeling of opportunistic networks; differential two-pulses position modulation for synchronized wireless optical communications; a robust method for automatic PCI assignment in LTE; network coding-based QoS and security for dynamic interference-limited networks; simple communication with FPGA device over Ethernet interface; evaluation and development perspectives of stream data processing systems; a two-phase alignment algorithm for matching 3D structures of proteins; transfers of entangled qudit states in quantum networks; an analysis of the ping-pong protocol operation in a noisy quantum channel; modeling data stream intensity in distributed stream processing system; modeling operation of web service; total volume distribution for multiserver queueing systems with random capacity demands; tandem queueing system with correlated input and cross-traffic; analytical and numerical means to model transient states in computer networks; scheduler for virtualization of links with partial performance isolation; biometric voice identification based on fuzzy kernel classifier; automatic speech segmentation for automatic speech translation; WSN power conservation using mobile sink for road traffic monitoring; optimizing data collection for object tracking in wireless sensor networks; data security in microprocessor units; hardware aspects of data transmission in coal mines with explosion hazard; users in IT product development process; automatic customer segmentation for social CRM systems; practical aspects of log file analysis for E-commerce; multi-criteria index selection for grouped SQL queries and applying the bidding mechanism in web services with quality of service.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus','\0'),(452,'Enhancing Aspect-Oriented Business Process Modeling with Declarative Rules','2015','0',' Business process modelling Aspect orientation Cross-cutting concerns Declarative rules','Abstract When managing a set of inter-related business processes, typically a number of concerns can be distinguished that are applicable to more than one single process, such as security and traceability. The proper enforcement of these cross-cutting concerns may require a specific configuration effort for each of the business processes involved. Aspect-Oriented Business Process Modelling is an approach that aims at encapsulating these concerns in a model-oriented way. However, state-of-the-art techniques lack efficient mechanisms that allow for the specification of concerns in such a way that they can be executed in parallel to other parts of the process. Moreover, existing techniques exclusively focus on the formulation of mandatory concerns. To address these limitations, this paper proposes a new approach to encapsulate both optional and mandatory concerns, which can be executed concurrently with other process functionalities. One core element of the new approach is that it extends current Aspect-Oriented Business Process Modelling approaches with declarative rules. Thus, this hybrid approach allows for a sophisticated management of cross-cutting concerns.','',2,'Amin JalaliFabrizio Maria MaggiHajo A. Reijers','springer/bpmn security.csv','springer',''),(453,'Coping with the Complexity of SOA Systems with Message Forensics','2012','0','SOA;forensics;message mediation;messaging network','This paper introduces an approach to construct SOA (Service Oriented Architecture) systems using the so called a synchronous messaging network. An asynchronous messaging network (or simply messaging network) refers to an overlay network (over LAN, VPN, Internet, etc.) that allows exchanging well-formatted asynchronous messages (typically in XML) between the service providers and consumers in the system. The proposed approach aims at reducing the operation and maintenance cost of the system by using a messaging network enhanced with the capability to store, inspect and analyze selected portions of the exchanged messages under the strict control of security and privacy. Complexity makes any information system vulnerable to design flaws, operation error, and security problems. The proposed approach facilitates analyzing these problems associated with complex SOA systems through the message-store analysis. We consider that the application of computer forensics to the message store in SOA helps the system administrator to identify and fix various problems. The requirements for the messaging network for SOA systems are also presented.','Advanced Information Networking and Applications Workshops (WAINA), 2012 26th International Conference on',1,'T. Hayashi; A. Kara; T. Miyazaki; J. Iwase; H. Fukuhara; T. Saburi; M. Hisada','ieee/service oriented architecture security.csv','ieee','\0'),(454,'IRIS-CoMan: Scalable and Reliable Control and Management Architecture for SDN-Enabled Large-Scale Networks','2015','0',' Software-defined network (SDN) SDN controller SDN management Scalability Reliability Middlebox','Abstract A software-defined network (SDN) enables agile network control and configuration as well as shortens the network function deployment time. Despite the projected benefits of an SDN, the abstractions toward the remote and centralized control tend to impose excessive control traffic overhead in order for the controller to acquire global network visibility as well as extend the legacy network’s inaccurate and unreliable management problems into the control plane. In addition, many recent SDNs facilitate multiple management pillars (such as customized interfaces and protocols) so that user applications can directly communicate to the data plane to measure and monitor specific information. Not only logical control centralization, but also virtualization of the underlying computing and network resources add demands of more flexible and programmable monitoring functions per the virtual domain. A complex combination of multiple and heterogeneous management channels introduces the significant scalability, control tuning, and reliability problems in SDN. In this paper, to address the above control and management problems, we propose a highly scalable and reliable SDN control and management architecture, called IRIS Control and Management (IRIS-CoMan). It builds an intelligent agent based hybrid SDN architecture by providing a control and management abstraction and filtering layer. It serves an essential component for the reliable, scalable, and secure SDN deployment. We present design, implementation, deployment, and feasibility evaluation results of IRIS-CoMan.','Journal of Network and Systems Management',1,'Taesang ChoiByungjoon LeeSaehoon KangSejun SongHyungbae ParkSangsik YoonSunhee Yang','springer/soa security.csv','springer',''),(455,'Defining and observing the compliance of service level agreements: A model driven approach','2010','1','BPMN; Domain specific language; IT service management; ITIL; MDA; Metamodels; Process model; Service level agreements; Service level management','IT Service Management (ITSM) is the set of processes that allow planning, organizing, directing and controlling the provisioning of IT services. Among the concerns of ITSM, namely within the service level management process, are the requirements for services availability, performance, accuracy, capacity and security, which are specified in terms of service-level agreements (SLA). SLA definition and monitoring are open issues within the ITSM domain. This paper overviews an ongoing research initiative concerned with three specific problems in this context: (1) SLAs in the context of ITSM are informally specified in natural language; (2) SLAs specifications are not grounded on models of ITSM processes; (3) SLAs compliance verification in IT services is not performed at the same level of abstraction as service design. To mitigate those problems, we propose a model-based approach to IT services SLA specification and compliance verification. The specification part will be based on a SLA language - a domain specific language (DSL) for defining quality attributes as non functional requirements (NFRs) in the context of ITSM. Its metamodel will be an extension of the metamodel of the adopted process modeling language. As such, it will be possible to ground SLA definition on the corresponding IT service model constructs. SLA monitoring and compliance validation will occur at the same abstraction level as service specification, therefore being understood by all stakeholders. © 2010 IEEE.','',2,'Correia A., E Abreu F.B.','scopus/bpmn security.csv','scopus','\0'),(456,'Towards Intelligent Assembly and Manufacturing Environment – Modular ICT Support for Holonic Manufacturing System','2012','0',' knowledge management ontology holonic manufacturing system autonomous system modular system','Abstract This paper discusses the possibilities of a modular and more transparent knowledge management concept for a holonic assembly and manufacturing environment that enhances representation of past and present status of the production system thus allowing autonomous reasoning to be applied. The modular ICT approach is developed for a holonic manufacturing system (HMS). The main characteristics of the system are that it is an open system and has characteristics of a complex system. The system itself is an adaptive system, where different services are needed depending on theevolution of the production system itself. The research approach represented here aims to enhance knowledge management and process control by facilitating the move from technology based solutions to conÞgurable systems and processes where the digital models and modular knowledge management systems can be conÞgured based on the need - not based on the closed legacy systems and Þxed process planning. The principles of modularization such as functionalities and interfaces, are used to deal with interactions of the full system.','',1,'Minna LanzEeva JärvenpääPasi LuostarinenFernando GarciaReijo Tuokko','springer/service oriented architecture security.csv','springer','\0'),(457,'Context-aware Composition of Semantic Web Services','2014','9',' Context-aware computing Context modeling Semantic Web Services Service design Service discovery Service composition','Abstract Service-based systems are usually conceived and executed in highly dynamic environments, characterized by complex and continuously evolving users’ requirements and surrounding conditions. To address this dynamicity, these systems should be designed keeping in mind the different execution contexts where they could be used. This typically impacts service discovery and composition with the aim of dynamically forging the system behavior better fitting a given context. This paper proposes a design approach based on a semantic model for context representation. It is an extension of the OWL-S ontology aimed at enriching the expressiveness of each section of a typical OWL-S semantic service description, by means of context conditions and adaptation rules. By having access to continuously updated context information, these descriptions can be exploited by a discovery/composition tool to automatically find the atomic or composite services that can be better-tuned to the requestor’s behaviors and to the particular situations of the surrounding environment.','Mobile Networks and Applications',1,'Angelo FurnoEugenio Zimeo','springer/soa security.csv','springer','\0'),(458,'Building programmable wireless networks: an architectural survey','2014','8','','Abstract In recent times, there is increasing consensus that the traditional Internet architecture needs to be evolved for it to sustain unstinted growth and innovation. A major reason for the perceived architectural ossification is the lack of the ability to program the network as a system. This situation has resulted partly from historical decisions in the original Internet design which emphasized decentralized network operations through colocated data and control planes on each network device. The situation for wireless networks is no different resulting in a lot of complexity and a plethora of largely incompatible wireless technologies. With traditional architectures providing limited support for programmability, there is a broad realization in the wireless community that future programmable wireless networks would require significant architectural innovations. In this paper, we will present an unified overview of the programmability solutions that have been proposed at the device and the network level. In particular, we will discuss software-defined radio (SDR), cognitive radio (CR), programmable MAC processor, and programmable routers as device-level programmability solutions, and software-defined networking (SDN), cognitive wireless networking (CWN), virtualizable wireless networking (VWN) and cloud-based wireless networking (CbWN) as network-level programmability solutions. We provide both a self-contained exposition of these topics as well as a broad survey of the application of these trends in modern wireless networks.','EURASIP Journal on Wireless Communications and Networking',1,'Junaid QadirNadeem AhmedNauman Ahad','springer/service oriented architecture security.csv','springer','\0'),(459,'Beyond visualization of big data: A multi-stage data exploration approach using visualization, sonification, and storification','2013','2','Analytics; Big data; Sonification; Visualization','As the sheer volume of data grows exponentially, it becomes increasingly difficult for existing visualization techniques to keep pace. The sonification field attempts to address this issue by enlisting our auditory senses to detect anomalies or complex events that are difficult to detect via visualization alone. Storification attempts to improve analyst understanding by converting data streams into organized narratives describing the data at a higher level of abstraction than the input stream that they area derived from. While these techniques hold a great deal of promise, they also each have a unique set of challenges that must be overcome. Sonification techniques must represent a broad variety of distributed heterogeneous data and present it to the analyst/listener in a manner that doesn\'t require extended listening - as visual \"snapshots\" are useful but auditory sounds only exist over time. Storification still faces many human-computer interface (HCI) challenges as well as technical hurdles related to automatically generating a logical narrative from lower-level data streams. This paper proposes a novel approach that utilizes a service oriented architecture (SOA)-based hybrid visualization/ sonification/storification framework to enable distributed human-in-the-loop processing of data in a manner that makes optimized usage of both visual and auditory processing pathways while also leveraging the value of narrative explication of data streams. It addresses the benefits and shortcomings of each processing modality and discusses information infrastructure and data representation concerns required with their utilization in a distributed environment. We present a generalizable approach with a broad range of applications including cyber security, medical informatics, facilitation of energy savings in \"smart\" buildings, and detection of natural and man-made disasters. © 2013 SPIE.','',1,'Rimland J., Ballora M., Shumaker W.','scopus/service oriented architecture security.csv','scopus','\0'),(460,'Formal Approaches for Synthesis of Web Service Business Protocols','2013','0','','Abstract In this paper, we consider the web service business protocol synthesis problem, i.e., the automated construction of a new target protocol by reusing some existing ones. We review recent research works and challenges and discuss the associated computational problems both in bounded and unbounded settings.','',2,'Lhouari NourineFarouk Toumani','springer/bpel security.csv','springer','\0'),(461,'Security solution frames and security patterns for authorization in distributed, collaborative systems','2015','','Access control; Authorization; Distributed systems; Distributed systems security; Security engineering; Security patterns; Security solution frames; Software engineering','The design of an authorization infrastructure is one of the most important aspects of engineering a secure software system. Unlike other system types, distributed systems - and especially distributed collaborative systems - can require custom, fine-grained authorization models and enforcement approaches that are able to take into account a range of semantic subtleties. In this paper we present a comprehensive, pattern-oriented software engineering approach to authorization for general distributed systems - with particular applicability to distributed collaborative systems - that allows developers to build custom, application-specific conceptual authorization models in a simple yet extensible manner, and to make informed decisions regarding their enforcement in software, as well as how their supporting rule/policy infrastructure should be designed. Our authorization approach is embodied in two instances of a new pattern-based security engineering construct called a security solution frame, which groups together related patterns - both security \"product\" and micro-process patterns - in different sub-structures, horizontally and vertically, for a single high-level security policy (in our case authorization and policy management). By applying specific micro-process patterns in each solution frame, developers are guided in using relevant \"product\" patterns to progressively construct a distributed authorization infrastructure - from abstract concepts toward concrete designs, via a number of levels of abstraction implying solution refinement and corresponding to stages of the development life-cycle. The summary-form \"product\" patterns encapsulated in each frame also help developers to form a holistic, \"global\" view when analyzing existing infrastructures. We illustrate and evaluate the proposal in the context of greenfield system development by applying our solution frames to design the authorization infrastructure of a (new) distributed system for secure file sharing and collaborative editing; and also use our solution frames to briefly analyze and capture the design decisions underlying two existing distributed authorization infrastructures: one based on UCON for collaborative Grid systems and another based on ZBAC for SOA-based systems. © 2015 Elsevier Ltd. All rights reserved.','',1,'Uzunov A.V., Fernandez E.B., Falkner K.','scopus/soa security.csv','scopus',''),(462,'Improving Web Service Security and Privacy','2011','3','privacy;security','This paper proposes a scheme that allows the webservice providers to carry out fine-grained access control onthe data hosted by them. Through data tracking, the schemealso automatically detects the data flows that might lead toattacks on online services. Compared with existing schemes,the proposed scheme is more flexible in managing the data onthe service provider. The scheme relieves the programmersfrom enforcing access control and detecting data flow violationin their applications.','2011 IEEE World Congress on Services',1,'X. Ye; L. Zhong','ieee/webservice security.csv','ieee','\0'),(463,'A speculation on a framework that provides highly organized services for manufacturing','2015','','PLM;SCM;analitics;efficiency;manufacturing;service','Recently, a movement that seeks a novel level of manufacturing occurs in many countries such as Industrie 4.0 in Germany. The goal of such activities is to improve efficiency in every field of manufacturing by applying the ICT. One of the issues in this movement is vertical integration of services from plant floor to decision making via some BI tools for visualization. We propose a framework that can accommodate any kinds of services and provide a session control that enables a session with any combination of services on the framework, since the existing SOA software is not good enough in flexibility of adopting services and processing data with low latency. We also assume that the framework runs on data centers said “cloud”, and issues regarding security are considered as well.','2015 IEEE International Conference on Automation Science and Engineering (CASE)',1,'T. Sakakura','ieee/service oriented architecture security.csv','ieee',''),(464,'Overall security solutions for OPC UA based monitoring and control application','2014','','Framework; OPC UA; PKI; SOA; Webservice','Together with the global trend, the currently popular accessing model is using Service Oriented Architecture (SOA), working based on available IT infrastructure following the industrial standard OPC UA, in order to create a new environment providing monitoring, controlling and managing industrial manufacturing system effectively. In this paper, we propose a framework based on the combination between SOA and OPC UA for the designing, improving software systems applied to monitoring, controlling and managing production assembly lines. Also, we provide secuirty solution that are proposed and applied to control and monitoring system based on OPC UA standard. Basing on the proposed framework, software developers can easily implement to design, to build monitoring, controlling systems and to manage different industry assembly lines, ensuring the characteristics of inheriting developing and improving the systems flexibly, being able to enlarge and link among different systems. © Springer International Publishing Switzerland 2014.','',1,'Tu N.T.T., Thang H.Q.','scopus/service oriented architecture security.csv','scopus','\0'),(465,'On-the-Fly Change Propagation for the Co-evolution of Business Processes','2013','2','','Abstract In large organisations multiple stakeholders may modify the same business process. This paper addresses the problem when stakeholders perform changes on process views which become inconsistent with the business process and other views. Related work addressing this problem is based on execution trace analysis which is performed in a post-analysis phase and can be complex when dealing with large business process models. In this paper we propose a design-based approach that can efficiently check consistency criteria and propagate changes on-the-fly from a process view to its reference process and related process views. The technique is based on consistent specialisation of business processes and supports the data- and control flow perspective. This technique reduces the steps performed in the evolution of business processes by embedding the consistency checks and change propagation into the change enactment phase of the evolution.','',2,'Shamila MafaziGeorg GrossmannWolfgang MayerMarkus Stumptner','springer/bpmn security.csv','springer','\0'),(466,'New XACML-AspectBPEL approach for composite web services security','2013','3','AOP; BPEL; RBAC; Security; Web services security; XACML','Web services technology is the latest evolution in distributed computing. With all of the advantages of web services, one of the main hurdles remains security in composite web services. In this paper, we tackle this problem through a new approach towards the integration of security into the BPEL (Business Process Execution Language) process of composite web services. Our approach allows specifying the XACML (eXtensible Access Control Markup Language) policies that determine join points in a BPEL process where security is needed. Subsequently, BPEL flows with the needed security are generated into AspectBPEL security aspects to be weaved in the aforementioned process. The main contributions of our approach are: (a) describing dynamic security policies using a standard language XACML, (b) generating automatically the AspectBPEL aspects of the XACML policies and (c) separating the business and security concerns of composite web services, hence developing and updating them separately at the BPEL side. Copyright © 2013 Inderscience Enterprises Ltd.','',2,'Ayoubi S., Mourad A., Otrok H., Shahin A.','scopus/bpel security.csv','scopus','\0'),(467,'Service Acquisition for Mobile Users in Future Internet','2014','0',' Mobile service acquisition Providers cooperation Service provisioning Service roaming e-Negotiations','Abstract Mobility offers a great deal of advantages. However, mobile users are currently restricted by the network coverage of providers, their access network technologies and the networking capabilities of mobile devices. Moreover, mobile users have to be involved in time consuming and inflexible manual interactions with internet access service providers in order to sign long term contracts. In this paper, a novel framework, which liberates mobile users from predefined, long-term contracts, is presented. This framework enables mobile users to dynamically acquire any kind of Internet Service, irrespectively of their location and the mobile device used. This is based on the automation of the service acquisition process and the collaboration of providers that is required to satisfy end-users’ requests. The flexible communication and negotiation framework that was defined enables automated negotiations between all parties and can be used as basis towards automated service acquisition for mobile users in future internet.','Wireless Personal Communications',1,'Giannis KoumoutsosKleanthis Thramboulidis','springer/service oriented architecture security.csv','springer','\0'),(468,'20th European Conference on System and Software Process Improvement, EuroSPI 2013','2013','','','The proceedings contain 31 papers. The special focus in this conference is on System and Software Process Improvement. The topics include: Making software safety assessable and transparent; simulating global software development processes for use in education; research prototypes versus products; an analysis of the software development processes of open source E-learning systems; an automated approach for fault injection testing of BPEL orchestrations; a framework to support software quality trade-offs from a process-based perspective; discovering and studying collaboration networks in software repositories; the many facets of high-performing software teams; tailoring the software product management framework for use in a healthcare organization; review of critical success factors related to people in software process improvement; a proposal for the improvement predictability of cost using earned value management and quality data; involvement of stakeholders in software processes improvement to reduce change resistance; evidence of agile adoption in software organizations; definitions of agile software development and agility; a meta-framework for sustaining the value of innovation in multi-cultural settings; fostering innovation and entrepreneurship in European VET; customer-driven software product development software products for the social media world - a case study; framework to assist healthcare delivery organisations and medical device manufacturers establish security assurance for networked medical devices and experience with an integrated risk management process in the medical regulatory environment.','',2,'[No author name available]','scopus/bpel security.csv','scopus','\0'),(469,'Validation of User Intentions in Process Models','2012','2',' requirement modeling goal-oriented process engineering inconsistency detection','Abstract Goal models and business process models are complementary artifacts for capturing the requirements and their execution flow in software engineering. Usually, goal models serve as input for designing business process models, and it requires mappings between both types of models. Due to the large number of possible configurations of elements from both goal models and business process models, developers struggle with the challenge of maintaining consistent configurations of both models and their mappings. Managing these mappings manually is error-prone. In our work, we propose an automated solution that relies on Description Logics and automated reasoners for validating mappings that describe the realization of goals by activities in business process models. The results are the identification of two inconsistency patterns – strong inconsistency and potential inconsistency, and the development of the corresponding algorithms for detecting inconsistencies.','',2,'Gerd GrönerMohsen AsadiBardia MohabbatiDragan GaševićFernando Silva ParreirasMarko Bošković','springer/bpel security.csv','springer','\0'),(470,'Extracting and analyzing the implemented security architecture of business applications','2013','4','reverse engineering; software security; static analysis; threat modeling','Security is getting more and more important for the software development process as the advent of more complex, connected and extensible software entails new risks. In particular, multi-tier business applications, e.g., based on the Service-Oriented Architecture (SOA), are vulnerable to new attacks, which may endanger the business processes of an organization. These applications consist often of legacy code, which is now exported via Web Services, although it has originally been developed for internal use only. The last years showed great progress in the area of static code analysis for the detection of common low level security bugs, such as buffer overflows and cross-site scripting vulnerabilities. However, there is still a lack of tools that allow an analyst to assess the implemented security architecture of an application. In this paper, we propose a technique that automatically extracts the implemented security architecture of Java-based business applications from the source code. In addition, we carry out threat modeling on this extracted architecture to detect security flaws. We evaluate and discuss our approach with the help of two commercial real-world case studies, one taken from the e-government domain and the other one from logistics. © 2013 IEEE.','',1,'Berger B.J., Sohr K., Koschke R.','scopus/service oriented architecture security.csv','scopus','\0'),(471,'SecureBPMN: Modeling and enforcing access control requirements in business processes','2012','27','BPMN; Process security; RBAC; SecureBPMN','Modern enterprise systems have to comply to regulations such as Basel III resulting in complex security requirements. These requirements need to be modeled at design-time and enforced at runtime. Moreover, modern enterprise systems are often business-process driven, i.e., the system behavior is described as high-level business processes that are executed by a business process execution engine. Consequently, there is a need for an integrated and tool-supported methodology that allows for specifying and enforcing compliance and security requirements for business process-driven enterprise systems. In this paper, we present a tool chain supporting both the design-time modeling as well as the run-time enforcement of security requirements for business process-driven systems. Copyright 2012 ACM.','',2,'Brucker A.D., Hang I., Lückemeyer G., Ruparel R.','scopus/bpmn security.csv','scopus',''),(472,'Establishing Distributed Governance Infrastructures for Enacting Cross-Organization Collaborations','2016','0',' Decentralized autonomous organizations E-governance Smart contract Open cloud ecosystem Service orientation','Abstract The emergence of blockchain 2.0 technology enables novel agile business networking collaborations for decentralized autonomous organizations (DAO). Smart contracts are enactable by service-oriented cloud computing and blockchain technology for governing DAOs that engage in business collaborations. The distributed governance infrastructure (DGI) for such governance involves an ecosystem of agents, policies, services, and so on. To the best of our knowledge, a formal investigation of the lifecycle for establishing such a DGI has not been explored so far. This paper fills the gap by establishing a formalized DGI intended for the enactment of smart contracts for electronic communities of DAOs. The evaluation of the DGI-lifecycle is performed by means of model checking and discussing what pre-existing systems and also by means of discussing what pre-existing solutions exist for an application-system implementation.','',1,'Alex Norta','springer/service oriented architecture security.csv','springer',''),(473,'Composing Security Protocols: From Confidentiality to Privacy','2015','0','','Abstract Security protocols are used in many of our daily-life applications, and our privacy largely depends on their design. Formal verification techniques have proved their usefulness to analyse these protocols, but they become so complex that modular techniques have to be developed. We propose several results to safely compose security protocols. We consider arbitrary primitives modeled using an equational theory, and a rich process algebra close to the applied pi calculus. Relying on these composition results, we derive some security properties on a protocol from the security analysis performed on each of its sub-protocols individually. We consider parallel composition and the case of key-exchange protocols. Our results apply to deal with confidentiality but also privacy-type properties ( e.g. anonymity) expressed using a notion of equivalence. We illustrate the usefulness of our composition results on protocols from the 3G phone application and electronic passport.','',1,'Myrto ArapinisVincent ChevalStéphanie Delaune','springer/service oriented architecture security.csv','springer',''),(474,'A Protocol for the Atomic Capture of Multiple Molecules on Large Scale Platforms','2012','3','','Abstract With the rise of service-oriented computing, applications are more and more based on coordination of autonomous services. Envisioned over largely distributed and highly dynamic platforms, expressing this coordination calls for alternative programming models. The chemical programming paradigm, which models applications as chemical solutions where molecules representing digital entities involved in the computation, react together to produce a result, has been recently shown to provide the needed abstractions for autonomic coordination of services. However, the execution of such programs over large scale platforms raises several problems hindering this paradigm to be actually leveraged. Among them, the atomic capture of molecules participating in concurrent reactions is one of the most significant. In this paper, we propose a protocol for the atomic capture of these molecules distributed and evolving over a large scale platform. As the density of possible reactions is crucial for the liveness and efficiency of such a capture, the protocol proposed is made up of two sub-protocols, each of them aimed at addressing different levels of densities of potential reactions in the solution. While the decision to choose one or the other is local to each node participating in a program’s execution, a global coherent behaviour is obtained. Proof of liveness, as well as intensive simulation results showing the efficiency and limited overhead of the protocol are given.','',1,'Marin BertierMarko ObrovacCédric Tedeschi','springer/service oriented architecture security.csv','springer','\0'),(475,'Exploring the ambient assisted living domain: a systematic review','2016','0',' Ambient assisted living Active assisted living AAL Systematic literature review Assistive technologies Assistive needs Elderly','Abstract Ambient assisted living (AAL) is focused on providing assistance to people primarily in their natural environment. Over the past decade, the AAL domain has evolved at a fast pace in various directions. The stakeholders of AAL are not only limited to patients, but also include their relatives, social services, health workers, and care agencies. In fact, AAL aims at increasing the life quality of patients, their relatives and the health care providers with a holistic approach. This paper aims at providing a comprehensive overview of the AAL domain, presenting a systematic analysis of over 10 \n years of relevant literature focusing on the stakeholders’ needs, bridging the gap of existing reviews which focused on technologies. The findings of this review clearly show that until now the AAL domain neglects the view of the entire AAL ecosystem. Furthermore, the proposed solutions seem to be tailored more on the basis of the available existing technologies, rather than supporting the various stakeholders’ needs. Another major lack that this\n review is pointing out is a missing adequate evaluation of the various solutions. Finally, it seems that, as the domain of AAL is pretty new, it is still in its incubation phase. Thus, this review calls for moving the AAL domain to a more mature phase with respect to the research approaches.','Journal of Ambient Intelligence and Humanized Computing',1,'Davide CalvaresiDaniel CesariniPaolo SernaniMauro MarinoniAldo Franco DragoniArnon Sturm','springer/soa security.csv','springer',''),(476,'Towards RESTful Communications in Self-managing Pervasive Systems','2013','0',' RESTful services Sensors Web Application pervasive computing','Abstract The presence of heterogeneous communication protocols and interfaces prevents from giving self-managing capabilities to service systems. This paper proposes the exploitation of the widely adopted HTTP protocol to create a shared platform that fosters the definition of services that can be easily integrated and controlled. Such services will be provided with RESTful interface and interaction style to gather data and control behavior of sensors to support the development of sensor services integrated with other services in pervasive systems.','',1,'Meherun Nesa LuckyChristina TziviskouFlavio De Paoli','springer/service oriented architecture security.csv','springer','\0'),(477,'BPM Supported Privacy by Design for Cross-Organization Business Processes','2015','0',' BPM Privacy by design Process design Resource lifecycle analysis','Abstract Satisfying privacy related obligations within IT systems that involve multiple organizations is one of the most important, yet challenging tasks in security engineering. When systems involve multiple actors, resources and computing devices, identifying data flows, actors’ liabilities and accesses on data become fundamental requisites for taking appropriate design choices to preserve privacy. To facilitate these tasks, principles such as Privacy by Design have been proposed. However, applying such principles implies rethinking the whole project development lifecycle in order to fulfil at the same time privacy, technical and administrative requirements from early stages of systems design. This paper reports our work on a project undertaken by the Province of Trento (Italy) on integrating social, health and other assistance services for elders. Within the project, we used business processes to support systems’ design and development, from analysis to execution, while at the same time fulfilling privacy related objectives. Specifically, we show how by modelling cross-organization processes and by focusing on involved actors and managed resources, we can provide the necessary tools to involve analysts, designers, project managers and privacy experts during systems’ design and support them to satisfy both privacy and technical requirements. The resulting process models are also used for partial automation and integration of involved services.','',2,'Jovan StevovicPaolo SottoviaMaurizio MarcheseGiampaolo Armellin','springer/bpmn security.csv','springer',''),(478,'Exemplary Use Cases Based on the Generic Data Model for the Integrated Intelligent Computer-Assisted Language Learning (iiCALL) Environment','2014','0','Computer-Assisted Language Learning, Generic Data Model, Integrated E-Learning, Learning of Foreign Languages, Natural Language Processing, Semantic Web Technologies, iiCALL','Based on the idea of Health Level Seven International (HL7) version 3 and its initial architecture and database design, a generic data model for the Integrated Intelligent Computer-Assisted Language Learning (iiCALL) environment has been developed. Open technologies for communication and a knowledge-based and service-oriented architecture (SOA) are key factors of iiCALL. The development process of iiCALL concentrates on object-oriented analysis and object-oriented design. According to the development process of HL7, use-case driven development yields to a message information model which is explained in detail for exemplary use cases.','',1,'Harald Wahl and Werner Winiwarter','acm/service oriented architecture security.csv','acm','\0'),(479,'Incorporating Security Features in Service-Oriented Architecture Using Security Patterns','2015','0','SOA, Security Patterns, Service Composition, Web Services','Service-Oriented Architecture is an architectural style where different heterogeneous components share information with each other by using special types of messages based on the protocol known as Simple Object Access Protocol. Various technologies, such as Common Object Request Broker Architecture, Java 2 Platform, Enterprise Edition, Java Message Service etc. are applied to realize Service-Oriented Architecture for different applications. Besides these approaches, two other techniques, REpresentational State Transfer, and web services are applied for the realization of Service-Oriented Architecture. Web services provide a platform independent communication scheme between applications. The security preservation among the composition of services is an important task for Service-Oriented Architecture. In this study, an attempt is made to incorporate security features in Service- Oriented Architecture with the help of software security patterns. This scheme is described by developing an architectural model integrated with security goals and security patterns. The structural and behavioral aspects of composition of web services incorporated with security features are presented using a Unified Modeling Language class diagram and a sequence diagram respectively. At the end of this study, an evaluation is performed between identified security patterns and critical security properties along with Service-Oriented Architecture design principles. A case study of an online banking system is considered to explain the use of security patterns.','',1,'Ashish Kumar Dwivedi and Santanu Kumar Rath','acm/service oriented architecture security.csv','acm',''),(480,'Cost Efficiency Strategy in the Software-as-a-Service Market: Modeling Results and Related Implementation Issues','2013','0',' Competition Economic Analysis IT-Enabled Services Pricing Strategy Service Science Software-as-a-Service Strategy','Abstract We model competition between software-as-a-service (SaaS) vendors by focusing on several key features of SaaS. These include: differences in vendor offerings; incomplete information for the clients side about the vendor’s capability to offer well-fitting services, and the clients’ learning costs and options to switch. Our findings suggest pricing strategies that will be effective for the SaaS vendor. High cost efficiency in the operations of the SaaS business model is key for the vendor to gain leverage to retain the client by making its switching costs too high, and to achieve high profitability in the process by implementing the appropriate strategies in the appropriate customer segments. We also extend the analysis by considering a broader set of implementation issues related to mechanism design choices in the SaaS market that arise around our modeling approach.','',1,'Robert J. KauffmanDan Ma','springer/service oriented architecture security.csv','springer','\0'),(481,'A Formal Model of Service Network and Its Description Using Pi-calculus','2012','0','Formal Model;Pi-calculus;Service Network','The concept of service network really helps to achieve dynamic, flexible, self-service composition. Service network is composed of nodes. The channel structure of nodes reflects the interaction between services and the dynamic structure of service composition. Besides a brief review and summary of the recent research of service composition and the formal description of interface, this paper defines the abstract service, service and the channel between them as the basic of service network. The definition of abstract service and service is given through the formal description of the syntax and semantic structure of channel. The relationship between channels is defined upon the definition mentioned above. All of the concept mentioned above can be described by Pi-calculus, and the validity of them is explained through an example at the end. The formal model presented in this paper provides the theoretical foundation for several works that base on service network, such as the dynamic service composition, the authentication of the correctness and consistency of service composition, and security of service composition.','Computer Science & Service System (CSSS), 2012 International Conference on',1,'J. Hu; Z. Y. Feng','ieee/service oriented architecture security.csv','ieee','\0'),(482,'Publishing and discovering context-dependent services','2013','33',' Service publication Service discovery Service ranking Context-awareness Trustworthy service provision','Abstract In service oriented computing, service providers and service requesters are main interacting entities. A service provider publishes the services it wishes to make public using service registries. A service requester initiates a discovery process to find the service that meets its requirements using the service registries. Current approaches for the publication and discovery do not realize the essential relationship between the service contract and the conditions in which the service can guarantee its contract. Moreover, they do not use any formal methods for specifying services, contracts, and compositions. Without a formal basis it is not possible to justify through a rigorous verification the correctness conditions for service compositions and the satisfaction of contractual obligations in service provisions. In our recent works, we have identified the role of contextual information, trustworthiness information and legal rules in service provision. This paper focuses on the publication and discovery of trustworthy context-dependent services as supported by the novel framework FrSeC . It introduces a novel ranking algorithm that ranks trustworthy context-dependent services according to the degree they match service requesters requirements. Finally, this paper introduces a prototype implementation for the matching and ranking of services as supported by FrSeC .','Human-centric Computing and Information Sciences',1,'Naseem IbrahimMubarak MohammadVangalur Alagar','springer/service oriented architecture security.csv','springer',''),(483,'A Life-Cycle Model for Software Service Engineering','2013','0',' Software service engineering service variability cloud standards','Abstract Applying existing life-cycle models to software service engineering, we identify shortcomings: they do not focus on engineering activities, lack a clear underlying definition of software services, do not address both service roles of consumer and provider, and assume longevity and sequence of activities. We present a life-cycle model for software service engineering to tackle these shortcomings. We illustrate the model’s prescriptive use by applying it to assess software service variability and software service standardization .','',1,'Erik WitternRobin Fischer','springer/service oriented architecture security.csv','springer','\0'),(484,'Architecture for a universal mobile communication module','2013','3','','The current trend in the field of supervisory control systems is focusing attention on mobile devices. The main objective is to meet requirements such as security access, connection speed, mobility and portability of applications. One trend is the use of mobile devices and the associated limitations on the development of the application. The main objective of this paper is to describe and analyze the problems arising in the development of visualization applications for mobile devices, focusing on the communication module. The solution to this problem is described in the Scrum lifecycle model that was used to create the application and its modules. Another objective was to highlight the issue of supervisory control of applications for mobile devices based on the operating system.','Applied Machine Intelligence and Informatics (SAMI), 2013 IEEE 11th International Symposium on',1,'I. Zolotová; L. Laciňák; T. Lojka','ieee/service oriented architecture security.csv','ieee','\0'),(485,'Active Linking Attacks','2015','0','','Abstract We study linking attacks on communication protocols. We observe that an active attacker is strictly more powerful in this setting than previously-considered passive attackers. We introduce a formal model to reason about active linking attacks, formally define security against these attacks and give conditions for both security and insecurity of protocols. In addition, we introduce a composition-like technique that allows to obtain security proofs by only studying small components of a protocol.','',1,'Henning SchnoorOliver Woizekowski','springer/webservice security.csv','springer',''),(486,'Multi-user web service selection based on multi-QoS prediction','2014','8',' Web services Service selection QoS Multi-user QoS prediction','Abstract In order to find best services to meet multi-user’s QoS requirements, some multi-user Web service selection schemes were proposed. However, the unavoidable challenges in these schemes are the efficiency and effect. Most existing schemes are proposed for the single request condition without considering the overload of Web services, which cannot be directly used in this problem. Furthermore, existing methods assumed the QoS information for users are all known and accurate, and in real case, there are always many missing QoS values in history records, which increase the difficulty of the selection. In this paper, we propose a new framework for multi-user Web service selection problem. This framework first predicts the missing multi-QoS values according to the historical QoS experience from users, and then selects the global optimal solution for multi-user by our fast match approach. Comprehensive empirical studies demonstrate the utility of the proposed method.','Information Systems Frontiers',1,'Shangguang WangChing-Hsien HsuZhongjun LiangQibo SunFangchun Yang','springer/service oriented architecture security.csv','springer','\0'),(487,'DFCloud: A TPM-based secure data access control method of cloud storage in mobile devices','2012','1','ARM TrustZone;TPM;cloud storage service;security','Using the cloud storage services, users can access their data in any time, at any place, even with any computing device including mobile devices. Although these properties provide flexibility and scalability in handling data, security issues should be handled especially when mobile devices try to access data stored in cloud storage. Currently, a typical cloud storage service, Dropbox, offers server-side data encryption for security purpose. However, we think such method is not secure enough because all the encryption keys are managed by software and there is no attestation on the client software integrity. Moreover, a simple user identification based on user ID and Password is also easy to be compromised. Data sharing which is critical in enterprise environment is significantly restricted because it is not easy to share encryption key among users. In this paper, we propose DFCloud, a secure data access control method of cloud storage services to handle these problems found in the typical cloud storage service Dropbox. DFCloud relies on Trusted Platform Module (TPM) [1] to manage all the encryption keys and define a key sharing protocol among legal users. We assume that each client is mobile device using ARM TrustZone [2] technology. The DFCloud server prototype is implemented using ARM Fastmodel 7.1 and Open Virtualization software stack for ARM TrustZone. For DFCloud client, TPM functions are developed in the secure domain of ARM TrustZone because most ARM-based mobile devices are not equipped with TPM chip. The DFCloud framework defines TPM-based secure channel setup, TPM-based key management, remote client attestation, and a secure key share protocol across multiple users/devices. It is shown that our concept works correctly through a prototype implementation.','Cloud Computing Technology and Science (CloudCom), 2012 IEEE 4th International Conference on',1,'J. Shin; Y. Kim; W. Park; C. Park','ieee/service oriented architecture security.csv','ieee','\0'),(488,'Systems-Theoretic View of Component-Based Software Development','2012','2',' Systems theory supervisory control theory component-based software development component model formal method hierarchical control controller synthesis','Abstract This paper investigates component-based software development in the perspective of systems theory. In the proposed systems-theoretic view, a complex system is organized hierarchically from horizontal and vertical aggregations of components, but more important is the explicit control at each level of the hierarchy. Control actions are then determined by controllers that enforce constraints imposed on components and their interaction, and thus reduce their degree of autonomy. Not only the system behavior is restrained but nonfunctional properties emerge at each level. The finer the exercised control, the richer emergent properties should be. Therefore, achieving nonfunctional properties, such as liveness, predictability, safety and security, corresponds to solving control problems. The supervisory control theory initiated in the early and mid eighties is a mathematical apparatus that helps to accomplish this task in a rigorous way.','',2,'Daniel CôtéMichel Embe JiagueRichard St-Denis','springer/bpel security.csv','springer','\0'),(489,'Value-centric design of the internet-of-things solution for food supply chain: Value creation, sensor portfolio and information fusion','2015','13',' Internet-of-things (IoT) Food supply chain Value-centric design Sensor portfolio Information fusion Industrial information integration engineering (IIIE)','Abstract The revolution of Internet-of-Things (IoT) is reshaping the modern food supply chains with promising business prospects. To be successful in practice, the IoT solutions should create “income-centric” values beyond the conventional “traceability-centric” values. To accomplish what we promised to users, sensor portfolios and information fusion must correspond to the new requirements introduced by this income-centric value creation. In this paper, we propose a value-centric business-technology joint design framework. Based on it the income-centric added-values including shelf life prediction, sales premium, precision agriculture, and reduction of assurance cost are identified and assessed. Then corresponding sensor portfolios are developed and implemented. Three-tier information fusion architecture is proposed as well as examples about acceleration data processing, self-learning shelf life prediction and real-time supply chain re-planning. The feasibilities of the proposed design framework and solution have been confirmed by the field trials and an implemented prototype system.','Information Systems Frontiers',1,'Zhibo PangQiang ChenWeili HanLirong Zheng','springer/service oriented architecture security.csv','springer',''),(490,'Modeling and enforcing secure object flows in process-driven SOAs: an integrated model-driven approach','2014','5',' Process modeling Secure object flows Security engineering Service-oriented architecture Model-driven development UML SoaML Web services','Abstract In this paper, we present an integrated model-driven approach for the specification and the enforcement of secure object flows in process-driven service-oriented architectures (SOA). In this context, a secure object flow ensures the confidentiality and the integrity of important objects (such as business contracts or electronic patient records) that are passed between different participants in SOA-based business processes. We specify a formal and generic metamodel for secure object flows that can be used to extend arbitrary process modeling languages. To demonstrate our approach, we present a UML extension for secure object flows. Moreover, we describe how platform-independent models are mapped to platform-specific software artifacts via automated model transformations. In addition, we give a detailed description of how we integrated our approach with the Eclipse modeling tools.','Software & Systems Modeling',2,'Bernhard HoislStefan SobernigMark Strembeck','springer/bpel security.csv','springer',''),(491,'An XRI naming system for dynamic and federated clouds: a performance analysis','2011','0',' Cloud computing Cloud name space Cloud naming system Cloud federation XRI XRDS','Abstract Cloud platforms are dynamic, self-optimizing, continuously changing environments where resources can be composed with other ones in order to provide many types of services to their users, e.g., companies, governments, organizations, and desktop/mobile clients. In order to enable cloud platforms to manage and control their assets, they need to name, identify, and resolve their virtual resources in different operating contexts. In such a scenario, naming, resource location, and information retrieval raise several issues regarding name space management. This paper aims to propose a standard practice for the implementation of a cloud naming system based on the eXtensible Resource Identifier (XRI) technology. More specifically, by means of the development of a Cloud Name Space Management (CNSM) front-end interacting with the OpenXRI architecture, we investigate its performance simulating typical cloud name space management tasks.','Journal of Internet Services and Applications',1,'Antonio CelestiMassimo VillariAntonio Puliafito','springer/microservice security.CSV','springer',''),(492,'Modeling Security Features of Web Applications','2014','0',' UML-based web engineering secure web engineering web applications UML security Energy Management System Smart Home','Abstract Securing web applications is a difficult task not only, because it is hard to implement bulletproof techniques, but also because web developers struggle to get an overview of how to avoid security flaws in a concrete application. This is aggravated by the fact that the description of a web application’s security concept is often scattered over lengthy requirements documents, if documented at all. In this chapter, we extend the graphical, UML-based Web Engineering (UWE) language to model security concepts within web applications, thus providing the aforementioned overview. Our approach is applied to a case study of an Energy Management System that provides a web interface for monitoring energy consumption and for configuring appliances. Additionally, we give an overview of how our approach contributes to the development of secure web applications along the software development life cycle.','',2,'Marianne BuschNora KochSantiago Suppan','springer/bpmn security.csv','springer',''),(493,'SOA based cloud computing trust model research with a curve fitting method','2012','','Cloud computing; Curve fitting; Quantification; Trust model','This paper proposes a cloud computing trust model based-on SOA by combining the characteristics of SOA, and discusses the relation between the service and users in the cloud computing. Meanwhile, proposes a curve fitting based trust selecting and updating mechanism to ensure the authenticity and accuracy of the trust relation. Finally, verifies the rationality of the trust model in terms of the curve fitting function and mathematical experiment analysis of this trust model. © 2012 IEEE.','',1,'Ye R., Wu Q.','scopus/soa security.csv','scopus','\0'),(494,'An architecture for managing large fleets on inexpensive OBUs','2012','','Architecture; Concepts; Fleet; GNSS; ICT; Inexpensive; Manageability; Management; Mobile; Network; OBU; Operation; OTA; Phone; Protocol; Services; Smartphone; SOA; Telematics','There are various concepts for designing powerful and / or cost-efficient on-board units used for applications like tracking, pay as you drive, tolling, or 3rd party telematics applications. Usually, these devices are designed to be cost efficient, meaning powerful enough for the task they shall perform. If however, large fleets of devices have to managed, other aspects gain importance; \"Manageability\" is the generic term for most of these aspects. This paper outlines concepts based on services and services management as one key concept for managing large fleets of OBUs with potentially heterogeneous service profiles reliably. Within this paper we will show that it is necessary to analyse three distinct parts separately. Hardware of the unit needs to support the management and OTA concepts OS and file system need to support update of all elements with failsafe recovery Communication Protocols play an important role for safety, robustness and channel management. Backend functionalities need to include security, services management, status monitoring and act as gateway for third party provisioning of services and data. Overall Process management for profiles, user, and certification issues are topics often underestimated. Know how gained from GNSS RUC and mobile network management is the foundation for a qualified management of the issues mentioned.','',1,'Vierroth V., Funk M.A.','scopus/soa security.csv','scopus','\0'),(495,'Interoperable support for collaborative, mobile, and accessible health care','2012','13',' Collaborative care delivery Ontology Process interoperability People and process interoperability','Abstract E-Health systems, through their use of Internet and wireless technologies, offer the possibility of near real-time data integration to support the delivery and management of health care. In practice, the wide range of choice in technologies, vendors, protocols, formats, and information representations can make even simple exchanges of information between systems problematic. Much of the focus on healthcare interoperability has been on resolving interoperability issues of system to system information exchanges. But issues around people to people interactions and people to system interactions are just as important to address from an interoperability point of view. In this paper, we identify interoperability deficiencies in collaborative care delivery and develop a methodology in two parts. In the first part, an ontology is developed to represent collaborative care delivery. In the second part, the ontology is used to design an architecture for interoperable clinical information system design. We then use a case study in palliative care to provide a proof of concept of the methodology. The case study provides an inventory of the interoperability requirements for palliative care and a perspective on the design and implementation of a people oriented clinical information system that supports collaborative health care delivery in palliative care.','Information Systems Frontiers',1,'Alain MoutthamCraig KuziemskyDishant LangayanLiam PeytonJose Pereira','springer/service oriented architecture security.csv','springer',''),(496,'Sensor Function Virtualization to Support Distributed Intelligence in the Internet of Things','2015','2',' Internet of Things Cloud WSN 6LoWPAN CoAP Sensor function virtualization','Abstract It is estimated that—by 2020—billion devices will be connected to the Internet. \n This number not only includes TVs, PCs, tablets and smartphones, but also billions of embedded sensors that will make up the “Internet of Things” and enable a whole new range of intelligent services in domains such as manufacturing, health, smart homes, logistics, etc. To some extent, intelligence such as data processing or access control can be placed on the devices themselves. Alternatively, functionalities can be outsourced to the cloud. In reality, there is no single solution that fits all needs. Cooperation between devices, intermediate infrastructures (local networks, access networks, global networks) and/or cloud systems is needed in order to optimally support IoT communication and IoT applications. Through distributed intelligence the right communication and processing functionality will be available at the right place. The first part of this paper motivates the need for such distributed intelligence based on \n shortcomings in typical IoT systems. The second part focuses on the concept of sensor function virtualization, a potential enabler for distributed intelligence, and presents solutions on how to realize it.','Wireless Personal Communications',1,'Floris Van den AbeeleJeroen HoebekeGirum Ketema TeklemariamIngrid MoermanPiet Demeester','springer/service oriented architecture security.csv','springer',''),(497,'Modelling and analysis using GROOVE','2012','16',' Graph-based modelling Graph transformation Tool application Model transformation State space exploration','Abstract In this paper we present case studies that describe how the graph transformation tool groove has been used to model problems from a wide variety of domains. These case studies highlight the wide applicability of groove in particular, and of graph transformation in general. They also give concrete templates for using groove in practice. Furthermore, we use the case studies to analyse the main strong and weak points of groove .','International Journal on Software Tools for Technology Transfer',2,'Amir Hossein GhamarianMaarten de MolArend RensinkEduardo ZambonMaria Zimakova','springer/bpel security.csv','springer',''),(498,'Quality of service in manufacturing networks: a service framework and its implementation','2012','6',' Manufacturing networks Quality of service Networked resource service management Bees algorithm Communication networks','Abstract Due to the continuous growth in the application of networks in manufacturing, quality of service (QoS) has become an important issue. In this paper, the concept of QoS for manufacturing networks is discussed. To provide overall performance assurance for manufacturing networks, a service framework integrating the QoS mechanisms of the networked resource service management function and the communication networks is proposed. The novel framework maps an application to resource services and then to communication networks, adopts an intelligent optimisation algorithm for QoS management of resource services, and provides QoS schemes for data transfer across communication networks. A prototype implementation has been realised and a set of simulation experiments conducted to evaluate the validity of the framework. The results obtained demonstrate the ability of the framework to satisfy the various performance requirements posed by such applications and provide efficient overall performance assurance for manufacturing networks.','The International Journal of Advanced Manufacturing Technology',1,'Wenjun XuZude ZhouD. T. PhamQuan LiuC. JiWei Meng','springer/soa security.csv','springer','\0'),(499,'Composite web QoS with workflow conditional pathways using bounded sets','2013','1',' Bounded set Composite services Quality of service Path-based Reliability Workflow','Abstract In our previous work (Dillon and Mansour 2009 ), a stochastic reliability model of atomic web services was proposed. Using the well-known classic two-state bounded set technique, we developed a service-oriented model that dynamically calculates the reliability of composite web services with rollback recovery (Mansour and Dillon in IEEE Trans Serv Comput 4(4), 2011 ). In order to improve the Quality of Service, fault tolerance techniques have been introduced using recovery block adaptation. Our workflow was based on series-parallel structures that constitute parts of existing structures. It is worth mentioning that major service-oriented systems contain larger and more complex structures than the simple series and parallel ones. This is a limitation in our previous approach. In order to consider more realistic service-oriented systems, other main structures, such as AND, XOR and Loop, should be included into our model. In this article, our previous structures are generalized to include AND, XOR and Loops. In addition to generalized structures, we extended the existing two-state bounded set technique to include three-state systems. This extension was especially motivated by XOR-based structures. A comparative study between bounded set techniques and a new stochastic model is also presented. Our simulation results accurately reflect the performance of the new proposed model and confirm our theoretical studies. Furthermore, Monte Carlos simulations were performed and the results obtained clearly validate our stochastic model.','Service Oriented Computing and Applications',1,'Houwayda Elfawal-MansourA. MansourT. Dillon','springer/soa security.csv','springer','\0'),(500,'A Framework for Cost-Aware Cloud Data Management','2012','0',' Cloud data services cloud data management cost-aware data management cloud economics','Abstract The emerging world of offering information services through the cloud necessitates the coalescence of existing research and business technologies into the provision of all-inclusive solutions for data management. This paper proposes a framework that can support cost-aware data management in the cloud. Users and cloud providers can use the framework to receive and provide services that comply with agreements on data service cost and requirements and allow for profit while being efficient in terms of performance. The proposed framework includes modules that incorporate the notion of monetary cost in current data management, but also modules that take optimization decisions for future data management taking into account both monetary cost and performance. The framework dictates the design of a middleware application that can be plugged on top of a cloud data management system. Such a middleware receives the user’s workload and preferences for cost and query performance and controls data management so that the user is satisfied and the cloud provider is viable and, furthermore, profitable. An initial realization of part of the framework as a middleware application has already been constructed, tested and published with promising results.','',1,'Verena Kantere','springer/service oriented architecture security.csv','springer','\0'),(501,'A Multi-layer Anomaly Detector for Dynamic Service-Based Systems','2015','1',' Anomalies Monitor Complex event processor Service oriented architecture Secure!','Abstract Revealing anomalies to support error detection in complex systems is a promising approach when traditional detection mechanisms (e.g., based on event logs, probes and heartbeats) are considered inadequate or not applicable. The detection capability of such complex system can be enhanced observing different layers to achieve richer information that describes the system status. Relying on an algorithm for statistical anomaly detection, in this paper we present the definition and implementation of an anomaly detector able to monitor data acquired from multiple layers, namely the Operating system and the Application Server, of a remote physical or virtual node. As case study, such monitoring system is applied to a node of the Secure! crisis management service-based system. Results show the monitor performance, the intrusiveness of the probes, and ultimately the improved detection capability achieved observing data from the different layers.','',1,'Andrea CeccarelliTommaso ZoppiMassimiliano ItriaAndrea Bondavalli','springer/service oriented architecture security.csv','springer',''),(502,'WS-PGRADE/gUSE Generic DCI Gateway Framework for a Large Variety of User Communities','2012','77',' Science gateway Customized interface Workflow Distributed computing infrastructures','Abstract The WS-PGRADE/gUSE generic DCI gateway framework has been developed to support a large variety of user communities. It provides a generic purpose, workflow-oriented graphical user interface to create and run workflows on various DCIs including clusters, Grids, desktop Grids and clouds. The framework can be used by NGIs to support small user communities who cannot afford to develop their own customized science gateway. The WS-PGRADE/gUSE framework also provides two API interfaces (Application Specific Module API and Remote API) to create application-specific science gateways according to the needs of different user communities. The paper describes in detail the workflow concept of WS-PGRADE, the DCI Bridge service that enables access to most of the popular European DCIs and the Application Specific Module and Remote API concepts to generate application-specific science gateways.','Journal of Grid Computing',1,'Peter KacsukZoltan FarkasMiklos KozlovszkyGabor HermannAkos BalaskoKrisztian KaroczkaiIstvan Marton','springer/soa security.csv','springer',''),(503,'Web service selection based on QoS using tModel working on feed forward network','2014','1','feedforward neural network; QoS; service: oriented architecture; tModel; web service repository builder','This paper address the selection of web services using tmodel of SOA which is designed using feed forward network. This construction will be done using XML language. Ontology provides a terminology about concepts and their relationships within a domain along with the activities taking place in that domain, and the theories, elementary principles governing that domain. Using supervised learning method of feed forward neural network, ontologies of different domain can be matched. Feed forward neural network can be used for pattern matching with back propagation techniques. Pattern defined here will be quality parameter. This quality parameter can be selected using tModel structure of UDDI. Web service Provider present in UDDI can differentiate services using Quality categorization by labeling the qualities i.e. performance, security. This differentiation be done using QoS ontology for service Identification. The registered service descriptions by the service provider contain the semantic profile and QoS parameters. ANN matching model consists of training phase and matching phase based on ontology domain. © 2014 IEEE.','',1,'Karande A.M., Kalbande D.R.','scopus/service oriented architecture security.csv','scopus','\0'),(504,'Integrated Process Oriented Requirements Management','2015','0',' Process management Requirements management Enterprise modeling IEM MO 2 GO Process assistant','Abstract Within current software development projects requirements are usually derived from a technical point of view. Since these systems are part of an already existing enterprise environment and their goal is to support business processes, the focus should be shifted towards these overlaying business processes. Therefore we propose a holistic method that focuses on business processes and using them as a vantage point from which requirements are elicitated and linked to them. Based on these interconnected dependencies, functional requirements without a business relation can be identified. Furthermore, this also allows identifying aspects that are not yet covered by any requirements as well as process-oriented monitoring throughout all project phases. Existing business process management tools were extended to incorporate this method which was successfully applied within a software development project in a large, international company.','',2,'Nikolaus WintrichPatrick GeringMalte Meissner','springer/bpmn security.csv','springer',''),(505,'Toward a modular and efficient distribution for Web service handlers','2013','','distributed computing; parallel computing; pipelining; service-oriented architecture; Web service; Web service handler','Over the last few decades, distributed systems have architecturally evolved. One recent evolutionary step is SOA. The SOA model is perfectly engendered in Web services, which provide software platforms for building applications as services. Web services utilize supportive capabilities such as security, reliability, and monitoring. These capabilities are typically provisioned as handlers, which incrementally add new features. Even though handlers are very important, the method of utilization is crucial for obtaining potential benefits. Every attempt to support a service with an additional handler increases the chance of an overwhelmingly crowded handler chain. Moreover, a handler may become a bottleneck because of its comparably higher processing time. In this paper, we present the Distributed Handler Architecture to provide an efficient, scalable, and modular architecture. The performance and scalability benchmarks show that the distributed and parallel handler executions are very promising for suitable handler configurations. The paper is concluded with remarks on the fundamentals of a promising computing environment for Web service handlers. Copyright © 2012 John Wiley & Sons, Ltd. Copyright © 2012 John Wiley & Sons, Ltd.','',1,'Yildiz B., Fox G.C.','scopus/service oriented architecture security.csv','scopus','\0'),(506,'Mobile web information systems (MobiWIS 2013)','2015','0','','','Computing',1,'Florian DanielGeorge A. PapadopoulosPhilippe Thiran','springer/soa security.csv','springer',''),(507,'Data Flow-Oriented Process Mining to Support Security Audits','2012','1','','Abstract The automated execution of dynamically-evolving business processes in service-oriented architectures requires audit methods to assert that they fulfill required security properties. Process mining techniques can provide models for the actual process behavior, but mostly disregard the dynamics of processes running in highly flexible environments and neglect the data flow perspective. This research plan is on novel data-oriented mining techniques to tackle these shortcomings in order to support effective security audits.','',2,'Thomas Stocker','springer/bpel security.csv','springer','\0'),(508,'The Performance of Public Key-Based Authentication Protocols','2012','0',' Public-key infrastructure (PKI) Kerberos Authentication Performance Transaction time','Abstract Kerberos has revolved over the past 20 years. Kerberos and its variants have been extensively used in a variety of commuting systems since 1999. Among them, there have been several techniques and protocols to integrate public key cryptography into Kerberos. Public-Key Cross Realm Authentication in Kerberos (PKCROSS) is one of these protocols. It has been proposed to simplify the administrative burden of maintaining cross-realm keys so that it improves the scalability of Kerberos in large multi-realm networks. Public Key Utilizing Tickets for Application Servers (PKTAPP) is another protocol that has been suggested to improve the scalability issue of PKCROSS. Performance evaluation is a fundamental consideration in the design of security protocols. But, the performance of these two protocols has been poorly understood in a large-scale network. In this paper, we present an efficient way to study the performance of PKCROSS and PKTAPP. Our thorough performance analysis of these two protocols shows that PKTAPP does not scale better than PKCROSS. In this paper, we report our recent results of when PKCROSS still outperforms than PKTAPP in multiple remote realms.','',1,'Kaiqi Xiong','springer/service oriented architecture security.csv','springer','\0'),(509,'Performance enhancement of WS-security using Participant Domain Name (PDNT)','2012','','OASIS Standard 1.1; Service Oriented Architecture; Simple Object Access Protocol (SOAP); Web Services Security standard (WSS)','This paper proposes a new secure token profile for enhancing existing Web Services Security (WSS) standards which provide message integrity, message confidentiality, user authentication and authorization. Service Oriented Architecture (SOA) is widely adopted, most systems use Web Services implemented using Simple Object Access Protocol (SOAP), an XML document or message exchanges between sender and receiver using HTTP protocol or other communication protocols. Security is critical because the message is transferred around a public network, the Internet. Whilst current Web Services Security Standards protect the message; the location or domain of the message sender is not authenticated, this can be provided using the proposed token profile. Moreover, the proposed token has a performance advantage over existing WSS standards. © 2012 IEEE.','',1,'Cheong C.P., Chatwin C., Young R.','scopus/service oriented architecture security.csv','scopus','\0'),(510,'IMS Management & Monitoring with eTOM Framework and Composite Web Service','2010','1','','IMS (IP Multimedia System) facilitates a rapid deployment of new services enable new revenue streams for service providers, and improves the operating efficiency of the network by a convergence of heterogeneous into an existing IP network. In addition, it enables operators to simultaneously meet the requirements of fixed and mobile telephony. Because IMS “standardization” is limited to architecture, routing, area supply services are not defined will in Assurance and monitoring, contrary to billing and fulfilment. Consequently, the IMS is less clear regarding the monitoring of performance and fault management, leaving these matters to the NGOSS (New Generation Operations Systems and Software) system to manipulate QoS based assurance scenarios. The eTOM (enhanced Telecom Operations Map) descriptions provide the ability to perform a `System Level Monitoring & Management\' capable of tracking the delivery of services in IMS architecture. In this article, we start by monitoring of a supply scenario of service, by integrating new technologies WSOA (Service Oriented Architecture) and BPEL (Business Process Execution Language) in network management.','2010 International Conference on Multimedia Information Networking and Security',2,'B. Raouyane; M. Errais; M. Bellafkih; M. Ramdani','ieee/bpel security.csv','ieee','\0'),(511,'AOSD\'12 Companion - Proceedings of the 11th Annual International Conference on Aspect Oriented Software Development','2012','','','The proceedings contain 11 papers. The topics discussed include: what to do when things go wrong: recovery in complex (computer) systems; objects of the people, by the people, and for the people; aspects as latent topics; implementing language-based virtual machines; a unified formal model for service oriented architecture to enforce security contracts; compositional verification of events and aspects; membranes for AOP: from vision to practice; an aspect-oriented framework for development of dynamic content; tearing down the multicore barrier for web applications; adding high-level concurrency to EScala; a scalable and accurate approach based on count matrix for detecting code clones; Emergo: a tool for improving maintainability of preprocessor-based product lines; experiments with the LARA aspect-oriented approach; and PHANtom: an aspect language for pharo smalltalk.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus','\0'),(512,'Anti-money-laundering system based on mainframe and SOA','2013','','Anti-Money-laundering; Mainframe; Service Oriented Architecture','This paper presents an efficient anti-money laundering warning system. With the development of science and technology, money laundering is becoming more and more intelligent. Since the existing anti-money-laundering process cannot handle this kind of crime effectively, we build a system based on mainframe with SOA architectures. For one thing, as mainframes pioneer massive data processing capacity and high security, we take this advantage to handle magnanimity financial data. For another thing, we build super scalar architecture with SOA technology. Application module is presented by service and service bus can connect independent functional entities which carry out specific tasks. Therefore, the system can adapt to the variation of money laundering means. © 2013 IEEE.','',1,'Shu M., Rui L., Dancheng L., Shuaizhen Z.','scopus/service oriented architecture security.csv','scopus','\0'),(513,'Model-Driven Development of Secure Service Applications','2012','2','Security;UML;Web Service;code generation;model-driven development;security-critical systems','The development of a secure service application is a difficult task and designed protocols are very error-prone. To develop a secure SOA application, application-independent protocols (e.g. TLS or Web service security protocols) are used. These protocols guarantee standard security properties like integrity or confidentiality but the critical properties are application-specific (e.g. \'a ticket can not be used twice\'). For that, security has to be integrated in the whole development process and application-specific security properties have to be guaranteed. This paper illustrates the modeling of a security-critical service application with UML. The modeling is part of an integrated software engineering approach that encompasses model-driven development. Using the approach, an application based on service-oriented architectures (SOA) is modeled with UML. From this model executable code as well as a formal specification to prove the security of the application is generated automatically. Our approach, called SecureMDD, supports the development of security-critical applications and integrates formal methods to guarantee the security of the system. The modeling guidelines are demonstrated with an online banking example.','Software Engineering Workshop (SEW), 2012 35th Annual IEEE',1,'M. Borek; N. Moebius; K. Stenzel; W. Reif','ieee/soa security.csv','ieee','\0'),(514,'Middleware for task resolution and adaptation in pervasive environments','2012','2',' Component-based task Task resolution Monitoring Task adaptation Pervasive environments','Abstract Driven by the heterogeneity of pervasive environments, a user task can be defined independently of devices’ resources as an assembly of abstract components, requiring services from and providing services to each other. To achieve the task’s execution, it has to be resolved in concrete components, which involves automatic matching and selection of components across various devices. Moreover, user tasks in pervasive environments are challenged by the dynamism of their execution environments. Thus, there is a need to adapt them for a continuous execution. Towards these challenges, we propose in this article a middleware that allows for each service of a user task, the best selection of the device and component used for its execution. The task resolution approach considers in addition to the functional aspects of the task, the user preferences, devices capabilities, services requirements and components preferences. The middleware also carries out adaptation of user’s tasks to cope with the dynamicity of pervasive environments. The adaptation consists of a partial reselection of devices and components that are affected by the changes. For this purpose, the middleware uses monitoring mechanisms to detect the changes during the execution of the user tasks.','Evolving Systems',1,'Imen Ben LahmarDjamel BelaïdHamid Mukhtar','springer/soa security.csv','springer','\0'),(515,'Ubiquity and QoS for cloud security','2012','','Architecture Model; Cloud Computing; Cloud Security; QoS; Ubiquity','Cloud computing brings many advantages in terms of externalization, service delivery, elasticity, dependability and scalability. Nevertheless, it can be exposed to several vulnerabilities and security attacks. Therefore, we propose, in our UBIS (Ubiquity and Integration of Services) project, an architectural model that aims to satisfy cloud user requirements and cloud security challenges. For this purpose, our solution is based on two key elements. The former deals with ubiquitous services in Service Oriented Architecture. The latter considers QoS management that includes security aspects based on Event Driven Architecture. © 2012 IEEE.','',1,'Hammami A., Simoni N., Salman R.','scopus/service oriented architecture security.csv','scopus','\0'),(516,'Small-World Based Trust Evaluation Model for Web Service','2012','1','Small-world model;Subjective logic;Trust model;Web service','As popular web applications, web services can provide very flexible application integration taking advantage of existing Internet protocols and open standards. However, there are a few stubborn problems which exist in its architectures, for example, security. Especially in distributed services environment, trust which is a proved way to resolve security problem of web service is crucial to service providers and service customers for protecting service transactions and message delivering. In this paper, a web services trust evaluation model based on small world model is proposed. Firstly, an expanded subjective logic model is proposed. Secondly, a framework of SOA is built upon trust management module. Thirdly, the computing of subjective logic is improved based on small world, and the components in SOA are organized in small world. And then, the trust architecture of web service is presented. Finally, a simulation platform is used to study the evolution process of trust value in the model. The experiments and analysis show that the model can support evolving the web services trust.','Computer Science & Service System (CSSS), 2012 International Conference on',1,'Z. Yu; F. Liu','ieee/service oriented architecture security.csv','ieee','\0'),(517,'A Genetic Algorithm for Automatic Business Process Test Case Selection','2015','0',' Process modeling and design Process testing Test case selection Genetic algorithm','Abstract Process models tend to become more and more complex and, therefore, also more and more test cases are required to assure their correctness and stability during design and maintenance. However, executing hundreds or even thousands of process model test cases leads to excessive test suite execution times and, therefore, high costs. Hence, this paper presents a novel approach for process model test case selection which is able to address flexible user-driven test case selection requirements and which can integrate a diverse set of knowledge sources to select an appropriate minimal set of test cases which can be executed in minimal time. Additionally, techniques are proposed which enable the representation of unique coverage requirements and effects for each process node and process test case in a comprehensive way. For test case selection, a genetic algorithm is proposed. Its effectiveness is shown in comparison with other test case selection approaches.','',2,'Kristof BöhmerStefanie Rinderle-Ma','springer/bpel security.csv','springer',''),(518,'Personalized and adaptable mHealth architecture','2015','','Architecture; Biometrics; Context; Flexibility; Mhealth; Mobile WebService; Privacy; Security','Health monitoring is a field where one\'s health condition (i.e., vital signs) is continually measured so that appropriate action(s) can be taken once an irregularity is found. However, a patient vital sings are highly individual based on various factors such as age, gender, weight, environment, daily activities, and medical conditions. Thus, a generalized mHealth solution can not satisfy the needs of all the users. In this paper, a mHealth architecture is presented which can be configured to individual user needs and demands. © 2014 ICST.','',1,'Siddiqui A., Koch O., Rabie A., Handmann U.','scopus/webservice security.csv','scopus',''),(519,'Cloud-based collaborative creation and simulation of courses of action: Creation of a prototype web application using new HTML5 features','2012','0','Cloud Computing;Service Oriented Architecture (SOA);Simulation','There are many domains that require predefined plans of action in response to certain events. For example, emergency responders have response plans for emergencies such as airplane crashes or other mass casualty incidents, and militaries have plans for disaster relief. In creating these plans, there is a great deal of collaboration required in creation, testing, and training people involved in plan execution. These response plans can be tested in simulations to model their effectiveness and so that domain experts can see potential problems. This paper presents a novel approach for creating such response plans as a collaborative simulation in the cloud.','2012 IEEE Symposium on Computational Intelligence for Security and Defence Applications',1,'E. Torunski','ieee/service oriented architecture security.csv','ieee','\0'),(520,'Runtime Enforcement of Information Flow Security in Tree Manipulating Processes','2012','0',' Semi-structured data information flow control runtime enforcement','Abstract We consider the problem of enforcing information flow policies in Xml manipulating programs such as Web services and business processes implemented in current workflow languages. We propose a runtime monitor that can enforce the secrecy of freely chosen subtrees of the data throughout the execution. The key idea is to apply a generalized constant propagation for computing the public effect of branching constructs whose conditions may depend on the secret. This allows for a better precision than runtime monitors which rely on tainting of variables or nodes alone. We demonstrate our approach for a minimalistic tree manipulating programming language and prove its correctness w.r.t. the concrete semantics of programs.','',2,'Máté KovácsHelmut Seidl','springer/bpel security.csv','springer','\0'),(521,'Implementation and Evaluation of a Multi-tenant Open-Source ESB','2013','2',' Multi-tenancy Enterprise Service Bus (ESB) ESB benchmarking JBI specification Platform as a Service','Abstract Offering applications as a service in the Cloud builds on the notion of application multi-tenancy. Multi-tenancy, the sharing of application instances and their underlying resources between users from different organizational domains, allows service providers to maximize resource utilization and reduce servicing costs per user. Realizing application multi-tenancy however requires suitable enabling mechanisms offered by their supporting middleware. Furthermore, the middleware itself can be multi-tenant in a similar fashion. In this work we focus on enabling multi-tenancy for one of the most important components in service-oriented middleware, the Enterprise Service Bus (ESB). In particular, we discuss the prototype realization of a multi-tenant aware ESB, using an open source solution as the basis. We then evaluate the performance of our proposed solution by an ESB-specific benchmark that we extended for multi-tenancy purposes.','',1,'Steve StrauchVasilios AndrikopoulosSantiago Gómez SáezFrank Leymann','springer/service oriented architecture security.csv','springer','\0'),(522,'c-Eclipse: An Open-Source Management Framework for Cloud Applications','2014','3','','Abstract Cloud application portability and optimal resource allocation are of great importance in the realm of Cloud infrastructure provisioning. c-Eclipse is an open-source Cloud Application Management Framework through which users are able to define the description, deployment and management phases of their Cloud applications in a clean and intuitive graphical manner. It is built on top of the well-established Eclipse platform and it adheres to two highly desirable features of Cloud applications: portability and elasticity. In particular, c-Eclipse implements the open, non-proprietary OASIS TOSCA specification for describing the provision, deployment and re-contextualization of applications across different Cloud infrastructures, thereby ensuring application portability. Furthermore, c-Eclipse enables Cloud users to specify elasticity policies that describe how the deployed virtualized resources must be elastically adapted at runtime to match the needs of a dynamic application-workload. In this paper, we introduce the architecture and implementation of c-Eclipse, and describe its key characteristics via a use-case scenario that involves a user creating a description of a 3-tier Cloud application, enriching it with appropriate elasticity policies, submitting it for deployment to two different Cloud providers and, finally, monitoring its execution.','',2,'Chrystalla SofokleousNicholas LoulloudesDemetris TrihinasGeorge PallisMarios D. Dikaiakos','springer/bpel security.csv','springer',''),(523,'SOASMM: A novel service oriented architecture Security Maturity Model','2012','','Indicators; Information Security; Maturity Model; Metrics; SOA','Ensuring SOA developed applications security has become crucial to protect against potential damage and is a sign of confidence for companies that would like to start collaboration based on SOA services. The aim of the present paper is to present the principles of a novel tool that supports the assessment of SOA security maturity of organizations: the SOASMM (SOA Security Maturity Model). This model was defined by incorporating information security best practice approaches in the paradigm of service-oriented architecture using an argued approach and mapping models. Security Indicators deduced in our study denote the complexity of security controls as SOA maturity levels get higher. Besides, as the model that we proposed is based on security standards and best practices, it can be further developed to support organizations to evaluate and adjust their security practices according to their SOA migration plan. © 2012 IEEE.','',1,'Kassou M., Kjiri L.','scopus/service oriented architecture security.csv','scopus','\0'),(524,'A security framework for developing service-oriented software architectures','2015','','Formal methods; Model-driven development; Security modeling; Service-oriented architecture','The usually heterogeneous and decentralized nature of entities in the service-oriented architecture has paved the ground for the implementation of approaches distributed according to the constantly changing needs of business. Also, as the distribution of entities and processes increases, the need to provide security over software and hardware sources, which have reached the public thanks to an open space as a result of the service-oriented architecture, is felt. Therefore, security modeling at the level of service-oriented architecture can boost system reliability and enhance its stability once applied and employed. This research provides a secure framework through which to develop software based on the service-oriented architecture. The proposed framework has been modeled using the SoaML profile, which has been introduced for modeling service-oriented environments. The framework\'s security aspects have been tested by the modeling and specification language Alloy, which is based on the first-order logic. Its accuracy has also been well investigated. Tapping into the model-driven development, this framework can provide an answer to existing security challenges for service-oriented architecture software. © 2015 John Wiley & Sons, Ltd.','',1,'Rafe V., Hosseinpouri R.','scopus/service oriented architecture security.csv','scopus',''),(525,'Probabilistic Topic Models for Web Services Clustering and Discovery','2013','1',' Web service Data Representation Clustering Discovery Machine Learning Topic Models','Abstract In Information Retrieval the Probabilistic Topic Models were originally developed and utilized for topic extraction and document modeling. In this paper, we explore several probabilistic topic models: Probabilistic Latent Semantic Analysis (PLSA), Latent Dirichlet Allocation (LDA) and Correlated Topic Model (CTM) to extract latent factors from web service descriptions. These extracted latent factors are then used to group the services into clusters. In our approach, topic models are used as efficient dimension reduction techniques, which are able to capture semantic relationships between word-topic and topic-service interpreted in terms of probability distributions. To address the limitation of keywords-based queries, we represent web service description as a vector space and we introduce a new approach for discovering web services using latent factors. In our experiment, we compared the accuracy of the three probabilistic clustering algorithms (PLSA, LDA and CTM) with that of a classical clustering algorithm. We evaluated also our service discovery approach by calculating the precision (P@n) and normalized discounted cumulative gain (NDCGn). The results show that both approaches based on CTM and LDA perform better than other search methods.','',1,'Mustapha AznagMohamed QuafafouEl Mehdi RochdZahi Jarir','springer/service oriented architecture security.csv','springer','\0'),(526,'A Survey of Context Aware Vertical Handover Management Schemes in Heterogeneous Wireless Networks','2015','0',' Smartphones Heterogeneous wireless networks Seamless mobility Handover management User-centric Network-centric','Abstract Modern smartphones and wireless-enabled devices are equipped with a number of interfaces to access multiple networks in heterogeneous wireless networks. Seamless mobility between these networks can be achieved by optimizing parameters related with vertical handover management\n . This paper presents a detailed review of the recent schemes used for context-aware vertical handover management in heterogeneous wireless networks. In particular, we reviewed user-centric, network centric, and hybrid schemes, and compare them in context of throughput, packet loss ratio, and other advantages such as handover delay, cost, energy, and bandwidth optimization.','Wireless Personal Communications',1,'Murad KhanKijun Han','springer/service oriented architecture security.csv','springer',''),(527,'Towards intelligent GIServices','2015','4',' GIServices Intelligent GIServices GIS·Big data Intelligent systems Artificial intelligence','Abstract Distributed information infrastructures are increasingly used in the geospatial domain. In the infrastructures, data are being collected by distributed sensor services, served by distributed geospatial data services, transformed by processing services and workflows, and consumed by smart clients. Consequently, Geographical Information Systems (GISs) are moving from GISystems to GIServices. Intelligent GIServices are enriched with new capabilities including knowledge representation, semantic reasoning, automatic workflow composition, and quality and traceability. Such Intelligent GIServices facilitate information discovery and integration over the network and automate the assembly of GIServices to provide value-added products. This paper provides an overview of intelligent GIServices. The concept of intelligent GIServices is described, followed by a review of the state-of-the-art technologies and methodologies relevant to intelligent GIServices. Visions on how GIServices can perceive, reason, learn, and act intelligently are highlighted. The results can provide better services for big data processing, semantic interoperability, knowledge discovery, and cross-discipline collaboration in Earth science applications.','Earth Science Informatics',1,'Peng YuePeter BaumannKaylin BugbeeLiangcun Jiang','springer/soa security.csv','springer',''),(528,'End-to-end reliability of service oriented applications','2012','6',' Service oriented architecture Web services Services composition Application reliability','Abstract As organizations move towards adopting a service oriented architecture that permits the coexistence of multiple technology environments, an increasing number of applications will be developed through the assembly of existing software components with standard web service interfaces. These components with web service interfaces may be available in-house, or may be supplied or hosted by external vendors. The use of multiple services, possibly utilizing different technologies, providers, locations, and sources, has implications for the end-to-end reliability of these applications to support a business process. Selecting the best service for individual tasks in a business process does not guarantee the most effective overall solution, particularly if criteria other than functional characteristics are employed. This paper examines reliability issues associated with applications developed within service oriented architecture. It develops a measure for deriving end-to-end application reliability, and develops a model to help select appropriate services for tasks in the business process which accommodate the redundant and overlapping functionality of available services and planned redundancy in task support to satisfy the reliability requirement of the resulting application. A genetic algorithm approach is adopted to select promising services to assemble the application using end-to-end reliability as the criterion of interest. An application to a real-world business process illustrates the effectiveness of the approach.','Information Systems Frontiers',2,'Hangjung ZoDerek L. NazarethHemant K. Jain','springer/bpel security.csv','springer','\0'),(529,'Proactive Enforcement of Data Consistency by Business Processes','2012','0','','Data and its manipulation are essential in business processes (BPs). It is desirable to ensure within BP executions that every update to a database server guarantees to satisfy all relevant data integrity constraints (ICs). Furthermore, the earlier in a BP execution a violation is detected the more dependable the BP is. This paper studies the Process Safety Problem (PSP): will an incoming message be used in a database update causing IC violations? PSP is unsolvable in general. Taking advantage of the design-time \"guard injection\" technique, we propose a runtime proactive enforcement mechanism, called \"process safe guarding\", based on symbolic execution of BPEL processes for a bounded number of steps under \"conservative strategy\". Related challenges are also discussed.','2012 19th Asia-Pacific Software Engineering Conference',2,'X. Liu; J. Su; X. Li','ieee/bpel security.csv','ieee','\0'),(530,'Knowledge based framework: A case study on fast, reliable, and secure web services in UAVs','2014','1','Critical embedded systems; Performance; SOA; UAVs; Web services','Advanced and complex embedded systems as multicore and multiprocessor systems are becoming common and this has stimulated the development of critical applications for them. UAVs (Unmanned Aerial Vehicles) constitute a typical application of a complex critical embedded system. One concept that can result in radically different solutions in UAVs is the use of Service-Oriented Architecture (SOA). The increasing use of SOA in critical applications demands dependable and cost effective techniques to ensure high security. In this paper we develop a different kind of services for avionics with different parameters (security, reliability and performance) to provide the use of SOA in a less critical part in the whole systems. The use of these services and the KBF (Knowledge Based Framework for Dynamically Changing Applications) presented in this paper can give more intelligence to the UAVs and provide a new form of segregating the UAV mission from the vehicle itself. The services were developed and a performance evaluation was conducted showing the benefits in choosing one service or another. © 2014 IEEE.','',1,'Rodrigues D., Chaves A.A., Branco K.R.L.J.C., Ramdhany R., Coulson G.','scopus/service oriented architecture security.csv','scopus','\0'),(531,'Towards outsource-ability enabled BPMN','2015','','BPMN extension; Business process outsourcing; Cloud computing; Genetic algorithm','Business process outsourcing to the Cloud is increasingly being adopted as a strategy to save costs, improve the business process performance, enhance the flexibility in responding to costumers\' needs, etc. However, the adoption of an outsourcing strategy faces several challenges like the enterprise data security, vendor-lock-in and labor union. Weighing the pros and cons of outsourcing one\'s business process is an arduous task. This paper provides for assistance means: it extends the BPMN language to explicitly support the specification of outsourcing criteria, and it presents an automated approach to help decision makers identify those parts of their business process that benefit most from outsourcing to the Cloud.','',2,'Rekik M., Boukadi K., Ben-Abdallah H.','scopus/bpmn security.csv','scopus',''),(532,'Preference Based Service Adaptation Using Service Substitution','2013','1','Web Services, Preference Reasoning, Qualitative Reasoning, Service Adaptation','In many applications such as service-oriented computing, users often prefer some compositions over the others based on their preferences over non-functional attributes such as security and cost. After a composition is deployed, apart from changes in the functional requirements, service-oriented architectures often have to deal with changes in the user preferences over the non-functional attributes and/or repository of available components. We formulate the problem of adaptation as iterative substitution of appropriate components in a composition, and provide two algorithms that produce a sequence of increasingly preferred adaptations with time: a fast algorithm that searches for preferred adaptations by improving the valuation of the relatively more important attributes, and another that is computationally more intensive but guaranteed to produce at least one preferred adaptation, if one exists.','',1,'Ganesh Ram Santhanam and Samik Basu and Vasant Honavar','acm/service oriented architecture security.csv','acm','\0'),(533,'Intercloud Architecture Framework for Heterogeneous Cloud Based Infrastructure Services Provisioning On-Demand','2013','8','Cloud Computing Reference Architecture;Cloud Security;Intercloud Architecture;Intercloud Control and Management Plane;Intercloud Federation Framework;Intercloud Operation Framework;Multi-layer Cloud Services Model','This paper presents on-going research to develop the Intercloud Architecture Framework (ICAF) that addresses problems in multi-provider multi-domain heterogeneous cloud based infrastructure services and applications integration and interoperability, to allow their on-demand provisioning. The paper refers to existing standards and ongoing standardisation activity in Cloud Computing, in particular, recently published NIST Cloud Computing Reference Architecture (CCRA) and ITU-T JCA-Cloud activity. The proposed ICAF defines four complementary components addressing Intercloud integration and interoperability: multi-layer Cloud Services Model that combines commonly adopted cloud service models, such as IaaS, PaaS, SaaS, in one multilayer model with corresponding inter-layer interfaces, Intercloud Control and Management Plane that supports cloud based applications interaction, Intercloud Federation Framework, and Intercloud Operations Framework. The paper briefly describes the Service delivery and lifecycle management as an important ICAF component that provides a basis for consistent management and security of the provisioned on-demand complex cloud based services. The paper describes an implementation of the Intercloud Control and Management Plane in the GEYSERS project to allow optimal provisioning of the combined Network+IT resources in the inter-cloud environment. The proposed architecture is intended to provide an architectural model for developing Intercloud middleware and in this way will facilitate clouds interoperability and integration.','Advanced Information Networking and Applications Workshops (WAINA), 2013 27th International Conference on',1,'Y. Demchenko; C. Ngo; C. de Laat; J. A. Garcia-Espin; S. Figuerola; J. Rodriguez; L. M. Contreras; G. Landi; N. Ciulli','ieee/service oriented architecture security.csv','ieee','\0'),(534,'Rapid modeling and analyzing networks extracted from pre-structured news articles','2012','7',' Rapid network analysis Rapid assessment Network text analysis Dynamic networks Two mode networks Weighted networks','Abstract In the face of uprisings and revolutions happening in several countries within short period of time (Arab Spring 2011), the need for fast network assessments is compelling. In this article we present a rapid network assessment approach which uses a vast amount of pre-indexed news data to provide up-to-date overview and orientation in emerging and ongoing incidents. We describe the fully automated process of preparing the data and creating the dynamic meta-networks. We also describe the network analytical measures that we are using to identify important topics, persons, organizations, and locations in these networks. With our rapid network modeling and analysis approach first results can be provided within hours. In the explorative study of this article we use 108,000+ articles from 600+ English written news sources discussing Egypt, Libya, and Sudan within a time period of 18 months to show an application scenario of our approach. In particular we are looking at the involvement of other countries and their politicians during time periods of major incidents.','Computational and Mathematical Organization Theory',1,'Jürgen PfefferKathleen M. Carley','springer/service oriented architecture security.csv','springer','\0'),(535,'Mitigating Risks Associated with Transitive Trust in Service-Based Identity Propagation','2012','1','access control; identity propagation; service orchestration; SOA security; trust models; Web services','Over the past 20 years, software has evolved from monolithic, stove-piped applications to services that communicate with other distributed components over communications networks. The rise in popularity of Service-oriented Architecture (SOA) and web services has presented unique challenges for securely conveying the identity of end users at every point, especially when mashups, Web service composition and orchestration solutions combine multiple distributed components throughout a network, and where each component may need to know the identity of the end user. Over the past decade, many U.S. government projects have embraced SOA, have identified security risks with certain types of identity propagation, and have built solutions for mitigating the risks. This paper focuses on identity propagation in Web service transactions and describes how several early SOA-based projects utilized \"transitive trust\" approaches. We categorize the security risks found and describe how these projects minimized or mitigated the risks. Finally, we discuss approaches used in current projects and provide guidance for future implementations. © 2012 Copyright Taylor and Francis Group, LLC.','',1,'Smith K.T.','scopus/service oriented architecture security.csv','scopus','\0'),(536,'MathCloud: Publication and Reuse of Scientific Applications as RESTful Web Services','2013','2',' computational web service service-oriented scientific environment software as a service REST service container service catalogue workflow','Abstract The paper presents MathCloud platform which enables wide-scale sharing, publication and reuse of scientific applications as RESTful web services. A unified interface of computational web service based on REST architectural style is proposed. Main components of MathCloud platform including service container, service catalogue, workflow management system, and security mechanism are described. In contrast to other similar efforts based on WS-* specifications, the described platform provides a more lightweight solution with native support for modern Web applications. The platform has been successfully used in several applications from various fields of computational science that confirm the viability of proposed approach and software platform.','',1,'Alexander AfanasievOleg SukhoroslovVladimir Voloshinov','springer/service oriented architecture security.csv','springer','\0'),(537,'Distributed data mining: a survey','2012','23',' Data mining Business intelligence Business analytics Decision support systems Distributed systems Literature review','Abstract Most data mining approaches assume that the data can be provided from a single source. If data was produced from many physically distributed locations like Wal-Mart, these methods require a data center which gathers data from distributed locations. Sometimes, transmitting large amounts of data to a data center is expensive and even impractical. Therefore, distributed and parallel data mining algorithms were developed to solve this problem. In this paper, we survey the-state-of-the-art algorithms and applications in distributed data mining and discuss the future research opportunities.','Information Technology and Management',1,'Li ZengLing LiLian DuanKevin LuZhongzhi ShiMaoguang WangWenjuan WuPing Luo','springer/soa security.csv','springer',''),(538,'myVisitPlanner\n GR: Personalized Itinerary Planning System for Tourism','2014','0','','Abstract This application paper presents myVisitPlanner GR , an intelligent web-based system aiming at making recommendations that help visitors and residents of the region of Northern Greece to plan their leisure, cultural and other activities during their stay in this area. The system encompasses a rich ontology of activities, categorized across dimensions such as activity type, historical era, user profile and age group. Each activity is characterized by attributes describing its location, cost, availability and duration range. The system makes activity recommendations based on user-selected criteria, such as visit duration and timing, geographical areas of interest and visit profiling. The user edits the proposed list and the system creates a plan, taking into account temporal and geographical constraints imposed by the selected activities, as well as by other events in the user’s calendar. The user may edit the proposed plan or request alternative plans. A recommendation engine employs non-intrusive machine learning techniques to dynamically infer and update the user’s profile, concerning his preferences for both activities and resulting plans, while taking privacy concerns into account. The system is coupled with a module to semi-automatically feed its database with new activities in the area.','',1,'Ioannis RefanidisChristos EmmanouilidisIlias SakellariouAnastasios AlexiadisRemous-Aris KoutsiamanisKonstantinos AgnantisAimilia TasidouFotios KokkorasPavlos S. Efraimidis','springer/service oriented architecture security.csv','springer','\0'),(539,'A survey of journey of cloud and its future','2015','','And; API (application programming interface); Cloud computing; CSP (cloud service provider); DC (data-centers); PAAS (platform as a service); SAAS (software as a service); SOA (service-oriented architecture); TC (telecommunications closet); Virtualization','Cloud computing in the past few years has grown from a promising business idea to one of the fastest growing field of the IT industry. Still the IT organization is concern about critical issues (like security, data loss) existing with the implementation of cloud computing, related to security in particular. Consequently issues arise due to client switching to cloud computing. This paper briefs about the role of cloud in IT business enterprise, its woes and its projected solutions. It proposes the use of \'Honey-Comb Infrastructure\' for flexible, secure and reliable storage supported by parallel computing. © 2015 IEEE.','',1,'Shekanayaki K., Chakure A., Jain A.','scopus/service oriented architecture security.csv','scopus','\0'),(540,'Taxonomy and issues for antifragile-based multimedia cloud computing','2016','0',' Cloud computing Quality of service Antifragility Quality of experience Resource allocation','Abstract Cloud computing has become one of the most dynamic and adoptable computing paradigms. Multimedia Cloud Computing (MCC) is one of today’s hot research topic. MCC is proven to be a most dynamic and efficient platform for managing a large amount of multimedia contents with maximum deployment of computing and processing resources at the service provider instead of users. Resilience and dependability are two key constituents to assure the reliability and availability of any service in the presence of errors and system failures. The heterogeneous environment of MCC has given rise to various challenges related to resource allocation and task management. Antifragility is a key to such environments, to let the disorder drive the strength of these systems. This paper is mainly divided into three parts. The first part discusses in detail the available state-of-the-art related to resource management under MCC. Similarly, the second part presents the comprehensive literature review on the task management in MCC. The third part presents the critical analysis and open research issues in MCC which help the researcher to define their research objectives in the field of MCC.','Journal of Reliable Intelligent Environments',1,'Syed Fawad HaiderLaraib AbbasAmjad AliMuddesar IqbalImran RazaSyed Asad HussainDoug Young Suh','springer/service oriented architecture security.csv','springer',''),(541,'Information systems frontiers editorial December 2012','2012','0','','','Information Systems Frontiers',1,'R. RameshH. Raghav Rao','springer/service oriented architecture security.csv','springer','\0'),(542,'Facilitating multi-device usage in mhealth','2013','2','CAP theorem; Health information system; Mhealth; Middleware; Mobile devices; Private cloud; ROA; SOA','Today, it is a common phenomenon for physicians to own multiple mobile devices such as smartphones and tablets in order to seamlessly access the Electronic Health Record (EHR). But, the over reliance on wireless communication channels by mobile devices limits the user expectation since consistent connectivity cannot be guaranteed due to the intermittent connectivity losses in mobile ecosystems. What is even challenging is the presence of the CAP theorem which states that though the following three properties are desired in a distributed environment: consistency, availability, and partition tolerance, only two of the properties can be guaranteed simultaneously. In this paper, we deployed a reliable mHealth architecture that enables healthcare practitioners to employ their multimobile devices to access the EHR. We proposed a middleware platform that synchronizes the medical data on the multi-devices of a single user with careful consideration to the CAP theorem. The architecture is based on mainstream technologies such as: the publish/subscribe technique for real-time data access, medical data encryption for security, and mobile-side caching.','',1,'Lomotey R.K., Deters R.','scopus/soa security.csv','scopus','\0'),(543,'Towards requirements for trust management','2012','1','Trust management;distributed system design;trust management for developers;user-centered design','Research in the field of Trust Management is blooming producing new Trust Frameworks within short time intervals. However, trust researchers do not develop distributed systems. Most developers are not familiar with security procedures and therefore often introduce other security vulnerabilities during implementation. We wish to provide a solution for system designers and developers for applying Trust Management. As a first step of our work we investigated how our users understand the application of trust and reputation in distributed systems. During focus group workshops we collected a set of initial requirements. We learnt that users are familiar with the benefits gained by Trust Management but had not enough knowledge about its application.','Privacy, Security and Trust (PST), 2012 Tenth Annual International Conference on',1,'M. Vinkovits','ieee/service oriented architecture security.csv','ieee','\0'),(544,'A modified (Dual) fusion technique for image encryption using SHA-256 hash and multiple chaotic maps','2015','0',' 2D logistic map Chaos theory DNA SHA-256 Noise resistance MDF','Abstract A Modified Dual Fusion (MDF) technique of image encryption is proposed in this paper to overcome the limitations that exist in the original research work of Q. Zhang et al. (Optik 124:3596–3600, 2013 ). A novel technique of DNA encoding is applied through chaotic maps on pixel level and SHA-256 hash of the plain image is used to generate secret keys to avoid chosen-plaintext attack. Also, in the modified scheme, two random images are generated from chaotic maps to fuse with the plain image after permutation in digital and DNA domains using XOR and addition operations respectively. The simulated experimental results and security analysis show that the proposed cryptosystem has fairly good encryption effect than the original fusion scheme but also has the capability to sustain noise which gets add during transmission over noisy channel. Besides, the paramount factor of improved scheme is suitable for the real time applications.','Multimedia Tools and Applications',1,'Aqeel-ur-RehmanXiaofeng LiaoAyesha KulsoomSami Ullah','springer/service oriented architecture security.csv','springer',''),(545,'Efficient Querying of XML Data Through Arbitrary Security Views','2015','0',' XML access control Security views Materialization Query rewriting XPath Regular XPath XML databases Confidentiality and integrity','Abstract We study the problem of querying virtual security views of XML data that has received a great attention during the past years. A major concern here is that user XPath queries posed on recursive views cannot be rewritten to be evaluated on the underlying XML data. Existing rewriting solutions are based on the non-standard language, “Regular XPath”, which makes rewriting possible under recursion. However, query rewriting under Regular XPath can be of exponential size. We show that query rewriting is always possible for arbitrary security views (recursive or not) by using only the expressive power of the standard XPath. We propose a more expressive language to specify XML access control policies as well as an efficient algorithm to enforce such policies. Finally, we present our system, called SVMAX , that implements our solutions and we show that it scales well through an extensive experimental study based on real-life DTD.','',1,'Houari MahfoudAbdessamad Imine','springer/service oriented architecture security.csv','springer',''),(546,'5th International Conference on Soft Computing for Problem Solving, SocProS 2015','2016','','','The proceedings contain 88 papers. The special focus in this conference is on Soft Computing for Problem Solving. The topics include: Optimization of nonlocal means filtering technique for denoising magnetic resonance images; a production model with stock-dependent demand, partial backlogging, weibull distribution deterioration, and customer returns; chemo-inspired genetic algorithm and application to model order reduction problem; grammatical evolution using fireworks algorithm; gaussian function-based particle swarm optimization; reinforcing particle system effects using object-oriented approach and real-time fluid dynamics for next-generation 3D gaming; searchless fractal image compression using fast DCT and real DCT; study of neighborhood search-based fractal image encoding; an optimized color image watermarking technique using differential evolution and SVD-DWT domain; one day ahead forecast of pan evaporation at pali using genetic programming; optimized scenario of temperature forecasting using SOA and soft computing techniques; software reliability prediction using machine learning techniques; a genetic algorithm based scheduling algorithm for grid computing environments; effect of imperfect debugging on prediction of remaining faults in software; multiple document summarization using text-based keyword extraction; implementation of the principle of jamming for hulk gripper remotely controlled by raspberry pi; differential evolution; multi-objective parametric query optimization for distributed database systems; energy efficient routing protocol for MANET using vague set; data storage security in cloud paradigm; axisymmetric vibrations of variable thickness functionally graded clamped circular plate and performance evaluation of geometric-based hybrid approach for facial feature localization.','',1,'[No author name available]','scopus/soa security.csv','scopus',''),(547,'Learning from Failures: A Lightweight Approach to Run-Time Behavioural Adaptation','2012','0','','Abstract Software integration needs to face signature and behaviour incompatibilities that unavoidably arise when composing services developed by different parties. While many of such incompatibilities can be solved by applying existing software adaptation techniques, these are computationally expensive and require to know beforehand the behaviour of the services to be integrated. In this paper we present a lightweight approach to dynamic service adaptation which does not require any previous knowledge on the behaviour of the services to be integrated. The approach itself is adaptive in the sense that an initial (possibly the most liberal) adaptor behaviour is progressively refined by learning from failures that possibly occur during service interaction.','',2,'José Antonio MartínAntonio BrogiErnesto Pimentel','springer/bpel security.csv','springer','\0'),(548,'Privacy preserving collaborative filtering for SaaS enabling PaaS clouds','2012','5',' Collaborative filtering Privacy Cloud computing Homomorphic cryptosystem Slope one','Abstract Abstract Recommender systems use, amongst others, a mechanism called collaborative filtering (CF) to predict the rating that a user will give to an item given the ratings of other items provided by other users. While reasonably accurate CF can be achieved with various well-known techniques, preserving the privacy of rating data from individual users poses a significant challenge. Several privacy preserving schemes have, so far, been proposed in prior work. However, while these schemes are theoretically feasible, there are many practical implementation difficulties on real world public cloud computing platforms. In this paper, we present our implementation experience and experimental results on two public Software-as-a-Service (SaaS) enabling Platform-as-a-Service (PaaS) clouds: the Google App Engine for Java (GAE/J) and the Amazon Web Services Elastic Beanstalk (AWS EBS). a','Journal of Cloud Computing: Advances, Systems and Applications',1,'Anirban BasuJaideep VaidyaHiroaki KikuchiTheo DimitrakosSrijith K Nair','springer/soa security.csv','springer','\0'),(549,'Digital Ecosystems for Business e-Services in Knowledge-Intensive Firms','2012','1',' Service Digital Ecosystem Knowledge-intensive Business Service Service System Artifact Software as a Service','Abstract In this day and age, firms compete by the skills and knowledge of their employees to deliver a range of customized solutions to meet their clients’ needs. Knowledgeable workers thereby play a pivotal role in today’s knowledge-based economy. In knowledge-intensive business service (KIBS) firms, service providers exchange explicit knowledge with service customers through various delivery channels. Information and communication technologies have led to the development of various delivery channels to provide e-services to customers and, consequently, the emergence of digital ecosystems fostering the flourishing of knowledge-intensive firms. In this paper, we study the development of digital ecosystems of business services. We particularly examine the design of the digital business ecosystem as a holistic system consisting of distributed and fine-grained elements, known as service systems. Based on the challenging characteristics of services, a service system exhibits its computational features in terms of Software-as-a-Service components and exchanges business knowledge encapsulated as business artifacts.','',2,'Youakim BadrYong PengFrédérique Biennier','springer/bpel security.csv','springer','\0'),(550,'Middleware for Internet distribution in the context of cloud computing and the Internet of Things','2016','0','','','Annals of Telecommunications',1,'Gordon BlairDouglas SchmidtChantal Taconet','springer/service oriented architecture security.csv','springer',''),(551,'Fair BPEL processes transaction using non-repudiation protocols','2005','3','','There is a need for protocols to achieve universal interoperability among Web services and to provide a fair and secure environment with non-repudiation. BPEL provides a language for the formal specification of business processes and business interaction protocols. In this paper we propose and verify a non-repudiation protocol using Petri nets for chain-linked business transactions and show that they may be specified in BPEL.','2005 IEEE International Conference on Services Computing (SCC\'05) Vol-1',2,'M. Bilal; J. P. Thomas; M. Thomas; S. Abraham','ieee/bpel security.csv','ieee','\0'),(552,'Bridging the GAP between Software Certification and Trusted Computing for Securing Cloud Computing','2013','1','certification; cloud computing; security; trusted computing technology','Despite the fact that software security certification has important advantages; among these we highlighted that it allows to increase users\' trust by means of attesting security properties. However, in most of cases the system that is subject of certification is considered to be monolithic. This fact implies that existing certification schemes do not provide support for dynamic changes of components as required in Cloud Computing scenarios. In existing certification schemes certificates refer to a particular version of the product or system, changes in the system structure require a process of recertification. We propose a solution based on the combination of software certification techniques and hardware-based certification, as those provided by the Trusted Computing technology. Likewise, the main target of our approach is bringing the gap existing between the software certification and the means for hardware certification, in order to provide a solution for the whole system certification using Trusted Computing technology.','2013 IEEE Ninth World Congress on Services',1,'A. Muñoz; A. Maña','ieee/service oriented architecture security.csv','ieee','\0'),(553,'Providing security to a smart grid prosumer system based on a service oriented architecture in an office environment','2013','','Attacker Model; Office Environment; Prosumer; Security Analysis; Service Oriented Architecture; Smart Grid','The transformation of energy systems into smart grids will provide a lot of new possibilities to all participants. By upgrading energy distribution nets with information and communication technologies (ICT) customers and suppliers will have additional information. It integrates a bi-directional information transport between both, power supply company and customer. This real-time data is used to save costs by reducing energy consumption, to provide a good alignment with fluctuating renewable energy production, or to actively participate in the market by offering surplus production. However, ICT systems are always a subject to potential cyber-attacks and manipulations. Therefore, securing such systems is one of the most important objectives. In this paper we conduct the security analysis of our smart grid prosumer demonstrator, which is implemented using on a service oriented architecture. We analyze the attackers\' motivations and derive an attacker model. We identify weak points of our system with respect to the attacker model and the system architecture. Finally, we propose counter measurements to improve the case study smart grid system. © 2013 IEEE.','',1,'Camek A., Holzl F., Bytschkow D.','scopus/service oriented architecture security.csv','scopus','\0'),(554,'Compositional Network Mobility','2014','1','','Abstract Mobility is a network capability with many forms and many uses. Because it is difficult to implement at Internet scale, there is a large and confusing landscape of mobility proposals which cannot easily be compared or composed. This paper presents formal models of two distinct patterns for implementing mobility, explaining their generality and applicability. We also employ formal verification to show that different instances of the patterns, used for different purposes in a network architecture, compose without alteration or interference. This result applies to all real implementations that are refinements of the patterns.','',1,'Pamela ZaveJennifer Rexford','springer/service oriented architecture security.csv','springer','\0'),(555,'The development and application of e-Geoscience in China','2015','1',' e-Science e-Geoscience Big data Information sharing Cloud computing Internet of Things (IoT) Northeast Asia','Abstract In the era of big data, scientific research is entering a key stage of scientific development under the guidance of a new paradigm, “e-Science”, and the core characteristics of which are collaboration and sharing. In the past decade, e-Science has rapidly developed around the world. There are now e-Science strategic plans, projects and extensive research activities on the national and international scales that encompass particle physics, astronomy, earth science, ecology, marine science, medicine, life sciences and other disciplines. However, there is no uniform and clear understanding of the essence, characteristics, infrastructure and application of e-Geoscience. This paper first discusses and analyzes the development of e-Science in a global context and then explores its development in China. Next, the development of e-Geoscience is discussed, particularly regarding the details of its design and implementation in China, including a conceptual model, a mode of application, a logical hierarchy, and functional and technical systems. Finally, the paper introduces a typical application, called the Northeast Asia Joint Scientific Exploration and Cooperative Research Platform (NAJSECRP), which is operating in research institutions in China, Russia and Mongolia. This platform can not only provide geodata and bibliographies and promote resource sharing but also provides a collaborative research platform for scientific exploration. In practice, this platform has been shown to save costs and improve the efficiency of transnational, interdisciplinary scientific exploration and cooperative research.','Information Systems Frontiers',1,'Yunqiang ZhuPeng PanShifeng FangLi Da XuJia SongJinqu ZhangMin Feng','springer/service oriented architecture security.csv','springer',''),(556,'Proactive autonomous defense shield (PADS) for Infrastructure as a Service (IaaS)','2014','','Hierarchical autonomous- Cloud intrusion detection system; Proactive intrusion detection; Simple object access protocol; Virtual machine monitor','Securing assets in the digital realm has become a challenge as there has been an exponential increment in the companies relying on the next generation technologies such as cloud computing. With the evolution of utility computing and Service Oriented Architecture as well as convergence of virtualization and web services into the notion of cloud computing, the attacks on these systems are indeed becoming more intricate and perplexing. Most inherently susceptible to the attack is Infrastructure as a Service (IaaS). This paper presents a technique of reinforcing the security of virtual machines whilst reducing the instances of false positives.','',1,'Thukral K., Zilpelwar A., Madiajagan M.','scopus/service oriented architecture security.csv','scopus','\0'),(557,'Mobile context-based framework for threat monitoring in urban environment with social threat monitor','2014','2',' Context-awareness Mobile computing GIS Knowledge management INDECT','Abstract Engaging users in threat reporting is important in order to improve threat monitoring in urban environments. Today, mobile applications are mostly used to provide basic reporting interfaces. With a rapid evolution of mobile devices, the idea of context awareness has gained a remarkable popularity in recent years. Modern smartphones and tablets are equipped with a variety of sensors including accelerometers, gyroscopes, pressure gauges, light and GPS sensors. Additionally, the devices become computationally powerful which allows for real-time processing of data gathered by their sensors. Universal access to the Internet via WiFi hot-spots and GSM network makes mobile devices perfect platforms for ubiquitous computing. Although there exist numerous frameworks for context-aware systems, they are usually dedicated to static, centralized, client-server architectures. There is still space for research in the field of context modeling and reasoning for mobile devices. In this paper, we propose a lightweight context-aware framework for mobile devices that uses data gathered by mobile device sensors and performs on-line reasoning about possible threats based on the information provided by the Social Threat Monitor system developed in the INDECT project.','Multimedia Tools and Applications',1,'Szymon BobekGrzegorz J. NalepaAntoni LigȩzaWeronika T. AdrianKrzysztof Kaczor','springer/service oriented architecture security.csv','springer','\0'),(558,'Federation and security aspects for the management of the EHR in Italy','2012','','eHealth; Electronic Health Record; Federation; Security; SOA','The Electronic Health Record (EHR) or Electronic Patient Record is a collection of electronic health information about a patient, created to increase personal safety through more accurate evidence-based decision support. Healthcare organizations, especially in different regions/local governments, can have different architectural solutions and procedures, and thus different access control policies. The requirement of compliance with previously developed architectural solutions binds them to using a single Federated infrastructure model. Since data stored in the EHR Infrastructure concerns the health status of patients, they must be considered critical and their confidentiality and integrity must be protected by proper security support. In this paper we will present the analysis of federation and security aspects and issues for the management of the Electronic Health Record in Italy, suggesting a possible solution. © 2012 Springer-Verlag.','',1,'Buzzi M.C., Donini F., Gebrehiwot A., Lunardelli A., Lucchesi C., Mori P.','scopus/soa security.csv','scopus','\0'),(559,'On enabling integrated process compliance with semantic constraints in process management systems','2012','16',' Adaptive process management systems Semantic constraints Process verification Compliance validation','Abstract Key to broad use of process management systems (PrMS) in practice is their ability to foster and ease the implementation, execution, monitoring, and adaptation of business processes while still being able to ensure robust and error-free process enactment. To meet these demands a variety of mechanisms has been developed to prevent errors at the structural level (e.g., deadlocks). In many application domains, however, processes often have to comply with business level rules and policies (i.e., semantic constraints ) as well. Hence, to ensure error-free executions at the semantic level, PrMS need certain control mechanisms for validating and ensuring the compliance with semantic constraints. In this paper, we discuss fundamental requirements for a comprehensive support of semantic constraints in PrMS. Moreover, we provide a survey on existing approaches and discuss to what extent they are able to meet the requirements and which challenges still have to be tackled. In order to tackle the particular challenge of providing integrated compliance support over the process lifecycle, we introduce the SeaFlows framework. The framework introduces a behavioural level view on processes which serves a conceptual process representation for constraint specification approaches. Further, it provides general compliance criteria for static compliance validation but also for dealing with process changes. Altogether, the SeaFlows framework can serve as formal basis for realizing integrated support of semantic constraints in PrMS.','Information Systems Frontiers',2,'Linh Thao LyStefanie Rinderle-MaKevin GöserPeter Dadam','springer/bpel security.csv','springer',''),(560,'Model Checking of Security-Critical Applications in a Model-Driven Approach','2013','2','','Abstract This paper illustrates the integration of model checking in SecureMDD, a model-driven approach for the development of security-critical applications. In addition to a formal model for interactive verification as well as executable code, a formal system specification for model checking is generated automatically from a UML model. Model checking is used to find attacks automatically and interactive verification is used by an expert to guarantee security properties. We use AVANTSSAR for model checking and KIV for interactive verification. The integration of AVANTSSAR in SecureMDD and the advantages and disadvantages over interactive verification with KIV are demonstrated with a smart card based electronic ticketing example.','',2,'Marian BorekNina MoebiusKurt StenzelWolfgang Reif','springer/bpmn security.csv','springer','\0'),(561,'A Cost-Effective Methodology Applied to Videoconference Services over Hybrid Clouds','2013','1',' videoconference cloud computing hybrid clouds cost-effectiveness analysis','Abstract This paper tackles the optimization of applications in multi-provider hybrid cloud scenarios from an economic point of view. In these scenarios the great majority of solutions offer the automatic allocation of resources on different cloud providers based on their current prices. However our approach is intended to introduce a novel solution by making maximum use of divide and rule. This paper describes a methodology to create cost aware cloud applications that can be broken down into the three most important components in cloud infrastructures: computation, network and storage. A real videoconference system has been modified in order to evaluate this idea with both theoretical and empirical experiments. This system has become a widely used tool in several national and European projects for e-learning and collaboration purposes.','Mobile Networks and Applications',1,'Javier CerviñoPedro RodríguezIrena TrajkovskaFernando EscribanoJoaquín Salvachúa','springer/soa security.csv','springer','\0'),(562,'Research on job security scheduling strategy in cloud computing model','2015','','Cloud computing; Genetic algorithm; Security demand; Security scheduling; Trust level','This paper concentrates on the problem of job security scheduling problem under the cloud computing environment. The Architecture of the cloud computing platform is made up of four layers, including 1) SOA architecture, 2) Management Middleware, 3) Resource virtualization and 4) Physical Resources. Next, we formally describe the problem of the job security scheduling under cloud computing. To guarantee the security level of job scheduling, security demand and trust level are defined in our work. Afterwards, the proposed genetic algorithm based job security scheduling is proposed. The main innovation of our proposed algorithm lies in that we utilize each chromosome to represent a schedule of a set of jobs on several computers, and then each gene is represented as a pair to describe the relationships between jobs and computers. Finally, experimental results demonstrate that our algorithm can effectively schedule jobs with higher level security and lower processing time cost. © 2016 IEEE.','',1,'Zhang H.','scopus/soa security.csv','scopus','\0'),(563,'A guidance model for architecting secure mobile applications','2012','','architectural decisions; architectural knowledge; guidance model; mobile applications; mobility; security','In addition to fast technological advances in the area of mobile devices and its broad adoption in todays developed societies, mobile applications do not only address the consumer electronics market but are also increasingly being used in a business and industry context. Thus, we see a demand for research developing software systems comprising mobile devices with special respect to security concerns. In this paper we want to address this demand from an architectural point of view and make use of the concept of architectural decisions. We present a guidance model that supports on the one hand this decision-making process during architecting mobile applications. On the other hand the presented guidance model serves as a tool to evaluate existing architectures. The guidance model has been created based on an adapted version of Zimmermann\'s SOAD framework, which is used for in the context of service-oriented architectures. The guidance model itself consists of a set of interrelated architectural decisions for recurring design situations. The application of the guidance model is demonstrated along a real-world scenario. The guidance model also takes into account that security concerns are changing and therefore provides an extension mechanism which is presented in this paper. © 2012 ICST Institute for Computer Science, Social Informatics and Telecommunications Engineering.','',1,'Schwittek W., Diermann A., Eicker S.','scopus/service oriented architecture security.csv','scopus','\0'),(564,'Enriching Process Models for Business Process Compliance Checking in ERP Environments','2013','0',' Compliance Checking Application Controls BPM ERP','Abstract In enterprise resource planning (ERP) environments the audit of business process compliance is a complex task as audit relevant context information about the ERP system like application controls (ACs) need to be considered to derive comprehensive audit results. Current compliance checking approaches neglect such information as it is not readily available in process models. Even if ACs are automatically analysed with audit software, the results still need to be linked to related processes. By now, this linking is not methodically supported. To address this gap this paper presents a method to automatically enrich process models with audit relevant information about ACs. The method consists of three phases: process model construction, automated analysis of ACs, and model enrichment. It utilizes two existing artefacts and combines them to provide a comprehensive basis for compliance checking. Moreover, the enriched process models can support auditors in conducting process audits in ERP environments.','',2,'Martin Schultz','springer/bpel security.csv','springer','\0'),(565,'Native structure-based modeling and simulation of biomolecular systems per mouse click','2014','1',' Protein folding RNA folding Native structure-based model Molecular dynamics GridBeans','Abstract Background Molecular dynamics (MD) simulations provide valuable insight into biomolecular systems at the atomic level. Notwithstanding the ever-increasing power of high performance computers current MD simulations face several challenges: the fastest atomic movements require time steps of a few femtoseconds which are small compared to biomolecular relevant timescales of milliseconds or even seconds for large conformational motions. At the same time, scalability to a large number of cores is limited mostly due to long-range interactions. An appealing alternative to atomic-level simulations is coarse-graining the resolution of the system or reducing the complexity of the Hamiltonian to improve sampling while decreasing computational costs. Native structure-based models, also called Gō-type models, are based on energy landscape theory and the principle of minimal frustration. They have been tremendously successful in explaining fundamental questions of, e.g., protein folding, RNA folding or protein function. At the same time, they are computationally sufficiently inexpensive to run complex simulations on smaller computing systems or even commodity hardware. Still, their setup and evaluation is quite complex even though sophisticated software packages support their realization. Results Here, we establish an efficient infrastructure for native structure-based models to support the community and enable high-throughput simulations on remote computing resources via GridBeans and UNICORE middleware. This infrastructure organizes the setup of such simulations resulting in increased comparability of simulation results. At the same time, complete workflows for advanced simulation protocols can be established and managed on remote resources by a graphical interface which increases reusability of protocols and additionally lowers the entry barrier into such simulations for, e.g., experimental scientists who want to compare their results against simulations. We demonstrate the power of this approach by illustrating it for protein folding simulations for a range of proteins. Conclusions We present software enhancing the entire workflow for native structure-based simulations including exception-handling and evaluations. Extending the capability and improving the accessibility of existing simulation packages the software goes beyond the state of the art in the domain of biomolecular simulations. Thus we expect that it will stimulate more individuals from the community to employ more confidently modeling in their research.','BMC Bioinformatics',1,'Benjamin LutzClaude SinnerStefan BozicIvan KondovAlexander Schug','springer/service oriented architecture security.csv','springer','\0'),(566,'Enhancing Service-Oriented Computing with Software Mobility','2012','0','','Abstract Service-oriented computing has emerged as a consensually accepted paradigm for the implementation and integration of distributed systems in heterogeneous environments. However, its basic request/response interaction model is not always adequate for communicating in both highly dynamic, and low bandwidth, networks. To overcome this limitation, we propose the seamless incorporation of software mobility with service-oriented computing to provide a powerful framework for service-oriented architectures to benefit from the advantages of the mobility paradigm. We instantiate the model as a middleware for the mobility of Java computations in Web service environments, and present some programming examples that illustrate the expressiveness of the proposed API. This middleware is currently being successfully used in the development of other service-oriented architectures, namely in the field of dynamic Web service architectures.','',2,'Hervé PaulinoGilberto Camacho','springer/bpel security.csv','springer','\0'),(567,'What can agent-based computing offer service-oriented architectures, and vice versa?','2012','1','','This article serves as a record of a panel discussion held at PRIMA in November, 2010. The panel consisted of two academic and three industry representatives, and thus provided a rare opportunity to discuss the relationship between agent-based computing and service-oriented architectures from both points of view. The basic question for the panel was to identify the key research and industry issues that arise in the deployment of systems based on service-oriented architectures, and in particular to address whether the agent-based computing paradigm offers any resolution of those issues. The question was also posed whether applications based on service-oriented architectures provide a suitable platform for implementing agent-based systems, which are presently limited in application by comparison. This summary is presented with the aim of stimulating further academic and industry collaborative research in this fast growing area which potentially has wide-ranging practical application. © Springer-Verlag Berlin Heidelberg 2012.','',1,'Wobcke W., Desai N., Dignum F., Ghose A., Padmanabhuni S., Srivastava B.','scopus/service oriented architecture security.csv','scopus','\0'),(568,'The CoNSIS approaches to network management and monitoring','2012','0','federation;measurement architecture;network management;protected core networking;service level agreements','Secure information exchange is a key success factor for military operations. International coalition missions are especially challenging because of heterogeneous communication and C2IS equipment. The international project CoNSIS is targeted to fill in technical gaps regarding interoperability which occur in a reference scenario, consisting of a multinational convoy of military and non-governmental vehicles. The convoy forms an ad-hoc radio network and shares a common operational picture with an international headquarter mainly via a satellite link. This paper addresses network management challenges and technical solutions for this federated scenario. Both the core network interconnecting different national headquarters with an international headquarter as well as the ad-hoc radio network of the convoy are addressed in a single, seamless concept. In June 2012, field tests with the convoy were carried out in order to evaluate the different technical solutions.','Communications and Information Systems Conference (MCC), 2012 Military',1,'C. Barz; A. Diefenbach; F. Abut; M. Wilmes; P. Sevenich; P. Simon; N. Bret','ieee/service oriented architecture security.csv','ieee','\0'),(569,'Ontology-Based Querying of Composite Services','2012','0',' Networked Enterprise Business Process Semantic Annotation Ontology Query Language Composite Service','Abstract Enterprises are evolving towards advanced forms of cooperation and networking. This kind of tight cooperation requires the creation of global Business Processes (i.e., cross-enterprise composite services) composed starting from a set of existing local processes (exposed, in turn, as services) found in different enterprises. To this end, in this chapter we present an ontology-based approach for querying business process repositories for the retrieval of process fragments to be reused in the composition of new business processes. The proposed solution is based on a synergic use of a business process modelling framework (BPAL) to represent the workflow logic of business processes, and business ontologies, aimed at capturing the semantics of a business scenario. Both components are grounded in logic programming and therefore it is possible to apply effective reasoning methods to query the knowledge base stemming from the fusion of the two.','',2,'Fabrizio SmithMichele MissikoffMaurizio Proietti','springer/bpel security.csv','springer','\0'),(570,'Cloud Migration for SMEs in a Service Oriented Approach','2013','4','Cloud computing;SMEs;SOA;cloud migration;migration framework','Cloud computing has gained immense momentum during recent years and has ultimately become a viable solutions not only for larger firms, but also for small and medium-sized enterprises (SMEs). For smaller companies to stay competitive, many have therefore decided in favour of adapting cloud solutions. Given the multitude of issues and challenges that occur during the cloud migration phase, this work proposes a novel framework that helps SMEs to master migration related impediments. Firstly, the work takes into account SME specific requirements and articulates their importance during the cloud provider selection phase. The elicitation results demonstrate that factors such as security, reliability, cost, performance as well as flexibility and service and support have a pivotal role to play and require close attention. Secondly, decisive attributes were defined that qualify business components and services as cloud-fit. Finally, the framework itself was proposed, which focuses on a systematic service-oriented approach and helps companies to analyse their existing business processes in the course of cloud migration. The framework was verified in its practicability using a concrete scenario and a subsequent prototypical cloud implementation.','Computer Software and Applications Conference Workshops (COMPSACW), 2013 IEEE 37th Annual',1,'N. Nussbaumer; X. Liu','ieee/service oriented architecture security.csv','ieee','\0'),(571,'Making XML Signatures Immune to XML Signature Wrapping Attacks','2013','2','Cloud; SOA; SOAP; Web Services; WS-Security; XML Signature; XML Signature Wrapping; XSpRES','The increased usage of XML in distributed systems and platforms increases the demand for robust and effective security mechanisms likewise. Recent research work discovered, however, substantial vulnerabilities in the XML Signature standard as well as in the vast majority of the available implementations. Amongst them, the so-called XML Signature Wrapping (XSW) attack belongs to the most relevant ones. With the many possible instances of the XSW attack class, it is feasible to annul security systems relying on XML Signature and to gain access to protected resources as has been successfully demonstrated lately for various Cloud services. This work introduces a comprehensive approach to robust and effective XML Signatures for SOAP-based Web Services denoted as XSpRES. An architecture is presented, which integrates the required enhancements to ensure a fail-safe and sound signature generation and verification. Following this architecture, a hardened XML Signature library has been implemented. The obtained evaluation results show that the developed concept and library provide the targeted robustness against all kinds of known XSW attacks. Moreover, the empirical results underline that these security merits are obtained at low efficiency and performance costs as well as remain compliant with the underlying standards. © Springer International Publishing Switzerland 2013.','',1,'Mainka C., Jensen M., Lo Iacono L., Schwenk J.','scopus/soa security.csv','scopus','\0'),(572,'The intelligent RFID information security integrated antenna arrays system based on SOA','2012','2','Heterogeneous; Information security; RFID; RSA; SOA; WMN','Radio frequency identification (RFID) technology system is quickly evolved many applications to manage personnel can be more efficient for automation systems. We combine the RSA encryption and decryption algorithms to raise the safety and the information security systems. The RFID environment has been communicated to exchange data for heterogeneous wireless networks. In this paper, it is implemented the RFID-based campus system solutions to security and privacy of RFID system for wireless mesh network applications. We propose to enhance the security algorithm combined RFID devices for the antenna arrays system. This paper is also presented the integrated framework for the application and integration systems based on service oriented architecture, and given a specific application of the framework combined with campus system. © Springer Science+Business Media, LLC. 2011.','',1,'Jong G.-J., Peng P.-L., Horng G.-J.','scopus/service oriented architecture security.csv','scopus','\0'),(573,'Supporting Non-functional Requirements in Services Software Development Process: An MDD Approach','2014','0',' MDD Service Oriented Applications Non-functional Properties','Abstract This paper presents the π SOD-M method, an extension to the Service-Oriented Development Method (SOD-M) to support the development of services software by considering their functional and non-functional requirements. Specifically, π SOD-M proposes: (i) meta-models for representing non-functional requirements at different abstraction levels; (ii) model-to-model transformation rules, useful to semi-automatically refine Platform Independent Models into Platform Specific Models; and (iii) rules to transform Platform Specific Models into concrete implementations. In order to illustrate our proposal, the paper also describes how to apply the methodology to develop a proof of concept.','',2,'Valeria de CastroMartin A. MusicanteUmberto Souza da CostaPlácido A. de Souza NetoGenoveva Vargas-Solar','springer/bpel security.csv','springer',''),(574,'Customizing Protocol Specifications for Detecting Resource Exhaustion and Guessing Attacks','2012','0','','Abstract Model checkers for security protocols often focus on basic properties, such as confidentiality or authentication, using a standard model of the Dolev-Yao intruder. In this paper, we explore how to model other attacks, notably guessing of secrets and denial of service by resource exhaustion, using the AVANTSSAR platform with its modelling language ASLan. We do this by adding custom intruder deduction rules and augmenting protocol transitions with constructs that keep track of these attacks. We compare several modelling variants and find that writing deductions in ASLan as Horn clauses rather than transitions using rewriting rules is crucial for verification performance. Providing automated tool support for these attacks is important since they are often neglected by protocol designers and open up other attack possibilities.','',1,'Bogdan GrozaMarius Minea','springer/service oriented architecture security.csv','springer','\0'),(575,'Cyber Physical System: Architecture, applications and research challenges','2013','2','CPS Applications;Cyber Physical Systems (CPS);Research Challenges in CPS;Service Oriented Architecture (SOA)','Cyber world and physical world were considered as two different entities in the past decade. However, researchers have found that these two entities are closely correlated with each other after integration of sensor/actuators in the cyber systems. Cyber systems became responsive to the physical world by enabling real time control emanating from conventional embedded systems, thus emerging a new research paradigm named Cyber Physical System (CPS). In this article, we investigate major challenges in the integration of cyber world with physical world and its applications. In addition, we propose an architecture which contains several modules supporting the CPS. We found that every module in our proposed architecture has its own significance and can be applied to various applications.','Wireless Days (WD), 2013 IFIP',1,'S. H. Ahmed; G. Kim; D. Kim','ieee/service oriented architecture security.csv','ieee','\0'),(576,'Security services efficiency in disadvantaged networks','2015','','Federated mission network; PR4G; Security; Web authentication','Modern coalition operations require efficient cooperation between partners of allied forces. They usually rely on their national systems equipped with software solutions supporting interoperability. Federation of systems built for the purpose of such operations assumes however independence of particular individual ones. In order to support efficient exchange of information between allies there are necessary federated software solutions promoting secure cross-domain information exchange. Lately the concept of Federated Mission Networking following Service Oriented Architecture (SOA) is being developed by NATO. In terms of secure information exchange for SOA-based services it proposes to use Web Authentication standard based on WS-Federation. In the article the authors present the results of tests of this standard efficiency in disadvantaged network environment built with PR4G radios. The architecture of the solution is presented with necessary information exchange relations and their invocation times. © 2015 IEEE.','',1,'Sliwa J., Jasiul B., Podlasek T., Matyszkiel R.','scopus/service oriented architecture security.csv','scopus',''),(577,'Building integrated business environments: analysing open-source ESB','2015','2','e-business; enterprise application integration; ESB; service-oriented architecture; services engineering','Integration and interoperability are two concepts that have gained significant prominence in the business field, providing tools which enable enterprise application integration (EAI). In this sense, enterprise service bus (ESB) has played a crucial role as the underpinning technology for creating integrated environments in which companies may connect all their legacy-applications. However, the potential of these technologies remains unknown and some important features are not used to develop suitable business environments. The aim of this paper is to describe and detail the elements for building the next generation of integrated business environments (IBE) and to analyse the features of ESBs as the core of this infrastructure. For this purpose, we evaluate how well-known open-source ESB products fulfil these needs. Moreover, we introduce a scenario in which the collaborative system ‘Alfresco’ is integrated in the business infrastructure. Finally, we provide a comparison of the different open-source ESBs available for IBE requirements. According to this study, Fuse ESB provides the best results, considering features such as support for a wide variety of standards and specifications, documentation and implementation, security, advanced business trends, ease of integration and performance. © 2013, © 2013 Taylor & Francis.','',1,'Martínez-Carreras M.A., García Jimenez F.J., Gómez Skarmeta A.F.','scopus/service oriented architecture security.csv','scopus',''),(578,'Compositional Development of BPMN','2013','0','','Abstract Business Process Modelling Notation (BPMN) intends to bridge the gap between business process design and implementation. Previously we provided a process semantics to a subset of BPMN in the language of Communicating Sequential Processes (CSP). This semantics allows developers to formally analyse and compare BPMN diagrams using CSP’s traces and failures refinements. In this paper we introduce a comprehensive set of operations for constructing BPMN diagrams, provide them a CSP semantics, and characterise the conditions under which the operations are monotonic with respect to CSP refinements, thereby allowing compositional development of business processes.','',2,'Peter Y. H. Wong','springer/bpel security.csv','springer','\0'),(579,'Modelling and transforming security constraints in privacy-aware business processes','2011','','','Security and privacy are essential for business processes (BPs). In particular, BPs dealing with personally-identifiable information require mechanisms to give data owners control over their data. Currently, business-process-management systems (BPMSs) lack security features important for BPs in SOA. We propose a language sufficiently broad to formulate security constraints. In addition, we considerably ease how data owners can control their security, privacy and trust preferences at process runtime. The BPMS extensions we have implemented transform security-enhanced BPMN schemas into executable secure processes in a versatile manner. © 2011 IEEE.','',2,'Mülle J., Von Stackelberg S., Böhm K.','scopus/bpmn security.csv','scopus','\0'),(580,'DIVANet 2013 - Proceedings of the 3rd ACM International Symposium on Design and Analysis of Intelligent Vehicular Networks and Applications, Co-located with ACM MSWiM 2013','2013','','','The proceedings contain 21 papers. The topics discussed include: improving throughput in highway transportation systems by entry control and virtual queue; dual-mode optimum distance routing scheme for vehicular ad hoc networks; an efficient fault detection and diagnosis protocol for vehicular networks; decision support protocol for intrusion detection in VANETs; security and privacy of electric vehicles in the smart grid context: problem and solution; securing vehicular ad hoc networks with mean field game theory; web services for VANET: a service oriented architecture for infotainment system based on mashup using open APIs; semantic based networking of information in vehicular clouds based on dimensionality reduction; investigating mobile crowdsensing application performance; social drive: a crowdsourcing-based vehicular social networking system for green transportation; and evaluation of dynamic communities in large-scale vehicular networks.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus','\0'),(581,'A novel policy-driven reversible anonymisation scheme for XML-based services','2015','3','Big data; Deanonymiser; Privacy; Reversible anonymisation; XACML; XML-encryption','This paper proposes a reversible anonymisation scheme for XML messages that supports fine-grained enforcement of XACML-based privacy policies. Reversible anonymisation means that information in XML messages is anonymised, however the information required to reverse the anonymisation is cryptographically protected in the messages. The policy can control access down to octet ranges of individual elements or attributes in XML messages. The reversible anonymisation protocol effectively implements a multi-level privacy and security based approach, so that only authorised stakeholders can disclose confidential information up to the privacy or security level they are authorised for. The approach furthermore supports a shared secret based scheme, where stakeholders need to agree to disclose confidential information. Last, it supports time limited access to private or confidential information. This opens up for improved control of access to private or confidential information in XML messages used by a service oriented architecture. The solution provides horizontally scalable confidentiality protection for certain types of big data applications, like XML databases, secure logging and data retention repositories. © 2014 Elsevier Ltd. All rights reserved.','',1,'Ulltveit-Moe N., Oleshchuk V.','scopus/service oriented architecture security.csv','scopus',''),(582,'On Some Challenges in Business Systems Management and Engineering for the Networked Enterprise of the Future','2012','0','','Abstract Business value networks will become increasingly important in the world’s economy in the future. Their appropriate IT support must efficiently realize business collaborations between globally spread organizations. The ability to adapt to changing market and business requirements together with the ability to reflect the business adaptations on the level of the connected ICT systems constitute key challenges for the support of business network formations. In this paper, the evolution of business trends and business process support during the last decades is briefly addressed. After the introduction of a reference model of business value networks, this paper discusses some pressing research challenges that have to be addressed to realize business value networks and their ICT system support in the future.','',2,'Andreas FriesenWolfgang TheilmannMarkus HellerJens LemckeChristof Momm','springer/bpel security.csv','springer','\0'),(583,'Trusted Service Application Framework on Mobile Network','2012','2','Mobile Network;Service-Oriented;Trusted Framework','With the development of information technology and secure applications in key departments (such as national security department, medical establishment), existing mobile network was not dependable enough for service-oriented applications. Facing to the secure requirements in mobile network, a new trusted service application framework was proposed, which included applications analysis, network services, security protocols, error detection and fault tolerance. Combined with natural attribute of trust, trust evaluation model was built. It enhanced reliability and security of mobile network applications. Our experimental results showed this framework not only had advantages but also had a good reference value.','Ubiquitous Intelligence & Computing and 9th International Conference on Autonomic & Trusted Computing (UIC/ATC), 2012 9th International Conference on',1,'X. Gu; Z. Xu; T. Wang; Y. Fang','ieee/service oriented architecture security.csv','ieee','\0'),(584,'Security Paradigms for Cloud Computing','2012','1','Cloud;Cloud Computing;Security Challenges;Security Paradigm;distributed computing;security','Cloud Computing -- some treat it as a catchphrase, others as the next step in evolution of their organization and the Internet. However, what is for sure is that, it is a way of leveraging less expensive services based environment providing cost-effective solutions to various organizations to cater for their computing needs, without investing in computing infrastructure. However, cloud computing, just like other formats of computing, is not free from issues. One of the major barriers in adoption of cloud is security. Once migrated to cloud, you do not know where your data is physically stored, what laws and regulations govern the same and most important of all, who has access to it. This paper explores security issues related to cloud computing and proposes a paradigm for securing cloud. The paper investigates some of the key research challenges of implementing cloud-aware security solutions which can plausibly secure the ever-changing and dynamic cloud environment, followed by conclusion where we try to entail the whole research and try to formulate a practical security paradigm, which will enable the cloud providers and consumers to ensure that their data and valuable assets are safe from otherwise prying eyes.','Computational Intelligence, Communication Systems and Networks (CICSyN), 2012 Fourth International Conference on',1,'A. Behl; K. Behl','ieee/service oriented architecture security.csv','ieee','\0'),(585,'A Scalable Planetary Science Information Architecture for Big Science Data','2014','0','Big Data;Information Architecture','Research has shown that the amount of data now available often overwhelms key functions of an information system. This situation necessitates the design of information architectures that scale to meet the challenges. The Planetary Data System, a NASA funded project, has developed an information architecture for the planetary science community that addresses this and other big science data issues noted in a National Research Council report regarding architectures for big data management and analysis and end-to-end data lifecycle management across diverse disciplines. The report identified enabling technology trends including distributed systems, service-oriented architectures, ontologies, models and information representation, scalable database systems, federated data security mechanisms, and technologies for moving big data. This paper will present the PDS4 information architecture, its successful implementation in a multi-discipline big-data environment.','e-Science (e-Science), 2014 IEEE 10th International Conference on',1,'D. Crichton; J. S. Hughes; S. Hardman; E. Law; R. Beebe; T. Morgan; E. Grayzeck','ieee/service oriented architecture security.csv','ieee','\0'),(586,'A Pedagogical Cloud for Reusability, Interoperability and Portability of Pedagogical Indicators','2014','0',' Computer Environment of Human Learning (CEHL) Cloud computing Pedagogical indicators Tracks analysis Reusability Interoperability Portability Web services','Abstract This paper presents a pedagogical Cloud for analyzing usage learner tracks and managing indicators on educational scenarios execution. This Cloud offers a framework enabling the exploitation and the modeling of the pedagogical indicators in a collaborative and cooperative way. This approach aims to assist the tutor in the reengineering of his pedagogical scenarios through the indicators calculation.','',1,'Mariem ChaabouniMona Laroussi','springer/webservice security.csv','springer','\0'),(587,'Infrastructure for Intelligent Automation Services in the Smart Grid','2014','7',' Home area network Smart energy profile Intelligent automation services Smart grid','Abstract The electricity grid is undergoing a radical transformation from a production-driven to a demand-driven energy delivery platform known as the smart grid. The integration of a large amount of renewable and distributed energy resources, together with new patterns of electricity production, accentuates the need for research in information and communication technologies to control bi-directional energy flows. The European FP7 project: “Energy Demand Aware Open Services for Smart Grid Intelligent Automation” is contributing to this research by providing an intelligent infrastructure for service deployment for the smart grid. The project defines a system architecture that provides interoperability between wireless sensors in home area networks connected over the Internet to a service provider function deployed in a cloud infrastructure. A key component in this infrastructure is the Home Energy Controlling Hub that, on the one hand, provides a platform for monitoring and aggregation of electricity consumption data from devices and appliances and, on the other hand, is the link between the deployed intelligent automation services and the home. To ensure openness and simplicity, the proposed infrastructure is based on the representational state transfer style architecture. This is adopted by implementing the emerging ZigBee IP and Smart Energy Profile 2.0 standards that to a wide extend conform with the Internet Protocol suite and state-of-the art web services development.','Wireless Personal Communications',1,'Rune Hylsberg JacobsenSøren Aagaard Mikkelsen','springer/service oriented architecture security.csv','springer','\0'),(588,'Security measurement in service-based computing systems','2012','0','divergence;equivalence;information;measurement;relations;security','We propose a method for quantitative security analysis of service-based computing systems based on probabilistic and information theoretical approaches. We focus on the pattern of the user\'s behaviours with the service providers. We build probabilistic models from system observations at various levels of abstraction depending on the confidentiality preserving mechanisms applied by the system. The probabilistic models allow us to quantify a system\'s observable behaviours under any given security preserving mechanisms. We present a number of measurements on the confidentiality loss of the computing system. We show how such measurement can be used to determine the degree of protection provided by the computing solution.','2012 Fifth IEEE International Conference on Service-Oriented Computing and Applications (SOCA)',1,'Chunyan Mu; Wen Zeng','ieee/service oriented architecture security.csv','ieee','\0'),(589,'A Framework for Benchmarking BPMN 2.0 Workflow Management Systems','2015','2',' BPMN 2.0 Workflow management systems Benchmarking','Abstract The diverse landscape of Workflow Management Systems (WfMSs) makes it challenging for users to compare different solutions to identify the ones most suitable to their requirements. Thus a comparison framework that would define common grounds in many different aspects, such as price, reliability, security, robustness and performance is necessary. In this paper we focus on the performance aspect, and we present a framework for automatic and reliable calculation of performance metrics for BPMN 2.0 WfMSs. We validate the framework by applying it on two open-source WfMSs. The goal is to contribute to the improvement of existing WfMSs by pinpointing performance bottlenecks, and to empower end users to make informed decisions when selecting a WfMS.','',2,'Vincenzo FermeAna IvanchikjCesare Pautasso','springer/bpel security.csv','springer','\0'),(590,'An event processing approach for threats monitoring of service compositions','2013','','complex event processing; monitoring; network security; security; security patterns; service composition; SOA; threats','The Future Internet will be populated by not just data and devices, but also services. Approaches in Service-Oriented Architectures are allowing new ways for users and developers to manage, control and benefit from the services that are being made available. However, this also introduces new threats for service ecosystems and with wider deployment comes a greater need to identify and tackle threats before they become attacks. In this paper we introduce a new Threat Monitoring approach based on filtering and pattern-detection of a variety of event types. The approach enables threat monitoring across multiple composite services with a capability to integrate dynamic changes from various subsystems and offers high flexibility through the use of CEP (Complex Event Processing). Appropriate events are identified in the context of Service-Oriented Architectures and the Threat Monitoring Module described and implemented as part of the Aniketos platform. This module is able to pull threat descriptions from a repository and apply appropriate detection techniques at run-time in order to identify potential problems. The approach is novel in both its flexibility and applicability. Threats can be chosen by service developers from a community-managed repository and the process extends to both the identification and prediction of threats. The solution is evaluated through a future telecommunication services case study. © 2013 IEEE.','',1,'Ayed D., Asim M., Llewellyn-Jones D.','scopus/service oriented architecture security.csv','scopus','\0'),(591,'Systems and Virtualization Management : Standards and the Cloud (A report on SVM 2012)','2013','1',' Cloud CIM Web services and SOA Network Server Desktop management','Abstract Hosted by the Distributed Management Task Force (DMTF) and collocated with the International Conference on Network and Service Management, SVM 2012 was the sixth International DMTF Academic Alliance Workshop on Systems and Virtualization Management. SVM 2012 was held in Las Vegas, Nevada on October 26, 2012. Featuring presentations surrounding cloud, OVF, open standards, and CIM, SVM 2012 also included a poster session, lightning talks, and a keynote speech given by the DMTF President, Jeff Hilland. This report provides a summary of the highlights that took place at the workshop.','Journal of Network and Systems Management',1,'Mark Carlson','springer/soa security.csv','springer','\0'),(592,'Industrial Cloud – Status und Ausblick','2015','0','Schlüsselwörter Industrial Cloud Cloud Computing Produktionsautomatisierung Automatisierungssystem Automatisierungsdienst Industrial cloud Cloud computing Production automation Automation system Automation service','Zusammenfassung Im Kontext Industrie 4.0 wird Cloud Computing für die Produktion von morgen eine wesentliche Rolle spielen. Der Beitrag gibt deshalb einen Überblick über den aktuellen Stand beim Einsatz und der Entwicklung des Cloud Computing für die Produktionsautomatisierung (Industrial Cloud). Ein besonderer Schwerpunkt des Beitrags sind dabei Anwendungen und Projekte, die sich mit der Verlagerung von Automatisierungsfunktionen aus der Prozessleit- und Steuerungsebene als Cloud-Dienste in eine Industrial Cloud beschäftigen.','HMD Praxis der Wirtschaftsinformatik',1,'Reinhard LangmannMichael Stiller','springer/soa security.csv','springer',''),(593,'Detection of SOA Patterns','2013','1',' Service Oriented Architecture Patterns Specification and Detection Software Quality Quality of Service (QoS) Design','Abstract The rapid increase of communications combined with the deployment of large scale information systems lead to the democratization of Service Oriented Architectures (SOA). However, systems based on these architectures (called SOA systems) evolve rapidly due to the addition of new functionalities, the modification of execution contexts and the integration of legacy systems. This evolution may hinder the maintenance of these systems, and thus increase the cost of their development. To ease the evolution and maintenance of SOA systems, they should satisfy good design quality criteria, possibly expressed using patterns. By patterns , we mean good practices to solve known and common problems when designing software systems. The goal of this study is to detect patterns in SOA systems to assess their design and their Quality of Service (QoS). We propose a three steps approach called SODOP (Service Oriented Detection Of Patterns), which is based on our previous work for the detection of antipatterns. As a first step, we define five SOA patterns extracted from the literature. We specify these patterns using “rule cards”, which are sets of rules that combine various metrics, static or dynamic, using a formal grammar. The second step consists in generating automatically detection algorithms from rule cards. The last step consists in applying concretely these algorithms to detect patterns on SOA systems at runtime. We validate SODOP on two SOA systems: Home-Automation and FraSCAti that contain respectively 13 and 91 services. This validation demonstrates that our proposed approach is precise and efficient.','',1,'Anthony DemangeNaouel MohaGuy Tremblay','springer/service oriented architecture security.csv','springer','\0'),(594,'Foundations and Tools for End-User Architecting','2012','1',' end-user architecture end-user architecting software architecture end-user programming software composition software development tools','Abstract Within an increasing number of domains an important emerging need is the ability for technically naïve users to compose computational elements into novel configurations. Examples include astronomers who create new analysis pipelines to process telescopic data, intelligence analysts who must process diverse sources of unstructured text to discover socio-technical trends, and medical researchers who have to process brain image data in new ways to understand disease pathways. Creating such compositions today typically requires low-level technical expertise, limiting the use of computational methods and increasing the cost of using them. In this paper we describe an approach — which we term end-user architecting — that exploits the similarity between such compositional activities and those of software architects. Drawing on the rich heritage of software architecture languages, methods, and tools, we show how those techniques can be adapted to support end users in composing rich computational systems through domain-specific compositional paradigms and component repositories, without requiring that they have knowledge of the low-level implementation details of the components or the compositional infrastructure. Further, we outline a set of open research challenges that the area of end-user architecting raises.','',2,'David GarlanVishal DwivediIvan RuchkinBradley Schmerl','springer/bpel security.csv','springer','\0'),(595,'A Survey of Requirement Engineering Interactions in Telecommunication Systems','2012','0','3rd Party Componenets;Context Aware Requirements;Distibuted Systems;Goal Oriented;Incremental Requirements;Requirement Engineering;Requirement Tools;Requirements Interaction Management;Security;Service Oriented;Standard;Survey;Telecommunication','Summary form only given. Telecommunication systems are large, distributed, complex, heterogeneous and evolving systems that involve software and hardware components. These traits present a challenge from Requirement Engineering perspective. Telecommunication systems can be abstracted to having infrastructure layer that delivers services and consumer layer where end user devices use these services. As processing power of the telecommunication consumer devices gain more power and demand more bandwidth, it becomes more pervasive, gain importance and the end users will have greater dependencies on it. Telecommunication infrastructure technologies are also evolving on fast pace to deliver to customer needs and level of service expected. A fierce competition exists between new entrants and more established companies to deliver the telecommunication system with the features and constraints at competitive pricing and aggressive scheduling by using new technologies. Within the above facets, there are many stakeholders with conflicting and complex requirements. In many cases, the situation of conflicting requirements is complicated further by the interaction with existing systems. That can create large, complex, and conflicting requirements. This needs more than ad hoc approach to achieve consensus within the constraints of the systems. Requirement Engineering (RE) is the field that addresses these issues and provides paradigms, methodologies, and tools to resolve these issues. All these factors highlight the need for requirement engineering to assist new and evolving telecommunication systems to deliver the desired requirements with shortest period of time, lowest budget and cause the least amount of disruption for current users. There are multiple aspects of requirement engineering in telecommunications like paradigms, methodologies, tools, inter-dependencies and interactions. Since Requirement Engineering is a general field, this paper will focus on telecommunication indu- try current use and interaction with the Requirement Engineering field. This paper surveys the current landscape of telecommunication industry interaction with Requirement Engineering. The aspects of change, complexity, internal and external components present a challenge in requirement engineering to capture and present early stable requirements within known, unknown limitations and accommodation for future needs. Multiple approaches, frameworks, tools and solutions on Requirement Engineering in the telecommunication industry are explored in this paper. The following is an overview of the main topics covered in this paper: (1) Goal Oriented Requirement Engineering. (2) Service Oriented Architecture Requirement Engineering. (3) Context Aware Requirement Engineering. (4) Requirement Interaction Management. (5) Requirement Incremental Change Management. (6) 3rd Party Software and Off the Shelf Components Requirements Management. (7) Security Requirement Engineering. (8) Survey of Requirement Engineering tools in Telecommunications. (9) Currently used Requirement Engineering Standards. (10) Vision for Requirement Engineering Standardization.','Information Technology: New Generations (ITNG), 2012 Ninth International Conference on',1,'A. B. Alnafoosi','ieee/service oriented architecture security.csv','ieee','\0'),(596,'A systematic literature review on challenges in service oriented software engineering','2015','','Challenges; SOSE; SOSE challenges; Systematic literature review','SOSE is gaining recognition by both research communities and industries in recent times, however, its complete adoption is facing numerous challenges that require researchers to identify and overcome. Consequently, this paper embraces a systematic literature review to classify and analyze SOSE Challenges claimed in research communities from January 2009 to October 2014. First, the search string was applied to each selected database and the title, abstract and keywords of the potentially relevant primary studies were examined where 693 primary studies were found relevant. Then, the full texts of the 693 relevant studies were critically reviewed. As a result, 91 primary studies with 122 claimed SOSE challenges were identified and recorded. The results revealed quality of service (QOS) as the major SOSE Challenge, it is responsible for about 45% of the total SOSE challenges claimed for the period under review. Further investigation revealed Security as the main attribute responsible for placing QOS as the major SOSE challenge. It is recommended that research effort is required to improve the security of SOA applications. In addition, other areas that require research effort are Service provision and integration. © 2015 SERSC.','',1,'Ahmed M.M., Letchmunan S.','scopus/soa security.csv','scopus',''),(597,'Service replication taxonomy in distributed environments','2016','0',' Service replication Service-oriented architecture Distributed environments Replication process Quality of service','Abstract Abstract Nowadays, most modern distributed environments, including service-oriented architecture (SOA), cloud computing, and mobile computing, support replication technologies in order to improve operational characteristics of the services provided. Unfortunately, replication requires additional computational resources and a longer design and deployment process to implement service adequately for a specific situation and to enable service providers to maintain high levels of service with a moderate number of replicas. This paper provides a comprehensive review of replication challenges, types, techniques, and algorithms in distributed environments such as SOA, cloud, and mobile. Moreover, the role of replication in enhancing several QoS attributes, including performance, availability, security, scalability, and reliability, is examined. The author believes that the proposed research will help researchers to easily apply and develop the service replication in distributed system.','Service Oriented Computing and Applications',1,'Marwa F. Mohamed','springer/soa security.csv','springer',''),(598,'Runtime Adaptation for Actor Systems','2015','1','','Abstract We study the problem of extending RV techniques in the context of (asynchronous) actor systems, so as to be able to carry out a degree of system adaptation at runtime. We propose extensions to specification logics that provide handles for programming both monitor synchronisations (with individual actors), as well as the administration of the resp. adaptations once the triggering behaviour is observed. Since this added functionality allows the specifier to introduce erroneous adaptation procedures, we also develop static analysis techniques based on substructural type systems to assist the construction of correct adaptation scripts.','',1,'Ian CassarAdrian Francalanza','springer/service oriented architecture security.csv','springer',''),(599,'Atomicity failure and the retrenchment atomicity pattern','2013','1',' Atomic actions Refinement Retrenchment Air traffic control Mondex Compensated transactions Software transactional memory','Abstract The issues surrounding the question of atomicity, both in the past and nowadays, are briefly reviewed, and a picture of an ACID (atomic, consistent, isolated, durable) transaction as a refinement problem is presented. An example of a simple air traffic control system is introduced, and the discrepancies that can arise when read-only operations examine the state at atomic and finegrained levels are handled by retrenchment. Non-ACID timing aspects of the ATC example are also handled by retrenchment, and the treatment is generalised to yield the Retrenchment Atomicity Pattern . The utility of the pattern is confirmed against a number of different case studies. One is the Mondex Electronic Purse, its protocol treated as a conventional atomic transaction. Another is the recovery protocol of Mondex, viewed as a compensated transaction (leading to the view that compensated transactions in general fit the pattern). A final one comprises various unruly phenomena occurring in the implementations of software transactional memory systems, which can frequently display non-ACID behaviour. In all cases the Atomicity Pattern is seen to perform well.','Formal Aspects of Computing',2,'Richard BanachCzesław JeskeAnthony HallSusan Stepney','springer/bpel security.csv','springer','\0'),(600,'Service-Oriented DDoS Detection Mechanism Using Pseudo State in a Flow Router','2013','0','','As distributed denial-of-service (DDoS) attacks have caused serious economic and social problems. In this paper, we propose the Service-oriented DDoS Detection Mechanism using a Pseudo State (SDM-P), which runs on network devices to defend against DDoS attacks without sacrificing performance in terms of data forwarding. In addition, we verified the performance of the SDM-P mechanism by evaluating its performance using a DDoS attack similar to the one that occurred in Korea and the USA on July 7th, 2009.','2013 International Conference on Information Science and Applications (ICISA)',1,'P. Park; S. Yoo; H. Ryu; C. H. Kim; S. i. Choi; J. Ryou; J. Park','ieee/service oriented architecture security.csv','ieee','\0'),(601,'Digital Preservation in Grids and Clouds: A Middleware Approach','2012','1',' Digital preservation Grid Cloud','Abstract Digital preservation is the persistent archiving of digital assets for future access and reuse, irrespective of the underlying platform and software solutions. Existing preservation systems have a strong focus on Grids, but the advent of cloud technologies offers an attractive option. We describe a middleware system that enables a flexible choice between a Grid and a cloud for ad-hoc computations that arise during the execution of a preservation workflow and also for archiving digital objects. The choice between different infrastructures remains open during the lifecycle of the archive, ensuring a smooth switch between different solutions to accommodate the changing requirements of the organization that needs its digital assets preserved. We also offer insights on the costs, running times, and organizational issues of cloud computing, proving that the cloud alternative is particularly attractive for smaller organizations without access to a Grid or with limited IT infrastructure.','Journal of Grid Computing',1,'Peter WittekSándor Darányi','springer/soa security.csv','springer','\0'),(602,'The Safety Transformation in the Future Internet Domain','2012','1','','Abstract Public Safety is nowadays a priority, cornerstone and major concern for governments, majors and policy makers in current (and future) smart cities. Notwithstanding the foregoing, large advances in ICT technologies are foretold to revolutionize our society and enhance our feeling of safety (and hopefully, wellbeing). This chapter presents an introduction to three of the most promising technological pillars considered to be spearheads in this transformation: Internet of things, understood as the data capillarity through billions of sensors, Intelligent Video Analytics and Data Mining Intelligence, the latter two enabling smarter contextual awareness and prediction of potential threats leading to proactive prevention of them. The associated horizontal economic implications of this evolution and its impact into the societal and economic fabric are also tackled. Part of the results and analysis produced in this chapter are the outcome of the work carried out in the FP7 EU project SafeCity, one of the eight Use Cases of the FI Programme.','',1,'Roberto GimenezDiego FuentesEmilio MartinDiego GimenezJudith PertejoSofia TsekeridouRoberto GavazziMario CarabañoSofia Virgos','springer/service oriented architecture security.csv','springer','\0'),(603,'The Feedback Platform for People\'s Livelihood Projects Based on SOA','2012','0','Web Service;construction projects;information feedback platform;rural people\'s livelihood;service-oriented architecture','In order to meet the needs of the rural livelihood construction, the C# is used to realize the information feedback platform of rural people\'s livelihood which is based on B/S architecture. The proposed system is designed as three layers that are the business logic layer (BLL), data processing layer (DAL) and physical layer (Model). The system realizes the basic database operations for browsing, querying and management of feedback data. The system uses the service-oriented architecture (SOA). The proposed system functions are divided into different Web Service which makes the function call converted into service call in the system. It also publishes the service of standard interfaces on the internet which realizes cross-platform on sharing of resources. The feedback platform for rural people\'s livelihood projects provides online message, e-mail, SMS messages and other information feedback methods which can collect the effectiveness evaluation on the prophase, middle and late of rural livelihood construction projects in time.','2012 Fourth International Conference on Multimedia Information Networking and Security',1,'J. Yao; Y. Qiu; P. Zhou; Q. Zhu','ieee/service oriented architecture security.csv','ieee','\0'),(604,'XML digital signature and its role in information system security','2012','0','','XML signature is form of digital signature designed for use in XML transactions. The XML Digital Signature standard defines a schema that is used for storing the result of a digital signature operation applied to (in most cases) XML data. Like non-XML digital signatures, XML signatures add authentication, data integrity, and support for non-repudiation to the data that is object of XML digital signing process. However, unlike non-XML digital signature standards, XML signature has been designed to both account for and take advantage of the Internet and XML. A fundamental feature of XML Signature is the ability to sign only specific portions of the XML content rather than the complete document. This is relevant when a single XML document may have a long history in which the different components are authored at different times by different parties, each signing only those elements relevant to it. This flexibility will also be critical in situations where it is important to ensure the integrity of certain portions of an XML document, while leaving open the possibility for other portions of the document to change. Since data security - in form of data verification and authorization - represents an important part of information system security paradigm this article is addressing the questions and possibilities of XMLDigSig usage in everyday information system security procedures.','MIPRO, 2012 Proceedings of the 35th International Convention',1,'S. Gerić; T. Vidačić','ieee/service oriented architecture security.csv','ieee','\0'),(605,'Concurrency','2014','0','','Abstract Concurrency in computer science is a property of systems in which more than one execution context can be active at the same time.','',2,'Jacopo Mauro','springer/bpel security.csv','springer',''),(606,'A proxy gateway solution to provide QoS in tactical networks and disaster recovery scenarios','2015','','Communications middleware; Disaster recovery; Network proxy; QoS; Tactical networks','Many important public services, such as security and public health, as well as the modern tactical military scenarios, rely on Service-oriented Architectures (SoAs) and commercial off-the-shelf (COTS) components to enable the quick development and deployment of distributed services to respond quickly, reduce costs, and ease system integration. However, SoAs make use of verbose networking technologies and require reliable and relatively high bandwidth communications. Tactical scenarios normally cannot rely on such infrastructure and events like natural disasters can severely damage the network infrastructure in rural and urban environments. Thus, there is a need to develop solutions that provide SoA-based application and services running on heterogeneous and often constrained devices that compose tactical and mobile ad-hoc networks with Quality of Service (QoS) levels that meet their requirements. This paper presents the QoS-enabling features and the gateway operational mode (GM) of ACM NetProxy, the network proxy component of a communications middleware specifically developed to support applications in challenged networks. GM allows nodes in an ad-hoc wireless network to be quickly organized and to shape outbound communications to reduce bandwidth consumption and provide QoS. Experimental results obtained during a test in a field demonstration event show its efficiency. © 2015 ACM.','',1,'Morelli A., Stefanelli C., Tortonesi M., Lenzi R., Suri N.','scopus/service oriented architecture security.csv','scopus','\0'),(607,'Web log analysis: a review of a decade of studies about information acquisition, inspection and interpretation of user interaction','2012','18',' Web log Query log Search log User study','Abstract In the last decade, the importance of analyzing information management systems logs has grown, because log data constitute a relevant aspect in evaluating the quality of such systems. A review of 10 years of research on log analysis is presented in this paper. About 50 papers and posters from five major conferences and about 30 related journal papers have been selected to trace the history of the state-of-the-art in this field. The paper presents an overview of two main themes: Web search engine log analysis and Digital Library System log analysis. The problem of the analysis of different sources of log data and the distribution of data are investigated.','Data Mining and Knowledge Discovery',1,'Maristella AgostiFranco CrivellariGiorgio Maria Di Nunzio','springer/service oriented architecture security.csv','springer',''),(608,'Estimation of Average Latent Waiting and Service Times of Activities from Event Logs','2015','0',' Process mining Performance analysis Latent waiting and service times Convolution of gamma distributions EM algorithm','Abstract Analysis of performance is crucial in the redesign phase of business processes where bottlenecks are identified from the average waiting and service times of activities and resources in business processes. However, such averages of waiting and service times are not readily available in most event logs that only record either the start or the completion times of events in activities. The transition times between events in such logs are the only performance features that are available. This paper proposes a novel method of estimating the average latent waiting and service times from the transition times that employs the optimization of the likelihood of the probabilistic model with expectation and maximization (EM) algorithms. Our experimental results indicated that our method could estimate the average latent waiting and service times with sufficient accuracy to enable practical applications through performance analysis.','',2,'Takahide NogayamaHaruhisa Takahashi','springer/bpmn security.csv','springer',''),(609,'Dynamic Privacy Policy Management in Services-Based Interactions','2014','1','','Abstract Technology advancements have enabled the distribution and sharing of patient personal health data over several data sources. Each data source is potentially managed by a different organization, which expose its data as a Web service. Using such Web services, dynamic composition of atomic data type properties coupled with the context in which the data is accessed may breach sensitive data that may not comply with the users preference at the time of data collection. Thus, providing uniform access policies to such data can lead to privacy problems. Some fairly recent research has focused on providing solutions for dynamic privacy policy management. This paper advances these techniques, and fills some gaps in the existing works. In particular, dynamically incorporating user access context into the privacy policy decision, and its enforcement. We provide a formal model definition of the proposed approach and a preliminary evaluation of the model.','',1,'Nariman AmmarZaki MalikElisa BertinoAbdelmounaam Rezgui','springer/service oriented architecture security.csv','springer','\0'),(610,'MTISS: A novel mobile transportation information service system based on SOA','2013','','','One of the major problems that limits the practical realization of the Intelligent Transportation System is collecting and distributing transportation information rapidly and effectively. Aside from traditional passive means, mobile devices (such as smart phones) could be exploited to collect various types of transportation information from individuals in massive quantities interactively, as well as delivering guidance and navigation signals to the public to achieve purposes like congestion avoidance. This paper proposes a Mobile Transportation Information Service System (MTISS) which integrates client-end applications with SOA-enabled server-end web services. A unified, loosely-coupled and scalable architecture is presented. Then, a prototype on Android platform and Windows Communication Foundation (WCF) is implemented. The key techniques are discussed. Application scenarios and the features of MTISS are addressed. Finally, experiments are conducted to evaluate the overall performance of the MTISS prototype and the results indicate that our system has high usability, scalability and efficiency. © 2013 American Society of Civil Engineers.','',1,'Cui W., Huang Y., Gao Y., Dai X.','scopus/soa security.csv','scopus','\0'),(611,'Aspect Oriented Programming for Modularization of Concerns for Improving Interoperability in Healthcare Application','2013','0',' Aspect Oriented Software Development Aspect Oriented Programming (AOP) modularization code scattering code tangling Service Oriented Architecture (SOA) Healthcare Interoperability','Abstract Service Oriented Architecture (SOA) is an ideal Web Services based solution for achieving efficient healthcare interoperability. However, incorporation of non-functional specifications such as logging, authorization, transaction etc. in web services based interoperable healthcare information system leads to code tangling (significant dependencies between system) and code scattering (code duplication) problems which reduces the revision and reuse of web services. Aspect Oriented Software Development is an emerging developing approach utilizing modularization to support rapid data interchange among various healthcare providers in a heterogeneous distributed environment. The visionary promise of Aspect Oriented Programming (AOP) is to increase overall quality of software design and implementation by decreasing the problems of code scattering and code tangling while maintaining high level of abstraction in enterprise application integration. The introduction of aspects substantially increases modularity and helps in achieving cleaner modularization of concerns. In this research we propose introduction of aspects in healthcare system and show how AOP helps in a cleaner design and substantial code savings in SOA based healthcare interoperability resulting in modularization of crosscutting concerns.','',1,'Usha BatraSaurabh MukherjeeShelly SachdevaPulkit Mehndiratta','springer/service oriented architecture security.csv','springer','\0'),(612,'An experimental investigation on the effects of context on source code identifiers splitting and expansion','2014','1',' Program understanding Identifier splitting and expansion Task context','Abstract Recent and past studies indicate that source code lexicon plays an important role in program comprehension. Developers often compose source code identifiers with abbreviated words and acronyms, and do not always use consistent mechanisms and explicit separators when creating identifiers. Such choices and inconsistencies impede the work of developers that must understand identifiers by decomposing them into their component terms, and mapping them onto dictionary, application or domain words. When software documentation is scarce, outdated or simply not available, developers must therefore use the available contextual information to understand the source code. This paper aims at investigating how developers split and expand source code identifiers, and, specifically, the extent to which different kinds of contextual information could support such a task. In particular, we consider (i) an internal context consisting of the content of functions and source code files in which the identifiers are located, and (ii) an external context involving external documentation. We conducted a family of two experiments with 63 participants, including bachelor, master, Ph.D. students, and post-docs. We randomly sampled a set of 50 identifiers from a corpus of open source C programs and we asked participants to split and expand them with the availability (or not) of internal and external contexts. We report evidence on the usefulness of contextual information for identifier splitting and acronym/abbreviation expansion. We observe that the source code files are more helpful than just looking at function source code, and that the application-level contextual information does not help any further. The availability of external sources of information only helps in some circumstances. Also, in some cases, we observe that participants better expanded acronyms than abbreviations, although in most cases both exhibit the same level of accuracy. Finally, results indicated that the knowledge of English plays a significant effect in identifier splitting/expansion. The obtained results confirm the conjecture that contextual information is useful in program comprehension, including when developers split and expand identifiers to understand them. We hypothesize that the integration of identifier splitting and expansion tools with IDE could help to improve developers’ productivity.','Empirical Software Engineering',1,'Latifa GuerroujMassimiliano Di PentaYann-Gaël GuéhéneucGiuliano Antoniol','springer/soa security.csv','springer','\0'),(613,'Overview of secured web services specifications','2013','1','SOA(Service Oriented Article); SOAP(Simple Object Access Protocol); Web-Service; WS-Federation; WS-Security; WS-Trust; XML','The proliferation of XML based web services in the IT industry not only gives rise to opportunities but challenges too, Namely the challenges of security and a standard way of maintaining it across domains and organisational boundaries, OASIS, W3C and other organisations have done some great work in bringing about this synergy. What this paper looks in are some of the more popular standards in vogue today and clubbed under WS-* specification. This paper will try to give an overview of various frameworks and protocols being used to keep web-services secure. Some of the major protocols looked into are WS-Security SAML, WS-Federation, WS-Trust, XML-Encryption and Signature. This paper will give you a brief introduction to impact of using WS-* on time complexity due to the extra load of encrypting and certificates. Windows communication foundation is one of the best designed toolset for this. © 2013 IEEE.','',1,'Mukherjee S., Beg R., Srivastava A., Khan R.','scopus/soa security.csv','scopus','\0'),(614,'Security Aspects of De-materialized Local Public Administration Processes','2015','0',' BPMN Adaptive business processes Local Public Administration','Abstract De-materialization processes and services of local public administration processes are becoming of paramount importance in the context of Italian and European public administrations. An important aspect of these frameworks is the possibility of providing remote assistance by human operators when needed, in order to ease the access to services for citizens and reduce costs for organizations. In this paper we describe our framework, which is in an advanced state of development and will be tested in several municipalities of the province of Trento (Italy), and focus on the enforcement of security aspects.','',2,'Giancarlo BallaucoPaolo CeravoloErnesto DamianiFulvio FratiFrancesco Zavatarelli','springer/bpmn security.csv','springer','\0'),(615,'Context-Aware Decision Support in Dynamic Environments: Methodology and Case Study','2014','0',' Context-aware decision support ontology in-car information','Abstract Dynamic environments assume on-the-fly decision support based on available information and current situation development. The paper addresses the methodology of context-aware decision support in dynamic environments. Context is modeled as a “problem situation.” It specifies domain knowledge describing the situation and problems to be solved in this situation. The context is produced based on the knowledge extracted from an application ontology, which is formalized as an object-oriented constraint network. The paper proposes a set of technologies that can be used to implement the ideas behind the research. An application of these ideas is illustrated by an example of decision support for tourists travelling by car. In this example, the proposed system generates ad hoc travel plans and assists tourists in planning their attraction attending times depending on the context information about the current situation in the region and its foreseen development.','',1,'Alexander SmirnovTatiana LevashovaAlexey KashevnikNikolay Shilov','springer/service oriented architecture security.csv','springer','\0'),(616,'Event-driven video adaptation: A powerful tool for industrial video supervision','2014','2',' Objects’ tracking Computer vision tools Adaptive scalable video adaptation','Abstract Efficient video content adaptation requires techniques for content analysis and understanding as well as the development of appropriate mechanisms for content scaling in terms of the network properties, terminal devices characteristics and users’ preferences. This is particularly evident in industrial surveillance applications, due to the huge amount of data needed to be stored, delivered and handled. In this paper, we address both issues by incorporating (a) computer vision tools that allows efficient tracking of salient visual objects for long time regardless of the dynamics of the visual environment –via a self initialized tracking algorithm—and (b) an adaptive optimal rate distortion scheme able to allocate different priorities for each detected video object with respect to users’ needs, network platforms capabilities and terminal characteristics. The self initialized tracker firstly appropriately describes visual content, secondly incorporates adaptive mechanisms for automatically update the tracker to adjust to the current conditions and thirdly includes an efficient decision mechanism that estimates the time instances in which adaptation should be activated. For the rate distortion algorithm, an optimal adaptive framework is adopted which is capable of allocating the desired quality to objects of users’ interest without violating the target bit rate of the sequence. The Wavelet Packet Transform (WPT) is adopted towards this purpose. The advantage of the WPT is that it localizes the frequency components of each video object and therefore it offers additionally content adaptability according to video object texture coding. The WPT tree is transmitted only at the first frame of each shot and thus dew bits are required for its encoding. Experimental results and comparisons with other approaches are presented to illustrate the good performance of the proposed architecture. The results cover real-world and complex industrial environments.','Multimedia Tools and Applications',1,'Anastasios Doulamis','springer/service oriented architecture security.csv','springer','\0'),(617,'An automatic clinical document importance estimator for an existing electronic patient record — Architecture and implementation','2013','0','','The goal of the OPTIM project is to optimize the graphical user interface of an electronic health record (EHR) by predicting clinical documents\' relevance and provide a ranked list of relevant documents for the given user at a certain time. This paper describes the architecture of the relevance assignment and ranking prototype and some implementation issues. The prototype\'s design is based on two components: OPTIM Core, with logical representation, estimation server\'s integration and the webservice layer, and the OPTIM WebUI, with the user interface for presenting the results. The prototype was tested in integration with an EHR using a simulated environment. The results were encouraging but yet they revealed a certain lack of security (confidentiality). It has now the capacity of rating 10 documents per second. Nonetheless, the integration of features such as rating clinical relevance based on mathematical models can be included in existing EHR potentially improving their usability.','Proceedings of the 26th IEEE International Symposium on Computer-Based Medical Systems',1,'B. Santos; P. Rodrigues; R. Cruz-Correia','ieee/webservice security.csv','ieee','\0'),(618,'FTG+PM: An Integrated Framework for Investigating Model Transformation Chains','2013','3','','Abstract In this paper, we describe our ongoing work on model transformation chains . Model transformation chains refer to the sequences of model transformations in Model Driven Engineering (MDE). The transformations represent and formalise typical model/software engineering activities, and their chaining is the natural composition of such activities. Model transformation chains found in industrial practice vary widely, depending on the specific domain they are used in. By explicitly modelling development activities, these activities can be analysed and the MDE process may be improved. As a step towards such analyses, we propose an integrated framework to describe all the artifacts involved in model transformation chains, as well as the means to execute “enact” those chains. We describe the Formalism Transformation Graph + Process Model (FTG+PM) which is at the heart of our framework in detail.','',2,'Levi LúcioSadaf MustafizJoachim DenilHans VangheluweMaris Jukss','springer/bpel security.csv','springer','\0'),(619,'Business Process Adaptability Metrics for QoS-Based Service Compositions','2015','0','','Abstract Modern service-oriented software applications, like those envisioned in cloud computing scenarios, operate in highly dynamic and often unpredictable environments that can degrade their quality of service. Therefore, it is increasingly important to efficiently and effectively manage the adaptation of such service compositions while guaranteeing quality attributes, such as availability, performance or cost. Within this context, software metrics to quantify the adaptability of a business process in orchestrating distributed services are highly demanded in conjunction with techniques for evaluating other system quality attributes. This paper proposes a set of software metrics to quantify the adaptability of a service-oriented application when services are composed dynamically trough a business process. The paper also proposes an approach for analyzing tradeoffs between the application adaptability and a quality of service such as availability. The feasibility of the approach is illustrated through a case study carried out with a tool we have developed.','',2,'Raffaela MirandolaDiego Perez-PalacinPatrizia ScandurraMichele BrignoliAndrea Zonca','springer/bpel security.csv','springer',''),(620,'Data Interface All-iN-A-Place (DIANA) for Big Data','2014','0','big data;database systems;file systems;service-oriented architecture;variety;velocity;volume','Variety in Big Data means we have a wide range of data types and sources: e.g. File systems and database systems co-exist for decades as two popular data-accessing interfaces. This work is to unify these two interfaces by presenting a Data Interface All-iN-A-place (DIANA). The first challenge lies in distinguishing structured and un-structured data and diverting them to different underlying platforms. It is demonstrated that a speedup of 5000 in indexing has been achieved at the expense of a slowdown of 100 in extracting attributes. A DIANA-based cloud storage system is constructed for versatile, long distance and large volume big data accessing operations to address \"Volume\" and \"Velocity\" in Big Data. It encapsulates a dynamic multi-stream/multi-path engine at the socket level, which conforms to Portable Operating System Interface (POSIX).','2014 IEEE 13th International Conference on Trust, Security and Privacy in Computing and Communications',1,'F. Z. Wang; T. Dimitrakos; N. Helian; S. Wu; Y. Deng; L. Li; R. Yates','ieee/service oriented architecture security.csv','ieee','\0'),(621,'A Metamodel for the Web Services Standards','2013','1',' Web services WS-* standards WS-Policy Metamodeling','Abstract Web services provide distributed communication in a platform independent way. The WS-* standards define how middleware aspects (security, reliability, transactions, etc.) can be realized through web services. Although the WS-Policy standard family can be used to configure the various WS-* protocols, they are very hard to construct and to maintain manually. In addition, most SOA products and Grid systems implementing these standards provide their own methods for configuring these protocols, making it very difficult to match the various configuration options of different products. This fact inspired us to propose a platform independent metamodel for describing distributed systems of web services including the most important WS-* standards. The present article defines the full metamodel, it specifies the corresponding programming language formally, and it shows the productivity of the framework built around the metamodel through real-life examples. The framework is capable of generating product specific configuration files and source codes, resulting in directly interoperable applications even between different SOA products. The framework could also promote interoperability with Grid systems built on WS-* protocols.','Journal of Grid Computing',1,'Balazs SimonBalazs GoldschmidtKaroly Kondorosi','springer/soa security.csv','springer','\0'),(622,'A Cloud-Based SOA for Enhancing Information Exchange and Decision Support in ITT Operations','2014','0',' port operations inter-terminal transportation RFID WSN wireless sensor networks cloud computing information exchange real- time data decision support','Abstract With the emergence of global markets, the efficiency of port operations has become a decisive factor for the economy and quality of global supply chains. After decades of streamlining terminal operations, ports still experience process and coordination problems due to a lack of information exchange and decision support. To improve the overall efficiency and quality of port operations, innovative information systems for gathering and processing operational data based on identification, sensing and mobile technologies are required to enhance the visibility of operations in information systems. A port-centric information system also requires the integration of external systems, such as traffic control systems, to further consider external factors. In this paper, we present a cloud-based system architecture for the real-time collection, management, and utilization of operational data with a particular focus on inter-terminal transportation. The proposed system architecture is based on widely adopted standards and utilizes the cost-effectiveness and scalability of a cloud computing infrastructure for processing large amounts of operational data. The information system lowers the bounded rationality of actors providing information and decision support as a service to the port community and other stakeholders. As such, this paper is intended to provide a conceptual view on a system for enhancing the management of real-time data to better manage traffic flows and transport modes, enhance the coordination between intra-terminal and inter-terminal/landside operations, and reduce empty handling processes.','',2,'Leonard HeiligStefan Voß','springer/bpel security.csv','springer',''),(623,'QoE loss score value for service migration in context aware environment','2014','0','','The increasing amount of smart devices and handheld devices have widened the amount of information presence all over. The application running on one device can be distributed to a surrounding device for better functionality. A capability that might be enjoyable or frustrating for end user. This paper has identified the factors that contribute to the loss of user experience for seamless application migration in a context aware environment. These are the context information updates, transfer time and resumption time. To quantify the loss of user experience, a Quality of experience (QoE) Loss score value (representing the time that is lost in user experience during migrating process)is introduced. A high QoE loss score value indicates a higher loss of user experience and a lower QoE loss score value indicate a lower loss of user experience. A test-bed setup was implemented and different policies of migration processes in a context aware environment were evaluated.','2014 23rd International Conference on Computer Communication and Networks (ICCCN)',1,'A. Saeed; J. M. Pedersen; R. L. Olsen','ieee/service oriented architecture security.csv','ieee','\0'),(624,'Customized production based on distributed 3D printing services in cloud manufacturing','2016','0',' Cloud manufacturing Customized production 3D printing service Scheduling','Abstract 3D printing features highly digitized interfaces and automated processes for rapid prototyping and product customization. When distributed 3D printing resources are shared, gathered, and applied in a cloud platform, this will be a promising globalized and time-effective environment for customized production. However, how to intelligently and effectively manage and schedule distributed 3D printing services, such as dynamic evaluation, service intelligent matching, planning, and scheduling, in a cloud platform requires further in-depth study. In order to address this issue, this paper proposes a framework for a 3D printing service platform for cloud manufacturing (CMfg). In addition, 3D printing service online integration and 3D model library construction are analyzed. Moreover, some technologies of distributed 3D printing service management are discussed. Finally, some of the application tools and preliminary practices implemented by our team are introduced.','The International Journal of Advanced Manufacturing Technology',1,'Jingeng MaiLin ZhangFei TaoLei Ren','springer/soa security.csv','springer',''),(625,'A parameterized RBAC access control model for WS-BPEL orchestrated composite web services','2011','0','Parameterized RBAC;WS-BPEL;access control;composite web services;web services security','In complex environments multiple web services are needed to interoperate together. Web Services Business Process Execution Language (WS-BPEL) has become the de facto standard for orchestrating composite web services. Unfortunately, WS-BPEL bypasses some business mandatory security requirements such as authentication and authorization. However, there have been some initiatives to address the authorization-bypass security vulnerability in WS-BPEL through integration with access control models such as RBAC. However, the RBAC models used lack expressiveness in role definitions and in roles to permissions mappings. More so, the architectures proposed use sequential authorization that is inefficient for long running business processes. In this paper, we extend the parameterized RBAC model and integrate it with WS-BPEL. The new extended parameterized RBAC model for WS-BPEL provides restriction of access up to the level of the variables of the business process. We also provide a new algorithm for authorization enforcement that addresses limitations of exiting WS-BPEL authorization architectures.','Internet Technology and Secured Transactions (ICITST), 2011 International Conference for',2,'N. Nassr; E. Steegmans','ieee/bpel security.csv','ieee','\0'),(626,'Secure and Privacy-Preserving Execution Model for Data Services','2013','1',' Data Services Privacy Preservation RDF Views','Abstract Data services have almost become a standard way for data publishing and sharing on top of the Web. In this paper, we present a secure and privacy-preserving execution model for data services. Our model controls the information returned during service execution based on the identity of the data consumer and the purpose of the invocation. We implemented and evaluated the proposed model in the healthcare application domain. The obtained results are promising.','',1,'Mahmoud BarhamgiDjamal BenslimaneSaid OulmakhzouneNora Cuppens-BoulahiaFrederic CuppensMichael MrissaHajer Taktak','springer/service oriented architecture security.csv','springer','\0'),(627,'From Consumer Requirements to Policies in Secure Services','2014','0',' security requirements transformation service composition BPMN consumer policy','Abstract Automatic translation of elicited consumer security requirements at high level (problem space) into application or service level security requirements (solution space) has been traditionally the Achilles’ heel of security requirements engineering. Such automated translation would result in significant failure and cost reduction in application development and maintenance, particularly in those complex applications based on compositions and choreographies of services. In this paper we present a framework which makes a step forward to solve this dilemma. The framework supports the engineering of composite service security and trust requirements directly derived from the organisational needs expressed for such service. The followed approach starts with the modelling of organisation actors’ objectives and commitments among these actors, and follows with the transformation of such commitments into security elements in the service business process specification and into a consumer security policy which the service will need to be compliant with.','',2,'Erkuden RiosFrancesco MalmignatiEider IturbeMichela D’ErricoMattia Salnitri','springer/bpmn security.csv','springer','\0'),(628,'A Survey on Near Field Communication (NFC) Technology','2013','33',' Near field communication NFC Survey Communication essentials Ecosystem Business Security Applications Application development Secure element','Abstract Near Field Communication (NFC) as a promising short range wireless communication technology facilitates mobile phone usage of billions of people throughout the world that offers diverse services ranging from payment and loyalty applications to access keys for offices and houses. Eventually NFC technology integrates all such services into one single mobile phone. NFC technology has emerged lately, and consequently not much academic source is available yet. On the contrary, due to its promising business case options, there will be an increasing amount of work to be studied in the very close future. This paper presents the concept of NFC technology in a holistic approach with different perspectives, including communication essentials with standards, ecosystem and business issues, applications, and security issues. Open research areas and further recommended studies in terms of academic and business point of view are also explored and discussed at the end of each major subject’s subsection. This comprehensive survey will be a valuable guide for researchers and academicians as well as for business world interested in NFC technology.','Wireless Personal Communications',1,'Vedat CoskunBusra OzdenizciKerem Ok','springer/service oriented architecture security.csv','springer',''),(629,'Where Did I Go Wrong?','2014','1','','Abstract Business process modeling is still a challenging task — especially since more and more aspects are added to the models, such as data lifecycles, security constraints, or compliance rules. At the same time, formal methods allow for a detection of errors in the early modeling phase. Detected errors are usually explained with a path from the initial to the error state. These paths can grow unmanageably and make the understanding and fixing of errors very time consuming. This paper addresses this issue and proposes a novel explanation of errors: Instead of listing the actions on the path to the error, only the decisions that lead to it are reported and highlighted in the original model. Furthermore, we exploit concurrency to create a compact artifact to explain errors.','',2,'Niels LohmannDirk Fahland','springer/bpel security.csv','springer',''),(630,'Managing Federations and Cooperative Management','2014','0','','','Journal of Network and Systems Management',1,'Brendan JenningsKevin FeeneyJoel J. Fleck II','springer/service oriented architecture security.csv','springer','\0'),(631,'A Light-Weight Framework for Bridge-Building from Desktop to Cloud','2014','0','','Abstract A significant trend in science research for at least the past decade has been the increasing uptake of computational techniques (modelling) for insilico experimentation, which is trickling down from the grand challenges that require capability computing to smaller-scale problems suited to capacity computing. Such virtual experiments also establish an opportunity for collaboration at a distance. At the same time, the development of web service and cloud technology, is providing a potential platform to support these activities. The problem on which we focus is the technical hurdles for users without detailed knowledge of such mechanisms – in a word, ‘accessibility’ – specifically: (i) the heavy weight and diversity of infrastructures that inhibits shareability and collaboration between services, (ii) the relatively complicated processes associated with deployment and management of web services for non-disciplinary specialists, and (iii) the relative technical difficulty in packaging the legacy software that encapsulates key discipline knowledge for web-service environments. In this paper, we describe a light-weight framework based on cloud and REST to address the above issues. The framework provides a model that allows users to deploy REST services from the desktop on to computing infrastructure without modification or recompilation, utilizing legacy applications developed for the command-line. A behind-the-scenes facility provides asynchronous distributed staging of data (built directly on HTTP and REST). We describe the framework, comprising the service factory, data staging services and the desktop file manager overlay for service deployment, and present experimental results regarding: (i) the improvement in turnaround time from the data staging service, and (ii) the evaluation of usefulness and usability of the framework through case studies in image processing and in multi-disciplinary optimization.','',1,'Kewei DuanJulian PadgetH. Alicia Kim','springer/service oriented architecture security.csv','springer','\0'),(632,'Security certification for service-based business ecosystems','2013','2','security certification; service description language; SOA; trust','Modern applications can be easily developed and operated by discovering and consuming cloud services that provide the desired functionality. We observe the emergence of \'Service ecosystems\', i.e. combinations of services which are offered by different providers and which interoperate seamlessly behind the curtains to build applications generating added value compared with single components. However, security and trustworthiness concerns constitute an obstacle for uptake, as trust relations that were in place in traditional component acquisition and operation phases cannot be established in the same forms due to the high number of service providers available and shorter time-to-market requirements. This paper presents our view about how security certification could address these issues, going beyond existing schemes, which mostly address static systems and environments. We show how the combination of recent innovations can lead to the introduction of new security certification schemes that adapt to service-based ecosystems. Such schemes are based on explicit representation of service security features, their machine readability, and an advanced processing and composition support. We present a security-aware service marketplace, allowing consumers to build secure business applications through advanced search and discovery capabilities that consider functional requirements together with certified security features. © The British Computer Society 2013. All rights reserved.','',1,'Lotz V., Di Cerbo F., Bezzi M., Kaluvuri S.P., Sabetta A., Trabelsi S.','scopus/soa security.csv','scopus','\0'),(633,'Study and Design of Enterprise Public Security Platform Based on PKI','2014','0','LDAP;WPKI;application security;authority management;user management','In order to solve the application security problems in the business operation system in a intensive, uniform and regular manner, a public fundamental platform model based on PKI technology is proposed, and some advanced design concepts like SCA, BPEL, etc. Are introduced for enhancing the reconstructing and reusing of the system. According to the characteristics of PKI system structure, it is expanded as the foundation and realizes the support for WPKI technology. The technical realization of unified user management, unified authority management and unified application security management, as well as the approaches of integrating the peripheral business system are given by analyzing the requirements of general security management of the informatization system. Furthermore, we also proposed methods to further maintain the security and stability of platform operation with technologies like queues, connection pool, etc. Those methods provide a much more uniform solution to the application security problems. The feasibility and effectiveness of the platform in improving the application security problems have been discussed by the illustrations and analysis of the core transaction processing flows of this platform.','Distributed Computing and Applications to Business, Engineering and Science (DCABES), 2014 13th International Symposium on',2,'Y. Xiao; Y. Zhao','ieee/bpel security.csv','ieee','\0'),(634,'Agent Participation in Context-Aware Workflows','2013','0',' software agent software architecture context-awareness workflow management ambient intelligence ambient-assisted living','Abstract Smart environments assist users in the activities taking place in their influence areas. These activities are occasionally part of workflows and have multiple physical or computational participants playing different roles. The system has to monitor the development of the activities, and to take the necessary actions for them and the workflow to reach a certain end. These tasks largely depend on obtaining data from sensors, inferring the proper information from those data, and using actuators consequently. The context-aware paradigm pursues helping to develop these applications. In certain situations, computational participants need to take complex decisions. Agents are a convenient way to describe entities with sophisticated and flexible behaviors that adapt to complex and evolving environments and collaborate to reach certain goals. Most works in this area make use of agents for infrastructure-related or domain-specific tasks, whereas this research proposes patterns to integrate agents on top of an existing context-aware architecture in order to exploit its capabilities to improve functionality. A case study on guiding a user along a path illustrates this approach.','',2,'José M. Fernández-de-AlbaRubén Fuentes-FernándezJuán Pavón','springer/bpel security.csv','springer','\0'),(635,'The performance of future designers on the specification of supervisory HCI: case study of a simulated work situation','2012','1',' Human–computer interface (HCI) Specification Supervisory Design error Simulation Ergonomic design project','Abstract This article concerns the performance of future designers on the specification of supervisory human–computer interfaces (HCI). This paper reports the results of a case study of a simulated work situation. Sixty-three groups of 3–5 students (Master’s program in Electrical Engineering and Industrial Informatics) were involved. In this article, we first describe the study context and explain how we ran it. Next, we describe the industrial process to be supervised, composed of five interconnected stations. We then present our informal analysis of the global study. After our informal analysis, the article focuses on a second level of analysis, based on the 63 HCI specification reports produced by the groups. Each report is analyzed according to eight groups of criteria. The results of this second-level analysis are presented and discussed.','Cognition, Technology & Work',1,'Christophe KolskiPierre LosleverMouldi Sagar','springer/service oriented architecture security.csv','springer','\0'),(636,'A view-based monitoring for usage control in web services','2016','0',' Privacy aware SLA Usage control Monitoring Usage flow view Query containment Compliance','Abstract Quality of service (QoS) can be a critical element for achieving the business goals of a service provider, and accepting a service by the customer. The criticality is more pronounced when the service provider handles the non-functional QoS attribute of privacy, i.e., privacy related to the customer’s personal data. In this regard, the customer needs some guarantee(s) from the service provider about confidentiality management, leading to overall quality characterization of the provided service. A service level agreement (SLA) is primarily intended to specify (in terms of clauses) the level of such non-functional QoS delivered to the customer. The aim is to provide customers with tools that show the fulfillment of QoS guarantees, through SLA monitoring process. In this paper, we address the problem of usage control of private data in service based applications ensuring end-to-end QoS capabilities. We propose a query containment based approach to support the monitoring of privacy-aware SLA compliance, that spells out a customer’s privacy rights, and shows how the customer’s private information must be handled by a Web service provider. We introduce the private data usage flow model upon which the monitoring is performed to observe the data usage flow, and capture the privacy vulnerabilities that may lead to non-compliance. The model is built on top of (i) properties and time-related privacy requirements to be monitored, and (ii) a set of identified privacy violations. As proof of concept, a privacy aware SLA monitoring system, which is an easy-to-use, and efficient tool for observing the dynamic private data usage flow is developed. Experiment results indicate the relevance and applicability of the proposed approach.','Distributed and Parallel Databases',2,'Hassina MezianeSalima BenbernouMohand-Said HacidZaki MalikMike Papazoglou','springer/bpel security.csv','springer',''),(637,'Current and Future Challenges of Geospatial Semantic Web','2015','0','','Abstract Geospatial Semantic Web has the potential to improve the intelligence, flexibility, and usability of geospatial applications. In this chapter, we reviewed several applications of geospatial semantic web that we developed recently, which include a natural language interface for geospatial data query, a volunteered geospatial information system, a geospatial interface for transit network, and a spatial decision support system. The protocols, workflows, and algorithms used in the prototypes are covered in previous chapters, so this chapter focuses on the software libraries and the programming aspects of the implementations. The applications demonstrate the effectiveness of Geospatial Semantic Web in integrating data with heterogeneous semantics. Ontology constructs such as classes and properties can be used to map the definitions of the existing data sets to the domain and application ontologies in order to bridge the semantic gap between data sets.','',2,'Chuanrong ZhangTian ZhaoWeidong Li','springer/bpel security.csv','springer',''),(638,'An End-User Oriented Approach for Business Process Personalization from Multiple Sources','2013','1',' business processes personalization lightweight service composition end-user development','Abstract Current service oriented enterprise business process modeling and development technology is conducted by professional IT department, which cannot fulfill the growing requirements of personalized business application by end users. Recent research works about enterprise mashups enable end users to create own business application by assembling and composing widgets, which emphasizes the front-end interface rather than the logical process of business activities. In this paper, we propose an approach for end users to create personalized business process from multiple sources. An integrated framework for modeling, monitoring personalized business process and automated execution is designed. Internal business processes, external web APIs and communication services are all wrapped into this framework for end users to select and compose in a lightweight event-driven fashion. We also design a wizard-based development workspace helping end users without programming skills to build lightweight business application. In addition, an actual business project case is presented to show how our approach is used practically in an enterprise environment.','',2,'Sida XueBudan WuJunliang Chen','springer/bpel security.csv','springer','\0'),(639,'Proceedings - 2012 7th International Conference on Computing and Convergence Technology (ICCIT, ICEI and ICACT), ICCCT 2012','2012','','','The proceedings contain 289 papers. The topics discussed include: the medical image watermarking algorithm based on DFT and logistic map; quality of service approach in homogenous network (UMTS-UMTS) using parameter throughput, jitter and delay; the study of two novel software-based techniques for generating extra input states; research on IEEE 802.11n wireless LANs of multicast traffic characteristics analysis for supporting video streaming; design and implementation of automatic QoS measure framework for web services; formal properties and analysis method of BPEL base on Petri Net; malicious web page detection based on feature classification; a support system for smart selection and examination of initial focus pages in web exploration; an improved line following optimization algorithm for mobile robot; and wireless security method for on-board centered train control system.','',2,'[No author name available]','scopus/bpel security.csv','scopus','\0'),(640,'Synthesis of secure adaptors','2012','8','Adaptor synthesis; Model-based adaptation; Partial model checking; Security verification; Web service orchestration; WS-Security','Security is considered one of the main challenges for software oriented architectures (SOA). For this reason, several standards have been developed around WS-Security. However, these security standards usually hinder interoperability, one of the main pillars of Web service technologies. Software adaptation is a sound solution where an adaptor is deployed in the middle of the communication to overcome signature, behavioural and QoS incompatibilities between services. This is particularly important when dealing with stateful services (such as Windows Workflows or WS-BPEL processes) where any mismatch in the sequence of messages might lead the orchestration to a deadlock situation. We proposed security adaptation contracts as concise and versatile specifications of how such incompatibilities must be solved. Nonetheless, synthesising an adaptor compliant with a given contract is not an easy task where concurrency issues must be kept in mind and security attacks must be analysed and prevented. In this paper, we present an adaptor synthesis, verification and refinement process based on security adaptation contracts which succeeds in overcoming incompatibilities among services and prevents secrecy attacks. We extended the ITACA toolbox for synthesis and deadlock analysis and we integrated it with a variant of CCS, called Crypto-CCS, to verify and refine adaptors based on partial model checking and logical satisfiability techniques. © 2011 Elsevier Ltd. All rights reserved.','',2,'Martín J.A., Martinelli F., Pimentel E.','scopus/bpel security.csv','scopus','\0'),(641,'Introducing Policy-Driven Governance and Service Level Failure Mitigation in Cloud Service Brokers: Challenges Ahead','2014','0',' Cloud computing cloud service brokerage continuous quality assurance policy-driven governance service level failure mitigation','Abstract Cloud service brokerage represents a novel operational model in the scope of cloud computing. A cloud broker acts as an intermediary between a service provider and a service consumer with the goal of adding as much value as possible to the service being provisioned and consumed. Continuous quality assurance is a type of brokerage capability having high value to both providers and consumers of cloud services. At the same time, it can be among the most challenging kinds of capability for cloud service brokers to realise. In this paper we focus on two specific themes within this scope. We present a motivating scenario and outline key research challenges associated with introducing policy-driven governance and service level failure mitigation capabilities in brokers.','',2,'Konstantinos BratanisDimitrios Kourtesis','springer/bpmn security.csv','springer',''),(642,'Model checking Petri nets with names using data-centric dynamic systems','2016','0',' Formal verification Petri nets with names Infinite-state systems First-order temporal logics Data-aware business processes Resource-aware business processes','Abstract Petri nets with name creation and management ( \\({\\nu}\\) -PNs) have been recently introduced as an expressive model for dynamic (distributed) systems, whose dynamics are determined not only by how tokens flow in the system, but also by the pure names they carry. On the one hand, this extension makes the resulting nets strictly more expressive than P/T nets: they can be exploited to capture a plethora of interesting systems, such as distributed systems enriched with channels and name passing, service interaction with correlation mechanisms, and resource-constrained workflow nets that explicitly account for process instances. On the other hand, fundamental properties like coverability, termination and boundedness are decidable for \\({\\nu}\\) -PNs. In this work, we go one step beyond the verification of such general properties, and provide decidability and undecidability results of model checking \\({\\nu}\\) -PNs against variants of first-order \\({\\mu}\\) -calculus, recently proposed in the area of data-aware process analysis. While this model checking problem is undecidable in the general case, decidability can be obtained by considering different forms of boundedness, which still give raise to an infinite-state transition system. We then ground our framework to tackle the problem of soundness checking over workflow nets enriched with explicit process instances and resources. Notably, our decidability results are obtained via a translation to data-centric dynamic systems, a recently devised framework for the formal specification and verification of data-aware business processes working over full-fledged relational databases with constraints. In this light, our results contribute to the cross-fertilization between the area of formal methods for concurrent systems and that of foundations of data-aware processes, which has not been extensively investigated so far.','Formal Aspects of Computing',1,'Marco MontaliAndrey Rivkin','springer/service oriented architecture security.csv','springer',''),(643,'Livelock and Deadlock Detection for PA Inter-organizational Business Processes','2012','0','','Abstract The Public Administration domain is characterized by the dominance of inter-organizational Business Processes. These are a set of interrelated and sequential activities shared and executed by two or more Public Administration officies to achieve a business objective that is of value to citizens or companies in term of services. A Business Process results from the un-trivial integration of internal administration processes, so that structural problems such as livelock or deadlock may easily occur and in reality they are generally solved by involved civil servants. Nevertheless with the shift versus an electronic government this problem becomes particularly relevant. The paper presents a suitable approach for inter-organizational Business Process detection of livelock and deadlock situations. In particular, we introduce an approach to directly verify a Business Process modeled using the BPMN 2.0 semi-formal notation. The verification uses a state evaluation technique with an optimized unfolding algorithm considering specific BPMN 2.0 characteristics. A plug-in for the Eclipse platform has been also developed, which permits to have an integrated environment in which to design Business Process, using the Eclipse BPMN 2.0 Modeler, and to automatically verify it. The approach and the tool prototype have been successfully applied to real scenarios such as family reunion, grant citizenship and buoncer registration.','',2,'Damiano FalcioniAndrea PoliniAlberto PolzonettiBarbara Re','springer/bpmn security.csv','springer','\0'),(644,'A Mapping from Normative Requirements to Event-B to Facilitate Verified Data-Centric Business Process Management','2012','0','','Abstract This paper addresses the problem of describing and analyzing data manipulation within business process workflow specifications.We apply a modeldriven approach. We begin with business requirement specifications, consisting of an ontology and an associated set of normative rules, that define the ways in which business processes can interact. We then transform this specification into an Event-B specification. The resulting specification, by virtue of the Event-B formalism, is very close to a typical loosely coupled component-based implementation of a business system workflow, but has the additional value of being amenable to theorem proving techniques to check and refine data representation with respect to process evolution.','',2,'Iman PoernomoTimur Umarov','springer/bpel security.csv','springer','\0'),(645,'Lab4CE: a Remote Laboratory for Computer Education','2015','0',' Online learning environment Remote laboratory Computer science','Abstract Remote practical activities have been demonstrated to be efficient when learners come to acquire inquiry skills. In computer science education, virtualization technologies are gaining popularity as this technological advance enables instructors to implement realistic practical learning activities, and learners to engage in authentic and problem-based learning. However, virtualization solutions have not been designed especially for education and do not address any pedagogical concern. Since several large-scale studies showed that instructional supports during practical activities are almost as important as technical features, this article investigates the following research question: how the scaffolding around the lab increases students’ engagement in remote practical learning of computer science? To answer this question, we introduce the Lab4CE environment, a remote laboratory for computer education which adopts a distributed, modular and flexible architecture to integrate a set of scaffolding tools and services intended for instructors and learners. An exploratory study conducted with 139 undergraduate students enrolled in the first year of a computer science degree suggests a positive effect of the framework on learners’ engagement when they come to practice system administration, and reveals a significant positive correlation between students’ activity within the system and students’ learning achievement.','International Journal of Artificial Intelligence in Education',1,'Julien BroisinRémi VenantPhilippe Vidal','springer/service oriented architecture security.csv','springer',''),(646,'Out-of-the-Enterprise B2B Gateway Cloud Service for Emerging Markets','2012','2','','Traditionally, in a typical SOA environment, a B2B gateway is at the edge of an enterprise, and is responsible for performing business document exchanges with other enterprises. In the existing model often used in mature markets, the enterprise needs to incur the cost of hosting and maintaining the gateway. However, the scenario for emerging markets is different, since they are not totally reliant on exchanging business documents electronically. Specifically, the SMB enterprises in emerging markets may not be interested in hosting and maintaining the usually bulky gateway products. In this paper, we propose a novel approach wherein SMB enterprises would exchange secured business information to a B2B cloud service hosted outside of the enterprise. This service offers key B2B protocol capabilities and features such as packaging, security and partner on-boarding. In a typical document exchange flow, the SMB enterprise would send it\'s business information to this B2B cloud service which then packages it using the agreed upon B2B protocol and makes it available to the intended recipient enterprise. Using this model for B2B exchanges would work as an incentive to open up SMB enterprises for B2B business and will go a long way in reducing costs for SMB enterprises.','Cloud Computing in Emerging Markets (CCEM), 2012 IEEE International Conference on',1,'U. M. Visweswara; A. Gohad; P. S. Rao','ieee/service oriented architecture security.csv','ieee','\0'),(647,'Media trustworthiness verification and event assessment through an integrated framework: a case-study','2016','0',' Complex event processing Crisis management Image forensics Trend analysis Social media Logo recognition','Abstract Nowadays, information is provided through diverse network channels and, above all, its diffusion occurs in an always faster and pervasive manner. Social Media (SM) plays a crucial role in distributing, in an uncontrolled way, news, opinions, media contents and so on, and can basically contribute to spread information that sometimes are untrue and misleading. An integrated assessment of the trustworthiness of the information that is delivered is claimed from different sides: the Secure! project strictly fits in such a context. The project has been studying and developing a service oriented infrastructure which, by resorting at diverse technological tools based on image forensics, source reputation analysis, Twitter message trend analysis, web source retrieval and crawling, and so on, provides an integrated event assessment especially regarding crisis management. The aim of this paper is to present an interesting case-study which demonstrates the potentiality of the developed system to achieve a new integrated knowledge.','Multimedia Tools and Applications',1,'Irene AmeriniRudy BecarelliFrancesco BrancatiRoberto CaldelliGabriele GiuntaMassimiliano L. Itria','springer/service oriented architecture security.csv','springer',''),(648,'Model Checking Adaptive Multilevel Service Compositions','2012','0','','Abstract In this paper we present a logic-based technique for verifying both security and correctness properties of multilevel service compositions. We define modal μ -calculus formulae interpreted over service configurations. Our formulae characterize those compositions which satisfy a non-interference property and are compliant, i.e., are both deadlock and livelock free. Moreover, we use filters as prescriptions of behavior (coercions to prevent service misbehavior) and we devise a model checking algorithm for adaptive service compositions which automatically synthesizes an adapting filter.','',2,'Sabina Rossi','springer/bpel security.csv','springer','\0'),(649,'Enhancement of security in the hierarchy model of control and automation by applying Single Sign-On approach for web services','2012','','authentication; hierarchy model of control and automation; identity federation; saml; security token; single sign-on; soap; web services security','Information security is an important term in both fields of IT systems and control systems. Thus, security requirements should be always considered in design phase. Modern approaches in manufacturing and automation technology such as: DPWS and OPC UA tend to integrate control system networks to the computer networks by the aid of service-oriented architecture technology. Single Sign-On is a property of access control in information security which focuses on authentication mechanism. It can be performed across federated domains and provides a single entry point for the user that can login only once and become capable of accessing to disparate protected resources in different locations. The Security Assertion Markup Language (SAML) can be used invisibly in background of system and apply as the standard for providing Single Sign-On mechanism by exchanging identity information to different security domains regardless of the specific authentication protocol which is used for identities in that domain. This paper proposes the model for performing of Single Sign-On approach for protected devices and applications that support web services technology and locate across different boundaries of the hierarchy model of control and automation. © 2012 IEEE.','',1,'Jafary P., Lobov A., Lastra J.L.M.','scopus/service oriented architecture security.csv','scopus','\0'),(650,'The research of network database security technology based on webservice','2013','','Authentication; Decryption; Network Database security; Sub-key encryption','Database technology is one of the most widely applied computer technologies, its security is becoming more and more important. This paper introduced the database security, network database security level, studies the security technology of the network database, analyzes emphatically sub-key encryption algorithm, applies this algorithm into the campus-one-card system successfully. The realization process of the encryption algorithm is discussed, this method is widely used as reference in many fields, particularly in management information system security and e-commerce. © 2013 SPIE.','',1,'Meng F., Wen X., Gao L., Pang H., Wang Q.','scopus/webservice security.csv','scopus','\0'),(651,'Security SLAs – An Idea Whose Time Has Come?','2012','4','','Abstract Service Level Agreements (SLAs) have been used for decades to regulate aspects such as throughput, delay and response times of services in various outsourcing scenarios. However, security aspects have typically been neglected in SLAs. In this paper we argue that security SLAs will be necessary for future Internet services, and provide examples of how this will work in practice.','',1,'Martin Gilje JaatunKarin BernsmedAstrid Undheim','springer/service oriented architecture security.csv','springer','\0'),(652,'Leveraging the web of data via linked widgets','2014','1',' Web of Data Linked Data Linked Widgets Web Widgets Mashups','Abstract Machine-readable datasets that have increasingly become available in open formats in recent years have great potential as a foundation for innovative applications and services. Linked Data in particular-a set of best practices for publishing and connecting structured data on the Web-has facilitated significant progress in evolving the Web of documents into a Web of Data. However, although this concept has opened up many opportunities for data sharing and collaboration, integrating data is still a challenging task that requires considerable technical expertise and a profound understanding of the underlying datasets. In this paper, we introduce a novel approach to provide knowledge workers with the necessary tools to leverage the fast growing Linked Data Cloud by creating semantic-aware dataflow processes. To this end, we introduce the “Linked Widget” concept as an enhancement of standard Web Widgets. These widgets are based on a semantic data model that facilitates powerful mechanisms for gathering, processing, integration, and visualization of data in a user-friendly Mashup environment. By allowing knowledge workers to easily create complex Linked Data applications in an adhoc manner, our approach should contribute towards reducing existing barriers of Linked Data adoption.','Journal of Service Science Research',1,'Amin AnjomshoaaElmar KieslingDat Trinh TuanDo Ba LamPeter WetzA. Min Tjoa','springer/soa security.csv','springer','\0'),(653,'Optimal Service Selection Using Trust Based Recommendation System for Service-Oriented Grid','2012','0','QoS;grid service;reputation;similarity computation;trust','Grid computing systems provide a virtual framework for sharing resources across organizational boundaries. Nowadays OGSA(Open Grid Services Architecture) is the most common adopted grid system architecture. This architecture adopts standardized service pattern, which means it views all resources as services and shares all resources through sharing services. With the increasing use of Grid system, service user is in a fix when having to make a choice from a set of services offering the same functionality. Hence service selection is one of the challenges to be addressed in Service Oriented Grid (SOG). In this paper we propose a recommendation system based on trust, reputation and QoS for the SOG. This novel approach uses computation of trustworthiness of services by the mechanism of similarity computation and ranking service providers based on feedback of users.','Cloud and Services Computing (ISCOS), 2012 International Symposium on',1,'N. Nagarathna; M. Indiramma; J. S. Nayak','ieee/service oriented architecture security.csv','ieee','\0'),(654,'A security model of command and control system based on SOA','2014','1','command and control system; information exchange; security; SOA; SOAP','The command and control system based on SOA exists frangibility for information exchange, which has become a bottleneck to limit the development of them. A security policy of information exchange for command and control system is established, which combines with AES encryption, RSA digital signatures and authentication. The simulation results show that this policy ensures the security of the interactive information and improves the efficiency of information security process time. © 2014 IEEE.','',1,'Tian M., Feng Y., Jin X., Zhao Y.','scopus/soa security.csv','scopus','\0'),(655,'Grid portal with compiler service, advanced reservation QoS and job management using mobile services','2015','','Compiler service; GAP; GARUDA Access Portal; Grid GARUDA; Grid portal; GSRM; Login service; Mobile services; QoS; Quality of service; Reservation; SOA-based Grid','This paper highlights the recent developments and implementations in the GARUDA Access Portal (GAP) for utilising the Grid resources effectively. The new features offered are using quality of service (QoS) parameters for selecting high performance computing (HPC) resource available for job submission on GARUDA Grid, reservation of resources for job scheduling, job submission and monitoring using short message service (SMS) through mobile phone, source code compilation in Grid environment, integration of data Grid solution GSRM, enablement of content management system for GARUDA partners, enhanced security mechanism using login service and accounting of jobs. Thereby allowing researchers and application users an easy way of accessing GARUDA Grid infrastructure seamlessly. © 2015 Inderscience Enterprises Ltd.','',1,'Kalasagar B., Arunachalam B., Arackal V.S., Rao B.B.P.','scopus/soa security.csv','scopus',''),(656,'Towards a Formal Model for Cloud Computing','2014','0',' Cloud Computing Bigraphical Reactive Systems Formal Methods Cloud Model Cloud General Bigraph Cloud Customers Bigraph Cloud Services Bigraph','Abstract The use of formal methods is an effective means to improve complex systems reliability and quality. In this context, we adopt one of these methods to formalize cloud computing concepts. We focus on modeling interactions between cloud services and customers. Based on Bigraphical Reactive Systems, the formalization process is realized via the definition of a Cloud General Bigraph (CGB) obtained by associating; primarily, a CCB (Cloud Customers Bigraph) to cloud customers. Then, a Cloud Services Bigraph (CSB) is proposed to formally specify cloud services structure. Finally, juxtaposing these two bigraphs (CSB and CCB) gives rise to the suited CGB. In addition, a natural specification of cloud deployment models is specified. This paper also addresses cloud service dynamics by defining a set of reaction rules on bigraphs in a way that is amenable to reconfigure the designed cloud system.','',1,'Zakaria BenzadriFaiza BelalaChafia Bouanaka','springer/service oriented architecture security.csv','springer','\0'),(657,'Standard-Based Integration of W3C and GeoSpatial Services: Quality Challenges','2014','1','','Abstract In recent years, Service Oriented Computing (SOC) has become one of the leading approaches for the design and implementation of distributed solutions. The key concepts are the notion of service and the possibility to seamlessly combine several modules to offer more sophisticated functionality. Such features were soon recognized by both W3C and OGC as relevant for their purposes, although their standards are incompatible and the seamless communication and exchange of information between these types of services are not directly achievable. The current most accepted solution to address this matter is represented by the development of a wrapper that manages technical issues that arise during the translation of requests and responses between them. However, the design of such a software module presents challenges in terms of infrastructure design and Quality of Service. In this paper we describe some issues to be faced when developing a service wrapper aimed at integrating existing geospatial services into a W3C service-based infrastructure.','',1,'Michela BertolottoPasquale Di GiovanniMonica SebilloGiuliana Vitiello','springer/service oriented architecture security.csv','springer','\0'),(658,'Previous hop data retransmission service for SoR-based public networks','2014','0','Service-oriented route;data retransmission;ns-3','It is a well-known fact that the Internet traffic travels through public networks and these networks are vulnerable and congested. Whenever an error in a packet is detected, the packet should be retransmitted back to the receiver to reduce/overcome the data loss. Automatic repeat request (ARQ) method is a well-known data retransmission method used by protocols such as Transmission Control Protocol (TCP). This method will retransmit data all the way from the sender resulting higher end-to-end retransmission delays in the packet transmission. Nevertheless this method is widely used and operational, it will also introduce unnecessarily duplicate packets further congesting the networks when it retransmit the entire packet stream from an unacknowledged packet after detecting a retransmission requirement. Encryption and public key cryptography are important technologies that are used to preserve data security and integrity, and to reduce information theft on the public networks. These existing technologies have less flexibility over the current security requirements and the conventional routers are unable to provide end services to the users and applications. To address this need, our laboratory introduced the per-hop data encryption protocol for service-oriented router (SoR) based public networks which allows more secured and flexible method to transfer data over public networks [15]. SoRs are introduced to maintain rich information for the next-generation networks by shifting the current Internet infrastructure to an information-based and an open-innovation platform [6]. SoR is a middleware and can be implemented on a Cisco AXP and Juniper JunosV App Engine where it can analyse all packet stream transactions on its interfaces. Using the features of the SoR, in this paper, we propose a previous hop data retransmission service for public networks. This proposing service can provide higher data availability and reliability to the data that traverses through public network- , reducing the end-to-end data retransmission delays. We implemented a prototype of previous hop data retransmission service on the ns-3 simulator. Furthermore, from the evaluations on the test bed topology, it clearly showed that the proposed method was 80.43% faster than the conventional ARQ based retransmission method.','7th International Conference on Information and Automation for Sustainability',1,'R. Tennekoon; J. Wijekoon; E. Harahap; H. Nishi','ieee/service oriented architecture security.csv','ieee','\0'),(659,'Context-Aware Service Ranking in Wireless Sensor Networks','2014','4',' Service context User context Service ranking QoS assessment Fuzzy','Abstract Wireless sensor networks (WSNs) are widely used in practice for comprehensively monitoring and gathering physical information via a multitude of sensors. As the development of WSNs, the integration of them with the external Internet is a urgent need. By wrapping the sensor functionality as a WSN service, the Web service is considered as the most promising technology to incorporate WSNs into the Internet. The quest for selecting the service with the best performance promotes service ranking technology. However, due to the dynamic WSN environment, traditional quality of service (QoS) based ranking approaches for general Web services are no longer suitable for the WSN service. In this article, in order to fit the characteristics of the WSN environment, we propose a context-aware WSN service ranking approach by aggregating the user rating and WSN service context. First, the User QoS Assessment (UQA) and Context QoS Assessment (CQA) are proposed, respectively. Then, through the performance influence on the WSN service by the variations in their context, a Fuzzy mechanism is further developed to aggregate the UQA and the CQA. Finally, the experiments are presented to confirm the validity of the proposed approach.','Journal of Network and Systems Management',1,'Wenjia NiuJun LeiEndong TongGang LiLiang ChangZhongzhi ShiSong Ci','springer/soa security.csv','springer','\0'),(660,'Towards Accountable Services in the Cloud','2012','0','','Abstract Today, it is highly attractive for businesses to use the cloud as the platform to run their enterprise IT and business transactions: scalable infrastructures provide flexibility and cost efficiency, while the participation in service ecosystems allows building applications on demand by exploiting the vast amount of functionality that is ready to be consumed over the cloud. But taking advantage of all these opportunities is still obstructed by trust concerns. Handing over sensitive data to a third-party for processing, together with the complexity of the service ecosystem, the lack of visibility of its structures and the increased dependency on service providers constitute a non-negligible risk for businesses.','',1,'Volkmar LotzAnderson Santana de Oliveira','springer/service oriented architecture security.csv','springer','\0'),(661,'CARS 2015—Computer Assisted Radiology and Surgery Proceedings of the 29th International Congress and Exhibition Barcelona, Spain, June 24–27, 2015','2015','0','','','International Journal of Computer Assisted Radiology and Surgery',1,'','springer/soa security.csv','springer',''),(662,'Business Model for the Security of a Large-Scale PACS, Compliance with ISO/27002:2013 Standard','2015','','Availability; BPMN; DICOM; HIPAA; Integrity','Data security is a critical issue in an organization; a proper information security management (ISM) is an ongoing process that seeks to build and maintain programs, policies, and controls for protecting information. A hospital is one of the most complex organizations, where patient information has not only legal and economic implications but, more importantly, an impact on the patient’s health. Imaging studies include medical images, patient identification data, and proprietary information of the study; these data are contained in the storage device of a PACS. This system must preserve the confidentiality, integrity, and availability of patient information. There are techniques such as firewalls, encryption, and data encapsulation that contribute to the protection of information. In addition, the Digital Imaging and Communications in Medicine (DICOM) standard and the requirements of the Health Insurance Portability and Accountability Act (HIPAA) regulations are also used to protect the patient clinical data. However, these techniques are not systematically applied to the picture and archiving and communication system (PACS) in most cases and are not sufficient to ensure the integrity of the images and associated data during transmission. The ISO/IEC 27001:2013 standard has been developed to improve the ISM. Currently, health institutions lack effective ISM processes that enable reliable interorganizational activities. In this paper, we present a business model that accomplishes the controls of ISO/IEC 27002:2013 standard and criteria of security and privacy from DICOM and HIPAA to improve the ISM of a large-scale PACS. The methodology associated with the model can monitor the flow of data in a PACS, facilitating the detection of unauthorized access to images and other abnormal activities. © 2015, Society for Imaging Informatics in Medicine.','',2,'Gutiérrez-Martínez J., Núñez-Gaona M.A., Aguirre-Meneses H.','scopus/bpmn security.csv','scopus',''),(663,'A New Security Metric for SOA Implementations','2013','2','SOAP security;Service-Oriented Architecture security;Web Serives;XPath Injection','Service Oriented Architecture (SOA) is an architectural style used to handle transactions involving money, identity, and other sensitive and valuable information. Web Services that implement an SOA must be secure. This paper will describe the common vulnerabilities of Web Services and SOA and the best practices that should be followed in securing the software behind them, and then a new security metric, XPath Exposure Ratio, for Web Services and SOA implementations is proposed. In addition to the discussion on how to apply the new metric, the advantages of the new security metric are also illustrated.','Software Security and Reliability-Companion (SERE-C), 2013 IEEE 7th International Conference on',1,'D. Larson; J. Liu','ieee/service oriented architecture security.csv','ieee','\0'),(664,'Using electronic health records for clinical research: The case of the EHR4CR project','2015','10','Clinical research; Clinical trials; Data reuse; Electronic health record; Interoperability; Pharmaceutical industry','Objectives: To describe the IMI EHR4CR project which is designing and developing, and aims to demonstrate, a scalable, widely acceptable and efficient approach to interoperability between EHR systems and clinical research systems. Methods: The IMI EHR4CR project is combining and extending several previously isolated state-of-the-art technical components through a new approach to develop a platform for reusing EHR data to support medical research. This will be achieved through multiple but unified initiatives across different major disease areas (e.g. cardiovascular, cancer) and clinical research use cases (protocol feasibility, patient identification and recruitment, clinical trial execution and serious adverse event reporting), with various local and national stakeholders across several countries and therefore under various legal frameworks. Results: An initial instance of the platform has been built, providing communication, security and terminology services to the eleven participating hospitals and ten pharmaceutical companies located in seven European countries. Proof-of-concept demonstrators have been built and evaluated for the protocol feasibility and patient recruitment scenarios. The specifications of the clinical trial execution and the adverse event reporting scenarios have been documented and reviewed. Conclusions: Through a combination of a consortium that brings collectively many years of experience from previous relevant EU projects and of the global conduct of clinical trials, of an approach to ethics that engages many important stakeholders across Europe to ensure acceptability, of a robust iterative design methodology for the platform services that is anchored on requirements of an underlying Service Oriented Architecture that has been designed to be scalable and adaptable, EHR4CR could be well placed to deliver a sound, useful and well accepted pan-European solution for the reuse of hospital EHR data to support clinical research studies. © 2014 Elsevier Inc.','',1,'De Moor G., Sundgren M., Kalra D., Schmidt A., Dugas M., Claerhout B., Karakoyun T., Ohmann C., Lastic P.-Y., Ammour N., Kush R., Dupont D., Cuggia M., Daniel C., Thienpont G., Coorevits P.','scopus/service oriented architecture security.csv','scopus',''),(665,'The AVANTSSAR Platform for the Automated Validation of Trust and Security of Service-Oriented Architectures','2012','4','','Abstract The AVANTSSAR Platform is an integrated toolset for the formal specification and automated validation of trust and security of service-oriented architectures and other applications in the Internet of Services. The platform supports application-level specification languages (such as BPMN and our custom languages) and features three validation backends (CL-AtSe, OFMC, and SATMC), which provide a range of complementary automated reasoning techniques (including service orchestration, compositional reasoning, model checking, and abstract interpretation). We have applied the platform to a large number of industrial case studies, collected into the AVANTSSAR Library of validated problem cases. In doing so, we unveiled a number of problems and vulnerabilities in deployed services. These include, most notably, a serious flaw in the SAML-based Single Sign-On for Google Apps (now corrected by Google as a result of our findings). We also report on the migration of the platform to industry.','',2,'Alessandro ArmandoWihem ArsacTigran AvanesovMichele BarlettaAlberto CalviAlessandro CappaiRoberto CarboneYannick ChevalierLuca CompagnaJorge CuéllarGabriel ErzseSimone FrauMarius MineaSebastian MödersheimDavid von OheimbGiancarlo Pellegrino','springer/bpel security.csv','springer','\0'),(666,'A Digital Signature Architecture for Web Apps','2013','1','Web technologies;digital signature;electronic commerce;security','This digital signature architecture provides browser-agnostic, client-side signature components and generic server-side signature validation components to help integrate signatures into Web applications. The authors also discuss ways to extend HTML syntax to support signatures.','IT Professional',1,'H. K. B. Ponnapalli; A. Saxena','ieee/service oriented architecture security.csv','ieee','\0'),(667,'Integrating Trust and Economic Theories with Knowledge Science for Dependable Service Automation','2014','0',' Service Automation Economic Theory Trust Theory Knowledge Science','Abstract This paper examines the necessity to integrate Economic Theories and Trust Theories with Knowledge Science for trustworthy service automation in modern day society’s technology-driven environment. Current demands for open user-centric distributed service systems far outweigh the capabilities of existing systems in application areas such as health care, e-business, and consumer-centric power and water distribution systems. The basis of service transactions, whether in traditional market place or on-line system, is trust and lack of trust will have diminishing effect on the economic value. It is essential to identify user perspectives and relate their social psychology to meaningful trust determinants in the system to be automated. Since the systems are typically large, distributed, and deal with many heterogeneous collection of sensory devices and actuators that are specific to each service domain, it is necessary that the experts of the application domain and system developers share their knowledge and wisdom in the creation of the system. Sharing knowledge requires trust, and using the acquired knowledge requires creativity, born out of tacit knowledge, to go beyond risks. Motivated by this triangular web of Economics, Trust, and Knowledge that impacts on consumer-centric service automation, this paper explores their interesting connections, explains the different kinds of trust to be distilled from it, and identifies the design stages where the appropriate trust determinants are to be fostered in order to achieve a dependable service automation system.','',1,'Vangalur AlagarKaiyu Wan','springer/service oriented architecture security.csv','springer','\0'),(668,'SeCoS: Web of Things platform based on a microservices architecture and support of time-awareness','2016','0',' Web of Things Internet of Things time-awareness RFID Schlüsselwörter Web der Dinge Internet der Dinge Zeitaspekte RFID','Abstract New types of RFID applications require an intelligent connection between real world objects and software services. This also requires a new approach in the creation of software applications. This paper describes a novel Web of Things platform. Our approach uses microservices. Each microservice can be developed independently, thereby enabling faster development cycles, easier integration and maintenance. This account summarizes the current field and presents the architecture for a state-of-the-art Web of Things platform with time awareness support that is based on microservices.','e & i Elektrotechnik und Informationstechnik',1,'Herwig ZeinerMichael GollerVíctor Juan Expósito JiménezFlorian SalmhoferWerner Haas','springer/microservice security.CSV','springer',''),(669,'Cloud-basierte Plattformen zur Anwendungsintegration – Angebote und Praxisbeispiel','2015','0','Schlüsselwörter Software-as-a-Service Anwendungsintegration Enterprise Application Integration Cloud-basierte Integrationsplattform Integration-Platform-as-a-Service','Zusammenfassung Der Einsatz von Software-as-a-Service in Unternehmen beschränkt sich nicht mehr nur auf einzelne Pilotprojekte, sondern betrifft zunehmend auch geschäftskritische Anwendungen. Damit entsteht gleichzeitig der Wunsch nach Integration von Software-as-a-Service, etwa der CRM-Lösung Salesforce.com, und traditionellen On-Premise-Anwendungen wie SAP ERP. Diesen Bedarf versprechen „Cloud-basierte Integrationsplattformen“ flexibel und kostengünstig zu adressieren - als Alternative zur direkten Anbindung der Anwendungen oder zu klassischen Enterprise Application Integration-Plattformen. Sie bieten zahlreiche Anwendungsadapter und erlauben den grafischen Entwurf, die Ausführung und die Verwaltung von komplexen Integrationsprozessen in der Cloud. Einige Hersteller liefern Software-Agenten für die sichere Kommunikation zwischen Software-as-a-Service, On-Premise-Anwendungen und Integrationsplattform. Bei manchen Herstellern sind diese Agenten auch die lokale Laufzeitumgebung für Integrationsprozesse, weswegen dann keine kritischen Daten an die Integrationsplattform übertragen werden müssen.','HMD Praxis der Wirtschaftsinformatik',1,'Nico EbertKristin Weber','springer/soa security.csv','springer',''),(670,'Research and Implementation on Autonomic Integration Technology of Smart Devices Based on DPWS','2015','0',' Smart device Devices Profile for Web Services Autonomic integration Web services Service oriented architecture','Abstract Smart devices can take advantage of a specific protocol to provide services, but they do not have open and autonomic integration capability. After analyzing the characteristics of the existing integration middlewares, an autonomic integration technology for smart devices is proposed based on DPWS protocol. According to the requirement background of network monitoring integration system containing different types of network cameras, an autonomic integration prototype of network cameras is designed and implemented. Test results on autonomic discovery and configuration for smart devices show that DPWS is a good and open method to solve the autonomic integration problem and demonstrate that the method is realizable.','',2,'Yan-qin MaoLu JinSu-bin Shen','springer/bpel security.csv','springer',''),(671,'A Comparison of On-Premise to Cloud Migration Approaches','2013','3',' Cloud Migration Cloud Migration Processes On-premise to Cloud Cloud Architecture','Abstract While cloud computing has certainly gained attention, the potential for increased uptake of the technology is still large. As a consequence, how to move and migrate to the cloud is an unanswered question for many organisations. Gaining an understanding of cloud migration processes from on-premise architectures is our aim here. For this purpose, we look at three provider-driven case studies based on the common three layers of cloud computing: Infrastructure (IaaS), platform (PaaS) and software (SaaS) as a service. These shall be complemented by a fourth, independent systems integration perspective. We extract common migration process activities for the layer-specific processes and discuss commonalities, differences and open issues. The results presented are based on expert interviews and focus groups held with major international cloud solution providers and independent consultants.','',1,'Claus PahlHuanhuan XiongRay Walshe','springer/service oriented architecture security.csv','springer','\0'),(672,'Tool Demonstration of the Transformation Judge','2012','0','','Abstract The transformation judge is a novel system for the automatic evaluation and comparison of graph and model transformations that have been submitted as solutions for common transformation tasks such as those accepted as case studies for the transformation tool contest. The most important feature of this system is the correctness check that is done by black-box-testing. But also performance data and other information about the solutions are collected. So, for academic as well as industrial users of transformation tools, the judge could be a good starting point for choosing a particular transformation tool for their respective task, since they can easily explore and compare different solutions for similar tasks. In this demonstration we show the most important use cases of the judge, i.e., uploading of cases and corresponding solutions as well as the automatic evaluation and comparison of solutions.','',1,'Steffen MazanekChristian RutetzkiMark Minas','springer/webservice security.csv','springer','\0'),(673,'A Contextual Privacy-Aware Access Control Model for Network Monitoring Workflows: Work in Progress','2012','0',' Network monitoring access control privacy context workflows','Abstract Network monitoring activities are surrounded by serious privacy implications. The inherent leakage-proneness is harshened due to the increasing complexity of the monitoring procedures and infrastructures, that may include multiple traffic observation points, distributed mitigation mechanisms and even inter-operator cooperation. In this paper, we report a work in progress policy model that aims at addressing these concernes, by verifying access requests from network monitoring workflows, with privacy features already contained since their specification phase. We survey related work, outline some of their limitations, and describe an early version of our proposal.','',1,'Eugenia I. PapagiannakopoulouMaria N. KoukoviniGeorgios V. LioudakisJoaquin Garcia-AlfaroDimitra I. KaklamaniIakovos S. Venieris','springer/service oriented architecture security.csv','springer','\0'),(674,'Landmark-assisted location and tracking in outdoor mobile network','2012','2',' Landmark Geolocation Wireless network','Abstract Modern mobile devices integrating sensors, like accelerometers and cameras, are paving the way to the definition of high-quality and accurate geolocation solutions based on the informations acquired by these sensors, and data collected and managed by GSM/3G networks. In this paper, we present a technique that provides geolocation and mobility prediction of mobile devices, mixing the location information acquired with the GSM/3G infrastructure and the results of a landmark matching achieved thanks to the camera integrated on the mobile devices. Our geolocation approach is based on an advanced Time-Forwarding algorithm and on database correlation technique over Received Signal Strength Indication (RSSI) data, and integrates information produced by a landmark recognition infrastructure, to enhance algorithm performances in those areas with poor signal and low accurate geolocation. Performances of the algorithm are evaluated on real data from a complex urban environment.','Multimedia Tools and Applications',1,'Marco AnisettiClaudio A. ArdagnaValerio BellandiErnesto DamianiMario DöllerFlorian StegmaierTilmann RablHarald KoschLionel Brunie','springer/service oriented architecture security.csv','springer','\0'),(675,'Middleware Services for Web Service Compositions','2005','2','BPEL, middleware, web service composition','Special Interest Tracks and Posters of the 14th International Conference on World Wide Web','',2,'Anis Charfi and Mira Mezini','acm/bpel security.csv','acm','\0'),(676,'Semantic Web Services for University Course Registration','2014','0',' Semantic web services Ontology Course registration Web Service Modeling Language Web Service Modeling Ontology Discovery Service orientation','Abstract Semantic web services, with proper security procedures, have the potential to open up the computing infrastructure of an organization for smooth integration with external applications in a very controlled way, and at a very fine level of granularity. Furthermore, the process of using the provided functionality, consisting of discovery, invocation and execution of web services may be automated to a large extent. In this paper, we show how semantic web services and service-oriented computing can facilitate this integration in the education domain. Specifically, we use the Rule variant of Web Services Modeling Language (WSML) to semantically specify the functionality of web services for on-line course registration, a goal for consuming the provided functionality, as well as the ontologies needed for a shared terminology between the service and goal.','',1,'Şengül ÇobanoğluZeki Bayram','springer/service oriented architecture security.csv','springer','\0'),(677,'A Secure Framework for Business Process Execution','2013','0','Business processes;Secure framework;Web service;Web service composition','A web service is a method of communication between two electronic devices over the World Wide Web. The web service is a software function that provides different business functionality to service consumers. The set of web services can be composed together as a composition operation to fulfill and achieve the complex business requirements with the help of Business Process Execution Language (BPEL) or business processes. The existing business processes are having set of merits such as industry oriented approach and good control over workflow design. The business processes are unable to support for human user interaction, encryption and decryption mechanisms for providing the security for its data processing, therefore, the data process by business processes will not be secure from unauthorized users over the network. In this paper, we propose a secure framework for business processes to provide data security over the network. The proposed framework implements Caesar Cipher technique of cryptography with an example. The proposed technique transmits data in a secure manner over the network.','Computational Intelligence and Communication Networks (CICN), 2013 5th International Conference on',2,'R. Bhandari; U. Suman','ieee/bpel security.csv','ieee','\0'),(678,'An Inductive and Semantic Model of Constraints for Master Data Management under Cloud Computing','2014','0',' Master Data Management Constraints Model Cloud Computing Formularization','Abstract Master Data Management (MDM) has been evaluated under the contexts of Enterprise Architecture (EA), Semantic Web, Service Oriented Architecture (SOA) and Business Process Integration (BPI). However, there have been very few studies on operations of MDM under a Cloud Computing environment. Accordingly, we have analyzed the operational issues caused by migrating the MDM operations into the Cloud Computing environment, in particular into Software as a Service. Furthermore, we have pointed out the insufficient policy of the security framework in regards to the disclosure, and also pointed out the necessity to define a constraints model for security policy that is available in designing the operations of MDM among multiple SaaS/ASP and BPaaS providers. In this paper, we define a more precise constraints model by applying the first order predicate logic and inductive approach. Furthermore, we give explanatory description about the contexts of this formularization.','',1,'Shinji Kikuchi','springer/service oriented architecture security.csv','springer','\0'),(679,'MARV - Data Level Confidentiality Protection in BPEL-Based Web Service Compositions','2011','2','','With services technology being on the rise, the needs for trustworthy and secure data processing emerge. Usually, trust can be established for a data originator and an ultimate data recipient, but how about the data-forwarding parties in between? Especially in inter-organizational service compositions it may be doubted whether all involved partners share the same level of security, especially for data they do not generate nor process themselves. In this paper, we focus on the data confidentiality problem in inter-organizational service compositions, propose a solution based on the Web Services and BPEL specifications, and show how this solution can be applied to real-world scenarios.','Network and Information Systems Security (SAR-SSI), 2011 Conference on',2,'F. Majernik; M. Jensen; J. Schwenk','ieee/bpel security.csv','ieee','\0'),(680,'MOMCC: Market-oriented architecture for Mobile Cloud Computing based on Service Oriented Architecture','2012','14','','The vision of augmenting computing capabilities of mobile devices, especially smartphones with least cost is likely transforming to reality leveraging cloud computing. Cloud exploitation by mobile devices breeds a new research domain called Mobile Cloud Computing (MCC). However, issues like portability and interoperability should be addressed for mobile augmentation which is a non-trivial task using component-based approaches. Service Oriented Architecture (SOA) is a promising design philosophy embraced by mobile computing and cloud computing communities to stimulate portable, complex application using prefabricated building blocks called Services. Utilizing distant cloud resources to host and run Services is hampered by long WAN latency. Exploiting mobile devices in vicinity alleviates long WAN latency, while creates new set of issues like Service publishing and discovery as well as clientserver security, reliability, and Service availability. In this paper, we propose a market-oriented architecture based on SOA to stimulate publishing, discovering, and hosting Services on nearby mobiles, which reduces long WAN latency and creates a business opportunity that encourages mobile owners to embrace Service hosting. Group of mobile phones simulate a nearby cloud computing platform. We create new role of Service host by enabling unskilled mobile owners/users to host Services developed by skilled developers. Evidently, Service availability, reliability, and Service-oriented mobile application portability will increase towards green ubiquitous computing in our mobile cloud infrastructure. © 2012 IEEE.','',1,'Abolfazli S., Sanaei Z., Shiraz M., Gani A.','scopus/service oriented architecture security.csv','scopus',''),(681,'Event-cloud platform to support decision-making in emergency management','2015','1',' Emergency management Cloud-computing Complex-event processing Service-oriented architecture Business process modeling Decision-making support','Abstract The challenge of this paper is to underline the capability of an Event-Cloud Platform to support efficiently an emergency situation. We chose to focus on a nuclear crisis use case. The proposed approach consists in modeling the business processes of crisis response on the one hand, and in supporting the orchestration and execution of these processes by using an Event-Cloud Platform on the other hand. This paper shows how the use of Event-Cloud techniques can support crisis management stakeholders by automatizing non-value added tasks and by directing decision-makers on what really requires their capabilities of choice. If Event-Cloud technology is a very interesting and topical subject, very few research works have considered this to improve emergency management. This paper tries to fill this gap by considering and applying these technologies on a nuclear crisis use-case.','Information Systems Frontiers',1,'Matthieu LaurasFrédérick BenabenSébastien TruptilAurélie Charles','springer/service oriented architecture security.csv','springer',''),(682,'From consumer requirements to policies in secure services','2014','','BPMN; Consumer policy; Requirements; Security; Service composition; Transformation','Automatic translation of elicited consumer security requirements at high level (problem space) into application or service level security requirements (solution space) has been traditionally the Achilles’ heel of security requirements engineering. Such automated translation would result in significant failure and cost reduction in application development and maintenance, particularly in those complex applications based on compositions and choreographies of services. In this paper we present a framework which makes a step forward to solve this dilemma. The framework supports the engineering of composite service security and trust requirements directly derived from the organisational needs expressed for such service. The followed approach starts with the modelling of organisation actors’ objectives and commitments among these actors, and follows with the transformation of such commitments into security elements in the service business process specification and into a consumer security policy which the service will need to be compliant with. © Springer International Publishing Switzerland 2014.','',2,'Rios E., Malmignati F., Iturbe E., D’Errico M., Salnitri M.','scopus/bpmn security.csv','scopus',''),(683,'SMURF: Supporting Multi-tenancy Using Re-aspects Framework','2012','0','Cloud Computing;Multi-tenancy Engineering;Multi-tenancy Reengineering;Re-Aspects;Software-as-a-Service','Software-as-a-service multi-tenancy helps service providers to cut cost, improve resource utilization, and reduce service customization and maintenance time as the tenants share the same service instance. However, existing large-scale business applications inherently do not support multi-tenancy. This hinders these applications\' vendors from adopting the cloud model. Thus reengineering such applications to support multi-tenancy has become a key requirement. Reengineering such applications to support multi-tenancy is a complex and challenging task as it requires a deep understanding of the given application and almost all system modules need to be revisited. In this paper we introduce SMURF, Supporting Multi-tenancy Using Reengineering Aspects \"Re-Aspect\" Framework, to help service providers reengineering their legacy applications to support multi-tenancy. SMURF is based on our new re-aspects concept where a given system modification to disable, modify, replace or inject code is encapsulated in a re-aspect. SMURF realizes given system modifications (captured as re-aspects) by automating both change impact analysis and change propagation processes. We analyze the SaaS multi-tenancy pattern, discuss the set of requirements to migrate a single-tenant application to support multi-tenancy, describe SMURF approach, architecture and implementation details, and present our experimental results of SMURF on a set of open source web applications.','Engineering of Complex Computer Systems (ICECCS), 2012 17th International Conference on',1,'M. Almorsy; J. Grundy; A. S. Ibrahim','ieee/service oriented architecture security.csv','ieee','\0'),(684,'Quantitative trust management to support QoS-aware service selection in service-oriented environments','2013','1','Quality of services; Service selection; Service-oriented architecture; Trust management; Web services','Owing to the black-box nature of services, selecting a trustworthy service that best fits users\' requirements is greatly critical in service-oriented computing. Once a set of services fulfilling users\' functional requirements are founded, one of these services invoked by the users depends mostly on the Quality of Services (QoS), particularly security, trust, and reputation. This paper proposes a trust management model to support service discovery and selection based on QoS. We define a quantitative trust evaluating method for dynamic service discovery and selection. The proposed model makes service consumers get trustworthy services possible. Our mechanism uses consumers\' feedback to describe the trust degree of services and service providers. The service selection using the quantitative measurement rather than consumers\' intuition allows selecting a highly reliable service accomplishing their quality requirements well. Finally, we give experimental results. © 2013 IEEE.','',1,'Kim Y., Doh K.-G.','scopus/service oriented architecture security.csv','scopus','\0'),(685,'Time and Cost Aware Checkpointing of Choreographed Web Services','2015','0',' Web services choreography checkpointing QoS','Abstract Complex business processes can be realized by composing two or more web services into a composite web service. Due to the widespread reachability of Internet, more and more web services are becoming available to the consumers. Quality aware consumers look for resilience in services provisioned on Internet. This paper proposes message logging based checkpointing and recovery for web services to make them resilient to faults. It presents an algorithm that checkpoints services participating in a choreography in such a way that the execution time and cost of service constraints are always met. It identifies checkpoint locations by considering the costs involved in checkpointing, message logging and replaying for service recovery. The cost estimation is carried out using service interaction patterns and QoS values of the services involved. Performance of the proposed checkpointing strategy is corroborated with the results obtained from experiments.','',2,'Vani Vathsala AtluriHrushikesha Mohanty','springer/bpel security.csv','springer',''),(686,'BSWB: To Construct Sound Workflow Model','2011','0','business process;workflow modeling;workflow pattern;workflow soundness;workflow specification','With the development of workflow technology and the mature of corresponding modeling tools, more and more enterprise businesses are processed by workflow system. Although so many model methods, such as WF-net, Petrinet, BPMN and SCXML, etc., are proposed, it is a difficult task to guarantee the soundness property of workflow model. Generally, this problem is handled by soundness analysis after the design of workflow models. In this paper, a new method BUM (bottom-up model), which based on BSWB (Basic Sound Workflow Block), is proposed. Rather than analysis the soundness of workflow specification after the model is built, BSWB uses sound workflow blocks to construct workflow model. Thus, the soundness property can be guaranteed. Additionally, BSWB can construct workflow specification in different abstract levels which is very useful for understanding and maintaining workflow systems. With this method, workflow systems can be designed and maintained flexibly and economically.','2011 Third International Conference on Multimedia Information Networking and Security',2,'H. An; Y. Xu; Z. Ma; L. Liu; X. Chen','ieee/bpmn security.csv','ieee','\0'),(687,'Extending Net-Centricity to Coalition Operations','2013','1','coalition information sharing;distributed applications;service-oriented architectures','To bring the advantages of network-centric warfare to coalition warfighting, we must significantly improve our ability to quickly share critical information while still satisfying security requirements. Here, the authors explore a services-based approach to such information management.','IEEE Intelligent Systems',1,'N. Suri; A. Uszok; R. Lenzi; M. Breedy; J. M. Bradshaw; Y. Fu; J. Hanna; V. T. Combs; A. Sinclair; R. Grant','ieee/service oriented architecture security.csv','ieee','\0'),(688,'Detecting Vulnerabilities in Service Oriented Architectures','2012','0','SOA;benchmarking;security;vulnerabilities;vulnerability detection;web services','The adoption of Service Oriented Architectures (SOAs) in a wide range of organizations, including business-critical systems, opens the door to new security challenges. Although the services used should be secure and reliable, they are often deployed with security bugs that can be maliciously exploited. The problem is that developers are frequently not specialized on security and the common time-to-market constraints limits an in depth test for vulnerabilities. Additionally, research and practice shows that the effectiveness of existing vulnerability detection tools is very poor. The goal of this work is to advance the state-of-the-art by investigating new techniques and tools to effectively detect vulnerabilities in SOAs in an automated manner. Instrumental in this work is to propose a benchmarking approach that allows assessing and comparing vulnerability detection tools, thus helping guiding tools development and improvement, and allowing users to select the most effective ones according to specific needs.','Software Reliability Engineering Workshops (ISSREW), 2012 IEEE 23rd International Symposium on',1,'N. Antunes; M. Vieira','ieee/service oriented architecture security.csv','ieee','\0'),(689,'Processes View Modeling of Identity-related Privacy Business Interoperability: Considering User-Supremacy Federated Identity Technical Model and Identity Contract Negotiation','2012','0','Federated identity;privacy processes;user-centric;user-supremacy','Federated identity is a distributed system that is deployed across multiple parties. Service providers still hold the absolute power over people identities. So, identity-related privacy is considered as a mean to entrench subjects\' control over identities and foster trust among multiple involved parties. Thus, identity-related privacy should interoperable, which can be guaranteed through the capture of requirements from different polices related to identity. In this article, we provide and explain a BPMN processes view of the requirements allowing them to be ready to-implement, clear, easy to-understand by each party wishing to collaborate within or across federated identity systems. We highlight that present-day practitioners should be able to translate requirements with user-supremacy federated identity technical model concepts into a set of rules and take into consideration details of identity contract negotiation in order to successfully deliver processes view. BPMN collaboration and choreography diagrams are used to describe seven processes and a sub-process, which would provide a useful way to gain alignment between requirements and IT.','Advances in Social Networks Analysis and Mining (ASONAM), 2012 IEEE/ACM International Conference on',2,'G. B. Ayed; S. Ghernaouti-Hélie','ieee/bpmn security.csv','ieee','\0'),(690,'SEWSEC: A Secure Web Service Composer using Information Flow Control','2011','1','Dependence Graphs;Information Flow control;Secure Web Service Composition','In this paper, we describe SEWSEC, a Secure Web Service Composer that assists the system designer to secure his composed Web Services. The system designer can use standard tools like BPEL to compose services and configures the security of some exchanged data and internal resources. By abstracting the system to a hierarchy of dependence graphs, SEWSEC applies an Information Flow Control verifying that the configuration ensures an end-to-end security. In case of insecure configuration, SEWSEC helps the designer to modify it and the security code is generated. A use case study on a real system illustrates SEWSEC practical usage, its interoperability with web services standards and its acceptable performance.','2011 6th International Conference on Risks and Security of Internet and Systems (CRiSIS)',2,'H. Zorgati; T. Abdellatif','ieee/bpel security.csv','ieee','\0'),(691,'An open virtual multi-services networking architecture for the future internet','2015','0',' Network virtualization Future Internet Service-oriented architecture Virtual routing Vyatta','Abstract Network virtualization is considered as a promising way to overcome the limitations and fight the gradual ossification of the current Internet infrastructure. The network virtualization concept consists in the dynamic creation of several co-existing logical network instances (or virtual networks) over a shared physical network infrastructure. We have previously proposed a service-oriented hierarchical business model for virtual networking environments. This model promotes the idea of network as a service, by considering the functionalities offered by different types of network resources as services of different levels – services that can be dynamically discovered, used, and composed. In this paper, we propose an open, virtual, multi-services networking architecture enabling the realization of our business model. We also demonstrate the operation of our architecture using a virtualized QoS-enabled VoIP scenario. Moreover, virtual routing and control level performance was evaluated using proof-of-concept prototyping. Several important findings were made in the course of this work; one is that service-oriented concepts can be used to build open, flexible, and collaborative virtual networking environments. Another finding is that some of the existing open source virtual routing solutions such as Vyatta are only suitable for building small to medium size virtual networking infrastructures.','Journal of Internet Services and Applications',1,'May El BarachiNadjia KaraSleiman RabahMathieu Forgues','springer/service oriented architecture security.csv','springer',''),(692,'A Service Delivery Framework to Support Opportunistic Collaborations','2013','1',' opportunistic collaborations services collaboration model-driven engineering Cloud platform','Abstract The wide spread use of computing devices, such as smart phones, cameras, and sensors results in abundance of available information. When such information flows occur in a specific place, at a certain time, and with the participating entities working together or sharing information to achieve common goals, we refer to the outcome of an opportunistic collaboration. In this paper we define and analyse this new collaboration domain and present a framework through which opportunistic collaboration services can be provisioned. We describe in detail the processes that the framework supports, including the modeling of opportunistic collaborations, the collaboration service creation, and the participation management. We evaluate the framework through a use case scenario in the context of participatory journalism in high-profile news events.','',2,'Gregory KatsarosErik WitternBirgit GrayStefan Tai','springer/bpmn security.csv','springer','\0'),(693,'An adaptive agent-based system for deregulated smart grids','2016','0',' Agents Smart grid Energy market','Abstract The power grid is undergoing a major change due mainly to the increased penetration of renewables and novel digital instruments in the hands of the end users that help to monitor and shift their loads. Such transformation is only possible with the coupling of an information and communication technology infrastructure to the existing power distribution grid. Given the scale and the interoperability requirements of such future system, service-oriented architectures (SOAs) are seen as one of the reference models and are considered already in many of the proposed standards for the smart grid (e.g., IEC-62325 and OASIS eMIX). Beyond the technical issues of what the service-oriented architectures of the smart grid will look like, there is a pressing question about what the added value for the end user could be. Clearly, the operators need to guarantee availability and security of supply, but why should the end users care? In this paper, we explore a scenario in which the end users can both consume and produce small quantities of energy and can trade these quantities in an open and deregulated market. For the trading, they delegate software agents that can fully interoperate and interact with one another thus taking advantage of the SOA. In particular, the agents have strategies, inspired from game theory, to take advantage of a service-oriented smart grid market and give profit to their delegators, while implicitly helping balancing the power grid. The proposal is implemented with simulated agents and interaction with existing Web services. To show the advantage of the agent with strategies, we compare our approach with the “base” agent one by means of simulations, highlighting the advantages of the proposal.','Service Oriented Computing and Applications',1,'Nicola CapodieciGiuliano Andrea PaganiGiacomo CabriMarco Aiello','springer/soa security.csv','springer',''),(694,'Design and implementation of police comprehensive information platform based on SOA','2012','0','Service Oriented Architecture (SOA);Web services;comprehensive information platform;information sharing;requestservice platform','Aiming at the problems of traditional mode of information construction and according to the demands of public security business, this paper firstly introduce the principle of Service Oriented Architecture (SOA) framework, and put forward the system structure of request-service platform. Base on SOA framework, the request-service platform which supporting software function loosely coupled can meet the needs of information sharing in the public security business. To resolve the problems of heterogeneous system compatibility and interoperability, this paper also design and preliminarily realized the building of police comprehensive information platform based on SOA framework.','2012 7th IEEE Conference on Industrial Electronics and Applications (ICIEA)',1,'J. Hu','ieee/service oriented architecture security.csv','ieee','\0'),(695,'Designing, formalizing, and evaluating a flexible architecture for integrated service delivery: combining event-driven and service-oriented architectures','2012','4',' Design science EDSOA Integrated service delivery Public/private service network Web services','Abstract An influx of service providers collaborate in networks to meet their clients’ demands. Integrated service delivery (ISD) is a way to let networked service providers offer services to their clients by bundling selected services offered by each provider so that clients do not have to deal with each single provider anymore. Designing such a network is a complicated endeavor as independent organizations need to collaborate and should understand how their activities are dependent on each other. Communication of events is necessary to deal with unpredictable and complex processes in such a network. In contrast with conventional event-driven architecture and service-oriented architecture (SOA) approaches, the hybrid model of event-driven interactions and SOA offers the required flexibility to realize ISD. This flexibility is realized by integrating not only services but also the processes of the different service providers to supply such services. A design science approach has been applied resulting in a detailed and formalized design of an event-driven service-oriented architecture (EDSOA). The EDSOA has been illustrated to show how ISD is realized with support of the architecture in a scenario concerning an application for a temporary residence permit by an immigrant. An evaluative workshop has been conducted which reflected that the following criteria are most important for successful organizational adoption of the EDSOA: expected usefulness, fit with organizational standards, use of trusted technology, and ease of maintenance.','Service Oriented Computing and Applications',2,'Sietse OverbeekMarijn JanssenPatrick van Bommel','springer/bpel security.csv','springer','\0'),(696,'An Integrated Approach for Identity and Access Management in a SOA Context','2011','9','SAML, SOAP, WS-BPEL, WSsecurity, identity and access management','Proceedings of the 16th ACM Symposium on Access Control Models and Technologies','',2,'Waldemar Hummer and Patrick Gaubatz and Mark Strembeck and Uwe Zdun and Schahram Dustdar','acm/bpel security.csv','acm','\0'),(697,'Towards a Service Friendly Cloud Ecosystem','2012','4','cloud governance;cloud management;platform-as-a-service;service lifecycle','After the large penetration of Cloud Computing, more and more developers are taking into account migrating their applications to the Cloud, in order to take advantage of the characteristics of this new environment. In close relation with application migration, an increasing number of development and execution platforms, delivered as PaaS solutions (such as mOSAIC, 4CaaSt, Cloud Foundry, Open Shift, Stackato, and others) are offering their services for development, deployment, and execution of applications that are using in an optimum manner the five characteristics of the Cloud. Following this massive migration of applications, especially from SOA, to Cloud environments, new requirements for application development could be identified in order to enable the construction of complex solutions, and to exploit a business level on the top of various *-as-a-Service layers. The introduction of a centralized component, the Cloud Governance, is necessary in order to enable the development of complex cloud ecosystems. This centralized component is extending, complementing, completing and integrating core features from the PaaS layer, like monitoring, provisioning, negotiation, and others, and integrate features of various Cloud management solutions.','2012 11th International Symposium on Parallel and Distributed Computing',1,'T. F. Fortis; V. I. Munteanu; V. Negru','ieee/soa security.csv','ieee','\0'),(698,'Business Driven BCM SLA Translation for Service Oriented Systems','2012','0','','Abstract A Business Continuity Management (BCM) Impact Analysis derives business-level BCM SLAs which need to be translated at IT-level, infrastructure-level and facility-level services. However, translation of SLAs across a service oriented system is not an easy task. In this patent we present a new Petri-Net based procedure to define and to translate BCM SLAs for service oriented systems. As a result of our approach we are able to introduce a BCM SLA classification schema. We will describe our approach in the context of a use-case.','',1,'Ulrich WinklerWasif GilaniAlan Marshall','springer/service oriented architecture security.csv','springer','\0'),(699,'A Linked Data Framework for Android','2015','0','','Abstract Mobile devices are becoming major repositories of personal information. Still, they do not provide a uniform manner to deal with data from both inside and outside the device. Linked data provides a uniform interface to access structured interconnected data over the web. Hence, exposing mobile phone information as linked data would improve the usability of such information. We present an API that provides data access in RDF, both within mobile devices and from the outside world. This API is based on the Android content provider API which is designed to share data across Android applications. Moreover, it introduces a transparent URI dereferencing scheme, exposing content outside of the device. As a consequence, any application may access data as linked data without any a priori knowledge of the data source.','',1,'Maria-Elena RoşoiuJérôme DavidJérôme Euzenat','springer/service oriented architecture security.csv','springer',''),(700,'Analysing Impact of Scalability and Heterogeneity on the Performance of Federated Cloud Security','2012','0','Cloud computing;performance parameters;security architecture','Nowadays, the notion of virtualization infrastructures is making significant headway in the computing landscape. The business-push to these infrastructures stemming from the Cloud computing paradigm resulted in a more sophisticated concept of rent-a-technology that enabled a series of new-networked business models. This emerging digital globalization has not only raised the legal stakes and ownership concerns; but also highlight the need of providing effective security solutions. These security solutions should be able to scale the application requirements without undue performance and quality overheads to ensure security and privacy of data in the federated Cloud deployments. This paper presents a formal way of testing the impact of scalability and heterogeneity on the federated Cloud security services. The work presented in this paper aims to develop a mean of quantifying the impact on security functions under various operating conditions and parameters of federated Cloud deployments. The results of this work will help businesses to identify the best security architecture that will fit their Cloud architectures and performance requirements.','2012 IEEE 11th International Conference on Trust, Security and Privacy in Computing and Communications',1,'S. Naqvi; A. Michot; M. Van de Borne','ieee/service oriented architecture security.csv','ieee','\0'),(701,'XML Signature Wrapping Angriffe wirksam unterbinden','2012','0','','','Datenschutz und Datensicherheit - DuD',1,'Meiko JensenHolger JunkerLuigi Lo IaconoChristian MainkaJörg Schwenk','springer/soa security.csv','springer','\0'),(702,'Workshop on the Application of Security and Testing to Rich Internet Applications','2015','0','','Web applications and service-oriented architectures represent an increasing part of modern software, and use more advanced techniques such as Ajax and HTML5, CCS3, JavaScript, AJAX, websockets and Client-side data. These new applications, sometimes called \"Rich Internet Applications\" (RIAs), are now being used routinely, either directly or deployed as cloud services. In addition, more and more of these applications and services are accessed from mobile devices; meanwhile, wireless connected devices rapidly grow in number to connect to the \"Internet-of-things\".','',1,'Guy-Vincent Jourdan and Gregor Bochmann and Ettore Merlo and James Miller and Vio Onut and Lin Tan','acm/service oriented architecture security.csv','acm',''),(703,'Challenges for Migrating to the Service Cloud Paradigm: An Agile Perspective','2013','0',' Agile Software Development Software Migration Software Modernization Cloud Computing Service-Oriented Architecture','Abstract Migrating to the Service Cloud Paradigm implies the migration of legacy software systems to a service-oriented architecture with deployment in the cloud. Although this specific software modernization paradigm promises numerous strategic and operational advantages, it poses also many complex organizational and technical challenges, among which is the lack of mature processes, methods and techniques. This paper examines the questions of whether agile methods and techniques could be scaled to fit the migration to the Service Cloud Paradigm and how they could help overcoming the challenges of software modernization in this specific context. The research methodology presented here first extracts the challenges of the migration to Service Cloud Paradigm through a systematic literature review and then, using expert judgment, evaluates how different agile techniques, taken from Scrum and Extreme Programming (XP), could address the identified challenges. As a result, a ranked list of applicable agile techniques is presented and suggestions for their adoption in software modernization projects are drawn.','',1,'Stavros StavruIva KrastevaSylvia Ilieva','springer/service oriented architecture security.csv','springer','\0'),(704,'Information Security Risk Management in a World of Services','2013','0','ISO/IEC 27005;SOA;cloud;controllability;information security;risk management;web services','Service Oriented Architectures (SOA) offer new opportunities for the interconnection of systems. However, for a company, opening its Information System to the \"world\" is not insignificant in terms of security. Whether to use available services or provide its own services, new technologies have introduced new vulnerabilities and therefore new risks. Our work aims to propose an approach for risk management which is based on the ISO/IEC 27005:2011 standard: we propose a development of this standard (by an extension of Annex D) so that it can fully take into account the type \"service\" as web services and cloud services. Indeed, a world of services is not limited to link interconnected systems, it is more a relationship between customer and supplier, where notions of trust, accountability, trace ability and governance are developed. Following this study we introduce a new security criterion, controllability, to ensure that a company keeps control of its information even if it uses such outsourced services.','Social Computing (SocialCom), 2013 International Conference on',1,'V. Lalanne; M. Munier; A. Gabillon','ieee/service oriented architecture security.csv','ieee','\0'),(705,'2012 1st International Workshop on Software Engineering Challenges for the Smart Grid, SE-SmartGrids 2012 - Proceedings','2012','','','The proceedings contain 11 papers. The topics discussed include: OPC unified architecture: a service-oriented architecture for smart grids; establishing a smart grid node architecture and demonstrator in an office environment using the SOA approach; towards a modular and scalable architecture for high-level smart grid applications; challenges on software defect analysis in smart grid applications; a common analysis framework for smart distribution networks applied to survivability analysis of distribution automation; dynamic forecasting and adaptation for demand optimization in the smart grid; initial survey of smart grid activities in the Norwegian energy sector - use cases, industrial challenges and implications for research; GridOPTICS(TM): a design for plug-and-play smart grid software architecture; software models for smart grid; adaptive security and privacy in smart grids: a software engineering vision; and applying formal software engineering techniques to smart grids.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus','\0'),(706,'Tree Based Domain-Specific Mapping Languages','2012','0',' mappings domain-specific languages UML model transformation languages','Abstract Model transformation languages have been mainly used by researchers – the software engineering industry has not yet widely accepted the model driven software development (MDSD). One of the main reasons is the complexity of metamodelling principles the developers are required to know to actually use model transformations in the way the OMG has stated. We offer the basic principles how to create domain-specific model transformation languages which can be used by developers relying only on familiar modelling concepts. We propose to use simple graphical mappings to specify the correspondence between source and target models which are represented using trees based on the concrete syntax of underlying modelling languages. If such principles were followed, then the range of potential users of model transformation languages would increase significantly.','',2,'Elina KalninaAudris KalninsAgris SostaksEdgars CelmsJanis Iraids','springer/bpel security.csv','springer','\0'),(707,'Tailoring Agile in the Large: Experience and Reflections from a Large-Scale Agile Software Development Project','2016','0',' Large-scale agile software development Method tailoring Software development practices','Abstract It is not surprising that agile methods are tailored or customized in various contexts and projects. However, there is little advice for practitioners for how to go about tailoring agile methods in large-scale projects. Henceforth, the aim of this experience report is to highlight some of the challenges with large-scale agile software development and especially how to deal with these challenges involves continuous tailoring of the agile method in use. In so doing, we report from a large-scale agile software development effort involving more than 120 participants in a Governmental organization and running for 3,5 years. The project consisted of three deliverables, partly developed in parallel after a delivery model based on Scrum. After a much troubled start related to scaling challenges and architecture complexity during the first deliverable, the project was turnaround and the second and third deliverables were portrayed fairly successful by both supplier and customer. From a practitioner’s perspective, we found that novel practices emerged through out the project that improved the way of working – especially across teams and stakeholders. Based on this, we describe some guidelines for tailoring agile in the large.','',1,'Knut H. RollandVidar MikkelsenAlexander Næss','springer/service oriented architecture security.csv','springer',''),(708,'Autonomous Sensor Network Architecture Model','2012','1',' role based wireless sensor networks sensors sensor architecture model maintenance free sensor networks dynamic sensor network environment','Abstract To implement a maintenance free and reliable sensor network is necessary in complex sensor systems nowadays. There are studies, which can control developers, who want to build an autonomous sensor network in a dynamically changing environment. The existing solutions have several drawbacks because of the diversity and complexity of the wireless type sensor networks. This paper introduces a sensor network architecture model, which is a good base to implement a simulation environment for the systems before implementing them. The introduced features make the possibility to fine-tune the operational parameters during the planning phase. In this way, the presented sensor network architecture is working based on the presented roles to provide its services.','',1,'András TóthFerenc Vajda','springer/service oriented architecture security.csv','springer','\0'),(709,'TACSA: A web-service based system for coastal surveillance and situational awareness','2015','','SOA framework;homeland security;maritime surveillance;web service','In this paper we present the design aspects of TACSA, a web-service based system for maritime situational awareness regarding coastal surveillance, marine traffic supervision, illegal activities detection, and so forth. TACSA is implemented on the basis of service oriented architecture (SOA). Its software codes are process centric with most of them coming from the reuse of existing programs in conjunction with wrapping of interfaces in compliance with the open standards of web service. A prototype TACSA containing four service tiers is experimentally built. Each service tier, in turn consists of several service components towards different applications in maritime domain. An in-house test with real time observation data taken from surveillance sensors is carried out and the test results demonstrate the effectiveness of this system.','Security Technology (ICCST), 2015 International Carnahan Conference on',1,'Y. M. Dai; K. S. Liu','ieee/service oriented architecture security.csv','ieee',''),(710,'Profit-Maximizing Trustworthiness Level of Composite Systems','2015','0',' Trustworthiness management Trust management Optimal strategies Trust Trust computational model Run-time Composite systems Economics of security','Abstract Service providers face the ever-increasing problem of meeting customer expectations while maximizing profits. This optimal balance is very important for delivering better service quality to users and keeping costs under control through efficient resource allocation. In this paper we suggest optimal strategies for managing system trustworthiness in two different contexts. In the first one the provider has limited information about the users’ trustworthiness preferences, which have to be satisfied on every transaction. In the second context, the provider knows what the effect of possible outcomes on customer’s trust level and, given that the customer will perform a certain number of transactions, would like to know whether the system trustworthiness should be managed at any point in time in order to meet customer’s expectations in a cost-effective way. The optimality of the proposed strategies is demonstrated via both analytical techniques and simulations.','',1,'Costas KalogirosMichalis KanakakisShenja van der GraafWim Vanobberghen','springer/service oriented architecture security.csv','springer',''),(711,'Supporting Requirements Elicitation Practices','2013','0',' Requirements elicitation practices social software','Abstract In this paper, we examine the practices in requirements elicitation activities from the perspective of a developer of software projects. By doing so, we want to contribute to a better understanding of how the main activities between stakeholders can be supported by IT, particularly social software. We have interviewed six key persons from five different software projects and identified the potential roles of social software to improve in five main activities of requirements elicitation. We present these critical points in the context of the cases and discuss them across the cases.','',1,'Mohd Ilias M. ShuhudAlexander RichterAishah Ahmad','springer/service oriented architecture security.csv','springer','\0'),(712,'Managing End-to-End Security Risks with Fuzzy Logic in Service-Oriented Architectures','2013','0','Fuzzy Logic;Reference Models and Design Method;Risk Management;SOA;Security Management','Service-oriented architectures are increasingly deployed in open, distributed and dynamic environments, which require an end-to-end security awareness security at each phase of the service\'s lifecycle. Moreover, the security should not only focus on services without considering the risks and threats that might be caused by elements from business activities or underlying hardware and software infrastructure. In this paper, we adopt a holistic approach to define a security conceptual model that covers all elements at the business, service and infrastructure levels and guides each phase in a typical design method for service-oriented architectures. Since the information security is subject to uncertain and unforeseen threats, we propose a fuzzy logic decision system that helps identify security risks based on the security conceptual model and select appropriate security measures based on security objectives.','2013 IEEE Ninth World Congress on Services',1,'Y. Badr; S. Banerjee','ieee/service oriented architecture security.csv','ieee','\0'),(713,'Introduction to IWDE 2012','2012','0',' Digital Engineering Virtual Reality Software Engineering System Properties','Abstract Digital Engineering is an emerging trend that brings together different experts to develop new products and processes or to enhance existing ones. Functionalities are often non-visible in the development process. Virtual reality is a promising technology to visualize aspects such as quality, security, or safety. Due to the increasing amount of software that is inherited in products or used to control processes different domain experts have to collaborate with software engineers. With the help of Digital Engineering methods and tools, system properties such as reliability and safety can be early included in the development.','',1,'Veit KöppenGunter Saake','springer/service oriented architecture security.csv','springer','\0'),(714,'Long reach colorless WDM OFDM-PON using direct detection OFDM transmission for downstream and OOK for upstream','2014','1',' Wavelength division multiplexing Orthogonal frequency division multiplexing Passive optical network Downstream Upstream Direct detection','Abstract Here we have proposed a novel architecture of wavelength division multiplexed orthogonal frequency division multiplexing (OFDM)-passive optical network (WDM OFDM-PON) which is capable of transmitting 10 Gbps data both in downstream and upstream directions up to 50 km. Here direct detection OFDM is used for downstream unicast transmission and simple on–off keying data is used for upstream unicast transmission. OFDM eliminates inter-symbol interference through use of a cyclic prefix also provides good protection against co-channel interference and impulsive parasitic noise. Since delay interferometer (DI) acts as a optical equalizer and vestigial sideband filter hence a DI is used at central office for successful transmission of 10 Gbps upstream data up to 50 km using reflective semiconductor optical amplifier at optical network unit (ONU) having bandwidth of 1.5 GHz. Since no extra laser source is used at ONU and downstream data is further used for upstream data modulation so colorless scheme is implemented. Simulation is performed for all downstream and upstream channels having data rate of 10 Gbps with a transmission distance of 50 km having acceptable performance.','Optical and Quantum Electronics',1,'Gaurav PandeyAditya Goel','springer/soa security.csv','springer','\0'),(715,'Detection of REST Patterns and Antipatterns: A Heuristics-Based Approach','2014','1',' REST Antipatterns Patterns Design Heuristics Detection','Abstract REST (REpresentational State Transfer), relying on resources as its architectural unit, is currently a popular architectural choice for building Web-based applications. It is shown that design patterns —good solutions to recurring design problems—improve the design quality and facilitate maintenance and evolution of software systems. Antipatterns , on the other hand, are poor and counter-productive solutions. Therefore, the detection of REST (anti)patterns is essential for improving the maintenance and evolution of RESTful systems. Until now, however, no approach has been proposed. In this paper, we propose SODA-R (Service Oriented Detection for Antipatterns in REST ), a heuristics-based approach to detect (anti)patterns in RESTful systems. We define detection heuristics for eight REST antipatterns and five patterns, and perform their detection on a set of 12 widely-used REST APIs including BestBuy, Facebook, and DropBox. The results show that SODA-R can perform the detection of REST (anti)patterns with high accuracy. We also found that Twitter and DropBox are not well-designed, i.e. , contain more antipatterns. In contrast, Facebook and BestBuy are well-designed, i.e. , contain more patterns and less antipatterns.','',1,'Francis PalmaJohann DuboisNaouel MohaYann-Gaël Guéhéneuc','springer/service oriented architecture security.csv','springer','\0'),(716,'Building Your Own Language Runtime','2015','0','','With the growing prominence of cloud computing, and the trend towards microservice architecture in our industry, there is a growing interest in using the best programming languages for the job. Programming has become more popular and accessible than ever, thanks to the development of languages that are tailored for certain application patterns. Established languages like Java, JavaScript, Ruby, Python, and PHP are heavily used, but new languages like Go, Rust, and Julia have also recently burst on the scene. The right choice of programming language can significantly accelerate the time to deploy an application, and improve an application\'s performance and security.','',1,'Angela Lin','acm/microservice security.CSV','acm',''),(717,'A Comprehensive Model for Provenance','2012','1',' Provenance Accountability Security Workflow Systems','Abstract In this paper, we propose a provenance model able to represent the provenance of any data object captured at any abstraction layer and present an abstract schema of the model. The expressive nature of the model enables a wide range of provenance queries. We also illustrate the utility of our model in real world data processing systems.','',1,'Salmin SultanaElisa Bertino','springer/service oriented architecture security.csv','springer','\0'),(718,'Service Composition Management Using Risk Analysis and Tracking','2012','1',' service management risk management service composition','Abstract How to effectively and efficiently monitor, manage, and adapt web services is becoming a significant issue to address. In this paper, we argue that only solving emerging service faults at deployment time or runtime is not enough; on the contrary, we believe that prediction of service faults is equivalently important. We propose a risk-driven service composition management process including four main phases: preparation, planning, monitoring and reaction, and analysis. By applying the proposed approach, risky component services can be removed earlier, and the fault source can be tracked and identified more easily when any failure occurs. We believe the proposed risk-driven approach can effectively and efficiently ensure the robustness of an SOA-based system.','',2,'Shang-Pin MaChing-Lung Yeh','springer/bpel security.csv','springer','\0'),(719,'Automatic Information Flow Analysis of Business Process Models','2012','2','','Abstract We present an automated and efficient approach for the verification of information flow control for business process models. Building on the concept of Place-based Non-Interference, the novelty is that Petri net reachability is employed to detect places in which information leaks occur. We show that the approach is sound and complete, and present its implementation, the Anica tool. Anica employs state of the art model-checking algorithms to test reachability. An extensive evaluation comprising over 550 industrial process models is carried out and shows that information flow analysis of process models can be done in milliseconds.','',2,'Rafael AccorsiAndreas Lehmann','springer/bpel security.csv','springer','\0'),(720,'A Composable, QoS-Aware and Web Services-Based Execution Model for ebXML BPSS Business Transactions','2010','2','B2Bi;WS-BPEL;choreography;ebXML BPSS;orchestration','Adequate IT support for Business-to-Business integration(B2Bi) is indispensable in today\'s globalized world. Agreement among personnel from different enterprises as well as distributed computing issues are major challenges to the automation of B2Bi processes. These challenges can be addressed by applying the choreography language ebXMLBPSS (ebBP) for declaratively specifying B2Bi processes and using Web services and WS-BPEL as dedicated integration technologies. ebBP Business Transactions (BT) are the primary building block of ebBP choreographies and specify the exchange of up to two business documents in a declarative and technology-agnostic way. Composing BTs within choreographies and realization of QoS raise important requirements for the orchestration layer. This paper investigates these requirements and presents a composable, abstract, flexible and QoS-aware execution model that can be implemented using Web Services and BPEL.','2010 6th World Congress on Services',2,'A. Schöenberger; G. Wirtz; C. Huemer; M. Zapletal','ieee/bpel security.csv','ieee','\0'),(721,'LISA 2.0: lightweight internet of things service bus architecture using node centric networking','2016','0',' LISA IoT Interoperability NoTA NCN Mobility','Abstract Internet of things (IoT) technologies are advancing rapidly and a wide range of physical networking alternatives, communication standards and platforms are introduced. However, due to differences in system requirements and resource constraints in devices, there exist variations in these technologies, standards, and platforms. Consequently, application silos are formed. In contrast to the freedom of choice attained by a range of options, the heterogeneity of the technologies is a critical interoperability challenge faced by IoT systems. Moreover, IoT is also limited to address new requirements that arise due to the nature of the majority of smart devices. These requirements, such as mobility and intermittent availability, are hardly satisfied by the current IoT technologies following the end-to-end model inherited from the Internet. This paper introduces a lightweight, distributed, and embedded service bus called LISA which follows a Node Centric Networking architecture. LISA is designed to provide interoperability for resource-constrained devices in IoT. It also enables a natural way of embracing the new IoT requirements, such as mobility and intermittent availability, through node centric networking. LISA provides a simple application programming interface for developers, hiding the variations in platform, protocol or physical network, thus facilitating interoperability in IoT systems. LISA is inspired by network on terminal architecture (NoTA), a service centric open architecture originated by Nokia Research Center. Our extensive experimental results show the efficiency and scalability of LISA in providing a lightweight interoperability for IoT systems.','Journal of Ambient Intelligence and Humanized Computing',1,'Behailu NegashAmir M. RahmaniTomi WesterlundPasi LiljebergHannu Tenhunen','springer/soa security.csv','springer',''),(722,'A Semantic Scoring Approach for Service Offers','2012','0',' Ontologies Quality of Service (QoS) Semantic Web Service Sourcing','Abstract Automating service selection using semantic approaches have been extensively studied in recent years. In fact, given the big number of provider offers, sourcing of the most relevant service to the client intentions is a complex task especially when providers and customers don’t share the same knowledge degree. In particular, differentiating between very similar offers satisfying the same number of client constraints is still a challenging task. In this paper, we present a novel semantic scoring approach that helps clients to select the most appropriate service offer according to their intentions. Our approach detects direct and indirect semantic correspondences between these intentions and the available offers using ontological models. It fairly evaluates these offers and ranks them according to their semantic closeness to the client intentions taking into account both functional and QoS properties. Our ranking is based on a deep examination of provider offers and can distinguish between services that look the same for non expert clients.','',1,'Ikbel GuidaraKaouthar FakhfakhTarak Chaari','springer/service oriented architecture security.csv','springer','\0'),(723,'An extensibility of THEMIS billing system for the cloud computing environment','2012','0','Records;pricing and resource allocation;transaction processing;verification','With the advent and acceptance of cloud computing the ability to record and account for the usage of cloud resources in a convincing and capricious way has become critical for cloud service providers and users alike. The billing process involves receiving billing records from various networks, determining the billing rates associated with the billing records, calculate the cost for each billing record, aggregating this records periodically to generate invoices, sending invoices to the customer, and collecting payments received from the customer. Traditional billing systems are not enough in terms of security capabilities or computational overhead. In this paper, we propose a secure and no obstructive billing system called THEMIS as a remedy for these limitations. The system uses a novel concept of a cloud notary authority for the supervision of billing. Moreover, to provide a falsification-resistive SLA monitoring mechanism, we devised a SLA monitoring module enhanced with a trusted platform module (TPM), called S-Mon. From the perspective of extensibility, THEMIS is moreover applicable to various target services as well to improve the accountability of each service by applying more monitoring techniques to S-Mon. The overall latency of these systems is shorter and the throughput much higher than the Public key Infrastructure.','2012 Fourth International Conference on Advanced Computing (ICoAC)',1,'T. J. Singh; R. Sugumar','ieee/service oriented architecture security.csv','ieee','\0'),(724,'Color tracking with contextual switching: real-time implementation on CPU','2015','1',' Color tracking Covariance matching Mean-shift tracking Real-time processing SSE SIMD optimization','Abstract The paper proposes contributions for mean-shift (MS) and covariance tracking (CT), and makes these two complementary methods cooperate. While MS runs fast and can handle non-rigid objects represented by their color distribution, CT is more time-consuming but achieves a generic tracking by mixing color and texture information. Each method is modified in order to alleviate their intrinsic limitations, and make the tracking adaptive to a changing context. Concerning MS, the colorspace is changed automatically when necessary to enhance the distinction between the object and the background. Regarding CT, the number of features is reduced without loss of accuracy, by using Local Binary Patterns. Finally, their complementary advantages are exploited in a cooperation process, which runs faster than CT alone, and is more robust than MS alone. A comprehensive study is made for their acceleration and their efficient execution on different multi-core CPUs. A speedup of ×2.8 is reached for MS and ×2.6 for CT.','Journal of Real-Time Image Processing',1,'Florence LaguzetAndres RomeroMichèle GouiffèsLionel LacassagneDaniel Etiemble','springer/soa security.csv','springer',''),(725,'A Developer’s View of Application Servers Interoperability','2012','0',' interoperability SOA Web services heterogeneous systems','Abstract The paper describes analysis of application servers interoperability that considers both the available level of integration and the required level of development complexity. Development complexity ranges from simple GUI operations to changes of undocumented features in configuration files. We verify if an integration can be established on a given level of development complexity, rather than verify if it is objectively feasible. The information indicates whether an integration task can be performed by a non-expert developer, which influences development cost and effort. We focus our work on the Web services standards as leading solutions in service integration. We designed a dedicated test environment that covered Web services based application servers, and helper tools for communication monitoring. We present results and conclusions from performed experimental studies. Detailed results were registered in a web system that supplies descriptions covering specification of application servers, used standards, and configuration options.','',1,'Paweł Lech KaczmarekMichał Nowakowski','springer/service oriented architecture security.csv','springer','\0'),(726,'Bringing Common Criteria Certification to Web Services','2013','1','Security Assurance; Security Ceritifcation; Web Services; Common Criteria','Solutions based on service-oriented architecture are gaining popularity. However a wider adoption, especially for business critical functions, is hampered by the trust deficit that exists between consumers and providers, as consumers are shielded from the service architectures and the operation of the service itself. Security certification can be used as a means to bridge this trust deficit. Common Criteria for Information Technology Evaluation (CC) is a widely recognized and used security certification scheme. However, the CC scheme was tailored to provide assurance for traditional software provisioning models and hence cannot be applied to SOA solutions as is. In this paper, we present the limitations of the CC scheme when applied in SOA, the challenges that must be overcome for its adoption and possible directions through which some of those challenges can be met. In particular, we point out that CC scheme should be extended to allow for dynamic evaluation of deployed systems (which includes the operational environment) and for handling assurance of composite services.','2013 IEEE Ninth World Congress on Services',1,'S. P. Kaluvuri; M. Bezzi; Y. Roudier','ieee/service oriented architecture security.csv','ieee','\0'),(727,'ARM Testimonials','2013','0','','Abstract This chapter shows how the IoT ARM is perceived by the IoT community and how the ARM can be placed in relation to existing IoT related standards and research projects. The first sections of this chapter present reverse mappings of existing standards and platforms to the IoT ARM and the last section of this chapter shows a business case evaluation for an example use case in the healthcare domain.','',2,'Edward HoTobias JacobsStefan MeissnerSonja MeyerMiguel-Angel MonjasAlexander Salinas Segura','springer/bpmn security.csv','springer','\0'),(728,'QoS-aware management of monotonic service orchestrations','2014','0',' Web services QoS Algebra Probabilistic models','Abstract We study QoS-aware management of service orchestrations, specifically for orchestrations having a data-dependent workflow. Our study supports multi-dimensional QoS. To capture uncertainty in performance and QoS, we provide support for probabilistic QoS. Under the above assumptions, orchestrations may be non-monotonic with respect to QoS, meaning that strictly improving the QoS of a service may strictly decrease the end-to-end QoS of the orchestration, an embarrassing feature for QoS-aware management. We study monotonicity and provide sufficient conditions for it. We then propose a comprehensive theory and methodology for monotonic orchestrations. Generic QoS composition rules are developed via a QoS Calculus , also capturing best service binding—service discovery, however, is not within the scope of this work. Monotonicity provides the rationale for a contract-based approach to QoS-aware management. Although function and QoS cannot be separated in the design of complex orchestrations, we show that our framework supports separation of concerns by allowing the development of function and QoS separately and then “weaving” them together to derive the QoS-enhanced orchestration. Our approach is implemented on top of the Orc script language for specifying service orchestrations.','Formal Methods in System Design',2,'Albert BenvenisteClaude JardAjay KattepurSidney RosarioJohn A. Thywissen','springer/bpel security.csv','springer',''),(729,'MCMAS: an open-source model checker for the verification of multi-agent systems','2015','0',' Verification Multi-agent systems Model checking','Abstract We present MCMAS, a model checker for the verification of multi-agent systems. MCMAS supports efficient symbolic techniques for the verification of multi-agent systems against specifications representing temporal, epistemic and strategic properties. We present the underlying semantics of the specification language supported and the algorithms implemented in MCMAS, including its fairness and counterexample generation features. We provide a detailed description of the implementation. We illustrate its use by discussing a number of examples and evaluate its performance by comparing it against other model checkers for multi-agent systems on a common case study.','International Journal on Software Tools for Technology Transfer',2,'Alessio LomuscioHongyang QuFranco Raimondi','springer/bpel security.csv','springer',''),(730,'Communication and Collaboration Service Components for Ubiquitous Communication Applications','2013','1','Converged Service Platform;SOA;collaboration;communication;knowledge sharing;service component','Over the past decades we have undergone a series of significant evolution in the computing and communication technologies and have experienced better quality of life. Among these evolutions, the mobile device technology has changed the life-style of people significantly and made new business opportunities. Especially, the widespread use of smartphones accelerates to make ubiquitous communication world. It is needed to apply new technology to the legacy system rapidly and to introduce new applications to the market based on the new functions quickly. This paper describes the Converged Service Platform which provides a playground of applications for application providers, and introduces service components for a ubiquitous communication and collaboration working environment. The Converged Service Platform is designed to support the process of service delivery mechanism which consists of service creation, service execution, and service management based on the Service-Oriented Architecture. The platform focused on supporting communication and collaboration functionalities in the form of service components to make ubiquitous working environment. The service components utilize various communication means such as e-mail, short message, messengers, wired or wireless telephone call and even social network services, and give knowledge sharing functionalities such as file cloud, wiki and etc.','2013 12th IEEE International Conference on Trust, Security and Privacy in Computing and Communications',1,'K. S. Chung; Y. M. Shin','ieee/service oriented architecture security.csv','ieee','\0'),(731,'A DICOM-based 2nd generation molecular imaging data grid implementing the IHE XDS-i integration profile','2012','2',' Preclinical Molecular imaging Distributed data storage Imaging informatics Data grid IHE XDS-i','Abstract Purpose A Molecular Imaging Data Grid (MIDG) was developed to address current informatics challenges in archival, sharing, search, and distribution of preclinical imaging studies between animal imaging facilities and investigator sites. This manuscript presents a 2nd generation MIDG replacing the Globus Toolkit with a new system architecture that implements the IHE XDS-i integration profile. Implementation and evaluation were conducted using a 3-site interdisciplinary test-bed at the University of Southern California. Methods The 2nd generation MIDG design architecture replaces the initial design’s Globus Toolkit with dedicated web services and XML-based messaging for dedicated management and delivery of multi-modality DICOM imaging datasets. The Cross-enterprise Document Sharing for Imaging (XDS-i) integration profile from the field of enterprise radiology informatics was adopted into the MIDG design because streamlined image registration, management, and distribution dataflow are likewise needed in preclinical imaging informatics systems as in enterprise PACS application. Implementation of the MIDG is demonstrated at the University of Southern California Molecular Imaging Center (MIC) and two other sites with specified hardware, software, and network bandwidth. Results Evaluation of the MIDG involves data upload, download, and fault-tolerance testing scenarios using multi-modality animal imaging datasets collected at the USC Molecular Imaging Center. The upload, download, and fault-tolerance tests of the MIDG were performed multiple times using 12 collected animal study datasets. Upload and download times demonstrated reproducibility and improved real-world performance. Fault-tolerance tests showed that automated failover between Grid Node Servers has minimal impact on normal download times. Conclusions Building upon the 1st generation concepts and experiences, the 2nd generation MIDG system improves accessibility of disparate animal-model molecular imaging datasets to users outside a molecular imaging facility’s LAN using a new architecture, dataflow, and dedicated DICOM-based management web services. Productivity and efficiency of preclinical research for translational sciences investigators has been further streamlined for multi-center study data registration, management, and distribution.','International Journal of Computer Assisted Radiology and Surgery',1,'Jasper LeeJianguo ZhangRyan ParkGrant DagliyanBrent LiuH. K. Huang','springer/soa security.csv','springer','\0'),(732,'Business Process Compliance via Security Validation as a Service','2013','1','Business Process Management;Security;Validation','Modern enterprise systems are often process-based, i.e., they allow for the direct execution of business processes that are specified in a high-level language such as BPMN. In this paper, we present a service, called Security Validation as a Service (SVaaS) for validating the compliance of the business processes during design-time. Basically, while modeling a business process the business analyst specifies as well the security and compliance requirements the business process should comply to. By pressing a button, these requirements are validated and the results are presented in a graphical format to the business analysis. At the core of SVaaS lies a rigorous and industrially viable approach in which the security validation business logic is handled server-side (SVaaS Server) in the Cloud, while the client-side user interface that business analysts use is handled by a light-weight SVaaS Connector. As proof-of-concept we created a SVaaS prototype in which the SVaaS Server is deployed on the SAP NetWeaver Cloud and two SVaaS Connectors are built to enable two well-known BPMN tools, SAP NetWeaver BPM and Activiti, to consume SVaaS against industrial relevant business processes.','2013 IEEE Sixth International Conference on Software Testing, Verification and Validation',2,'L. Compagna; P. Guilleminot; A. D. Brucker','ieee/bpmn security.csv','ieee','\0'),(733,'Towards integrated operations for ships','2013','0','integrated operations;mediation;negotiation;service interoperability;wireless connectivity','Maritime customers will benefit greatly from integrated operations between ship and shore. It requires integrating diverse information services within a variety of communication environments, which is a complex task. The common approach to dealing with complex tasks is to use a divide-and-conquer policy and solve problems independently. Since there are mainly two challenges involved - interoperability among heterogeneous applications and connectivity through difficult maritime networks, to handle them separately has become useful. While interoperability and connectivity solutions work well individually, if we put them together in the maritime context, problems arise. We b services based interoperability solution assumes continuous connectivity to the network, which is usually not available in the maritime environment. Though adapting applications to such network conditions will help, existing implementations are mostly specialized and non-generic. Therefore, negotiation between separate solutions is needed: 1) applications must adapt to different connectivity situations but in a service-oriented manner; 2) networks need to mediate the adaptiveness and follow the service-oriented trend. As a concrete example, we suggest to implement the negotiation via incremental deployment from wrapping existing mediation capabilities as We b services towards a possibly service-oriented network architecture, where mediation mechanisms and communication resources are standard services invoked directly by applications.','2013 9th International Wireless Communications and Mobile Computing Conference (IWCMC)',1,'L. Mu; A. Prinz; F. Reichert','ieee/service oriented architecture security.csv','ieee','\0'),(734,'Editorial to the theme issue on model-driven service engineering','2014','0','','','Software & Systems Modeling',2,'Juan Manuel VaraMike PapazoglouIl-Yeol Song','springer/bpmn security.csv','springer',''),(735,'Migratability of BPMN 2.0 Process Instances','2012','1','','Abstract The migration of running process instances allows for a dynamic distribution of individual business processes at runtime. However, a widely-used standardized process description language and an agreed format for the exchange of process instance data are vital for the applicability of such concept. The newly evolved standard of the Business Process Model and Notation (BPMN 2.0) is currently gaining acceptance in many organizations and is supported by a growing number of process engines. In order to leverage BPMN for the dynamic distribution of business processes, this paper presents an analysis on the migratability of running BPMN process instances. The results include a mapping of BPMN 2.0 control flow elements to an existing migration model and a novel migration concept for process instances which contain BPMN-specific elements such as events, pools and user tasks. In addition, the effort for extending a BPMN process engine is evaluated by a prototype implementation based on the open source Activiti process engine .','',2,'Angineh BarkhordarianFrederik DemuthKristof HamannMinh HoangSonja WeichlerSonja Zaplata','springer/bpel security.csv','springer','\0'),(736,'Querying business process model repositories','2014','4',' Business process model Repository Query','Abstract Business process management technology is becoming increasingly popular, resulting in more and more business process models being created. Hence, there is a need for these business process models to be managed effectively. For effective business process model management, being able to efficiently query large amount of business process models is essential. For example, it is preferable to find a similar or related model to customize, rather than building a new one from scratch. This would not only save time, but would also be less error-prone and more coherent with the existing models of the enterprise. Querying large amounts of business process models efficiently is also vital during company amalgamation, in which business process models from multiple companies need to be examined and integrated. This paper provides: an overview of the field of querying business process models; a summary of its literature; and a list of challenges (and some potential solutions) that have yet to be addressed. In particular, we aim to compare the differences between querying business process models and general graph querying. We also discuss literature work from graph querying research that can be used when querying business process models.','World Wide Web',2,'Jianmin WangTao JinRaymond K. WongLijie Wen','springer/bpel security.csv','springer',''),(737,'Robotic disaster recovery efforts with Ad-Hoc deployable cloud computing','2013','','Ad-hoc cloud computing; Autonomous search and rescue; Service-oriented architecture; Soa 3.0; Web service','Autonomous operations of search and rescue (SaR) robots is an ill posed problem, which is complexified by the dynamic disaster recovery environment. In a typical SaR response scenario, responder robots will require different levels of processing capabilities during various parts of the response effort and will need to utilize multiple algorithms. Placing these capabilities onboard the robot is a mediocre solution that precludes algorithm specific performance optimization and results in mediocre performance. Architecture for an ad-hoc, deployable cloud environment suitable for use in a disaster response scenario is presented. Under this model, each service provider is optimized for the task and maintains a database of situation-relevant information. This service-oriented architecture (SOA 3.0) compliant framework also serves as an example of the efficient use of SOA 3.0 in an actual cloud application. © 2013 SPIE.','',1,'Straub J., Marsh R., Mohammad A.F.','scopus/service oriented architecture security.csv','scopus','\0'),(738,'Analysis of End-to-End SOA Security Protocols with Mobile Devices','2013','0','cloud computing;mobile;security;service-oriented architecture;web services','Service Oriented Architecture (SOA) is an architectural style that provides agility to align technical solutions to a modular business Web Services (WS) that are well decoupled from their consumers. This agility is extended to the Cloud model. To achieve a high level of security and a degree of decoupling, SOA encourages the use of standardized transport schemes such as SOAP/HTTP(s) with WS family of standards specifications (commonly referred to as WS-* (WS-star)) to ease the interoperability complexity and security concerns in enterprise networks, which have medium/high bandwidth and reliable/wired networks. However, these protocol standards are ill suited for mobile devices due to their limited computational capabilities, low bandwidth, and intermittent connectivity. In this paper, we present an analysis of WS-* standards, classifying and discussing their inter-dependencies to provide a basis for determining the limitation of mobile device use in SOA and for establishing an architectural consideration baseline for selecting appropriate security mechanisms.','2013 IEEE 14th International Conference on Mobile Data Management',1,'N. Ahmed; M. Linderman; R. Gamble; B. Bahargava','ieee/service oriented architecture security.csv','ieee','\0'),(739,'GEMBus Based Services Composition Platform for Cloud PaaS','2012','1',' Cloud Platform as a Service Services Composition Composable Services Architecture GEMBus (GEANT Multi-domain Bus) Enterprise Service Bus (ESB)','Abstract Cloud Platform as a Service (PaaS) provides an environment for creating and deploying applications using one of popular development platforms. This paper presents a practical solution for building a service composition platform based on the GEMBus (GEANT Multi-domain Bus) that extends the industry accepted Enterprise Service Bus (ESB) platform with automated services composition functionality and core services to support federated network access to distributed applications and resources, primarily targeted for GEANT research and academic community. The ESB is widely used as a platform for SOA and Web Services based integrated enterprise solutions. However in existing practices ESB design is still based on manual development, configuration and integration. GEMBus with its extended functionality and orientation on distributed resources integration can be considered as a logical choice for creating cloud PaaS services composition and provisioning platform. The paper describes Composable Services Architecture that creates a basis for automated services composition and lifecycle management and explains how this can be implemented with GEMBus. The paper describes the combined GEMBus/ESB testbed and provides an example of the simple services composition.','',2,'Yuri DemchenkoCanh NgoPedro Martínez-JuliaElena TorroglosaMary GrammatikouJordi JofreSteluta GheorghiuJoan A. Garcia-EspinAntonio D. Perez-MoralesCees de Laat','springer/bpel security.csv','springer','\0'),(740,'Using Linked Data for Modeling Secure Distributed Web Applications and Services','2014','0',' Modeling Security Identity Protection Linked Data WebID','Abstract The increasing service orientation of today’s Web applications enables swift reaction on new customer needs by adjusting, extending or replacing parts of the Web application’s architecture. While this allows for an agile response to change, it is inappropriate when it comes to security. Security needs to be treated as a first thought throughout the entire lifecycle of a Web application. The recently proposed WAMplus approach does not only offer an expressive, extensible and easy-to-use way to model a Web application architecture, but also puts a strong emphasis on the security. In this paper we present an exemplary implementation of WAMplus using the Sociddea WebID identity management system known from prior work. There, we show how WebID is used to identify, describe and authenticate Web applications and services while taking their protection through WAC and fine-grained data filters into account.','',1,'Falko BrauneStefan WildMartin Gaedke','springer/service oriented architecture security.csv','springer','\0'),(741,'The Impact of Culture Differences on Cloud Computing Adoption','2014','1',' Cloud Computing National Culture Acceptance ERP','Abstract To cut cost, while increasing competitiveness, more and more small and medium-sized enterprises (SMEs) are considering cloud computing technology for supporting their business processes.However, initial cost, possible long term cost, security, accessibility and transformation issues are concerned by the organizations.  By adopting LEADing Practices and Hofstede [16] national culture dimensions, this study provides substantive conclusions about the transformation effects of national culture dimensions on cloud computing acceptance in organizations.','',1,'Fan ZhaoHans-Jürgen ScheruhnMark von Rosing','springer/service oriented architecture security.csv','springer','\0'),(742,'Semantic text mining support for lignocellulose research','2012','3','','Abstract Background Biofuels produced from biomass are considered to be promising sustainable alternatives to fossil fuels. The conversion of lignocellulose into fermentable sugars for biofuels production requires the use of enzyme cocktails that can efficiently and economically hydrolyze lignocellulosic biomass. As many fungi naturally break down lignocellulose, the identification and characterization of the enzymes involved is a key challenge in the research and development of biomass-derived products and fuels. One approach to meeting this challenge is to mine the rapidly-expanding repertoire of microbial genomes for enzymes with the appropriate catalytic properties. Results Semantic technologies, including natural language processing, ontologies, semantic Web services and Web-based collaboration tools, promise to support users in handling complex data, thereby facilitating knowledge-intensive tasks. An ongoing challenge is to select the appropriate technologies and combine them in a coherent system that brings measurable improvements to the users. We present our ongoing development of a semantic infrastructure in support of genomics-based lignocellulose research. Part of this effort is the automated curation of knowledge from information on fungal enzymes that is available in the literature and genome resources. Conclusions Working closely with fungal biology researchers who manually curate the existing literature, we developed ontological natural language processing pipelines integrated in a Web-based interface to assist them in two main tasks: mining the literature for relevant knowledge, and at the same time providing rich and semantically linked information.','BMC Medical Informatics and Decision Making',1,'Marie-Jean MeursCaitlin MurphyIngo MorgensternGreg ButlerJustin PowlowskiAdrian TsangRené Witte','springer/service oriented architecture security.csv','springer','\0'),(743,'UDP4US: Universal Device Pipe for Ubiquitous Services','2015','','Embedded Systems;Interoperability;Middleware','The growing evolution in the development of embedded systems has raised a numerous amount of distributed applications. Such applications have a strong tendency to integrate various types of existing devices. This trend is aligned with the ideas of ubiquitous computing, which is expected to turn devices increasingly independent of people, making the relationship between technologies more natural and intuitive. The different communication rotocols used by these devices target a specific segment, such as multimedia sharing, electronic security, home automation and healthcare. However, this variety increases the complexity of device integration and represents an obstacle to their development. This paper presents an architecture capable of providing compatible services that can be requested using heterogeneous protocols and is based on the fundamentals of the service-oriented architecture. The central component of this architecture is a middleware capable of abstracting requests of different protocols, facilitating dynamic composition of services distributed in heterogeneous LAN. The proposed architecture is detailed in this article. In addition, several experiments were conducted to evaluate the performance of the proposed middleware, in pursuit of their boundaries and aiming to validate the adopted technologies. As far as we know, our work is the first one that provides interoperation between the DLNA and DPWS technologies.','2015 Brazilian Symposium on Computing Systems Engineering (SBESC)',1,'T. Z. Felisberto; E. D. Tramontin; F. d. C. d. Santos; A. S. Morales; F. Siqueira; G. M. d. Ara��jo','ieee/service oriented architecture security.csv','ieee',''),(744,'Building Web services middleware with predictable execution times','2012','2',' Web services middleware predictability of execution real-time systems earliest deadline first scheduling','Abstract Predictability of execution has seldom been considered important in the design of Web services middleware. However, with the paradigm shift brought by cloud computing and with offerings of Platforms and Infrastructure as services, execution level predictability is mandating an increased importance. Existing Web services middleware are optimised for throughput with unconditional acceptance of requests and execution in a best-effort manner. While achieving perceived levels of throughput, they also result in highly unpredictable execution times. This paper presents a generic set of guidelines, algorithms and software engineering techniques that enable service execution to complete within a given deadline. The proposed algorithms accept requests for execution based on their laxity and executes them to meet requested deadlines. An introduced admission control mechanism results in a large range of laxities, enabling more requests to be scheduled together by phasing out their execution. Specialised development libraries and operating systems empower them with increased control over execution. Two widely used Web services middleware products were enhanced using these techniques. The two systems are compared with their unmodified versions to measure the predictability gain achieved. Empirical evidence confirms that the enhancements made enable these systems to achieve more than 90% of the deadlines under any type of traffic, while the unmodified versions achieve less than 10% of the deadlines in high traffic conditions. Predictability of execution achieved through these techniques, would open up new application areas such as industrial control systems, avionics, robotics and financial trading systems to the use of Web services as a middleware platform.','World Wide Web',1,'Vidura Gamini AbhayaZahir TariPeter Bertok','springer/soa security.csv','springer','\0'),(745,'R&D challenges and solutions for highly complex distributed systems: a middleware perspective','2012','4',' Highly complex distributed systems Middleware Quality of service','Abstract Highly complex distributed systems (HCDSs) are characterized by a large number of mission-critical, heterogeneous inter-dependent subsystems executing concurrently with diverse—often conflicting—quality-of-service (QoS) requirements. Creating, integrating, and assuring these properties in HCDSs is hard and expecting application developers to perform these activities without significant support is unrealistic. As a result, the computing and communication foundation for HCDSs is increasingly based on middleware. This article examines key R&D challenges that impede the ability of researchers and developers to manage HCDS software complexity. For each challenge that must be addressed to support HCDSs, the article surveys the state-of-the-art middleware solutions to these challenges and describes open issues and promising future research directions.','Journal of Internet Services and Applications',1,'Jules WhiteBrian DoughertyRichard SchantzDouglas C. SchmidtAdam PorterAngelo Corsaro','springer/soa security.csv','springer','\0'),(746,'Modelling Sensible Business Processes','2015','0',' Sensible processes Process stories Business process modelling Business process management','Abstract In this paper we develop the concept of sensible business process, which appears in opposition to the more traditional concept of mechanistic business process that is currently supported by most business process modelling languages and tools. A sensible business process is founded on a rich model and affords predominant human control. Having developed a modelling tool supporting this concept, in this paper we report on a set of experiments with the tool. The obtained results show that sensible business processes (1) capture richer information about business processes; (2) contribute to knowledge sharing in organisations; and (3) support better process models.','',2,'David SimõesNguyen Hoang ThuanLalitha JonnavithulaPedro Antunes','springer/bpel security.csv','springer',''),(747,'Architecting Interoperable Privacy within User-Centric Federated Digital Identity Systems: Overview of a Service-Oriented Implementation Framework','2012','1','Digital identity; Implementation framework; Privacy; SOA','With the emergence of service-oriented economy, distributed systems and cloud computing, thus the development of service oriented architecture and the adoption open standards become a mean to assure interoperability. Privacy could play a key role for digital identity protection and security. We suggest an implementation framework, Privacy-as-a-Set-of-Services (PaaSS) framework, which could help information system\'s security team to implement digital identity privacy requirements into a set of services. The framework relays on the idea that digital identity privacy business interoperability should be taken into consideration from the outset of the project in order to be able to provide technical interoperability. Business interoperability is a set of requirements that are drawn from global, domestic and business-specific privacy policies, however, technical interoperability is offered through the adoption of open standards and implementation of a set of services and service\'s interfaces that could accommodate SOA. The framework is in accordance of model-driven architecture (MDA) approach and it is composed of five layers and three mapping gateways. Inter- & intra-layers iterations are consequence of SOA delivery lifecycle and strategies alignment. © Springer-Verlag Berlin Heidelberg 2012.','',1,'Ayed G.B., Ghernaouti-Hélie S.','scopus/service oriented architecture security.csv','scopus','\0'),(748,'Agile Service Oriented Architecture with Adaptive Processes Using Semantically Annotated Workflow Templates','2010','0','BPEL;dynamic binding;run time adaptability','Although WS-BPEL is a widely used language for modeling executable business processes in service oriented architectures it is almost impossible to dynamically bind services at runtime taking complex constraints and optimisation goals into account. The approach presented in this paper uses semantically annotated workflow templates and extensions to introduce adaptability which enables agile service oriented architectures. The technological solution will be validated in a critical infrastructure environment where resilience and security play an important role.','Web Services (ICWS), 2010 IEEE International Conference on',2,'W. Halb; H. Zeiner; B. Jandl; H. Lernbeiß; C. Derler','ieee/bpel security.csv','ieee','\0'),(749,'Reengineering component-based software systems with Archimetrix','2014','0',' Reengineering Reverse engineering Software architecture Component-based software systems Architecture reconstruction Design deficiencies Deficiency detection Code metrics CoCoME','Abstract Many software development, planning, or analysis tasks require an up-to-date software architecture documentation. However, this documentation is often outdated, unavailable, or at least not available as a formal model which analysis tools could use. Reverse engineering methods try to fill this gap. However, as they process the system’s source code, they are easily misled by design deficiencies (e.g., violations of component encapsulation) which leaked into the code during the system’s evolution. Despite the high impact of design deficiencies on the quality of the resulting software architecture models, none of the surveyed related works is able to cope with them during the reverse engineering process. Therefore, we have developed the Archimetrix approach which semiautomatically recovers the system’s concrete architecture in a formal model while simultaneously detecting and removing design deficiencies. We have validated Archimetrix on a case study system and two implementation variants of the CoCoME benchmark system. Results show that the removal of relevant design deficiencies leads to an architecture model which more closely matches the system’s conceptual architecture.','Software & Systems Modeling',1,'Markus von DettenMarie Christin PlateniusSteffen Becker','springer/service oriented architecture security.csv','springer','\0'),(750,'Using Bayesian networks for highly available cloud-based web applications','2015','0',' Model-driven engineering Dependability evaluation Service dependability Cloud resource allocation','Abstract Bayesian networks have demonstrated their capability in several applications spanning from reasoning under uncertainty in artificial intelligence to dependability modelling and analysis. This paper focuses on the use of this language for allocating cloud resources to maximise service dependability. This objective is accomplished by the definition of a model-driven approach able to guide the software engineering to define a cloud infrastructure (applications, services, virtual and concrete resources) using a semi-automated process. This process exploits both high-level languages such as UML as well as Bayesian networks. Using all their features (backward analysis, ease of usage, low analysis time), Bayesian networks are used in this process as a driver for the optimization, learning and estimation phases. The paper discusses all the issues that the application of Bayesian networks in the proposed process arises.','Journal of Reliable Intelligent Environments',2,'Stefano Marrone','springer/bpel security.csv','springer',''),(751,'Neural Network Solution for Intelligent Service Level Agreement in E-Health','2013','0',' Service Oriented Architecture Service Level Agreements e-Health a QoS and Neural Network','Abstract In the next twenty years, service-oriented computing will play an important role in sharing the industry and the way business is conducted and services are delivered and managed. This paradigm is expected to have major impact on service economy; the service sector includes health services (e-health), financial services, government services, etc.With increased dependencies on Information and Communications Technology (ICT) in their realization, major advances are required in user (Quality of Services) QoS based allocation of resources to competing applications in a shared environment provisioning though secure virtual machines. In this paper, we pointed in addressing the problem of enabling Service Level Agreement (SLA) oriented resources allocation in data centers to satisfy competing applications demand for computing services. e-Health offers a QoS Health Report designed to compare performance variables to QoS parameters and indicate when a threshold has been crossed. e-Health graphs relevant performance metrics on the same axes as thresholds indicative of SLAs or equivalent requirements. We suggest a methodology which helps in SLA evaluation and comparison. The methodology was found on the adoption of policies both for service behavior and SLA description and on the definition of a metric function for evaluation and comparison of policies. In addition, this paper contributes a new philosophy to evaluate the agreements between user and service provider by monitoring the measurable and immeasurable qualities to extract the decision by using artificial neural networks (ANN).','',1,'Nada Al SalamiSarmad Al Aloussi','springer/service oriented architecture security.csv','springer','\0'),(752,'Network Visualization Survey','2015','0',' Graph Graph theory Data flow Visualization','Abstract This paper compares modern approaches to draw complex graph data that create create compelling visualizations. Graphs are used to represent more and more complex systems that are used across various scientific domains. Some graph visualizations are used to model network topologies or service architectures in information service fields, model genomes in biomedicine or complex molecules in chemistry. Visualizations of graph data play important role in interpreting the meaning of graphed data. The adage “A picture is worth a thousand words” generally refers to the notion that a complex idea can be conveyed with just a single still image and that is actually the main reason for creating visualisations of any kind. Graph drawings from all domains follow the same rules covered by the graph theory. This work outlines different layout strategies used for drawing graph data. Tested graph drawing layouts are compared by standard quality measures to determine their suitability for various areas of usage.','',1,'Ales KomarekJakub PavlikVladimir Sobeslav','springer/service oriented architecture security.csv','springer',''),(753,'How to adapt applications for the Cloud environment','2013','35',' Cloud migration Application adaptation Cloud-enabled applications Data Layer Business Layer Migration types Mathematics Subject Classification 68M01 68P99','Abstract The migration of existing applications to the Cloud requires adapting them to a new computing paradigm. Existing works have focused on migrating the whole application stack by means of virtualization and deployment on the Cloud, delegating the required adaptation effort to the level of resource management. With the proliferation of Cloud services allowing for more flexibility and better control over the application migration, the migration of individual application layers, or even individual architectural components to the Cloud, becomes possible. Towards this goal, in this work we focus on the challenges and solutions for each layer when migrating different parts of the application to the Cloud. We categorize different migration types and identify the potential impact and adaptation needs for each of these types on the application layers based on an exhaustive survey of the State of the Art. We also investigate various cross-cutting concerns that need to be considered for the migration of the application, and position them with respect to the identified migration types. Finally, we present some of the open research issues in the field and position our future work targeting these research questions.','Computing',2,'Vasilios AndrikopoulosTobias BinzFrank LeymannSteve Strauch','springer/bpel security.csv','springer',''),(754,'Coordinating the web of services for a smart home','2013','9','Internet of things; Service composition; Service-oriented architecture','Domotics, concerned with the realization of intelligent home environments, is a novel field which can highly benefit from solutions inspired by service-oriented principles to enhance the convenience and security of modern home residents. In this work, we present an architecture for a smart home, starting from the lower device interconnectivity level up to the higher application layers that undertake the load of complex functionalities and provide a number of services to end-users. We claim that in order for smart homes to exhibit a genuinely intelligent behavior, the ability to compute compositions of individual devices automatically and dynamically is paramount. To this end, we incorporate into the architecture a composition component that employs artificial intelligence domain-independent planning to generate compositions at runtime, in a constantly evolving environment. We have implemented a fully working prototype that realizes such an architecture, and have evaluated it both in terms of performance as well as from the end-user point of view. The results of the evaluation show that the service-oriented architectural design and the support for dynamic compositions is quite efficient from the technical point of view, and that the system succeeds in satisfying the expectations and objectives of the users. © 2013 ACM.','',1,'Kaldeli E., Warriach E.U., Lazovik A., Aiello M.','scopus/service oriented architecture security.csv','scopus','\0'),(755,'Towards Trustworthy Composite Service Through Business Process Model Verification','2010','0','BPMN;model verification;time Petri nets;time property;trustworthy composite service','The Business Process Modeling Notation (BPMN) is a standard for modeling business processes in the early phases of systems development. Model verification is an important means to guarantee the trustiness of composite services. The verification of model, especially the model with strict time constraints, is a challenge in the field of trust composite services. Whether a model is trustworthy depends not only on the model structure but also on quantitative properties such as time properties. In this paper, we propose a mapping from BPMN to time Petri nets, and use the verification techniques on the basis. The algorithm we present can be used to check the model structure and the time choreography.','Ubiquitous Intelligence & Computing and 7th International Conference on Autonomic & Trusted Computing (UIC/ATC), 2010 7th International Conference on',2,'W. Huai; X. Liu; H. Sun','ieee/bpmn security.csv','ieee','\0'),(756,'Intelligence in Interoperability with AIDA','2012','3',' Semantic Interoperability Ambient Intelligence Electronic Health Record','Abstract Healthcare systems have to be addressed in terms of a wide variety of heterogeneous, distributed and ubiquitous systems speaking different languages, integrating medical equipments and customized by different entities, which in turn were set by different people aiming at different goals. Demands of information within the healthcare sector range from clinically valuable patient-specific information to a variety of aggregation levels for follow-up and statistical and/or quantifiable reporting. The main goal is to gathering this information and present it in a readable way to physicians. In this work we show how to achieve interoperability in healthcare institutions using AIDA, an interoperability platform developed by researchers from the University of Minho and being used in some major Portuguese hospitals.','',1,'Hugo PeixotoManuel SantosAntónio AbelhaJosé Machado','springer/service oriented architecture security.csv','springer','\0'),(757,'Modeling Access Control Transactions in Enterprise Architecture','2014','2','','Enterprise architecture (EA) aims to provide management with appropriate indicators and controls to steer and model service-oriented enterprises. However, the management of EA models change is a challenging task due to complex dependencies when dealing with security constraints such as access control. In this paper, we motivate the use of an access control model in EA. More specifically, we present the role-based access control (RBAC) standard as a mean to model access control transactions in EA. To that end, we present (i) how the concepts of RBAC can be modeled into the Archi Mate enterprise architecture modeling language, and (ii) how RBAC\'s enforcementis supported with the DEMO enterprise modeling methodology via the business transaction concept. These attempts will help us to identify the conceptual link between RBAC, Archi Mate, and DEMO meta models in order to create a consistent lightweight model for access control in EA. Finally, we illustrate the application of the proposed approach through the handling of an e-Government scenario.','2014 IEEE 16th Conference on Business Informatics',1,'K. Gaaloul; S. Guerreiro; H. A. Proper','ieee/service oriented architecture security.csv','ieee','\0'),(758,'Investigation on runtime partitioning of elastic mobile applications for mobile cloud computing','2014','16',' Mobile cloud computing Elastic applications Distributed systems Application offloading','Abstract The latest developments in mobile computing technology have increased the computing capabilities of smartphones in terms of storage capacity, features support such as multimodal connectivity, and support for customized user applications. Mobile devices are, however, still intrinsically limited by low bandwidth, computing power, and battery lifetime. Therefore, the computing power of computational clouds is tapped on demand basis for mitigating resources limitations in mobile devices. Mobile cloud computing (MCC) is believed to be able to leverage cloud application processing services for alleviating the computing limitations of smartphones. In MCC, application offloading is implemented as a significant software level solution for sharing the application processing load of smartphones. The challenging aspect of application offloading frameworks is the resources intensive mechanism of runtime profiling and partitioning of elastic mobile applications, which involves additional computing resources utilization on Smart Mobile Devices (SMDs). This paper investigates the overhead of runtime application partitioning on SMD by analyzing additional resources utilization on SMD in the mechanism of runtime application profiling and partitioning. We evaluate the mechanism of runtime application partitioning on SMDs in the SmartSim simulation environment and validate the overhead of runtime application profiling by running prototype application in the real mobile computing environment. Empirical results indicate that additional computing resources are utilized in runtime application profiling and partitioning. Hence, lightweight alternatives with optimal distributed deployment and management mechanism are mandatory for accessing application processing services of computational clouds.','The Journal of Supercomputing',1,'Muhammad ShirazEjaz AhmedAbdullah GaniQi Han','springer/soa security.csv','springer',''),(759,'Policy modeling and compliance verification in enterprise software systems: A survey','2012','0','Compliance Analysis;Policy Modeling;Service Oriented Systems;Software Engineering','During the past few years we are witnessing a paradigm shift in enterprise computing, from the classic host-based service-oriented architecture pattern, to a more complex or elastic computing pattern that facilitates the provision of on-demand computing resources. This new computing paradigm offers numerous advantages but also, poses significant challenges. Advantages are related to the flexibility service providers have on deploying virtual resources on as-needed-basis, providing thus opportunities for large scale computing capabilities, while limiting the total cost of ownership. However, these benefits come at the cost of the user partially losing control over the deployed resources and the cost managing platforms and applications that are now provisioned at an unprecedented rate and interaction complexity. In order to address the above challenges, a service management and service assurance framework is required, whereby policies should be formally modeled, and consequently be verified against runtime system behavior models. In this paper, we survey a number of policy modeling and policy compliance verification techniques and we propose a corresponding basic taxonomy for these.','2012 IEEE 6th International Workshop on the Maintenance and Evolution of Service-Oriented and Cloud-Based Systems (MESOCA)',1,'G. Chatzikonstantinou; K. Kontogiannis','ieee/service oriented architecture security.csv','ieee','\0'),(760,'Medical equipment maintenance support with service-oriented multi-agent services','2012','','Data mining; Multi-agent systems; Ontologies; Service oriented architectures','Service oriented architectures (SOA) have emerged as an approach to handle the complexity of enterprise interoperability. Recently, multi-agent systems have been promoted as a technique to deal with cooperation issues involved in SOA. This cooperation is particularly important in several application domains, in which different companies are involved in a concrete service deployment. Agents, among other issues, offer the possibility to decide, if more than one option is available, providing flexibility and robustness. In this paper, we describe the agent-based cooperation process we have followed to enable partner\'s cooperation in an equipment maintenance workflow. The use of ontologies and relationships with standards is highlighted. The approach is illustrated in an hospital scenario considered in the AIMES project. © Springer-Verlag Berlin Heidelberg 2012.','',1,'Lopez B., Pla A., Daroca D., Collantes L., Lozano S., Meléndez J.','scopus/service oriented architecture security.csv','scopus','\0'),(761,'Proposition of secure service oriented product line','2015','','secure application engineering; secure domain engineerin; Service Oriented Product Line; Software security','SOPL approach (Service Oriented Product Line) can be used in various domains where SOA based applications are needed such as e/m government, e-business, e-learning and so on. This approach is a combination of Service-Oriented Architecture (SOA) and product line. SOA offers a solution to problems of integration and interoperability between services. But the SOA approach doesn\'t follow a specific reuse approach. In Product Line approach, reuse is systematic with two phases domain engineering and application engineering and offers mechanisms for the management of the variability. Ensure secure services are vital in order to establish trust between users and service providers. In this context, we aim to extend SOPL phases with security activities in order to produce secure service-oriented applications and for such activity we indicate means (methods, tools, etc.) that that allow us to perform security activities that we have introduced. In this work, we propose Secure SOPL: a development process that integrates security in the SOPL process. The originality of our work is on the integration of security in SOPL. Notes that existing works are either oriented to the integration of security in classical development processes or they are oriented enrichment of SPL by security activities but not treat the SOPL approach. © 2015 IEEE.','',1,'Achour I., Labed L., Ben Ghezala H.','scopus/service oriented architecture security.csv','scopus',''),(762,'A case study on consistency management of business and IT process models in banking','2014','1',' Business processes Consistency management Process refinement patterns Empirical study','Abstract Organizations that adopt process modeling often maintain several co-existing models of the same business process. These models target different abstraction levels and stakeholder perspectives. Maintaining consistency among these models has become a major challenge for such organizations. Although several academic works have discussed this challenge, little empirical investigation exists on how people perform process model consistency management in practice. This paper aims to address this lack by presenting an in-depth empirical study of a business-driven engineering process deployed at a large company in the banking sector. We analyzed more than 70 business process models developed by the company, including their change history, with over 1,000 change requests. We also interviewed 9 business and IT practitioners and surveyed 23 such practitioners to understand concrete difficulties in consistency management, the rationales for the specification-to-implementation refinements found in the models, strategies that the practitioners use to detect and fix inconsistencies, and how tools could help with these tasks. Our contribution is a set of eight empirical findings, some of which confirm or contradict previous works on process model consistency management found in the literature. The findings provide empirical evidence of (1) how business process models are created and maintained, including a set of recurrent patterns used to refine business-level process specifications into IT-level models; (2) what types of inconsistencies occur; how they are introduced; and what problems they cause; and (3) what stakeholders expect from tools to support consistency management.','Software & Systems Modeling',2,'Moisés Castelo BrancoYingfei XiongKrzysztof CzarneckiJochen KüsterHagen Völzer','springer/bpel security.csv','springer',''),(763,'Experiences by Using AFFINE for Building Collaborative Applications for Online Communities','2013','1',' Agile Software Process Nonfunctional Requirements Engineering Security and Usability User Experience Scrum AFFINE','Abstract Continuous problems and deficits in developing complex and ever-changing (software) systems led to agile methods, e.g. Scrum. Nevertheless, the problem of considering a plethora of different functional as well as nonfunctional requirements (N/FRs) remains unsolved and gains in importance when engineering state-of-the-art software. The current tide of approaches aims at handling every single NFR by an individual process integrated into Scrum, yielding a process complexity which can not be handled properly. Scrum-based AFFINE was designed explicitly to provide an alternative solution to over-complex design- and development-processes and still considering all kinds of NFRs early enough in the process. In this paper, we discuss collected findings by using AFFINE in various projects dealing with the development of software for user-centered online communities towards some evidence of its suitability.','',1,'Mohamed BourimiDogan Kesdogan','springer/service oriented architecture security.csv','springer','\0'),(764,'Data-Aware Service Choreographies Through Transparent Data Exchange','2016','0',' Service choreographies Transparent data exchange Decentralized data flow Data flow optimization','Abstract Our focus in this paper is on enabling the decoupling of data flow, data exchange and management from the control flow in service compositions and choreographies through novel middleware abstractions and realization. This allows us to perform the data flow of choreographies in a peer-to-peer fashion decoupled from their control flow. Our work is motivated by the increasing importance and business value of data in the fields of business process management, scientific workflows and the Internet of Things, all of which profiting from the recent advances in data science and Big data. Our approach comprises an application life cycle that inherently introduces data exchange and management as a first-class citizen and defines the functions and artifacts necessary for enabling transparent data exchange. Moreover, we present an architecture of the supporting system that contains the Transparent Data Exchange middleware, which enables the data exchange and management on behalf of service choreographies and provides methods for the optimization of the data exchange during their execution.','',2,'Michael HahnDimka KarastoyanovaFrank Leymann','springer/bpel security.csv','springer',''); +INSERT INTO `articles` VALUES (765,'How secure is deterministic encryption?','2015','','','This paper presents three curious findings about deterministic public-key encryption (D-PKE) that further our understanding of its security, in particular because of the contrast with standard, randomized public-key encryption (R-PKE): • It would appear to be a triviality, for any primitive, that security in the standard model implies security in the random-oracle model, and it is certainly true, and easily proven, for R-PKE. For D-PKE it is not clear and depends on details of the definition. In particular we can show it in the non-uniform case but not in the uniform case. • The power of selective-opening attacks (SOA) comes from an adversary’s ability, upon corrupting a sender, to learn not just the message but also the coins used for encryption. For R-PKE, security is achievable. For D-PKE, where there are no coins, one’s first impression may be that SOAs are vacuous and security should be easily achievable. We show instead that SOA-security is impossible, meaning no D-PKE scheme can achieve it. • For R-PKE, single-user security implies multi-user security, but we show that there are D-PKE schemes secure for a single user and insecure with two users. © International Association for Cryptologic Research 2015.','',1,'Bellare M., Dowsley R., Keelveedhi S.','scopus/soa security.csv','scopus',''),(766,'Towards a construction of an intelligent business process based on cloud services and driven by degree of similarity and QoS','2016','1',' Business process construction Knowledge and competence management Similarity degrees Cloud services Quality of service Agent-based cloud services','Abstract Knowledge and competence management in companies focus on resources allocation to business activities, knowledge management approaches promise a positive impact on cost structures. Moreover, with cloud computing and multi-agent systems, we can have a positive impact on business process construction. In fact, cloud computing gives us the ability to perceive resources such as unlimited computer resources. Meanwhile, multi-agent systems provide some degree of independence to achieve specific goals. Nowadays, on the web we can find a significant number of services that provide the same functionality. Hence, business process construction by reusing these services has become a challenging problem. The solution proposed in this paper, can be considerate as an enterprise solution to construct a business process using some competence and knowledge management aspects. Furthermore, the solution is based on cloud computing and agents to discover similar services and classify services according to their similarity degrees and their quality of services.','Information Systems Frontiers',2,'Mohammed Nassim LacheheubPr. Ramdane Maamri','springer/bpel security.csv','springer',''),(767,'Investigate on distribution and scatter of surface residual stress in ultra-high speed grinding','2014','6',' Ultra-high-speed grinding Thermomechanical coupling Scatter Residual stress Fatigue life','Abstract The purpose of this study is to investigate the residual stress induced by ultra-high-speed grinding of difficult-to-machine materials considering the thermomechanical coupling effect that is generated due to the friction between diamond tool and workpiece’s surface. A three-dimensional finite element method taking the rotational motion of tool into account is proposed. The simulation consists of three operations including loading, unloading, and cooling. The influences of different grinding conditions (grinding speed and grinding depth) on the residual stress field are analyzed. Results show that the main grinding force comes from normal rather than tangential direction due to the tool’s negative rake angle and their ratio is in the range of 1.2 to 1.7. The residual stress state on the finished surface is either tensile or compressive depending on various grinding condition; even both states may exist simultaneously. Further study shows that the ultra-high speed grinding can obtain lower surface residual tensile stress comparing with the high-speed grinding. Besides, a larger grinding depth is not advantage for obtaining a better machined quality in subsurface layer as the tensile maximum principal stress is also larger. Finally, the effects of different grinding conditions on residual stress scatters are analyzed utilizing mathematical statistic method. Results show that both smaller grinding depth and higher grinding speed are beneficial to achieve a better consistency of residual stress.','The International Journal of Advanced Manufacturing Technology',1,'Jianbin ChenQihong FangLiangchi Zhang','springer/soa security.csv','springer','\0'),(768,'Dynamic policies for supporting quality of service in service-oriented architecture','2010','0','BPEL;SOA;Security Policy;Web Services;Workflow','This paper describes how to simultaneously support both dynamic policies and separation of concerns when developing an SOA application. We propose the DPSL (dynamic policy specification language) for managing and controlling the QoS according to the dynamic behavior of the workflow in SOA. The operation model is compatible with existing SOA standards, such as the WSDL, WS-Policy, WS-SecurityPolicy, and the BPEL. The implementation and experimental results demonstrate the feasibility of the proposed architecture.','Electronics and Information Engineering (ICEIE), 2010 International Conference On',2,'C. Wu-Lee; G. H. Hwang','ieee/bpel security.csv','ieee','\0'),(769,'Provisioning of Inter-Domain QoS-Aware Services','2015','0',' service provisioning inter-domain QoS service composition','Abstract Cooperation among service providers, network providers, and access providers in the Internet allows the creation of new services to offer to customers that are in other domains, thus increasing revenue. However, the Internet heterogeneous environment, where each provider has its own policies, infrastructure and business goals, hinders the deployment of more advanced communication services. This paper presents a Quality of Service (QoS) for Inter-Domain Services (QIDS) model that allows inter-domain QoS-aware services to be defined, configured, and adapted in a dynamic and on-demand fashion, among service providers. This is accomplished by: 1) the use of a common communication channel (business layer) where service providers publish and search for services, and interact with each other to contract and manage these services; 2) the templates to specify the business and technical characteristics of the services; 3) the automatic composition of services using service elements (smaller services) according to performance and service-specific QoS parameters; and 4) the creation and enforcement of configuration rules for the underlying infrastructure. A prototype was implemented to validate QIDS and performance tests were conducted on an inter-domain Border Gateway Protocol (BGP)/Multiprotocol Label Switching (MPLS) Virtual Private Network (VPN) scenario.','Journal of Computer Science and Technology',1,'Fernando MatosAlexandre MatosPaulo SimõesEdmundo Monteiro','springer/soa security.csv','springer',''),(770,'Building a Flexible Service Architecture for User Controlled Hybrid Clouds','2012','1','Cloud Computing;Federated Cloud;Information Dispersal;Secure Cloud Storage','Virtualization and broadband Internet connections enabled existing technologies to form up under the nebulous term cloud. Cloud computing promises near infinite scalability and cost reduction by pay per use agreements. However for data outsourced to existing cloud solutions - which can be considered synonymous with unknown locations and potentially hostile environments - the security protection objectives can not be guaranteed. We present an approach that enables users to benefit from cloud computing and retain data sovereignty.','Availability, Reliability and Security (ARES), 2012 Seventh International Conference on',1,'A. Strunk; M. Mosch; S. Groß; Y. Thoß; A. Schill','ieee/service oriented architecture security.csv','ieee','\0'),(771,'Test Case Reduction Technique for BPEL-based Testing','2008','2','Business Process Execution Language for Web Services;Reduction Technique;Test Suite','Testing is necessary for evaluating the functional correctness, performance and reliability. The BPEL-based Web service composition having a large number of input parameters and the assigned values of individual parameters, the number of corresponding combination of input parameters is huge. A method needs to be established in order to limit the number of test cases and reduce space- and time-consuming. A reduction technique based on pair-wise combination of input parameters is presented in this paper. Relationship between BPEL (Business Process Execution Language) concepts and HPN (high-level Petri nets) is analyzed. After translation, the equivalent HPN of the Web service composition based on BPEL can be verified on existing mature tool according to the steps to reduce the size of test suite discussed in this paper. The method base on above technique can efficiently limit the number of test cases and reduce space- and time-consuming in theory and in practice.','Electronic Commerce and Security, 2008 International Symposium on',2,'W. Dong','ieee/bpel security.csv','ieee','\0'),(772,'Software Architecture in Distributed Software Development: A Review','2013','0',' Software Architecture Global Software Development Distributed Software Development Knowledge Management','Abstract This paper presents a literature review of distributed software development (DSD) or global software development (GSD) and software architecture. The main focus is to highlight the current researches, observations, as well as practice directions in these areas. The results have been limited to peer-reviewed conference papers and journal articles, and analysis reports that major studies have been performed in software architecture and global software development, while the empirical studies of interfacing distributed/global software development and software architecture has only received very little attention among researchers up to now. This indicates the need for future research in these areas.','',1,'Alok MishraDeepti Mishra','springer/service oriented architecture security.csv','springer','\0'),(773,'Review of Cyber-Physical System Architecture','2012','5','CPS architecture;Cyber-Physical Systems;Service-Oriented Architecture','With the goal of accomplish the ubiquitous intelligence in social life, Cyber-Physical Systems (CPS) are getting growing attentions of researchers and engineers. However, the complexity of computing and physical dynamics bring a lot of challenges in the development of CPS, such as integration of heterogeneous physical devices, system verification, security assurance, and so on. A general or unified architecture plays an important part in the process of CPS design. In this paper, we review the current and previous works of CPS architecture, and introduce the main challenges and techniques of architecture development : real-time control, security assurance, integration mechanism. Then we propose a general CPS architecture based on Service-Oriented Architecture (SOA), the main advantage of this proposed architecture is the integration flexibility of services and components. At the end, we introduce the typical applications of CPS, and suggest the future research areas.','Object/Component/Service-Oriented Real-Time Distributed Computing Workshops (ISORCW), 2012 15th IEEE International Symposium on',1,'L. Hu; N. Xie; Z. Kuang; K. Zhao','ieee/service oriented architecture security.csv','ieee','\0'),(774,'Pairwise testing for software product lines: comparison of two approaches','2012','23',' Model-based engineering and testing Test generation t -wise and pairwise Software product lines Alloy','Abstract Software Product Lines (SPL) are difficult to validate due to combinatorics induced by variability, which in turn leads to combinatorial explosion of the number of derivable products. Exhaustive testing in such a large products space is hardly feasible. Hence, one possible option is to test SPLs by generating test configurations that cover all possible t feature interactions ( t -wise). It dramatically reduces the number of test products while ensuring reasonable SPL coverage. In this paper, we report our experience on applying t -wise techniques for SPL with two independent toolsets developed by the authors. One focuses on generality and splits the generation problem according to strategies. The other emphasizes providing efficient generation. To evaluate the respective merits of the approaches, measures such as the number of generated test configurations and the similarity between them are provided. By applying these measures, we were able to derive useful insights for pairwise and t -wise testing of product lines.','Software Quality Journal',1,'Gilles PerrouinSebastian OsterSagar SenJacques KleinBenoit BaudryYves le Traon','springer/soa security.csv','springer',''),(775,'Quantitative Trust Management to Support QoS-Aware Service Selection in Service-Oriented Environments','2013','0','quality of services;service selection;service-oriented architecture;trust management;web services','Owing to the black-box nature of services, selecting a trustworthy service that best fits users\' requirements is greatly critical in service-oriented computing. Once a set of services fulfilling users\' functional requirements are founded, one of these services invoked by the users depends mostly on the Quality of Services (QoS), particularly security, trust, and reputation. This paper proposes a trust management model to support service discovery and selection based on QoS. We define a quantitative trust evaluating method for dynamic service discovery and selection. The proposed model makes service consumers get trustworthy services possible. Our mechanism uses consumers\' feedback to describe the trust degree of services and service providers. The service selection using the quantitative measurement rather than consumers\' intuition allows selecting a highly reliable service accomplishing their quality requirements well. Finally, we give experimental results.','Parallel and Distributed Systems (ICPADS), 2013 International Conference on',1,'Y. Kim; K. G. Doh','ieee/service oriented architecture security.csv','ieee','\0'),(776,'Based-on Pi-calculus Business Process Modeling','2012','0','Business Process Management System;Pi-calculus','With development of business process management technology and information technology, we can simulate business processes. How to describe business process by structural language and check business process model are the issues. We develop a business processes system by SOA and model business process actions by Pi-calculus and check the model by MWB.','2012 Second International Conference on Business Computing and Global Informatization',1,'H. Xu; W. Chen','ieee/service oriented architecture security.csv','ieee','\0'),(777,'An information flow control approach in composite services','2013','0','Composite services;Information flow control;Information security;Security label;Service chain','Distributed information flow control has several advantages over centralized information flow control for securing composite services in service oriented environments. In this paper, an approach of distributed information flow control which utilizes security labels to convey control information is considered. At first, security labels are formally defined to describe the control information of information flow control. The computation method of security labels is presented as well. Secondly, a label-based information flow control protocol, namely LBIFC, is presented. This protocol is based on request/decision protocol between service providers. Thirdly, both the theoretical analysis and experimental validation of proposed LBIFC are provided. The results show that our solution not only keeps the security capabilities of information flow control, but also reduces the complexity of flow control protocol in composite services.','Information and Communications Technologies (IETICT 2013), IET International Conference on',1,'Bo Yu; Lin Yang; Shuhui Chen; Yongjun Wang; Linru Ma','ieee/service oriented architecture security.csv','ieee','\0'),(778,'QoS Modeling and Automatic Generation from SoaML Service Models for Business Process Execution','2015','','Automated service generation; BPMN 2.0; Business process; QoS; Quality of service; SoaML; Web Services','When Service Oriented applications and services are modeled, the term Quality of Service (QoS) is used to refer to the collection of constraints and quality requirements for a service. It is important that QoS attributes are specified in early stages of the development process, and modeled in a way that can be recognized and understood by all stakeholders. Regarding Service Oriented Architecture (SOA) modeling, QoS usually includes security, performance and availability. There are many options to realize business processes with services, such as collaborations with partners, internal services, third parties services (SaaS) among others. In previous works we have proposed the automatic generation of services specified in the Service Architecture Modeling Language (SoaML) from business processes, and the associated code. As SoaML allows to model functional requirements only, we have extended our proposal to also take into account QoS modeling and generation from SoaML service models, enriching the specification of services with quality characteristics. © 2015 IEEE.','',2,'Delgado A.','scopus/bpmn security.csv','scopus',''),(779,'Representing Threats in BPMN 2.0','2012','1','BPMN;SOA;business process modeling;composite services;dynamic behavior;security;threat;trustworthiness','The Business Process Modeling Notation (BPMN) has become a broadly accepted standard for process modeling, but is mostly being used to express the normal execution flow of business processes. In some situations there is also a need to express threats and unwanted incidents on that same abstraction level, for example to show how deviations from normal process flow should be handled. Enriching BPMN with threat information enables a process-centric threat modeling approach that complements risk assessment and attack scenarios. Though there has been a substantial amount of work enhancing BPMN 1.x with security related information, the opportunities provided by version 2.0 have not received a lot of attention in the security community. This paper shows several options and the benefit of representing threats in BPMN 2.0 for design-time specification and runtime execution of composite services with dynamic behavior. Our goal is to avoid downtime and preserve the overall security and trustworthiness of the composite service in an ever-changing Internet of Services. We have included examples showing the use of error events, escalation events and text annotations for process, collaboration, choreography and conversion diagrams.','Availability, Reliability and Security (ARES), 2012 Seventh International Conference on',2,'P. H. Meland; E. A. Gjære','ieee/bpmn security.csv','ieee','\0'),(780,'Connectivity abstractions and \"service-oriented network\" architecture','2012','2','Connectivity abstractions; P2P overlay; Service architecture; Service-oriented network architecture','Current generation networks have been designed only for network connectivity; they have been stretched to the limit with many afterthought add-on features including quality of service, mobility, programmability, and security so that they can be deployed for business applications and processes. As such, service deployment on current networks are difficult, time consuming and with limited successes. This paper suggests a service architecture based on network connectivity abstraction, user connectivity abstraction and application/service connectivity abstraction. The paper also proposes a service-oriented network (SON) architecture that facilitates the development of services and applications regardless of the underlying network access technologies. The architecture is conceived through the consideration of the essential requirements of generic Internet applications from the service and network providers\' perspective that addresses the Service-Oriented Architecture (SOA) application deployment pattern, user location and device mobility, and the structure of IP-converged networks. © 2012 IEEE.','',1,'Hoang D.B., Pham C.','scopus/service oriented architecture security.csv','scopus','\0'),(781,'Incorporating service and user information and latent features to predict QoS for selecting and recommending cloud service compositions','2016','0',' Cloud-based software service selection QoS prediction Vertical cloud service composition Service similarity Tensor factorization Latent features','Abstract The rapid growth of published cloud services in the Internet makes the service selection and recommendation a challenging task for both users and service providers. In cloud environments, software re services collaborate with other complementary services to provide complete solutions to end users. The service selection is performed based on QoS requirements submitted by end users. Software providers alone cannot guarantee users’ QoS requirements. These requirements must be end-to-end, representing all collaborating services in a cloud solution. In this paper, we propose a prediction model to compute end-to-end QoS values for vertically composed services which are composed of three types of cloud services: software (SaaS), infrastructure (IaaS) and data (DaaS) services. These values can be used during the service selection and recommendation process. Our model exploits historical QoS values and cloud service and user information to predict unknown end-to-end QoS values of composite services. The experiments demonstrate that our proposed model outperforms other prediction models in terms of the prediction accuracy. We also study the impact of different parameters on the prediction results. In the experiments, we used real cloud services’ QoS data collected using our developed QoS monitoring and collecting system.','Cluster Computing',1,'Raed KarimChen DingAli MiriMd Shahinur Rahman','springer/soa security.csv','springer',''),(782,'eWALL: An Intelligent Caring Home Environment Offering Personalized Context-Aware Applications Based on Advanced Sensing','2016','3',' Caring home eHealth Advanced sensing Personalized context-aware applications','Abstract Independent living of senior citizens is one of the main challenges linked to the ageing population. Senior citizens may suffer from a number of diseases, including the decline in cardiopulmonary conditions, weaker muscle functions and a declined neuromuscular control of the movements, which result in a higher risk of fall and a higher vulnerability for cardiovascular and pulmonary diseases. With respect to cognitive functions, senior citizens may suffer from a decline of memory function, less ability to orientate and a declined ability to cope with complex situations. This is by itself a big societal challenge with impact in multiple sectors. In this paper we present an innovative ICT solution, named eWALL, that aims to address these challenges by means of an advanced ICT infrastructure and home sensing environment; thus differentiating from existing eHealth and eCare solutions. The system of eWALL will extend the state-of-the-art of Assistive Platforms and will significantly increase the independent living of seniors.','Wireless Personal Communications',1,'Sofoklis KyriazakosMihail MihaylovBayu AnggorojatiAlbena MihovskaRazvan CraciunescuOctavian FratuRamjee Prasad','springer/service oriented architecture security.csv','springer',''),(783,'GIS in Agriculture','2012','0','','','',1,'Ralf BillEdward NashGörres Grenzdörffer','springer/service oriented architecture security.csv','springer','\0'),(784,'Resilience for Collaborative Applications on Clouds','2012','0',' High-Performance Computing Cloud Computing Distributed Computing Scientific Applications Workflows Resilience','Abstract Because e-Science applications are data intensive and require long execution runs, it is important that they feature fault-tolerance mechanisms. Cloud and grid computing infrastructures often support system and network fault-tolerance. They repair and prevent communication and software errors. They allow also checkpointing of applications, duplication of jobs and data to prevent catastrophic hardware failures. However, only preliminary work has been done so far on application resilience, i.e., the ability to resume normal execution following application errors and abnormal executions. This paper is an overview of open issues and solutions for such errors detection and management. It also overviews the implementation of a workflow management system to design, deploy, execute, monitor, restart and resume distributed HPC applications on cloud infrastructures in cases of failures.','',2,'Toàn NguyênJean-Antoine Désidéri','springer/bpel security.csv','springer','\0'),(785,'HiPoLDS: A Security Policy Language for Distributed Systems','2012','0','','Abstract Expressing security policies to govern distributed systems is a complex and error-prone task. Policies are hard to understand, often expressed with unfriendly syntax, making it difficult to security administrators and to business analysts to create intelligible specifications. We introduce the Hierarchical Policy Language for Distributed Systems (HiPoLDS ). HiPoLDS has been designed to enable the specification of security policies in distributed systems in a concise, readable, and extensible way. HiPoLDS’s design focuses on decentralized execution environments under the control of multiple stakeholders. Policy enforcement employs distributed reference monitors who control the flow of information between services. HiPoLDS allows the definition of both abstract and concrete policies, expressing respectively high-level properties required and concrete implementation details to be ultimately introduced into the service implementation.','',1,'Matteo Dell’AmicoGabriel SermeMuhammad Sabir IdreesAnderson Santana de OliveraYves Roudier','springer/service oriented architecture security.csv','springer','\0'),(786,'Information Quality in Dynamic Networked Business Process Management','2015','0','','Abstract The competition in globalized markets forces organizations to provide mass-customized integrated solutions for customers. Mass-customization of integrated solutions by business network requires adaptive interactions between parties to address emerging requirements of customers. These adaptive interactions need to be enabled by dynamic networked business processes (DNBP) that are supported by high quality information. However, the dynamic collaboration between parties can result in information quality (IQ) issues such as information syntactic and semantic misalignment, information leakage, and unclear information ownership. To counter negative consequences of poor IQ on the performance, the orchestrator of business network needs to clearly recognize these IQ issues. In this paper, we develop and evaluate a framework to address potential IQ issues related to DNBP. The development of the framework is based on a three step methodology that includes the characterization of dynamism of networked business processes, the characterization of IQ dimensions, and the exploration of IQ issues. To evaluate the practical significance of the explored IQ issues, we conduct a case study in a service ecosystem that is shaped by a car leasing organization to provide integrated mobility solutions for customers.','',2,'Mohammad R. RasouliRik EshuisJos J. M. TrienekensRob J. KustersPaul W. P. J. Grefen','springer/bpel security.csv','springer',''),(787,'Security modelling along business process model of SOA systems using modified “UML-SOA-Sec”','2012','0','Business Process Modelling;Domain Specific Language;Model Driven Architecture;Security Objectives;Service Oriented Architecture;Unified Modelling Language','In SOA environment, software systems are composed of services which are scattered across enterprises and architectures. Security play vital role during the design, development and operation of SOA applications. However, analysis of today\'s software development approaches reveals that the engineering of security into the system design is often neglected. This may happened due to the fact that the general purpose modelling languages lack the elements for security modelling. As a result, either security is ignored in the model or indicated in a textual way. The post-hoc, low-level integration of security has a negative impact on resulting SOA applications. A Domain Specific Language named “UML-SOA-Sec” is proposed for security modelling along the business process modelling of SOA Applications.','Computer & Information Science (ICCIS), 2012 International Conference on',1,'M. Q. Saleem; J. Jaafar; M. Fadzil Hassan','ieee/service oriented architecture security.csv','ieee','\0'),(788,'The Aniketos Service Composition Framework: Analysing and ranking of secure services','2014','','BPMN; Secure service composition; Service availability; Service modelling','Modern applications are inherently heterogeneous: they are built by composing loosely coupled services that are, usually, offered and operated by different service providers.While this approach increases the flexibility of the composed applications, it makes the implementation of security and trustworthiness requirements much more difficult. Therefore there is a need for new approaches that integrate security requirements right from the beginning while composing service-based applications, in order to ensure security and trustworthiness. In this chapter, we present a framework for secure service composition using a model-based approach for specifying, building, and executing composed services. As a unique feature, this framework integrates security requirements as a first class citizen and, thus, avoids the “security as an afterthought” paradigm. © Springer International Publishing Switzerland 2014.','',2,'Brucker A.D., Malmignati F., Merabti M., Shi Q., Zhou B.','scopus/bpmn security.csv','scopus',''),(789,'An architectural design framework for an Electronic Health Record system with hospice application','2012','0','Common Language Runtime;EHR;SOA;Simple Object Access;e-hospice','The goal of the system framework (e-Hospice+) is to create an Electronic Health Record (EHR) System which can be used by medical clinic to provide special healthcare services to hospice care patients. The framework allows both web-based and mobile-based healthcare application frameworks to be created to satisfy a variety of needs of clinical personnel. The web-based applications are performed at the clinic as a main source of information and services to patients and service providers. The mobile-based applications are run on smartphones and used by clinicians during their visits the patients. The EHR data can be exchanged between application servers and smartphones using web services. The design framework focuses on the three key areas: data design, user interface, and data Security and privacy.','e-Health Networking, Applications and Services (Healthcom), 2012 IEEE 14th International Conference on',1,'W. D. Yu; A. Panova','ieee/soa security.csv','ieee','\0'),(790,'GIS for Transportation','2012','0','','','',1,'Tschangho J. KimKeechoo Choi','springer/service oriented architecture security.csv','springer','\0'),(791,'Invited Talk III','2012','0','','Summary form only given. Recently, long running transactions attracted much research attention, because they are adopted in distributed systems, such as service-oriented systems, to ensure consistency. How to model and verify long running transactions is critical to improve the reliability of current distributed systems.','Software Security and Reliability Companion (SERE-C), 2012 IEEE Sixth International Conference on',1,'Ji Wang','ieee/service oriented architecture security.csv','ieee','\0'),(792,'Dynamic Deployment of Sensing Experiments in the Wild Using Smartphones','2013','4','','Abstract While scientific communities extensively exploit simulations to validate their theories, the relevance of their results strongly depends on the realism of the dataset they use as an input. This statement is particularly true when considering human activity traces, which tend to be highly unpredictable. In this paper, we therefore introduce APISENSE , a distributed crowdsensing platform for collecting realistic activity traces. In particular, APISENSE provides to scientists a participative platform to help them to easily deploy their sensing experiments in the wild. Beyond the scientific contributions of this platform, the technical originality of APISENSE lies in its Cloud orientation and the dynamic deployment of scripts within the mobile devices of the participants.We validate this platform by reporting on various crowdsensing experiments we deployed using Android smartphones and comparing our solution to existing crowdsensing platforms.','',1,'Nicolas HadererRomain RouvoyLionel Seinturier','springer/service oriented architecture security.csv','springer','\0'),(793,'Towards the Integration of Ontologies with Service Choreographies','2013','0',' business process service choreography ontology knowledge base annotation recommender system','Abstract This paper discusses the integration of ontologies with service choreographies in view of recommending interest points to the modeler for model improvement. The concept is based on an ontology of recommendations (evaluated by metrics) attached to the elements of the model. The ontology and an associated knowledge base are used in order to extract correct recommendations (specified as textual annotations attached to the model) and present them to the modeler. Recommendations may result in model improvements. The recommendations rely on similarity measures between the captured modeler design intention and the knowledge stored in the ontology and knowledge bases.','',2,'Mario Cortes-CornaxIoana CiuciuSophie Dupuy-ChessaDominique RieuAgnès Front','springer/bpel security.csv','springer','\0'),(794,'From enterprise architecture to business models and back','2014','4',' Business modeling Enterprise architecture Business Model Canvas ArchiMate Business Model Ontology Cost/revenue analysis','Abstract In this study, we argue that important IT change processes affecting an organization’s enterprise architecture are also mirrored by a change in the organization’s business model. An analysis of the business model may establish whether the architecture change has value for the business. Therefore, in order to facilitate such analyses, we propose an approach to relate enterprise models specified in ArchiMate to business models, modeled using Osterwalder’s Business Model Canvas. Our approach is accompanied by a method that supports business model-driven migration from a baseline architecture to a target architecture and is demonstrated by means of a case study.','Software & Systems Modeling',1,'M. E. IacobL. O. MeertensH. JonkersD. A. C. QuartelL. J. M. NieuwenhuisM. J. van Sinderen','springer/service oriented architecture security.csv','springer','\0'),(795,'Tamper-Evident User Profiles for WebID-Based Social Networks','2014','0',' Identity WebID Linked Data Social Networks Trust Security Data Integrity Protection Tamper Detection','Abstract Empowering people to express themselves in global communities, social networks became almost indispensable for exchanging user-generated content. User profiles are essential elements of social networks. They represent their members, but also disclose personal data to companies. W3C’s WebID offers an alternative to centralized social networks that aims at providing control about personal data. WebID relies on trusting the systems that host user profiles. There is a risk that attackers exploit this trust by tampering user profile data or stealing identities. In this paper, we therefore propose the IronClad approach. It improves trustworthiness by introducing tamper-evident WebID profiles. IronClad takes protective measures to publicly discover malicious manipulation of profile data. We exemplarily implement IronClad in an existing WebID identity management platform known from previous work.','',2,'Stefan WildFalko BrauneDominik PretzschMichel RienäckerMartin Gaedke','springer/bpmn security.csv','springer',''),(796,'Improving Interoperability of Digital Certificates for Software & Services','2013','0','ASSERT; ASSERT Profile; Web service; CA','Software certification has been successfully used with traditional \"static\" software. With the introduction of new computing paradigms such as service-oriented computing and cloud computing, the existing way to represent software certifications based in verbose human-oriented documents, exhibits many limitations, to the point of making the approach not useful in practice. The ASSERT4SOA project is currently addressing this problem and has developed a computer-oriented representation for software certifications based on a new type of digital certificates called ASSERT. However, in order to be able to represent the huge heterogeneity of certification schemes and standards, the ASSERT specification has to be extremely flexible and rather complex. This in turn, makes the production of ASSERTs difficult, and moreover, limits their interoperability, as to be interoperable, ASSERTS need to follow certain rules. This paper presents the solution adopted in the project in order to improve the interoperability of independently produced ASSERTS. The solution has been evaluated and has received very positive feedback.','2013 IEEE Ninth World Congress on Services',1,'M. Montenegro; A. Maña','ieee/service oriented architecture security.csv','ieee','\0'),(797,'Aligning Monitoring and Compliance Requirements in Evolving Business Networks','2014','2','','Abstract Dynamic business networks (BNs) are intrinsically characterised by change. Compliance requirements management, in this context, may become particularly challenging. Partners in the network may join and leave the collaboration dynamically and tasks over which compliance requirements are specified may be consequently delegated to new partners or backsourced by network participants. This paper considers the issue of aligning the compliance requirements in a BN with the monitoring requirements they induce on the BN participants when change (or evolution) occurs. We first provide a conceptual model of BNs and their compliance requirements, introducing the concept of monitoring capabilities induced by compliance requirements. Then, we present a set of mechanisms to ensure consistency between the monitoring and compliance requirements when BNs evolve, e.g. tasks are delegated or backsourced in-house. Eventually, we discuss a prototype implementation of our framework, which also implements a set of metrics to check the status of a BN in respect of compliance monitorability.','',2,'Marco Comuzzi','springer/bpel security.csv','springer',''),(798,'The Intelligent RFID Information Security Integrated Antenna Arrays System Based on SOA','2012','2',' RFID RSA Information security Heterogeneous WMN SOA','Abstract Radio frequency identification (RFID) technology system is quickly evolved many applications to manage personnel can be more efficient for automation systems. We combine the RSA encryption and decryption algorithms to raise the safety and the information security systems. The RFID environment has been communicated to exchange data for heterogeneous wireless networks. In this paper, it is implemented the RFID-based campus system solutions to security and privacy of RFID system for wireless mesh network applications. We propose to enhance the security algorithm combined RFID devices for the antenna arrays system. This paper is also presented the integrated framework for the application and integration systems based on service oriented architecture, and given a specific application of the framework combined with campus system.','Wireless Personal Communications',1,'Gwo-Jia JongPeng-Liang PengGwo-Jiun Horng','springer/service oriented architecture security.csv','springer','\0'),(799,'Using Interpolation for the Verification of Security Protocols','2013','0',' Security protocols Symbolic execution Craig’s interpolation Formal methods Verification','Abstract Interpolation has been successfully applied in formal methods for model checking and test-case generation for sequential programs. Security protocols, however, exhibit such idiosyncrasies that make them unsuitable to the direct application of such methods. In this paper, we address this problem and present an interpolation-based method for security protocol verification. Our method starts from a formal protocol specification and combines Craig interpolation, symbolic execution and the standard Dolev-Yao intruder model to search for possible attacks on the protocol. Interpolants are generated as a response to search failure in order to prune possible useless traces and speed up the exploration. We illustrate our method by means of a concrete example and discuss the results obtained by using a prototype implementation.','',1,'Marco RocchettoLuca ViganòMarco VolpeGiacomo Dalle Vedove','springer/service oriented architecture security.csv','springer','\0'),(800,'Revisiting the Anatomy and Physiology of the Grid','2015','1',' DSSA Physiology Anatomy OODT Software architecture','Abstract A domain-specific software architecture (DSSA) represents an effective, generalized, reusable solution to constructing software systems within a given application domain. In this paper, we revisit the widely cited DSSA for the domain of grid computing. We have studied systems in this domain over the last ten years. During this time, we have repeatedly observed that, while individual grid systems are widely used and deemed successful, the grid DSSA is actually underspecified to the point where providing a precise answer regarding what makes a software system a grid system is nearly impossible. Moreover, every one of the existing purported grid technologies actually violates the published grid DSSA. In response to this, based on an analysis of the source code, documentation, and usage of eighteen of the most pervasive grid technologies, we have significantly refined the original grid DSSA. We demonstrate that this DSSA much more closely matches the grid technologies studied. Our refinements allow us to more definitively identify a software system as a grid technology, and distinguish it from software libraries, middleware, and frameworks.','Journal of Grid Computing',1,'Chris A. MattmannJoshua GarciaIvo KrkaDaniel PopescuNenad Medvidovic','springer/service oriented architecture security.csv','springer',''),(801,'DoubleGuard: Detecting Intrusions in Multitier Web Applications','2012','6','Anomaly detection;multitier web application.;virtualization','Internet services and applications have become an inextricable part of daily life, enabling communication and the management of personal information from anywhere. To accommodate this increase in application and data complexity, web services have moved to a multitiered design wherein the webserver runs the application front-end logic and data are outsourced to a database or file server. In this paper, we present DoubleGuard, an IDS system that models the network behavior of user sessions across both the front-end webserver and the back-end database. By monitoring both web and subsequent database requests, we are able to ferret out attacks that an independent IDS would not be able to identify. Furthermore, we quantify the limitations of any multitier IDS in terms of training sessions and functionality coverage. We implemented DoubleGuard using an Apache webserver with MySQL and lightweight virtualization. We then collected and processed real-world traffic over a 15-day period of system deployment in both dynamic and static web applications. Finally, using DoubleGuard, we were able to expose a wide range of attacks with 100 percent accuracy while maintaining 0 percent false positives for static web services and 0.6 percent false positives for dynamic web services.','IEEE Transactions on Dependable and Secure Computing',1,'M. Le; A. Stavrou; B. B. Kang','ieee/service oriented architecture security.csv','ieee','\0'),(802,'Introducing a new algorithm for medical image encryption based on chaotic feature of cellular automata','2013','0','Cellular Automata;Chaotic system;Encryption;Medical Image;Security','Nowadays, with the expansion of telemedicine networks, providing security of medical documents plays an important role in medical society especially in protection of patient privacy. For this reason, medical centers spend a lot of money to improve their information security. One of the methods of improving medical information security is encryption of medical information that can be implemented with various algorithms. Due to the special characteristics of visual data and other information, methods used in image cryptography are limited and in some cases, they suffer from some security flaws and limitations in application. In this paper, according to the chaotic characteristics of cellular automata, new algorithm has been proposed for encryption medical image. The results indicated that the proposed algorithm provided more security as well as higher speed. Moreover, this method hasn\'t any errors in decryption stage. These features are rarely seen simultaneously in one encryption algorithm.','Internet Technology and Secured Transactions (ICITST), 2013 8th International Conference for',1,'I. Ranaee; M. M. Nia; R. Jahantigh; A. Gharib','ieee/service oriented architecture security.csv','ieee','\0'),(803,'IT-Implementation of Subject-Oriented Business Processes','2012','0','','Abstract IT has achieved a high level of penetration in many organizations. Without IT support, many business processes cannot be handled in an economically beneficial way. For this reason, the careful and on-demand mapping of processes to information and communication technology is an important task. This applies for cases where employees are involved, as well as for operations in which a high degree of automation is striven for. A suitable and well-fitting software environment plays a significant role here. However, the challenge in many cases is an existing heterogeneous landscape of systems and services, in which each of the components fulfills specific tasks, and for which all of these components need to be integrated into an overall solution for adequate process support.','',2,'Albert FleischmannWerner SchmidtChristian StaryStefan ObermeierEgon Börger','springer/bpel security.csv','springer','\0'),(804,'José Meseguer: Scientist and Friend Extraordinaire','2015','0','','Abstract José was born in Murcia, Spain, in 1950, and obtained his PhD in Mathematics in 1975 from the University of Zaragoza with a dissertation on “Primitive Recursion in Monoidal Categories” advised by Michael Pfender, with José Luis Viviente and Roberto Moreno-Díaz as co-advisors. In February 1974, at the age of 23, José met Joseph Goguen at the First International Symposium on Category Theory Applied to Computation and Control in San Francisco. This meeting led to many years of close and successful collaboration, as well as a life-long friendship between the two, with their first joint paper [ 24 ] published in 1977.','',2,'Narciso Martí-OlietPeter Csaba ÖlveczkyCarolyn Talcott','springer/bpmn security.csv','springer',''),(805,'Software-as-a-service (SaaS): perspectives and challenges','2014','8',' software-as-a-service SaaS architecture customization multi-tenancy architecture redundancy and recovery scalability','Abstract Software-as-a-service (SaaS) has received significant attention recently as one of three principal components of cloud computing, and it often deals with applications that run on top of a platform-as-a-service (PaaS) that in turn runs on top of infrastructure-as-a-service (IaaS). This paper provides an overview of SaaS including its architecture and major technical issues such as customization, multi-tenancy architecture, redundancy and recovery mechanisms, and scalability. Specifically, a SaaS system can have architecture relating to a database-oriented approach, middleware-oriented approach, service-oriented approach, or PaaS-oriented approach. Various SaaS customization strategies can be used from light customization with manual coding to heavy customization where the SaaS system and its underlying PaaS systems are customized together. Multi-tenancy architecture is an important feature of a SaaS and various trade-offs including security isolation, performance, and engineering effort need to be considered. It is important for a SaaS system to have multi-level redundancy and recovery mechanisms, and the SaaS system needs to coordinate these with the underlying PaaS system. Finally, SaaS scalability mechanisms include a multi-level architecture with load balancers, automated data migration, and software design strategies.','Science China Information Sciences',1,'WeiTek TsaiXiaoYing BaiYu Huang','springer/soa security.csv','springer',''),(806,'Conformance Checking and QoS Optimizing of Web Service Composition','2013','0','','Due to the inherent autonomy and heterogeneity of component Web services it is difficult to predict the behavior of the overall composite service. Besides, the performance of the composed application is determined by the performance of the involved component web services. Therefore, the behavior conformance and non-functional quality of service (QoS) properties are crucial for selecting the web services to take part in the composition. The behavior conformance of component services is the guarantee of the correctness of Web service composition, and QoS properties can identify the best candidate web services from a set of functionally-equivalent services. In this paper, two formal judgmental rules are presented, which check conformance of local behavior of every component service to global interaction. We also use skyline computation to select services for composition effectively and efficiently, reducing the number of candidate services to be considered. We also define aggregation functions, and use a Multiple Attribute Decision Making approach for the utility function to achieve Qos-based optimal service selection. We evaluate our approach experimentally using both real and synthetically generated datasets.','Computational Intelligence and Security (CIS), 2013 9th International Conference on',1,'G. Zhang','ieee/service oriented architecture security.csv','ieee','\0'),(807,'Agile business process development: why, how and when—applying Nonaka’s theory of knowledge transformation to business process development','2014','0',' Agile development Business process Knowledge transformation SECI model','Abstract The traditional way of business process development is via creating a detailed model of a business process in question, acquiring an IT-system to support it, and then implementing it in the organizational practice. Acquiring a system can be done via designing and manufacturing it by the business itself, or via commissioning it to somebody else. Alternatively, a generic system can be bought and configured according to the business process model created. The traditional approach has a number of risks that become visible only during the latest phase of introducing the system in the organizational practice, e.g., when it becomes clear that the system does not fit the business and/or people who work in it. These risks could be mitigated by using an agile approach to the development of business processes. In agile approach: (a) the phases of process modeling, IT-system design, and manufacturing are merged into one, and (b) instead of using one big cycle, a series of smaller development cycles is used. The paper discusses what is needed to implement the agile approach, and in which business situations the agile approach is the most appropriate. Examples of tools to support agile development are presented and analyzed. The results presented in the paper have been achieved based on the knowledge transformation perspective along the lines suggested by Nonaka in SECI model. The modification of this model has been used to understand the risks and requirements connected to a particular process development strategy.','Information Systems and e-Business Management',2,'Ilia BiderAmin Jalali','springer/bpmn security.csv','springer',''),(808,'Robust mutual trust architecture for safety critical service in heterogeneous mobile network environment','2015','0',' Mutual trust architecture Heterogeneous mobile network environment Seamless service safety Mobile Internet device Multiple network interfaces','Abstract Wireless network services are more vigorous than ever due to the rapid development of mobile devices such as smartphones. Most mobile devices are evolving into multi-purpose handsets having multiple interfaces and always on, operating in a state that can receive the data any time through these different interfaces. In line with this trend, safety critical services such as e-commerce and on-line financial service have now mostly been used through the mobile environment. Since the Internet service is made up of interaction between the user and the service provider, service safety is based on mutual trust between them. In other words, the user terminal and the service provider system should have confidence in the identities of each other. In heterogeneous mobile network, the user terminal can get access to the service system through diverse access networks simultaneously. So, service provider cannot distinguish which is a valid access for service. In this paper, we propose a mutual trust architecture that can maintain a sustainable secure relation between the user terminal and the safety critical service system by using both personal and network information.','Telecommunication Systems',1,'Sunghyun YoonSoon Seok LeeSang-Ha Kim','springer/soa security.csv','springer',''),(809,'Identification and study of the relationship between factors and dimensions affecting the security of developed information systems using service-oriented architecture','2014','','Information systems; Service oriented architecture; Web service security','Certain advantages of service-oriented architecture have led to the spread of this type of architecture around the world. However, some special features of this type of architecture have led to more compromise between the security in the information system and other information systems. The purpose of this paper is to identify and examine the impact of factors and dimensions of the information security system that has developed by using service-oriented architecture. In this study, the exploratory and confirmatory factor analysis have been used to identify overt and covert variables. Then, a structured equation model and AMOS software have been used. Finally, the effect of each security dimension of security service-oriented architecture was specified by using the structural equation model. The results indicate that network-level security, web services and message-level security have a significant positive impact on service-oriented architecture. The software output is indicative of the fact that the structured model is fit.','',1,'Reza taghva M., Izadi M.','scopus/service oriented architecture security.csv','scopus','\0'),(810,'Goal-Based Composition of Stateful Services for Smart Homes','2012','0',' process/service composition smart houses/buildings planning techniques','Abstract The emerging trend in process management and in service oriented applications is to enable the composition of new distributed processes on the basis of user requests, through (parts of) available (and often embedded in the environment) services to be composed and orchestrated in order to satisfy such requests. Here, we consider a user process as specified in terms of repeated goals that the user may choose to get fulfilled, organized in a kind of routine. Available services are suitably composed and orchestrated in order to realize such a process. In particular we focus on smart homes, in which available services are those ones offered by sensor and actuator devices deployed in the home, and the target user process is directly and continuously controlled by the inhabitants, through actual goal choices. We provide a solver that synthesizes the orchestrator for the requested process and we show its practical applicability in a real smart home use case.','',1,'Giuseppe De GiacomoClaudio Di CiccioPaolo FelliYuxiao HuMassimo Mecella','springer/service oriented architecture security.csv','springer','\0'),(811,'A Multiple Interfaces and Multiple Services Residential Gateway Scheme','2013','0',' Residential Gateway Multiple Modes Multiple Interfaces Multiple Services','Abstract Residential gateways that interconnect home networks, pubic networks, and smart household devices play a critical role in intelligent home systems. However, the existing gateways could hardly be adapted to emerging multiple access methods and the multiple services’ requirements for future home intelligent environments. This paper introduces the work in progress in constructing a stable and efficient Broadband Multiple Modes Residential Gateway (BMMRG) which supports multiple access interfaces, multiple services, IPv6, security, QoS and remotely web management. It is mainly based on an IXP425 network processor and a Linux kernel. We first present the hardware and software architectures of BMMRG, and then we introduce their in-detailed implementations. In the meantime, an intelligent home system is proposed based on BMMRG and household appliances equipped with wireless and ZigBee adapters. Finally, the effectiveness and feasibility of BMMRG is verified through testing.','',1,'Wenyao YanZhixiao WangKewang ZhangJunhuai LiDeyun Zhang','springer/service oriented architecture security.csv','springer','\0'),(812,'Security Certification of Composite Services: A Test-Based Approach','2013','3','BPEL;Model-based testing;Security certification;Service composition;Web services','Accurate and lightweight evaluation of web service security properties is a key problem, especially when business processes are dynamically built by composing atomic services provided by different suppliers at runtime. In this paper, we tackle this problem by proposing a security certification approach that virtually certifies a composite service for a set of security properties, starting from certificates awarded to the component services.','Web Services (ICWS), 2013 IEEE 20th International Conference on',2,'M. Anisetti; C. A. Ardagna; E. Damiani','ieee/bpel security.csv','ieee','\0'),(813,'Cloud Computing Automation: Integrating USDL and TOSCA','2013','2',' USDL TOSCA cloud service lifecycle service description service management','Abstract Standardization efforts to simplify the management of cloud applications are being conducted in isolation. The objective of this paper is to investigate to which extend two promising specifications, USDL and TOSCA, can be integrated to automate the lifecycle of cloud applications. In our approach, we selected a commercial SaaS CRM platform, modeled it using the service description language USDL, modeled its cloud deployment using TOSCA, and constructed a prototypical platform to integrate service selection with deployment. Our evaluation indicates that a high level of integration is possible. We were able to fully automatize the remote deployment of a cloud service after it was selected by a customer in a marketplace. Architectural decisions emerged during the construction of the platform and were related to global service identification and access, multi-layer routing, and dynamic binding.','',2,'Jorge CardosoTobias BinzUwe BreitenbücherOliver KoppFrank Leymann','springer/bpel security.csv','springer','\0'),(814,'Cloud Resources-Events-Agents Model: Towards TOSCA-Based Applications','2014','0',' Cloud application Resources-Events-Agents (REA) TOSCA Business requirements','Abstract The dilemma for domain experts and developers during design time of a cloud application is ensuring the sufficient programming abstractions between them in mapping the business requirements to cloud specifications. Thus, a modeling language is needed to capture and express the business requirements. Resources-Events-Agents (REA) is a well-known business requirement modeling language that decomposes the information system into three constituents with the set of compliant binary collaborations called, Duality . This study is a preliminary attempt to employ REA for developing cloud applications. In this study, we define a conceptual mapping between REA model and OASIS Topology and Orchestration Specification for cloud Applications (TOSCA) policies, plans and templates. Based on that, we proceed with the process of building business-driven cloud applications. In support of our model, we implement a cloud REA Modeling tool referred to as CREAM, where business requirements are specified in REA, then corresponding cloud application is composed and built. We describe the underlying mapping strategy as well as the details of our tool in support of the proposed approach.','',2,'Soheil QanbariVahid SebtoSchahram Dustdar','springer/bpel security.csv','springer',''),(815,'An Approach for Compliance-Aware Service Selection with Genetic Algorithms','2013','0',' Service-oriented Computing Service Selection Compliance Multi-objective Optimization Genetic Algorithms','Abstract Genetic algorithms are popular for service selection as they deliver good results in short time. However, current approaches do not consider compliance rules for single tasks in a process model. To address this issue, we present an approach for compliance-aware service selection with genetic algorithms. Our approach employs the notion of compliance distance to detect and recover violations and can be integrated into existing genetic algorithms by means of a repair operation. As a proof-of-concept, we present a genetic algorithm incorporating our approach and compare it with related state-of-the-art genetic algorithms lacking this kind of check and recovery mechanism for compliance.','',2,'Fatih KaratasDogan Kesdogan','springer/bpel security.csv','springer','\0'),(816,'Asset monitoring in the service-oriented Internet of Things empowered smartgrid','2012','4',' Smart metering Web services Networked embedded systems Enterprise services Performance assessment','Abstract The smartgrid envisions several sophisticated services that heavily depend on almost real-time monitoring of the assets and the functionality they provide. High-performance smart metering is the flagship of ongoing projects worldwide. In order to succeed, a service-oriented approach must be adopted, tools for simulation and pre-deployment evaluation will need to be created, and finally, adaptive systems targeting self-X behaviour (e.g. self-management, self-optimization, self-monitoring, self-healing, and self-protection) may raise the level of sophistication once the infrastructure is operational. In all of the above, the constraints set by enterprise services need to be respected and collaboratively tune infrastructure’s layers via active monitoring and control in order to enable the best overall system performance. We discuss on considerations and propose directions that could be followed.','Service Oriented Computing and Applications',1,'Stamatis Karnouskos','springer/soa security.csv','springer','\0'),(817,'Evolving Security Requirements in Multi-layered Service-Oriented-Architectures','2012','0',' SOA Evolution AOP REST Security','Abstract Due to today’s rapidly changing corporate environments, business processes are increasingly subject to dynamic configuration and evolution. The evolution of new deployment architectures, as illustrated by the move towards mobile platforms and the Internet Of Services, and the introduction of new security regulations (imposed by national and international regulatory bodies, such as SOX or BASEL) are an important constraint in the design and development of business processes. In such a context, it is not sufficient to apply the corresponding adaptations only at the service orchestration or at the choreography level; there is also the need for controlling the impact of new security requirements to several architectural layers, specially in cloud computing, where the notion of Platforms as Services and Infrastructure as Services are fundamental. In this paper we survey several research questions related to security cross-domain and cross-layer security functionality in Service Oriented Architectures, from an original point of view. We provide the first insights on how a general service model empowered with aspect oriented programming capabilities can provide clean modularization to such cross-cutting security concerns.','',2,'Muhammad Sabir IdreesGabriel SermeYves RoudierAnderson Santana De OliveiraHerve GrallMario Südholt','springer/bpel security.csv','springer','\0'),(818,'Proposal of a Context-Aware Smart Home Ecosystem','2015','0',' Smart home Ecosystem Context-awareness Smart scenario Context modeling Context reasoning Architecture for smart homes Web service SOA Pervasive computing','Abstract Smart homes are more and more popular since they are regarded as synonyms of an ideal and friendly environment. Novel aspects like context awareness and pro-activity are fundamental requirements for development of such systems. Smart scenarios enable switching devices in a desired way when a certain user activity considered as a trigger involves a system activity. Some smart scenarios are proposed. Context modeling and reasoning for smart homes is widely considered. A software architecture including web services is introduced and discussed.','',1,'Radosław KlimekGrzegorz Rogus','springer/service oriented architecture security.csv','springer',''),(819,'DILT: A Hybrid Model for Dynamic Composition and Execution of Heterogeneous Web Services','2015','0',' Web Services Dynamic composition Service Oriented Architecture SOAP services RESTful Services','Abstract Business applications in domains such as e-Governance, require collaboration among both Governmental and non Governmental departments, which raises the need for composing SOAP-based as well as RESTful services. Existing works address this objective using static composition alone. However, it would be beneficial if users can specify the requirements during run-time, based on the outcome of the previous services executed. In general, business applications follow a predefined order and consequently the composition process can follow a template of business activities. Existing works on dynamic web service composition either separate the composition and execution phases distinctly or perform them in an interleaved fashion. The former approach cannot adapt to changes in run-time whereas the latter can select services based on the outcome of previous service executions. However, the interleaved approach does not support business activities that have a specific ordering among them. Hence, a novel hybrid model - Dynamic InterLeaved Template (DILT) - that enables interleaved composition and execution of web services based on predefined workflow templates has been proposed in this paper. This hybrid model lends itself naturally for composing both SOAP-based and RESTful services.','',2,'Kanchana RajaramChitra BabuAkshaya Ganesan','springer/bpel security.csv','springer',''),(820,'Ontology-Based Security Policies for Supporting the Management of Web Service Business Processes','2008','3','Web service;business process;security','Typically, in areas such as e-business and e-government, among others, Web services are used as basic components for building business processes. Participants in a business process may have different computational platforms that should interoperate in order to achieve the process goals. This interoperability is supported by the Web service technology. Thus, the importance of the technology is growing and its use in these areas demands security concern. However, the current approach for building processes from services, based on the Web Services Business Process Execution Language (WS-BPEL), does not consider security. This paper proposes an approach for building processes according to provider capabilities and consumer security requirements. These characteristics are expressed using Web Services Policy Framework (WS-Policy) policies and a Web Ontology Language (OWL) ontology. The main contribution of this paper is the use of semantics-enriched security policies for enriching Web service business processes.','Semantic Computing, 2008 IEEE International Conference on',2,'D. Z. G. Garcia; M. B. Felgar de Toledo','ieee/bpel security.csv','ieee','\0'),(821,'The Weighted Decision Matrix: Tracking Design Decisions in Service Compositions','2014','0','Requirements Engineering;Service Composition;Traceability Matrix','Often, there is a lack of efficient procedures in order to identify design errors when transforming customer requirements into servic-oriented solution. A well-established approach supporting this kind of transformation in classical requirements engineering is the traceability matrix which allows tracing the coverage of customer requirements by system components in general, or services in particular. The matrix shows which services realize which customer requirements. However, the matrix does not show the relevance of a service in order to meet a certain quality aspect (e.g. Security, usability, maintainability, etc.). Since this information is not explicitly covered, it is the system designer who has to keep this knowledge in mind when designing an appropriate set of services that build the overall system. Unfortunately, stakeholders not involved in the design decisions, e.g. Customers, Project managers and developers, have a hard time to understand the significance of the coverage of customer requirements by services in order to meet desired quality aspects. This may cause misinterpretations especially in the early stages of the service system development life-cycle. In this paper, we present a heuristic-based approach to continually monitor and control design decisions and their effects on certain quality aspects. This approach extends the traceability matrix by a weighted decision-matrix.','2014 IEEE 7th International Conference on Service-Oriented Computing and Applications',1,'A. Mazak; B. Kratzwald','ieee/service oriented architecture security.csv','ieee','\0'),(822,'Service-oriented Architecture and Business Process Choreography in an Order Management Scenario: Rationale, Concepts, Lessons Learned','2005','18','B2B, BPEL, HTTP, J2EE, SOAP, WSDL, XML, application server, best practices, business process, order management, process choreography, process integration, service-oriented architecture, telecommunications, web application, web services, workflow','Companion to the 20th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications','',2,'Olaf Zimmermann and Vadim Doubrovski and Jonas Grundler and Kerard Hogg','acm/bpel security.csv','acm',''),(823,'A robust framework for securing composed web services','2016','','Automated verification; Component-based systems; Dependency flow graph; Information flow security; Non-interference','This paper proposes a framework that automatically checks and configures data security in Web Services starting from high level business requirements. We consider BPEL-based composed Web Services. BPEL processes and initial security parameters are represented as component-based models labeled with security annotations. These models are formal and enable automated analysis and synthesis of security configurations, under the guidance of the service designer. The security property considered is the non-interference. The overall approach is practical since security is defined separately from functional processes and automatically verified. We illustrate its utility to solve intricate security problems using a smart grid application. © Springer International Publishing Switzerland 2016.','',2,'Said N.B., Abdellatif T., Bensalem S., Bozga M.','scopus/bpel security.csv','scopus','\0'),(824,'Hybrid Service Compositions: When BPM Meets Dynamic Case Management','2015','0',' Service management Service compositions Service-dominance Business process management Dynamic Case Management','Abstract In organizations’ efforts to achieve process efficiency and agility, disciplines like business process management and case management have been used widely. While the former is a process-driven discipline which routes processes through specific activities, the latter advances through events based on the case data, characterizing it as event-driven and data-driven. However, these two apparently dissimilar approaches can be combined with the common goal to offer flexible service compositions in a service-dominant context. This paper proposes a way to do so through a business-engineering framework for service-dominant business. The structured approach for business design and the subsequent proposed implementation with IT systems will enable organizations, for instance in financial services sector, to leverage service automation. A working prototype for service management is developed as a proof-of-concept demonstrating that the realization of such a mixed approach is practically feasible.','',2,'Konstantinos TraganosPaul Grefen','springer/bpel security.csv','springer',''),(825,'Adaptive pixel value differencing steganography using both vertical and horizontal edges','2015','0',' Image steganography Pixel value differencing steganography Adaptive data hiding Adaptive PVD Horizontal and vertical edges','Abstract This paper proposes two pixel value differencing (PVD) steganography techniques by considering adaptive ranges to improve the security. In the first technique, the image is partitioned into 2 × 2 pixel blocks in a non-overlapping fashion and scanned in raster-scan order. For every 2 × 2 pixel block the left-upper and bottom-right corner pixels are targetted based on their correlation with the other two pixels. Both horizontal and vertical edges are considered. In the second technique, the image is partitioned into blocks with 3 × 3 pixels in an overlapped fashion and scanned in raster-scan order. For a block the central pixel is targetted for embedding. Both the horizontal and vertical edges are inspected, but one of them is considered for data embedding at the target pixel. The ranges are adaptively calculated based upon the local statistics of the blocks. The first technique provides higher hiding capacity and the second technique provides higher peak signal-to-noise ratio value.','Multimedia Tools and Applications',1,'Gandharba Swain','springer/soa security.csv','springer',''),(826,'Transforming Socio-Technical security requirements in SecBPMN security policies','2014','','','Socio-Technical Systems (STSs) are complex systems composed of both social (i.e., humans and organizations) and technical (i.e., hardware and software) elements. Security requirements for STSs define constraints for the sociotechnical interactions and can be specified as a set of security policies that have to be satisfied by the components of the system during their interactions. In this paper, we present how security requirements molded in STS-ml are transformed in security policies expressed in SecBPMN, an extension of BPMN with security annotations.','',2,'Salnitri M., Giorgini P.','scopus/bpmn security.csv','scopus',''),(827,'A Methodology and Tool Support for Widget-Based Web Application Development','2015','0',' Web widgets Web development Community information systems Widgetizing methodology Web application reengineering','Abstract Due to the rapid evolution of Web technologies and standards like WebRTC for the real-time Web, there is a reengineering pressure on many existing Web applications for not getting outdated and for reducing costs and maintainance efforts. In this paper, we propose a methodology designed to support developers through an application reengineering process for achieving modular and scalable Web applications, by bridging the old and the new: a RESTful microservice architecture with a presentation layer composed from widgets. The methodology is based on empirical studies conducted with the help of the widget developer community and proposes an agile development cycle and guidelines for the redesign activities. Based on its principles, we developed a tool that has been used in the methodology evaluation for modeling the widget-based Web applications. The obtained results show that the approach and the proposed architecture are suitable for enabling the future generation of widget-based applications.','',1,'Petru NicolaescuRalf Klamma','springer/microservice security.CSV','springer',''),(828,'Extracting and Analyzing the Implemented Security Architecture of Business Applications','2013','1','reverse engineering;software security;static analysis;threat modeling','Security is getting more and more important for the software development process as the advent of more complex, connected and extensible software entails new risks. In particular, multi-tier business applications, e.g., based on the Service-Oriented Architecture (SOA), are vulnerable to new attacks, which may endanger the business processes of an organization. These applications consist often of legacy code, which is now exported via Web Services, although it has originally been developed for internal use only. The last years showed great progress in the area of static code analysis for the detection of common low level security bugs, such as buffer overflows and cross-site scripting vulnerabilities. However, there is still a lack of tools that allow an analyst to assess the implemented security architecture of an application. In this paper, we propose a technique that automatically extracts the implemented security architecture of Java-based business applications from the source code. In addition, we carry out threat modeling on this extracted architecture to detect security flaws. We evaluate and discuss our approach with the help of two commercial real-world case studies, one taken from the e-government domain and the other one from logistics.','Software Maintenance and Reengineering (CSMR), 2013 17th European Conference on',1,'B. J. Berger; K. Sohr; R. Koschke','ieee/service oriented architecture security.csv','ieee','\0'),(829,'If Usability Evaluation and Software Performance Evaluation Shook Their Hands: A Perspective','2015','0',' Usability evaluation System performance Self-adaptive systems','Abstract The success of interactive systems depends on a variety of factors, including usability and system performances. The balance of these factors is more ideal than a practice, since traditionally these issues have been addressed by two distinct communities – Human-Computer Interaction and Software Engineering – using different processes, methods and tools. Consequently, the traditional approach is to separately address human performances and system performances. We argue that results from early-cycle system performance evaluation should be exploited by interaction designers to produce “performance-informed” design iteration, then leading to a performance-aware self-adaptive interaction environment, according to a vision bridging the two communities.','',1,'Tania Di MascioLaura TarantinoGiovanni De Gasperis','springer/service oriented architecture security.csv','springer',''),(830,'Security (hyper-)properties in workflow systems: From specification to verification?','2014','','','Provable security guarantees for software systems are highly desirable. Our work aims at improving and integrating existing formal verification techniques into a framework for the specification and verification of typical security requirements of large-scale, distributed workflow systems. Challenges include the uniform modelling of different types of security requirements, the decomposition of global security requirements into requirements on subcomponents, and the refinement of an abstract specification towards an implementation. We focus our attention on workflow management systems due to their interesting security requirements and the widespread use of model-driven techniques in this area (e.g. using BPMN diagrams). We build upon existing verification techniques for a specific notion of information flow security, and intend to apply our results to concrete example systems such as a secure web-based conference management system.','',2,'Bauereiss T.','scopus/bpmn security.csv','scopus',''),(831,'Middleware for Internet of Things: A Study','2015','0','Internet of Things;challenges;heterogeneity;interoperability;middleware','The significant progress in smart devices has lead to the shifting of actual Internet to the Internet of Things (IoT). Internet of Things is invading our real lives. In this new Internet vision, trillions of smart dynamic objects and areas will be connected to the Internet and interact between each others to achieve common applications. This new Internet vision requires suitable IoT infrastructure that offers the main Internet of Things functionalities to facilitate the development of IoT applications. Middleware is the software layer between technological and application layers. It is mainly used to afford common services and functions to applications and to abstract implementation details to ease more complex application development. In this paper, we review the main challenges facing Internet of Things middleware and survey the most well known middleware that have been proposed in this field.','2015 International Conference on Distributed Computing in Sensor Systems',1,'G. Fersi','ieee/service oriented architecture security.csv','ieee',''),(832,'Formalizing and appling compliance patterns for business process compliance','2016','5',' Business process compliance Compliance patterns Formal specification Regulatory compliance Compliance management tool support Design-time compliance management','Abstract Today’s enterprises demand a high degree of compliance of business processes to meet diverse regulations and legislations. Several industrial studies have shown that compliance management is a daunting task, and organizations are still struggling and spending billions of dollars annually to ensure and prove their compliance. In this paper, we introduce a comprehensive compliance management framework with a main focus on design-time compliance management as a first step towards a preventive lifetime compliance support. The framework enables the automation of compliance-related activities that are amenable to automation, and therefore can significantly reduce the expenditures spent on compliance. It can help experts to carry out their work more efficiently, cut the time spent on tedious manual activities, and reduce potential human errors. An evident candidate compliance activity for automation is the compliance checking, which can be achieved by utilizing formal reasoning and verification techniques. However, formal languages are well known of their complexity as only versed users in mathematical theories and formal logics are able to use and understand them. However, this is generally not the case with business and compliance practitioners. Therefore, in the heart of the compliance management framework, we introduce the Compliance Request Language (CRL), which is formally grounded on temporal logic and enables the abstract pattern-based specification of compliance requirements. CRL constitutes a series of compliance patterns that spans three structural facets of business processes; control flow, employed resources and temporal perspectives. Furthermore, CRL supports the specification of compensations and non-monotonic requirements, which permit the relaxation of some compliance requirements to handle exceptional situations. An integrated tool suite has been developed as an instantiation artefact, and the validation of the approach is undertaken in several directions, which includes internal validity, controlled experiments, and functional testing.','Software & Systems Modeling',2,'Amal ElgammalOktay TuretkenWillem-Jan van den HeuvelMike Papazoglou','springer/bpel security.csv','springer',''),(833,'Much Ado about Security Appeal: Cloud Provider Collaborations and Their Risks','2012','4',' cloud computing security cloud collaborations data privacy data protection security broker','Abstract The lack of capacity, unplanned outages of sub-contractors, a disaster recovery plan, acquisitions, or other financial goals may force cloud providers to enter into collaborations with other cloud providers. However, the cloud provider is not always fully aware of the security level of a potential collaborative cloud provider. This can lead to security breaches and customers’ data leakage, ending in court cases and financial penalties. In our paper, we analyze different types of cloud collaborations with respect to their security concerns and discuss possible solutions. We also outline trusted security entities as a feasible approach for managing security governance risks and propose our security broker solution for ad hoc cloud collaborations. Our work provides support in the cloud provider selection process and can be used by cloud providers as a foundation for their initial risk assessment.','',1,'Olga WengeMelanie SiebenhaarUlrich LampeDieter SchullerRalf Steinmetz','springer/service oriented architecture security.csv','springer','\0'),(834,'Aspect Separation in Web Service Orchestration: A Reflective Approach and its Application to Decentralized Execution','2007','1','','Web service orchestration is becoming widely spread for the creation of composite Web services using standard specifications such as BPEL4WS. The myriad of specifications and aspects that should be considered in orchestrated Web services are resulting in increasing complexity. This complexity leads to software infrastructures difficult to maintain with interwoven code involving different aspects such as security, fault tolerance, distribution, etc. In this paper, we present ZenFlow a reflective BPEL engine that enables to separate the implementation of different aspects among them and from the implementation of the regular orchestration functionality of the BPEL engine. We illustrate its capabilities and performance exercising the reflective interface through a decentralized orchestration use case.','IEEE International Conference on Web Services (ICWS 2007)',2,'R. Jimenez-Peris; M. Patino-Martinez; E. Martel-Jordan; R. Naranjo-Izquierdo','ieee/bpel security.csv','ieee','\0'),(835,'A Workflow Checking Approach for Inherent Privacy Awareness in Network Monitoring','2012','0',' Network monitoring privacy protection access control workflow verification service decomposition','Abstract Despite the usefulness of network monitoring for the operation, maintenance, control and protection of communication networks, as well as law enforcement, network monitoring activities are surrounded by serious privacy implications. The inherent “leakage-proneness” is harshened due to the increasing complexity of the monitoring procedures and infrastructures, that include multiple traffic observation points, distributed mitigation mechanisms and even inter-operator cooperation. In this paper, an innovative approach aiming at realising the “privacy by design” principle in the area of network monitoring is presented; it relies on service-orientation primitives and abstractions, in order to verify and, when needed, to adjust network monitoring workflows, so that they become inherently privacy-aware before being deployed for execution.','',1,'Maria N. KoukoviniEugenia I. PapagiannakopoulouGeorgios V. LioudakisDimitra I. KaklamaniIakovos S. Venieris','springer/service oriented architecture security.csv','springer','\0'),(836,'ICDMS: An Intelligent Cloud Based Disaster Management System for Vehicular Networks','2012','1',' Disaster Management and Resilience Intelligent Transportation Systems Cloud Computing VANETs Mobile Communications','Abstract The importance of emergency response systems cannot be overemphasized today due to the many manmade and natural disasters in the recent years such as September 2001 and the recent Japan earthquake and tsunami disaster. The overall cost of the Japan disaster alone is estimated to have exceeded 300 billion USD. Transportation and telecommunications play a critical role in disaster response and management in order to minimize loss of human life, economic cost and disruptions. Our research is concerned with developing emergency response systems for disasters of various scales with a focus on transportation systems, which exploit ICT developments. In this paper, we leverage Intelligent Transportation Systems including Vehicular Ad hoc Networks, mobile and Cloud Computing technologies to propose an intelligent disaster management system. The system is intelligent because it is able to gather information from multiple sources and locations, including from the point of incident, and is able to let vehicles make effective strategies and decisions of communication protocols usage. Hybrid vehicular communications based on vehicle-to-vehicle and vehicle-to-infrastructure protocols are opportunistically exploited. The effectiveness of our system is demonstrated through modelling the impact of a disaster on a real city transport environment and comparing it with the case where our disaster management system was in place. We report great benefits derived from the adoption of our proposed system in terms of improved and balanced traffic flow and smooth evacuation.','',1,'Zubaida AlazawiMohmmad B. AbdljabarSaleh AltowaijriAnna Maria VegniRashid Mehmood','springer/service oriented architecture security.csv','springer','\0'),(837,'SLA aware dynamic reconfiguration for the Safe Building Security System','2015','','Design patterns; Dynamic reconfiguration; Monitoring; Service oriented architecture','Service-Oriented Architecture (SOA) facilitates development of Business-to-Business (B2B) applications, by composing suitable services, either statically during design-time or dynamically at run-time. Dynamic reconfiguration in the service-oriented approach, involves replacing the statically composed services with some other ones, during run-time, only when it is necessary. This necessity might arise due to the need to accommodate change in user requirements, sudden unavailability of services or to keep up the non-functional requirements agreed in the Service Level Agreement (SLA). Dynamic composition is another approach, where each service is selected and composed at run-time. This approach provides more flexibility in selecting appropriate services during run-time as opposed to the static composition. However, there is a possibility of an additional overhead, compared to dynamic reconfiguration. This paper discusses an approach for SLA aware dynamic reconfiguration, that happens for the same instance of execution and it has also been captured as a pattern named I-RAILS. The various ways of dynamically reconfiguring the services has been illustrated with a case study application namely the Safe Building Security system. This approach of dynamic reconfiguration of the services is compared with the dynamic service composition. © 2015 SERSC.','',1,'Krishnamurthy V., Babu C.','scopus/service oriented architecture security.csv','scopus',''),(838,'Expert Discovery and Interactions in Mixed Service-Oriented Systems','2012','4','Human-provided services;crowdsourcing;hubs and authorities.;service-oriented expertise provisioning;social trust','Web-based collaborations and processes have become essential in today\'s business environments. Such processes typically span interactions between people and services across globally distributed companies. Web services and SOA are the defacto technology to implement compositions of humans and services. The increasing complexity of compositions and the distribution of people and services require adaptive and context-aware interaction models. To support complex interaction scenarios, we introduce a mixed service-oriented system composed of both human-provided and Software-Based Services (SBSs) interacting to perform joint activities or to solve emerging problems. However, competencies of people evolve over time, thereby requiring approaches for the automated management of actor skills, reputation, and trust. Discovering the right actor in mixed service-oriented systems is challenging due to scale and temporary nature of collaborations. We present a novel approach addressing the need for flexible involvement of experts and knowledge workers in distributed collaborations. We argue that the automated inference of trust between members is a key factor for successful collaborations. Instead of following a security perspective on trust, we focus on dynamic trust in collaborative networks. We discuss Human-Provided Services (HPSs) and an approach for managing user preferences and network structures. HPS allows experts to offer their skills and capabilities as services that can be requested on demand. Our main contributions center around a context-sensitive trust-based algorithm called ExpertHITS inspired by the concept of hubs and authorities in web-based environments. ExpertHITS takes trust-relations and link properties in social networks into account to estimate the reputation of users.','IEEE Transactions on Services Computing',1,'D. Schall; F. Skopik; S. Dustdar','ieee/service oriented architecture security.csv','ieee',''),(839,'Discovery and prioritization of web services based on fuzzy user preferences for QoS','2015','','Fuzzy Discovery;JESS API;PROMETHEE;QoS Parameters;Web Service','Web services are the key technologies for the web applications developed using Service Oriented Architecture (SOA). There are many challenges involved in implementing web services. Some of them are web service selection and discovery which involves matchmaking and finding the most suitable web service from a large collection of functionally-equivalent web services. In this paper a fuzzy-based approach for web service discovery is developed that model the ranking of QoS-aware web services as a fuzzy multi-criteria decision-making problem. To describe the web services available in the registry, ontology is created for each web service; and to represent the functional and imprecise Quality of Service (QoS) preferences of both the web service consumer and provider in linguistics term, fuzzy rule base is created with the help of Java Expert System Shell (JESS) API. To make decisions on multiple and conflicting QoS requirements, enhanced Preference Ranking Organization METHod for Enrichment Evaluation (PROMETHEE) model is adopted for QoS-based web service ranking. To demonstrate the abilities of the proposed framework, a web based system \"E-Recruitment System\" is implemented.','Computer, Communication and Control (IC4), 2015 International Conference on',1,'P. Gohar; L. Purohit','ieee/service oriented architecture security.csv','ieee',''),(840,'Design notations for secure software: a systematic literature review','2015','1',' Security Notation Software design Empirical study','Abstract In the past 10 years, the research community has produced a significant number of design notations to represent security properties and concepts in a design artifact. These notations are aimed at documenting and analyzing security in a software design model. The fragmentation of the research space, however, has resulted in a complex tangle of different techniques. Hence, practitioners are confronted with the challenging task of scouting the right approach from a multitude of proposals. Similarly, it is hard for researchers to keep track of the synergies among the existing notations, in order to identify the existing opportunities for original contributions. This paper presents a systematic literature review that inventorizes the existing notations and provides an in-depth, comparative analysis for each.','Software & Systems Modeling',1,'Alexander van den BergheRiccardo ScandariatoKoen YskoutWouter Joosen','springer/service oriented architecture security.csv','springer',''),(841,'Research on key technology for SaaS','2012','0','configurability;data security;multi tenant;software as a service','Software as a Service is becoming a popular research field in software development for its feature of low costing entry, easy implementation and zero infrastructure. SaaS is a multi tenant model which is different from traditional software in user data security, software development and deployment. This paper firstly analyses SaaS architecture, secondly introduces key technology of SaaS system from user data security, configurability user application and maturity model. Finally, this paper gives the future research directions.','Computer Science & Education (ICCSE), 2012 7th International Conference on',1,'Y. Zhu; J. Zhang','ieee/service oriented architecture security.csv','ieee','\0'),(842,'Defense of DDoS attack for cloud computing','2012','3','Cloud Computing; Cloud-filter; DDoS; SBTA; SOA','Though cloud computing is targeted to provide better utilization of resources using virtualization techniques and to take up much of the work load from the client, it is fraught with security risks. One of most serious threats is Distributed Denial of service attack (DDoS) which is easy to implement and affective. In this paper, we proposed an approach called SBTA which based on the use of SOA to traceback and find the source of DDoS attacks. We further propose a filter approach called Cloud-filter. Experiments show the defense system which is a combination of SBTA and Cloud-filter is effective in Cloud Computing. It was able to trace and identify the source most of these attacks messages of these attacks and reduce the packets that reconstruction path required. It also had a high detection rates with low false positives. © 2012 IEEE.','',1,'Yang L., Zhang T., Song J., Wang J., Chen P.','scopus/soa security.csv','scopus','\0'),(843,'Cooperative red teaming of a prototype surivable service-oriented system','2012','1','Adaptive Security;Red Team Evaluation;Service-Oriented Architecture;Survivability','An increasing number of military systems are being developed using service orientation. Some of the features that make service orientation appealing, like loose coupling, dynamism and composition-oriented system construction, make securing service-based systems more complicated. We have been developing technologies for Advanced Protected Services (APS) to improve the resilience and survival of services under cyber attack. These technologies introduce a layer to absorb, contain, and adapt to cyber attacks before attacks reach critical services. This paper describes an evaluation of these advanced protection technologies using cooperative red teaming. In cooperative red teaming, an independent red team launches attacks on a protected enclave in order to evaluate the efficacy and efficiency of the protection technologies, but the red team is provided full knowledge of the system under test and its protections, and is given escalating levels of access to the system. The red team also operates within agreed upon rules of engagement designed to focus their effort on useful evaluation results. Apart from presenting the evaluation results, we also discuss cooperative red teaming as an effective means of evaluating cyber security.','MILCOM 2012 - 2012 IEEE Military Communications Conference',1,'P. Pal; M. Atighetchi; A. Gronosky; J. Loyall; C. Payne; A. Sinclair; B. Froberg; R. Grant','ieee/service oriented architecture security.csv','ieee','\0'),(844,'Study and design of enterprise public security platform based on PKI','2014','','application security; authority management; LDAP; user management; WPKI','In order to solve the application security problems in the business operation system in a intensive, uniform and regular manner, a public fundamental platform model based on PKI technology is proposed, and some advanced design concepts like SCA, BPEL, etc. Are introduced for enhancing the reconstructing and reusing of the system. According to the characteristics of PKI system structure, it is expanded as the foundation and realizes the support for WPKI technology. The technical realization of unified user management, unified authority management and unified application security management, as well as the approaches of integrating the peripheral business system are given by analyzing the requirements of general security management of the informatization system. Furthermore, we also proposed methods to further maintain the security and stability of platform operation with technologies like queues, connection pool, etc. Those methods provide a much more uniform solution to the application security problems. The feasibility and effectiveness of the platform in improving the application security problems have been discussed by the illustrations and analysis of the core transaction processing flows of this platform. © 2014 IEEE.','',2,'Xiao Y., Zhao Y.','scopus/bpel security.csv','scopus',''),(845,'A data infrastructure reference model with applications: towards realization of a ScienceTube vision with a data replication service','2013','6',' Reference model ScienceTube Data infrastructure Replication','Abstract Abstract The wide variety of scientific user communities work with data since many years and thus have already a wide variety of data infrastructures in production today. The aim of this paper is thus not to create one new general data architecture that would fail to be adopted by each and any individual user community. Instead this contribution aims to design a reference model with abstract entities that is able to federate existing concrete infrastructures under one umbrella. A reference model is an abstract framework for understanding significant entities and relationships between them and thus helps to understand existing data infrastructures when comparing them in terms of functionality, services, and boundary conditions. A derived architecture from such a reference model then can be used to create a federated architecture that builds on the existing infrastructures that could align to a major common vision. This common vision is named as ’ScienceTube’ as part of this contribution that determines the high-level goal that the reference model aims to support. This paper will describe how a well-focused use case around data replication and its related activities in the EUDAT project aim to provide a first step towards this vision. Concrete stakeholder requirements arising from scientific end users such as those of the European Strategy Forum on Research Infrastructure (ESFRI) projects underpin this contribution with clear evidence that the EUDAT activities are bottom-up thus providing real solutions towards the so often only described ’high-level big data challenges’. The followed federated approach taking advantage of community and data centers (with large computational resources) further describes how data replication services enable data-intensive computing of terabytes or even petabytes of data emerging from ESFRI projects.','Journal of Internet Services and Applications',1,'Morris RiedelPeter WittenburgJohannes ReetzMark van de SandenJedrzej RybickiBenedikt von St ViethGiuseppe FiameniGiacomo MarianiAlberto MicheliniClaudio CacciariWillem ElbersDaan BroederRobert VerkerkElena ErastovaMichael LautenschlaegerReinhard Budig','springer/service oriented architecture security.csv','springer','\0'),(846,'Model-based approaches for interoperability of next generation enterprise information systems: state of the art and future challenges','2016','0',' Enterprise information Model-based interoperability Model-driven engineering/architecture Service systems Simulation Semantic approach Social networks','Abstract Enterprise businesses are more than ever challenged by competitors that frequently refine and tailor their offers to clients. In this context, enterprise information systems (EIS) are especially important because: (1) they remain one of the last levers to increase the performance and competitiveness of the enterprise, (2) we operate in a business world where the product itself has reached a limit of performance and quality due to uniform capacity of industrial tools in a globalized economy and (3) the EIS can increase the product value thanks to additional digital services (built on data associated to the product) in order to meet and fit better client’s needs. However, the use of EISs reaches a limit in collaborative environments because enterprises management methods diverge and EISs are mainly inflexible resource packages that are not built with an interoperability objective. Consequently, we need to make EISs interoperable in order to achieve the needed gains competitiveness and performance. This paper contribution can be summarized as follows: (1) it relates existing work and it examines barriers that, at the moment, are preventing further improvements due to current methodological and technological limits, and (2) it proposes a conceptual framework and five challenges that model based approaches must overcome to achieve interoperability between EIS in the near and long term.','Information Systems and e-Business Management',2,'Gregory ZacharewiczSaikou DialloYves DucqCarlos AgostinhoRicardo Jardim-GoncalvesHassan BazounZhongjie WangGuy Doumeingts','springer/bpmn security.csv','springer',''),(847,'The Design of a Configurable Reputation Service','2015','0',' Reputation Reuse, configurable SaaS Variability modeling','Abstract Novel trust and reputation models are frequently proposed by the research community to suit the needs of a specific environment. From the plethora of models that are available, it becomes difficult to know which features can be combined in general-purpose models suitable for commercial use. In order to address this problem, the focus of recent research on trust and reputation systems has been on the identification of common features in order to enable reuse. Organizations who need to use a reputation system within their application domain have to custom build it, which may be challenging for novice developers. This paper defines a strategy to develop a configurable SaaS reputation service that has the ability to support common features, but at the same time accommodate the unique requirements of a variety of online communities. A domain analysis reveals common features that can be arranged and re-organized using variability modeling to enable a SaaS providers to support the configuration of a SaaS reputation service.','',2,'Channel HillebrandMarijke Coetzee','springer/bpel security.csv','springer',''),(848,'Design and implementation for integrated services orchestration bus using SCA over heterogeneous networks','2012','0',' Integrated services Orchestration bus Service component architecture Heterogeneous networks','Abstract As the telecom and IT industries converge, pressure is mounting for convergence of service across the two domains, and future integrated services in the telecom domain are subject to specific requirements such as support for end-to-end communication sessions and mechanisms for service interaction across technological borders including telecom, enterprise, and Internet services. This paper provides an integrated services orchestration bus to handle the interoperation and compositions of services from the different domain and focus on the components lifecycle management, normalized message routing, normalized message parsing and mapping, events serialization processing, JNDI register management, and deploy unit. The multimedia conferencing-use case scenario is illustrated, and also the performance is measured and analyzed. Finally, we give the conclusions and future work.','annals of telecommunications - annales des télécommunications',1,'Cheng BoZhang YangYe BoZhou PengChen Junliang','springer/soa security.csv','springer','\0'),(849,'Anti-money-laundering System Based on Mainframe and SOA','2013','0','Anti-Money-laundering;Mainframe;Service Oriented Architecture','This paper presents an efficient anti-money laundering warning system. With the development of science and technology, money laundering is becoming more and more intelligent. Since the existing anti-money-laundering process cannot handle this kind of crime effectively, we build a system based on mainframe with SOA architectures. For one thing, as mainframes pioneer massive data processing capacity and high security, we take this advantage to handle magnanimity financial data. For another thing, we build super scalar architecture with SOA technology. Application module is presented by service and service bus can connect independent functional entities which carry out specific tasks. Therefore, the system can adapt to the variation of money laundering means.','Computational Intelligence and Communication Networks (CICN), 2013 5th International Conference on',1,'M. Shu; L. Rui; L. Dancheng; Z. Shuaizhen','ieee/service oriented architecture security.csv','ieee','\0'),(850,'Towards an ontology for cloud services','2012','12','Cloud brokerage; Cloud computing; Cloud governance; Cloud management; Semantic cloud','The emergence of cloud computing has created a shift in the service lifecycle, a shift meant to meet the requirements of cloud environments. Anticipating this, cloud governance, a step forward from SOA governance, tries to consolidate an environment where collaboration between various enterprises can be easily achieved. Cloud governance lays the groundwork for enabling easy application development and deployment by providing critical services that range from service management to security, monitoring and audit. As means of support for cloud computing, several ontologies have tried to bridge gaps and provide interoperability. None, however, have taken the time to analyze and define aspects that relate to service lifecycle and cloud governance. In this regard, our article proposes an ontology that is meant to complement existing ones. © 2012 IEEE.','',1,'Fortiş T.-F., Munteanu V.I., Negru V.','scopus/soa security.csv','scopus','\0'),(851,'A Conditional Lexicographic Approach for the Elicitation of QoS Preferences','2012','3',' QoS preferences multicriteria decision making service selection','Abstract In a service-oriented environment, clients can usually choose between several web services offering the same functionality. The web service selection can be automated by allowing clients to specify non-functional requirements such as quality of service. Clients should also be able to indicate how to make tradeoffs when some of these requirements cannot be met. The ability to capture tradeoff preferences is critical for selecting the best fitting web service. In this paper, we propose a method of expressing non-functional preferences, which requires minimal effort on the part of the clients, but offers great flexibility in managing tradeoffs. This method leads to a simple algorithm for selecting web services, which does not require sophisticated multicriteria decision techniques.','',1,'Raluca IordacheFlorica Moldoveanu','springer/service oriented architecture security.csv','springer','\0'),(852,'Design for future: managed software evolution','2015','1',' Software life cycle Design, maintenance and operation Legacy systems Co-evolution Knowledge carrying software','Abstract Innovative software engineering methodologies, concepts and tools which focus on supporting the ongoing evolution of complex software, in particular regarding its continuous adaptation to changing functional and quality requirements as well as platforms over a long period are required. Supporting such a co-evolution of software systems along with their environment represents a very challenging undertaking, as it requires a combination or even integration of approaches and insights from different software engineering disciplines. To meet these challenges, the Priority Programme 1593 Design for Future—Managed Software Evolution has been established, funded by the German Research Foundation, to develop fundamental methodologies and a focused approach for long-living software systems, maintaining high quality and supporting evolution during the whole life cycle. The goal of the priority programme is integrated and focused research in software engineering to develop methods for the continuous evolution of software and software/hardware systems for making systems adaptable to changing requirements and environments. For evaluation, we focus on two specific application domains: information systems and production systems in automation engineering. In particular two joint case studies from these application domains promote close collaborations among the individual projects of the priority programme. We consider several research topics that are of common interest, for instance co-evolution of models and implementation code, of models and tests, and among various types of models. Another research topic of common interest are run-time models to automatically synchronise software systems with their abstract models through continuous system monitoring. Both concepts, co-evolution and run-time models contribute to our vision to which we refer to as knowledge carrying software. We consider this as a major need for a long life of such software systems.','Computer Science - Research and Development',1,'Ursula GoltzRalf H. ReussnerMichael GoedickeWilhelm HasselbringLukas MärtinBirgit Vogel-Heuser','springer/soa security.csv','springer',''),(853,'Database management technology for smart grid dispatching and control systems','2015','1','Data management; Directive position; Horizontal integration; Security defense; Service-oriented architecture (SOA); Standard data interface; Vertical interaction','The architecture of the smart grid dispatching and control system is based on horizontal integration and vertical interaction. It is required to be of security, large capacity and high efficiency. Thus a new database management technology needs to be researched with database management as the core. The characteristics of the real-time database, commercial relation database, time-series memory database, and time-series disk database are described first along with the system\'s requirements on data management, followed by the data management architecture, the key technology of data management, and the interface and maintenance of data accessing. The data management technology has successfully been applied to different levels of the dispatching and control systems with the database as the core, providing powerful support to secure, stable and efficient operation of the system.','',1,'Peng H., Tao H., Yan Y., Wang J., Ji X., Xie X., Liu T.','scopus/service oriented architecture security.csv','scopus',''),(854,'A tool for managing the X1.V1 platform on the cloud','2015','','Cloud computing; Health records','The X1.V1 platform is a service oriented architecture, deployed on a set of Virtual Machines, that integrates services for managing fundamental activities in the ehealth scenario, such as Patient Identification, Clinical Document Repository, Prescription, and many others. The efficient provisioning of such services to citizens and to health professionals requires the adoption of increasingly powerful computing systems, in order to ensure that the growing number of service requests are served in acceptable time, even in case of computational peaks. Porting the X1.V1 platform on the Cloud could address the problem of the computational requirement mutability, since Cloud elasticity allows the reallocation of resources to Virtual Machines when necessary. This paper proposes a framework for managing the execution of the X1.V1 platform on the Cloud. This framework enables an easy, quick, and secure management of the Cloud resources allocation and reallocation to X1.V1 Virtual Machines, in order to enhance the platform performances, optimize resource utilization and, consequently, reduce the whole services cost. The design of the framework is focused on security aspects as well, because unauthorized accesses could lead to serious inefficiencies of the ehealth services. Finally, besides describing the architecture design and implementation of the X1.V1 Cloud manager framework, this paper also presents a set of experimental results which confirm the validity of the proposed approach to solve the X1.V1 platform performance issues in distinct reference scenarios. © 2015 SCPE.','',1,'Marzini E., Mori P., Di Bona S., Guerri D., Lettere M., Ricci L.','scopus/service oriented architecture security.csv','scopus',''),(855,'Towards definition of secure business processes','2012','10','Alignment of modelling languages; Business process model and notation (BPMN); Information systems; Security risk management','Business process modelling is one of the major aspects in the modern system development. Recently business process model and notation (BPMN) has become a standard technique to support this activity. Although BPMN is a good approach to understand business processes, there is a limited work to understand how it could deal with business security and security risk management. This is a problem, since both business processes and security concerns should be understood in parallel to support a development of the secure systems. In this paper we analyse BPMN with respect to the domain model of the IS security risk management (ISSRM). We apply a structured approach to understand key aspects of BPMN and how modeller could express secure assets, risks and risk treatment using BPMN. We align the main BPMN constructs with the key concepts of the ISSRM domain model. We show applicability of our approach on a running example related to the Internet store. Our proposal would allow system analysts to understand how to develop security requirements to secure important assets defined through business processes. In addition we open a possibility for the business and security model interoperability and the model transformation between several modelling approaches (if these both are aligned to the ISSRM domain model). © 2012 Springer-Verlag.','',2,'Altuhhova O., Matulevičius R., Ahmed N.','scopus/bpmn security.csv','scopus',''),(856,'On the Integration of Automatic Deployment into the ABS Modeling Language','2015','0','','Abstract In modern software systems, deployment is an integral and critical part of application development (see, e.g., the DevOps approach to software development). Nevertheless, deployment is usually overlooked at the modeling level, thus losing the possibility to perform deployment conscious decisions during the early stages of development. In this paper, we address the problem of promoting deployment as an integral part of modeling, by focusing on the Abstract Behavioral Specification (ABS) language used for the specification of models of systems composed of concurrent objects consuming resources provided by deployment components. We extend ABS with class annotations expressing the resource requirements of the objects of that class. Then we define a tool that, starting from a high-level declaration of the desired system, computes a model instance of such system that optimally distributes objects over available deployment components.','',2,'Stijn de GouwMichael LienhardtJacopo MauroBehrooz NobakhtGianluigi Zavattaro','springer/bpel security.csv','springer',''),(857,'Decision-Making Based on Incident Data Analysis','2014','3','cloud computing;decision support;risk management;simulation evaluation','The intertwining of service-oriented architectures, service management concepts and cloud computing services leads to a new form of service landscapes. These modern IT service landscapes with loosely coupled services, short-term contracting and on-demand service provisioning have added an additional layer of complexity in service sourcing decision processes and thus require new forms of risk management and decision support for service sourcing. In addition, flexibility has become an important managerial variable in service management, which adds even more complexity to service management decisions. To address this rise of complexity, we analyse service sourcing based on a formal model and propose a risk-aware decision model for service sourcing. We show that our approach supports IT service management with continuous decision support and an effective and always current view on the risk situation of a service portfolio by means of a simulation based on the analysis of incident data from a real-world high demand financial trading platform.','2014 IEEE 16th Conference on Business Informatics',1,'N. Roedder; P. Karaenke; R. Knapper; C. Weinhardt','ieee/service oriented architecture security.csv','ieee','\0'),(858,'An Architecture for E-Government Social Web Applications','2012','0','Accessibility;Java;System Architecture;eGovernment','With the advent Web 2.0 a large number of social web applications, such as Blogs, Wikis and micro blogging services such as Twitter have emerged. These applications are often available as open source software or free services. The use of social web applications in public administration offers the chance to leverage the work of public administrations and to connect public authorities. Unfortunately, available systems do not meet the requirements of public administration. They are implemented in scripting languages like PHP or Perl and do not scale well and also suffer from security issues. Furthermore, e-government applications have to be compliant to auditing standards, guarantee accessibility etc. In this paper a scalable and extensible architecture especially crafted for the use of Web 2.0 applications in public administration is presented. Special emphasis is given to the topic of accessibility.','Complex, Intelligent and Software Intensive Systems (CISIS), 2012 Sixth International Conference on',1,'J. Brüstel; T. Preuss; C. Schwenke; D. Wieczorek','ieee/service oriented architecture security.csv','ieee','\0'),(859,'Application of data synchronization based on ESB','2010','1','ESB;Integration;SOA;WebService','Data synchronization is an important issue which to be resolved in digital campus. This paper, according to the characteristic of Web Services technology, XML technology and SOA(Services Oriented Architecture), puts forward a solution based on Enterprise Service Bus(ESB). We have implemented data synchronization between HR System and LDAP, and verified that the program has a strong practical.','Geoscience and Remote Sensing (IITA-GRS), 2010 Second IITA International Conference on',1,'Zhitong Su; Xiaoli Hou','ieee/webservice security.csv','ieee','\0'),(860,'An infrastructure for smart hospitals','2012','3',' Pervasive access eHospitals RFID systems Photosensors Context-aware services Service Oriented Architecture','Abstract In healthcare facilities most of the daily activities require strict coordination between clinicians, who often operate under heavy workloads and minimal workforce conditions in environments filled with increasingly complex technology. Ubiquitous Computing applications constitute a suitable solution for both reducing medical costs and improving patient safety by better supporting clinical processes. In this study we introduce an intelligent infrastructure for smart hospitals which implements basic services to optimize medical staff/patient interactions and grants ubiquitous and transparent access to clinical data stored in standard clinical databases. This infrastructure relies on the integration of Radio Frequency IDentification (RFID) and photosensor technologies to identify, locate and track clinicians and patients equipped with mobile devices and wearable RFID tags.','Multimedia Tools and Applications',1,'Gennaro Della VecchiaLuigi GalloMassimo EspositoAntonio Coronato','springer/service oriented architecture security.csv','springer','\0'),(861,'Towards Risk-Aware Planning of Service Delivery Operations','2015','0','AI Task Planners;Automation;Risk;Security;Service Delivery;System Administration;Vulnerability','Infrastructure and Application Service Delivery typically comprises of complex workflows such as software installation/configuration, OS configuration, file system management etc. To manage costs as well as SLAs, enterprises constantly look towards automation of these workflows. While declarative approaches for automated workflow planning have been described in the literature, they do not address the risk exposure of the system. We present a novel two-phase risk-aware approach to planning which allows to \"look-ahead\" beyond the desired end state and compute a vulnerability score that measures how vulnerable the system could be in future, if the plan were to be executed now. We demonstrate our approach on a web service migration use-case using SGPlan as the preference-based planner. We also implement an end-to-end framework based on Puppet and validate it on a test bed of virtual machines. The implementation validates the generality of our approach in finding a less-vulnerable plan in scenarios where there are multiple plans.','Services Computing (SCC), 2015 IEEE International Conference on',1,'M. Vasa; A. Jadatharan; B. Srivastava','ieee/service oriented architecture security.csv','ieee',''),(862,'Forensic Process as a Service (FPaaS) for Cloud Computing','2015','','business process execution language (BPEL); cloud computing; cloud forensics; forensic process','Cloud computing is the technology that enables individuals and businesses to utilize computing services (e.g. online file storage, social networking sites, webmail)and a shared pool of resources (e.g. data storage space, networks, user applications) from anywhere over the Internet. Cloud computing has become popular as a cost-effective and convenient computing paradigm. However, cloud computing architecture is at its infancy stage and lacks support for security and forensic investigations. Due to the distributed and virtual nature of cloud, malicious activities can be carried out very easily and are very difficult to subsequently investigate. Cloud forensic investigators currently face challenges as they lack forensic tools and techniques in context of cloud. This highlights the need to develop the new research area of digital forensics in the cloud computing model. This paper presents a cloud forensic process that consists of (i) Identification, (ii) Collection/Acquisition and preservation, (iii) Examination/Processing and analysis, and (iv) Results dissemination phases. In addition, this paper develops the proposed forensic process as a service (FPaaS) using cloud-based Business Process Execution Language (BPEL) that combines the four phases/services into a new composite service called FPaaS. © 2015 IEEE.','',2,'Eleyan A., Eleyan D.','scopus/bpel security.csv','scopus',''),(863,'Goal-based business service composition','2013','0',' Business service Goal model Service discovery Composition Selection Ontology','Abstract As organizations operate under a highly dynamic business world, they can only survive by optimizing their business processes (BPs) and outsourcing complementary functionality to their core business. To this end, they adopt service-orientation as the underlying mechanism enabling BP optimization and evolution. BPs are now seen as business services (BSs) that span organization boundaries and ought to satisfy cross-organizational objectives. As such, various BS design approaches have been proposed. However, these approaches cannot re-use existing business and software services (SSs) to realize the required BS functionality. Moreover, non-functional requirements and their impact on BS design are not considered. This research gap is covered by a novel, goal-oriented method able to discover those BS and SS compositions fulfilling the required BS functional and non-functional goals at both the business and IT level. This method coherently integrates the design steps involved and properly handles the lack of required BS components. It also advances the state-of-the-art in service composition by being able to both select the best composition plan and the best services realizing the plan tasks based on novel plan and service selection criteria.','Service Oriented Computing and Applications',1,'Kyriakos KritikosSylvain KubickiEric Dubois','springer/soa security.csv','springer','\0'),(864,'Model-based security engineering of SOA systems using modified \"UML-SOA-Sec\"','2012','4','Business process modelling; Domain specific language; Model driven security; Security objectives; Service oriented architecture; Unified modeling language','In SOA environment, software systems are composed of services which are scattered across enterprises and architectures. Security play vital role during the design, development and operation of SOA application. However, analysis of today\'s software development approaches reveals that the engineering of security into the system design is often neglected. Currently security is incorporated in SOA applications in an ad-hoc manner and integrated during the applications development phase or administration phase or it is out sourced. In practice security is not defined during the early phases of software development and left onto developers. Properly configuring security requirements in SOA applications is quite difficult for developers because they are not security experts; furthermore, SOA security is cross-domain and all required information is not available at downstream phases. This reveals the importance of adding security objectives in early development phases i.e. at design phase by the business process expert. However, a business process expert is unable to specify security objectives due to lake of security modelling elements in a general purpose modelling languages. As a result, he/she either ignores the security objectives in a business process model or indicates them in textual way. The post-hoc, low-level integration of security has a negative impact on resulting SOA applications. A Domain Specific Language named \"UML-SOA-Sec\" is proposed for the Model driven development of secure SOA systems based on the UML. Aim is to facilitate the business process expert in modelling the security requirements along the business process modelling. This security annotated business process model will facilitate the security expert in specifying the concrete security implementation. As a proof of work; proposed \"UML-SOA-Sec\" is applied to modelling of a typical business process of healthcare system.','',1,'Saleem M.Q., Jaafar J.B., Hassan M.F.','scopus/service oriented architecture security.csv','scopus','\0'),(865,'A Robust Framework for Securing Composed Web Services','2016','0',' Component-based systems Information flow security Non-interference Dependency flow graph Automated verification','Abstract This paper proposes a framework that automatically checks and configures data security in Web Services starting from high level business requirements. We consider BPEL -based composed Web Services. BPEL processes and initial security parameters are represented as component-based models labeled with security annotations. These models are formal and enable automated analysis and synthesis of security configurations, under the guidance of the service designer. The security property considered is the non-interference. The overall approach is practical since security is defined separately from functional processes and automatically verified. We illustrate its utility to solve intricate security problems using a smart grid application.','',2,'Najah Ben SaidTakoua AbdellatifSaddek BensalemMarius Bozga','springer/bpel security.csv','springer',''),(866,'Factors affecting the organizational adoption of service-oriented architecture (SOA)','2014','7',' Service-oriented architecture (SOA) SOA and EAM Service-oriented applications architecture Enterprise architecture IT adoption SOA success South Africa','Abstract Service-oriented architecture (SOA) takes an architectural approach to designing and implementing IT solutions. Although it is fast emerging as one of the major architectural styles to execute enterprise architecture management, academic empirical research on SOA adoption is scarce, with most studies focusing on qualitative analysis. This study investigates organizational SOA adoption in South Africa and combines the perspectives of the diffusion of innovations theory and the technology-organization-environment framework into one comprehensive model of SOA adoption. In order to validate the research instrument and to gauge the state of SOA adoption, an online survey was conducted among enterprise architects in South African organizations. The survey provides insights in the perceived risks, obstacles but also expected benefits of SOA adoption. The results also highlight a number of factors significantly influencing SOA adoption in South Africa. Use of multiple standards and platforms, compatibility, top management support, good governance and strategy, adequate human and financial resources, vendor support for integration and development tools are all significant factors for a fruitful SOA implementation. Finally, all of the above adoption factors as well as cost and complexity were also found to correlate significantly with the degree of success of the SOA implementation as perceived by the IT or EA department.','Information Systems and e-Business Management',1,'Elzavita MacLennanJean-Paul Van Belle','springer/service oriented architecture security.csv','springer','\0'),(867,'QoS Analysis in Heterogeneous Choreography Interactions','2013','0',' Heterogeneous Choreographies Quality of Service Interaction Paradigms Middleware Connectors','Abstract With an increasing number of services and devices interacting in a decentralized manner, choreographies are an active area of investigation. The heterogeneous nature of interacting systems leads to choreographies that may not only include conventional services, but also sensor-actuator networks, databases and service feeds. Their middleware behavior within choreographies is captured through abstract interaction paradigms such as client-service , publish-subscribe and tuple space . In this paper, we study these heterogeneous interaction paradigms, connected through an eXtensible Service Bus proposed in the CHOReOS project. As the functioning of such choreographies is dependent on the Quality of Service (QoS) performance of participating entities, an intricate analysis of interaction paradigms and their effect on QoS metrics is needed. We study the composition of QoS metrics in heterogeneous choreographies, and the subsequent tradeoffs. This produces interesting insights such as selection of a particular system and its middleware during design time or end-to-end QoS expectation/guarantees during runtime. Non-parametric hypothesis tests are applied to systems, where QoS dependent services may be replaced at runtime to prevent deterioration in performance.','',2,'Ajay KattepurNikolaos GeorgantasValérie Issarny','springer/bpmn security.csv','springer','\0'),(868,'Service-oriented network architecture: Significant issues and principles of communication','2015','','Flexible network; Future internet; Service; Service-oriented architecture; Service-oriented network architecture; SOA; SONATE','The internet is not designed for any specific application purposes, rather it is for generic and evolve purposes. Although the architecture of the internet is based on a number of principles including self-describing, datagram packet, the end-to-end argument, diversity in technology, and global addressing, but David D. Clark along with J.H. Saltzer highlighted end-to-end arguments amongst the most influential of all the communication protocol design goals. Also that internet adopted a method of patchwork approach to cope with the needs of evolution and revolution of technology growth with acceptable cost and speed. The future network is expected to host much more than today\'s applications in an efficient manner but experts predicted rigidity as one of the failure factors for current internet (CI). In this paper the authors discuss various issues involved in the flexible network architecture - SONATE (Reuther and Henric, 2008) while incorporating security functionality \'inside\' the architecture. Copyright © 2015 Inderscience Enterprises Ltd.','',1,'Rudra B., Manu A.P., Vyas O.P.','scopus/service oriented architecture security.csv','scopus',''),(869,'A new security metric for SOA implementations','2013','1','Service-Oriented Architecture security; SOAP security; Web Serives; XPath Injection','Service Oriented Architecture (SOA) is an architectural style used to handle transactions involving money, identity, and other sensitive and valuable information. Web Services that implement an SOA must be secure. This paper will describe the common vulnerabilities of Web Services and SOA and the best practices that should be followed in securing the software behind them, and then a new security metric, XPath Exposure Ratio, for Web Services and SOA implementations is proposed. In addition to the discussion on how to apply the new metric, the advantages of the new security metric are also illustrated. © 2013 IEEE.','',1,'Larson D., Liu J.','scopus/service oriented architecture security.csv','scopus','\0'),(870,'User-Controlled Dynamic Access Credential Enrichment for Run-time Service Selection','2012','0','Dynamic Service Selection;Mediated Access Control;Service Access Control','Dynamic run-time selection and sourcing of service components provide considerable potential in todays changing business world. They provide means to counter agility, flexibility and the ability to integrate applications originating from systems of different security domains. While the advantages are obvious strong implications to security in general and authorization and access control in particular do exist. In this paper we present an infrastructure-based approach for en-route dynamic credential enrichment. It enables dynamic replacement of access-restricted service instances by implementing runtime supplementation of security tokens. If authorized, a security intermediary accesses user profiles and retrieves security tokens supplied by identity providers and needed for access control at dynamically selected access-restricted service instances.','e-Business Engineering (ICEBE), 2012 IEEE Ninth International Conference on',1,'C. Fritsch; G. Pernul','ieee/service oriented architecture security.csv','ieee','\0'),(871,'A systematic literature review of service choreography adaptation','2013','5',' Service choreography Choreographies adaptation Choreographies customization Service composition Systematic review','Abstract A service choreography is a distributed service composition in which services interact without a centralized control. Adequate adaptation strategies are required to face complex and ever-changing business processes, given the collaborative nature of choreographies. Choreographies should also be able to adapt to changes in its non-functional requirements, such as response time, and especially for large-scale choreographies, adaptation strategies need to be automated and scale well. However, the body of knowledge regarding choreography adaptation approaches has not yet been consolidated and systematically evaluated. By means of a systematic literature review, in which we examined seven scientific paper sources, we identified and analyzed the state-of-the-art in choreography adaptation. We found 24 relevant primary studies and grouped them into six categories: model-based, measurement-based, multi-agent-based, formal method-based, semantic reasoning-based, and proxy layer-based. We analyzed (i) how each strategy deals with different types of requirements, (ii) what their required degree of human intervention is, (iii) how the different studies considered scalability, (iv) what implementations are currently available, and (v) which choreography languages are employed. From the selected studies, we extracted key examples of choreography adaptation usage and analyzed the terminology they adopted with respect to dynamic adaptation. We found out that more attention has been devoted to functional requirements and automated adaptation; only one work performs scalability evaluation; and most studies present some sort of implementation and use a specific choreography notation.','Service Oriented Computing and Applications',1,'Leonardo A. F. LeiteGustavo Ansaldi OlivaGuilherme M. NogueiraMarco Aurélio GerosaFabio KonDejan S. Milojicic','springer/soa security.csv','springer','\0'),(872,'Aspect of Assembly: From Theory to Performance','2012','2',' AOP runtime adaptation ubiquitous computing CBSE consistency performance','Abstract Ubiquitous computing systems raise numerous challenges in software engineering. Among these, the dynamic variation of open ubiquitous computing environments requires continuous adaptation of applications. Aspect-Oriented Programming is a well-adapted technique to bring together independence of concerns and extensibility for dynamic adaptation. However, the dynamic adaptation has to occur within a reasonable timeframe, which requires a detailed knowledge of the weaving duration. In this paper, we introduce “Aspect of Assembly”, an aspect-oriented approach to develop services- and components-based applications. Then we study the response time of the adaptation process by decomposing the weaving process. The model of the duration of the adaptation process enables us to define a priori constraints to meet temporal requirements for real-world applications. Throughout this paper, we illustrate our work with an actual industrial use case to provide service continuity for a hydrant worker in the water industry.','',1,'Jean-Yves TigliStéphane LavirotteGaëtan ReyNicolas FerryVincent HourdinSana Fathallah Ben AbdennejiChristophe VergoniMichel Riveill','springer/service oriented architecture security.csv','springer','\0'),(873,'100-km-reach, 40 Gb/s/λ downstream and 10 Gb/s/λ upstream, channel-reuse WDM-PON employing tunable laser with back-reflection optical signal detection-based self wavelength management','2015','0',' WDM-PON Channel-reuse Tunable laser Automatic wavelength control Rayleigh backscattering noise','Abstract We experimentally demonstrate a 100-km-reach, channel-reuse wavelength-division-multiplexing passive optical network (WDM-PON) with 40 Gb/s/λ downstream and 10 Gb/s/λ upstream transmission and a back-reflection optical signal detection-based automatic wavelength control method for a tunable laser used in a colorless optical network unit. Channel-reuse, full-duplex, 40 Gb/s/λ downstream and 10 Gb/s/λ upstream transmission on a 100 GHz WDM grid with 100 km reach was achieved. The transmission performance was measured using different optical signal to back-reflection optical signal ratios, optical signal to Rayleigh backscattering noise ratios, and different central wavelength shifts between the upstream and downstream signals in the channel-reuse system.','Optical and Quantum Electronics',1,'Zhiguo ZhangLiqian WangXu JiangXue Chen','springer/soa security.csv','springer',''),(874,'Towards a reference architecture for service-oriented cross domain security infrastructures','2014','','Cross Domain Communications; Ontology; Protocol; Reference Architecture; Security Guard; Service Oriented Architecture; Workflow','Today’s Cross Domain Communication (CDC) infrastructure largely consists of guards built to vendor specifications. Such an infrastructure often fails to provide adequate protections for CDC workflows involving Service Oriented Architectures. Focusing on the transport layer and oblivious to the context of the information exchanges, the guards often rely on rudimentary filtering techniques that require frequent human intervention to adjudicate messages. In this paper, we present a set of key requirements and design principles for a Service Oriented Cross Domain Security Infrastructure in form of a CDC Reference Architecture, featuring domain-associated guards as active workflow participants. This reference architecture will provide the foundation for the development of protocols and ontologies enabling runtime coordination among CDC elements, leading to more secure, effective, and interoperable CDC solutions. © Springer International Publishing Switzerland 2014.','',1,'Zhu W., Vizenor L., Srinivasan A.','scopus/service oriented architecture security.csv','scopus','\0'),(875,'Secure service composition with information flow control in service clouds','2015','2','Data dependencies; Information flow security; Service cloud; Service composition','Service clouds built on cloud infrastructures and service-oriented architecture provide users with a novel pattern of composing basic services to achieve complicated tasks. However, in multiple clouds environment, outsourcing data and applications pose a great challenge to information flow security for the composite services, since sensitive data may be leaked to unauthorized attackers during service composition. Although model checking has been considered as a promising approach to enforce information flow security precisely, its high complexity on modeling and the heavy cost on verification cause great burdens to the process of service composition. In this paper, we propose a distributed approach to composing services securely with information flow control. In our approach, each service component is first verified through model checking, and then a compositional verification procedure is executed to ensure the information flow security along with the composition of these services. The experimental results indicate that our approach can reduce the cost of verification compared with the global verification approach. © 2014 Elsevier B.V. All rights reserved.','',1,'Xi N., Sun C., Ma J., Shen Y.','scopus/service oriented architecture security.csv','scopus',''),(876,'Data-Centric Access Control with Confidentiality for Collaborating Smart Grid Services Based on Publish/Subscribe Paradigm','2013','0','Access Control;Publish/Subscribe;SOA;Smart Grid','With the smart grid coming near, its information systems become more and more open with services as building blocks. Different smart grid services in different control centers collaborate to realize the real-time control and protection of power systems. The publish/subscribe paradigm makes smart grid service collaborations more real-time and flexible because of the space, time and control decoupling of event producer and consumer, which can be used to establish an appropriate communication infrastructure. Unfortunately, a publish/ subscribe-based smart grid service does not know who consumes its events, and consumers do not know who produces the events either. In this environment, the smart grid service cannot directly control access because of anonymous and indirect service interactions. To address the above issues, this paper at first describes the service communication foundation for smart grid services, and then defines their security model supporting data-centric methodology. Based on such model, underpinning network capabilities can be integrated to help smart grid services control access. The key point in our access control solution is to preserve the service interaction characteristics of the publish/subscribe-based smart grid services: anonymous, multicast and session-control. So two special kinds of event types are used to accomplish authorization request and granting with being consistent with the publish/subscribe paradigm. Attaching policy method is adopted to preserve the anonymity feature for collaborating smart grid services. A delegation scheme for brokers to enforce policies is finally constructed based on attribute-based encryption, which also brings confidentiality for smart grid services.','2013 IEEE 33rd International Conference on Distributed Computing Systems Workshops',1,'Y. Zhang; J. l. Chen','ieee/soa security.csv','ieee','\0'),(877,'Advanced approaches for wireless sensor network applications and cloud analytics','2015','0','','Although wireless sensor network applications are still at early stages of development in the industry, it is obvious that it will pervasively come true and billions of embedded microcomputers will become online for the purpose of remote sensing, actuation and sharing information. According to the estimations, there will be 50 billion connected sensors or things by the year 2020. As we are developing first to market wireless sensor-actuator network devices, we have chance to identify design parameters, define technical infrastructure and make an effort to meet scalable system requirements. In this manner, required research and development activities must involve several research directions such as massive scaling, creating information and big data, robustness, security, privacy and human-in-the-loop. In this study, wireless sensor networks and Internet of things concepts are not only investigated theoretically but also the proposed system is designed and implemented end-to-end. Low rate wireless personal area network sensor nodes with random network coding capability are used for remote sensing and actuation. Low throughput embedded IP gateway node is developed utilizing both random network coding at low rate wireless personal area network side and low overhead websocket protocol for cloud communications side. Service-oriented design pattern is proposed for wireless sensor network cloud data analytics.','Intelligent Sensors, Sensor Networks and Information Processing (ISSNIP), 2015 IEEE Tenth International Conference on',1,'G. Ozvural; G. K. Kurt','ieee/service oriented architecture security.csv','ieee',''),(878,'Workflows for quantitative data analysis in the social sciences','2015','1',' e-Social science Quantitative data analysis Scientific workflow Service-oriented architecture Statistical analysis','Abstract The background is given as to how statistical analysis is used by quantitative social scientists. Developing statistical analyses requires substantial effort, yet there are important limitations in current practice. This has motivated the authors to create a more systematic and effective methodology with supporting tools. The approach to modelling quantitative data analysis in the social sciences is presented. Analysis scripts are treated abstractly as mathematical functions and concretely as web services. This allows individual scripts to be combined into high-level workflows. A comprehensive set of tools allows workflows to be defined, automatically validated and verified, and automatically implemented. The workflows expose opportunities for parallel execution, can define support for proper fault handling, and can be realised by non-technical users. Services, workflows and datasets can also be readily shared. The approach is illustrated with a realistic case study that analyses occupational position in relation to health.','International Journal on Software Tools for Technology Transfer',2,'Kenneth J. TurnerPaul S. Lambert','springer/bpel security.csv','springer',''),(879,'A Cyber Security Ontology for BPMN-Security Extensions','2015','','BPMN;Cyber Security Ontology;Security Extension','Every so often a paper is published presenting a new extension for modelling cyber security requirements in Business Process Model and Notation (BPMN). The frequent production of new extensions by experts belies the need for a richer and more expressive representation of security requirements in BPMN processes. One reason for this is that current extensions focus on only specific areas and so fail to provide adequate coverage of the cyber security domain. In this paper, we present our work considering an analysis of existing extensions and identify the security concepts used within each of them. We discuss how there is as yet no single extension which covers a comprehensive range of cyber security concepts. Consequently there is no adequate solution for accurately specifying cyber security requirements within BPMN. In order to address this, we propose a new comprehensive ontology which includes all concepts potentially modellable in BPMN related to cyber security. We explain how this ontology can be used as the basis for developing future BPMN-security extensions, and explore the challenges that must be overcome in order to develop a representation that is both effective and with adequate coverage of security requirements.','Computer and Information Technology; Ubiquitous Computing and Communications; Dependable, Autonomic and Secure Computing; Pervasive Intelligence and Computing (CIT/IUCC/DASC/PICOM), 2015 IEEE International Conference on',2,'C. L. Maines; D. Llewellyn-Jones; S. Tang; B. Zhou','ieee/bpmn security.csv','ieee','\0'),(880,'XSpRES: Robust and effective XML signatures for Web Services','2012','1','Cloud; SOA; Web Services; WS-security; XML Signature; XML Signature Wrapping','XML Encryption and XML Signature are fundamental security standards forming the core for many applications which require to process XML-based data. Due to the increased usage of XML in distributed systems and platforms such as in SOA and Cloud settings, the demand for robust and effective security mechanisms increased as well. Recent research work discovered, however, substantial vulnerabilities in these standards as well as in the vast majority of the available implementations. Amongst them, the so-called XML Signature Wrapping attack belongs to the most relevant ones. With the many possible instances of this attack type, it is feasible to annul security systems relying on XML Signature and to gain access to protected resources as has been successfully demonstrated lately for various Cloud infrastructures and services. This paper contributes a comprehensive approach to robust and effective XML Signatures for SOAP-based Web Services. An architecture is proposed, which integrates the required enhancements to ensure a fail-safe and robust signature generation and verification. Following this architecture, a hardened XML Signature library has been implemented. The obtained evaluation results show that the developed concept and library provide the targeted robustness against all kinds of known XML Signature Wrapping attacks. Furthermore the empirical results underline, that these security merits are obtained at low efficiency and performance costs as well as remain compliant with the underlying standards.','',1,'Mainka C., Jensen M., Iacono L.L., Schwenk J.','scopus/soa security.csv','scopus','\0'),(881,'A high-level service composition model for building applications on sensor networks','2013','2','abstract composition; Business Process; Sensor Networks; Service orchestration; Service Oriented Analysis','Recently, Sensor Networks (SNs) have become an emergent technology for various applications areas such as security and surveillance applications, traffic control, logistics, energy control in public and private buildings, etc. However, designing and constructing new applications using these technologies are still a very hard task. There is no standard API to access to the large variety of sensors and actuators which have also very different functionalities and capabilities. Applications are in general very specific and tightly coupled with the underlying infrastructure. Reuse is also very difficult or even impossible. This paper aims to provide a high-level environment based on a three levels model to program such infrastructure. At the lower level, sensors and actuators are encapsulated by lightweight web services, accessible through gateways. On top of this layer, abstract blocks denote sensors and actuators participating in the composite service along with a semantic description. Finally, these blocks are orchestrated as abstract graphs describing complex applications. This environment has been prototyped using service standards such as BPMN and BPEL within the context of the VITRO European project and validated by several use cases. © 2013 IEEE.','',2,'Movahedi Z., Defude B.','scopus/bpel security.csv','scopus','\0'),(882,'Cloud-Based Code Execution Framework for scientific problem solving environments','2013','3','','Abstract In this paper we present a novel Code Execution Framework that can execute code of different problem solving environments (PSE), such as MATLAB, R and Octave, in parallel. In many e-Science domains different specialists are working together and need to share data or even execute calculations using programs created by other persons. Each specialist may use a different problem solving environment and therefore the collaboration can become quite difficult. Our framework supports different cloud platforms, such as Amazon Elastic Compute Cloud (EC2) and Eucalyptus. Therefore it is possible to use hybrid cloud infrastructures, e.g. a private cloud based on Eucalyptus for general base-level computations using the available local resources and additionally a public Amazon EC2 for peaks and time-dependent calculations. Our approach is to provide a secure platform that supports multiple problem solving environments, execute code in parallel with different parameter sets using multiple cores or machines in a cloud environment, and support researchers in executing code, even if the required problem solving environment is not installed locally. Additionally, existing parallel resources can easily be utilized for ongoing scientific calculations. The framework has been validated by and used in our real project addressing large-scale breath analysis research. Its research-prototype version is available as a PaaS cloud service model. In the future researchers will be able to install this framework on their own cloud infrastructures.','Journal of Cloud Computing: Advances, Systems and Applications',1,'Thomas LudescherThomas FeilhauerPeter Brezany','springer/webservice security.csv','springer','\0'),(883,'Requirements for guidelines systems: implementation challenges and lessons from existing software-engineering efforts','2012','2','','Abstract Background A large body of work in the clinical guidelines field has identified requirements for guideline systems, but there are formidable challenges in translating such requirements into production-quality systems that can be used in routine patient care. Detailed analysis of requirements from an implementation perspective can be useful in helping define sub-requirements to the point where they are implementable. Further, additional requirements emerge as a result of such analysis. During such an analysis, study of examples of existing, software-engineering efforts in non-biomedical fields can provide useful signposts to the implementer of a clinical guideline system. Methods In addition to requirements described by guideline-system authors, comparative reviews of such systems, and publications discussing information needs for guideline systems and clinical decision support systems in general, we have incorporated additional requirements related to production-system robustness and functionality from publications in the business workflow domain, in addition to drawing on our own experience in the development of the Proteus guideline system ( http://​proteme.​org ). Results The sub-requirements are discussed by conveniently grouping them into the categories used by the review of Isern and Moreno 2008. We cite previous work under each category and then provide sub-requirements under each category, and provide example of similar work in software-engineering efforts that have addressed a similar problem in a non-biomedical context. Conclusions When analyzing requirements from the implementation viewpoint, knowledge of successes and failures in related software-engineering efforts can guide implementers in the choice of effective design and development strategies.','BMC Medical Informatics and Decision Making',2,'Hemant ShahRaymond D AllardRobert EnbergGanesh KrishnanPatricia WilliamsPrakash M Nadkarni','springer/bpel security.csv','springer','\0'),(884,'Adaptable, model-driven security engineering for SaaS cloud-based applications','2014','5',' Software-as-a-service Model-driven engineering Adaptive-security Security engineering Tenant-oriented security','Abstract Software-as-a-service (SaaS) multi-tenancy in cloud-based applications helps service providers to save cost, improve resource utilization, and reduce service customization and maintenance time. This is achieved by sharing of resources and service instances among multiple “tenants” of the cloud-hosted application. However, supporting multi-tenancy adds more complexity to SaaS applications required capabilities. Security is one of these key requirements that must be addressed when engineering multi-tenant SaaS applications. The sharing of resources among tenants—i.e. multi-tenancy—increases tenants’ concerns about the security of their cloud-hosted assets. Compounding this, existing traditional security engineering approaches do not fit well with the multi-tenancy application model where tenants and their security requirements often emerge after the applications and services were first developed. The resultant applications do not usually support diverse security capabilities based on different tenants’ needs, some of which may change at run-time i.e. after cloud application deployment. We introduce a novel model-driven security engineering approach for multi-tenant, cloud-hosted SaaS applications. Our approach is based on externalizing security from the underlying SaaS application, allowing both application/service and security to evolve at runtime. Multiple security sets can be enforced on the same application instance based on different tenants’ security requirements. We use abstract models to capture service provider and multiple tenants’ security requirements and then generate security integration and configurations at runtime. We use dependency injection and dynamic weaving via Aspect-Oriented Programming (AOP) to integrate security within critical application/service entities at runtime. We explain our approach, architecture and implementation details, discuss a usage example, and present an evaluation of our approach on a set of open source web applications.','Automated Software Engineering',1,'Mohamed AlmorsyJohn GrundyAmani S. Ibrahim','springer/soa security.csv','springer','\0'),(885,'An Architecture for Data Security in Cloud Computing','2014','6','Cloud computing;data privacy;data security;symmetric cryptography;virtualization','Cloud computing is a more flexible, cost effective and proven delivery platform for providing business or consumer services over the Internet. Cloud computing supports distributed service oriented architecture, multi-user and multi-domain administrative infrastructure. So, it is more prone to security threats and vulnerabilities. At present, a major concern in cloud adoption is towards its security and privacy. Security and privacy issues are of great concern to cloud service providers who are actually hosting the services. In most cases, the provider must guarantee that their infrastructure is secure and clients\' data and applications are safe, by implementing security policies and mechanisms. The security issues are organized into several general categories: trust, identity management, software isolation, data protection, availability reliability, ownership, data backup, data portability and conversion, multi platform support and intellectual property. In this paper, it is discuss about some of the techniques that were implemented to protect data and propose architecture to protect data in cloud. This architecture was developed to store data in cloud in encrypted data format using cryptography technique which is based on block cipher.','Computing and Communication Technologies (WCCCT), 2014 World Congress on',1,'M. Sugumaran; B. B. Murugan; D. Kamalraj','ieee/service oriented architecture security.csv','ieee','\0'),(886,'On the Role of Fitness, Precision, Generalization and Simplicity in Process Discovery','2012','5','','Abstract Process discovery algorithms typically aim at discovering process models from event logs that best describe the recorded behavior. Often, the quality of a process discovery algorithm is measured by quantifying to what extent the resulting model can reproduce the behavior in the log, i.e. replay fitness. At the same time, there are many other metrics that compare a model with recorded behavior in terms of the precision of the model and the extent to which the model generalizes the behavior in the log. Furthermore, several metrics exist to measure the complexity of a model irrespective of the log. In this paper, we show that existing process discovery algorithms typically consider at most two out of the four main quality dimensions: replay fitness , precision , generalization and simplicity . Moreover, existing approaches can not steer the discovery process based on user-defined weights for the four quality dimensions. This paper also presents the ETM algorithm which allows the user to seamlessly steer the discovery process based on preferences with respect to the four quality dimensions. We show that all dimensions are important for process discovery. However, it only makes sense to consider precision, generalization and simplicity if the replay fitness is acceptable.','',2,'Joos C. A. M. BuijsBoudewijn F. van DongenWil M. P. van der Aalst','springer/bpmn security.csv','springer','\0'),(887,'Improving Service Diagnosis through Increased Monitoring Granularity','2013','1','fault localization;online monitoring;residual defect;service framework;simulator','Due to their loose coupling and highly dynamic nature, service-oriented systems offer many benefits for realizing fault tolerance and supporting trustworthy computing. They enable automatic system reconfiguration in case that a faulty service is detected. Spectrum-based fault localization (SFL) is a statistics-based diagnosis technique that can effectively be applied to pinpoint problematic services. It works by monitoring service usage in system transactions and comparing service coverage with pass/fail observations. SFL exhibits poor performance in diagnosing faulty services in cases when services are tightly coupled. In this paper, we study how and to which extent an increase in monitoring granularity can help to improve correct diagnosis of tightly coupled faulty services. We apply SFL in a real service-based system, for which we show that 100% correct identification of faulty services can be achieved through an increase in the monitoring granularity.','Software Security and Reliability (SERE), 2013 IEEE 7th International Conference on',1,'C. Chen; H. G. Gross; A. Zaidman','ieee/service oriented architecture security.csv','ieee','\0'),(888,'Reconfigurable Web Service Composition Using Belief Revision','2012','0',' Service Composition Belief Revision Service Reconfiguration Service Oriented Architecture Web Services','Abstract Web Service Composition is a collection of relevant web services related to the service request. The dynamism in selecting the web services also has several ill impacts like cost, space and time complex. The proposed framework uses a set of beliefs towards each web service, and the revision of those beliefs when there is any transition. The web services selected for composition were based on the level of belief with respect to the other web services. The proposed approach mainly focuses on the reconfiguration of service composition with the help of belief revision algorithm. The algorithm specifies a systematic approach towards service composition.','',1,'Deivamani MallayyaBaskaran Ramachandran','springer/service oriented architecture security.csv','springer','\0'),(889,'Security Assurance of Services through Digital Security Certificates','2013','3','','Service Oriented Computing (SOC) has facilitated a paradigm shift in software provisioning models: software gets consumed as a \"service\" providing enormous benefits, however lack of security assurance of third-party services is hampering their wider adoption in business- and security-critical domains. Security certification typically provides the required assurance, however applying it as is to SOC is infeasible, given that the natural language representation of resulting certificates is a major obstacle for typical SOC scenarios like service discovery, service composition and so on. To overcome the limitations of existing security certificates we present the concept of a digital security certificate for services. It is realized by a language which enables the representation of a security certificate in a structured, machine processable manner that would enable automated reasoning to be performed on them and thus make it feasible for certified security features to be part of typical SOC scenarios.','Web Services (ICWS), 2013 IEEE 20th International Conference on',1,'S. P. Kaluvuri; H. Koshutanski; F. D. Cerbo; A. Maña','ieee/service oriented architecture security.csv','ieee','\0'),(890,'Personalized architectural documentation based on stakeholders’ information needs','2014','1',' Stakeholders Architectural documentation Software architecture Wikis Personalization Recommender systems','Abstract Background The stakeholders of a software system are, to a greater or lesser extent, concerned about its software architecture, as an essential artifact for capturing the key design decisions of the system. The architecture is normally documented in the Software Architecture Document (SAD), which tends to be a large and complex technical description, and does not always address the information needs of every stakeholder. Individual stakeholders are interested in different, sometimes overlapping, subsets of the SAD and they also require varying levels of detail. As a consequence, stakeholders are affected by an information overload problem, which in practice discourages the usage of the architectural knowledge and diminishes its value for the organization. Methods This work presents a semi-automated approach to recommend relevant contents of a given SAD to specific stakeholder profiles. Our approach assumes that SADs are hosted in Wikis, which not only favor communication and interactions among stakeholders, but also enable us to apply User Profiling techniques to infer stakeholders’ interests with respect to particular documents. Results We have built a recommendation tool implementing our approach, which was tested in two experiments with Wiki-based SADs. The experiments aimed at assessing the performance reached by our tool when inferring stakeholders’ interests. To this end, precision and recall metrics were used. Conclusions Although preliminary, the results have shown that the recommendations of the tool help to find the architectural documents that best match the stakeholders’ interests.','Journal of Software Engineering Research and Development',1,'Matias NicolettiJorge Andres Diaz-PaceSilvia SchiaffinoAntonela TommaselDaniela Godoy','springer/soa security.csv','springer','\0'),(891,'6th International Conference on E-Technologies, MCETECH 2015','2015','','','The proceedings contain 19 papers. The special focus in this conference is on Process Adaptation, Legal Issues, Social Computing, eHealth and eBusiness, eEducation and eLogistics. The topics include: Ontology-driven process specialization; towards automating business process compensation scoping logic; specification and detection of business process antipatterns; coping with uncertainty in schema matching: Bayesian networks and agent-based modeling approach; geolocation hazards in geosocial networks; information technology artifacts in the regulatory compliance of business processes; information flow-based security levels assessment for access control systems; understanding consumer participation on companies brand microblogs; recommender engines under the influence of popularity; halo effect on the adoption of mobile payment; a trust certificate model for multi-agent systems; efficient privacy-preserving identity scheme for electronic validation of phase 1 clinical trials; testing policy-based e-health monitoring processes using TTCN-3; parkinson helper emergency notification system using Bayesian belief network; examining the effects of perceived enjoyment and habit on smartphone addiction; teaching enterprise modeling based on multi-media simulation; assessing the potential of RFID technologies on the productivity of a freight forwarder and towards quality-driven SOA systems refactoring through planning.','',1,'[No author name available]','scopus/soa security.csv','scopus',''),(892,'Event driven monitoring of composite services','2013','','BPMN; Complex event processing; Composite services; Monitoring; Security policy; SOA; Trust','The Future Internet will be populated by not just data and devices, but also services. Service-Oriented Architecture (SOA) approaches are allowing new ways for users and developers to manage, control and benefit from the services that are being made available. However, SOA-based applications are highly dynamic and liable to change significantly at runtime. This justifies the need for monitoring composed services throughout the lifetime of service execution. In this paper we present a novel framework for monitoring services at runtime and ensuring that services behave as they have promised. The framework enables monitoring of both atomic and composite services and offers high flexibility through the use of Complex Event Processing (CEP). Services are defined as Business Process Modeling Notation (BPMN) processes which can then be monitored during execution. The use of CEP and monitoring points that are inserted automatically between services allows the method to be more flexible and accurate than existing techniques. © 2013 IEEE.','',2,'Asim M., Llewellyn-Jones D., Lempereur B., Zhou B., Shi Q., Merabti M.','scopus/bpmn security.csv','scopus','\0'),(893,'The AVANTSSAR platform for the automated validation of trust and security of service-oriented architectures','2012','31','','The AVANTSSAR Platform is an integrated toolset for the formal specification and automated validation of trust and security of service-oriented architectures and other applications in the Internet of Services. The platform supports application-level specification languages (such as BPMN and our custom languages) and features three validation backends (CL-AtSe, OFMC, and SATMC), which provide a range of complementary automated reasoning techniques (including service orchestration, compositional reasoning, model checking, and abstract interpretation). We have applied the platform to a large number of industrial case studies, collected into the AVANTSSAR Library of validated problem cases. In doing so, we unveiled a number of problems and vulnerabilities in deployed services. These include, most notably, a serious flaw in the SAML-based Single Sign-On for Google Apps (now corrected by Google as a result of our findings). We also report on the migration of the platform to industry. © 2012 Springer-Verlag Berlin Heidelberg.','',2,'Armando A., Arsac W., Avanesov T., Barletta M., Calvi A., Cappai A., Carbone R., Chevalier Y., Compagna L., Cuéllar J., Erzse G., Frau S., Minea M., Mödersheim S., Von Oheimb D., Pellegrino G., Ponta S.E., Rocchetto M., Rusinowitch M., Torabi Dashti M., Turuani M., Viganò L.','scopus/bpmn security.csv','scopus',''),(894,'PhishTackle-a web services architecture for anti-phishing','2014','','Anti-phishing; E-Commerce security; Phishing; Service-oriented architecture; Web services','Phishing is web based criminal activity of making innocent online users to reveal sensitive information into fake web sites. Such fake web sites lead to fraudulent charges against individuals and corporations. Phishers have a lot of methods to design and host phished web pages, so in reality there cannot be a single solution that can help us combat phishing. As technology advances, the phishing techniques being used are also getting advanced and hence it demands the anti-phishing techniques also to be upgraded and the new techniques are to be included along with the existing methods. But most of the anti-phishing techniques today do not satisfy these criteria. In this paper, we propose service oriented three-layer architecture model for detecting and identifying phishing web sites as it overcomes the shortcomings of existing anti-phishing solutions. This model enables us to separate the user interface layer from the anti-phishing components layer. This is done through web service middleware layer, which provides us with the freedom of building our own anti-phishing components layer in an efficient and flexible way, independent of other layers. Anti-phishing components layer provides a set of reusable components to convert webpage into feature vectors using finest heuristic methods and external repositories of information. The feature vectors act as an input to trained support vector machine classifier to generate phishing label which determines whether a webpage is legitimate or a phishing page. This when experimented, displayed the significance and importance of three-layered architecture model along with combination of heuristics in detection of phishing webpage. This results in high accuracy of 99 % with less than 1 % of false positive rate. © 2013 Springer Science+Business Media New York.','',1,'Gowtham R., Krishnamurthi I.','scopus/service oriented architecture security.csv','scopus','\0'),(895,'DRM cloud framework to support heterogeneous digital rights management systems','2015','0',' Digital rights management Cloud computing Content protection','Abstract The DRM(digital rights management) techniques have been rapidly developed to protect the digital media contents. The growth of smart device and cloud computing makes the environment in which various services can be provided anywhere and anytime, so the DRM technologies have to react to such changes. From this aspect, we previously proposed the architecture of DRM-as-a-Service that provides various functionalities of DRM as some services on the cloud environment, and we referred to it as the DRM Cloud. In this paper, we define a reference model of DRM Cloud to represent some DRM functions that are provided by the DRM Cloud, and several service scenarios are proposed on the DRM Cloud. Also we simulate the DRM Cloud on the testbed and then discuss some security issues and how to handle the interoperability in the DRM Cloud. We conclude that the DRM Cloud allows the content consumers to use many contents with various smart devices, also let the DRM developers and the content service providers reduce the costs of development and business.','Multimedia Tools and Applications',1,'Hyejoo LeeSuwan ParkChangho SeoSang Uk Shin','springer/service oriented architecture security.csv','springer',''),(896,'Detecting and Resolving Firewall Policy Anomalies','2012','21','Firewall;access control;policy anomaly management;visualization tool.','The advent of emerging computing technologies such as service-oriented architecture and cloud computing has enabled us to perform business services more efficiently and effectively. However, we still suffer from unintended security leakages by unauthorized actions in business services. Firewalls are the most widely deployed security mechanism to ensure the security of private networks in most businesses and institutions. The effectiveness of security protection provided by a firewall mainly depends on the quality of policy configured in the firewall. Unfortunately, designing and managing firewall policies are often error prone due to the complex nature of firewall configurations as well as the lack of systematic analysis mechanisms and tools. In this paper, we represent an innovative policy anomaly management framework for firewalls, adopting a rule-based segmentation technique to identify policy anomalies and derive effective anomaly resolutions. In particular, we articulate a grid-based representation technique, providing an intuitive cognitive sense about policy anomaly. We also discuss a proof-of-concept implementation of a visualization-based firewall policy analysis tool called Firewall Anomaly Management Environment (FAME). In addition, we demonstrate how efficiently our approach can discover and resolve anomalies in firewall policies through rigorous experiments.','IEEE Transactions on Dependable and Secure Computing',1,'H. Hu; G. J. Ahn; K. Kulkarni','ieee/service oriented architecture security.csv','ieee',''),(897,'Formal behavioral modeling and compliance analysis for Service-oriented systems','2009','9','','In this paper, we present a framework for formal modeling and verification of service-based business processes with focus on their compliance to external regulations such as Segregation of Duties (SoD) or privacy protection policies. In our framework, control/data flow is modeled using the exogenous coordination language Reo. Reo process models are designed from scratch or (semi-)automatically obtained from BPMN, UML or WS-BPEL specifications. Constraint automata (CA), a semantic model for Reo, provide state-based representations of process workflows and enable their verification by means of model checking technology. Various extensions of CA make it possible to analyze time-, resource- and Quality-of-Service (QoS) process models. © 2009 Springer Berlin Heidelberg.','',2,'Kokash N., Arbab F.','scopus/bpmn security.csv','scopus','\0'),(898,'Computergestützte Prozessauditierung mit Process Mining','2013','0','','Zusammenfassungen Existierende Mechanismen zur Prozessauditierung reichen für einen wirksamen Nachweis der Einhaltung verbindlicher Vorgaben und interner Richtlinien nicht aus. Process-Mining-Verfahren können in diesem Zusammenhang dazu beitragen, die Verlässlichkeit und Aussagekräftigkeit von Analyseergebnissen durch Anwendung von Massendatenanalysen erheblich zu steigern. Dieser Beitrag zeigt am Beispiel eines Einkaufsprozesses die Chancen und derzeitigen Grenzen dieser im Prüfungswesen stark an Bedeutung gewinnenden Technologie.','HMD Praxis der Wirtschaftsinformatik',1,'Thomas Stocker M.Sc.Dr.-Ing. Rafael AccorsiTobias Rother','springer/soa security.csv','springer','\0'),(899,'On Applying FMEA to SOAs: A Proposal and Open Challenges','2014','1',' business-critical services SOA verification validation FMEA','Abstract Service Oriented Architectures (SOAs) are being increasingly used to support business-critical systems, raising natural concerns regarding dependability and security attributes. In critical applications, Verification and Validation (V&V) practices are used during system development to achieve the desired level of quality. However, most V&V techniques suit a structured and documented development lifecycle, and assume that the system does not evolve after deployment, contrarily to what happens with SOA. Runtime V&V practices represent one possible solution for this problem, but they are not possible to implement without the adjustment of traditional V&V techniques. This paper studies the adaptation of Failure Mode and Effects Analysis (FMEA) to SOA environments. A preliminary technique named FMEA4SOA is proposed and a case study is used to illustrate its usage. This process raises many challenges that must be overcome for the FMEA4SOA to become usable and effective V&V in SOA environments. The paper discusses these challenges while proposing a research roadmap.','',1,'Cristiana AreiasNuno AntunesJoão Carlos Cunha','springer/service oriented architecture security.csv','springer','\0'),(900,'A Pattern Approach to Conquer the Data Complexity in Simulation Workflow Design','2014','0','','Abstract Scientific workflows may be used to enable the collaborative implementation of scientific applications across various domains. Since each domain has its own requirements and solutions for data handling, such workflows often have to deal with a highly heterogeneous data environment. This results in an increased complexity of workflow design. As scientists typically design their scientific workflows on their own, this complexity hinders them to concentrate on their core issue, namely the experiments, analyses, or simulations they conduct. In this paper, we present a novel approach to a pattern-based abstraction support for the complex data management in simulation workflows that goes beyond related work in similar research areas. A pattern hierarchy with different abstraction levels enables a separation of concerns according to the skills of different persons involved in workflow design. The goal is that scientists are no longer obliged to specify low-level details of data management in their workflows. We discuss the advantages of this approach and show to what extent it reduces the complexity of simulation workflow design. Furthermore, we illustrate how to map patterns onto executable workflows. Based on a prototypical implementation of three real-world simulations, we evaluate our approach according to relevant requirements.','',2,'Peter ReimannHolger SchwarzBernhard Mitschang','springer/bpel security.csv','springer',''),(901,'Requirements for Ad-hoc Geo-referenced BPM with Microblogging','2014','1',' BPM GIS geo-referenced processes ad-hoc BPM','Abstract There are many scenarios in which business processes will benefit from the integration of geographical information for its management. In this paper we discuss a set of requirements for ad-hoc geo-referenced Business Process Management (BPM), noting in particular the conflicts between spatial and task dependencies when coordinating activities. We suggest the predominance of spatial dependencies and propose the integration of process models in georeferencing tools. We analyse the communication needs of geo-referenced and BPM processes and suggest the adoption of microblogging platforms for coordination support. We also discuss the implementation of an ad-hoc georeferenced BPM tool, specify the microblogging messages needed to coordinate georeferenced activities, and discuss a preliminary formative evaluation of the proposed implementation.','',2,'Pedro AntunesGustavo ZuritaNelson Baloian','springer/bpmn security.csv','springer',''),(902,'BPMashup: Dynamic Execution of RESTful Processes','2013','1','','Introduction While WS*-based Service-Oriented Architecture (SOA) is employed heavily in the enterprise application & integration space, end-user-oriented organizations such as Facebook, Google or Yahoo! adopted the REST paradigm. Web service ecosystems [1] have been established around web service offerings like social networking, where open platforms enable third-party developers to easily leverage the infrastructure provided by the social networks, to build web applications and plugged-in services for a massive user base. Such a web service ecosystem typically comprises a service provider opening up their product public service platform, a set of external value-added-resellers, and a community of users building and sharing customizations [2]. The lower layers of the traditional SOA-based WS* standards stack provide a loosely coupled infrastructure for Web service ecosystems. However, process layers on top of the standards stack introduce a comparatively tight coupling between the process logic and the WSDL interface definition [3], which tends to be brittle.','',2,'Xiwei XuIngo WeberLiming ZhuYan LiuPaul RimbaQinghua Lu','springer/bpel security.csv','springer','\0'),(903,'Service Scheduling Algorithm in Vehicle Embedded Middleware','2014','0',' OSGi middleware SOA vehicle','Abstract Due to different hardware environments of different vehicle electronic control units, the reusability of vehicle electronic software is reduced, which hinders the development of vehicle electronics. First, in this paper, we proposed a SOA-based middleware for vehicular embedded system, which makes it possible for each ECU to dispatch and receive data on the bus by service, it will hide the underlying heterogeneity. Second, on the basis of the vehicular service scheduling algorithm, a priority allocation algorithm based on criticality level is proposed. This algorithm makes the transmission of all interior services more efficient. Third, simulation results show that our algorithm has a higher scheduling ratio when the number of tasks is increased to a certain amount.','',1,'Juan LuoXin JinFeng Wu','springer/service oriented architecture security.csv','springer','\0'),(904,'COAST: An Architectural Style for Decentralized On-Demand Tailored Services','2012','0','client-driven adaptation;decentralized systems;service-oriented architectures;software architecture','Decentralized systems are systems-of-systems whose services are governed by two or more separate organizations under distinct spheres of authority. Coordinated evolution of the various elements of a decentralized system may be difficult, if not impossible, as individual organizations evolve their service offerings in response to organization- and service-specific pressures, including market demand, technology, competitive and cooperative interests, and funding. Consequently, decentralized services offer unique challenges for evolution and adaptation that reach well beyond any one single organizational boundary. However, client-driven service customization and tailoring is a powerful tool for meeting conflicting, independent client demands in an environment where disorderly and uneven service evolution predominates. To this end, we contribute an architectural style, COmputAtional State Transfer (COAST), designed to provide extensive, safe, and secure client-directed customization of decentralized services. COAST combines mechanisms from software architecture, cryptography, security, and programming languages, granting application architects flexible provisioning of their core services and assets while protecting those services and assets from attack and misuse.','Software Architecture (WICSA) and European Conference on Software Architecture (ECSA), 2012 Joint Working IEEE/IFIP Conference on',1,'M. M. Gorlick; K. Strasser; R. N. Taylor','ieee/service oriented architecture security.csv','ieee','\0'),(905,'Securing an Interoperability Architecture for Home and Urban Networking: Implementation of the Security Aspects in the INREDIS Interoperability Architecture','2012','1','authentication;authorization;heterogeneous systems;interoperability','The increasing density of the electronic devices in everyday activities is turning system interoperability into an emerging research scenario with a clear impact on life quality. Interoperability architectures try to overcome the complexity related to the heterogeneous procedures, interfaces and access protocols required to operate devices by providing users a single control point on their electronic environment. The INREDIS project has addressed this challenge by designing a cloud based service-oriented architecture to be deployed both on home and outdoor scenarios aimed to enhance the interoperability capabilities with accessibility features. In this paper we describe the specific security challenges that have been addressed and how a heterogeneous interoperability architecture involving a wide range set of electronic devices could be secured from a unified approach. The deployed infrastructure, built upon server-based security in combination with digital certificates, has provided promising outcomes through the target deployment scenarios. In addition, further research lines on securing interoperability for devices with constrained resources have also been described.','Advanced Information Networking and Applications Workshops (WAINA), 2012 26th International Conference on',1,'R. Gimenez; M. Pous; F. Rico-Novella','ieee/service oriented architecture security.csv','ieee','\0'),(906,'Developing Re-usable Components Based on the Virtual-MVC Design Pattern','2013','1',' Design Patterns Model-View-Controller Service Oriented Architecture Web Services E-Learning','Abstract In modern complex enterprise applications re-usability and interoperability of software components are of vital importance due to the increasing heterogeneous development platforms and variety of end user devices in which computational services need to be exposed. The need of code solutions re-usability led to the development of Design Patterns, which are means to encapsulate proven solutions to recurrent problems and they provide developers with a common language to abstract the logic encrypted under source code implementation structures. In this article we focus on the Model-View-Controller (MVC) design pattern. Although it represented a step forward for components re-usability, the model and view are still coupled compromising the business logic and introducing a degree of complexity for the applications development. We discuss two main variations of the MVC pattern that are aiming to complete decoupling of Model from View, as well as platforms supporting the development of MVC based applications. Our research is based on the original Virtual-MVC design pattern, in which we model the controller as middleware to achieve full decoupling of the model from view. Our main contribution is to demonstrate the development process of re-usable components in the framework of the V-MVC pattern, through a development platform that supports Virtual-MVC based applications.','',1,'Ruth CortezAlexander Vazhenin','springer/service oriented architecture security.csv','springer','\0'),(907,'Social BIMCloud: a distributed cloud-based BIM platform for object-based lifecycle information exchange','2015','1',' Building information modeling Cloud computing Distributed data storage Partial information exchange Social interaction','Abstract Background The architecture, engineering and construction (AEC) industry lacks a framework for capturing, managing, and exchanging project, product, and social information over the lifecycle of a building. The current tools have various limitations, such as lack of interoperability, slow to transfer huge building model files, and possibility of data inconsistency. Methods In this paper, we present a cloud-based BIM server framework namely Social BIMCloud that facilitates BIM information exchange through dynamic merging and splitting of building models. The data model of Social BIMCloud is based on but not limited to IFC. The data model of Social BIMCloud was further extended to accommodate social interactions, by studying the formal modes of communication in the AEC industry. An object-based approach to capture and manage social interactions in AEC projects through a BIM-based visual user interface was also developed and demonstrated. Results Social BIMCloud addresses the issues of inefficient data transfer speed and data inconsistency in a distributed environment by facilitating the storage and partial exchange of integrated nD BIM models. Data interoperability is facilitated through open BIM standards such as IFC and direct integration with construction software. High performance, scalability, fault tolerance, and cost effectiveness are facilitated through data partitioning, data replication strategies, multi-node structures, and pay-per-use tariff systems, respectively, through a cloud-based NoSQL database. Conclusion The Social BIMCloud framework helps to develop and exchange BIM models, which are rich in project information such as social interactions, cost, and energy analyses. This framework improves the communication efficiency between project participants, leading to better designs and less rework. The information captured by this framework could also be useful to determine important metrics such as industry trends, relationships among project participants, and user requirements.','Visualization in Engineering',2,'Moumita DasJack CP ChengSrinath S Kumar','springer/bpel security.csv','springer',''),(908,'Maintaining Trust in Cloud Computing through SLA Monitoring','2014','3',' Service level agreement monitoring cloud computing maintaining trust cloud monitoring SLA monitoring metrics proactive SLA monitoring hierarchical self-monitoring','Abstract Maintaining trust in cloud computing is a significant challenge due to the dynamic nature of cloud computing and the fragility of trust. Trust can be established by conducting successful transactions and meeting all the parameters of the Service Level Agreement (SLA) drawn up between two interacting parties. Trust can be maintained by continuous monitoring of these predefined SLA parameters. There are number of commentaries on SLA monitoring that describe different frameworks for the proactive or reactive detection of SLA violations. The aim of this research is to present an overview of the literature and make a comparative analysis of SLA monitoring in respect of trust maintenance in cloud computing.','',1,'Walayat HussainFarookh Khadeer HussainOmar Khadeer Hussain','springer/service oriented architecture security.csv','springer','\0'),(909,'BSWB: To construct sound workflow model','2011','','business process; workflow modeling; workflow pattern; workflow soundness; workflow specification','With the development of workflow technology and the mature of corresponding modeling tools, more and more enterprise businesses are processed by workflow system. Although so many model methods, such as WF-net, Petrinet, BPMN and SCXML, etc., are proposed, it is a difficult task to guarantee the soundness property of workflow model. Generally, this problem is handled by soundness analysis after the design of workflow models. In this paper, a new method BUM (bottom-up model), which based on BSWB (Basic Sound Workflow Block), is proposed. Rather than analysis the soundness of workflow specification after the model is built, BSWB uses sound workflow blocks to construct workflow model. Thus, the soundness property can be guaranteed. Additionally, BSWB can construct workflow specification in different abstract levels which is very useful for understanding and maintaining workflow systems. With this method, workflow systems can be designed and maintained flexibly and economically. © 2011 IEEE.','',2,'An H., Xu Y., Ma Z., Liu L., Chen X.','scopus/bpmn security.csv','scopus','\0'),(910,'Towards a Formal Integrated Model of Collaborative Healthcare Workflows','2012','3',' Integrated health information systems collaborative workflows infrastructure model CSP formal verification','Abstract Health information systems (HIS) are becoming increasingly integrated through network communication technologies. Collaborative healthcare workflows (CHWF) are inherently complex, involving interactions among human actors, and (legacy) digital and physical systems. They are mission safety critical, privacy sensitive, and open to changes of requirements and environments. The complexity makes the definition, understanding, analysis, management, and monitoring of CHWF a software engineering challenge. We propose an approach to formal modeling and analysis of CHWF. The main problems that the approach addresses are abstraction and separation of concerns through algebraic manipulation. We use the CSP process algebra for modeling and verifying the dynamic interaction behavior of processes, and discuss the relation between the dynamic model and the static model of healthcare cases and resources. We use UML models to visualize the system’s behavior and structure, but definitions of the syntax and semantics of these graphical models and their relation to the CSP models are left for future work.','',2,'Cristiano BertoliniMartin SchäfVolker Stolz','springer/bpel security.csv','springer','\0'),(911,'A taxonomic framework for autonomous service management in Service-Oriented Architecture','2012','2','Key words Service-Oriented Architecture (SOA) Autonomic computing (AC) Cause taxonomy Services Faults Causes Adaptation CLC number TP311','Abstract Since Service-Oriented Architecture (SOA) reveals the black box nature of services, heterogeneity, service dynamism, and service evolvability, managing services is known to be a challenging problem. Autonomic computing (AC) is a way of designing systems that can manage themselves without direct human intervention. Hence, applying the key disciplines of AC to service management is appealing. A key task of service management is to identify probable causes for symptoms detected and to devise actuation methods that can remedy the causes. In SOA, there are a number of target elements for service remedies, and there can be a number of causes associated with each target element. However, there is not yet a comprehensive taxonomy of causes that is widely accepted. The lack of cause taxonomy results in the limited possibility of remedying the problems in an autonomic way. In this paper, we first present a meta-model, extract all target elements for service fault management, and present a computing model for autonomously managing service faults. Then we define fault taxonomy for each target element and inter-relationships among the elements. Finally, we show prototype implementation using cause taxonomy and conduct experiments with the prototype for validating its applicability and effectiveness.','Journal of Zhejiang University SCIENCE C',1,'Du Wan CheunHyun Jung LaSoo Dong Kim','springer/soa security.csv','springer','\0'),(912,'How Do Software Architects Specify and Validate Quality Requirements?','2014','3',' Software architecture empirical study quality requirements validation','Abstract Software architecture is the result of a design effort aimed at ensuring a certain set of quality attributes. As we show, quality requirements are commonly specified in practice but are rarely validated using automated techniques. In this paper we analyze and classify commonly specified quality requirements after interviewing professionals and running a survey. We report on tools used to validate those requirements and comment on the obstacles encountered by practitioners when performing such activity ( e.g. , insufficient tool-support; poor understanding of user’s needs). Finally we discuss opportunities for increasing the adoption of automated tools based on the information we collected during our study ( e.g. , using a business-readable notation for expressing quality requirements; increasing awareness by monitoring non-functional aspects of a system).','',2,'Andrea CaraccioloMircea Filip LunguOscar Nierstrasz','springer/bpel security.csv','springer',''),(913,'FoxOA with FoxSWF illegal and unhealthy information reporting system SOA-based integration calculation’s research and application','2015','','','Summary of current common OA and specific business systems integration computing applications mostly belonging to a tightly coupled system integration methods, its impact system flexibility scalability, the underlying business processes impede adjustment and optimization. This paper presents a new Service-Oriented Architecture (SOA) of OA (FoxOA) with specific business system (FoxSWF) integrated computing solutions. It can not only ensure that the original system data and logical security, but also to achieve loose coupling between systems to facilitate enterprises and business process reengineering and optimization. It implements the complementary advantages of the two systems, protecting existing IT infrastructure investments. © 2015 Taylor & Francis Group, London.','',1,'Li J.Y., Liu Y.F., Liu Y., Zhang L.','scopus/service oriented architecture security.csv','scopus',''),(914,'A framework for benchmarking BPMN 2.0 workflow management systems','2015','','Benchmarking; BPMN 2.0; Workflow management systems','The diverse landscape of Workflow Management Systems (WfMSs) makes it challenging for users to compare different solutions to identify the ones most suitable to their requirements. Thus a comparison framework that would define common grounds in many different aspects, such as price, reliability, security, robustness and performance is necessary. In this paper we focus on the performance aspect, and we present a framework for automatic and reliable calculation of performance metrics for BPMN 2.0 WfMSs. We validate the framework by applying it on two open-source WfMSs. The goal is to contribute to the improvement of existing WfMSs by pinpointing performance bottlenecks, and to empower end users to make informed decisions when selecting a WfMS. © Springer International Publishing Switzerland 2015.','',2,'Ferme V., Ivanchikj A., Pautasso C.','scopus/bpmn security.csv','scopus',''),(915,'Tailoring Agent Platforms with Software Product Lines','2015','0','','Abstract Agent platforms have been conceived traditionally as middleware, helping to deal with various application challenges like agent programming models, remote messaging, and coordination protocols. A middleware is typically a bundle of functionalities necessary to execute multi-agent applications. In contrast to this traditional view, nowadays different use cases also for selected agent concepts have emerged requiring also different kinds of functionalities. Examples include a platform for conducting multi-agent simulations, intelligent agent behavior models for controlling non-player characters (NPCs) in games and a lightweight version suited for mobile devices. A one-size-fits-all software bundle often does not sufficiently match these requirements, because customers and developers want solutions specifically tailored to their needs, i.e. a small but focused solution is frequently preferred over bloated software with extraneous functionality. Software product lines are an approach suitable for creating a series of similar products from a common code base. In this paper we will show how software product line modeling and technology can help creating tailor-made products from multi-agent platforms. Concretely, the Jadex platform will be analyzed and a feature model as well as an implementation path will be presented.','',1,'Lars BraubachAlexander PokahrJulian KalinowskiKai Jander','springer/microservice security.CSV','springer',''),(916,'Using COBIT 5 for Risk to Develop Cloud Computing SLA Evaluation Templates','2015','0',' Cloud computing Cloud users Cloud providers Service level agreements Software as a service Platform as a service Infrastructure as a service Everything as a service COBIT 5 for risk','Abstract The use of cloud services as a business solution keeps growing, but there are significant associated risks that must be addressed. Despite the advantages and disadvantages of cloud computing, service integration and alignment with existing enterprise architecture remains an ongoing priority. Typically, quality of services provided is outlined in a service level agreement (SLA). A deficient template for evaluating, negotiating and selecting cloud SLAs could result in legal, regulatory, and monetary penalties, in addition to loss of public confidence and reputation. This research emphasizes (or advocates) the implementation of the proposed SLA evaluation template aimed at cloud services, based on the COBIT 5 for Risk framework. A gap analysis of existing SLAs was done to identify loopholes, followed by a resultant template where identified gaps were addressed.','',1,'Onyeka IllohShaun AghiliSergey Butakov','springer/service oriented architecture security.csv','springer',''),(917,'TOSCA in a Nutshell: Promises and Perspectives','2014','0','','Abstract How to deploy and flexibly manage complex multi-service applications in the cloud is one of the emerging problems in the cloud era. The OASIS Topology and Orchestration Specification for Cloud Applications (TOSCA) [1] aims at contributing to solve this problem by providing a language to describe and manage complex cloud applications in a portable, vendor-agnostic way. The objective of this paper is twofold: To provide a compact and easy-to-access introduction to TOSCA, and to discuss possible research directions for TOSCA.','',2,'Antonio BrogiJacopo SoldaniPengWei Wang','springer/bpel security.csv','springer',''),(918,'Application and Economic Implications of an Automated Requirement-Oriented and Standard-Based Compliance Monitoring and Reporting Prototype','2010','0','IS security;IT compliance;IT risk management;business process management','Compliance management is a challenging task affected by continuously increasing legal requirements. Compliance with legal requirements can be assured by the incorporation of control activities into business processes. But the maintenance and monitoring of these control activities is a complex, time-consuming and often manual task. However, the timely communication of control exceptions is an important factor for the success of compliance management. The present paper presents an innovative prototypical implementation of an automated compliance monitoring and reporting system. This system is based on established standards and existing technologies. In particular, business processes are notated in BPMN and modeled in XPDL, control activities are linked to risks using COSO, control exceptions are defined using SWRL and access control data is transformed from proprietary models to XACML. The development of the prototype was aligned with common design-science research. The application of the developed prototype and its economic implications are concisely discussed with respect to different business requirements and information needs.','Availability, Reliability, and Security, 2010. ARES \'10 International Conference on',2,'M. Kehlenbeck; T. Sandner; M. H. Breitner','ieee/bpmn security.csv','ieee','\0'),(919,'Architecture evolution and evaluation (ArchEE) capability','2011','','Business Process Modeling Notation (BPMN); Information Technology (IT); Mission Level Modeling (MLM); Qualitative Analysis; Simulation; Systems of Systems Engineering (SoSE)','IT Architectures, rather than being static, must now constantly evolve and adapt to changes driven by new technologies, increasing business partnerships, and end-user expectations. In addition, continuously increasing architecture complexity demands for a rigorous evaluation of performance. ArchEE, a BPMN model-based systems engineering capability, fulfills the emerging SoSE need of making informed evolution decisions of mission oriented IT architectures in a timely manner. The ArchEE model structure facilitates simultaneous evolutions of operational and systems architecture components by different stakeholders. It also enables rapid integration of component models for alternative architectures for a specific mission and its evaluation via simulation. ArchEE uses the same model for qualitative and quantitative analysis throughout the SoSE process. This paper describes and illustrates the ArchEE capability via Fire and Counter-fire battle management scenarios, comparing the mission effectiveness of the new design against the existing systems. © 2011 IEEE.','',2,'Jain P.','scopus/bpmn security.csv','scopus','\0'),(920,'Privacy protection for RBAC in service oriented architecture','2013','','Privacy Protection; Role-based Access Control; Service Oriented Architecture; XACML','Service Oriented Architecture (SOA) changes the way of conducting business by opening their services to the larger business world over the networks. However, the \'open\' and \'interoperable\' properties of SOA make privacy a sensitive security issue. In SOA, service providers (SPs) limit permission of access to specific authorized Access Requestors (ARs). SPs need to verify ARs\' identity information, but ARs may not willing to disclose their privacy to unknown SPs in an open system. To solve this conflict in SOA environment, we propose privacy preserving protocols for role-based access control (RBAC) in the SOA environment. The security analysis demonstrates that our protocols are privacy protected. © 2013 IEEE.','',1,'Ye Y., Yang C.','scopus/service oriented architecture security.csv','scopus','\0'),(921,'Brain Radiation Information Data Exchange (BRIDE): integration of experimental data from low-dose ionising radiation research for pathway discovery','2016','0',' Low-dose ionising radiation Data integration Brain research Omics technologies Systems biology','Abstract Background The underlying molecular processes representing stress responses to low-dose ionising radiation (LDIR) in mammals are just beginning to be understood. In particular, LDIR effects on the brain and their possible association with neurodegenerative disease are currently being explored using omics technologies. Results We describe a light-weight approach for the storage, analysis and distribution of relevant LDIR omics datasets. The data integration platform, called BRIDE, contains information from the literature as well as experimental information from transcriptomics and proteomics studies. It deploys a hybrid, distributed solution using both local storage and cloud technology. Conclusions BRIDE can act as a knowledge broker for LDIR researchers, to facilitate molecular research on the systems biology of LDIR response in mammals. Its flexible design can capture a range of experimental information for genomics, epigenomics, transcriptomics, and proteomics. The data collection is available at: .','BMC Bioinformatics',1,'Christos KarapiperisStefan J. KempfRoel QuintensOmid AzimzadehVictoria Linares VidalSimonetta PazzagliaDimitry BazykaPier G. MastroberardinoZacharias G. ScourasSoile TapioMohammed Abderrafi BenotmaneChristos A. Ouzounis','springer/service oriented architecture security.csv','springer',''),(922,'SONA: A service oriented nodes architecture for developing Cloud Computing applications','2013','0','Cloud Computing advantages/challenges;Cloud Computing applications;Cloud Computing architectures;Service Oriented Nodes Architecture (SONA);Star Architecture','The main goal of this paper firstly is to propose a new definition for the term `Cloud Computing\' which helps understanding it more clearly from the perspective of developing Cloud Computing applications. The second one is to build a general architecture for developing Cloud Computing applications which provides a starting point for further discussion and possible coordination with other work to build a standard methodology for developing Cloud Computing applications. The new architecture, Service Oriented Nodes Architecture (SONA), is a multi-node architecture which is suitable for building/developing Cloud Computing applications from scratch with different contexts. It consists of three nodes (1) Client/Developer Node, (2) Interface/Intermediate Node, and (3) the Cloud Node. All of these nodes have its own functions/roles and is oriented to deliver/use/provide services, so the architecture is called by that name. Also, this paper offers an initial exploratory analysis of key Cloud Computing concepts such as, Cloud Computing definition, advantages/challenges, best suited Cloud Computing applications area, and finally the STAR architecture, which is the base architecture of this work.','Advanced Computing and Communication Systems (ICACCS), 2013 International Conference on',1,'S. A. Zaki Hassan','ieee/service oriented architecture security.csv','ieee','\0'),(923,'Application Traffic Activity Graph Analysis','2012','0','','','',1,'Yu JinEsam SharafuddinZhi-Li Zhang','springer/service oriented architecture security.csv','springer','\0'),(924,'Evaluation and recommendations on IPv6 for the Internet of Things','2015','','6LoWPAN;CoAP;IPv6;Internet of Things;Machine-to-Machine;addressing;cloud computing;integration;interoperability;scalability','This article presents some key achievements and recommendations from the IoT6 European research project on IPv6 exploitation for the Internet of Things (IoT). It highlights the potential of IPv6 to support the integration of a global IoT deployment including legacy systems by overcoming horizontal fragmentation as well as more direct vertical integration between communicating devices and the cloud.','Internet of Things (WF-IoT), 2015 IEEE 2nd World Forum on',1,'S. Ziegler; A. Skarmeta; P. Kirstein; L. Ladid','ieee/service oriented architecture security.csv','ieee',''),(925,'Supporting aspect orientation in business process management','2015','0',' Business process management Aspect-oriented decomposition Process modelling Process enactment Weaving Cross-cutting concerns','Abstract Coping with complexity is an important issue in both research and industry. One strategy to deal with complexity is separation of concerns, which can be addressed using aspect-oriented paradigm. Despite being well researched in programming, this paradigm is still in a preliminary stage in the area of business process management (BPM). While some efforts have been made to introduce aspect orientation in business process modelling, there is no holistic approach with a formal underlying foundation to support aspect-oriented business process design and enactment, and this gap restricts aspect-oriented paradigm from being practically deployed in the area of BPM. Therefore, this paper proposes a sound systematic approach which builds on a formal syntax for modelling aspect-oriented business processes and a Petri Net-based operational semantics for enacting these processes. The approach enables the implementation of software system artefacts as a proof of concept to support design and enactment of aspect-oriented business processes in practice. The approach is demonstrated using a banking case study, where processes are modelled using a concrete notation that conforms to the proposed formal syntax and then executed in a state-of-the-art BPM system where the implemented artefacts are deployed.','Software & Systems Modeling',2,'Amin JalaliChun OuyangPetia WohedPaul Johannesson','springer/bpel security.csv','springer',''),(926,'Access Control for Human Tasks in Service Oriented Architecture','2008','1','Access Control;BPEL;BPEL4People;Business Process;Web Service','Business process management is designed to make business activity coordination easier and more cost effective. WS-BPEL and BPEL4People extension together coordinate the web services and human activities within business process. However, the increasing business integration and legal requirements raise the need for secure business processes. The openness and distribution nature of inter-organisational business processes may result in more security breaches. Existing standards does not provide any support for business process security protection even if the participating organisations already have a working security policy. To address this problem, we extend traditional RBAC model to access control capability into business process environment. And an extension for WS-BPEL is also developed to represent the authorisation information in a formal manner.','e-Business Engineering, 2008. ICEBE \'08. IEEE International Conference on',2,'X. Wang; Y. Zhang; H. Shi','ieee/bpel security.csv','ieee','\0'),(927,'A framework for cloud-based context-aware information services for citizens in smart cities','2014','1',' Smart cities Citizen services Context-awareness Cloud computing Public awareness Decision-making','Abstract Background In the context of smart cities, public participation and citizen science are key ingredients for informed and intelligent planning decisions and policy-making. However, citizens face a practical challenge in formulating coherent information sets from the large volumes of data available to them. These large data volumes materialise due to the increased utilisation of information and communication technologies in urban settings and local authorities’ reliance on such technologies to govern urban settlements efficiently. To encourage effective public participation in urban governance of smart cities, the public needs to be facilitated with the right contextual information about the characteristics and processes of their urban surroundings in order to contribute to the aspects of urban governance that affect them such as socio-economic activities, quality of life, citizens well-being etc. The cities on the other hand face challenges in terms of crowd sourcing with quality data collection and standardisation, services inter-operability, provisioning of computational and data storage infrastructure. Focus In this paper, we highlight the issues that give rise to these multi-faceted challenges for citizens and public administrations of smart cities, identify the artefacts and stakeholders involved at both ends of the spectrum (data/service producers and consumers) and propose a conceptual framework to address these challenges. Based upon this conceptual framework, we present a Cloud-based architecture for context-aware citizen services for smart cities and discuss the components of the architecture through a common smart city scenario. A proof of concept implementation of the proposed architecture is also presented and evaluated. The results show the effectiveness of the cloud-based infrastructure for the development of a contextual service for citizens.','Journal of Cloud Computing',2,'Zaheer KhanSaad Liaquat KianiKamran Soomro','springer/bpel security.csv','springer',''),(928,'The MIDAS Cloud Platform for Testing SOA Applications','2015','0','','While Service Oriented Architectures (SOAs) are for many parts deployed online, and today often in a cloud, the testing of the systems still happens mostly locally. In this paper, we want to present the MIDAS Testing as a Service (TaaS), a cloud platform for the testing of SOAs. We focus on the testing of whole SOA orchestrations, a complex task due to the number of potential service interactions and the increasing complexity with each service that joins an orchestration. Since traditional testing does not scale well with such a complex setup, we employ a Model-based Testing (MBT) approach based on the Unified Modeling Language (UML) and the UML Testing Profile (UTP) within MIDAS. Through this, we provide methods for functional testing, security testing, and usage-based testing of service orchestrations. Through harnessing the computational power of the cloud, MIDAS is able to generate and execute complex test scenarios which would be infeasible to run in a local environment.','2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST)',1,'S. Herbold; A. De Francesco; J. Grabowski; P. Harms; L. M. Hillah; F. Kordon; A. P. Maesano; L. Maesano; C. Di Napoli; F. De Rosa; M. A. Schneider; N. Tonellotto; M. F. Wendland; P. H. Wuillemin','ieee/service oriented architecture security.csv','ieee','\0'),(929,'A Novel Substitution Judgment Method for Mobile Cloud Computing Application System Components','2014','0','Mobile cloud computing;Pi-calculus;service oriented architecture;service substitution','Mobile cloud computing is a novel computing model, which integrates the cloud computing into the mobile environment and overcomes obstacles related to the performance, environment and security discussed in mobile computing. For a mobile cloud computing application system (MCCS), reliable components substitution is an important issue for troubleshooting and system upgrading. In this paper, this issue is equated to MCCS services substitution based on a service-oriented architecture of MCCS. Further, a formal method for modeling MCCS service is proposed based on space-time Pi-calculus, which is presented through introducing location and time operators into classical Pi-calculus. Then, a decision theorem for MCCS service substitution is put forward according to the relationship between service compatibility and substitution. Finally, a case study is performed to show that how to apply this method to ensure MCCS components substitution. The experiment result shows that it is reasonable and feasible.','Cloud Computing Technology and Science (CloudCom), 2014 IEEE 6th International Conference on',1,'P. Wang; L. Yang; G. W. Li; X. Gao','ieee/service oriented architecture security.csv','ieee','\0'),(930,'An approach to automating the integration of the access control policies for web services','2013','1','Access Control Polices; Coordinating; Model Driven Architecture; Model Transformation; Quality of Service; Web services','Access Control Policies are one of the key challenges affecting Service oriented Architectures (SoA). This is due to the nature of SoA, which is based on the distributed invocations of Web services. This makes it crucial to develop a method of on-line assignment for Access Control Policies and Web services. This paper proposes a service referred to as Access Control Policies (AC Polices), which allows the simulation and verification of information flow security for access control policies. It extends an existing approach that was proposed to coordinate invocations of Web services from a performance perspective, to harnesses the capability of Model-Driven Architecture (MDA) to automate the creation and integration of the Protocol Service and Access Control Policies (AC Polices) service, which are computed, generated and integrated automatically into the system. As a proof of the concept, the suggested approach was implemented in the form of an Oracle JDeveloper plugin. The paper concludes with the empirical results, detailing the performance-related aspects of the proposed method. © 2013 IEEE.','',1,'Alodib M.','scopus/service oriented architecture security.csv','scopus','\0'),(931,'VULCAN: Vulnerability Assessment Framework for Cloud Computing','2013','3','Cloud Computing;Ontology;Vulnerability Assessment','Assessing security of software services on Cloud is complex because the security depends on the vulnerability of infrastructure, platform and the software services. In many systems, the platform or the infrastructure on which the software will actually run may not be known or guaranteed. This implies that the security of the software service must be assured regardless of the underlying infrastructure or platform, requiring a large number of combinations. Another common trend in Cloud and Service oriented Architecture (SoA) environments is Service composition, whereby new services can be created rapidly by composing existing services. Once again, the component services must be tested for security levels on a large number of platform and infrastructure combinations. In this paper we propose a novel vulnerability assessment framework for cloud computing systems. We have designed and developed a prototype of our framework. We also present the design and development of our framework with some use cases.','Software Security and Reliability (SERE), 2013 IEEE 7th International Conference on',1,'P. Kamongi; S. Kotikela; K. Kavi; M. Gomathisankaran; A. Singhal','ieee/service oriented architecture security.csv','ieee','\0'),(932,'Service-oriented architecture based on biometric using random features and incremental neural networks','2012','2',' Face verification Random projection Biometrics Large-scale problem ELM Online learning Biometric template protection','Abstract We propose a service-oriented architecture based on biometric system where training and classification tasks are used by millions of users via internet connection. Such a large-scale biometric system needs to consider template protection, accuracy and efficiency issues. This is a challenging problem since there are tradeoffs among these three issues. In order to simultaneously handle these issues, we extract both global and local features via controlling the sparsity of random bases without training. Subsequently, the extracted features are fused with a sequential classifier. In the proposed system, the random basis features are not stored for security reason. The non-training based on feature extraction followed by a sequential learning contributes to computational efficiency. The overall accuracy is consequently improved via an ensemble of classifiers. We evaluate the performance of the proposed system using equal error rate under a stolen-token scenario. Our experimental results show that the proposed method is robust over severe local deformation with efficient computation for simultaneous transactions. Although we focus on face biometrics in this paper, the proposed method is generic and can be applied to other biometric traits.','Soft Computing',1,'Kwontaeg ChoiKar-Ann TohYoungjung UhHyeran Byun','springer/service oriented architecture security.csv','springer','\0'),(933,'Distributed security policies for service-oriented architectures over tactical networks','2015','','','Whilst tactical networks must provide basic functionality over highly restricted networks including basic VHF links and should tolerate outright disruption and partitioning, it is highly desirable to provide access to richer services available within the tactical network, from higher-level units, or through cyber foraging. The resulting requirement to also invoke services asynchronously or to delegate authority while also incorporating constraints and obligations limits the effectiveness of conventional access control mechanisms. Centralised security policy decisions are also undesirable, and as policies will evolve over the course of a mission, mere replication is also insufficient. In this paper we describe a distributed security policy mechanism based on the tactical nodes\' specializations, where policies can be partitioned based on security domains, network layers and kinetic tasks represented by Boyd\'s OODA-loop (Observe, Orient, Decide and Act loop). This permits security policy decisions incorporating services\' protection goals and constraints based on inference mechanisms dealing with mission\'s current context.','Military Communications Conference, MILCOM 2015 - 2015 IEEE',1,'R. R. F. Lopes; S. D. Wolthusen','ieee/service oriented architecture security.csv','ieee',''),(934,'Using SecureBPMN for Modelling Security-Aware Service Compositions','2014','0',' SecureBPMN BPMN Access Control Confidentiality','Abstract Today, many systems are built by orchestrating existing services, custom developed services, as well as interaction with users. These orchestrations, also called composition plans, are often described using high-level modelling languages that allow for simplifying 1) the implementation of systems by using generic execution engines and 2) the adaption of deployed systems to changing business needs. Thus, composition plans play an important role for both communicating business requirements between domain experts and system experts, and serving as a basis for the system implementation. At the same time, ICT systems need to fulfil an increasing number of security and compliance requirements. Thus, there is a demand for integrating security and compliance requirements into composition plans. We present SecureBPMN, a language for modelling security properties that can easily be integrated into languages used for describing service orchestrations. Moreover, we integrate SecureBPMN into BPMN and, thus, present a common language for describing service orchestration (in terms of business process models) together with their security and compliance requirements.','',2,'Achim D. Brucker','springer/bpmn security.csv','springer',''),(935,'Access Control with Hidden Policies and Credentials for Service Computing','2012','1','access control;security','In a services computing environment, a large amount of sensitive data is hosted by service providers. As the owners of data might have different security requirements for their data, many systems allow each data item to have its own access control policy. For privacy and security reasons, some data owners and clients might want their access control policies and credentials to remain secret to the service providers which handle the access control of the data. That is, the service providers cannot comprehend the contents of the access control policies and the credentials. This paper proposed a role-based access control scheme. It uses cryptographic techniques to obscure data\'s access control policies and clients\' credentials. The scheme is efficient as the policy enforcement process only uses the information available on the service provider that carries out the access control. A prototype of the scheme has been implemented and the execution time of the scheme were measured.','Services Computing (SCC), 2012 IEEE Ninth International Conference on',1,'X. Ye; M. Gao','ieee/service oriented architecture security.csv','ieee','\0'),(936,'A Proxy Gateway Solution to Provide QoS in Tactical Networks and Disaster Recovery Scenarios','2015','0','communications middleware, disaster recovery, network proxy, qos, tactical networks','Many important public services, such as security and public health, as well as the modern tactical military scenarios, rely on Service-oriented Architectures (SoAs) and commercial off-the-shelf (COTS) components to enable the quick development and deployment of distributed services to respond quickly, reduce costs, and ease system integration. However, SoAs make use of verbose networking technologies and require reliable and relatively high bandwidth communications. Tactical scenarios normally cannot rely on such infrastructure and events like natural disasters can severely damage the network infrastructure in rural and urban environments. Thus, there is a need to develop solutions that provide SoA-based application and services running on heterogeneous and often constrained devices that compose tactical and mobile ad-hoc networks with Quality of Service (QoS) levels that meet their requirements. This paper presents the QoS-enabling features and the gateway operational mode (GM) of ACM NetProxy, the network proxy component of a communications middleware specifically developed to support applications in challenged networks. GM allows nodes in an ad-hoc wireless network to be quickly organized and to shape outbound communications to reduce bandwidth consumption and provide QoS. Experimental results obtained during a test in a field demonstration event show its efficiency.','',1,'Alessandro Morelli and Cesare Stefanelli and Mauro Tortonesi and Rita Lenzi and Niranjan Suri','acm/service oriented architecture security.csv','acm',''),(937,'A method for intrusion detection in web services based on time series','2015','0','','A prevalent issue in today\'s society that has attracted much attention is anomaly detection in time series. Service-oriented architecture (SOA) and web services are considered as one of the most important technologies. In this paper, we propose a model for intrusion detection in web services based on the autoregressive integrated moving average (ARIMA). First, we apply the ARIMA model to the training data. Second, we forecast their next behavior within a specific confidence interval. Third, we examine the testing data; if any instance falls out of the range of the confidence interval, it might be an anomaly, and the system will notify the administrator. We present experiments and results obtained using real world data.','Electrical and Computer Engineering (CCECE), 2015 IEEE 28th Canadian Conference on',1,'P. Shirani; M. A. Azgomi; S. Alrabaee','ieee/service oriented architecture security.csv','ieee',''),(938,'Change Patterns for Supporting the Evolution of Event-Based Systems','2013','2','','Abstract As event-driven architectures consist of highly decoupled components, they are a promising solution for facilitating high flexibility, scalability, and concurrency of distributed systems. However, the evolution of an event-based system is often challenging due to the intrinsic loose coupling of its components. This problem occurs, on the one hand, because of the absence of explicit information on the dependencies among the constituting components. On the other hand, assisting techniques for investigating and understanding the implications of changes are missing, hindering the implementation and maintenance of the changes in event-based architectures. Our approach presented in this paper aims at overcoming these challenges by introducing primitive change actions and higher-level change patterns, formalized using trace semantics, for representing the modification actions performed when evolving an event-based system. Our proof-of-concept implementation and quantitative evaluations show that our approach is applicable for realistic application scenarios.','',1,'Simon TragatschnigHuy TranUwe Zdun','springer/service oriented architecture security.csv','springer','\0'),(939,'Modelling non functional properties in business process: A service based approach [La modélisation des propriétés non fonctionnelles dans les processus métiers: Une approche basée sur les services]','2013','','BPMN profile; Business process; QOS modeling; SOA','The specificqtion of non functional properties at the modeling of service-oriented applications allows determining the most suitable services for consumers. The term quality of service (QoS) is used to refer these quality requirements and covers security, performance, and availability. Some works proposed extensions of business process modeling languages to integrate non-functional concerns. But these works are generally limited to one specific concern and not to multiple concerns at the same time. In this paper, we propose BPMN4QoS, a BPMN extension that supports expressing non-functional properties. We use this language to define a security profile and a profile for temporal properties. Finally, we illustrate and approve our approach with an example. © 2013 Lavoisier.','',2,'Turki S.H., Charfi A., Bellaaj F., Bouaziz R.','scopus/bpmn security.csv','scopus','\0'),(940,'A framework for enabling trust requirements in social cloud applications','2013','3',' Trust and reputation requirements Social cloud Framework Architecture','Abstract Cloud applications entail the provision of a huge amount of heterogeneous, geographically distributed resources managed and shared by many different stakeholders who often do not know each other beforehand. This raises numerous security concerns that, if not addressed carefully, might hinder the adoption of this promising computational model. Appropriately dealing with these threats gains special relevance in the social cloud context, where computational resources are provided by the users themselves. We argue that taking trust and reputation requirements into account can leverage security in these scenarios by incorporating the notions of trust relationships and reputation into them. For this reason, we propose a development framework onto which developers can implement trust-aware social cloud applications. Developers can also adapt the framework in order to accommodate their application-specific needs.','Requirements Engineering',1,'Francisco MoyanoCarmen Fernandez-GagoJavier Lopez','springer/webservice security.csv','springer','\0'),(941,'Generalized Framework for Secure Web Service Composition','2012','1','BPEL;business processes;secure web services;service composition;web service;web service composition','Web services have generated great interests in researchers recently due to its heterogeneous nature. These are based on existing Internet protocols and open standards. It can provide a flexible solution to the problem of application integration. These can be combined together through service composition to solve critical problems, which exists in current scenarios [3]. The service composition suffers from several limitations of security issues such as lack of native support for encryption, decryption and authorization [12]. In this paper, we have proposed a generalized framework for secure web service composition, which incorporates cryptography techniques. The current scenario get benefited by secure environment over network, prevent unauthorized access of services and support of encryption and decryption mechanism in terms of service composition with the help of proposed framework.','Computational Intelligence and Communication Networks (CICN), 2012 Fourth International Conference on',2,'R. Bhandari; U. Suman','ieee/bpel security.csv','ieee','\0'),(942,'SafeStack: Automatically Patching Stack-Based Buffer Overflow Vulnerabilities','2013','2','Software reliability;attack prevention;buffer overflow vulnerability diagnosis','Buffer overflow attacks still pose a significant threat to the security and availability of today\'s computer systems. Although there are a number of solutions proposed to provide adequate protection against buffer overflow attacks, most of existing solutions terminate the vulnerable program when the buffer overflow occurs, effectively rendering the program unavailable. The impact on availability is a serious problem on service-oriented platforms. This paper presents SafeStack, a system that can automatically diagnose and patch stack-based buffer overflow vulnerabilities. The key technique of our solution is to virtualize memory accesses and move the vulnerable buffer into protected memory regions, which provides a fundamental and effective protection against recurrence of the same attack without stopping normal system execution. We developed a prototype on a Linux system, and conducted extensive experiments to evaluate the effectiveness and performance of the system using a range of applications. Our experimental results showed that SafeStack can quickly generate runtime patches to successfully handle the attack\'s recurrence. Furthermore, SafeStack only incurs acceptable overhead for the patched applications.','IEEE Transactions on Dependable and Secure Computing',1,'G. Chen; H. Jin; D. Zou; B. B. Zhou; Z. Liang; W. Zheng; X. Shi','ieee/service oriented architecture security.csv','ieee','\0'),(943,'An approach to design a SOA services governance architecture for an u-Healthcare system with mobility','2012','2','Privacy; Security; Service governance; Service oriented architecture (SOA); U-Healthcare; Wireless mobile','Ubiquitous health (u-Health) system is focused on the concept of providing medical service and assistance to the patients \"anywhere and anytime\" regardless of their locations. Existing mobile u-Healthcare systems have problems in lacking one or the other S.C.A.L.E. (Scalability, Connectivity, Adaptability, Liability, and Ease-of-use) criterion that any ubiquitous system must support. They become expensive during set up, reconfiguration, and modification as no proper and efficient solution is available. Also, they lack security, privacy, and wireless accessibility features so all these problems can prevent the system from being expanded widely. The objective of this paper is to implement a u-Healthcare system based on wireless mobile technology using Service Oriented Architecture (SOA). Applying Service Governance of Service Oriented Architecture helps make all services more secure, reusable, interoperable, available, and imposes all the features a ubiquitous system should have. A prototype system uSG-Health was developed using the approach for demonstrating the functionality and ability of the proposed u-Healthcare system. Copyright © 2011, IGI Global.','',1,'Yu W.D., Patel J., Mehta V., Joshi A.','scopus/service oriented architecture security.csv','scopus','\0'),(944,'Combining Practical and Dialectical Commitments for Service Engagements','2015','0','','Abstract We understand a service engagement as a form of collaboration arising in a sociotechnical system (STS). Although STSs are fruitfully modeled using normative abstractions such as commitments, a conventional (practical) commitment can capture only part of the story, namely, a debtor’s promise to the creditor to bring about the consequent if the antecedent holds. In contrast, in a dialectical commitment, which we highlight, a debtor asserts to the creditor that the consequent is true if the antecedent is. For example, a customer may dialectically commit to a seller that the product she received is damaged but may not practically commit to damaging the product. We introduce a novel bipartite operationalization of dialectical commitments that separates their objective and subjective aspects and thus avoids the problems arising if we merely treat dialectical like practical commitments. We express that operationalization in temporal logic, developing a verification tool based on NuSMV, a well-known model-checker, to verify if the participants’ interactions comply with the participants’ dialectical commitments. We present a set of modeling patterns that incorporate both practical and dialectical commitments. We validate our proposal using a real-world scenario of contradictory medical diagnoses by different specialists.','',2,'Pankaj R. TelangAnup K. KaliaJohn F. MaddenMunindar P. Singh','springer/bpel security.csv','springer',''),(945,'Docker Cluster Management for the Cloud - Survey Results and Own Solution','2016','0',' Cloud computing Management tools Microservices System integration Docker Container','Abstract Docker provides a good basis to run composite applications in the cloud, especially if those are not cloud-aware, or cloud-native. However, Docker concentrates on managing containers on one host, but SaaS providers need a container management solution for multiple hosts. Therefore, a number of tools emerged that claim to solve the problem. This paper classifies the solutions, maps them to requirements from a case study and identifies gaps and integration requirements. We close some of these gaps with our own integration components and tool enhancements, resulting in the currently most complete management suite.','Journal of Grid Computing',1,'René PeinlFlorian HolzschuherFlorian Pfitzer','springer/soa security.csv','springer',''),(946,'Enabling Message Security for RESTful Services','2012','5','Message Security;Performance;Protocol;REST','The security and dependability of cloud applications require strong confidence in the communication protocol used to access web resources. The mainstream service providers nowadays are shifting to REST-based services in the detriment of SOAP-based ones. REST proposes a lightweight approach to consume resources with no specific encapsulation, thus lacking of meta-data descriptions for security requirements. Currently, the security of RESTful services relies on ad-hoc security mechanisms (whose implementation is error-prone) or on the transport layer security (offering poor flexibility). We introduce the REST security protocol to provide secure service communication, together with its performance analysis when compared to equivalent WS-Security configuration.','Web Services (ICWS), 2012 IEEE 19th International Conference on',1,'G. Serme; A. S. de Oliveira; J. Massiera; Y. Roudier','ieee/service oriented architecture security.csv','ieee','\0'),(947,'Enabling Trustworthy Service Evaluation in Service-Oriented Mobile Social Networks','2014','5','Aggregates;Delay;Mobile communication;Mobile social networks;Resists;Security;Social network services;Wireless communication;distributed system;sybil attack;trust evaluation','In this paper, we propose a Trustworthy Service Evaluation (TSE) system to enable users to share service reviews in service-oriented mobile social networks (S-MSNs). Each service provider independently maintains a TSE for itself, which collects and stores users\' reviews about its services without requiring any third trusted authority. The service reviews can then be made available to interested users in making wise service selection decisions. We identify three unique service review attacks, i.e., linkability, rejection, and modification attacks, and develop sophisticated security mechanisms for the TSE to deal with these attacks. Specifically, the basic TSE (bTSE) enables users to distributedly and cooperatively submit their reviews in an integrated chain form by using hierarchical and aggregate signature techniques. It restricts the service providers to reject, modify, or delete the reviews. Thus, the integrity and authenticity of reviews are improved. Further, we extend the bTSE to a Sybil-resisted TSE (SrTSE) to enable the detection of two typical sybil attacks. In the SrTSE, if a user generates multiple reviews toward a vendor in a predefined time slot with different pseudonyms, the real identity of that user will be revealed. Through security analysis and numerical results, we show that the bTSE and the SrTSE effectively resist the service review attacks and the SrTSE additionally detects the sybil attacks in an efficient manner. Through performance evaluation, we show that the bTSE achieves better performance in terms of submission rate and delay than a service review system that does not adopt user cooperation.','IEEE Transactions on Parallel and Distributed Systems',1,'X. Liang; X. Lin; X. S. Shen','ieee/service oriented architecture security.csv','ieee','\0'),(948,'Approaches to Improve Reliability of Service Composition','2012','0',' Reliability SOA Composition Service Quality of Service','Abstract Nowadays, enterprises realize functionality as systems that are composed of services. This includes even mission critical parts of their business. Hence, the reliability of such systems including their composition and services is increasingly important. However, it is a challenge to establish a high reliability in this context because distribution of functionality increases the potential points of failure. Different approaches exist to increase reliability but they typically act on a restricted scope like network layer or software design. In order to obtain better results, it is often necessary to combine multiple approaches depending on the actual situation and the requirements. This paper classifies commonly used approaches according their scope and rates their effects on the reliability. Thereby, it supports the selection of approaches to improve reliability and finally helps to find a suitable solution for a given situation.','',1,'Jörg HohwillerDiethelm SchlegelGregor Engels','springer/service oriented architecture security.csv','springer','\0'),(949,'Design and evaluation of the ModelHealth toolchain for continuity of care web services','2013','0',' Model-driven development Healthcare information systems Empirical study Software engineering','Abstract Motivation: Systems interoperability is a key challenge in providing continuity of care to all patients. The challenge is addressed with information standards and new approaches to systems integration based on service-oriented architectures. Model-driven development promise utilities that are suitable for software service development in the healthcare domain, but development tools are still immature and their industry uptake is low. The knowledge about how model-driven development tools can become more useful to the healthcare software developers should be strengthened. Approach: This paper presents the ModelHealth toolchain that was created in four design/assess cycles, involving 28 students and 41 professional developers in the period 2007–2010. The toolchain provides design assistance for creating software services based on concepts from the CEN-13940 standard for continuity of care, which facilitates development of interoperable software services. Results: The CEN-13940 standard was successfully incorporated into the ModelHealth Toolchain assisting developers in creating software service design models that adhered to the standard. The developers expressed that improved understanding of the target system, documentation generation, and artifact traceability were essential utilities of the model-driven approach. Conclusion: The paper concludes healthcare domain knowledge can be successfully incorporated in a model-driven development toolchain, providing valuable input to the healthcare software service design process. A set of recommendations on how to incorporate domain specific concepts into model-driven development tools is provided. To our knowledge, no other scientific publications have reported from healthcare specific model-driven tool design and evaluations. Our recommendations extend and nuance existing knowledge on model-driven development tooling in general.','Automated Software Engineering',1,'Ståle Walderhaug','springer/soa security.csv','springer','\0'),(950,'Rationalism with a dose of empiricism: combining goal reasoning and case-based reasoning for self-adaptive software systems','2015','0',' Self-adaptive systems Requirements goal models Goal reasoning Case-based reasoning','Abstract Requirements-driven approaches provide an effective mechanism for self-adaptive systems by reasoning over their runtime requirements models to make adaptation decisions. However, such approaches usually assume that the relations among alternative system configurations, environmental parameters and requirements are clearly understood, which is often not true. Moreover, they do not consider the influence of the current configuration of an executing system on adaptation decisions. In this paper, we propose an improved requirements-driven self-adaptation approach that combines goal reasoning and case-based reasoning. In the approach, past experiences of successful adaptations are retained as adaptation cases, which are described by not only requirements violations and contexts, but also currently deployed system configurations. The approach does not depend on a set of original adaptation cases, but employs goal reasoning to provide adaptation solutions when no similar cases are available. Case-based reasoning is used to provide more precise adaptation decisions that better reflect the complex relations among requirements violations, contexts, and current system configurations by utilizing past experiences. To prevent case-based reasoning from getting trapped in suboptimal adaptation solutions, an additional case mutation mechanism is introduced to mutate existing adaptation solutions when necessary. We conduct an experimental study with an online shopping benchmark to evaluate the effectiveness of our approach. The results show that our approach outperforms both a requirements-driven approach and a case-based approach in terms of satisfaction level of quality constraints. The results also confirm the effectiveness of case mutation for producing better adaptation solutions. In addition, we empirically investigate the evolution process of adaptation solutions. The evolution analysis reveals some general evolution trends of adaptation solutions such as different evolution phases.','Requirements Engineering',1,'Wenyi QianXin PengBihuan ChenJohn MylopoulosHuanhuan WangWenyun Zhao','springer/service oriented architecture security.csv','springer',''),(951,'Business Process Mining from E-Commerce Web Logs','2013','4','','Abstract The dynamic nature of the Web and its increasing importance as an economic platform create the need of new methods and tools for business efficiency. Current Web analytic tools do not provide the necessary abstracted view of the underlying customer processes and critical paths of site visitor behavior. Such information can offer insights for businesses to react effectively and efficiently. We propose applying Business Process Management (BPM) methodologies to e-commerce Website logs, and present the challenges, results and potential benefits of such an approach. We use the Business Process Insight (BPI) platform, a collaborative process intelligence toolset that implements the discovery of loosely-coupled processes, and includes novel process mining techniques suitable for the Web. Experiments are performed on custom click-stream logs from a large online travel and booking agency. We first compare Web clicks and BPM events, and then present a methodology to classify and transform URLs into events. We evaluate traditional and custom process mining algorithms to extract business models from real-life Web data. The resulting models present an abstracted view of the relation between pages, exit points, and critical paths taken by customers. Such models show important improvements and aid high-level decision making and optimization of e-commerce sites compared to current state-of-art Web analytics.','',2,'Nicolas PoggiVinod MuthusamyDavid CarreraRania Khalaf','springer/bpel security.csv','springer','\0'),(952,'Cloud Integration Patterns','2015','0',' Cloud computing SOA Integration Topology Patterns SaaS Public cloud Private cloud Multi-cloud','Abstract Enterprises use the cloud for unlimited resource, scalability and elastic provisioning along with being able to use state of the art commodity or specialized solutions available in the cloud. The challenge of this vision is the proper and safe integration of on-premise IT-Landscapes with data and applications in the cloud. To find solutions for integration of classical and cloud environments two approaches, top-down and bottom-up, were used. In the top-down approach cloud integration patterns were specified based on scenarios. In the bottom-up approach cloud integration patterns were based on case study application requirements. Results of this paper are novel cloud integration patterns for various cloud integration scenarios.','',2,'Danny MerkelFilippos SantasAndreas HeberleTarmo Ploom','springer/bpel security.csv','springer',''),(953,'Design and Implementation of Information Flow-sensitive Business Processes','2008','1','Business Proces Management;Information Flow Control;Service Oriented Architectures;WS-BPEl;Workflow Management','Information flow control consists of planning the interactions of services in order to satisfy different security restrictions concerning the propagation of information in a composition. This paper examines the questions of what the information flow is and how it can be modeled and controlled in service-oriented business processes. We present the design and implementation of a decentralized workflow management solution for the control of information flow. Our contribution targets orchestration-based compositions where centralized workflow descriptions are used to derive distributed and cooperating process fragments. The derived process fragments are deployed on composed services and they enable them to establish P2P interconnections with each other. The deriving operation is governed by the underlying dependencies of composed services and the computation of information flow policies. We present a framework for the modeling and computation of information flow and centralized specifications in order to derive cooperating process fragments. Furthermore, we present a reference architecture for service implementation. The former can be applied to a variety of composition specifications such as WS-BPEL while the latter provides an inexpensive and reasonable support for decentralized workflow management.','on Web Services, 2008. ECOWS \'08. IEEE Sixth European Conference',2,'U. Yildiz; C. Godart','ieee/bpel security.csv','ieee','\0'),(954,'Building a Customizable Business-Process-as-a-Service Application with Current State-of-Practice','2013','1',' Software-as-a-Service Business Process jBPM Multi-tenancy Customization Document Processing','Abstract Application-level multi-tenancy is an increasingly prominent architectural pattern in Software-as-a-Service (SaaS) applications that enables multiple tenants (customers) to share common application functionality and resources among each other. This has the disadvantage that multi-tenant applications are often limited in terms of customizability: one application should fit the needs of all customers. In this paper, we present our experiences with developing a multi-tenant SaaS document processing system using current state-of-practice workflow technologies from the JBoss family. We specifically focus on the customizability w.r.t. the different tenant-specific requirements, and the manageability of the tenant-specific customizations. Our main experiences are threefold: (i) we were insufficiently able to modularize the activities and compositions that constitute the document processing workflow, (ii) we lacked support for describing tenant-level variations independently, and (iii) the workflow engine we employed is too centralized in terms of control, which limits resilience and thereby endangers scalability of the document processing application.','',2,'Fatih GeyStefan WalravenDimitri Van LanduytWouter Joosen','springer/bpel security.csv','springer','\0'),(955,'WS-S Evaluation Based on User Preferences and Ranking Mechanism','2013','0','Ranking mechanism;Security evaluation;Topsis;User preferences','As information security is so important today, the technology of web services security is also becoming more and more important, but the research on Web services security is frail, especially the comprehensive evaluation of WS-Security based on user preferences. This paper aims at it, and describes an integrated evaluation architecture and a method-the use of ranking mechanism combined with multi-criteria decision analysis Tops is for comprehensive evaluation, finally we conduct the corresponding experimental verification, which proves the validity and accuracy of this evaluation method.','Cyber-Enabled Distributed Computing and Knowledge Discovery (CyberC), 2013 International Conference on',1,'C. Ma; Y. Duan; X. Ju; F. Xu','ieee/service oriented architecture security.csv','ieee','\0'),(956,'SOA based secure data transmission over CMEA protocol in manet','2014','','Cluster Based Mobility and Energy Aware (CMEA) protocol; Mobile Adhoc Network (MANET); Multi purpose internet mail extension (MIME); Route discovery; Route reply (RREP); Route request (RREQ); Service Oriented Architecture (SOA)','Mobile Adhoc Networks is a self organizing network composed of mobile terminals connected by wireless links. Adhoc Networks are created dynamically without any preexisting network infrastructure Ad-hoc networks are very useful in situations like emergency search and reuse operations and meetings where people want to quickly share information. This network does not have any central administration, hence there are no designated routes, all the nodes can serve as routers for each other, and data packets are forwarded from node to node to node in multi hop fashion. Cluster based Mobility and Energy Aware (CMEA) routing protocols is used to find the reliable route in a cluster networks. The clustered network avoids path breaks and long path delay. When applying the energy and mobility aware metric over clustered network gives reliable route between Source and Destination. Service Oriented Architecture (SOA) is an evolution of past platforms, preserving successful characteristics of traditional architectures and bringing with it distinct principles that follow service orientation in support service oriented enterprise. It forces the network to improve the reliability, security, integrity etc. By applying the proposed XML technique for encrypting the secure data improves the content delivery over the CMEA network. Therefore SOA based secure data transmission over the reliable route improves the network performance. © 2015 The Authors. Published by Elsevier B.V.','',1,'Dhivya P., Karthik S., Kalaikumaran T.','scopus/service oriented architecture security.csv','scopus','\0'),(957,'A community assessment of privacy preserving techniques for human genomes','2014','4',' Genome-wide association studies Data sharing Privacy protection Differential privacy','Abstract To answer the need for the rigorous protection of biomedical data, we organized the Critical Assessment of Data Privacy and Protection initiative as a community effort to evaluate privacy-preserving dissemination techniques for biomedical data. We focused on the challenge of sharing aggregate human genomic data (e.g., allele frequencies) in a way that preserves the privacy of the data donors, without undermining the utility of genome-wide association studies (GWAS) or impeding their dissemination. Specifically, we designed two problems for disseminating the raw data and the analysis outcome, respectively, based on publicly available data from HapMap and from the Personal Genome Project. A total of six teams participated in the challenges. The final results were presented at a workshop of the iDASH (integrating Data for Analysis, \'anonymization,\' and SHaring) National Center for Biomedical Computing. We report the results of the challenge and our findings about the current genome privacy protection techniques.','BMC Medical Informatics and Decision Making',1,'Xiaoqian JiangYongan ZhaoXiaofeng WangBradley MalinShuang WangLucila Ohno-MachadoHaixu Tang','springer/webservice security.csv','springer','\0'),(958,'Mediating Citizen-Sourcing of Open Government Applications – A Design Science Approach','2015','0','','Abstract A design science approach is followed to develop architectural blueprints for implementing platforms to source open government applications from citizens. Zachman framework is initially used as a guide to categorize and develop the artefacts. After designing the blueprints, their usefulness is demonstrated through prototype implementation, and their potential for problem solution is evaluated from the development perspective as well as communicated to governmental peers. Contributions to research and practice include a set of blueprints covering the top levels of a platform’s enterprise architecture, a reusable sourcing platform prototype, set of validated test cases for following up the implementation process, as well as success factors and lessons learned from the government perspective.','',2,'Mai Abu-El SeoudRalf Klischewski','springer/bpmn security.csv','springer',''),(959,'Comparative Analysis of SOA and Cloud Computing Architectures Using Fact Based Modeling','2013','0',' Cloud Computing SOA Service Oriented Architecture Reference Architecture metamodel ISO Fact Based Modeling','Abstract With the ever-changing dynamic Information and Communications Technology environment and the new shared deployment options for computing, a paradigm shift is occurring that enables ubiquitous and convenient computing on a pay-as-you-go basis. Access on demand is becoming available to networks of scalable, elastic, self-serviceable, configurable physical and virtual resources. On a more narrowly focused IT and business front, there is a parallel shift towards designing information systems in terms of the services available at an interface. The Service Oriented Architecture (SOA) development style is based on the design of services and processes and the realization of interoperability and location transparency in context-specific implementations. This paper analyzes the Cloud Computing and SOA Reference Architectures being developed by ISO ISO/IEC JTC1 SC38 (in collaboration with ITU-T SG13/WP6 for Cloud Computing), and offers a concept comparison using Fact Based Modeling (FBM) methodology. FBM has allowed us to distill the concepts, relationships and business rules - thereby exposing the strengths and weakness of each, and identifying the gaps between the two.','',1,'Baba PipraniDon SheppardAbbie Barbir','springer/service oriented architecture security.csv','springer','\0'),(960,'Supporting incremental behaviour model elaboration','2013','0',' Partial behaviour modelling','Abstract Behaviour model construction remains a difficult and labour intensive task which hinders the adoption of model-based methods by practitioners. We believe one reason for this is the mismatch between traditional approaches and current software development process best practices which include iterative development, adoption of use-case and scenario-based techniques and viewpoint- or stakeholder-based analysis; practices which require modelling and analysis in the presence of partial information about system behaviour. Our objective is to address the limitations of behaviour modelling and analysis by shifting the focus from traditional behaviour models and verification techniques that require full behaviour information to partial behaviour models and analysis techniques, that drive model elaboration rather than asserting adequacy. We aim to develop sound theory, techniques and tools that facilitate the construction of partial behaviour models through model synthesis, enable partial behaviour model analysis and provide feedback that prompts incremental elaboration of partial models. In this paper we present how the different research threads that we have and currently are developing help pursue this vision as part of the “Partial Behaviour Modelling—Foundations for Iterative Model Based Software Engineering” Starting Grant funded by the ERC. We cover partial behaviour modelling theory and construction, controller synthesis, automated diagnosis and refinement, and behaviour validation.','Computer Science - Research and Development',1,'Sebastian UchitelDalal AlrajehShoham Ben-DavidVictor BrabermanMarsha ChechikGuido De CasoNicolas D’IppolitoDario FischbeinDiego GarbervetskyJeff KramerAlessandra RussoGerman Sibay','springer/service oriented architecture security.csv','springer','\0'),(961,'Policy-Controlled Authenticated Access to LLN-Connected Healthcare Resources','2015','0','Authentication;Devices Profile for Web Services (DPWS);Web services;authorization;body sensor networks (BSNs);eXtensible Access Control Markup Language (XACML);healthcare;policy-based access control (PBAC);security','Ubiquitous devices comprising several resource-constrained nodes with sensors, actuators, and networking capabilities are becoming part of many solutions that seek to enhance user\'s environment smartness and quality of living, prominently including enhanced healthcare services. In such an environment, security issues are of primary concern as a potential resource misuse can severely impact user\'s privacy or even become life threatening. Access to these resources should be appropriately controlled to ensure that eHealth nodes are adequately protected and the services are available to authorized entities. The intrinsic resource limitations of these nodes, however, make satisfying these requirements a great challenge. This paper proposes and analyzes a service-oriented architecture that provides a policy-based, unified, cross-platform, and flexible access control mechanism, allowing authorized entities to consume services provided by eHealth nodes while protecting their valuable resources. The scheme is XACML driven, although modifications to the related standardized architecture are proposed to satisfy the requirements imposed by nodes that comprise low-power and lossy networks (LLNs). A proof-of-concept implementation is presented, along with the associated performance evaluation, confirming the feasibility of the proposed approach.','IEEE Systems Journal',1,'K. Rantos; K. Fysarakis; C. Manifavas; I. G. Askoxylakis','ieee/service oriented architecture security.csv','ieee',''),(962,'SmartMal: A service-oriented behavioral malware detection framework for smartphones','2014','','Malware; Security; Service-oriented; Smartphones','This paper presents SmartMal-A novel service-oriented behavioral malware detection framework for vehicular and mobile devices. The highlight of SmartMal is to introduce Service Oriented Architecture (SOA) concepts and behavior analysis into the malware detection paradigms. The proposed framework relies on client-server architecture, the client continuously extracts various features and transfers them to the server, and the server\'s main task is to detect anomalies using state-of-art detection algorithms. Multiple distributed servers simultaneously analyze the feature vector using various detectors and information fusion is used to concatenate the results of detectors. We also propose a cycle-based statistical approach for mobile device anomaly detection. We accomplish this by analyzing the users\' regular usage patterns. Empirical results suggest that the proposed framework and novel anomaly detection algorithm are highly effective in detecting malware on Android devices. © 2013 IEEE.','',1,'Wang C., Wu Z., Wang A., Li X., Yang F., Zhou X.','scopus/service oriented architecture security.csv','scopus','\0'),(963,'Enabling semantic technologies in publish and subscribe middleware','2015','','Middleware; Publish and Subscribe; Semantic Technologies; Service-Oriented Architectures','The Publish and Subscribe (pub/sub) dissemination paradigm has emerged as a popular means of disseminating time-sensitive or filtered information, usually in the form of middleware within the enterprise systems of Service-Oriented Architectures (SOA). Through the use of an event service, or broker, published information is disseminated only to the subscribers interested in that information. However, brokering semantically rich information, especially with resource constrained (e.g. limited memory, bandwidth, etc.) subscribers, has not yet been sufficiently explored. We present a service-oriented approach for enabling semantic technologies in pub/sub systems. We map the explicit client subscriptions to the semantic context of the published data, allowing implicit data to be disseminated to the subscriber while enforcing security policies across semantically related data. To illustrate, we show that semantic technologies not only enable semantically rich content sharing but contribute data reduction suitable for resource constrained clients and security policy enforcement capabilities. © 2015 IEEE.','',1,'Ahmed N., Bryant J., Hasseler G., Paulini M.','scopus/service oriented architecture security.csv','scopus',''),(964,'Secure service composition in sensor Web','2009','2','BPEL;SAML;WS-Security;Workflow;geospatial Web service','Geospatial Web services have become popular. Geospatial processing has been moving into the Web environment. A geospatial workflow, combining a series of geospatial Web services, is common in achieving a complex of computation from simple individual Web services. Web service security is important for guarding sensitive data and assuring correct delivery of data. Many Web services need to be secured in terms of access control and message/data integrity. Workflow security is not a simple problem to be completely handled at individual Web service but has its complexity. This study examines the approaches to enforce security measures on a workflow and to extend workflow scripting language with capabilities in handling security tokens. In this study, workflows are defined in business process execution language (BPEL). A BPEL execution engine was augmented with the extensions to access headers of simple object access protocol (SOAP) messages. The study experimented several strategies to enable the successful passing of security tokens through the engine which is often required. The extensions worked successfully in supporting the passing of security tokens to individual services through the BPEL engine. In future, the solution needs further testing and improvements, examining on multiple security tokens, extending beyond limitations of SOAP binding, and forming standards.','2009 IEEE International Geoscience and Remote Sensing Symposium',2,'G. Yu; L. Di','ieee/bpel security.csv','ieee','\0'),(965,'1000 Years of Coo-BDI','2012','0','','Abstract The idea of extending the BDI architecture with cooperativity started shaping in 2003 when two independent proposals to support cooperation in a BDI setting were presented at DALT. One proposal, Coo-BDI, extended the BDI architecture by allowing agents to cooperate by exchanging and sharing plans in a quite flexible way; the other extended the BDI operational semantics for introducing speech-act based communication, including primitives for plan exchange. Besides allowing a natural and seamless integration with speech-act based communication for BDI languages, the intuitions behind Coo-BDI have proved to be promising and attractive enough to give rise to new investigations. In this retrospective review we discuss papers that were influenced by Coo-BDI and we outline other potential developments for future research.','',2,'Viviana MascardiDavide Ancona','springer/bpel security.csv','springer','\0'),(966,'Orchestration under Security Constraints','2012','0','','Abstract Automatic composition of web services is a challenging task. Many works have considered simplified automata models that abstract away from the structure of messages exchanged by the services. For the domain of secured services (using e.g. digital signing or timestamping) we propose a novel approach to automated composition of services based on their security policies. Given a community of services and a goal service, we reduce the problem of composing the goal from services in the community to a security problem where an intruder should intercept and redirect messages from the service community and a client service till reaching a satisfying state. We have implemented the algorithm in AVANTSSAR Platform [5] and applied the tool to several case studies.','',2,'Yannick ChevalierMohamed Anis MekkiMichaël Rusinowitch','springer/bpel security.csv','springer','\0'),(967,'A study of risk evaluation framework for cloud computing system','2015','','AHP; RBFNN; Risk evaluation; SLA; Virtual machine','Virtualization asks for safer and better quality to service-oriented cloud computing system suppliers. Most of the traditional researching is focus on the risk assessment of the information system and DDoS, but lacking of researching on cloud computing in deep. So that the service-oriented cloud computing system risk evaluation researching is very essential. In this paper, we build a service-oriented cloud computing system risk assessment framework that using distributed dynamic status monitoring of virtual machine system and making risk prediction value to summarizing the fnal risk assessment level of the system as a whole. The model can be used in monitoring, identifying, predicting and evaluating for cloud computing security risk that is having effect on the risk evaluation of virtual machine node and whole cloud system. First we proposed a new method to identifying risk named LSA-GCC that used LSA for analyzing log files and cluster for classifying. The method doing the feed forward risk identifcation by collecting the log of the operating system and WebService that are on VM node level,and the LSA-SAM method can improved the detecting accuracy for abnormal events. Then the risk predictiton method had been proposed that combined with RBFNN(Radial Basis Function Neural Network) and AHP . This method build a risk predicting model by AHP(Analytic Hierarchy Process) that consists of four indicators, that are P (performance), T (Time), A (event statistics) and R (risk identification). Each indicator include some monitoring parameters that can compute the risk indicator value by weight matrix. Experimental results show that MRPGA-RBF risk prediction method can predictive risk value accurately.','',1,'Lin F., Xiahou J., Zeng W.','scopus/webservice security.csv','scopus',''),(968,'Interoperability Assessment Approaches for Enterprise and Public Administration','2013','0',' interoperability assessment eGovernment maturity models','Abstract The need for collaboration among organizations is a reality with which systems, managers and other stakeholders must deal. But this is not an exclusive concern of private administrations, once the increasing need for information exchange among government agencies, the supply of online services to citizens, and the cost reduction of public operations and transactions demand that the government organizations must be ready to provide an adequate interface to their users. This paper presents basic concepts of Enterprise Interoperability, some assessment models and eGovernment practices, models, definitions and concepts, providing an initial analysis of their basic properties and similarities, verifying some possible gaps that may exist.','',2,'José Marcelo A. P. CestariEduardo R. LouresEduardo Alves Portela Santos','springer/bpmn security.csv','springer','\0'),(969,'Mobile network-aware social computing applications: a framework, architecture, and analysis','2013','0',' Social networks Web 2.0 applications Social web services IP packet exchange IP multimedia subsystems Mobility models QoS QoE RSVP MPLS Diffserv','Abstract Advanced socio-technical systems especially handheld and mobile devices are no longer esoteric; rather they are a part of daily life for billions of people worldwide endowing a sense of every time connectedness that helps in realizing the ideology behind social computing applications (such as, Facebook, Twitter, Flickr, YouTube, SecondLife, etc.), i.e., sharing whatever-whenever. With larger bandwidths (3G/4G/WiMax capabilities), powerful processing capabilities, better displays, and user friendly and even haptic interfaces, mobile platforms have shown a promising future for social computing applications. However, advances in web technologies (such as HTML5, AJAX, etc.) have led to the development of complex set of applications with rich user-interfaces that demands a nimble and robust architecture for social computing applications that is adaptive to the network constraints and bottleneck issues. This has resulted in a favorable playground for mobile-aware social computing applications offering practitioners and researchers key architectural challenges with numerous fledgling opportunities. In this article, we elaborate upon the challenges and provide a framework for incorporating cross-layer interaction between social network applications and wireless network capabilities. Specifically, we address the problem of delivering social network content to mobile devices with the required QoS. We propose a generic framework that addresses this issue. We also discuss some suitable wireless network protocols that could be utilized to provide QoS for the delivery of content generated by social computing applications and for reliable interactions between mobile users and social computing applications followed by possible future research directions.','Journal of Ambient Intelligence and Humanized Computing',1,'Seshadri MohanNitin AgarwalLava Al-Doski','springer/soa security.csv','springer','\0'),(970,'InCloud: a cloud-based middleware for vehicular infotainment systems','2016','0',' Infotainment system VANET Middleware Cloud Service oriented architecture','Abstract Smart vehicles form pervasive environment to enhance user experience through multimedia enabled infotainment systems. In order to realize effective infotainment system for vehicles, we need to have context-aware applications that use latest (live) information for enhanced user experience. Such latest information is abundantly available on the Internet due to explosive growth of Web 3.0, which can be accessed through wireless communication infrastructures such as VANETs and LTE. In this paper we propose a cloud-based middleware framework, InCloud , for vehicular infotainment application development. The proposed framework follows service oriented architecture in which data filtering and fusion functionalities are delegated to the cloud. Data filtering and fusion reduce the data flow over wireless link. Furthermore, because most of the processing is done on the cloud, the client becomes lightweight and loosely coupled with Internet resources and underlying platforms in vehicles. We also propose a class-based fusion method for combining information from multiple resources on the Internet. The efficacy of the proposed framework is validated by developing three infotainment applications for vehicles: context-aware music, news, and an enhanced Direction (eDirection) application.','Multimedia Tools and Applications',1,'Mukesh SainiKazi Masudul AlamHaolin GuoAbdulhameed AlelaiwiAbdulmotaleb El Saddik','springer/service oriented architecture security.csv','springer',''),(971,'Security policy conflicts in service-oriented systems','2012','2','Conflict Detection Algorithm; Security Policy','This paper considers methods for knowledge exploitation in security policies for Service-Oriented Architecture (SOA) environments, discovering the modality conflicts in particular. Two algorithms for discovering SOA-specific modality conflicts are proposed. First, a trivial (ad-hoc) approach is presented and further extended by the improved algorithm which offers lower time complexity. The formal verification of the proposal is followed by experimental results confirming the expected supremacy of the improved algorithm. © 2012 Ohmsha, Ltd. and Springer.','',1,'Brodecki B., Szychowiak M., Sasak P.','scopus/service oriented architecture security.csv','scopus','\0'),(972,'Role and task-based access control model for web service integration','2012','3','Access control; Periodic time; RBAC; TBAC; Web service integration','According to the weaknesses of the traditional access control technology for web service integration, and the implement technology of access control in the BPEL-based process. On the basis of traditional RBAC, TBAC and security workflow model, we propose a role and task-based access control model (RTBAC), whose architecture is not user-role-permission but user-role-task-permission, and which adds periodic time and task weight constraint mechanism. The basic concepts of RTBAC and formalization description are introduced and analyzed; moreover the mapping from the BPEL-based process to RTBAC was implemented in this paper. The RTBAC from the tasks in services, and dynamically manage the permissions through tasks and task instances\' status, which permissions\' status will be changed dynamically with the execution of task instance. The RTBAC can meet the need to manage and enforce the strong and efficient access control technology in large-scale web services integration. © 2012 Binary Information Press.','',2,'Yu D.','scopus/bpel security.csv','scopus','\0'),(973,'A scalable planetary science information architecture for big science data','2014','','Big Data; Information Architecture','Research has shown that the amount of data now available often overwhelms key functions of an information system. This situation necessitates the design of information architectures that scale to meet the challenges. The Planetary Data System, a NASA funded project, has developed an information architecture for the planetary science community that addresses this and other big science data issues noted in a National Research Council report regarding architectures for big data management and analysis and end-to-end data lifecycle management across diverse disciplines. The report identified enabling technology trends including distributed systems, service-oriented architectures, ontologies, models and information representation, scalable database systems, federated data security mechanisms, and technologies for moving big data. This paper will present the PDS4 information architecture, its successful implementation in a multi-discipline big-data environment. © 2014 IEEE.','',1,'Crichton D., Hughes J.S., Hardman S., Law E., Beebe R., Morgan T., Grayzeck E.','scopus/service oriented architecture security.csv','scopus','\0'),(974,'Security for Open Distributed Geospatial Information Systems','2012','0','','','',1,'Andreas Matheus','springer/service oriented architecture security.csv','springer','\0'),(975,'Services Collaboration Supported by a B2B Platform in Retail Environment','2014','0',' Future Internet generic enabler business process business architect','Abstract The collaboration between services enables the communication between business entities in an efficient way. In order to achieve the uniformity between the provision and consumption of information we use platforms that can place different actors in the same context and that take advantage of the business architect figure, that defines the business logic implemented through the business process. In this paper it is described a platform that enables business collaboration to the exchange of product information in a retail environment. The proposed system is based on a B2B cloud based platform that provides support for the business logic and the collaboration among business partners. We validate this system through the implementation of some applications that enable farmers, food transportation companies and supermarkets to share information.','',2,'Álvaro Sánchez-PicotTomás RoblesRamón AlcarriaDiego Martín','springer/bpel security.csv','springer',''),(976,'Modulare Softwarearchitektur für Mehrwertanwendungen der deutschen Gesundheitstelematik','2013','0','Schlüsselwörter Gesundheitskarte Telematikinfrastruktur Mehrwertanwendungen Mehrwertdienste Referenzarchitektur Gesundheitswesen Design research Electronic health card Healthcare telematics Value-added applications Value-added services Software architecture Design research','Zusammenfassung Mehrwertanwendungen der elektronischen Gesundheitskarte sollen Patientenorientierung sowie Qualitäts- und Effizienzsteigerungen im Gesundheitswesen ermöglichen. Die Dienste der Gesundheitstelematik, bei der die elektronische Gesundheitskarte nur eine Teilkomponente ist, können dabei beliebig eingebunden werden, etwa um Sicherheitsstandards und Interoperabilität zu gewährleisten. Der gestaltungsorientierte Beitrag präsentiert die Entwicklung und Evaluierung einer Softwarearchitektur für Mehrwertanwendungen. Um die Akzeptanz der Nutzer zu steigern, wurden die Architekturanforderungen direkt bei den Leistungserbringern erhoben. Die Architektur wird anhand des elektronischen Überweisungsmanagements illustriert und evaluiert. Es werden typische Funktionseinheiten von medizinischen Abläufen in sieben Schichten abstrahiert. Die Instanziierung zeigt eine strukturierte Anwendung mit übergreifenden Sicherheitsstandards, die Interoperabilität zwischen heterogenen Bestandssystemen und eine übergreifende Steuerung durch Ärzteverbünde ermöglicht. Die Architektur bietet erstmalig im deutschen Gesundheitswesen die Möglichkeit, eine Vielzahl von Mehrwertanwendungen systematisch, einfach, sicher und zuverlässig zu spezifizieren und zu entwickeln, um sie über die Telematikinfrastruktur zur Verfügung zu stellen.','WIRTSCHAFTSINFORMATIK',1,'Sebastian DünnebeilJun.-Prof. Dr. Ali SunyaevProf. Dr. Jan Marco LeimeisterProf. Dr. Helmut Krcmar','springer/soa security.csv','springer','\0'),(977,'Collaborative spam filtering based on incremental ontology learning','2013','1',' Intelligent intranet Spam filtering Ontology learning Proxy server','Abstract Spam mail filtering is a classic problem to automatically recognize irrelevance between incoming emails and user contexts. This paper proposes a novel proxy server architecture for (i) collaboratively integrating useful features sent from personal email clients. (ii) Improving the filtering performance of SMTP servers. Given a set of spam mails marked by multiple email users, the proxy server can extract two kinds of textual features, which are apriori terms and concept terms based on key phrases. More importantly, by taking into account the semantics and statistical associations, the proxy can aggregate them in a hierarchical cluster structure. As a result, spam ontology can be built, and also, incrementally enriched. Hence, the email clients can be supported to improve their performances of spam filtering by referring to the semantic information from the ontology. For evaluating the proposed system, we have collected a large number of spam mails within a same intranet environment. The system has shown 17.4% lower error rate of filtering than the single email clients.','Telecommunication Systems',1,'Xuan Hau PhamNam-Hee LeeJason J. JungAbolghasem Sadeghi-Niaraki','springer/service oriented architecture security.csv','springer','\0'),(978,'Compliance Validation of Secure Service Compositions','2014','0',' Validation Security BPMN SecureBPMN Compliance','Abstract The Aniketos Secure Composition Framework supports the specification of secure and trustworthy composition plans in term of BPMN. The diversity of security and trust properties that is supported by the Aniketos framework allows, on the one hand, for expressing a large number of security and compliance requirements. On the other hand, the resulting expressiveness results in the risk that high-level compliance requirements (e.g., separation of duty) are not implemented by low-level security means (e.g., role-based access control configurations). In this chapter, we present the Composition Security Validation Module (CSVM). The CSVM provides a service for checking the compliance of secure and trustworthy composition plans to the service designer. As proof-of-concept we created a prototype in which the CSVM module is deployed on the SAP NetWeaver Cloud and two CSVM Connectors are built supporting two well-known BPMN tools: SAP NetWeaver BPM and Activiti Designer.','',2,'Achim D. BruckerLuca CompagnaPierre Guilleminot','springer/bpmn security.csv','springer',''),(979,'105--108','2015','0','SaaS, experience, service design patterns, service design principles, service-oriented architecture','Software as a Service (SaaS) is now recognized as an effective model for the development, deployment, and customization of software. It has been reported that it reduces the costs as well as ensures the long-term sustainability of software systems. Monolithic software systems are seen as a set of interrelated and geographically distributed services over the Internet. Developers and providers can easily customize services while being able to accommodate a large range of stakeholders. At the core of this service orientation of the whole field of software development are the Service-Oriented Architecture (SOA) design principles. These principles detail what we should do, but not how and by whom it has to be done. From a human perspective -- all stakeholders -- we argue that the current SOA design principles can be linked and benefit from the user experience/user-centric design. Such combination can lead to a user experience-centric and SOA-based design approach that guarantees that SaaS is secure, yet trustable, useful, usable and accessible. In this position paper, we reviewed SOA/SaaS from the human dimension with the goal to bridging the gaps between SOA design principles and the User Experience (UX) design communities including Human-Computer Interaction (HCI) and service design. One practical goal is to enhance the SOA, as a technological platform with elements of UX including the social aspects of their interactions within the organizational structure and processes.','',1,'','acm/soa security.csv','acm',''),(980,'ROAD4SaaS: Scalable Business Service-Based SaaS Applications','2013','0',' SOA SaaS Scalability Service Variability','Abstract Software-as-a-Service (SaaS) is a software delivery model gaining popularity. Service Oriented Architecture (SOA) is widely used to construct SaaS applications due to the complementary characteristics in the two paradigms. Scalability has always been one of the major requirements in designing SaaS applications to meet the fluctuating demand. However, constructing SaaS applications using third-party business services raises additional challenges for the scalability of the application due to the partner services’ variability and autonomy. Any approach used to develop scalable service-based SaaS applications that compose business services needs to consider these characteristics. In this paper we present an approach to deploy scalable business service compositions based on the concept of an extensible hierarchy of virtual organisations. The explicit representation of relationships in the organisation allows capturing commonalities and variations of relationships between business services while its extensibility allows scale-out/in the SaaS application instance.','',2,'Malinda KapurugeJun HanAlan ColmanIndika Kumara','springer/bpel security.csv','springer','\0'),(981,'SOA-Scanner: An Integrated Tool to Detect Vulnerabilities in Service-Based Infrastructures','2013','3','SOA;security;security testing;vulnerability detection;web-services','Service Oriented Architectures are nowadays used in a wide range of organizations to support critical daily operations. Although the underlying services should behave in a secure manner, they are often deployed with bugs that can be maliciously exploited. The characteristics of service-based environments open the door to security challenges that must be handled properly, including services under the control of multiple providers and dynamism of interactions and compositions. This paper presents an extensible tool able to widely test such infrastructures for vulnerabilities. The tool is based in an iterative process that uses interface monitoring to automatically monitor and discover the existing services, resources and interactions, and applies different testing approaches depending on the level of access to each existing services. Two case studies has been developed do demonstrate the tool, and results show that the tool can effectively be used in different service-based scenarios, under different access conditions to the target services.','Services Computing (SCC), 2013 IEEE International Conference on',1,'N. Antunes; M. Vieira','ieee/service oriented architecture security.csv','ieee','\0'),(982,'Maintaining Trustworthiness of Socio-Technical Systems at Run-Time','2014','0',' Socio-Technical Systems Trustworthiness Run-Time Maintenance','Abstract Trustworthiness of dynamical and distributed socio-technical systems is a key factor for the success and wide adoption of these systems in digital businesses. Different trustworthiness attributes should be identified and accounted for when such systems are built, and in order to maintain their overall trustworthiness they should be monitored during run-time. Trustworthiness monitoring is a critical task which enables providers to significantly improve the systems’ overall acceptance. However, trustworthiness characteristics are poorly monitored, diagnosed and assessed by existing methods and technologies. In this paper, we address this problem and provide support for semi-automatic trustworthiness maintenance. We propose a trustworthiness maintenance framework for monitoring and managing the system’s trustworthiness properties in order to preserve the overall established trust during run-time. The framework provides an ontology for run-time trustworthiness maintenance, and respective business processes for identifying threats and enacting control decisions to mitigate these threats. We also present use cases and an architecture for developing trustworthiness maintenance systems that support system providers.','',2,'Nazila Gol MohammadiTorsten BandyszakMicha MoffieXiaoyu ChenThorsten WeyerCostas KalogirosBassem NasserMike Surridge','springer/bpmn security.csv','springer',''),(983,'OPC UA server aggregation — The foundation for an internet of portals','2014','0','','Devices in industrial automation systems are becoming more and more intelligent. Consequently, functions such as server services are migrating into the device level. To solve the resulting connection mesh, this paper entails the concept of aggregation of servers connected to devices in an industrial automation scenario. The first section discusses the basic requirements for aggregation and proposes an architecture for server aggregation as a solution. The following section describes the building blocks of the architecture. Finally, the paper presents a prototype based on this architecture model as a proof of concept implementation of the concept introduced in this paper. The last section discusses the results of the prototyping phase including the possible improvements of the same.','Proceedings of the 2014 IEEE Emerging Technology and Factory Automation (ETFA)',1,'D. Großmann; M. Bregulla; S. Banerjee; D. Schulz; R. Braun','ieee/service oriented architecture security.csv','ieee','\0'),(984,'ICT-powered Health Care Processes','2014','0',' Clinical guidelines declarative and stochastic process models adaptability trustworthiness','Abstract The efficient use of health care ressources requires the use of Information and Communication Technology (ICT). During a treatment process, patients have often been tested and partially treated with different diagnoses in mind before the precise diagnosis is identified. To use ressources well it becomes necessary to adapt the prescribed treatments to make use of the tests and partial treatments already performed, rather than always starting from square one. We propose to facilitate this through the design of declarative process models accounting for the involvement of distributed groups of medical specialists and the adaptation of treatments, and through the evaluation of the trustworthiness of models taking account of test results and actual treatments compared to the clinical guidelines.','',2,'Marco CarboneAnders Skovbo ChristensenFlemming NielsonHanne R. NielsonThomas HildebrandtMartin Sølvkjær','springer/bpmn security.csv','springer',''),(985,'An Intelligent Interactive Home Care System: An MPLS-Based Community Cloud','2013','0',' Cloud Computing MPLS ICT RFID Virtualization Smart Sensors Network Capable Application Processor','Abstract In recent years, scholarly research on the use of new technology in healthcare has intensified. Some of the main challenges identified in the literature include the integration of dissimilar signaling systems, network barriers such as bandwidth allocation, battery life in wireless devices, the security and privacy protection associated with data transmission using public network and the user friendliness of the systems, among others. The aim of this paper is to address some of the above concerns by introducing a secure, multiplatform network system capable of providing the dynamic bandwidth allocation required for today’s home healthcare services. It incorporates a user friendly interface by introducing a unique instrument integrated with the community cloud arrangement to provide a more robust system to address the needs of multiple stakeholders.','',1,'Farid Shirazi','springer/service oriented architecture security.csv','springer','\0'),(986,'Towards Cross-Layer Monitoring of Multi-Cloud Service-Based Applications','2013','2',' Cloud computing service-oriented architecture monitoring modeling event processing service dependencies','Abstract Cloud computing is becoming a popular platform to deliver service-based applications (SBAs) based on service-oriented architecture (SOA) principles. Monitoring the performance and functionality of SBAs deployed on multiple Cloud providers (in what is also known as Multi-Cloud setups) and adapting them to variations/events produced by several layers (infrastructure, platform, application, service, etc.) in a coordinated manner are challenges for the research community. This paper proposes a monitoring framework for Multi-Cloud SBAs with two main objectives: (a) perform cross-layer (Cloud and SOA) monitoring enabling concerted adaptation actions; (b) address new challenges raised in Multi-Cloud SBA deployment. The proposed framework is empirically evaluated on a real-world Multi-Cloud setup.','',1,'Chrysostomos ZeginisKyriakos KritikosPanagiotis GarefalakisKonstantina KonsolakiKostas MagoutisDimitris Plexousakis','springer/service oriented architecture security.csv','springer','\0'),(987,'Aspect oriented business process modelling with precedence','2012','3','Aspect Oriented; BPMN; Business Process Modelling; Separation of concerns','Complexity is a major concern which is aimed to be overcome by people through modelling. One way of reducing complexity is separation of concerns, e.g. separation of business process from applications. One sort of concerns are cross-cutting concerns i.e. concerns which are scattered and tangled through one or several models. In business process management, examples of such concerns are security and privacy policies. To deal with these cross-cutting concerns, the aspect orientated approach was introduced in the software development area and recently also in the business process management area. The work presented in this paper elaborates on aspect oriented process modelling. It extends earlier work by defining a mechanism for capturing multiple concerns and specifying a precedence order according to which they should be handled in a process. A formal syntax of the notation is presented precisely capturing the extended concepts and mechanisms. Finally, the relevance of the approach is demonstrated through a case study. © 2012 Springer-Verlag.','',2,'Jalali A., Wohed P., Ouyang C.','scopus/bpmn security.csv','scopus','\0'),(988,'User-Guided Provisioning in Federated Clouds for Distributed Calculations','2015','1','','Abstract Cloud Computing promises to be more flexible, usable, available and simple than Grid, covering also much more computational needs than the ones required to carry out distributed calculations. However, the diversity of cloud providers, the lack of standardised APIs and brokering tools prevent the massive portability of legacy applications to cloud environments. In this work a new framework to effectively schedule distributed calculations in cloud federations is presented. The system takes account of the experience in large and collaborative grid federations to provide several basic features that differentiates it from other approaches, such as the decentralisation, middleware independence, dynamic brokering, on-demand provisioning of specific virtual images, compatibility with legacy applications, efficient accomplishment of short tasks, etc. In this sense, the mechanisms that allow users to consolidate their own resource provisioning in cloud federations are the focus of this work. To demonstrate the suitability of the new approach, a common application to model radiation beams has been scheduled into the EGI FedCloud.','',1,'A. J. Rubio-MonteroE. HuedoR. Mayo-García','springer/service oriented architecture security.csv','springer',''),(989,'A Reliable and Scalable Service Bus Based on Amazon SQS','2013','0',' Cloud based interoperation Cost evaluation Web service based coordination','Abstract Cloud computing infrastructures are becoming a very powerful mean for the implementation of reliable and extensible computing systems. In this paper, we evaluate the viability of migrating a framework for the execution of (scientific) workflows from a cluster-based to a cloud-supported implementation. As a first step, we focus on the viability of adapting the framework message bus (which has a Linda semantics) to the use of the Amazon Simple Queue Service (Amazon SQS). The paper evaluates the performance of the cloud-based bus and studies the influence of the network latency, depending on different geographical locations and configurations. It also compares the cloud-based bus with DRLinda, our former implementation, in terms of economic cost and performance. This comparison allows us to conclude that, under the same conditions, the cloud-based message bus is faster, more scalable and more reliable.','',1,'Sergio HernándezJavier FabraPedro ÁlvarezJoaquín Ezpeleta','springer/service oriented architecture security.csv','springer','\0'),(990,'SaaS-platform for mobile health applications','2012','','e-Health; fearless; M-Diab; M-Fitness; M-Skin; M-Stress; Platform; SaaS; Telehealth; Telemedicine','Involving information and communication technology in health solutions has shown to raise satisfaction for both health care providers and patients. Several research works have been focusing on this issue, since it appears to be the suited solution for reaching an economically and socially viable solution to the increasing number of chronically ill patients which is currently stressing the healthcare systems. In today\'s context, Software as a Service (SaaS), a model in which software and its associated data are hosted centrally and are typically accessed by users using client interfaces, has become a common delivery model for several applications. However, security and privacy issues have to be given more attention in most of these implementation environments. This paper introduces an innovative SaaS-Platform suited for the implementation of mobile health solutions. The platform utilizes state-of-the art technologies in information and communication systems. It follows the principles of services oriented architecture and delivers services as a SaaS. The SaaS-Platform has a four-layer architecture model which includes the middle layer, the application layer, the communication layer and the user layer. At the application layer, solutions can be presented as web-interfaces, mobile-interfaces or client software. Basic tasks such as secure data communication, secure data storage, user management and easy-to-use interfaces are offered by the SaaS-Platform. The architecture and basic functions of the platform will be presented. The implementation of a number of telemedical and e-Health solutions on this Platform has been performed successfully. © 2012 IEEE.','',1,'Berndt R.-D., Takenga M.C., Kuehn S., Preik P., Sommer G., Berndt S.','scopus/service oriented architecture security.csv','scopus','\0'),(991,'Cover page','2014','0','','The following topics are dealt with: visualisation; ERP systems; agile information systems development; data fraud detection; natural language; reusable systems; object-oriented principles; GUI modeling; communication protocols; service-oriented platform; virtual reality; embedded systems; software engineering forensics; software specification; and mobile applications.','Evaluation of Novel Approaches to Software Engineering (ENASE), 2014 International Conference on',1,'','ieee/service oriented architecture security.csv','ieee','\0'),(992,'Architecture for BPEL based requirement driven learning management','2008','0','','With support of multiple learners and multiple roles in a learning activity, IMS Learning Design (LD) specification provides a collaborative scenario for participants. However, IMS LD provides insufficient support for interaction among learning activities and can not dynamically integrate learning resources to meet the continually changing service requirement. In this paper, we propose a BPEL-enhanced requirement driven learning management architecture to address the issues of personalize adaptive learning. Our approach models the learning activity by combining IMS LD with BPEL and matches optimal learning sequence base on CBR (case-based reasoning) method. By providing expandable learning sequences flexibly, it satisfies the different actual demands for personalize learning.','IT in Medicine and Education, 2008. ITME 2008. IEEE International Symposium on',2,'Chaowang Shang; Zongkai Yang; Qingtang Liu; Chengling Zhao','ieee/bpel security.csv','ieee','\0'),(993,'A Web-Service for Automated Software Refactoring Using Artificial Bee Colony Optimization','2012','0',' Discrete Artificial Bee Colony Optimization Search-Based Software Engineering Software Quality Web-Services','Abstract Automated software refactoring is one of the hard combinatorial optimization problems of search-based software engineering domain. The idea is to enhance the quality of the existing software under the guidance of software quality metrics through applicable refactoring actions. In this study, we designed and implemented a web-service that uses discrete version of Artificial Bee Colony (ABC) optimization approach in order to enhance bytecode compiled Java programming language codes, automatically. The introduced service supports 20 different refactoring actions that realize intelligent ABC searches on design landscape defined by an adhoc quality model being an aggregation of 24 object-oriented software metrics.','',1,'Ekin KocNur ErsoyZelal Seda CamlidereHurevren Kilic','springer/service oriented architecture security.csv','springer','\0'),(994,'A review of smart homes in healthcare','2015','4',' Smart homes Assisted living Healthcare Ambient intelligence Activity recognition Human interfaces Artificial intelligence Sensors','Abstract The technology of Smart Homes (SH), as an instance of ambient assisted living technologies, is designed to assist the homes’ residents accomplishing their daily-living activities and thus having a better quality of life while preserving their privacy. A SH system is usually equipped with a collection of inter-related software and hardware components to monitor the living space by capturing the behaviour of the resident and understanding his activities. By doing so the system can inform about risky situations and take actions on behalf of the resident to his satisfaction. The present survey will address technologies and analysis methods and bring examples of the state of the art research studies in order to provide background for the research community. In particular, the survey will expose infrastructure technologies such as sensors and communication platforms along with artificial intelligence techniques used for modeling and recognizing activities. A brief overview of approaches used to develop Human–Computer interfaces for SH systems is given. The survey also highlights the challenges and research trends in this area.','Journal of Ambient Intelligence and Humanized Computing',1,'Mohsen AmiribesheliAsma BenmansourAbdelhamid Bouchachia','springer/soa security.csv','springer',''),(995,'VRank: A Context-Aware Approach to Vulnerability Scoring and Ranking in SOA','2012','1','Context;Ranking and Scoring;Service-Oriented Architecture;Vulnerabilities','With the rapid adoption of the concepts of Service Oriented Architecture (SOA), sophisticated business processes and tasks are increasingly realized through composing distributed software components offered by different providers. Though such practices offer advantages in terms of cost-effectiveness and flexibility, those components are not immune to vulnerabilities. It is therefore important for the administrator of some composed service to evaluate the threats of such vulnerabilities accordingly within limited available information. Since almost all the existing efforts (e.g., CVSS) fail to consider specific context-aware information which is the specific character of SOA, they could not be adopted into SOA for scoring vulnerabilities. In this paper, we present VRank, a novel framework for the scoring and ranking of vulnerabilities in SOA. Different from existing efforts, for a given vulnerability, VRank not only considers its intrinsic properties (e.g., exploitability), but also takes into account the contexts of the services having this vulnerability, e.g., what roles they play in the composed service and how critical it is to the security objective of the service. The resulting scoring and ranking of vulnerabilities are thus highly relevant and meaningful to the composed service. We present the detailed design of VRank, and compare it with CVSS. Our experiments indicate VRank is able to provide much more useful ranking lists of vulnerabilities for complex composed services.','Software Security and Reliability (SERE), 2012 IEEE Sixth International Conference on',1,'J. Jiang; L. Ding; E. Zhai; T. Yu','ieee/service oriented architecture security.csv','ieee','\0'),(996,'Power consumption prediction of web services for energy-efficient service selection','2015','0',' Power consumption prediction Web service Virtual power meter QoS','Abstract Service-oriented computing (SOC) is a popular software paradigm that is widely employed in IT industry. SOC uses “services” as the unit of functionality of a software application. The massive wave of SOC applications involves considerable energy consumption of servers, which should not be ignored in large-scale computing environment. When a service requirement can be answered by several web services, the energy consumption for each service to reply to the service request may be different. When this happens, web service selection (WSS) is often required to choose appropriate services to maximize global energy efficiency of SOC applications. Accordingly, this paper proposes a Virtual Power Meter Supported Power Consumption Prediction method for WSS (VPMSPCP). VPMSPCP facilitates choosing appropriate services to minimize wasteful electrical energy from the overall environment of SOC applications. According to our empirical proof, there is a correlation between the power consumption of a service and the status of the server where this service resides. We take advantage of this discovery to develop VPMSPCP by combining a ridge regression model with a well-known web service power modeling method. There are mainly two steps to establish VPMSPCP. First, we develop a virtual power meter (VPM) for each server. VPM is used to estimate the average power of a server under a certain status. Second, we apply the VPM to develop VPMSPCP which estimates power consumption of a web service according to the current status of the corresponding servers. Experiments show that VPMSPCP performs well in improving energy saving in WSS.','Personal and Ubiquitous Computing',1,'Jin LiuJiaming JiangXiaohui CuiWei YangXiao Liu','springer/soa security.csv','springer',''),(997,'Shifting Primes on OpenRISC Processors with Hardware Multiplier','2013','1','','Abstract Shifting primes have proved its efficiency in CPUs without hardware multiplier such as the located at the MSP430 from Texas Instruments. This work analyzes and presents the advantages of the shifting primes for CPUs with hardware multiplier such as the JN5139 from NXP/Jennic based on an OpenRISC architecture. This analysis is motivated because Internet of Things is presenting several solutions and use cases where the integrated sensors and actuators are sometimes enabled with higher capabilities. This work has concluded that shifting primes are offering advantages with respect to other kind of primes for both with and without hardware multiplier. Thereby, offering a suitable cryptography primitives based on Elliptic Curve Cryptography (ECC) for the different families of chips used in the Internet of Things solutions. Specifically, this presents the guidelines to optimize the implementation of ECC when it is presented a limited number of registers.','',1,'Leandro MarinAntonio J. JaraAntonio Skarmeta','springer/service oriented architecture security.csv','springer','\0'),(998,'A Hybrid Trust Service Architecture for Cloud Computing','2013','0','Cloud Computing;D-S Evidence Theory;Dirichlet Distribution;Service Architecture;Trust','Trust service is a very important issue in cloud computing, and a cloud user needs a trust mechanism in selecting a reliable cloud service provider. Many trust technologies such as SLA, cloud audit, self-assessment questionnaire, accreditation, and so on, are proposed by some research organizations like CSA. However, all of these just provide a initial trust and have many limitations. A hybrid trust service architecture for cloud computing is proposed in this paper, which primary includes two trust modules named the initial trust module and trust-aided evaluation module. After an initial and a basic trust is established in initial trust module, the trust-aided evaluation module will be used to verify the service provider dependable further. The approaches of D-S evidence theory and Dirichlet distribution PDF are introduced to compute the trust degree value as well. The hybrid service architecture can obtain more effects on selecting the reliable service provider and promote the computing efficiency greatly.','Computer Sciences and Applications (CSA), 2013 International Conference on',1,'Z. Yang; X. Qin; Y. Yang; T. Yagink','ieee/service oriented architecture security.csv','ieee','\0'),(999,'A WS-Agreement Based SLA Implementation for the CMAC Platform','2014','0',' SLA WS-Agreement Requirements Negotiation','Abstract The emerging transformation from a product oriented economy to a service oriented economy based on Cloud environments envisions new scenarios where actual QoS (Quality of Service) mechanisms need to be redesigned. In such scenarios new models to negotiate and manage Service Level Agreements (SLAs) are necessary. An SLA is a formal contract which defines acceptable service levels to be provided by the Service Provider to its customers in measurable terms. SLAs are an essential component in building Cloud systems where commitments and assurances are specified, implemented, monitored and possibly negotiable. This is meant to guarantee that consumers’ service quality expectations can be achieved. In fact, the level of customer satisfaction is crucial in Cloud environments, making SLAs one of the most important and active research topics. This paper presents an SLA implementation for negotiation, monitoring and renegotiation of agreements for Cloud services based on the CMAC (Condition Monitoring on A Cloud) platform. CMAC offers condition monitoring services in cloud computing environments to detect events on assets as well as data storage services.','',1,'Adriano GalatiKarim DjemameMartyn FletcherMark JessopMichael WeeksJohn McAvoy','springer/service oriented architecture security.csv','springer','\0'),(1000,'User-hosted SOA infrastructure over XMPP','2014','0','Distributed computing;Middleware;Software architecture;Web services','The proliferation of user-owned connected devices has brought value to mobile application developers, which can make use of locally-available sensors and capabilities and send their information to the web, centralizing the data flows. A more distributed approach would have device capabilities offered directly on the network as services hosted by the user. These pervasive user-hosted services could be made discoverable and available over a public federated service infrastructure. The infrastructure would provide transport over an identity layer, where endpoints are addressed by their identities instead of network identifiers, and on top of which services can be exposed to be consumed by trusted friends or anonymous users, as the hosting user prefers. The work presented in this paper explores the possibility of implementing such a distributed social Service-Oriented Architecture (SOA) over Extensible Messaging and Presence Protocol (XMPP). This SOA, which would expose re-usable coarse-grained software components in a service ecosystem, differs from traditional SOA because it attempts to counter the centralization existing services, in favour of a fully-distributed service ecosystem where each peer can behave both as service consumer and provider. Finally, an analysis is done on how suitable XMPP is to serve as a base protocol for such infrastructure.','2014 IEEE Symposium on Computers and Communications (ISCC)',1,'J. M. Gonçalves; D. Gomes','ieee/service oriented architecture security.csv','ieee','\0'),(1001,'The State of the Art in Code Generation','2013','0','','Abstract Some of the requirements for the Genesys approach presented in Sect. 1.1 are a direct result of examining and evaluating the work that has been done in the field of code generation so far. This chapter provides an overview of the current state of the art in code generation for MD*. It starts off with a brief retrospect on classical compiler construction (Sect. 2.1), which developed ideas and concepts that clearly influence current code generation techniques. Sect. 2.2 elaborates on the conceptual foundations of MD* and on how the associated terminology is used in this book. Afterwards, Sect. 2.3 examines the role of code generation in several existing MD* (and related) approaches, and Sect. 2.4 introduces techniques for actually realizing code generators. Sect. 2.5 presents the state of the art in verifying and validating code generators. Finally, Sect. 2.6 compares Genesys with the approaches and techniques described in the preceding sections.','',2,'Sven Jörges','springer/bpel security.csv','springer','\0'),(1002,'Adaptive Enterprise Service Bus','2012','3',' SOA Software Models Service Composition','Abstract Modern software systems are usually designed in the Service-Oriented Architecture (SOA), which provides methods for system development and integration of existing, reusable services. Due to the growing com-plexity of such systems, there is a need to design them in a way which enables adaptation to changes in the execution environment. This paper presents the Adaptive ESB framework for adaptive execution of services with the use of statistical models representing knowledge about service execution. Statisti- cal models are exploited in many different areas, but applying them to SOA applications requires specific methods for their identification, updating and processing. A statistical model of service execution represents knowledge of how a complex system behaves as a high-level abstraction of a system related to the problem space.','New Generation Computing',2,'Tomasz SzydłoKrzysztof Zieliński','springer/bpel security.csv','springer','\0'),(1003,'Automated Analysis of Scenario-Based Specifications of Distributed Access Control Policies with Non-mechanizable Activities','2013','1','','Abstract The advance of web services technologies promises to have far-reaching effects on the Internet and enterprise networks allowing for greater accessibility of data. The security challenges presented by the web services approach are formidable. In particular, access control solutions should be revised to address new challenges, such as the need of using certificates for the identification of users and their attributes, human intervention in the creation or selection of the certificates, and (chains of) certificates for trust management. With all these features, it is not surprising that analyzing policies to guarantee that a sensitive resource can be accessed only by authorized users becomes very difficult. In this paper, we present an automated technique to analyze scenario-based specifications of access control policies in open and distributed systems. We illustrate our ideas on a case study arising in the e-government area.','',2,'Michele BarlettaSilvio RaniseLuca Viganò','springer/bpel security.csv','springer','\0'),(1004,'A Context-Aware Mashup Integration Guideline for Enterprise 2.0','2012','1',' Enterprise 2.0 Mashup SOA Migration Business Services Crowd Sourcing Social Networks Web 2.0','Abstract Recent advances in Internet Computing have changed the outlook of business and enterprise cooperation models. Many companies have started to leverage their services in order to move toward Enterprise 2.0. In this regard enabling technologies such as Mashups play a significant role to shift away from traditional information management environments towards dynamic and collaborative systems. In this paper, different business aspects of Mashup architecture in enterprise use-cases will be explored and the SWISHGUIDE-framework for capturing the needs and readiness factors of target organization will be introduced. The proposed SWISHGUIDE framework provides a decision-making guideline for transition from traditional information management systems to a successful Enterprise Mashup architecture.','',1,'Gerald BaderAmin AnjomshoaaA Min Tjoa','springer/service oriented architecture security.csv','springer','\0'),(1005,'Semantic Enrichment of Models to Assist Knowledge Management in a PLM Environment','2013','0',' Semantic Interoperability Semantic Annotation BPMN PLM Knowledge Management','Abstract Product Lifecycle Management (PLM) has been considered as an essential concept for improving the product competitive ability in manufacturing enterprises. The PLM solution aims at providing a shared platform for facilitating the management of the knowledge related to any product development process in or across enterprises. However, facing with different standards, enterprise systems and stakeholders, enterprises still need to deal with interoperability issues between those collaborative information systems, encompassing their capability to find the right information during the whole Product Life Cycle (PLC). The objective of this paper is to cope with the major issue of semantic interoperability, by proposing a formalization of semantic annotations and a prototype for facilitating a coherent, complete and contextualized interoperability of knowledge between all enterprise systems and related stakeholders. An example of the instantiation of our method within a real application scenario in manufacturing domain is presented to demonstrate its applicability and use, both at the engineering and the exploitation phases.','',2,'Yongxin LiaoMario LezocheEduardo LouresHervé PanettoNacer Boudjlida','springer/bpmn security.csv','springer','\0'),(1006,'Machine-Readable Privacy Certificates for Services','2013','1',' privacy certification testing','Abstract Privacy-aware processing of personal data on the web of services requires managing a number of issues arising both from the technical and the legal domain. Several approaches have been proposed to matching privacy requirements (on the clients side) and privacy guarantees (on the service provider side). Still, the assurance of effective data protection (when possible) relies on substantial human effort and exposes organizations to significant (non-)compliance risks. In this paper we put forward the idea that a privacy certification scheme producing and managing machine-readable artifacts in the form of privacy certificates can play an important role towards the solution of this problem. Digital privacy certificates represent the reasons why a privacy property holds for a service and describe the privacy measures supporting it. Also, privacy certificates can be used to automatically select services whose certificates match the client policies (privacy requirements). Our proposal relies on an evolution of the conceptual model developed in the Assert4Soa project and on a certificate format specifically tailored to represent privacy properties. To validate our approach, we present a worked-out instance showing how privacy property Retention-based unlinkability can be certified for a banking financial service.','',1,'Marco AnisettiClaudio A. ArdagnaMichele BezziErnesto DamianiAntonino Sabetta','springer/service oriented architecture security.csv','springer','\0'),(1007,'Contract Compliance Monitoring of Web Services','2013','1','','Abstract Design and implementation via contractual specifications helps designers and programmers understand and analyze when the requirements have been elicited according to the client’ desires. In general, software is released when some tests have been successfully passed. However, these tests only cover a finite set of possible executions. But in systems such as web services, which involve a set of heterogeneous parties, it is difficult to identify an appropriate set of tests because their execution tends to be nondeterministic since most rely on underlying software systems where most of the information is hidden due to copyright or security concerns. In this work, we propose that the use of contract specifications, such us C-O Diagrams, allow one to specify and codify a system, where once the software has been released it is still possible to check if the execution conforms to a given contract. To achieve this goal, we purpose a monitoring technique, where all actions specified in a contract are recorded in a log that will be used by the monitor software to check if the contract is being fulfilled and alerting all parties when it is not so that the system can force reparations.','',2,'Gregorio DíazLuis Llana','springer/bpel security.csv','springer','\0'),(1008,'Towards a reference architecture for fuel-based carbon management systems in the logistics industry','2013','3',' Carbon footprinting Logistics carbon management system Architecture Logistics industry','Abstract The current practice in the logistics industry is to calculate the carbon footprint of transportation activities based on the distance covered, using long-term fuel consumption averages per kilometer. However, fuel consumption may actually vary over time, because of differences in road characteristics, traffic situations, driving behavior, etc. Therefore, distance-based emission calculations are not accurate. Our approach is fuel-based and it calculates transport greenhouse gas emissions by obtaining the actual fuel consumption during trips via board computers installed in vehicles. Thus, we propose an architecture for a fuel-based Logistics Carbon Management System (LCMS) that monitors and collects real-time data about the fuel consumption during trips, and, consequently, calculates detailed and accurate carbon footprints of transportation services. Furthermore, this system is integrated with the logistics service provider’s business processes and with typical software applications (e.g., Transport Management Systems and Board Computers). We validate and implement the proposed architecture by means of a prototype.','Information Systems Frontiers',2,'M. E. IacobM. J. van SinderenM. SteenwijkP. Verkroost','springer/bpmn security.csv','springer','\0'),(1009,'A framework for simple object access protocol messages to detect expansion attacks for secure webservice','2013','2','DoS; SOAP; Web services; WS-Security; XML','The world has shrunk in this internet era. The applications in the internet use XML and Web Services which are simple, but powerful standards that enable applications to more efficiently communicate with each other. Unfortunately this advantage is coupled with concerns of Web services security. All the services provided by the internet face security problem. The hackers find a loophole to attack the web service to eliminate the availability of service. One of the most severe threats is Denial of Service attacks which are intended to annihilate the availability of a service. In this study we propose a schema to detect a special type of Denial of Service attack where the hacker modifies the SOAP messages by expanding it. The message expanded thus, takes a huge amount of memory while parsing and thereby denies service to a legitimate request. To overcome this problem, in this study, we propose a new security scheme which adds a digital signature to the message and also limits the upper bound of the length of the SOAP message. © 2013 Science Publications.','',1,'Siluvai I.S.P., Senthil Kumar V.J.','scopus/webservice security.csv','scopus','\0'),(1010,'An adaptable distributed trust management framework for large-scale secure service-based systems','2014','2',' Large-scale service-based systems Security Trust Distributed trust management Adaptability Situation-awareness Security policy Security agent Framework Specification language Mathematics Subject Classification 68N30 68M11 68M14 68U99','Abstract A major advantage of service-based computing systems is the ability to enable rapid formation of large-scale distributed systems by composing available services to achieve the system goals, regardless of the programming languages and platforms used to develop and/or run these services. For these systems, which often involve communications among multiple organizations over various networks, high confidence and adaptability are of primary concern to ensure that users can access these systems anywhere and anytime through various devices, knowing that their security and privacy are well protected under various situations. In this paper, an adaptable distributed trust management framework for large-scale service-based systems is presented. This framework includes a meta-model with a formal specification language for situation-aware security policies, and tools for generating and deploying security agents to evaluate and enforce trust decisions based on security policies, credentials and situational information. With this framework, large-scale service-based systems can incorporate distributed trust management to meet their trustworthiness requirements under various situations.','Computing',1,'Stephen S. YauYisheng YaoArun Balaji Buduru','springer/service oriented architecture security.csv','springer','\0'),(1011,'Cloud4SOA: A Semantic-Interoperability PaaS Solution for Multi-cloud Platform Management and Portability','2013','5',' Cloud computing Platform as a Service (PaaS) interoperability portability semantics vendor lock-in','Abstract Cloud Platform as a Service (PaaS) is a novel, rapidly growing segment in the Cloud computing market. However, the diversity and heterogeneity of today’s existing PaaS offerings raises several interoperability challenges. This introduces adoption barriers due to the lock-in issues that prevent the portability of data and applications from one PaaS to another, “locking” software developers to the first provider they use. This paper introduces the Cloud4SOA solution, a scalable approach to semantically interconnect heterogeneous PaaS offerings across different Cloud providers that share the same technology. The design of the Cloud4SOA solution, extensively presented in this work, comprises of a set of interlinked collaborating software components and models to provide developers and platform providers with a number of core capabilities: matchmaking, management, monitoring and migration of applications. The paper concludes with the presentation of a proof-of-concept implementation of the Cloud4SOA system based on real-life business scenarios.','',1,'Eleni KamateriNikolaos LoutasDimitris ZeginisJames AhtesFrancesco D’AndriaStefano BocconiPanagiotis GouvasGiannis LedakisFranco RavagliOleksandr LobunetsKonstantinos A. Tarabanis','springer/service oriented architecture security.csv','springer','\0'),(1012,'Managing Federations and Cooperative Management: A Report on ManFed.Com 2011','2012','1',' Network management Service management Policy management Security management','Abstract The first IFIP/IEEE international workshop on Managing Federations and Cooperative Management (ManFed.CoM) took place in conjunction with the IFIP/IEEE International Symposium on Integrated Network Management (IM 2011) conference in Trinity College Dublin, Ireland on May 23rd 2011. The multi-mode, loosely coupled, user-centric nature of modern communications and services, coupled with the diversity of operator business models, ensure that modern end-to-end service provision frequently crosses heterogeneous management and administrative domains. Thus, management approaches that can be applied across organizational boundaries are increasingly important in a wide range of application areas. There are a number of significant, common, complex issues which must be addressed in all technologies and applications that involve federated organizations, yet research has heretofore been mostly confined to particular technical or application areas. The first installment of ManFed.Com addressed this gap by bringing together researchers from a broad array of application and technical areas who shared an interest in cross-domain management. The workshop drew out common themes, problems and issues encountered, and the solutions being designed to deal with the problems of managing information systems that span autonomous domains. More than 30 researchers participated in a lively and interactive day of paper presentation, panels and software demonstrations. The success of the inaugural event was such that the organizing committee is now committed to running further installations—we are in the process of preparing a submission to run a the 2nd ManFed.CoM in conjunction with the IEEE/IFIP Network Operations and Management Symposium (NOMS) 2012 conference. We believe that these workshops will help to provide the basis for a common understanding and common approaches to inter-domain management and governance that synthesizes the insights and best-of-breed solutions being developed in the diverse areas in which these problems are encountered. The technical program of ManFed.CoM 2011 was organized as a single track and was composed of two panels of invited experts, two full paper sessions, one short paper session and a demonstration session in which practical software tools were presented. Of the 16 papers submitted, 6 were selected for presentation as full papers, with a further 3 being presented in condensed form as short papers. All the papers submitted underwent a rigorous review process, receiving between 2 and 5 reviews each, with the accepted full papers receiving a minimum score of 7.5 out of 10 from reviewers. The papers presented constituted a good cross-section of current cross-domain management research work—they covered modeling, semantic interoperability, trust management and security, policy based management, business process orchestration, collaboration and delegation and look at management on a number of different layers—from low level network management, all the way up to high level business-driven management.','Journal of Network and Systems Management',1,'Kevin C. FeeneyBrendan JenningsJoel J. Fleck II','springer/soa security.csv','springer','\0'),(1013,'A Service Hardware Application Case Fiducia','2015','0','','Abstract The various perspectives on how requirements for a process-developing IT application are described have led to the long-standing challenge of business IT alignment. For BPM (Business Process Management) modeling at Fiducia for many years, employees in the business departments have been able to compile large, complex processes by involving experts. Such models are not focused on the point of view of each individual employee involved but on the process as a whole. Consequently, the specification is coarse-grained to such an extent that an identification of the employees with a model and how they effectively work along a process cannot be achieved. Moreover, the superficial examination does not allow deriving guidelines for implementing an IT solution based on coarse-grained models. Introducing S-BPM brings the point of view of the individual employee to the center of describing processes. It thereby enables describing how processes actually run from his/her point of view. We have used this capability to empower the employees of the business departments to carry out this description task (modeling) themselves. Based on a sample project, which also includes integrating SAP as a database, I shall describe the difference between the “traditional” approaches to BPM and S-BPM. Since both approaches were used in this project, the benefits can be described precisely. The savings in Euro and time (earlier availability) represent an important factor here besides the quality of the description. By considering the details of the process, the quality of the description is significantly increased, and, last but not least, the identification of the employees in the business departments with their models, who finally were able to create applications by themselves.','',2,'Lothar Hübner','springer/bpmn security.csv','springer',''),(1014,'Towards verification of computation orchestration','2014','2',' Orc Web service orchestration Verification Timed automata U ppaal Constraint logic programming CLP \\({(\\mathcal{R})}\\)','Abstract Recently, a promising programming model called Orc has been proposed to support a structured way of orchestrating distributed Web Services. Orc is intuitive because it offers concise constructors to manage concurrent communication, time-outs, priorities, failure of Web Services or communication and so forth. The semantics of Orc is precisely defined. However, there is no automatic verification tool available to verify critical properties against Orc programs. Our goal is to verify the orchestration programs (written in Orc language) which invoke web services to achieve certain goals. To investigate this problem and build useful tools, we explore in two directions. Firstly, we define a Timed Automata semantics for the Orc language, which we prove is semantically equivalent to the operational semantics of Orc. Consequently, Timed Automata models are systematically constructed from Orc programs. The practical implication is that existing tool supports for Timed Automata, e.g., Uppaal, can be used to simulate and model check Orc programs. An experimental tool has been implemented to automate this approach. Secondly, we start with encoding the operational semantics of Orc language in Constraint Logic Programming (CLP), which allows a systematic translation from Orc to CLP. Powerful constraint solvers like CLP \\({(\\mathcal{R})}\\) are then used to prove traditional safety properties and beyond, e.g., reachability, deadlock-freeness, lower or upper bound of a time interval, etc. Counterexamples are generated when properties are not satisfied. Furthermore, the stepwise execution traces can be automatically generated as the simulation steps. The two different approaches give an insight into the verification problem of Web Service orchestration. The Timed Automata approach has its merits in visualized simulation and efficient verification supported by the well developed tools. On the other hand, the CPL approach gives better expressiveness in both modeling and verification. The two approaches complement each other, which gives a complete solution for the simulation and verification of Computation Orchestration.','Formal Aspects of Computing',2,'Jin Song DongYang LiuJun SunXian Zhang','springer/bpel security.csv','springer',''),(1015,'Deriving role engineering artifacts from business processes and scenario models','2011','10','BPMN; RBAC; Role engineering; UML; XMI','Scenario-driven role engineering is a systematic approach to engineer and maintain RBAC models. Such as every engineering process, this approach heavily depends on human factors and many of the corresponding engineering tasks must be conducted manually. However, based on the experiences we gained from our projects and case studies, we identified several tasks in role engineering that are monotonous, time-consuming, and can get tedious if conducted manually. These tasks include the derivation of candidate RBAC artifacts from business processes and scenario models. In this paper, we present an approach to automatically derive role engineering artifacts from process and scenario models. While our general approach is independent from a specific document format, we especially discuss the derivation of role engineering artifacts from UML activity models, UML interaction models, and BPMN collaboration models. In particular, we use the XMI (XML Metadata Interchange) representation of these models as a tool- and vendorindependent format to identify and automatically derive different role engineering artifacts. © 2011 ACM.','',2,'Baumgrass A., Strembeck M., Rinderle-Ma S.','scopus/bpmn security.csv','scopus',''),(1016,'Business Process Model and Notation - 4th International Workshop, BPMN 2012, Proceedings','2012','','','The proceedings contain 10 papers. The topics discussed include: a platform for research on process model collections; aspect oriented business process modeling with precedence; event-based gateways: open questions and inconsistencies; a BPMN extension for including data quality requirements in business process modeling; BPMN4TOSCA: a domain-specific language to model management plans for composite applications; extending BPMN 2.0 for modeling the combination of activities that involve data constraints; comparison of BPMN2 diagrams; a tool for animating BPMN token flow; and towards SecureBPMN - aligning BPMN with the information assurance and security domain.','',2,'[No author name available]','scopus/bpmn security.csv','scopus','\0'),(1017,'Towards Adapting Choreography-Based Service Compositions Through Enterprise Integration Patterns','2015','0','','Abstract The Future Internet is becoming a reality, providing a large-scale computing environments where a virtually infinite number of available services can be composed so as to fit users’ needs. Modern service-oriented applications will be more and more often built by reusing and assembling distributed services. A key enabler for this vision is then the ability to automatically compose and dynamically coordinate software services. Service choreographies are an emergent Service Engineering (SE) approach to compose together and coordinate services in a distributed way. When mismatching third-party services are to be composed, obtaining the distributed coordination and adaptation logic required to suitably realize a choreography is a non-trivial and error prone task. Automatic support is then needed. In this direction, this paper leverages previous work on the automatic synthesis of choreography-based systems, and describes our preliminary steps towards exploiting Enterprise Integration Patterns to deal with a form of choreography adaptation.','',2,'Amleto Di SalleFrancesco GalloAlexander Perucci','springer/bpmn security.csv','springer',''),(1018,'Secure web service composition with untrusted broker','2014','1','','Composite web services are usually coordinated according to a workflow, composed by several activities, each of which carried out by a service. A way to coordinate this cooperation is orchestration, which implies that the workflow underlying the composite web service is processed by a broker hosting a workflow engine (e.g., BPEL engine). According to the orchestration paradigm, the broker coordinates the invocation of services involved in the composition by passing the needed parameters. In general, all previous proposals for the service orchestration model consider the broker as a trusted entity. As such, they never payed attention to the fact that the broker is able to access several pieces of sensitive data. We believe there is the need to protect them against improper access and usage from partner services as well as the broker. To cope with these issues, in this paper, we propose a protocol based on a selective encryption able to ensure that both the broker and service partners can access only the information needed to fulfill their activities. © 2014 IEEE.','',2,'Carminati B., Ferrari E., Tran N.H.','scopus/bpel security.csv','scopus',''),(1019,'Distributed access control and privacy for the internet of me','2016','','','This article presents an experimental scalable message driven IoT and its security architecture based on Decentralized Information Flow Control. The system uses a gateway that exports SoA (REST) interfaces to the internet simplifying external applications whereas uses DIFC and asynchronous messaging within the home environment.','2016 IEEE International Conference on Consumer Electronics (ICCE)',1,'D. D��az-S��nchez; R. S. Sherratt; F. Almenares; P. Arias; A. M. L��pez','ieee/soa security.csv','ieee',''),(1020,'Behavior-consistent service substitutions in dynamic environments','2014','0','Key words behavior consistency concurrent regular expressions subtyping technology type and effect systems service substitutions CLC number TP 301.2','Abstract In this paper, a novel approach for service substitutions based on the service type in terms of its interface type and behavior semantics is proposed. In order to analyze and verify behavior-consistent service substitutions in dynamic environments, we first present a formal language to describe services from control-flow perspective, then introduce a type and effect system to infer conservative approximations of all possible behaviors of these services. The service behaviors are represented by concurrent behavior expressions (CBEs). Built upon the interpretation of CBEs, behavior-consistent service substitutions are defined and analyzed by subtyping technology. The correctness of the analysis approach is guaranteed by type safety theorem, which is mechanically proved in the Coq proof assistant. Finally, applications in web services show that our method is effective and feasible.','Journal of Shanghai Jiaotong University (Science)',1,'Jun-qing Chen 陈俊清Lin-peng Huang 黄林鹏Cheng-yuan Yu 于程远','springer/soa security.csv','springer','\0'),(1021,'Performance Driven WS Orchestration and Deployment in Service Oriented Infrastructure','2014','0',' Business process WS composition Workflow Deployment Performance Bottleneck','Abstract Composite Web services (WS) can be seen as software systems designed according to workflow-based orchestration of building blocks or simpler WS. Each block has its own specifications concerning both functional and non-functional properties. While the characteristics of each block have a scope limited to its domain, the WS must guarantee service levels that are usually described by global end-to-end metrics. The problem of relating local to global objectives in WS orchestration is hard to approach. In this context, some WS components have to be deployed in distributed service oriented infrastructure mixing heterogeneous systems belonging to private and/or public providers. In this paper we propose a performance-driven technique for designing and deploying composite WS on heterogeneous service oriented infrastructure. Users having different requirements in terms of resource demands and performance objectives are considered. Several WS deployment alternatives, involving both physical and virtual resources provided by the infrastructure, are evaluated to identify the logical (workflow) and physical (deployment) configuration allowing to meet the requirements. In order to demonstrate the suitability of the proposed approach to the service oriented context, an example of a travel management WS is described and the optimal deployment of the components in a hybrid infrastructure is investigated.','Journal of Grid Computing',1,'Salvatore DistefanoGiuseppe Serazzi','springer/soa security.csv','springer','\0'),(1022,'A low-overhead secure communication framework for an inter-cloud environment','2015','','','Most of the current cloud computing platforms offer Infrastructure as a Service (IaaS) model, which aims to provision basic virtualized computing resources as on-demand and dynamic services. Nevertheless, a single cloud provider may not have limitless resources to offer to its users, hence the notion of an Inter-Cloud environment where a cloud can use the infrastructure resources of other clouds. However, there is no common framework in existence that allows the service owners to seamlessly provision even some basic services across multiple cloud service providers, albeit not due to any inherent incompatibility or proprietary nature of the foundation technologies on which these cloud platforms are built. In this paper we present a novel solution which aims to cover a gap in a subsection of this problem domain. Our solution offers a security architecture that enables service owners to provision a dynamic and service-oriented secure virtual private network on top of multiple cloud IaaS providers. It does this by leveraging the scalability, robustness and flexibility of peer-to-peer overlay techniques to eliminate the manual configuration, key management and peer churn problems encountered in setting up the secure communication channels dynamically, between different components of a typical service that is deployed on multiple clouds. We present the implementation details of our solution as well as experimental results detailing the overheads of our solution carried out on two commercial clouds. © Springer International Publishing Switzerland 2015.','',1,'Sajjad A., Rajarajan M., Dimitrakos T.','scopus/service oriented architecture security.csv','scopus',''),(1023,'Definition of standards-based building blocks for multimedia content management','2015','0',' Standards Building Blocks MPEG-M MIPAMS Android Demonstration','Abstract The emergence of new ways of rendering multimedia content from a multiplicity of devices like tablets, smartphones, consoles or smart TVs, opens a complete set of new opportunities for multimedia services providers. It is important that the development of those disruptive services is done in an interoperable way. Existing service-oriented middleware platforms and recently developed standards devoted to the definition and implementation of complex multimedia services may speed up its development. In this context, the identification of different content management scenarios including the high-level functionalities they require is an important aspect to be able to implement services in a flexible and interoperable way. Use of standards and standards-based architectures will be a key aspect to combine services offered by different providers. In this paper, we propose the definition of standards-based building blocks based on the high-level functionalities required by content management and distribution scenarios. This will facilitate provision of complex new services specially focused, but not limited to, the management and distribution of multimedia content.','Multimedia Tools and Applications',1,'Silvia LlorenteJaime DelgadoXavier MaroñasJonathan Florido','springer/service oriented architecture security.csv','springer',''),(1024,'Banks and information technology: marketability vs. relationships','2013','6',' Banking Information technology Relationship banking Stability Systemic risk','Abstract This paper evaluates the impact of information technology (IT) on the operations of banks and the structure of the banking industry, including implications for stability. On the one hand, banks can focus on relationship banking and use IT developments to tailor services to individual needs and build enhanced, albeit modified, relationships with customers. On the other hand, IT better allows banks to exploit economies of scale and scope, which are most evident in transaction banking. Another manifestation of IT is via financial innovations that have enhanced marketability. Stability enters the picture because increased marketability facilitates opportunistic behavior. Together with enhanced herding behavior and changes in industry structure, this could undermine stability and augment systemic risk, calling for a regulatory overhaul.','Electronic Commerce Research',1,'Matej Marinč','springer/soa security.csv','springer','\0'),(1025,'145--150','2012','0','application management, embedded systems, home network, isolation, modularity, native components, security, soa','The Digital Home (DH) is emerging as a distributed platform hosting services for the end user. This promising home environment depends on availability of numerous value-added services for the DH. Therefore DH implies to fullfil several requirements. (i) New services should easily invoke existing ones so as to build rich services. (ii) The Platform should be adapted to resource-constrained DH devices. (iii) Service providers should easily develop and deploy services onto the DH platform that must be shared between many providers without any security and reliability aws. We propose Jasmin: a DH middleware following the SOA paradigm [9] to host applications based on the MIND framework that implements the Fractal [3] component model. Applications run inside isolation containers with selectable isolation levels on top of an OS abstraction layer. Our evaluation shows that Jasmin is suitable for legacy code reuse, urges clean design, and automates dynamic application deployment. Jasmin selected virtualization container technology to implement the highest level of isolation containers. Jasmin not only has a low resource usage, but also incurs a very low overhead on hosted applications, making it appropriate for embedded environments.','',1,'','acm/soa security.csv','acm','\0'),(1026,'Aggregation of trustworthiness properties of BPMN-based composite services','2012','1','','Some of the important characteristics of services environments are being dynamic, distributed, loosely coupled and open. These characteristics result in the existence of different levels of functional and non-functional properties of the services operating in such environments. Consequently, it creates challenges for interacting service consumers that require to only deal with services that are trustworthy. In service compositions, the component services may be mandatory or optional and vary in their contribution to the trustworthiness of the composite service. Composition techniques must be able to select trustworthy components and to dynamically adapt to subsequent changes in the services and the environment. The availability of multiple services providing the same or similar functionality but with different trustworthiness levels helps composite service providers to establish and maintain trustworthy compositions. The paper describes an approach to the aggregation of trustworthiness properties of composite services that are assembled from more fine-grained component services. The approach is developed for composite services based on BPMN business processes but can be extended to other languages.','2012 IEEE 17th International Workshop on Computer Aided Modeling and Design of Communication Links and Networks (CAMAD)',2,'H. Elshaafi; D. Botvich','ieee/bpmn security.csv','ieee','\0'),(1027,'Automata for Analysing Service Contracts','2014','1','','Abstract A novel approach to the formal description of service contracts is presented in terms of automata. We focus on the basic property of guaranteeing that in the multi-party composition of principals each individual gets his requests satisfied, so that the overall composition reaches its goal. Depending on whether requests are satisfied synchronously or asynchronously, we construct an orchestrator that at static time either yields composed services enjoying the required properties or detects the individuals responsible for possible violations. To do that in the asynchronous case we resort to techniques from Operational Research.','',2,'Davide BasilePierpaolo DeganoGian Luigi Ferrari','springer/bpel security.csv','springer',''),(1028,'Internet Based Service Networks','2012','0','','','',1,'LiYing CuiSoundar KumaraRéka Albert','springer/service oriented architecture security.csv','springer','\0'),(1029,'A new method to identify collaborative partners in social service provider networks','2015','1',' Social network Service-oriented computing System integration Collaborative computing Business alliance formation','Abstract The interactions among service providers are represented as a social network to support service-oriented collaborations across multiple manufacturing enterprises. The combination of service-oriented computing and social network facilitates the connection and collaboration within enterprises. It is essential to identify a group of prosperous collaborative partners in a social network in a prompt and efficient way, especially when the number of alternative service providers is large. However, traditional exhaustive searching approaches are inapplicable in identifying a host enterprise and constitutive members due to the prohibitive computations. In this paper, a new and efficient approach has been proposed to identify service providers optimally based on existing social relations. Three innovations in the proposal are (i) a set of new concepts has been defined to construct a social service provider network; (ii) based on remodeling the social graph, the betweenness centrality algorithm has been enhanced to efficiently find the leader who serves as the host enterprise of a given engineering project; (iii) to improve the efficiency of computation, an innovative algorithm is proposed to identify the collaborative partners by confining the searching space in the set of connector nodes. For the validation purpose, the experimental simulation is conducted and the results have demonstrated that the proposed algorithms outperform several existing algorithms in terms of computation time in dealing with the increasing number of enterprises.','Information Systems Frontiers',1,'Yong SunWenan TanLingxia LiWeiming ShenZhuming BiXiaoming Hu','springer/service oriented architecture security.csv','springer',''),(1030,'Taking value-networks to the cloud services: security services, semantics and service level agreements','2013','4',' Security services Trust Collaboration Value networks Resource virtualization Service level agreement Cloud service broker Value chain Web 2.0 Web 3.0','Abstract Cloud services have become an emerging solution for organizations striving to address today’s need for agility, but little research has addressed transitioning multiple, collaborating organizations to what can be referred to as a “value-network cloud.” We know that organizations adopting cloud services to execute business processes must concomitantly reconfigure their security solutions for their integrated intra- and inter-organizational collaborations. We address the question, “What is needed to make it possible for an entire value-network to take secure, collaborative business process executions to the cloud?” Future value-network cloud solutions will require completely new security approaches that will leverage contracted brokering solutions operating as part of the cloud solution. We view value-network cloud security service provisioning as a bundle decision characterized by a mix of communication patterns relevant to intra- and inter-enterprise collaboration. We propose a cloud service broker model—using semantics and SLA based middleware—to serve as a trusted interface between the enterprise, cloud service providers and other organizations collaborating in a value-network. The approach enables IT governance for value-network cloud services. The architectural requirements adapt design principles for infrastructure management tailored from approaches to how business cartels historically conducted secure business dealings.','Information Systems and e-Business Management',1,'Haluk DemirkanMichael Goul','springer/service oriented architecture security.csv','springer','\0'),(1031,'Pattern-Based Context Establishment for Service-Oriented Architectures','2012','3',' SOA requirements engineering secure software development','Abstract A context description of a software system and its environment is essential for any given software engineering process. Requirements define statements about the environment (according to Jackson’s terminology). The context description of a Service-Oriented Architecture is difficult to provide, because of the variety of technical systems and stakeholders involved. We present two patterns for SOA systems and support their instantiation with a structured method. In addition, we show how the pattern can be used in a secure service development life-cycle.','',2,'Kristian BeckersStephan FaßbenderMaritta HeiselRene Meis','springer/bpmn security.csv','springer','\0'),(1032,'A service-oriented integration platform to support a joined-up e-government approach: The Uruguayan experience','2012','1','e-government; interoperability; middleware; security; soa; web services','E-Government Platforms have become a key tool to support the development of e-government in many countries. They usually provide infrastructure and services that facilitate the interconnection between the information systems of public agencies, provide common services that generate economy of scale, and encourage the implementation of multi-agency services. In particular, the Uruguayan E-Government Platform has the general goal of enabling and promoting the development of e-government services in Uruguay. The platform, which follows a joined-up approach, consists of an Interoperability Platform and a set of Crosscutting Services. It implements a service-oriented architecture, leveraging the Web Services technology, to expose, use and combine government functionality implemented by public agencies. This paper presents the Uruguayan E-Government Platform focusing on two components of the Interoperability Platform: the Middleware Infrastructure and the Security System. It also evaluates its first years of operation which have shown that, although there are still many challenges to be addressed, the platform is a key enabler for developing a joined-up e-government approach in Uruguay. © 2012 Springer-Verlag.','',1,'González L., Ruggia R., Abin J., Llambías G., Sosa R., Rienzi B., Bello D., Álvarez F.','scopus/service oriented architecture security.csv','scopus','\0'),(1033,'Dependability infrastructure for SOA applications','2014','1','','This chapter describes two tools for improving dependability of SOA-based applications: ReSP (Reliable SOA Platform) and DyMST (Dynamic Management SOA Toolkit). ReSP is a set of modules to improve dependability in respect to availability and reliability, and to some extent safety. It is comprised of the mechanisms of reliable group communication, replication, recovery, and transaction processing. DyMST is a set of components for failure detection, monitoring and autonomic management, and distributed security policy enforcement. In order to show the dependability aspects of real applications and usage of these tools, two case studies from the medical healthcare domain are presented: Healthcare Integration Platform for the exchange of patients\' medical data among various healthcare units, and Medical Event, and Data Registering Platform for daily work improvement of medical staff. © 2014 Springer-Verlag Berlin Heidelberg.','',1,'Brzeziński J., Dwornikowski D., Kobusińska A., Kobusiński J., Sajkowski M., Sobaniec C., Szychowiak M., Wawrzyniak D., Wojciechowski P.T.','scopus/soa security.csv','scopus','\0'),(1034,'How much security for switching a light bulb the SOA way','2012','','Devices Profile for Web Services; DPWS; Internet of Things; Pervasive Computing; Security; SOA for devices','What visions of technologies such as the Internet of Things (IoT), Pervasive Computing (PC) or Ambient Intelligence (AI) have in common is that they employ a very high amount of critically resource-constrained devices. This of course raises a whole set of new security challenges. Instead of proposing another middleware for IoT, PC or AI, and presenting a security approach for it we focus on existing, widely-adopted security mechanisms and concepts and give a comprehensive overview. Furthermore, we examine the Web Service security suite as an example for a comprehensive security framework on application level. We use an intentionally kept simple scenario including light bulbs and switches to demonstrate necessary security mechanisms and properties and to judge applicability of the presented existing security techniques and frameworks. © 2012 IEEE.','',1,'Unger S., Pfeiffer S., Timmermann D.','scopus/soa security.csv','scopus','\0'),(1035,'A survey of service composition in ambient intelligence environments','2013','8',' Web services Service composition Ambient intelligence Ubiquitous computing','Abstract This article presents a comparative review of systems performing service composition in Ambient Intelligence Environments. Such environments should comply to ubiquitous or pervasive computing guidelines by sensing the user needs or wishes and offering intuitive human-computer interaction and a comfortable non-intrusive experience. To achieve this goal service orientation is widely used and tightly linked with AmI systems. Some of these employ the Web Service technology, which involves well-defined web technologies and standards that facilitate interoperable machine to machine interaction. Other systems regard services of different technologies (e.g. UPnP, OSGi etc) or generally as abstractions of various actions. Service operations are sometimes implemented as software based functions or actions over hardware equipment (e.g. UPnP players). However, a single service satisfies an atomic only user need, so services need to be composed (i.e. combined), in order to provide the usually requested complex tasks. Since manual service composition is obviously a hassle for the user, ambient systems struggle to automate this process by applying various methods. The approaches that have been adopted during the last years vary widely in many aspects, like domain of application, modeling of services, composition method, knowledge representation and interfaces. This work presents a comparative view of these approaches revealing similarities and differences, while providing additional information.','Artificial Intelligence Review',2,'Thanos G. StavropoulosDimitris VrakasIoannis Vlahavas','springer/bpel security.csv','springer','\0'),(1036,'Adding Non-functional Preferences to Service Discovery','2012','0',' Web services QoS preferences process model matching','Abstract The growth of the number of published services rendered searching for a specific service within repositories a critical issue. In this paper, we present an approach to extend structure-based service discovery by making it sensitive to user preferences over service quality defined at different granularity levels of the service structure.','',2,'Fernando LemosDaniela GrigoriMokrane Bouzeghoub','springer/bpel security.csv','springer','\0'),(1037,'Cloud resource provisioning: survey, status and future research directions','2016','1',' Resource provisioning Resource provisioning mechanisms Resource scheduling Resource management Cloud computing Autonomic computing Systematic review','Abstract Cloud resource provisioning is a challenging job that may be compromised due to unavailability of the expected resources. Quality of Service (QoS) requirements of workloads derives the provisioning of appropriate resources to cloud workloads. Discovery of best workload–resource pair based on application requirements of cloud users is an optimization problem. Acceptable QoS cannot be provided to the cloud users until provisioning of resources is offered as a crucial ability. QoS parameters-based resource provisioning technique is therefore required for efficient provisioning of resources. This research depicts a broad methodical literature analysis of cloud resource provisioning in general and cloud resource identification in specific. The existing research is categorized generally into various groups in the area of cloud resource provisioning. In this paper, a methodical analysis of resource provisioning in cloud computing is presented, in which resource management, resource provisioning, resource provisioning evolution, different types of resource provisioning mechanisms and their comparisons, benefits and open issues are described. This research work also highlights the previous research, current status and future directions of resource provisioning and management in cloud computing.','Knowledge and Information Systems',1,'Sukhpal SinghInderveer Chana','springer/soa security.csv','springer',''),(1038,'Towards security awareness in designing service-oriented architectures','2013','','Reference models and design method; Risk management; Security management; Service-oriented architecture','Many information security approaches deal with service-oriented architectures by focusing on security policies, requirements and technical implementation during service design, specification and implementation phases. Nevertheless, service-oriented architectures are increasingly deployed in open, distributed and dynamic environments, which particularly require an end-to-end security at each phase of the service\'s lifecycle. Moreover, the security should not only focus on services without considering the risks and threats that might be caused by elements from business activities or underlying hardware and software infrastructure. In this paper, we develop a model highlighting the dependency between elements at business, service and infrastructure levels, defining the design context. In addition, we develop a holistic approach to define a security conceptual model, including services, security risks and security policies and guides all phases in a typical design method for service-oriented architectures.','',1,'Nassar P.B., Badr Y., Biennier F., Barbar K.','scopus/service oriented architecture security.csv','scopus','\0'),(1039,'Security policies in dynamic service compositions','2012','1','Pervasive systems; Policy composition; Service composition','The paradigm of service composition emerged in the context of service oriented architectures, where it mainly referred to creating value-added services by combinitions of individual services. Nowadays, service composition is getting more and more dynamic and becomes part of pervasive systems. One of the major challenges in this context is to fulfill the security requirements of all involved parties without requiring human interaction to negotiate protection level agreements. In this paper, we propose an approach for composing access control decisions and obligations required by equitable policy domains on the fly. We show that our approach allows a policy-compliant collaboration without requiring the peers to reveal their individual rules and confirm its practicability by a prototype.','',1,'Schütte J., Fhom H.S., Gall M.','scopus/service oriented architecture security.csv','scopus','\0'),(1040,'Designing fault-tolerant SOA based on design diversity','2014','1',' Software fault tolerance Design diversity Service-oriented architecture Systematic literature review Fault-tolerant service composition','Abstract Background Over recent years, software developers have been evaluating the benefits of both Service-Oriented Architecture (SOA) and software fault tolerance techniques based on design diversity. This is achieved by creating fault-tolerant composite services that leverage functionally-equivalent services. Three major design issues need to be considered while building software fault-tolerant architectures based on design diversity: (i) selection of variants; (ii) selection of an adjudication algorithm to choose one of the results; and (iii) execution of variants. In addition, applications based on SOA need to function effectively in a dynamic environment where it is necessary to postpone decisions until runtime. In this scenario, control is highly distributed and involves conflicting user requirements. We aim to support the software architect in the design of fault-tolerant compositions. Methods Leveraging a taxonomy for fault-tolerant systems, this paper proposes guidelines to aid software architects in making key design decisions. The taxonomy is used as the basis for defining a set of guidelines to support the architect in making decisions related to fault tolerance in SOA. The same taxonomy is used in a systematic literature review of solutions for fault-tolerant composite services. The review investigates how existing approaches for fault-tolerant composite services address design diversity issues and also specific issues related to SOA. Results The contribution of this work is twofold: (i) a set of guidelines for supporting the design of fault-tolerant SOA, based on a taxonomy for fault tolerance techniques; and (ii) a systematic literature review of existing solutions for designing fault-tolerant compositions using design diversity. Conclusion Although existing solutions have made significant contributions to the development of fault-tolerant SOAs, there is a lack of approaches for fault-tolerant service composition that support strategies with diverse quality requirements and encompassing sophisticated context-aware capabilities. This paper discusses which design issues have been addressed by existing diversity-based approaches for fault-tolerant composite services. Finally, practical issues and difficulties are summarized and directions for future work are suggested.','Journal of Software Engineering Research and Development',2,'Amanda S NascimentoCecília MF RubiraRachel BurrowsFernando CastorPatrick HS Brito','springer/bpel security.csv','springer',''),(1041,'A Reliable DICOM Transfer Grid Service Based on Petri Net Workflows','2008','2','DICOM;Fault-Tolerance;Grid-Computing;Image Communication;Workflow','Medical grid networks typically deal with extremely sensitive information and therefore require a special diligence in terms of security and reliability. This holds especially true in Medical Imaging, which is why the medical community long established DICOM (Digital Imaging and Communication in Medicine), a world-wide imaging and communication standard for secure and reliable data interchange. Most healthgrid projects today use DICOM with a combination of GridFTP and the Reliable-File-Transfer (RFT) webservice. Due to the multiple protocols and services involved, this solution is not ideally suited in terms of reliability or fault-tolerance. The proposed solution in this paper replaces the GridFTP combination by an end- to-end Grid-enhanced DICOM implementation and models the GridDICOM transfers as complex, Petri-Nets-based workflows. Based on these workflows, a respective workflow engine can autonomously and reliably control transfers including complex fault recovery and optimized routing strategies. A first prototype of the service, the components, and the respective workflows have been developed and successfully tested in MediGRID, the German grid network for life-sciences.','Cluster Computing and the Grid, 2008. CCGRID \'08. 8th IEEE International Symposium on',1,'M. Vossberg; A. Hoheisel; T. Tolxdorff; D. Krefting','ieee/webservice security.csv','ieee','\0'),(1042,'A Cloud-Based Neural Network Simulation Environment','2013','0',' Artificial Neural Network Simulation Cloud computing SOA/SOI Virtual Organization','Abstract We present N2Sky, a novel Cloud-based neural network simulation environment. The system implements a transparent environment aiming to enable arbitrary and experienced users to do neural network simulations easily and comfortably. The necessary resources, as CPU-cycles, storage space, etc., are provided by using Cloud infrastructure. N2Sky also fosters the exchange of neural network specific knowledge, as neural network paradigms and objects, between users following a virtual organization design blue-print. N2Sky is built using the RAVO reference architecture which allows itself naturally integrating into the Cloud service stack (SaaS, PaaS, and IaaS) of service oriented architectures.','',1,'Erich SchikutaErwin Mann','springer/service oriented architecture security.csv','springer','\0'),(1043,'Modeling and Executing Business Processes with Annotated Security Requirements in the Cloud','2011','5','Business Process Execution;Business Process Modeling;Cloud Computing;Security;Web Service Composition','The design, deployment and execution of business process models and their associated security models is expensive and time consuming. This is because these activities usually involve multiple stakeholders that include business domain experts, security experts, web service developers and IT operations teams, and there is no streamlined development environment to allow these stakeholders to work collaboratively on a business process. We have developed a cloud-based model-driven development and execution environment called SSC4Cloud to provide a shared business process modeling workspace and a business process execution environment. More specifically, with the shared modeling workspace, business process models can be developed, refined and shared. Within the shared execution environment, a business process model is translated into a WS-BPEL based executable model, which is then assigned for execution in a virtual machine container from a shared machine cluster. The common model execution environment supports both business process execution and enforcement of the security requirements attached to the business process models.','Web Services (ICWS), 2011 IEEE International Conference on',2,'J. Damasceno; F. Lins; R. Medeiros; B. Silva; A. Souza; D. Aragão; P. Maciel; N. Rosa; B. Stephenson; J. Li','ieee/bpel security.csv','ieee','\0'),(1044,'A Conceptual Architecture for Business-Aware Transaction Management','2012','0','','Abstract Service-Based Applications (SBAs) are created by composing and orchestrating software services into cross-organizational business processes that can execute multiple business-aware transactions. A business-aware transaction must not only ensure data consistency but also coordinate the heterogeneous information systems of separate businesses that typically use different business practices, policies, equipment and technologies so the transaction can complete successfully. However, the lack of a clear approach to managing this class of transaction means management capabilities are often ‘hard-wired’ into the SBA, rendering the potential reuse and customization of SBAs difficult, if not impossible. This paper reviews the functions required for the creation, management and adaptation of them and presents a conceptual architecture with the aim of identifying, at a high-level, functional and technological components of a distributed software architecture to allow Business-Aware Transaction Management and the customization and reuse of SBAs.','',1,'Michael ParkinMike P. Papazoglou','springer/service oriented architecture security.csv','springer','\0'),(1045,'On access control of Cloud service chains','2014','0','','Service-oriented architecture may be regarded as an incubator for small resources entrepreneurs to bid and work on bigger projects. It also helps large enterprise to trade their resources at various levels. This has opened new gateways for renting out resources. Sometimes a single service is sold at different levels making the Cloud service a supply chain of added value. This supply chain which is built on the same resources but varying claims of ownership, poses novel challenges related to security, trust and privacy of data. There is still no popular system of governing body which can glue together the participating stakeholders through mutual trust and organizational policies. A governing mechanism that can preserve stakeholders\' privacy issues and resolve their conflicts throughout the emerging service chains is also non-existent. In this paper we are introducing a mechanism of access control for such Cloud service chains. Building on our pevious work of SLA-based privacy model, we have discussed the realization of Role-based Access Control (RBAC) to services of federated-cloud. The main advantage of RBAC is that it provides an efficient control to resources and data access. We have also provided a preliminary analysis of this on-going research.','Multi-Topic Conference (INMIC), 2014 IEEE 17th International',1,'K. M. Abbasi; I. ul Haq; A. K. Malik; S. Khalid; S. Fazil; H. Durad','ieee/service oriented architecture security.csv','ieee','\0'),(1046,'Security risk analysis of system changes exemplified within the oil and gas domain','2015','1',' Security Risk analysis Change Oil and gas','Abstract Changes, such as the introduction of new technology, may have considerable impact on the risk to which a system or organization is exposed. For example, in the oil and gas domain, introduction of technology that allows offshore installations to be operated from onshore means that fewer people are exposed to risk on the installation, but it also introduces new risks and vulnerabilities. We need suitable methods and techniques to understand how a change will affect the risk picture. This paper presents an approach that offers specialized support for analysis of risk with respect to change. The approach allows links between elements of the target of analyses and the related parts of the risk model to be explicitly captured, which facilitates tool support for identifying the parts of a risk model that need to be reconsidered when a change is made to the target. Moreover, the approach offers language constructs for capturing the risk picture before and after a change. The approach is demonstrated on a case concerning new software technology to support decision making on petroleum installations.','International Journal on Software Tools for Technology Transfer',1,'Atle RefsdalBjørnar SolhaugKetil Stølen','springer/service oriented architecture security.csv','springer',''),(1047,'Assessing and improving quality of QVTo model transformations','2015','0',' Software quality QVTo Model transformations Quality model Developer tooling Test coverage','Abstract We investigate quality improvement in QVT operational mappings (QVTo) model transformations, one of the languages defined in the OMG standard on model-to-model transformations. Two research questions are addressed. First, how can we assess quality of QVTo model transformations? Second, how can we develop higher-quality QVTo transformations? To address the first question, we utilize a bottom–up approach, starting with a broad exploratory study including QVTo expert interviews, a review of existing material, and introspection. We then formalize QVTo transformation quality into a QVTo quality model. The quality model is validated through a survey of a broader group of QVTo developers. We find that although many quality properties recognized as important for QVTo do have counterparts in general purpose languages, a number of them are specific to QVTo or model transformation languages. To address the second research question, we leverage the quality model to identify developer support tooling for QVTo. We then implemented and evaluated one of the tools, namely a code test coverage tool. In designing the tool, code coverage criteria for QVTo model transformations are also identified. The primary contributions of this paper are a QVTo quality model relevant to QVTo practitioners and an open-source code coverage tool already usable by QVTo transformation developers. Secondary contributions are a bottom–up approach to building a quality model, a validation approach leveraging developer perceptions to evaluate quality properties, code test coverage criteria for QVTo, and numerous directions for future research and tooling related to QVTo quality.','Software Quality Journal',1,'Christine M. GerpheideRamon R. H. SchiffelersAlexander Serebrenik','springer/service oriented architecture security.csv','springer',''),(1048,'Model-based system configuration approach for Internetware','2013','0',' Internetware system configuration model-based dynamic scaling','Abstract Internetware, a new software paradigm, enables systems to be built and evolved for better service quality according to changes in the environment. However, at the same time Internetware greatly complicates system management tasks due to the autonomy, cooperation and evolution of its components. In fact, the configuration of large-scale Internet-based software in the real scenarios is likely to involve a large number of components and hundreds of associated configuration options with variables, whose values may be dynamically determined depending on the execution environment, or to cope with needs of customers. In this paper, we firstly analyze the configuration issues of Internetware, and then present a model-based engineering approach to managing the configuration for Internetware systematically. Based on the Architecture Based Composition model, an internetware configuration process model is proposed that abstracts the configuration in the lifecycle of Internetware. Focusing on the fundamental activities in configuration process, the methods and mechanisms of analyzing and performing the configuration in terms of its constraints, dependencies, heterogeneity and dynamics, with supporting tools to realize the configuration automation, are presented. The proposed methods and mechanisms have been implemented, validated and rolled out in IBM software products and Cloud center.','Science China Information Sciences',1,'Ying LiKeWei SunJie YangTianCheng LiuLiangZhao Zeng','springer/soa security.csv','springer','\0'),(1049,'Attribute Based Access Control (ABAC)-Based Cross-Domain Access Control in Service-Oriented Architecture (SOA)','2012','1','Attribute-Based Access Control (ABAC);SOA;access control','The traditional role-based access control model (RBAC) can not meet the requirements of Service Oriented Architectures (SOA) on the distribution and openness, Attribute-Based Access Control (ABAC), which is more fine-grained in access control, is more fit into the SOA open environment. This paper presents an ABAC-based cross-domain access control system, together with the security domain as a attribute with the subject, object, authority, environment attributes as the basis for access to the decision-making, eliminating integration constraints for the SOA framework based on the RBAC, somehow improves the scalability and alterability of the system, solved the problem of cross-domain access control.','Computer Science & Service System (CSSS), 2012 International Conference on',1,'N. Dan; S. Hua-Ji; C. Yuan; G. Jia-Hu','ieee/service oriented architecture security.csv','ieee','\0'),(1050,'SEROSA: SERvice oriented security architecture for Vehicular Communications','2013','4','Access Control; Identity Management; Privacy; Security; Vehicular Communications; Web-Services','Modern vehicles are no longer mere mechanical devices; they comprise dozens of digital computing platforms, coordinated by an in-vehicle network, and have the potential to significantly enhance the digital life of individuals on the road. While this transformation has driven major advancements in road safety and transportation efficiency, significant work remains to be done to support the security and privacy requirements of the envisioned ecosystem of commercial services and applications (i.e., Internet access, video streaming, etc.). In the era when \'service is everything and everything is a service\', Vehicular Communication (VC) systems cannot escape from this ongoing trend towards multi-service environments accessible from anywhere. To meet the diverse requirements of vehicle operators and Service Providers (SPs), we present SEROSA, a service-oriented security and privacy-preserving architecture for VC. By synthesizing existing VC standards and Web Services (WS), our architecture provides comprehensive identity and service management while ensuring interoperability with existing SPs. We fully implement our system and extensively assess its efficiency, practicality, and dependability. Overall, SEROSA significantly extends the state of the art and serves as a catalyst for the integration of vehicles into the vast domain of Internet-based services. © 2013 IEEE.','',1,'Gisdakis S., Laganà M., Giannetsos T., Papadimitratos P.','scopus/service oriented architecture security.csv','scopus','\0'),(1051,'e-Health Informed Foreign Patient and Physician Communication: The Perspective of Informed Consent','2015','0',' Health literacy language barrier Informed Consent e-Health system foreign patient Internet-informed patient','Abstract The rapidly growth of mobility population of exchange students, foreign workers, and tourists raises the communication challenge of foreign patient-physician communication in local hospitals (clinics). Language is not the only one skill during a medical visit, health literacy is another important skill used to understand the medical information delivered by doctors. Skills in understanding and applying information about health issues are critical to the process of patient-physician communication and may have substantial impact on health behaviors and health outcomes. In recent years, the practice of foreigners using mobile apps to search map for location, access transportation information, and lookup translation, have increased steadily. However, the current mobile apps can’t support foreigners for their sudden needs of hospital visits. Take into consideration of language barrier and low health literacy issue, an Internet health information-based patient-centered mobile system, is suggested to mediate the informed consent process of patient-physician communication. Thus, this research aims to enhance foreign visitors’ capabilities in communication during exchange information with local foreign doctors by developing an effective patient-physician communication mobile system. Based on four case studies of patients’ hospital visit experiences in Europe and Asia and their perception toward using the media-mediated communication. We concluded that 1) e-health informed foreign patients’ language skill and health literacy were improved in compare with non-Internet-informed patients group; 2) e-health informed patients’ states of anxiety were reduced; 3) their satisfaction of medical visit were improved; and 4) the process of informed consent was standardized into six parts (Symptom description, Disease judgment, Disease diagnosis, Examination, Treatment, and Healthcare education) for general foreign patient communications.','',1,'Echo HuangShao-Fu LiaoShing-Lung Chen','springer/service oriented architecture security.csv','springer',''),(1052,'Security solutions for Web Service attacks in a dynamic composition scenario','2014','0','SAS API;SOAP;UDDI;WSAS API;WSDL;Web Services','Web Services can be invoked from anywhere through internet without having enough knowledge about the implementation details. In some cases, single service cannot accomplish user needs. One or more services must be composed which together satisfy the user needs. Therefore, security is the most important concern not only at single service level but also at composition level. Several attacks are possible on SOAP messages communicated among Web Services because of their standardized interfaces. Examples of Web Service attacks are oversize payload, SOAPAction spoofing, XML injection, WS-Addressing spoofing, etc. Most of the existing works provide solution to ensure basic security features of Web Services such as confidentiality, integrity, authentication, authorization, and non-repudiation. Very few of the existing works provide solutions such as schema validation and schema hardening for attacks on Web Services. But these solutions do not address and provide attack specific solutions for SOAP messages communicated between Web Service. Hence, it is proposed to provide solutions for two of the prevailing Web Service attacks. Since new types of Web Service attacks are evolving over time, the proposed security solutions are implemented as APIs that are pluggable in any server where the Web Service is deployed.','Advanced Communication Control and Computing Technologies (ICACCCT), 2014 International Conference on',1,'Sindhu S M; Kanchana R','ieee/service oriented architecture security.csv','ieee','\0'),(1053,'Experiences in building a mOSAIC of clouds','2013','26','','Abstract The diversity of Cloud computing services is challenging the application developers as various and non-standard interfaces are provided for these services. Few middleware solutions were developed until now to support the design, deployment and execution of service-independent applications as well as the management of resources from multiple Clouds. This paper focuses on one of these advanced middleware solutions, called mOSAIC. Written after the completion of its development, this paper presents an integrated overview of the mOSAIC approach and the use of its various software prototypes in a Cloud application development process. We are starting from the design concepts and arrive to various applications, as well as to the position versus similar initiatives.','Journal of Cloud Computing: Advances, Systems and Applications',1,'Dana PetcuBeniamino Di MartinoSalvatore VenticinqueMassimiliano RakTamás MáhrGorka Esnal LopezFabrice BritoRoberto CossuMiha StoparSvatopluk ŠperkaVlado Stankovski','springer/service oriented architecture security.csv','springer',''),(1054,'Reputation-Controlled Business Process Workflows','2013','0','BPEL;business process workflows;trust and reputation management','This paper presents a model solution for controlling the execution of BPEL business processes based on reputation constraints at the level of the services, the service providers and the BPEL workflow. The reputation constraints are expressed as part of an SLA and are then enforced at runtime by a reputation monitoring system. We use our model to demonstrate how trust requirements based on such reputation constraints can be upheld in a real world example of a distributed map processing defined as a BPEL workflow.','Availability, Reliability and Security (ARES), 2013 Eighth International Conference on',2,'B. Aziz; G. Hamilton','ieee/bpel security.csv','ieee','\0'),(1055,'Security modeling for service-oriented systems using security pattern refinement approach','2014','1',' Model-driven security Security patterns SOA security Model transformation','Abstract Security is one of the critical aspects of current systems, which are based on loosely coupled and technology-agnostic service-oriented architectures (SOA). Though SOA is the driving force for enterprises to open their ends for global business collaborations, nevertheless it evolves many challenges for modeling and enforcing security. One of the main problems for designing secure systems is the lack of consistent frameworks and methodologies for modeling security concerns. Traditional approaches consider security at the end of system development, which evolves inflexible and un-configurable systems, which are too difficult to maintain and manage. The other major problem with current approaches is that they assume pre-defined and hard-coded security patterns and mechanisms for secure system design. Whereas, the evolving SOA systems require configurable security to realize different security patterns and security policies in a variety of business scenarios. To solve these problems, it is necessary to model security concerns from the beginning of system modeling in a platform-independent way. This paper proposes a pattern refinement approach for security modeling to achieve configurable and declarative security, based on the principles of abstraction, refinement, separation-of-concerns and maintainability to achieve flexible configurations of SOA security. In the proposed approach, a Domain Expert defines abstract policies using common security vocabulary and a Security Expert models security with patterns and refines them for a target architecture in successive systematic refinements. Furthermore, it facilitates the transformation of abstract security models into executable security policies for the target platforms.','Software & Systems Modeling',2,'Mukhtiar MemonGordhan D. MenghwarMansoor H. DeparAkhtar A. JalbaniWaqar M. Mashwani','springer/bpel security.csv','springer',''),(1056,'Integrity in Very Large Information Systems','2013','2',' Information risk management integrity business critical systems data analytics Service-Oriented Architecture','Abstract Multi-national enterprises, like financial services companies, operate large and critical information systems around the globe on a 24/7 basis. In an information-based business, even a single inadequately designed, implemented, tested and operated business application can put the existence of the enterprise at risk. For adequately securing the integrity of business critical information and hence ensuring that such information is meaningful, accurate and timely , we present our risk assessment and controls framework: First, we introduce our criticality rating scheme that is based on the recoverability from integrity failures. For dealing with dependencies among applications, we present our approach based on services given a Service-Oriented Architecture (SOA). Second, we provide an overview of our design-related controls including a data analytics approach to continuously audit the most critical information assets. Finally, we present our learnings from a first implementation of the presented framework.','',1,'Beat LiverHelmut Kaufmann','springer/service oriented architecture security.csv','springer','\0'),(1057,'Security aspects of de-materialized local public administration processes','2015','','Adaptive business processes; BPMN; Local Public Administration','De-materialization processes and services of local public administration processes are becoming of paramount importance in the context of Italian and European public administrations. An important aspect of these frameworks is the possibility of providing remote assistance by human operators when needed, in order to ease the access to services for citizens and reduce costs for organizations. In this paper we describe our framework, which is in an advanced state of development and will be tested in several municipalities of the province of Trento (Italy), and focus on the enforcement of security aspects. © Springer International Publishing Switzerland 2015.','',2,'Ballauco G., Ceravolo P., Damiani E., Frati F., Zavatarelli F.','scopus/bpmn security.csv','scopus',''),(1058,'TransportML platform for collaborative location-based services','2012','2',' Location-based services Web services Service-oriented architecture (SOA) Inter-vehicle communication Global navigation satellite system (GNSS)','Abstract Currently, each geographical area benefits from a set of wide range of local services, usually provided by several local entities, such as snow clearance, road works, public transportation, waste collection, fire fighting, emergency rescue authorities, etc. Despite each service fulfilling its own assigned task, they often suffer from a lack of communication and cooperation among them. Indeed, each service collects road-related information that may be useful to other services. Sharing information collected by each service would allow the acquisition of more knowledge about the driving context that may help drivers making appropriate decisions and, therefore, increase and improve road safety. Recently, wireless communication technologies associated with global navigation satellite systems and location-based information systems are among the powerful technologies used to develop interoperable intelligent transportation systems applications. Furthermore, the evolution of service-oriented infrastructures enables information sharing between applications over the network. In this paper, a distributed platform, called TransportML, for services interaction and cooperation is presented. It is an extended XML platform based on service-oriented architecture principles to recognize, monitor, and collect service information and description over a network. A prototype is developed and tested in urban and highway areas and results are reported to show the benefit of using this platform for sharing road information as well as services’ interactions.','Service Oriented Computing and Applications',1,'Wafaa Ait-Cheik-BihiAhmed Nait-Sidi-MohMohamed BakhouyaJaafar GaberMaxime Wack','springer/soa security.csv','springer','\0'),(1059,'An approach to security-SLA in cloud computing environment','2014','','Cloud Computing Security; Security Management; Security Metrics; Security-SLA','The lack of novel security controls for the cloud might arise from the fact that Cloud Computing is the convergence of many different technological areas, including Utility Computer, Computational Grid, Autonomous Computing, Virtualization and Service Oriented Architectures. These underlying areas have been independently addressed by existing general-purpose security controls, but we noticed that each current cloud security control was mapped to multiple controls from the existing, general-purpose control frameworks. We also noticed a great demand for not only patterns but also specification, monitoring and security management mechanisms for cloud environments. We reason that this scenario might require a different approach, one where the specification of security controls, geared to meet the needs of services users, may be achieved through the use of Security Service Level Agreement - Security-SLA. Security may then be improved by automating the Security-SLA. © 2014 IEEE.','',1,'Da Silva C.A., De Geus P.L.','scopus/service oriented architecture security.csv','scopus','\0'),(1060,'Privacy policy composition of privacy-aware RBAC model for composite WEB services','2013','0','Policy composition;Privacy protection;Services security;Web services composition','Privacy has been acknowledged to be a critical requirement for composite services. In the previous research, we have introduced a privacy-preserving access model, but have no chance to detail the specifying of privacy policies for a composite service. However, the privacy policies in the services should be consistent with each other, and it decides the feasibility and effectiveness of the model. Therefore, this paper proposes a privacy policy composition mechanism that uses the existing policies of the atomic services. Through the definition of policies in the model, the rules to create the user profile and data profile have been derived and the profile samples are given. In the end, an application example is shown to explain that how to use the profiles in the composition engine of the model and then give the implementation of the approach.','Broadband Network & Multimedia Technology (IC-BNMT), 2013 5th IEEE International Conference on',1,'D. Yan; Y. Tian','ieee/service oriented architecture security.csv','ieee','\0'),(1061,'An extension approach that supports attribute based access control for WS-BPEL','2011','0','Attribute;access control;business process','Business processes, the next-generation workflows, have attracted considerable interest in recent years. Several XML-based languages have been proposed for specifying and orchestrating business processes. WS-BPEL (Web Services Business Process Execution Language), which is widely used in business process specification, cannot support authorization policies on the execution of activities. In this paper, we propose an approach that extends WS-BPEL with ABAC (Attribute Based Access Control) model to satisfy the access control requirements of business processes. We introduce an access control framework for Web services in business processes, and through integrating ABAC and WS-BPEL, we make it possible to make access control policies for business processes.','Computer Science and Network Technology (ICCSNT), 2011 International Conference on',2,'Shang Zheng; Zhang Bin','ieee/bpel security.csv','ieee','\0'),(1062,'Multimedia framework to support eHealth applications','2014','1',' eHealth Heterogeneous network Medical imaging Multimedia framework Scalable extension of MPEC-4 AVC/H.264','Abstract Limited bandwidth resources lead to a number of challenges especially for eHealth applications, which are communicated over IP and wireless networks. These multimedia services include high-resolution videos and have very large file sizes that require a high level of compression to overcome this limitation. Therefore, there is an acute demand for the research community to provide an efficient multimedia framework to encode medical videos with high quality specifically under the conditions of an error-prone environment. Both an affordable delivery framework and effective coding techniques are extremely desirable for the delivery of high-quality eHealth video applications for transmission over heterogeneous networks and devices. In this paper, we propose and demonstrate a multimedia framework to support eHealth applications, which has an improved coding scheme that uses an SVC-scalable extension of MPEC-4 AVC/H.264. Simulation results show that the proposed scheme achieves a significant improvement in terms of the PSNR-Y gain and reduces the picture quality degradation caused by artifacts and distortions, compared to the existing scheme.','Multimedia Tools and Applications',1,'Muhammad ShoaibUzair AhmadAtif Al-Amri','springer/service oriented architecture security.csv','springer','\0'),(1063,'Middleware Service Oriented Rescue and Crime Information System (RCIS) Using Heterogeneous Fixed Nodes in WSNs','2012','1',' MANET Middleware RCIS WSN','Abstract A Mobile Adhoc Network (MANET) is a self-configuring infrastructureless network of mobile devices connected by wireless links with routing capabilities. A MANET needs a special mechanism to bear with its ad hoc behaviour. In this paper, a set of heterogeneous nodes in WSN (Wireless Sensor Network), that have different functionality with specific purpose have been considered. These nodes are distributed across the environment and they send the outcome of events that occur in nature. In this network each node has to send a request/response to a Base Node (BN) where all requests/responses are evaluated and the required values are computed for the end user. This activity requires middleware service oriented architecture, Image Processing and Video Processing. Hence this network is fully dependent on the services of middleware in WSNs. The noticeable outcome values or flags are passed on to a special system called Rescue and Crime Information System (RCIS) where all filtered and computed values or flags are displayed in this system with severity of events and required information. The proposed architecture provides universal solutions for most of the natural disasters and criminal activities that occur frequently. Hence this information provided by the RCIS is very essential and effective in handling disasters and crimes.','',1,'N. ChandrakantA. P. BijilP. Deepa ShenoyK. R. VenugopalL. M. Patnaik','springer/service oriented architecture security.csv','springer','\0'),(1064,'A reference software architecture to support unmanned aircraft integration in the national airspace system','2013','2','Reference architecture; Sense and Avoid; Service Oriented Architecture; Testbed; Unmanned Air vehicle','This paper outlines an architecture that provides data and software services to enable a set of Unmanned Aircraft (UA) platforms to operate in a wide range of air domains which may include terminal, en route, oceanic and tactical. The architecture allows a collection of command, control, situational awareness, conflict detection and avoidance, and data management elements to be composed in order to meet different requirement sets as defined by specific UA plat-forms, users, and operating regimes. The architecture discussed is based on a Service Oriented Architecture (SOA) with open standards on the interfaces between elements. Services may include common situational awareness, sense and avoid, weather, data management and flight plan information. Service contracts specify quality of service, interface specifications, service description metadata, security provisions, and governance. Pieces of the architecture have been implemented by MIT Lincoln Laboratory in the form of a Sense and Avoid (SAA) testbed that provides some of the core services. This paper describes the general architecture and a SAA testbed implementation that begins to realize that architecture and quantifies the benefits. The proposed architecture is not directed at a specific program but is intended to provide guidance and offer architectural best practices. © Springer Science+Business Media Dordrecht 2012.','',1,'Heisey C.W., Hendrickson A.G., Chludzinski B.J., Cole R.E., Ford M., Herbek L., Ljungberg M., Magdum Z., Marquis D., Mezhirov A., Pennell J.L., Roe T.A., Weinert A.J.','scopus/service oriented architecture security.csv','scopus','\0'),(1065,'An open and flexible interface proposal and proof of concept implementation to support service orientated architectures and interoperability in the tactical environment','2012','1','business process; Decentralized Operating Procedure; DOP; Interoperability; Lean Services; middleware; SOA','The development of SOAs in the tactical domain has been hindered by a lack of interface standards suitable for the environment of unpredictable and low bandwidth communications, low powered computers and dynamic ad-hoc grouping of tactical participants. Existing commercial SOA standards have assumed reliable access to central servers and services and having relatively static participants. The proposal describes an open and published message-oriented interface created to support the aims of the upcoming MOD Generic Base Architecture1 (GBA) Defence Standard and the associated Land Open Systems Architecture2. The aims are; a) to support multiple open transport protocols, such as HTTP, SMTP, DDS and MQTT; b) to be suitable for integrating together low-level utility functions with their controlling systems (such as water, waste and power) and integrating together high-level mission-support functions (such as ISTAR and C2); c) reduce operator burden by using automated discovery and configuration where possible; d) dynamically integrate with MOD Generic Vehicle Architecture3 platforms to link base and vehicle mission and logistics systems over tactical radio links; e) extensible to support features such as security classification; f) to be lightweight in implementation and bandwidth and not dependent on central servers for operation. The paper will present the proposed interface and describe the features required for a military tactical rather than a commercial environment, and will report the outcome of a MOD-funded proof of concept that uses the proposed interface to interoperate several military systems. © 2012 Copyright Society of Photo-Optical Instrumentation Engineers (SPIE).','',1,'Peach N.','scopus/service oriented architecture security.csv','scopus','\0'),(1066,'Formal Modeling and Evaluation of Stateful Service-Based Business Process Elasticity in the Cloud','2013','5',' Cloud computing stateful service-based business processes elasticity evaluation of elasticity strategies','Abstract Cloud environments are being increasingly used for deploying and executing business processes and particularly Service-based Business Processes (SBPs). One of the expected features of Cloud environments is elasticity at different levels. It is obvious that provisioning of elastic platforms is not sufficient to provide elasticity of the deployed business process. Therefore, SBPs should be provided with elasticity so that they would be able to adapt to the workload changes while ensuring the desired functional and non-functional properties. In this paper, we propose a formal model for stateful SBPs elasticity that features a duplication/consolidation mechanisms and a generic controller to define and evaluate elasticity strategies.','',2,'Mourad AmzianiTarek MellitiSamir Tata','springer/bpel security.csv','springer','\0'),(1067,'eContractual choreography-language properties towards cross-organizational business collaboration','2015','3',' Smart contracting Choreography eSourcing Suitability Expressiveness Cross-organizational B2B Business process Sociotechnical Decentralized autonomous organizations','Abstract Meaningfully automating sociotechnical business collaboration promises efficiency-, effectiveness-, and quality increases for realizing next-generation decentralized autonomous organizations. For automating business-process aware cross-organizational operations, the development of existing choreography languages is technology driven and focuses less on sociotechnical suitability and expressiveness concepts and properties that recognize the interaction between people in organizations and technology in workplaces. This gap our suitability- and expressiveness exploration fills by means of a cross-organizational collaboration ontology that we map as a proof-of-concept evaluation to the eSourcing Markup Language (eSML). The latter we test in a feasibility case study to meaningfully support the automation of business collaboration. The developed eSourcing ontology and eSML is replicable for exploring strengths and weaknesses of other choreography languages.','Journal of Internet Services and Applications',2,'Alex NortaLixin MaYucong DuanAddi RullMerit KõlvartKuldar Taveter','springer/bpel security.csv','springer',''),(1068,'An Efficient and Lightweight Intrusion Detection Mechanism for Service-Oriented Vehicular Networks','2014','2','Intrusion detection;Service Attacks;Service-oriented vehicular;intrusion detection;networks;service attacks;service-oriented vehicular networks','Vehicular ad hoc networks (VANETs) are wireless networks that provide high-rate data communication among moving vehicles and between the vehicles and the road-side units. VANETs are considered as the main wireless communication platforms for the intelligent transportation systems (ITS). Service-oriented vehicular networks are special categories for VANETs that support diverse infrastructure-based commercial infotainment services including, for instance, Internet access, real-time traffic monitoring and management, video streaming. Security is a fundamental issue for these service networks due to the relevant business information handled in these networks. In this paper, we design and implement an efficient and light-weight intrusion detection mechanism, called efficient and light-weight intrusion detection mechanism for vehicular network (ELIDV) that aims to protect the network against three kinds of attacks: denial of service (DoS), integrity target, and false alert\'s generation. ELIDV is based on a set of rules that detects malicious vehicles promptly and with high accuracy. We present the performance analysis of our detection mechanism using NS-3 simulator. Our simulation results show that ELIDV exhibits a high-level security in terms of highly accurate detection rate (detection rate more than 97%), low false positive rate (close to 1%), and exhibits a lower overhead compared to contemporary frameworks.','IEEE Internet of Things Journal',1,'H. Sedjelmaci; S. M. Senouci; M. A. Abu-Rgheff','ieee/service oriented architecture security.csv','ieee','\0'),(1069,'Aligning Security and Business Objectives for Process-Aware Information Systems','2015','0','access control, business process, compliance, cost-minimizing authorization policy, enforcement, obstruction, separation of duty, workflow','Proceedings of the 5th ACM Conference on Data and Application Security and Privacy','',2,'Günter Karjoth','acm/bpmn security.csv','acm',''),(1070,'Dependability certification of services: a model-based approach','2015','2',' BPEL Dependability certification Markov chains Web services Mathematics Subject Classification 68M14 Distributed systems 68M15 Reliability testing and fault tolerance','Abstract The advances and success of the Service-Oriented Architecture (SOA) paradigm have produced a revolution in ICT, particularly, in the way in which software applications are implemented and distributed. Today, applications are increasingly provisioned and consumed as web services over the Internet, and business processes are implemented by dynamically composing loosely coupled applications provided by different suppliers. In this highly dynamic context, clients (e.g., business owners or users selecting a service) are concerned about the dependability of their services and business processes. In this paper, we define a certification scheme that allows to verify the dependability properties of services and business processes. Our certification scheme relies on discrete-time Markov chains and awards machine-readable dependability certificates to services, whose validity is continuously verified using run-time monitoring. Our solution can be integrated within existing SOAs, to extend the discovery and selection process with dependability requirements and certificates, and to support a dependability-aware service composition.','Computing',2,'Claudio A. ArdagnaRavi JhawarVincenzo Piuri','springer/bpel security.csv','springer',''),(1071,'Cloud-Based LED Light Management System and Implementation Based-on Wireless Communication','2013','0',' Wireless Communication Cloud Service LED-based Public Lights Zigbee/3G routers','Abstract In this paper, a LED lighting management system based on wireless communication and sensor network is proposed to improve public lighting system (PLS). A web-based Human-Computer Interaction (HCI) is designed to remotely control, monitor and manage LED lights efficiently. This management system of LED lights provides energy-saving mode, periodical light-checking mode and immediate light-checking mode to reduce the energy consumption of public lighting systems and to enhance the management efficiency. This system will automatically send SMS of state notification to notify administrator when the failure exception of LED lights is occurred. The management system will reduce the maintain cost and more efficient energy-saving than traditional lightings system.','',1,'Yi-Ting ChenYi-Syuan SongMong-Fong HorngChin-Shiuh ShiehBin-Yih Liao','springer/service oriented architecture security.csv','springer','\0'),(1072,'Workflow Management Principles for Interactions Between Petri Net-Based Agents','2015','0',' Workflows Agents Integration Interaction Communication Petri nets','Abstract Software agents can be considered as similar to humans interacting with one another to complete a complex activity or, in an organisational setting, a workflow. More so, agents can view their own behaviour as workflows, which can require other resources in order to be executed. This paper examines and describes an approach to consider agent behaviour as workflows and agents as both workflow engines and workflow resources. This approach can achieve a flexible and more uniform type of agent interaction. The paper describes the approach as a design pattern and blueprint. It also presents a first technical proof-of-concept. The general approach, concepts and prototype are based on and realised with reference Petri nets. This enables a clear transition between the conceptual approach and the practical realisation.','',2,'Thomas WagnerDaniel Moldt','springer/bpmn security.csv','springer',''),(1073,'Secure Grid Micro-Workflows Using Virtual Workspaces','2008','1','BPEL;Grid;Virtualization;Workflow','In this paper, an approach to create virtual cluster environments is presented which enables fine grained service-oriented applications to be executed side by side to traditional batch job oriented Grid applications. Secure execution environments which can be staged into an existing batch job environment are created. A grid enabled workflow engine to build complex application workflows which are executed in the virtual environment is provided. A security concept is introduced allowing cluster worker nodes to expose services to the BPEL engine outside of the private cluster network and thus enabling multi-site workflows in a secure fashion. A prototypical implementation based on Globus Toolkit 4, Virtual Workspaces, ActiveBPEL and Xen is presented.','2008 34th Euromicro Conference Software Engineering and Advanced Applications',2,'T. Dörnemann; M. Smith; E. Juhnke; B. Freisleben','ieee/bpel security.csv','ieee','\0'),(1074,'Internet of Things: The Foundational Infrastructure for a Smarter Planet','2013','0',' IoT Mobile Big Data Cloud Computing Software Defined Environment','Abstract Every day, our world is getting more instrumented and interconnected. Streams of data are continuously being generated by mobile devices, personal computers, networks, sensors, RFID tags, web services, social media and the like. IBM’s newest study reveals how new technologies support the development of the Internet of Things, and how the Internet of Things provides the foundational infrastructure for a smarter planet. Key trends that relate to the Internet of Things include Mobile, Big Data, Cloud Computing, and Smart Networks. The paper describes the latest developments in Mobile, Big Data (including cognitive systems capable to evaluate large amounts of both structured and unstructured data), Cloud Computing and Smarter networks (including software defined environments to cope with the ever increasing workloads in the networks).','',1,'Rob van den Dam','springer/service oriented architecture security.csv','springer','\0'),(1075,'Secure Migration of Legacy Applications to the Web','2014','1',' Software migration Web application User interface Legacy application','Abstract In software engineering, migration of an application is the process of moving the software from one execution platform to another. Nowadays, many desktop applications tend to migrate to the web or to the cloud. Desktop applications are not prepared to face the hostile environment of the web where applications frequently receive harmful data that attempt to exploit program vulnerabilities such as buffer overflows. We propose a migration process for desktop applications with a text-based user interface, which mitigates existing security concerns and enables the software to perform safely in the web without modifying its of the source code. Additionally, we describe an open source tool that facilitates our migration process.','',1,'Zisis KarampaglisAnakreon MentisFotios RafailidisPaschalis TsolakidisApostolos Ampatzoglou','springer/service oriented architecture security.csv','springer','\0'),(1076,'Proceedings of the 2012 International Conference on Recent Advances in Computing and Software Systems, RACSS 2012','2012','','','The proceedings contain 56 papers. The topics discussed include: biometric security based application development and emulation framework - IEEE 802.15.4 for intensive care units; extensive DBA-CAC mechanism for maximizing efficiency in 3GPP: LTE networks; a public key cryptosystem based on number theory; a metrics suite and fuzzy model for measuring coupling in service oriented architecture; surfguard javascript instrumentation-based defense against drive-by downloads; review analyzer: analyzing consumer product reviews from review collections; experimental design on defect analysis in software process improvement; effective visualization of conceptual class diagrams; a novel enhanced bio-inspired harmony search algorithm for clustering; determining the impact of reviews: in view of temporal pattern and component weight assignment algorithm with SVM; and preprocessing and generation of association rules for automated blood cell counter data in haematology.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus','\0'),(1077,'Cyberinfrastructure Support for Engineering Virtual Organization for CyberDesign','2012','0',' Virtual Organizations Knowledge Management Cyberinfrastructure Service-Oriented Software Engineering Data Repository','Abstract Integrated Computational Material Engineering (ICME) is an emerging discipline transforming materials science. Computational engineering accelerates materials development, integrates design and manufacturing, and unifies these with the engineering design optimization process, as well as efficiently employs greater accuracy in simulation-based design. Efforts to realize this enormous and complex goal have catalyzed the development of the Engineering Virtual Organization for Cyber Design (EVOCD), which provides a cyberinfrastructure to accumulate and protect the intellectual property pertaining to selected aspects of materials science and engineering that is generated by the participants of the organization, to enforce the quality of that information, and to manage its complexity. The intellectual property includes experimental data, material models and constants, computational tools and software artifacts, and the knowledge pertaining to multiscale physics-based models for selected properties and processes. EVOCD has been developed using open source components augmented with custom modules such as a secure data repository integrated with online model calibration tools. EVOCD is available at http://icme.hpc.msstate.edu','',1,'Tomasz HauptNitin SukhijaMark F. Horstemeyer','springer/service oriented architecture security.csv','springer','\0'),(1078,'Automated Learning Setups in Automata Learning','2012','1','','Abstract Test drivers are an essential part of any practical active automata learning setup. These components to accomplish the translation of abstract learning queries into concrete system invocations while managing runtime data values in the process. In current practice test drivers typically are created manually for every single system to be learned. This, however, can be a very time-consuming and thus expensive task, making it desirable to find general solutions that can be reused. This paper discusses how test drivers can be created for LearnLib, a flexible automata learning framework. Starting with the construction of application-specific test drivers by hand, we will discuss how a generic test driver can be employed by means of configuration. This configuration is created manually or (semi-)automatically by analysis of the target system’s interface.','',1,'Maik MertenMalte IsbernerFalk HowarBernhard SteffenTiziana Margaria','springer/webservice security.csv','springer','\0'),(1079,'Software quality in the clouds: a cloud-based solution','2014','6',' Security Software quality Cloud computing','Abstract Cloud computing, an on-demand computation model that consists of large data-centers ( Clouds ) managed by cloud providers, offers storage and computation needs for cloud users based on service level agreements (SLAs). Services in cloud computing are offered at relatively low cost. The model, therefore, forms a great target for many applications, such as startup businesses and e-commerce applications. The area of cloud computing has grown rapidly in the last few years; yet, it still faces some obstacles. For example, there is a lack of mechanisms that guarantee for cloud users the quality that they are actually getting, compared to the quality of service that is specified in SLAs. Another example is the concern of security, privacy and trust, since users lose control over their data and programs once they are sent to cloud providers. In this paper, we introduce a new architecture that aids the design and implementation of attestation services. The services monitor cloud-based applications to ensure software quality, such as security, privacy, trust and usability of cloud-based applications. Our approach is a user-centric approach through which users have more control on their own data/applications. Further, the proposed approach is a cloud-based approach where the powers of the clouds are utilized. Simulation results show that many services can be designed based on our architecture, with limited performance overhead.','Cluster Computing',1,'Mohammed HussainHanady M. Abdulsalam','springer/soa security.csv','springer','\0'),(1080,'A distributed architecture for efficient Web service discovery','2016','1',' Distributed service registries Service discovery Service match-making Similarity measure','Abstract Although the definition of service-oriented architecture (SOA) included the presence of a service registry from the beginning, the first implementations (e.g., UDDI) did not really succeed mainly because of security and governance issues. This article tackles the problem by introducing DREAM (Distributed Registry by ExAMple): a publish/subscribe-based solution to integrate existing, different registries, along with a match-making approach to ease the publication and retrieval of services. DREAM fosters the interoperability among registry technologies and supports UDDI, ebXML Registry, and other registries. The publish/subscribe paradigm allows service providers to decide the services they want to publish, and requestors to be informed of the services that satisfy their interests. As for the match-making, DREAM supports different ways to evaluate the matching between published and required services. Besides presenting the architecture of DREAM and the different match-making opportunities, the article also describes the experiments conducted to evaluate proposed solutions.','Service Oriented Computing and Applications',1,'Luciano BaresiMatteo MirazPierluigi Plebani','springer/soa security.csv','springer',''),(1081,'Static Weaving in Aspect Oriented Business Process Management','2015','0',' Business process modelling Aspect orientation Weaving','Abstract Separation of concerns is an important topic in business process modelling that aims to reduce complexity, increase the re-usability and enhance the maintainability of business process models. Some concerns cross over several business processes (known as cross-cutting concerns), and they hinder current modularization techniques to encapsulate them efficiently. Aspect Oriented Business Process Modelling aims to encapsulate these concerns from business process models. Although many researchers proposed different aspect-oriented business process modelling approaches, there is no analysis technique to check these models in terms of soundness. Thus, this paper proposes a formal definitions and semantics for aspect-oriented business process models, and it enables the analysis of these models in terms of soundness at design time through defining a static weaving algorithm. The algorithm is implemented as an artefact that support weaving aspect-oriented business process models. The artefact is used to analyse different scenarios, and the result of analysis reveals the situations that can introduce different problems like deadlock. In addition, an example of such scenario is given that shows how the artefact can detect the problems at design time. Such analysis enables process modellers to discover the problems at design time, so the problems will not be left to be discovered at runtime - which apply a lot of costs to correct them.','',2,'Amin Jalali','springer/bpmn security.csv','springer',''),(1082,'An Emulated Test Framework for Service Discovery and MANET Research Based on ns-3','2012','5','','In this paper we present our framework for emulated evaluation of service discovery protocols in mobile ad-hoc networks (MANETs). Emulation is preferable to simulation when evaluating real world software implementations, as it provides a controlled network environment without requiring modifications to the software. We base our work on the open-source simulator ns-3, which also has support for network emulation. Our own test framework consists of a set of scripts running in Linux Containers, providing a means to bootstrap and populate service discovery protocols with services and queries. Our setup allows us to perform controlled and repeatable service discovery protocol experiments in MANETs with a high degree of automation. Experiment series are set up, controlled, and statistics calculated by scripts, thus enabling complex, large, and real-time evaluations to be performed without human interaction.','2012 5th International Conference on New Technologies, Mobility and Security (NTMS)',1,'M. Skjegstad; F. T. Johnsen; J. Nordmoen','ieee/service oriented architecture security.csv','ieee','\0'),(1083,'Research and analysis of denial of service performance based on service-oriented architecture','2014','0','Denial of Service (DoS);SOA;SOAP message','Denial of Service (DoS) is to make a computer or network unable to provide normal service. With more and more SOA-oriented enterprise information platform appearing, SOA security issues have become increasingly prominent and the safety of SOAP message transmission is an important determinant of SOA Security. However, the loss of Dos attack for SOA brought to society is huge and difficult to estimate. Through the study and analysis of the simulation results, the characteristic of DoS attack on the impact of system resource is summarized, which also provides the reference for the safety technology and theory.','The 26th Chinese Control and Decision Conference (2014 CCDC)',1,'Z. Yuntao; M. Yizhou; H. Yingchun; D. Yue; Y. Jian','ieee/service oriented architecture security.csv','ieee','\0'),(1084,'Cloud services platform of public resources trading integration','2014','','Cloud computing; Measurement of service; One-stop service; SOA','Considering China’s public resources trading platform does not implement in the true sense of integration, information sharing still exist in isolation, security is not strong, large resources, poor timeliness, and efficiency is low, so we put forward a public resources trading platform based on cloud services. This system not only realize the public resources trading center insider, wealth, and the unity of the business process management, meanwhile to achieve resource virtualization, services can be quantified, and one-stop service online. © Institute for Computer Sciences, Social Informatics and Telecommunications Engineering 2014.','',1,'Xiong J., Wang Q., Liu J., Liang Q., Zhou K.','scopus/soa security.csv','scopus','\0'),(1085,'Verification of Artifact-Centric Systems: Decidability and Modeling Issues','2013','3',' artifact-centric systems guard-stage-milestone formal verification','Abstract Artifact-centric business processes have recently emerged as an approach in which processes are centred around the evolution of business entities, called artifacts , giving equal importance to control-flow and data. The recent Guard-State-Milestone (GSM) framework provides means for specifying business artifacts lifecycles in a declarative manner, using constructs that match how executive-level stakeholders think about their business. However, it turns out that formal verification of GSM is undecidable even for very simple propositional temporal properties. We attack this challenging problem by translating GSM into a well-studied formal framework.We exploit this translation to isolate an interesting class of “state-bounded” GSM models for which verification of sophisticated temporal properties is decidable. We then introduce some guidelines to turn an arbitrary GSM model into a state-bounded, verifiable model.','',2,'Dmitry SolomakhinMarco MontaliSergio TessarisRiccardo De Masellis','springer/bpel security.csv','springer','\0'),(1086,'Defining and Observing the Compliance of Service Level Agreements: A Model Driven Approach','2010','0','BPMN;Domain Specific Language;IT Service Management;ITIL;MDA;Metamodels;Process Model;Service Level Agreements;Service Level Management','IT Service Management (ITSM) is the set of processes that allow planning, organizing, directing and controlling the provisioning of IT services. Among the concerns of ITSM, namely within the service level management process, are the requirements for services availability, performance, accuracy, capacity and security, which are specified in terms of service-level agreements (SLA). SLA definition and monitoring are open issues within the ITSM domain. This paper overviews an ongoing research initiative concerned with three specific problems in this context: (1) SLAs in the context of ITSM are informally specified in natural language, (2) SLAs specifications are not grounded on models of ITSM processes, (3) SLAs compliance verification in IT services is not performed at the same level of abstraction as service design. To mitigate those problems, we propose a model-based approach to IT services SLA specification and compliance verification. The specification part will be based on a SLA language - a domain specific language (DSL) for defining quality attributes as non functional requirements (NFRs) in the context of ITSM. Its metamodel will be an extension of the metamodel of the adopted process modeling language. As such, it will be possible to ground SLA definition on the corresponding IT service model constructs. SLA monitoring and compliance validation will occur at the same abstraction level as service specification, therefore being understood by all stakeholders.','Quality of Information and Communications Technology (QUATIC), 2010 Seventh International Conference on the',2,'A. Correia; F. Brito e Abreu','ieee/bpmn security.csv','ieee','\0'),(1087,'A Commutative Model Composition Operator to Support Software Adaptation','2012','1','','Abstract The adaptive software paradigm supports the definition of software systems that are continuously adapted at run-time. An adaptation activates multiple features in the system, according to the current execution context ( e . g ., CPU consumption, available bandwidth). However, the underlying approaches used to implement adaptation are ordered, e . g . the order in which a set of features are turned on or off matters. Assuming feature definition as etched in stone, the identification of the right sequence is a difficult and time–consuming problem. We propose here a composition operator that intrinsically supports the commutativity of adaptations. Using this operator, one can minimize the number of ordered compositions in a system. It relies on an action–based approach, as this representation can support preexisting composition operators as well as our contribution in an uniform way. This approach is validated on the Service–Oriented Architecture domain, and is implemented using first–order logic.','',1,'Sébastien MosserMireille Blay-FornarinoLaurence Duchien','springer/service oriented architecture security.csv','springer','\0'),(1088,'Behavioral Consistency Measurement and Analysis of WS-BPEL Processes','2013','0',' BPEL Processes Behavioral Consistency Process Alignment BPEL Program Dependence Graph','Abstract With the development of services and cloud computing, service-based business processes (e.g., WS-BPEL processes) are paid more attention by practitioners. Business parties usually keep their BPEL processes in a process repository. In order to facilitate the retrieval, maintenance, and reuse of BPEL processes in the repository, we need an appropriate measurement criterion to analyze the behavioral consistency between BPEL processes. In this paper, we propose a novel measurement criterion and corresponding analysis approach to determine the behavioral consistency between two BPEL processes quantitatively. Our measurement and approach are based on BPEL program dependence graphs (BPDGs). We have faithfully implemented our approach in a prototype tool which is used to analyze the behavioral consistency of BPEL processes.','',2,'Xuewei ZhangWei SongJianchun XingQiliang YangHongda WangWenjia Zhang','springer/bpel security.csv','springer','\0'),(1089,'Reconfiguration Mechanisms for Service Coordination','2013','1','','Abstract Models for exogenous coordination provide powerful glue-code , in the form of software connectors, to express interaction protocols between services in distributed applications. Connector reconfiguration mechanisms play, in this setting, a major role to deal with change and adaptation of interaction protocols. This paper introduces a model for connector reconfiguration, based on a collection of primitives as well as a language to specify connectors and their reconfigurations.','',1,'Nuno OliveiraLuís S. Barbosa','springer/service oriented architecture security.csv','springer','\0'),(1090,'Decentralized access permission control using resource-oriented architecture for the Web of Things','2014','3','Access Control;Access Permission;IoT;REST;ROA;Resource-oriented;WoT','As the today\'s Web provides open communication environment for a variety of web resources, the Web of Things (WoT) offers new opportunity and challenges about the interoperation among the smart things. The well-known Web technologies can leverage the Web-enabled things to publish and exchange their resource information over the Web, then the Web-enabled thing should cope with the security threat regarding the information exposures over the Web, particularly, access permissions to the thing\'s resource information. Thus, in this paper we analyse access permission control mechanism considering both the WoT characteristics and the REST-compliant resource-oriented Web architecture. In contrast to existing access control logics, the proposed mechanism utilizes not only the requester information such as the typical identity and the internet addresses, but also the context of the thing itself. Based on this mechanism, we present web-resource structure for access permission control, and describe an exemplary procedure in detail. This research contributes to the flexible and decentralized access permission control for WoT.','16th International Conference on Advanced Communication Technology',1,'S. W. Oh; H. S. Kim','ieee/service oriented architecture security.csv','ieee','\0'),(1091,'Deploying LiveWN Grids in the Greek School Network','2012','0',' Grid computing Scavenging Remote management Open source','Abstract A determinant factor for the introduction of grid technologies in production domains of scale can be the design of easy, fast and, from an operational point of view, realizable deployment procedures. Remote system management technologies, typically used to monitor and manage IT environments, are designed to offer remote software installation functionality that exhibits the aforementioned characteristics; however, previous work has shown that even valuable systems can fail to perform in heterogeneous, geographically distributed environments, especially if they are maintained by organizations affiliated to the public sector. The deployment of grid technologies throughout the Greek School Network can be achieved by combining OpenRSM, a novel open source solution capable to support usable, configurable, infrastructure management use cases in heterogeneous environments and LiveWN, a grid scavenging solution that integrates live technologies with gLite grids.','Journal of Grid Computing',1,'Michael N. KalochristianakisFotis GeorgatosVasilis GkamasGiannis KouretisEmmanouel Varvarigos','springer/soa security.csv','springer','\0'),(1092,'Analytical, computational and conceptual modeling in service science and systems','2013','0',' Service science Service systems Cloud services Service level agreements Service-oriented architecture Software-as-a-service','Abstract While the service economy is growing very fast, more organizations are reorienting their processes, tools, and products towards service-oriented applications. This service-oriented paradigm is creating new challenges and opportunities for organizations. In this article, we discuss service science and systems, and provide a conceptual view of the service ecosystem in the context of analytical, computational and conceptual modeling. As service scientists, our ultimate goal should be to develop and provide a science-based approach to the dynamic, scalable, secure, and knowledge-driven design and development of service ecosystems, while in the process fostering the development of academic researchers and industry professionals to work in diverse, interdisciplinary teams for engineering adaptable solutions to distributed computing problems.','Information Systems and e-Business Management',1,'Haluk DemirkanDaniel Dolk','springer/service oriented architecture security.csv','springer','\0'),(1093,'Unifying and Extending User Story Models','2014','2',' User Story Template Agile Requirements Modeling eXtreme Programming Scrum','Abstract Within Agile methods, User Stories ( US ) are mostly used as primary requirements artifacts and units of functionality of the project. The idea is to express requirements on a low abstraction basis using natural language. Most of them are exclusively centered on the final user as only stakeholder. Over the years, some templates (in the form of concepts relating the WHO, WHAT and WHY dimensions into a phrase) have been proposed by agile methods practitioners or academics to guide requirements gathering. Using these templates can be problematic. Indeed, none of them define any semantic related to a particular syntax precisely or formally leading to various possible interpretations of the concepts. Consequently, these templates are used in an ad–hoc manner, each modeler having idiosyncratic preferences. This can nevertheless lead to an underuse of representation mechanisms, misunderstanding of a concept use and poor communication between stakeholders. This paper studies templates found in literature in order to reach unification in the concepts’ syntax, an agreement in their semantics as well as methodological elements increasing inherent scalability of US-based projects.','',2,'Yves WauteletSamedi HengManuel KolpIsabelle Mirbel','springer/bpmn security.csv','springer',''),(1094,'A service-oriented cloud computing network management architecture for wireless sensor networks','2014','2','Cloud computing; Network management; Service-oriented architecture; Wireless sensor networks','Traditional network management techniques cannot be applied to wireless sensor networks (WSNs) because of their low computing ability, their small memory space, and the limited energy of WSNs. Although WSN network management techniques have been recently proposed, these techniques lack a complete architecture and integrated design for their external interface. In addition, future WSNs may be composed of heterogeneous sensor devices and may use a large number of applications cooperatively. Traditional network management techniques will not meet the resulting requirements. Recent advances in cloud computing and in Service-Oriented Architecture (SOA) provide exciting opportunities for solving this challenge. However, current implementations of cloud computing infrastructures are often isolated from others. To better support the multi-tenancy feature of cloud computing, this paper proposes a Service-Oriented Cloud Computing Network Management Architecture for WSNs (SCNA-WSN) to adopt an SOA and to provide web services for integrating heterogeneous cloud computing infrastructures. In SCNA-WSN, users access each resource as a service, eliminating the need to own the physical infrastructure, platform, or software. External applications can use web services to integrate SCNA-WSN. As a result, users can integrate and use various network management resources depending on system requirements. To protect service privacy and to preserve service scalability, an Advanced Encryption Standard (AES) security mechanism and a multicast overlay network are provided in the proposed SCNA-WSN. The proposed architecture is effective and secure. This architecture can provide sensor services with ubiquity, scalability and reliability. In this paper, we provide not only the theoretic analysis but also the implementation of an example system to demonstrate that an SCNA-WSN can decrease the difficulty of integrating different cloud platforms and heterogeneous sensor devices. Performance evaluations of the bandwidth cost and the service latency are presented. © 2014 Old City Publishing, Inc.','',1,'Chang R.-I., Chuang C.-C.','scopus/service oriented architecture security.csv','scopus','\0'),(1095,'Development of a secured cloud based health information system for antenatal and postnatal clinic in an African country','2016','','Antenatal; Cloud computing; Health information system; Postnatal; Service-oriented architecture','Maternal Mortality Ratio (MMR) in many African countries has consistently been in the range of 500-800 per 100,000 live births over the last two decades. A major challenge in these settings relates to the quality and promptness of antenatal and/or post-natal care given. Recent advancements in technology, notably health information systems (HIS), have helped in the response to many of these challenges. In Africa, and indeed Nigeria, there is yet a comprehensive HIS that cuts across health sector that can address these issues. Hence, this project seeks to design a Secured Cloud-Based Antenatal and Postnatal Clinic System of a Health Information System to assist in efficient utilization of material and human resources and enhance quality of delivery of health services, geared towards improving maternal health. Requirements gathering for the proposed system will be conducted through a study of Antenatal and Postnatal Clinic Systems of existing Cloud Based HIS. System Modeling and Implementation Evaluation would be carried out. The developed HIS will adopt a AGATE architecture (Stakes and objectives of the system Description of the related organizations, processes and information flows, Security requirements, Services of the system, and traceability with operational needs), and a test-run and evaluation of the completed project will be conducted at specified three primary health care facilities in Nigeria. © 2016 The authors and IOS Press. All rights reserved.','',1,'Ajayi P., Omoregbe N., Adeloye D., Misra S.','scopus/service oriented architecture security.csv','scopus',''),(1096,'BPM in the Cloud','2013','0',' BPM business process management cloud SaaS case social collaboration BPMN IT enterprise','Abstract When Salesforce started delivering software in the cloud, they started a big shift in the CRM space. In the meantime, Software as a Service has become the preferred form to deliver software. Now, Business Process Management (BPM) products are starting to make their way to the cloud and they cause a big impact. Here we explore the benefits of cloud computing applied to BPM products. Basically the cloud is making BPM easier, faster and cheaper.','',2,'Tom Baeyens','springer/bpmn security.csv','springer','\0'),(1097,'Standard security does not imply security against selective-opening','2012','11','','We show that no commitment scheme that is hiding and binding according to the standard definition is semantically-secure under selective opening attack (SOA), resolving a long-standing and fundamental open question about the power of SOAs. We also obtain the first examples of IND-CPA encryption schemes that are not secure under SOA, both for sender corruptions where encryption coins are revealed and receiver corruptions where decryption keys are revealed. These results assume only the existence of collision-resistant hash functions. © 2012 International Association for Cryptologic Research.','',1,'Bellare M., Dowsley R., Waters B., Yilek S.','scopus/soa security.csv','scopus',''),(1098,'Achieving Interoperability through Semantic Technologies in the Public Administration','2012','0','','Abstract In this paper we report the experience of using semantic based tools and technologies for (collaboratively) modeling administrative procedures and their related documents, organizational roles, and services, in the Italian Public Administration (PA), focusing in particular on the interoperability aspects faced during the modelling process. This experience, the reported lessons learned and next steps identified, highlight the potential and criticality of using web 2.0 semantic technologies and tools to enhance participatory knowledge sharing, interoperability, and collaboration in the modeling of complex domains in the PA.','',2,'Chiara Di FrancescomarinoMauro DragoniMatteo GerosaChiara GhidiniMarco RospocherMichele Trainotti','springer/bpmn security.csv','springer','\0'),(1099,'System middleware','2015','','','This document defi nes the middleware of a cyberphysical monitoring system for epilepsy and related brain disorders. Taking into account requirements, this document provides insights about the service functionalities of the middleware and the interfaces connecting the different technologies in place within the system middleware. The document is divided into two main parts, the fi rst part describes the functional, non-functional and security aspects of the middleware, while the second part is all necessary information about the middleware architecture. The middleware runs within the Home Gateway, it is the ICT part responsible to connect sensor data to upper software layers (like personal health record service and the tele-alarm and messaging manager). Furthermore it provides the necessary infrastructure (thanks to the inclusion of a data stream management system) for the development of on-line multi-parametric data processing. Upper software layers connected are the Tele-alarm and Messaging Manager and the Personal Health Record. All middleware components follow a SOA (service oriented architecture) paradigm that allows easy scalability of the system. © Springer International Publishing Switzerland 2015.','',1,'Bideaux A., Hey S., Anastasopoulou P.','scopus/service oriented architecture security.csv','scopus',''),(1100,'A review of agent and service-oriented concepts applied to intelligent energy systems','2014','20','Active demand response; Distributed generation; Electrical grid; Multiagent systems (MASs); Power balancing; Renewable energy sources (RESs); Service-oriented architectures (SOAs); Smart grid','The intention of this paper is to provide an overview of using agent and service-oriented technologies in intelligent energy systems. It focuses mainly on ongoing research and development activities related to smart grids. Key challenges as a result of the massive deployment of distributed energy resources are discussed, such as aggregation, supply-demand balancing, electricity markets, as well as fault handling and diagnostics. Concepts and technologies like multiagent systems or service-oriented architectures are able to deal with future requirements supporting a flexible, intelligent, and active power grid management. This work monitors major achievements in the field and provides a brief overview of large-scale smart grid projects using agent and service-oriented principles. In addition, future trends in the digitalization of power grids are discussed covering the deployment of resource constrained devices and appropriate communication protocols. The employment of ontologies ensuring semantic interoperability as well as the improvement of security issues related to smart grids is also discussed. © 2005-2012 IEEE.','',1,'Vrba P., Marik V., Siano P., Leitao P., Zhabelova G., Vyatkin V., Strasser T.','scopus/service oriented architecture security.csv','scopus',''),(1101,'Research on Scientific Data Sharing Platform of Hydrology and Water Resources Based on Service Composition','2012','0',' Service Composition Data Sharing Web Service WSBPEL Hydrology and Water Resources','Abstract According to the demand for scientific data sharing of hydrology and water resources, through the introduction of Web Service and service composition development technology, we carried out a detailed design on the sharing platform from the aspects of service packaging, service registration, service publishing and service composition based on WSBPEL process. In this paper, we achieved the scientific data sharing platform of hydrology and water resources based on service composition in the private network environment of water system. The platform breaks the structure of traditional data sharing platform, and it can reassemble services to generate more complex business services, providing a basis for implementing sharing platform’s development from data sharing to service sharing.','',2,'Dingsheng WanJuan TangDazheng YuYufeng YuXingzhong Guan','springer/bpel security.csv','springer','\0'),(1102,'Interprocedural Information Flow Analysis of XML Processors','2014','1','','Abstract A crucial issue when providing publicly accessible web services is that sensitive data should only be accessible by authorized users. Accessibility of data within an application or information flow can conveniently be formalized as a 2-hyperproperty of a program. Here, we present a technique to interprocedurally analyze information flow in XML processors. Our approach is based on general techniques for program matching, and relational abstract interpretation of the resulting 2-programs. In case of XML processors, the abstract relational semantics then can be practically analyzed by means of finite tree automata.','',2,'Helmut SeidlMáté Kovács','springer/bpel security.csv','springer',''),(1103,'Probabilistic approach for QoS-aware recommender system for trustworthy web service selection','2014','4',' Web service Trust Bayesian network Online learning Dirichlet Beta-Liouville','Abstract We present a QoS-aware recommender approach based on probabilistic models to assist the selection of web services in open, distributed, and service-oriented environments. This approach allows consumers to maintain a trust model for each service provider they interact with, leading to the prediction of the most trustworthy service a consumer can interact with among a plethora of similar services. In this paper, we associate the trust in a service to its performance denoted by QoS ratings instigated by the amalgamation of various QoS metrics. Since the quality of a service is contingent, which renders its trustworthiness uncertain, we adopt a probabilistic approach for the prediction of the quality of a service based on the evaluation of past experiences (ratings) of each of its consumers. We represent the QoS ratings of services using different statistical distributions, namely multinomial Dirichlet, multinomial generalized Dirichlet, and multinomial Beta-Liouville. We leverage various machine learning techniques to compute the probabilities of each web service to belong to different quality classes. For instance, we use the Bayesian inference method to estimate the parameters of the aforementioned distributions, which presents a multidimensional probabilistic embodiment of the quality of the corresponding web services. We also employ a Bayesian network classifier with a Beta-Liouville prior to enable the classification of the QoS of composite services given the QoS of its constituents. We extend our approach to function in an online setting using the Voting EM algorithm that enables the estimation of the probabilities of the QoS after each interaction with a web service. Our experimental results demonstrate the effectiveness of the proposed approaches in modeling, classifying and incrementally learning the QoS ratings.','Applied Intelligence',1,'Mohamad MehdiNizar BouguilaJamal Bentahar','springer/soa security.csv','springer','\0'),(1104,'A proposed case for the cloud software engineering in security','2014','','','This paper presents Cloud Software Engineering in Security (CSES) proposal that combines the benefits from each of good software engineering process and security. While other literature does not provide a proposal for Cloud security as yet, we use Business Process Modeling Notation (BPMN) to illustrate the concept of CSES from its design, implementation and test phases. BPMN can be used to raise alarm for protecting Cloud security in a real case scenario in real-time. Results from BPMN simulations show that a long execution time of 60 hours is required to protect real-time security of 2 petabytes (PB). When data is not in use, BPMN simulations show that the execution time for all data security rapidly falls off. We demonstrate a proposal to deal with Cloud security and aim to improve its current performance for Big Data.','',2,'Chang V., Ramachandran M.','scopus/bpmn security.csv','scopus',''),(1105,'Decision making in security level evaluation process of service-based applications in future internet architecture','2014','2','Anomaly detection; Future internet; Security level evaluation; Service oriented architecture','A method of decision making in security level estimation process of service-based applications in Future Internet architecture is proposed. We demonstrate how distributed services can be composed to form an application run within the Next Generation Network (NGN) infrastructure and their security level may be assessed. Our approach is illustrated by the experiments carried on exemplary application (virtual laboratory Online Lab, using Future Internet IPv6 QoS architecture), in which our method was evaluated against two types of attacks observed with the use of traffic anomaly detection methods. © Springer International Publishing Switzerland 2014.','',1,'Kołaczek G., Juszczyszyn K., Świątek P., Grzech A.','scopus/service oriented architecture security.csv','scopus','\0'),(1106,'Standardization','2012','0','','','',1,'Wolfgang KresseDavid M. DankoKian Fadaie','springer/service oriented architecture security.csv','springer','\0'),(1107,'Accessing SOAP Web Services','2014','0','','Abstract This chapter looks at another mechanism used to access Web services— SOAP —which is similar to XML-RPC and to some extent REST . SOAP is more structured and general than XML-RPC and REST . It is also ostensibly more complex and more difficult to understand because of all of the details about how to format and send requests as XML documents. However, much of the complexity of SOAP is hidden from users as we can programmatically generate code in R (and other languages) to access any SOAP -based Web service and its collection of methods using the genSOAPClientInterface() function. This hides all of the details underlying XML and HTTP while still leaving the user with a lot of flexibility and control. In this chapter, we describe how to access SOAP Web services from within R and how to generate the interfaces from WSDL documents describing the service’s methods and data structures. For more advanced programmers, we also discuss approaches to customize how this code is generated and how to use the . SOAP() function directly to gain more control for more sophisticated applications of SOAP in R .','',1,'Deborah NolanDuncan Temple Lang','springer/webservice security.csv','springer','\0'),(1108,'Hybrid Ontology-Based Matching for Distributed Discovery of SWS in P2P Systems','2014','0','Distributed Discovery;Epidemic Discovery Algorithms;OWL-S;Ontology Matching;P2P Computing;Semantic Web services (SWs);Similarity Measures','Semantic Web services (SWs) paradigm is considered as the most dominant technology of the Service-Oriented Computing (SOC). SWs have emerged as a major technology for deploying automated interactions between distributed and heterogeneous applications. This computing technology can be used to discover new distributed and heterogeneous collaborative applications of large-scale distributed systems in P2P systems. In this paper, we present a scalable P2P approach for distributed discovery of SWs. In this approach, we define a distributed solution based on epidemic discovery algorithm to achieve a specific goal through the distributed discovery of SWs in P2P networks. In order to improve the applicability of the epidemic discovery algorithm for discovering SWs, we propose the matching of ontology OWL-S in the heart of this algorithm which reduces the search space while keeping an acceptable matching quality level. Our matching approach relies on the use of several similarity metrics. Moreover, our matching approach is able to detect complex mappings between activities based on their parameters of OWL-S.','High Performance Computing and Communications, 2014 IEEE 6th Intl Symp on Cyberspace Safety and Security, 2014 IEEE 11th Intl Conf on Embedded Software and Syst (HPCC,CSS,ICESS), 2014 IEEE Intl Conf on',1,'A. Boukhadra; K. Benatchba; A. Balla','ieee/service oriented architecture security.csv','ieee','\0'),(1109,'Towards a Federated Infrastructure for the Global Data Pipeline','2015','0',' Seamless interoperability Data pipeline Federated platforms Service Protocol Physical internet','Abstract Interoperability in logistics is a prerequisite for realizing data pipelines and the Physical Internet. Forecasting data, real time data, and actual positions of shipments, containers, and transport means shared via events have to be harmonized and are expected to improve all types of processes, support synchromodal planning, and improve risk analysis from a compliance and resilience perspective. Technically, several solutions are implemented by organizations and innovations have been validated in so-called Living Labs or demonstrators in various projects. These solutions do not yet provide open systems required for a (global) data pipeline. A federation of solutions is required to construct data pipelines and to support sustainable development of applications on smart devices allowing Small and Medium sized Enterprises to collaborate. This paper proposes a set of platform services and so-called platform protocols to allow interoperability of different platforms for constructing a data pipeline. The proposed services and protocols further extend existing interoperability solutions and services for supply and logistics.','',1,'Wout Hofman','springer/service oriented architecture security.csv','springer',''),(1110,'Process Mining Manifesto','2012','29','','Abstract Process mining techniques are able to extract knowledge from event logs commonly available in today’s information systems. These techniques provide new means to discover, monitor, and improve processes in a variety of application domains. There are two main drivers for the growing interest in process mining. On the one hand, more and more events are being recorded, thus, providing detailed information about the history of processes. On the other hand, there is a need to improve and support business processes in competitive and rapidly changing environments. This manifesto is created by the IEEE Task Force on Process Mining and aims to promote the topic of process mining. Moreover, by defining a set of guiding principles and listing important challenges, this manifesto hopes to serve as a guide for software developers , scientists , consultants , business managers , and end-users . The goal is to increase the maturity of process mining as a new tool to improve the (re)design, control, and support of operational business processes.','',2,'Wil van der AalstArya AdriansyahAna Karla Alves de MedeirosFranco ArcieriThomas BaierTobias BlickleJagadeesh Chandra BosePeter van den BrandRonald BrandtjenJoos BuijsAndrea BurattinJosep CarmonaMalu CastellanosJan ClaesJonathan CookNicola Costantini','springer/bpel security.csv','springer',''),(1111,'A SOA based system development methodology for cloud computing environment: Using uHealthcare as practice','2012','3','Cloud computing; Service oriented architecture (SOA); System development methodology; UHealthcare; Universal healthcare service','Service Oriented Architecture (SOA) uses a structural approach to create services which can be reused and shared. SOA provides agility and cost saving in software development, transforming vertical applications to various software components, which can be reused in applications. Cloud computing expands the software service accessibility and usage via Web services. To move successfully into cloud computing, an architecture supporting the cloud capabilities is needed. The cloud provides a good platform for deploying Web services based on SOA. Customer satisfaction, improved collaboration, enhanced end-to-end user security and enduser authentication, and business growth are some long term benefits supported by modern technologies in both of cloud computing and SOA. The objective of the paper is to study the effective process and effort required to design and implement a SOA based system development methodology and applying it to construct a u-Healthcare system to provide healthcare services including accessing medical records of patients on a universal end-to-end basis. Copyright © 2011, IGI Global.','',1,'Yu W.D., Adiga A.S., Rao S., Panakkel M.J.','scopus/service oriented architecture security.csv','scopus','\0'),(1112,'Composition in Heterogeneous Service Networks: Requirements and Solutions','2012','0',' Service Composition Telecommunication IMS SIP Web Services Web 2.0','Abstract Telecommunication networks are service centric and therefore benefit from service composition techniques in accordance to Service Oriented Architecture (SOA) principles. Furthermore, services in the telecommunication domain are subject to specific requirements and topologies of service usage. Examples are services within end-to-end communication sessions and the need to handle service interaction across technological worlds. This includes telecom, enterprise and Internet services. A common service layer for IT and telecommunication needs to be able to handle compositions of services from multiple technological worlds. This paper provides an analysis of the service usage that is typical for various service technologies and it outlines a composition approach that is made to handle heterogeneous composite services.','',2,'Jörg NiemöllerEugen FreiterKonstantinos VandikasRaphaël QuinetRoman LevenshteynIoannis Fikouras','springer/bpel security.csv','springer','\0'),(1113,'e-Business systems integration: a systems perspective','2012','23',' Systems science Systems engineering Enterprise systems e-Business systems Enterprise architecture Enterprise integration Industrial Information Integration Engineering (IIIE) Warfield version of systems science (WSS)','Abstract Systems science has emerged as a meta-discipline and a meta-language, correspondingly, which can be applied to discuss issues in e-business systems and relevant enterprise architecture and enterprise integration. A lot of researches on enterprise architecture and enterprise integration in e-business systems have their theoretical findings and effective practices naturally influenced by systems theory and relative methodologies. This paper strives to review the contribution of systems theory to enterprise architecture and integration. It also tries to summarize methods or tools applied on enterprise systems level, and to investigate many crucial scopes, concepts and their interrelationship in e-business systems integration activities. Finally, this paper presents new prospects in enterprise architecture and integration for e-business systems. All of these may be useful to deal with the increase complex informatics issues of modern enterprises.','Information Technology and Management',1,'Song WangLing LiKanliang WangJames D. Jones','springer/soa security.csv','springer',''),(1114,'An architecture for integrated intelligence in urban management using cloud computing','2012','25',' Information intelligence Environmental monitoring Data harmonisation Service integration Cloud and computing standards','Abstract With the emergence of new methodologies and technologies it has now become possible to manage large amounts of environmental sensing data and apply new integrated computing models to acquire information intelligence. This paper advocates the application of cloud technologies to support the information, communication and decision making needs of a wide variety of stakeholders in the complex business of the management of urban and regional development. The complexity is evident in the socio-economic and environmental interactions and impacts embodied in the concept of the urban-ecosystem. This highlights the need for more effective integrated environmental management systems. A key to understanding the nature of integrated environmental management systems is the identification of the need for horizontal integration of information across sectoral inter-agency boundaries at the local level, and the need for vertical coordination between levels of governance. This paper offers a user-oriented approach to the specification of requirements for the effective management of urban areas and the potential contributions that can be supported by cloud computing. The commonality of the influence of the drivers of change at the urban level offers the opportunity for the cloud computing community to develop generic solutions that can serve the needs of hundreds of cities throughout Europe and indeed globally. In this respect, different cloud based architecture scenarios are presented which utilise capabilities compliant to various standards in generating information and intelligence for urban governance.','Journal of Cloud Computing: Advances, Systems and Applications',2,'Zaheer KhanDavid LudlowRichard McClatcheyAshiq Anjum','springer/bpel security.csv','springer',''),(1115,'Task Scheduling Optimization in Cloud Computing Applying Multi-Objective Particle Swarm Optimization','2013','5',' Cloud computing Task Scheduling Multi-Objective Particle Swarm Optimization Jswarm Cloudsim','Abstract Optimizing the scheduling of tasks in a distributed heterogeneous computing environment is a nonlinear multi-objective NP-hard problem which is playing an important role in optimizing cloud utilization and Quality of Service (QoS). In this paper, we develop a comprehensive multi-objective model for optimizing task scheduling to minimize task execution time, task transferring time, and task execution cost. However, the objective functions in this model are in conflict with one another. Considering this fact and the supremacy of Particle Swarm Optimization (PSO) algorithm in speed and accuracy, we design a multi-objective algorithm based on multi-objective PSO (MOPSO) method to provide an optimal solution for the proposed model. To implement and evaluate the proposed model, we extend Jswarm package to multi-objective Jswarm (MO-Jswarm) package. We also extend Cloudsim toolkit applying MO-Jswarm as its task scheduling algorithm. MO-Jswarm in Cloudsim determines the optimal task arrangement among VMs according to MOPSO algorithm. The simulation results show that the proposed method has the ability to find optimal trade-off solutions for multi-objective task scheduling problems that represent the best possible compromises among the conflicting objectives, and significantly increases the QoS.','',2,'Fahimeh RamezaniJie LuFarookh Hussain','springer/bpel security.csv','springer','\0'),(1116,'Data Diodes in Support of Trustworthy Cyber Infrastructure and Net-Centric Cyber Decision Support','2013','0',' Data diodes Trusted process control networks Industrial control systems Cyber decision support systems Net-centric systems','Abstract Data diodes provide protection of critical cyber assets by the means of physically enforcing traffic direction on the network. In order to deploy data diodes effectively, it is imperative to understand the protection they provide, the protection they do not provide, their limitations, and their place in the larger security infrastructure. In this work, we study data diodes, their functionalities and limitations. We then propose two critical infrastructure systems that can benefit from the additional protection offered by data diodes: process control networks and net-centric cyber decision support systems. We review the security requirements of these systems, describe the architectures, and study the trade-offs. Finally, the architectures are evaluated against different attack patterns.','',1,'H. OkhraviF. T. SheldonJ. Haines','springer/service oriented architecture security.csv','springer','\0'),(1117,'CASViD: Application Level Monitoring for SLA Violation Detection in Clouds','2012','8','Application Monitoring;Cloud Resource Provisioning;SLA Management;Service Level Agreement','Cloud resources and services are offered based on Service Level Agreements (SLAs) that state usage terms and penalties in case of violations. Although, there is a large body of work in the area of SLA provisioning and monitoring at infrastructure and platform layers, SLAs are usually assumed to be guaranteed at the application layer. However, application monitoring is a challenging task due to monitored metrics of the platform or infrastructure layer that cannot be easily mapped to the required metrics at the application layer. Sophisticated SLA monitoring among those layers to avoid costly SLA penalties and maximize the provider profit is still an open research challenge. This paper proposes an application monitoring architecture named CASViD, which stands for Cloud Application SLA Violation Detection architecture. CASViD architecture monitors and detects SLA violations at the application layer, and includes tools for resource allocation, scheduling, and deployment. Different from most of the existing monitoring architectures, CASViD focuses on application level monitoring, which is relevant when multiple customers share the same resources in a Cloud environment. We evaluate our architecture in a real Cloud testbed using applications that exhibit heterogeneous behaviors in order to investigate the effective measurement intervals for efficient monitoring of different application types. The achieved results show that our architecture, with low intrusion level, is able to monitor, detect SLA violations, and suggest effective measurement intervals for various workloads.','2012 IEEE 36th Annual Computer Software and Applications Conference',1,'V. C. Emeakaroha; T. C. Ferreto; M. A. S. Netto; I. Brandic; C. A. F. De Rose','ieee/service oriented architecture security.csv','ieee','\0'),(1118,'Defining the relationships between IT service management and IT service governance','2016','0',' IT service Service governance Service management Process','Abstract IT service provider organizations need both IT service management (ITSM) and IT service governance (ITSG) to ensure successful service provision for their customers. However, current service science literature has not adequately addressed how these activities differ from each other. Focusing solely on IT service management and ignoring service governance aspects may cause difficulties in measuring the performance of service management, defining and deploying the roles and responsibilities of service management, allocating the resources for right service improvements and adopting the service-oriented process culture. The research problem of this study is: How does IT service management differ from IT service governance? The main contribution of the study is a framework for IT service governance and a roadmap of IT service management frameworks and standards that can be utilized in establishing IT service governance activities. The theory-based framework is validated in an IT service change management case study with five Finnish IT service provider organizations. The results of this study may be used by top management, service directors and the IT service managers of IT service companies to better identify different aspects of IT service management and IT service governance.','Information Technology and Management',1,'Marko JänttiVirpi Hotti','springer/soa security.csv','springer',''),(1119,'Disassembling digital identity-related privacy into a set of services: Soaml-based services design','2012','','Digital identity; privacy requirements; services design; SOA; SoaML','Privacy could play a key role for digital identity protection and security, which are becoming major needs for individuals, organizations and societies. Digital identity management functionalities are increasingly delivered as sets of services, rather than monolithic applications. So, an identity layer in which identity and privacy management are interoperable could be more realistic and an acceptable situation in the context of distributed environments. Such interoperability could be offered through the design of a set of loosely coupled, publicly hosted and available to on-demand calls services and the implementation on open standards basis. The aim of the article is to disassemble digital identity-related privacy requirements that are drawn from global, domestic and business-specific privacy policies into a set of eight ready-to-use, granular and loosely coupled services that could accommodate a service-oriented architecture (SOA). OMG SoaML service architecture, service contract architecture, message type, service contract choreography, composite application components, and provisioning diagrams are provided. © 2012 Springer-Verlag GmbH Berlin Heidelberg.','',1,'Ben Ayed G., Ghernaouti-Hélie S.','scopus/service oriented architecture security.csv','scopus','\0'),(1120,'The Role of Quality Attributes in Service-Based Systems Architecting: A Survey','2013','1',' quality attributes service-based systems survey architecting','Abstract Quality attributes (QA) play a fundamental role when architecting software systems. However, in contrast to QA in traditional software systems, the role of QA when architecting service-based systems (SBS) has not yet been studied in depth. Thus, we conducted a descriptive survey to explore how QA are treated during the architecting of SBS. Data were collected using an online questionnaire targeted at participants with architecting experience. Our survey shows that QA and functional requirements of SBS are mostly considered equally important. Also, QA are usually treated explicitly rather than implicitly. Furthermore, dependability and performance appear to be the most important QA in the context of SBS. Our results partially show that general findings on QA also apply to the domain of SBS. On the other hand, we did not find a confirmation that QA are primary drivers for the architecting of SBS, or that certain application domains would focus on particular QA.','',1,'David AmellerMatthias GalsterParis AvgeriouXavier Franch','springer/service oriented architecture security.csv','springer','\0'),(1121,'Traffic Pattern Analysis for Distributed Anomaly Detection','2012','0',' Service Oriented Architecture Security Anomaly Detection','Abstract Network anomalies refer to situations when observed network traffic deviate from normal network behaviour. In this paper, we propose a general framework which assumes the use of many different attack detection methods and show a way to integrate their results. We checked our approach by the use of network topology analysis methods applied to communication graphs. Based on this evaluation, we have proposed a measure called the AttackScore, which assesses the risk of an on-going attack and distinguishes between the effectiveness of the analytic measures used to detect it.','',1,'Grzegorz KolaczekKrzysztof Juszczyszyn','springer/service oriented architecture security.csv','springer','\0'),(1122,'Obstruction-free authorization enforcement: Aligning security and business objectives','2014','4','Authorizations; binding of duty; deadlock; obstruction; release; separation of duty; workflows','Access control is fundamental in protecting information systems but it can also pose an obstacle to achieving business objectives. We analyze this tradeoff and its avoidance in the context of systems modeled as workflows restricted by authorization constraints, including those specifying Separation of Duty (SoD) and Binding of Duty (BoD). To begin with, we present a novel approach to scoping authorization constraints within workflows with loops and conditional execution. We formalize workflows, authorization constraints, and their enforcement using the process algebra CSP and visualize our constraints by extending the workflow modeling language BPMN. Afterwards, we consider enforcement\'s effects on business objectives. We identify the notion of obstruction, which generalizes deadlock within a system where access control is enforced, and we formulate the existence of an obstruction-free enforcement mechanism as a decision problem. We present complexity bounds for this problem and give an approximation algorithm that performs well when authorizations are evenly distributed among users. We provide tool support for our constraints in an extension of the modeling platform Oryx and report on the performance of our algorithms\' implementation. © 2014 IOS Press and the authors. All rights reserved.','',2,'Basin D., Burri S.J., Karjoth G.','scopus/bpmn security.csv','scopus',''),(1123,'Trust management for service composition in SOA-based IoT systems','2014','0','Internet of things;SOA;Trust management;performance analysis;service composition;social networks','An Internet of Things (IoT) system connects a large amount of tags, sensors, and smart devices often with mobility to facilitate information sharing, enabling a variety of attractive applications. On the one hand, the service oriented architecture (SOA) can provide connectivity and interoperability among heterogeneous IoT devices in the physical network. On the other hand, IoT devices are virtually connected via social networks. In this paper, we analyze the notion of adaptive trust management to support reliable service composition applications in SOA-based IoT systems. Each device records user satisfaction experiences toward devices with which it has interacted, and collects trust feedbacks from other devices sharing social interests. We consider friendship, social contact, and community of interest social relationships to select trust feedbacks. Further we develop a novel adaptive filtering technique to determine the best way to combine direct trust and indirect trust feedbacks dynamically to minimize both convergence time and trust bias. We demonstrate the effectiveness of the proposed trust management through a service composition application in SOA-based IoT systems.','2014 IEEE Wireless Communications and Networking Conference (WCNC)',1,'I. R. Chen; J. Guo; F. Bao','ieee/service oriented architecture security.csv','ieee','\0'),(1124,'Quality of Service Ontology Languages for Web Services Discovery: An Overview and Limitations','2013','1',' Web Services Semantic Web Semantic Web Services QoS Ontology','Abstract Web services discovery, ranking and selection based on QoS parameters is remained a hot topic for research since the start of the semantic web. Quality of service (QoS) plays an important role to resolve the issue of best service among the functional similar services. Semantic web relies on the ontologies for providing metadata schema and the vocabulary of concepts used in semantic annotation; resulting improved accuracy of web search. This is why; the success of semantic web depends on the proliferation of ontologies. Depending on the nature of the application, different companies may use different ontology languages and QoS models for web services selection which lead to the issue of heterogeneity. In this paper we have presented ontology evaluation criteria that if satisfied, can solve the problem of heterogeneity and interoperability. Moreover, ontology developers may also use these criteria to evaluate their developed ontology for the refinements. We have evaluated different ontologies in-order to know their strengths and limitations along with the new research directions.','',1,'Furkh ZeshanRadziah MohamadMohammad Nazir Ahmad','springer/service oriented architecture security.csv','springer','\0'),(1125,'Analysis of Revenue Improvements with Runtime Adaptation of Service Composition Based on Conditional Request Retries','2012','0',' Service Oriented Architecture Optimal Retry Policies Watchdog Timer Hazard Rate','Abstract In this paper we consider the runtime service adaptation mechanism for service compositions that is based on conditional retries. A single retry may be issued while a concrete service within composition is executed. This retry could either invoke the same concrete service or a functionally equivalent service implementing the same task. We determine the optimal moments to terminate the current request and replicate it. The calculation of these moments for each task within the workflow is based on different QoS parameters from Service Level Agreements, like services’ response–time distributions and cost–relating parameters. The calculations are performed taking into account the remaining actual time–to–deadline, and the benefit of conditional retry mechanism is illustrated by simulations. We further discuss the impact of costs and response–time distributions’ parameters to the solution at hand.','',1,'Miroslav ŽivkovićHans van den Berg','springer/service oriented architecture security.csv','springer','\0'),(1126,'Special issue on emerging technologies for the management of diabetes mellitus','2015','0','','','Medical & Biological Engineering & Computing',1,'Konstantia ZarkogianniKonstantina S. Nikita','springer/service oriented architecture security.csv','springer',''),(1127,'Architecting acceß control for busineß proceßes in the cloud','2014','','','Enterprise architecture (EA) aims to provide management with appropriate indicators and controls to steer and model service-oriented enterprises. Nevertheleß, common enterprises architecture frameworks lack of acceß control mechanisms supporting security requirements within organizations. Moreover, the rapid permeation of information technology motivates new computing paradigms such as cloud computing. In this paper, we propose an approach for modeling acceß control requirements in enterprise architecture, and supporting its provisioning in Cloud providers. The idea is to leverage EA paradigms to ensure busineß-IT alignment when modeling acceß control, and deploying acceß control mechanisms in the Cloud. Our approach is illustrated through the handling of an e-Government scenario, in which EA modeling and appropriate Cloud resources provisioning are motivated. © 2014 IEEE.','',1,'Gaaloul K., Yangui S., Tata S., Proper H.A.','scopus/service oriented architecture security.csv','scopus','\0'),(1128,'SaaS-based enterprise application integration approach and case study','2016','0',' Cloud computing SaaS SOA Enterprise application integration (EAI)','Abstract Software-as-a-Service (SaaS) has been well studied, and it is being adopted at a very fast pace. Enterprise application integration (EAI) is the key factor in many enterprises. Traditionally, SOA technique can be applied to EAI, especially the application of Web Service. In this paper, we propose that SaaS can also be applied to the field of EAI. Based on this, we propose the SaaS-based EAI approach which rebuilds one analog of legacy applications into SaaS architecture makes the rest applications be configured, and further solves the EAI problem. Besides, we also update the traditional SaaS maturity model, discuss relationships between SOA and SaaS in EAI, and explain how to further integrate SaaS applications by SOA. We implement an Eclipse plug-in which can introduce SaaS capabilities into traditional Web application automatically. Finally, the proposed approach is proved to be effective through a case study.','The Journal of Supercomputing',1,'BeiLie WangHui LiuJie Song','springer/soa security.csv','springer',''),(1129,'FISA 2015 Track Report: Future Internet Services and Applications','2015','0','','The \"Future Internet Services and Applications\" (FISA) track focuses on three complementary aspects that have to be considered while setting up future Internet services: (i) their modelling, provisioning and management, (ii) data protection, and (iii) data collection, storage and analysis. FISA is in its first edition and results from the fusion of the PASCS (Privacy and Accountability for Software and Cloud Services) and PROMASC (Provisioning and Management of Service Oriented Architecture and Cloud Computing) tracks from the previous WETICE editions. This report briefly presents the main topics of FISA and presents the accepted papers.','2015 IEEE 24th International Conference on Enabling Technologies: Infrastructure for Collaborative Enterprises',1,'H. H. Kacem; A. S. d. Oliveira; M. Sellami; S. Lefebvre','ieee/service oriented architecture security.csv','ieee',''),(1130,'Towards Collaborative Data Management in the VPH-Share Project','2012','0',' virtual physiological human healthcare infrastructure','Abstract The goal of the Virtual Physiological Human Initiative is to provide a systematic framework for understanding physiological processes in the human body in terms of anatomical structure and biophysical mechanisms across multiple length and time scales. In the long term it will transform the delivery of European healthcare into a more personalised, predictive, and integrative process, with significant impact on healthcare and on disease prevention. This paper outlines how the recently funded project VPH-Share contributes to this vision. The project is motivated by the needs of the whole VPH community to harness ICT technology to improve health services for the individual. VPH-Share will provide the organisational fabric (the infostructure), realised as a series of services, offered in an integrated framework, to expose and to manage data, information and tools, to enable the composition and operation of new VPH workflows and to facilitate collaborations between the members of the VPH community.','',1,'Siegfried BenknerJesus BisbalGerhard EngelbrechtRod D. HoseYuriy KaniovskyiMartin KoehlerCarlos PedrinaciSteven Wood','springer/service oriented architecture security.csv','springer','\0'),(1131,'Automatic Code Generation for the Orchestration of Web Services with Reo','2012','6','','Abstract We present a compositional construction of Web Services, using Reo and Constraint Automata as the main “glue” ingredients. Reo is a graphical and exogenous coordination language based on channels. We propose a framework that, taking as input the behavioral description of services (as Constraint Automata), their WSDL interfaces, and the description of their interaction in Reo, generates all the necessary Java code to orchestrate the services in practice. For each Web Service, we automatically generate a proxy that manages the communication between this service and the Reo circuit. Although we focus on Web Services, we can compose different kinds of service-oriented and component technologies at the same time (e.g., CORBA, RPC, WCF), by generating different proxies and connecting them to the same coordinator.','',2,'Sung-Shik T. Q. JongmansFrancesco SantiniMahdi SargolzaeiFarhad ArbabHamideh Afsarmanesh','springer/bpel security.csv','springer','\0'),(1132,'Editorial for special section of grid computing journal on “Cloud Computing and Services Science”','2015','0','','','Cluster Computing',1,'Marten J. van SinderenIvan I. Ivanov','springer/service oriented architecture security.csv','springer',''),(1133,'On semantic annotation of decision models','2013','0',' Service science Model management Structured modeling Semantic annotation Ontologies','Abstract The growth of service sector in recent years has led to renewed research interests in the design and management of service systems. Decision support systems (DSS) play an important role in supporting this endeavor, through management of organizational resources such as models and data, thus forming the “back stage” of service systems. In this article, we identify the requirements for semantically annotating decision models and propose a model representation scheme, termed Semantically Annotated Structure Modeling Markup Language (SA-SMML) that extends Structure Modeling Markup Language (SMML) by incorporating mechanisms for linking semantic models such as ontologies that represent problem domain knowledge concepts. This model representation format is also amenable to a scalable Service-Oriented Architecture (SOA) for managing models in distributed environments. The proposed model representation technique leverages recent advances in the areas of semantic web, and semantic web services. Along with design considerations, we demonstrate the utility of this representation format with an illustrative usage scenarios with a particular emphasis on model discovery and composition in a distributed environment.','Information Systems and e-Business Management',1,'Amit V. DeokarOmar F. El-Gayar','springer/service oriented architecture security.csv','springer','\0'),(1134,'Using Policies for Handling Complexity of Event-Driven Architectures','2014','0','','Abstract Cyber-physical systems and the Internet of Things illustrate the proliferation of sensors. The full potential of ubiquitous sensors can only be realized, if sensors and traditional data sources are integrated into one system. This leads to large, complex systems which are harder to use and manage, and where maintaining desired behavior is increasingly difficult. We suggest a novel approach to handle the complexity of these systems: users focus on the desired behavior of the system and use a declarative policy language (DPL) to state these behaviors. An enhanced message-oriented middleware processes the policies and automatically generates components which execute the policies. We compared our approach against other approaches in a case study and found that it does indeed simplify the use of cyber-physical systems.','',1,'Tobias FreudenreichStefan AppelSebastian FrischbierAlejandro P. Buchmann','springer/service oriented architecture security.csv','springer','\0'),(1135,'Platform-level support for authorization in cloud services with OAuth 2','2014','1','Authorization; Cloud; OAuth 2; Platform as a Service; Security','The OAuth 2 web authorization framework allows services to act on behalf of users when interacting with other services. It avoids sharing username and passwords across services, thus, in principle protecting users from several threats. However, it is known that the implementation of this kind of authorization protocol is tricky, and potentially leads to vulnerable web services. In this paper we present a toolkit for Java-based Cloud platforms which facilitates the deployment of the OAuth 2 authorization framework into existing web services. We developed a set of interceptors, using aspect-oriented programming techniques for SOA, to handle the main OAuth flow. Secondly, we created an Eclipse plug-in to integrate OAuth into cloud services with minimum effort. © 2014 IEEE.','',1,'Sendor J., Lehmann Y., Serme G., De Oliveira A.S.','scopus/soa security.csv','scopus','\0'),(1136,'DSOL: a declarative approach to self-adaptive service orchestrations','2012','4',' Service oriented programming Web service composition Declarative language Self adaptation Fault tolerance Mathematics Subject Classification 68N15 68M15','Abstract Service oriented computing (SOC) has brought a simplification in the way distributed applications can be built. Mainstream approaches, however, failed to support dynamic, self-managed compositions that would empower even non-technical users to build their own orchestrations. Indeed, because of the changeable world in which they are embedded, service compositions must be able to adapt to changes that may happen at run-time. Unfortunately, mainstream SOC languages, like BPEL and BPMN, make it quite hard to develop such kind of self-adapting orchestrations. We claim that this is mostly due to the imperative programming paradigm they are based on. To overcome this limitation we propose a radically different, strongly declarative approach to model service orchestration, which is easier to use and results in more flexible and self-adapting orchestrations. An ad-hoc engine, leveraging well-known planning techniques, interprets such models to support dynamic service orchestration at run-time.','Computing',2,'Gianpaolo CugolaCarlo GhezziLeandro Sales Pinto','springer/bpel security.csv','springer','\0'),(1137,'Notice of Violation of IEEE Publication Principles
Services Selection of Transactional Property for Web Service Composition','2012','0','Service Composition;Web service selection;transactional property','Notice of Violation of IEEE Publication Principles

\"Services Selection of Transactional Property for Web Service Composition\"
by Guojun Zhang
in the Proceedings of the Eighth International Conference on Computational Intelligence and Security, November 2012, pp. 605-608

After careful and considered review of the content and authorship of this paper by a duly constituted expert committee, this paper has been found to be in violation of IEEE\'s Publication Principles.

This paper has copied significant portions of the original text from the paper cited below. The original text was copied without attribution (including appropriate references to the original author(s) and/or paper title) and without permission.

\"TQoS: Transactional and QoS-Aware Selection Algorithm for Automatic Web Service Composition\"
by Joyce El Haddad, Maude Manouvrier, and Marta Rukoz
in the IEEE Transactions on Services Computing, Vol 3, No. 1, March 2010, pp. 73-85

Web service composition enables seamless and dynamic integration of business applications on the web. Due to the inherent autonomy and heterogeneity of component Web services it is difficult to predict the behavior of the overall composite service. Therefore, transactional properties are crucial for selecting the web services to take part in the composition. Transactional properties ensure reliability of composite Web service. In this paper we propose a novel selection approach based on transactional properties of ensuring reliability. We build a model to implement transactional-aware service selection, and use the model composite Web service to guarantee reliable execution. We evaluate our approach experimentally using both real and synthetically generated datasets.','Computational Intelligence and Security (CIS), 2012 Eighth International Conference on',1,'G. Zhang','ieee/service oriented architecture security.csv','ieee','\0'),(1138,'SPADE: Support for Provenance Auditing in Distributed Environments','2012','1','','Abstract SPADE is an open source software infrastructure for data provenance collection and management. The underlying data model used throughout the system is graph-based, consisting of vertices and directed edges that are modeled after the node and relationship types described in the Open Provenance Model. The system has been designed to decouple the collection, storage, and querying of provenance metadata. At its core is a novel provenance kernel that mediates between the producers and consumers of provenance information, and handles the persistent storage of records. It operates as a service, peering with remote instances to enable distributed provenance queries. The provenance kernel on each host handles the buffering, filtering, and multiplexing of incoming metadata from multiple sources, including the operating system, applications, and manual curation. Provenance elements can be located locally with queries that use wildcard, fuzzy, proximity, range, and Boolean operators. Ancestor and descendant queries are transparently propagated across hosts until a terminating expression is satisfied, while distributed path queries are accelerated with provenance sketches.','',1,'Ashish GehaniDawood Tariq','springer/service oriented architecture security.csv','springer','\0'),(1139,'Toward federated mission networking in the tactical domain','2015','','','NATO is currently working on the Federated Mission Networking (FMN) concept, which will become the foundation for establishing mission networks in the future. The realization of the FMN concept is described in the NATO FMN Implementation Plan (NFIP). The information infrastructure outlined in NFIP today builds on the concept of service-oriented architecture in order to achieve interoperability, and bases itself on many of the same standards and specifications as the ones identified through NATO Network Enabled Capabilities (NNEC). The NNEC SOA Baseline [1] identifies a number of core enterprise services that represent the common functionality needed to build an interoperable service-oriented infrastructure in a federation. It further identifies which standards should be used to realize these core services while ensuring interoperability between the federation members. A subset of these capabilities includes messaging services, collaboration services, service discovery, and security services. This article looks into each of these foundational core services, presents the challenges related to extending support for these services into the tactical domain, and identifies potential solutions. © 2015 IEEE.','',1,'Brannsten M.R., Johnsen F.T., Bloebaum T.H., Lund K.','scopus/service oriented architecture security.csv','scopus',''),(1140,'An immersive view approach by secure interactive multimedia proof-of-concept implementation','2015','0',' Virtual window Immersive view Multimedia security Ambient assisted living','Abstract Live media streaming is a field that recently has had a great impact in the scientific community, especially in the case of interactive media streaming. In this paper we propose a reference architecture conceptualizing an immersive view effect by considering heterogeneous tracking devices and enriched movement control over heterogeneous stream image sources. A proof-of-concept prototype implementation of the reference architecture is presented, called Live Interactive FramE (LIFE), illustrating the potential and value of the immersive view concept. Our work is part of the DESEOS research project that aims at applying an Ambient Assisted Living paradigm to a targeted scenario of hospitalised children. The main goal of LIFE is reducing stress and isolation during hospitalisation by enabling an immersive view of school activities via live media streaming. Functional and security aspects of LIFE are presented along with details of implementation and performance evaluation. Conclusions of experiments show that LIFE enables practical secure media streaming solution with optimal video quality settings.','Multimedia Tools and Applications',1,'Pablo AntónAntonio MañaAntonio MuñozHristo Koshutanski','springer/soa security.csv','springer',''),(1141,'Geospatial information security web service based on agent','2010','1','Geospatial information security; Mobile agent; WebService','With the development of remote sensing technology, the use of remote sensing images collected by space platforms is becoming more and more pervasive. There is more and more need to distribute processing of remote sensing images. At present, WebService can figure out non-security remote sensing images network processing, but due to network transmit without non-encryption at client side, which may lead to image information leakage. To settle this problem, we propose a geospatial information security Web service based on mobile agent and WebService. This method can guarantee security image security network processing, which is useful complent of WebService. © 2010 IEEE.','',1,'Sun J., Liu J., Xu Z., Wu Z.','scopus/webservice security.csv','scopus','\0'),(1142,'Formal Verification of the xDAuth Protocol','2016','','Cross domain access control framework;SMT;Z3;formal methods;high-level Petri nets (HLPN);information security;modeling;service oriented architecture (SOA);verification;xDAuth protocol','Service Oriented Architecture (SOA) offers a flexible paradigm for information flow among collaborating organizations. As information moves out of an organization boundary, various security concerns may arise, such as confidentiality, integrity, and authenticity that needs to be addressed. Moreover, verifying the correctness of the communication protocol is also an important factor. This paper focuses on the formal verification of the xDAuth protocol, which is one of the prominent protocols for identity management in cross domain scenarios. We have modeled the information flow of xDAuth protocol using High Level Petri Nets (HLPN) to understand protocol information flow in a distributed environment. We analyze the rules of information flow using Z language while Z3 SMT solver is used for verification of the model. Our formal analysis and verification results reveal the fact that the protocol fulfills its intended purpose and provides the security for the defined protocol specific properties, e.g. secure secret key authentication, Chinese wall security policy and secrecy specific properties, e.g. confidentiality, integrity, authenticity.','IEEE Transactions on Information Forensics and Security',1,'Q. Alam; S. Tabbasum; S. Malik; M. Alam; T. Tanveer; A. Akhunzada; S. Khan; A. Vasilakos; R. Buyya','ieee/service oriented architecture security.csv','ieee',''),(1143,'Effective Management of High Rate Spatio-Temporal Queries in Wireless Sensor Networks','2014','0',' Wireless sensor networks Spatio-temporal queries Optimization Topological relationships Minimum bounding rectangle In-network','Abstract Handling high rate queries have always posed a challenge in wireless sensor networks (WSNs) owing to their resource constrained nature. This paper proposes a scheme that performs centralized and distributed optimization to improve the scalability of the high rate spatio-temporal queries in WSNs. Queries are optimized centrally based on multiple criteria such as spatial topological relationships, temporal and attribute correlations. An energy efficient load balanced clustered tree routing based on minimum bounding rectangle spatial indexing scheme is employed to aid the in-network optimization of queries. Two algorithms have been proposed to carry out a centralized and distributed optimization that works adaptively on queries switching between optimal and sub-optimal modes to handle multiple concurrent queries reliably. Simulation results show that the proposed scheme is highly scalable for large scale spatio-temporal queries and also has the added advantage of minimizing the energy consumption due to query and data transmission.','Wireless Personal Communications',1,'V. S. Felix EnigoV. Ramachandran','springer/service oriented architecture security.csv','springer','\0'),(1144,'An Environment for Service Composition, Execution and Resource Allocation','2013','0',' Service Oriented Architecture service composition service request distribution service security','Abstract In recent years the evolution of software architectures led to the rising prominence of the Service Oriented Architecture (SOA) concept. The services can be deployed in distributed environments and executed on different hardware and software platforms. In the paper a configurable and flexible environment, allowing composition, deployment and execution of composite services, which can be applied in the wide range of SOA-based systems is presented. It supports service semantic description, composition and the distribution of service requests guaranteeing services quality, especially efficient allocating communication and computational resources to services. We present an unified approach, which assumes the semantic description of Web service functionalities with an XML-based language - Smart Service Description Language which provides similar features to that of OWL-S or WSDL, however, it was designed to support services execution and monitoring. These unique features allow to design a service execution engine, compatible with the underlying execution environment and providing support for service QoS guarantees.','',2,'Jan KwiatkowskiKrzysztof JuszczyszynGrzegorz Kolaczek','springer/bpel security.csv','springer','\0'),(1145,'The Ensemble Development Life Cycle and Best Practices for Collective Autonomic Systems','2015','0',' software development life cycle patterns ensembles awareness adaptation autonomic systems','Abstract Collective autonomic systems are adaptive, open-ended, highly parallel, interactive and distributed software systems. Their key features are so-called self-* properties, such as self-awareness, self-adaptation, self-expression, self-healing and self-management. We propose a software development life cycle that helps developers to engineer adaptive behavior and to address the issues posed by the diversity of self-* properties. The life cycle is characterized by three feedback loops, i.e. based on verification at design time, based on monitoring and awareness in the runtime, and the feedback provided by runtime data to the design phases. We illustrate how the life cycle can be instantiated using specific languages, methods and tools developed within the ASCENS project. In addition, a pattern catalog for the development of collective autonomic systems is presented to ease the engineering process.','',2,'Matthias HölzlNora KochMariachiara PuvianiMartin WirsingFranco Zambonelli','springer/bpmn security.csv','springer',''),(1146,'Priority-Oriented Architecture Service Management on OSGi Home-service Platform','2013','0',' Smart home OSGi QoS Management system','Abstract Open Service Gateway initiative (OSGi) platforms integrate a variety of reusable applications and resources, packing them into bundles. These deployed services, which are offered by service providers, can expediently manage home appliances. However, in the user’s daily life, various services or bundles access to other services directly or indirectly, creating a situation that is likely to generate problems involving non-supportable applications or insufficient hardware resources. OSGi platforms are no way to deal with these situations. Although much research has proposed methods to resolve specific issues, almost all of these methods are incomplete or are unsuitable for the limited resources in households. This paper addresses the wide range of such common home-network applications as those involving health care, home automation, and home security; and both our proposed priority-based principles of a management decision-making mechanism and our framework architecture help ensure the quality of service and or emergency responses.','Wireless Personal Communications',1,'Sheng-Tzong ChengChih-Lun ChouGwo-Jiun Horng','springer/service oriented architecture security.csv','springer','\0'),(1147,'User-guided discovery of declarative process models','2011','35','','Process mining techniques can be used to effectively discover process models from logs with example behaviour. Cross-correlating a discovered model with information in the log can be used to improve the underlying process. However, existing process discovery techniques have two important drawbacks. The produced models tend to be large and complex, especially in flexible environments where process executions involve multiple alternatives. This overload of information is caused by the fact that traditional discovery techniques construct procedural models explicitly showing all possible behaviours. Moreover, existing techniques offer limited possibilities to guide the mining process towards specific properties of interest. These problems can be solved by discovering declarative models. Using a declarative model, the discovered process behaviour is described as a (compact) set of rules. Moreover, the discovery of such models can easily be guided in terms of rule templates. This paper uses DECLARE, a declarative language that provides more flexibility than conventional procedural notations such as BPMN, Petri nets, UML ADs, EPCs and BPEL. We present an approach to automatically discover DECLARE models. This has been implemented in the process mining tool ProM. Our approach and toolset have been applied to a case study provided by the company Thales in the domain of maritime safety and security. © 2011 IEEE.','',2,'Maggi F.M., Mooij A.J., Van Der Aalst W.M.P.','scopus/bpmn security.csv','scopus',''),(1148,'Smart Work Industry Best Practices for Business and IT','2012','0','','Abstract Enterprises must respond faster to changing customer expectations and business demands. The major observation is today that we cannot just work harder, and that we cannot just dedicate more resources; thus we must work smarter. Therefore the major question to be answered is: How do businesses evolve to adapt and respond dynamically? We will explain by industry examples how today’s technology approaches enable smarter solutions. These solutions are better adapted to business needs, and they are faster implemented.','',1,'Hans-Peter HoidnPeter Utzinger','springer/service oriented architecture security.csv','springer','\0'),(1149,'A Trial User, Resources and Services Quality Evaluation for Grid Communities Sustainability','2015','0','','Abstract We discuss here the possibility of utilizing the innovative features of GriF (a Grid Framework allowing the guided management, monitoring and results recollection of computational simulations under the form of advanced Grid Services) to the end of empowering the Chemistry, Molecular and Materials Sciences and Technologies communities with a set of quality evaluation functions. For this purpose, the enhanced options offered by GriF in terms of Quality Evaluation have been tested on the trial Virtual Research Environment of the COMPCHEM Virtual Organization for ranking resources, users and services. The results obtained are analysed with the purpose of addressing the Sustainability problems of Virtual Research Communities.','',1,'Carlo ManualiAntonio Laganà','springer/service oriented architecture security.csv','springer',''),(1150,'Based on the agency web service security architecture','2012','','Agent; Service oriented architecture; Web services','Pick the paper describes the service oriented architecture of background, and analyzes the Web services based on service oriented architectures of the application system of safety defects existing. Combined with agent technology and Web service technology, puts forward the respective advantage based on the agency Web service security architecture, and designs the client and the server proxy security processing module, expounds how to handle each module, to realize a SOAP message level security function, news and improve the performance of the system processing news. © The Authors.','',1,'Zhang D., Li X., Zhang S.','scopus/service oriented architecture security.csv','scopus','\0'),(1151,'Levi – A Workflow Engine Using BPMN 2.0','2013','1',' Business process business process management engines business process modeling BPMN 2.0 business process execution workflow engine business-IT gap','Abstract Increasing benefits of business process automation and information technology (IT) based governance encourage organizations to model and manage their day to day business activities using business process management systems, in order to achieve increased efficiency and productivity. Many business process languages, such as Business Process Execution Language (BPEL), use a programming oriented view in process modeling as opposed to human oriented view. Recent standardization of Business Process Model and Notation version 2.0 (BPMN 2.0) provides a way to support inter-operation of business processes at user level, rather than at the software engine level. Wide adoption of the BPMN 2.0 standard is limited by the lack of runtimes natively supporting BPMN 2.0. In this paper we discuss about Levi, a cloud-ready BPMN 2.0 execution engine built using the core concurrent runtime of Apache based open source process engine ODE (Orchestration Director Engine), which executes BPMN 2.0 processes natively.','',2,'Keheliya GallabaUmashanthi PavalanathanIshan JayawardenaEranda SooriyabandaraVishaka Nanayakkara','springer/bpel security.csv','springer','\0'),(1152,'Proposal and development of the Web services input validation model','2012','1','SOA;Web service;input validation;security','The SOA architecture primarily based on Web services is experiencing a steady adoption, although its growth was lower than expected when it was launched, mainly because of security related concerns. Web services inherited many well-known security problems of Web applications and brought new ones. Major data breaches today are consequences of bad input validation at the application level. This paper presents a way to implement an input validation model for Web services which can be used to prevent cross-site scripting and SQL injection through the use of predefined models which specify valid inputs. The proposed WSIVM (Web Services Input Validation Model) consists of an XML schema, an XML specification, and a module for performing input validation according to the schema. A case study showing the effectiveness and performance of this mechanism is also presented.','2012 IEEE Network Operations and Management Symposium',1,'R. B. Brinhosa; C. M. Westphall; C. B. Westphall','ieee/service oriented architecture security.csv','ieee','\0'),(1153,'Rule-Based Security Capabilities Matching for Web Services','2013','2',' Web service Semantic security Subsumption reasoning Security ontology','Abstract A primary problem for security aware Web service discovery is how to discover security capabilities of Web services and how these security capabilities can be matched with security requirements of various requesters. Presently, most approaches are based on syntactic matching, which is prone to result in false negative because of lacking of semantics. In this paper, we propose a rule-based approach to decide whether security capabilities match security requirements. Based on a semantic model of security policy, security capabilities are inferred from security policy of Web services. General Web service security ontology is proposed to semantically model security requirements of various service requesters. The architecture of rule-based matching engine is also presented to describe the whole matching process. The prototype system and case study show that the proposed approach is flexible and feasible.','Wireless Personal Communications',1,'Bo YuLin YangYongjun WangBofeng ZhangYuan CaoLinru MaXiangyang Luo','springer/service oriented architecture security.csv','springer','\0'),(1154,'Towards the derivation of secure business process designs','2015','','BPMN; Business process modelling; Business process security; Goal-to-process transformation; Process derivation; Secure tropos','Security is a critical aspect of business processes that organisations utilise to achieve their goals. Current works on secure business process design mainly focus on annotating existing process models with security related concepts. Meanwhile, little attention is given to the rationale and the alignment of such security choices to high-level organisational security goals. To that end, a goal-to-process transformation approach, with a clear security orientation, is introduced, as part of a wider framework. This transformation process, presented through an illustrative example, uses Secure Tropos goal models as an input to create intermediate, security-annotated process skeletons. These can be then refined, through a series of manual tasks, to create secure BPMN process models. © Springer International Publishing Switzerland 2015.','',2,'Argyropoulos N., Mouratidis H., Fish A.','scopus/bpmn security.csv','scopus','\0'),(1155,'Designing Cooperative Social Applications in Healthcare by Means of SocialBPM','2014','0',' Web 2.0 Social technologies BPMN Social BPM Health social networks','Abstract The appearance of the so-called first-generation of social tools such as blogs, wikis or CMS made possible for the Web to be used as an interaction arena for healthcare purposes. Currently, this interaction has been improved by means of different social networks such as PatientsLikeMe, HealthVault or Inspire, just to cite a few. The business world, not to be left behind, is rapidly catching up with this change in interpersonal communications, allowing third parties (clients, patients, colleagues, providers, etc) to participate in the process execution by performing social operations such as voting, commenting, ranking, sharing, following, inviting, etc. However, this integration is being done in an ad-hoc manner, not existing understandable notations to include social interactions in Business Process Modelling (BPM). Moreover, the user has to face several social applications to perform simple social tasks, i.e., scheduling a meeting and sharing a diagnostic must be done through different applications. While the former problem affects the design phase, the latter affects the execution phase. In this paper we present a case study in order to illustrate how the use of SocialBPM solves these problems, where SocialBPM denotes to the combination of social technologies and BPM. SocialBPM eases both, the cooperative design of social processes, and their cooperative execution.','',2,'Fernando Sánchez-FigueroaJuan Carlos PreciadoJosé María ConejeroRoberto Rodríguez-Echeverría','springer/bpmn security.csv','springer',''),(1156,'An agent based business aware incident detection system for cloud environments','2012','12',' Cloud security Cloud audit Agents','Abstract Abstract Classic intrusion detection mechanisms are not flexible enough to cope with cloud specific characteristics such as frequent infrastructure changes. This makes them unable to address new cloud specific security issues. In this paper we introduce the cloud incident detection system Security Audit as a Service (SAaaS). It is built upon intelligent autonomous agents, which are aware of underlying business driven intercommunication of cloud services. This enables the presented SAaaS architecture to be flexible and to supported cross customer event monitoring within a cloud infrastructure. A contribution of this paper it to provide a high-level design of the SAaaS architecture, an introduction into the proposed Security Business Flow Language (SBFL), a first prototype of an autonomous agent and an evaluation about, which cloud specific security problems are addressed by the presented architecture. It is shown that autonomous agents and behaviour analysis are fertile approaches to detect cloud specific security problems and can create a cloud audit system.','Journal of Cloud Computing: Advances, Systems and Applications',1,'Frank DoelitzscherChristoph ReichMartin KnahlAlexander PassfallNathan Clarke','springer/webservice security.csv','springer',''),(1157,'A design of web log integration framework using NoSQL','2014','','Big Data; Cloud computing; HBase; NoSQL; Security Log aggregation','Webservice is a software technology as the representative method of information communication currently used to create a dynamic system environment that is configured to fulfill its users\' needs. Therefore, analyzing log data that occurred at provision is being used as the significant basic data in webservice research. Thanks to development of Cloud computing technology, it has resulted in centralized points from which data is generated and data enlargement. A research is now implemented to create information from collecting, processing and converting flood of data and to obtain the new various items of information. Against this backdrop, it is justified that collection, storage and analysis of web log data in the existing conventional RDBMS system may be inadequate to process the enlarged log data. This research propose a framework which to integrate web log for storage using HBase, a repository of the Cloud computing- based NoSQL. In addition, data validation must be completed in the pre-process when collecting web log. The validated log is stored in the modeling structure in which takes features of web log into account. According to the results, introduction of NoSQL system is found to integrate the enlargement of log data in more efficient manner. By comparisons with the existing RDBMS in terms of data processing performance, it was proved that the NoSQL- based database had a superior performance. © 2014 IFIP International Federation for Information Processing.','',1,'Jeong H., Choi J., Choi C., You I., Kim P.','scopus/webservice security.csv','scopus','\0'),(1158,'Pseudo-Location Updating System for privacy-preserving location-based services','2013','1','LBS;k-anonymity;privacy;pseudo-location','With the rapid development of location-aware devices such as smart phones, Location-Based Services (LBSs) are becoming increasingly popular. Users can enjoy convenience by sending queries to LBS servers and obtaining service information that is nearby. However, these queries may leak the users\' locations and interests to the un-trusted LBS servers, leading to serious privacy concerns. In this paper, we propose a Privacy-Preserving Pseudo-Location Updating System (3PLUS) to achieve k-anonymity for mobile users using LBSs. In 3PLUS, without relying on a third party, each user keeps pseudo-locations obtained from both the history locations and the encountered users, and randomly exchanges one of them with others when encounters occur. As a result, each user\'s buffer is disordered. A user can obtain any k locations from the buffer to achieve k-anonymity locally. The security analysis shows the security properties and our evaluation results indicate that the user\'s privacy is significantly improved.','China Communications',1,'B. Niu; X. Zhu; H. Chi; H. Li','ieee/service oriented architecture security.csv','ieee','\0'),(1159,'BackStreamDB: A Distributed System for Backbone Traffic Monitoring Providing Arbitrary Measurements in Real-Time','2012','0','','Abstract Monitoring the traffic of wide area networks consisting of several autonomous systems connected through a high-speed backbone is a challenge due to the huge amount of traffic. Keeping logs for obtaining measurements is unfeasible. This work describes a distributed real-time strategy for backbone traffic monitoring that does not employ logs and allows arbitrary metrics to be collected about the traffic of the backbone as a whole. Traffic is sampled by monitors that are distributed across the backbone and are accessed by a Stream Processing Engine (SPE). Besides the distributed monitoring architecture, we present an implementation (BackStreamDB) that was deployed on a national backbone. Case studies are described that show the system flexibility. Experiments are reported in which we evaluated the amount of traffic that can be handled.','',1,'Christian LyraCarmem S. HaraElias P. Duarte Jr.','springer/service oriented architecture security.csv','springer','\0'),(1160,'An overview of modeling and simulation using content analysis','2015','1',' Modeling and Simulation (M&S) Content analysis Simulation research Association for Computing Machinery (ACM) Mathematics Subject Classification 00B99 JEL Classification C8','Abstract Over the past six decades, Modeling and Simulation (M&S) has been used as a method or tool in many disciplines. While there is no doubt that the emergence of modern M&S is highly connected with that of Computing and Systems science, there is no clear evidence of the contribution of M&S to those disciplines. Further, while there is a growing body of knowledge (BoK) in M&S, there is no easy way to identify it due to the multidisciplinary nature of M&S. In this paper, we examine whether M&S is its own discipline by performing content analysis of a BoK in Computer Science. Content analysis is a research methodology that aims to identify key concepts and relationships in a body of text through computational means. It can be applied to research articles in a BoK to identify the prominent topics and themes. It can also be used to explore the evolution of a BoK over time or to identify the contribution of one BoK to another. The contribution of this paper is twofold; (1) the establishment of M&S as its own discipline and the examination of its relationship with the sister disciplines of Computer Science and Systems Engineering over the last 60 years and (2) the examination of the contribution of M&S to the sciences as represented in the Public Library of Science.','Scientometrics',1,'Saikou Y. DialloRoss J. GoreJose J. PadillaChristopher J. Lynch','springer/soa security.csv','springer',''),(1161,'Weaving Aspects and Business Processes through Model Transformation','2014','1',' aspects business process modeling weaving model transformation','Abstract Concerns such as logging, auditing and accounting need to be addressed already in the business process modeling phase and not only in the process implementation phase. Mostly, such concerns are modeled as part of the normal flow in business process models. However, the crosscutting nature of such concerns leads to complex, scattered, and tangled models that are hard to understand and to manage. The lack of appropriate means to modularize crosscutting concerns in business process modeling languages seriously affects understandability, maintainability and reusability. In a previous work we proposed AO4BPMN 1.0 as an aspect-oriented extension of BPMN that allows the modularization of crosscutting concerns. However, there were several open issues in that proposal. First, it lacks a concrete weaving mechanism for composing business processes and aspects. Second, it lacks a well-defined pointcut language to select join points. Third, it does not support BPMN 2.0, which was still under development at that time. In this paper we tackle these issues and present a weaver for AO4BPMN based on model transformation as well as an OCL-based pointcut language.','',2,'Heiko WitteborgAnis CharfiDaniel Colomer CollellMira Mezini','springer/bpel security.csv','springer',''),(1162,'Hypervisor Event Logs as a Source of Consistent Virtual Machine Evidence for Forensic Cloud Investigations','2013','4','','Abstract Cloud Computing is an emerging model of computing where users can leverage the computing infrastructure as a service stack or commodity. The security and privacy concerns of this infrastructure arising from the large co-location of tenants are, however, significant and pose considerable challenges in its widespread deployment. The current work addresses one aspect of the security problem by facilitating forensic investigations to determine if these virtual tenant spaces were maliciously violated by other tenants. It presents the design, application and limitations of a software prototype called the Virtual Machine (VM) Log Auditor that helps in detecting inconsistencies within the activity timelines for a VM history. A discussion on modeling a consistent approach is also provided.','',1,'Sean ThorpeIndrajit RayTyrone GrandisonAbbie BarbirRobert France','springer/service oriented architecture security.csv','springer','\0'),(1163,'The role of agents in Adaptive Service Oriented Architectures','2012','','','This work analyses the role of agent-based software and organisation theoretical solutions in the development of Adaptive Service Oriented Architectures. This solution aims to support integrated, scalable, and re-usable information delivery systems. This technology is required in applications that operate in complex service delivery environments, such as Electronic Government (eGov) systems, emergency response coordinators, social networks, and mobile services. In these scenarios, the intricacy of service orchestration strategies grows proportionally with the number of operational components, complexity of interactions, and degree of dynamism of the environment. We argue that strategies based on fixed workflows are insufficient to support complex content delivery services. To that end, we propose a solution that encompasses an organisation-based system architecture enacted by agent-based software components. It inherently provides the features of contextualisation, adaptiveness, flexible workflow mechanism, and proactiveness based on desirable characteristics of the agent technology. We introduce a conceptual model, detail the technical proposal, and demonstrate how the solution supports the demands of complex content delivery services. © Springer-Verlag Berlin Heidelberg 2012.','',1,'Koch F., Dignum F., Hiel M., Aldewereld H.','scopus/service oriented architecture security.csv','scopus','\0'),(1164,'Model-Based Testing in Cloud Brokerage Scenarios','2014','1',' Model-based Testing Cloud Service Brokerage Cloud Broker Web Service Testing Lifecycle Governance','Abstract In future Cloud ecosystems, brokers will mediate between service providers and consumers, playing an increased role in quality assurance, checking services for functional compliance to agreed standards, among other aspects. To date, most Software-as-a-Service (SaaS) testing has been performed manually, requiring duplicated effort at the development, certification and deployment stages of the service lifecycle. This paper presents a strategy for achieving automated testing for certification and re-certification of SaaS applications, based on the adoption of simple state-based and functional specifications. High-level test suites are generated from specifications, by algorithms that provide the necessary and sufficient coverage. The high-level tests must be grounded for each implementation technology, whether SOAP, REST or rich-client. Two examples of grounding are presented, one into SOAP for a traditional web service and the other into Selenium for a SAP HANA rich-client application. The results demonstrate good test coverage. Further work is required to fully automate the grounding.','',2,'Mariam KiranAndreas FriesenAnthony J. H. SimonsWolfgang K. R. Schwach','springer/bpel security.csv','springer',''),(1165,'Future research directions in design of reliable communication systems','2015','0',' Network reliability Software failures Software-defined networks resiliency Wireless communications reliability Multilayer networks Multilevel and multirealm network resilience Multiple-criteria routing Reliable cloud computing Robust network design','Abstract In this position paper on reliable networks, we discuss new trends in the design of reliable communication systems. We focus on a wide range of research directions including protection against software failures as well as failures of communication systems equipment. In particular, we outline future research trends in software failure mitigation, reliability of wireless communications, robust optimization and network design, multilevel and multirealm network resilience, multiple criteria routing approaches in multilayer networks, resilience options of the fixed IP backbone network in the interplay with the optical layer survivability, reliability of cloud computing networks, and resiliency of software-defined networks. Described research directions are frequently enhanced with examples.','Telecommunication Systems',1,'Jacek RakMario PickavetKishor S. TrivediJavier Alonso LopezArie M. C. A. KosterJames P. G. SterbenzEgemen K. ÇetinkayaTeresa GomesMatthias GunkelKrzysztof WalkowiakDimitri Staessens','springer/service oriented architecture security.csv','springer',''),(1166,'The importance of a standard securit y archit ecture for SOA-based iot middleware','2015','','Authentication; Communication channels; Computer architecture; Service-oriented architecture; Standards','The proliferation of the Internet of Things (IoT) in several application domains requires a well-defined infrastructure of systems that provides services for device abstraction and data management, and also supports the development of applications. Middleware for IoT has been recognized as the system that can provide this necessary infrastructure of services and has become increasingly important for IoT in recent years. The architecture of an IoT middleware is usually based on an SOA (service-oriented architecture) standard and has security requirement as one of its main challenges. The large amount of data that flows in this kind of system demands a security architecture that ensures the protection of the entire system. However, none of the existing SOAbased IoT middleware systems have defined a security standard that can be used as a reference architecture. In this sense, this article discusses the importance of defining a standard security architecture for SOA-based IoT middleware, analyzes concepts and existing work, and makes considerations about a set of security services that can be used to define a security architecture to mitigate the security threats in SOA-based IoT middleware systems. © 1979-2012 IEEE.','',1,'Tiburski R.T., Amaral L.A., Matos E.D., Hessel F.','scopus/service oriented architecture security.csv','scopus',''),(1167,'Spam Filtering Using Automated Classifying Services over a Cloud Computing Infrastructure','2015','0',' Spam analysis Cloud computing Bayesian filtering','Abstract Together with the increase in size of Internet technologies and coped with the need for instant communication between people, unsolicited messages or spam messages represent a serious problem for most system administrators and users. This problem permits the usage of various technologies and techniques in order to solve it and filter volumes of thousands of email messages per day. In this article we present a new solution for spam detection and classification, based on a Cloud supported infrastructure of a service oriented architecture. Our implementation is able to scan and classify a large stream of emails. We also prove that the architecture is scalable across multiple datacenter nodes and it is able to handle a continuous flux of emails, keeping users configuration a top priority.','',1,'Alecsandru PătraşcuIon BicaVictor Valeriu Patriciu','springer/service oriented architecture security.csv','springer',''),(1168,'Towards a Model- and Learning-Based Framework for Security Anomaly Detection','2013','0',' Modelling Profiling Machine Learning IT-Security Runtime-Monitoring Anomaly Detection Clustering','Abstract For critical areas, such as the health-care domain, it is common to formalize workflow, traffic-flow and access control via models. Typically security monitoring is used to firstly determine if the system corresponds to the specifications in these models and secondly to deal with threats, e.g. by detecting intrusions, via monitoring rules. The challenge of security monitoring stems mainly from two aspects. First, information in form of models needs to be integrated in the analysis part, e.g. rule creation, visualization, such that the plethora of monitored events are analyzed and represented in a meaningful manner. Second, new intrusion types are basically invisible to established monitoring techniques such as signature-based methods and supervised learning algorithms. In this paper, we present a pluggable monitoring framework that focuses on the above two issues by linking event information and modelling specification to perform compliance detection and anomaly detection. As input the framework leverages models that define workflows, event information, as well as the underlying network infrastructure. Assuming that new intrusions manifest in anomalous behaviour which cannot be foreseen, we make use of a popular unsupervised machine-learning technique called clustering.','',2,'Matthias GanderBasel KattMichael FeldererRuth Breu','springer/bpel security.csv','springer','\0'),(1169,'3rd Workshop on Smart Surveillance System Applications','2012','0','','','',1,'Iosif Viorel Onut','acm/service oriented architecture security.csv','acm','\0'),(1170,'The Safety-Critical Java memory model formalised','2013','1',' Safety-Critical Java Memory safety Semantics Unifying theories of programming Integration Refinement','Abstract Safety-Critical Java (SCJ) is a version of Java for real-time programming, restricted to facilitate certification of implementations of safety-critical systems. Its development is the result of an international effort involving experts from industry and academia. What we provide here is, as far as we know, the first formalisation of the SCJ model of memory regions. We use Hoare and He’s unifying theories of programming (UTP), enabling the integration of our theory with refinement models for object orientation and concurrency. In developing the SCJ theory, we also make a contribution to UTP by providing a general theory of invariants (an instance of which is used in the SCJ theory). The results presented here are a first essential ingredient to formalise the novel programming paradigm embedded in SCJ, and enable the justification and development of formal reasoning techniques based on refinement.','Formal Aspects of Computing',2,'Ana CavalcantiAndy WellingsJim Woodcock','springer/bpel security.csv','springer','\0'),(1171,'TOSSMA: A Tenant-Oriented SaaS Security Management Architecture','2012','9','Cloud computing;SaaS application security;cloud computing security;multi-tenancy security','Multi-tenancy helps service providers to save costs, improve resource utilization, and reduce service customization and maintenance time by sharing of resources and services. On the other hand, supporting multi-tenancy adds more complexity to the shared application\'s required capabilities. Security is a key requirement that must be addressed when engineering new SaaS applications or when re-engineering existing applications to support multi-tenancy. Traditional security (re)engineering approaches do not fit with the multi-tenancy application model where tenants and their security requirements emerge after the system was first developed. Enabling, runtime, adaptable and tenant-oriented application security customization on single service instance is a key challenging security goal in multi-tenant application engineering. In this paper we introduce TOSSMA, a Tenant-Oriented SaaS Security Management Architecture. TOSSMA allows service providers to enable their tenants in defining, customizing and enforcing their security requirements without having to go back to application developers for maintenance or security customizations. TOSSMA supports security management for both new and existing systems. Service providers are not required to write security integration code to use a specific security platform or mechanism. In this paper, we describe details of our approach and architecture, our prototype implementation of TOSSMA, give a usage example of securing a multi-tenant SaaS, and discuss our evaluation experiments of TOSSMA.','Cloud Computing (CLOUD), 2012 IEEE 5th International Conference on',1,'M. Almorsy; J. Grundy; A. S. Ibrahim','ieee/service oriented architecture security.csv','ieee','\0'),(1172,'A Combined Safety-Hazards and Security-Threat Analysis Method for Automotive Systems','2015','0',' ISO 26262 HARA STRIDE Automotive systems Safety/Security co-engineering','Abstract Safety and Security appear to be two contradicting overall system features. Traditionally, these two features have been treated separately, but due to increasing awareness of mutual impacts, cross domain knowledge becomes more important. Due to the increasing interlacing of automotive systems with networks (such as Car2X), it is no longer acceptable to assume that safety-critical systems are immune to security risks and vice versa. This paper presents the application and method description of a novel approach for combined safety hazard and security threat analysis. In this paper we present a detailed description of the SAHARA method and an application of this method for an automotive system. We analyze the impact of this novel method and highlight the impacts of security threats on safety targets of the system. The paper describes the experiences gained at application of the method and how safety-critical contribution of successful security attacks can be quantified.','',1,'Georg MacherAndrea HöllerHarald SporerEric ArmengaudChristian Kreiner','springer/service oriented architecture security.csv','springer',''),(1173,'Challenges and Modifications for Creating a MoSGrid Science Gateway for US and European Infrastructures','2015','1','data management;international infrastructures;science gateway;security;workflows','The established German MoSGrid science gateway serves the computational chemistry community in the areas of quantum chemistry, molecular dynamics and docking with intuitive user interfaces for jobs, workflows and data as well as metadata management. It is designed independent of the underlying infrastructure and developed on top of gUSE/WS-PGRADE, which is capable of connecting to diverse grid, cloud and batch infrastructures. However, quite a few of its user-friendly features and pre-configured workflows are dependent on the service-oriented grid middleware UNICORE and on installed computational chemistry tools on the target resources. Furthermore, the security mechanisms rely on SAML assertions to provide single sign-on to the different available resources. This paper gives an overview on the challenges and modifications, which have been necessary to provide an international MoSGrid science gateway exploiting XSEDE and PRACE infrastructures. This work was part of the XSEDE-PRACE interoperability project, which selected three use cases out of US- and European-wide applications.','Science Gateways (IWSG), 2015 7th International Workshop on',1,'S. Gesing; J. Krüger; R. Grunzke; S. Herres-Pawlis; A. Hoffmann','ieee/service oriented architecture security.csv','ieee',''),(1174,'A Service Oriented Life Cycle Model for Educational Information System','2012','0','locator, service oriented architecture, web service','The Service Oriented model is developed and adopted by different organizations. The services are open and can be developed and consumed independently. The service life cycle needs to be consumed and updated dynamically in order to maintain the availability and the appropriateness of the services. The Second section of this paper describes the fundamentals of the SOA and the requirements of the security parameters with the same. The third section deals with the service life cycle model related to Educational Information System. The fourth section elaborates the functions of secured service lifecycle information model. The fifth section summarizes the results and the findings of the design and implementation. The conclusion indicates the main advantages of this model.','',1,'R. Kamatchi','acm/service oriented architecture security.csv','acm','\0'),(1175,'Analysis of Communication Models in Web Service Compositions','2006','20','BPEL, asynchronous communications, formal verification, web service composition','Proceedings of the 15th International Conference on World Wide Web','',2,'Raman Kazhamiakin and Marco Pistore and Luca Santuari','acm/bpel security.csv','acm',''),(1176,'Composing domain-specific physical models with general-purpose software modules in embedded control software','2014','0',' Domain specific languages Embedded systems Software composition Composition filters Aspect-oriented programming','Abstract A considerable portion of software systems today are adopted in the embedded control domain. Embedded control software deals with controlling a physical system, and as such models of physical characteristics become part of the embedded control software. In current practices, usually general-purpose languages (GPL), such as C/C++ are used for embedded systems development. Although a GPL is suitable for expressing general-purpose computation, it falls short in expressing the models of physical characteristics as desired. This reduces not only the readability of the code but also hampers reuse due to the lack of dedicated abstractions and composition operators. Moreover, domain-specific static and dynamic checks may not be applied effectively. There exist domain-specific modeling languages (DSML) and tools to specify models of physical characteristics. Although they are commonly used for simulation and documentation of physical systems, they are often not used to implement embedded control software. This is due to the fact that these DSMLs are not suitable to express the general-purpose computation and they cannot be easily composed with other software modules that are implemented in GPL. This paper presents a novel approach to combine a DSML to model physical characteristics and a GPL to implement general-purpose computation. The composition filters model is used to compose models specified in the DSML with modules specified in the GPL at the abstraction level of both languages. As such, this approach combines the benefits of using a DSML to model physical characteristics with the freedom of a GPL to implement general-purpose computation. The approach is illustrated using two industrial case studies from the printing systems domain.','Software & Systems Modeling',2,'Arjan de RooHasan SözerMehmet Akşit','springer/bpel security.csv','springer',''),(1177,'Analysis on countering XML-based attacks in web services','2013','6','Cloud computing; Service oriented architecture; SOAP; Web services security; XML security','Cloud Computing is found to be today\'s most commonly used Service Oriented Architecture (SOA) implementation. Cloud utilizes XML-based technologies like Web Services for accessing and controlling the cloud, these are of particular importance for the security assessment of cloud systems. XML usage in Web Service introduces various vulnerabilities which affects basic security factors such as Confidentiality, Integrity and Availability. Various frameworks aiming at countering the XML based attacks were designed and developed.The Analysis of the frameworks available for countering the XML-based attacks simulated in the SOAP messages is presented benefiting the future researchers and also provides insight of various attack simulations and the countermeasures respectively. The parameters responsible for evaluating the strength of the frameworks were also specified and discussed as part of this work. © 2013 Praise Worthy Prize S.r.l. - All rights reserved.','',1,'Priyadharshini M., Baskaran R., Balaji N., Saleem Basha M.S.','scopus/service oriented architecture security.csv','scopus','\0'),(1178,'Using Improved FOAF to Enhance BPEL-extracted RBAC Capability','2007','0','','Proceedings of the IEEE/WIC/ACM International Conference on Web Intelligence','',2,'Wei Shi and Jian Wu and Ying Li and Zhaohui Wu and Bo Wang','acm/bpel security.csv','acm','\0'),(1179,'Definition and Enactment of Instance-Spanning Process Constraints','2012','1',' Instance-spanning Process Constraints Process-based Compliance Management Process Engine Web-based Business Processes','Abstract Currently, many approaches address the enforcement and monitoring of constraints over business processes. However, main focus has been put on constraint verification for intra-instance process constraints so far, i.e., constraints that affect single instances. Existing approaches addressing instance-spanning constraints only consider certain scenarios. In other words, a holistic approach considering intra-instance, inter-instance, and inter-process constraints is still missing. This paper aims at closing this gap. First of all, we show how the Identification and Unification of Process Constraints (IUPC) compliance framework enables the definition of instance-spanning process constraints in a flexible and generic way. Their enactment and enforcement is demonstrated within a prototypical implementation based on a service-oriented architecture.','',1,'Maria LeitnerJuergen ManglerStefanie Rinderle-Ma','springer/service oriented architecture security.csv','springer','\0'),(1180,'From Software as a good to software as a service: Preparing the evolution of software products into the cloud','2012','3','','Summary form only given. The speed of change in Internet Technologies continues to be impressive and the current “Future Internet” based society increasingly relies on software at all levels. Nevertheless, software systems continue to suffer from aging symptoms caused by the inherent factors of the software modernization process: inevitable; unpredictable; costly; difficult; time- and resource-consuming; poorly supported by tools, techniques or formalisms; poorly understood and maintained; undervalued in traditional software development processes, etc. Furthermore, current technological and business innovations (such as Cloud Computing and Software as a Service (SaaS) concepts) are changing the way in which software is designed, developed, tested, delivered and consumed. All this means that new requirements, never seen before in software development, have to be faced (scalability, multi-tenancy support, usage monitoring, security, SLA compliance, etc.). These challenges are even greater when adapting previously developed software to this new landscape. Different approaches (reverse engineering, ADM, or service-oriented-architecture modernization) have to be analyzed depending on the source language, architecture, target market or available resources. As a result, the complete software life cycle, from requirements to runtime and delivery, has to be re-adapted to the new technological and business conditions, needs and challenges, thus increasing the need of advanced means to support software evolution and adaptation as a key value for the next-generation service-based software modernization. One particular example of complex system modernization is the exposure of legacy systems as SaaS. Model-driven techniques have been used for several years to cope with the challenge of transformation of legacy systems as SaaS. Regardless of the positive features of these techniques, for legacy systems there are many challenges such as are the availability of arc- itectural models describing the system (typically unavailable for legacy systems), the ability to transform the original system into new ones compatible with targeted infrastructures and frameworks, and the support for adaptive deployment. All these features are particular relevant when deploying legacy applications as SaaS on the Web, for instance using different Cloud offerings. Desirable solutions are those that can automate the transformation of existing legacy systems that require being transformed into modern ones exposed as services (SaaS) compatible with modern technology frameworks. This keynote will present the challenges and needs, as well as the results obtained so far in this novel architecture and business model based on the cloud.','2012 IEEE 6th International Workshop on the Maintenance and Evolution of Service-Oriented and Cloud-Based Systems (MESOCA)',1,'L. O. E. Arrieta','ieee/service oriented architecture security.csv','ieee','\0'),(1181,'Continuously tunable, narrow linewidth mm-wave generation from a monolithically integrated triple DFB laser chip','2013','0','','Summary form only given. Generation of stable and tunable mm-wave and THz signals is extremely attractive for applications including tomography, gas sensing and imaging for security systems. Currently photonic methods for generating signals at these frequencies show either very limited tunability, as in the case of passively mode-locked lasers and THz quantum cascade lasers , or poor spectral purity, evinced in the photomixing of two uncorrelated laser sources. In addition, current systems using the combination of a number of discrete optical elements require the use of bulky alignment optics increasing packaging costs and sensitivity to environmental noise sources. In this work a relatively simple arrangement of three DFB laser sources on a single chip is proposed and demonstrated, a schematic of the scheme is shown in Fig. 1(a). Two lasers DFB1 and DFB2 inject into DFB3 whose free running frequency is designed to emit between those of DFB. The result is that Four Wave Mixing (FWM) products of the pairs of lasers DFB and DFB are produced within DFB. These FWM signals then produce feedback signals that coincide in frequency with the complimentary laser source, i.e. the laser pair DFB produce a FWM product equal in frequency to DFB, thus locking their phases and stabilising the optical beating signal. Furthermore, by simply tuning the frequency spacing of DFB and DFB, ensuring that DFB tracks their centre point, the generated beating signal can be continuously tuned over a wide frequency range. This scheme was fabricated on a multi-quantum well AlGaInAsInP material system and the DFB lasers were defined using upper-cladding sidewall modulation gratings in order to generate precise spacing of the three laser wavelengths [3]. Tuning of the laser wavelengths was achieved by direct current injection variation, with integrated SOA sections ensuring the optimal injection amplitude range was maintained. Measurements of the RF signal generated by the beating signal from th- output at DFB show a linewidth reduction of an order of magnitude (to 2.5MHz) when the system is in the phase locked condition. Locking range measurements show a tolerance of ~2GHz on the position of the wavelength of DFB. Furthermore, the locked frequency can be tuned continuously from a few GHz to 40GHz (the maximum measureable frequency of our RF spectrum analyser) as shown in Fig.1 (b).','Lasers and Electro-Optics Europe (CLEO EUROPE/IQEC), 2013 Conference on and International Quantum Electronics Conference',1,'M. Zanola; M. J. Strain; M. Sorel; G. Giuliani','ieee/soa security.csv','ieee','\0'),(1182,'ISICIL: Semantics and Social Networks for Business Intelligence','2013','0',' social semantic web business intelligence social network social network analysis folksonomies semantic wiki','Abstract The ISICIL initiative (Information Semantic Integration through Communities of Intelligence onLine) mixes viral new web applications with formal semantic web representations and processes to integrate them into corporate practices for technological watch, business intelligence and scientific monitoring. The resulting open source platform proposes three functionalities: (1) a semantic social bookmarking platform monitored by semantic social network analysis tools, (2) a system for semantically enriching folksonomies and linking them to corporate terminologies and (3) semantically augmented user interfaces, activity monitoring and reporting tools for business intelligence.','',1,'Michel BuffaNicolas DelaforgeGuillaume ErétéoFabien GandonAlain GiboinFreddy Limpens','springer/service oriented architecture security.csv','springer','\0'),(1183,'Soundness of data-aware, case-centric processes','2016','0','','Abstract In recent years, a plethora of foundational results and corresponding techniques and tools has been developed to support the modeling, analysis, execution and improvement of business processes along their entire lifecycle. A major shortcoming of the analysis techniques is that they solely focus on the control-flow dimension of the process, omitting how business objects (i.e., cases) and their data affect and are manipulated by process instances and their tasks. In this work, we aim at filling this gap. We recast the classical notion of case-centric business process in a data-aware context. An emitter action is used to generate new cases, and while a case flows through the process control-flow, corresponding data are created, updated, and deleted by operating over a full-fledged relational database with constraints. To make our investigation concrete, we ground it on the recently introduced framework of data-centric dynamic systems (DCDSs). We reformulate the standard correctness criterion of soundness into this rich setting, and show that it is in general undecidable to check. We then provide a fine-grained analysis on the role of data in business processes. We substantiate this analysis by introducing a class of case-centric DCDSs that enjoys good modeling principles, and at the same time guarantees decidability of soundness. Decidability is obtained by finding a cutoff on the number of process instances that must be subject to the soundness test. We finally show that the introduced modeling guidelines are strict, in the sense that weakening even one single requirement they pose leads to undecidability.','International Journal on Software Tools for Technology Transfer',2,'Marco MontaliDiego Calvanese','springer/bpmn security.csv','springer',''),(1184,'Anonymity of web service invocations','2014','','','Service Oriented Architectures offer modularity and flexibility, while maintaining a relatively simple communication model. Security is still needed as messages can be intercepted by a potential attacker and the service interaction can be compromised. One research direction to achieve this is to hide the identity of the communication parties by assuring sender and receiver anonymity and by protecting the message content through encryption. This paper describes a solution to ensure anonymous web service access through the use of a proxy-based system. This solution protects the identity of a set of web services by mediating all web service invocation requests and imposing a set of security policies. Since the proxy manages multiple web service instances deployed on multiple devices, it also implements a set of load balancing policies, which help improve performance and prevent overloading. We tested the proposed solution and analyzed the overhead introduced by the proxy within the web service invocation process. Furthermore, we present an analysis of the overhead introduced by the additional security features. © 2014 IEEE.','',1,'Davidoaia B., Leordeanu C., Cristea V.','scopus/service oriented architecture security.csv','scopus','\0'),(1185,'An Efficient Optimization Algorithm of Autonomic Managers in Service-Based Applications','2015','0',' Cloud computing Autonomic managers Service-based applications Optimization','Abstract Cloud Computing is an emerging paradigm in Information Technologies that enables the delivery of infrastructure, software and platform resources as services. It is an environment with automatic service provisioning and management. In these last years autonomic management of Cloud services is receiving an increasing attention. Meanwhile, optimization of autonomic managers remains not well explored. In fact, almost all the existing solutions on autonomic computing have been interested in modeling and implementing of autonomic environments without paying attention on optimization. In this paper, we propose a new efficient algorithm to optimize autonomic managers for the management of service-based applications. Our algorithm allows to determine the minimum number of autonomic managers and to assign them to services that compose managed service-based applications. The realized experiments proves that our approach is efficient and adapted to service-based applications that can be not only described as architecture-based but also as behavior-based compositions of services.','',2,'Leila HaddedFaouzi Ben CharradaSamir Tata','springer/bpel security.csv','springer',''),(1186,'Requirements model driven adaption and evolution of Internetware','2014','0',' requirements information system Internetware adaptation evolution','Abstract Today’s software systems need to support complex business operations and processes. The development of the web-based software systems has been pushing up the limits of traditional software engineering methodologies and technologies as they are required to be used and updated almost real-time, so that users can interact and share the same applications over the internet as needed. These applications have to adapt quickly to the diversified and dynamic changing requirements in the physical, technological, economical and social environments. As a consequence, we are expecting a major paradigm shift in software engineering to reflect such changes in computing environment in order to better address the fundamental needs of organisations in this new era. Existing software technologies, such as model driven development, business process engineering, online (re-)configuration, composition and adaptation of managerial functionalities are being repurposed to reduce the time taken for software development by reusing software codes. The ability to dynamically combine contents from numerous web sites and local resources, and the ability to instantly publish services worldwide have opened up entirely new possibilities for software development. In retrospect to the ten years applied research on Internetware, we have witnessed such a paradigm shift, which brings about many changes to the developmental experience of conventional web applications. Several related technologies, such as cloud computing, service computing, cyber-physical systems and social computing, have converged to address this emerging issue with emphasis on different aspects. In this paper, we first outline the requirements that the Internetware software paradigm should meet to excel at web application adaptation; we then propose a requirement model driven method for adaptive and evolutionary applications; and we report our experiences and case studies of applying it to an enterprise information system. Our goal is to provide high-level guidelines to researchers and practitioners to meet the challenges of building adaptive industrial-strength applications with the spectrum of processes, techniques and facilities provided within the Internetware paradigm.','Science China Information Sciences',1,'Lin LiuChen YangJianMin WangXiaoJun YeYingBo LiuHongJi YangXiaoDong Liu','springer/soa security.csv','springer','\0'),(1187,'Research directions in web systems evolution V: Architecture','2013','0','Web;architecture;evolution;research;systems','The architecture of a Web system affects many of its quality attributes, such as testability, security, and accessibility. The architecture itself is influenced by factors such as system requirements, infrastructure constraints, and interoperability needs. This session is the fifth in a series of special events held at WSE focused on selected aspects of research directions in Web systems evolution, and the first focused on issues related to the role of architecture.','2013 15th IEEE International Symposium on Web Systems Evolution (WSE)',1,'S. Tilley','ieee/service oriented architecture security.csv','ieee','\0'),(1188,'A measurement study of DNSSEC misconfigurations','2015','0',' DNS DNSSEC Domain Name System Authentication Integrity Misconfiguration Validation Signatures Error Unreachability','Abstract DNSSEC offers protection against spoofing of DNS data by providing origin authentication, ensuring data integrity and authentication of non-existence by using public-key cryptography. Although the relevance of securing a technology as crucial to the Internet as DNS is obvious, the DNSSEC implementation increases the complexity of the deployed DNS infrastructure, which may result in misconfiguration. In this article, we measure and analyze the misconfigurations for domains in six zones (.bg, .br, .co, .com, .nl and .se). Furthermore, we categorize these misconfigurations and provide an explanation for their possible causes. Finally, we evaluate the effects of misconfigurations on the reachability of a zone’s network. Our results show that, although progress has been made in the implementation of DNSSEC, over 4 % of evaluated domains show misconfigurations. The domains with the most frequently appearing misconfiguration are often hosted at a very limited set of hosting providers. Of these misconfigured domains, almost 75 % were unreachable from a DNSSEC-aware resolver. This illustrates that although the authorities of a domain may think their DNS is secured, it is in fact not. Worse still, misconfigured domains are at risk of being unreachable from the clients who care about and implement DNSSEC verification, while the publisher may remain unaware of the error and its consequences.','Security Informatics',1,'Niels L. M. van AdrichemNorbert BlennAntonio Reyes LúaXin WangMuhammad WasifFicky FatturrahmanFernando A. Kuipers','springer/soa security.csv','springer',''),(1189,'G-Route: an energy-aware service routing protocol for green cloud computing','2015','1',' Green cloud computing Enegry-efficiency Service routing Service selection','Abstract In this paper, we present the design and implementation of Green Route (G-Route), an autonomic service routing protocol for constructing energy-efficient provider paths in collaborative cloud architectures. The chief contribution of this work resides in autonomously selecting the optimal set of composite service components sustaining the most efficient energy consumption characteristics among a set of providers for executing a particular service request. For ensuring the accountability of the system, the routing decision engine is designed to operate by processing accountable energy measurements extracted securely from within the cloud data centers using trusted computing technologies and cryptographic mechanisms. By pushing green computing constraints into the service routing decision engine, we can leverage the collaborative cloud computing model to maximize the energy savings achieved. This is realized by focusing on a path of providers that execute the service requests instead of directing the green computing efforts towards a single provider site. To the best of our knowledge, G-Route is the first service routing protocol that utilizes the collaborative properties among cloud providers to select “green” service routes and thus, to enhance the energy savings in the overall cloud computing infrastructure . The devised G-Route design is developed and deployed in a real cloud computing environment using the Amazon EC2 cloud platform. The experimental results obtained analyze the protocol convergence characteristics, traffic overhead, and resilience under anomalous service configurations and conditions and demonstrate the capability of the proposed system to significantly reduce the overall energy requirements of collaborative cloud services.','Cluster Computing',1,'Wassim ItaniCesar GhaliAyman KayssiAli ChehabImad Elhajj','springer/soa security.csv','springer',''),(1190,'Transformation challenges: from software models to performance models','2014','3',' Software performance Performance analysis Model transformation UML MARTE profile Layered queueing networks','Abstract A software model can be analysed for non-functional requirements by extending it with suitable annotations and transforming it into analysis models for the corresponding non-functional properties. For quantitative performance evaluation, suitable annotations are standardized in the “UML Profile for Modeling and Analysis of Real-Time Embedded systems” (MARTE) and its predecessor, the “UML Profile for Schedulability, Performance and Time”. A range of different performance model types (such as queueing networks, Petri nets, stochastic process algebra) may be used for analysis. In this work, an intermediate “Core Scenario Model” (CSM) is used in the transformation from the source software model to the target performance model. CSM focuses on how the system behaviour uses the system resources. The semantic gap between the software model and the performance model must be bridged by (1) information supplied in the performance annotations, (2) in interpretation of the global behaviour expressed in the CSM and (3) in the process of constructing the performance model. Flexibility is required for specifying sets of alternative cases, for choosing where this bridging information is supplied, and for overriding values. It is also essential to be able to trace the source of values used in a particular performance estimate. The performance model in turn can be used to verify responsiveness and scalability of a software system, to discover architectural limitations at an early stage of development, and to develop efficient performance tests. This paper describes how the semantic gap between software models in UML+MARTE and performance models (based on queueing or Petri nets) can be bridged using transformations based on CSMs, and how the transformation challenges are addressed.','Software & Systems Modeling',1,'Murray WoodsideDorina C. PetriuJosé MerseguerDorin B. PetriuMohammad Alhaj','springer/service oriented architecture security.csv','springer','\0'),(1191,'Temporal aspects in crisis management and its implications on interface design for situation awareness','2012','4',' Temporality Situation awareness Crisis management Disaster management','Abstract Temporality should be considered in the design of information technology support for crisis management (CM), both because crises are dynamic events and because time is a part of situation awareness (SA). This study has used group interviews to explore how different temporal aspects of CM can be considered in CM design and how they can influence crisis managers SA. A prototype and a scenario were used as mediating materials. The result consists of two parts. The first part is comprised of the participants’ reflections on how timelines can be used to display information in CM information systems. According to the participants, timelines should present: deadlines, information sent to the public, incoming and outgoing information, an overview of where the current activities belong in the CM process and what has been going on since the last shift during shift changes. Timelines should not only display the listed information, but also provide functionality for adjusting the timescale so that information can be presented in alternative temporal perspectives. The second part of the result contains several obstacles that might influence the crisis managers’ ability to obtain SA. Obstacles elicited from the group discussions are: information overflow, fast changes of SA due to incoming information, difficulties to share SA with actors outside the CM centre, forgetting things that need attention and that SA depends on the quality of incoming information. The two parts of the result have been compiled into six design principles for how temporality can be considered in CM systems in order to support SA.','Cognition, Technology & Work',1,'Anna GryszkiewiczFang Chen','springer/service oriented architecture security.csv','springer','\0'),(1192,'Patterns to Enable Mass-Customized Business Process Monitoring','2012','2',' monitoring framework monitoring patterns business process monitoring process customization','Abstract Mass-customization challenges the one-size-fits-all assumption of mass production, allowing customers to specify the options that best fit their requirements when choosing a product or a service. In business process management, to achieve mass-customization, providers offer to their customers the opportunity to customize the way in which a process will be enacted. We focus on monitoring as a specific customization aspect. We propose a multi-dimensional classification of modeling patterns for customized monitoring infrastructures. Patterns enable the provider to offer a set of customizable options to customers and design a monitoring infrastructure that fits the preferences specified by customers on such options. An example in the online advertising industry demonstrates how our framework can improve the services currently offered by providers.','',2,'Marco ComuzziSamuil AngelovJochem Vonk','springer/bpel security.csv','springer','\0'),(1193,'Modeling Responsiveness of Decentralized Service Discovery in Wireless Mesh Networks','2014','3',' Real-time systems Responsiveness Service discovery Wireless mesh networks Markov Models Probabilistic Breadth-First Search','Abstract In service networks, discovery plays a crucial role as a layer where providers can be published and enumerated. This work focuses on the responsiveness of the discovery layer, the probability to operate successfully within a deadline, even in the presence of faults. It proposes a hierarchy of stochastic models for decentralized discovery and uses it to describe the discovery of a single service using three popular protocols. A methodology to use the model hierarchy in wireless mesh networks is introduced. Given a pair requester and provider, a discovery protocol and a deadline, it generates specific model instances and calculates responsiveness. Furthermore, this paper introduces a new metric, the expected responsiveness distance d er , to estimate the maximum distance from a provider where requesters can still discover it with a required responsiveness. Using monitoring data from the DES testbed at Freie Universität Berlin, it is shown how responsiveness and d er of the protocols change depending on the position of nodes and the link qualities in the network.','',1,'Andreas DittrichBjörn LichtblauRafael RezendeMiroslaw Malek','springer/service oriented architecture security.csv','springer','\0'),(1194,'A Framework for Service Morphing and Heterogeneous Service Discovery in Smart Environments','2012','0',' SOA service morphing cross-architecture service directory mobile device support OSGi web services','Abstract The openness and dynamicity of smart environments makes it a necessity to adopt a flexible software architecture. Service oriented architecture (SOA), and more specifically Open Service Gateway Initiative (OSGi), has emerged to be one of the most suitable choices; however, our experience using OSGi exposes its several shortcomings as an SOA platform: 1. The number of services required to be designed and implemented for each sensor, actuator and external system can be prohibitively high; 2. Cross-architecture interaction with non-OSGi software artifacts is challenging and inelegant; 3. There is a need for a more systematic approach to allow mobile devices remote access to OSGi services and enable opportunistic utilizations of local resources. We propose a framework to address these challenges by introducing a mechanism to support morphing a core service implementation of underlying communication protocols and software libraries to customized services using configuration files and a cross-architecture service directory for both OSGi and web services (WS). Our solution allows mobile devices to discover, access and adjust for local resources and results in more open, less cumbersome, and more integrative interactions among computing, communicative, sensing and actuation elements in smart environments.','',2,'Hen-I YangRyan BabbittJohnny WongCarl K. Chang','springer/bpel security.csv','springer','\0'),(1195,'Open Objects for Ambient Intelligence','2012','0',' Ubiquitous Computing End-User Development Events Behaviours Capabilities Workflows Service-Oriented Architecture','Abstract We present the Open Object, a framework for distributing capabilities over a system of inter-connected physical objects. We focus on allowing lightweight objects to not only share their capabilities with other objects but also to outsource capabilities when needed, in order to fulfil a user’s goal. We exemplify our approach with a smart home scenario and a service-oriented implementation.','',1,'Paulo RiccaKostas Stathis','springer/service oriented architecture security.csv','springer','\0'),(1196,'Collaborative Autonomic Management of Distributed Component-Based Applications','2015','0',' Component-based applications Autonomic management Container Collaboration','Abstract Executing component-based applications in dynamic distributed environments requires autonomic management to cope with the changes of these environments. However, using a centralized Autonomic Manager (AM) for monitoring and adaptation of a large number of distributed components is a non trivial task. Therefore, we argue for a distributed management by using an AM for each component. These distributed managers should collaborate to avoid conflicting decisions that may entail the application’s failure. Towards this objective, we propose a collaborative autonomic management of component-based applications in distributed environments. An application is considered as a composite of atomic or composite components. Each component or composite is managed by its AM that holds local strategies for its reconfiguration. An AM is able to collaborate with other managers in different hierarchical levels for the self-management of the whole application. We show the utility of our approach through a use case in the context of Cloud computing.','',2,'Nabila BelhajImen Ben LahmarMohamed MohamedDjamel Belaïd','springer/bpel security.csv','springer',''),(1197,'Experience with Industrial Adoption of Business Process Models for User Acceptance Testing','2013','2','','Abstract Model based testing or the generation of tests from machine readable models has been widely deployed in industry for testing embedded systems and devices. Attempts are being made to extend its use to business systems. However, in spite of its potential for process improvement, its large-scale adoption for testing business systems is not yet seen, mainly due to little data being available on such use. This paper presents the findings from industrial deployment of a business process model based testing approach for User Acceptance Testing of large banking and insurance systems. The approach met with easier acceptance from the user community due to use of business process models and has proved to scale to very large models. It resulted in an overall productivity benefit of 20-30% in test design and planning, in addition to digitization of domain and process knowledge and has been successfully adopted organization-wide. Benefits as well as issues faced in large-scale adoption are discussed along with solutions found and open problems.','',2,'Deepali KholkarPooja YelureHarshit TiwariAjay DeshpandeAditya Shetye','springer/bpmn security.csv','springer','\0'),(1198,'Towards a System for Cloud Service Discovery and Composition Based on Ontology','2015','0',' Cloud computing Services discovery Cloud ontology OWL Cloud composition','Abstract Cloud computing has become a widely used concept. It is characterized by its elasticity, its on demand services and the unlimited resources provided to end users. However, the increase of services number offered by different providers causes sometimes ambiguity problems. So, ontology must be used to relate between different services in order to facilitate their access. Many languages expressing ontology have been proposed namely RDF, OWL, etc. To access them, queries should be expressed using SPARQL. However, generally, users are not familiar with this query language. Therefore, there is a need to an interface allowing them to express their requirements without any expertise in SPARQL language. Besides, given the increase of complex service requirements, it is sometimes necessary to compose services to meet final user requirements. This paper gives related works on Cloud service discovery based on ontology and composition and presents a system ensuring these procedures.','',1,'Rawand GuerfelZohra SbaïRahma Ben Ayed','springer/service oriented architecture security.csv','springer',''),(1199,'Application and economic implications of an automated requirement-oriented and standard-based compliance monitoring and reporting prototype','2010','','Business process management; IS security; IT compliance; IT risk management','Compliance management is a challenging task affected by continuously increasing legal requirements. Compliance with legal requirements can be assured by the incorporation of control activities into business processes. But the maintenance and monitoring of these control activities is a complex, time-consuming and often manual task. However, the timely communication of control exceptions is an important factor for the success of compliance management. The present paper presents an innovative prototypical implementation of an automated compliance monitoring and reporting system. This system is based on established standards and existing technologies. In particular, business processes are notated in BPMN and modeled in XPDL, control activities are linked to risks using COSO, control exceptions are defined using SWRL and access control data is transformed from proprietary models to XACML. The development of the prototype was aligned with common design-science research. The application of the developed prototype and its economic implications are concisely discussed with respect to different business requirements and information needs. © 2010 IEEE.','',2,'Kehlenbeck M., Sandner T., Breitner M.H.','scopus/bpmn security.csv','scopus','\0'),(1200,'Securing an interoperability architecture for home and urban networking: Implementation of the security aspects in the INREDIS interoperability architecture','2012','3','authentication; authorization; heterogeneous systems; interoperability','The increasing density of the electronic devices in everyday activities is turning system interoperability into an emerging research scenario with a clear impact on life quality. Interoperability architectures try to overcome the complexity related to the heterogeneous procedures, interfaces and access protocols required to operate devices by providing users a single control point on their electronic environment. The INREDIS project has addressed this challenge by designing a cloud based service-oriented architecture to be deployed both on home and outdoor scenarios aimed to enhance the interoperability capabilities with accessibility features. In this paper we describe the specific security challenges that have been addressed and how a heterogeneous interoperability architecture involving a wide range set of electronic devices could be secured from a unified approach. The deployed infrastructure, built upon server-based security in combination with digital certificates, has provided promising outcomes through the target deployment scenarios. In addition, further research lines on securing interoperability for devices with constrained resources have also been described. © 2012 IEEE.','',1,'Giménez R., Pous M., Rico-Novella F.','scopus/service oriented architecture security.csv','scopus','\0'),(1201,'A formal framework for service modeling and prototyping','2014','1',' Service formal modeling Service model prototyping Service Component Architecture Abstract State Machines','Abstract Service-oriented Computing is rapidly gaining importance across several application domains due to its capability of composing autonomous and loosely-coupled services. In order to support the engineering of service-oriented software applications, foundational theories, service modeling notations, evaluation techniques fully integrated in a pragmatic software engineering approach are required. This article introduces a framework for modeling and prototyping service-oriented applications. The framework consists of a precise and executable language, SCA-ASM , for model-based design, and of a tool for early and quick design evaluation of service assemblies. The language combines the OASIS/OSOA standard Service Component Architecture (SCA) capability of modeling and assembling heterogeneous service-oriented components in a technology agnostic way, with the rigor of the Abstract State Machine (ASM) formal method able to model notions of service behavior, interactions, orchestration, compensation and context-awareness in an abstract but executable way. The tool is based on existing execution environments for ASM models and SCA applications. An SCA-ASM model of a service-oriented component, possibly not yet implemented in code or available as off-the-shelf, can be (i) simulated and evaluated offline , i.e. in isolation from the other components; or (ii) executed as abstract implementation (or prototype ) together with the other components implementations according to the chosen SCA assembly. As proof of concept, a case study taken from EU research projects has been considered to show the functionalities and potentialities of the proposed framework.','Formal Aspects of Computing',2,'Elvinia RiccobenePatrizia Scandurra','springer/bpel security.csv','springer',''),(1202,'Simulation on Cloud Computing Infrastructures of Parametric Studies of Nonlinear Solids Problems','2012','1',' Parameter Sweep Viscoplastic Solids Cloud Computing','Abstract Scientists and engineers are more and more faced to the need of computational power to satisfy the ever-increasing resource intensive nature of their experiments. Traditionally, they have relied on conventional computing infrastructures such as clusters and Grids. A recent computing paradigm that is gaining momentum is Cloud Computing, which offers a simpler administration mechanism compared to those conventional infrastructures. However, there is a lack of studies in the literature about the viability of using Cloud Computing to execute scientific and engineering applications from a performance standpoint. We present an empirical study on the employment of Cloud infrastructures to run parameter sweep experiments (PSEs), particularly studies of viscoplastic solids together with simulations by using the CloudSim toolkit. In general, we obtained very good speedups, which suggest that disciplinary users could benefit from Cloud Computing for executing resource intensive PSEs.','',1,'Elina PaciniMelisa RiberoCristian MateosAnibal MirassoCarlos García Garino','springer/service oriented architecture security.csv','springer','\0'),(1203,'Notes on Cloud computing principles','2014','3',' Resource allocation Provisioning IT-economics','Abstract This letter provides a review of fundamental distributed systems and economic Cloud computing principles. These principles are frequently deployed in their respective fields, but their interdependencies are often neglected. Given that Cloud Computing first and foremost is a new business model, a new model to sell computational resources, the understanding of these concepts is facilitated by treating them in unison. Here, we review some of the most important concepts and how they relate to each other.','Journal of Cloud Computing',1,'Thomas SandholmDongman Lee','springer/service oriented architecture security.csv','springer','\0'),(1204,'5G Revolution Through WISDOM','2015','1',' WISDOM 5G Human centric mega communications Next generation networking','Abstract This paper proposes and introduces a novel concept WISDOM, representing Wireless Innovative System for Dynamically Operating Mega Communications. The objective of this concept is to let the people seamlessly bridge the virtual and physical worlds by offering the same level of all senses, rich communication experience over fixed and wireless networks. Responding to the needs of connected society of 2020 and beyond, WISDOM shall offer ubiquitous terabit wireless connectivity that will enable human centric mega communications applications over the dynamic, interoperable and secure network of the future. The relation between fifth generation and WISDOM is presented in this paper.','Wireless Personal Communications',1,'Ramjee Prasad','springer/service oriented architecture security.csv','springer',''),(1205,'Evaluation of ASLan Mutation Operators','2013','0','','Abstract The AVANTSSAR validation platform is an automated toolset for validating trust and security aspects of Service-Oriented Architectures (SOAs). Models and security properties are specified in lowlevel AVANTSSAR Specification Language (ASLan) and there are three dedicated model-checkers that can validate if such models satisfy the security properties. However, the implementation may deviate from the specification and may contain some vulnerabilities that an attacker could exploit to violate the defined security properties. We have designed a set of semantic mutation operators to inject such vulnerabilities in an ASLan specification. Here we present the implementation of those mutation operators as Extensible Stylesheet Language Transformation (XSLT) scripts. Then, we evaluate the interest of using semantic mutation operators instead of syntactic ones by comparing the number of mutants that lead to the generation of a test case (i.e., a potential attack) and the resulting test suite for a set of existing ASLan specifications.','',1,'Johan OudinetAlberto CalviMatthias Büchler','springer/service oriented architecture security.csv','springer','\0'),(1206,'An RFID-based traceability system','2015','0',' Traceability system RFID EPCglobal Network Standards Rice supply chain','Abstract Traceability system in the food supply chain is becoming more necessary. RFID and EPCglobal Network Standards are emerging technologies that bring new opportunities to develop the high performance traceability system. This research proposes the analysis, design, and development of the RFID and EPCglobal Network Standards based traceability system that adheres to the requirements of global food traceability in terms of completeness of traceability information. The additional components, including lot management system and electronic transaction management system, encourage the traditional system in order to fulfill the missing information. The proposed system was developed and applied in a rice supply chain. Results from experimentation showed that the additional components can significantly improve the completeness of traceability information. The collaboration between EPCglobal Network Standards and electronic transaction management system can improve the performances in RFID operations.','Telecommunication Systems',1,'Worapot JakkhupanSomjit Arch-intYuefeng Li','springer/soa security.csv','springer',''),(1207,'MAPI: a software framework for distributed biomedical applications','2013','2',' Service-oriented architectures Web-service integration Software framework','Abstract Background The amount of web-based resources (databases, tools etc.) in biomedicine has increased, but the integrated usage of those resources is complex due to differences in access protocols and data formats. However, distributed data processing is becoming inevitable in several domains, in particular in biomedicine, where researchers face rapidly increasing data sizes. This big data is difficult to process locally because of the large processing, memory and storage capacity required. Results This manuscript describes a framework, called MAPI, which provides a uniform representation of resources available over the Internet, in particular for Web Services. The framework enhances their interoperability and collaborative use by enabling a uniform and remote access. The framework functionality is organized in modules that can be combined and configured in different ways to fulfil concrete development requirements. Conclusions The framework has been tested in the biomedical application domain where it has been a base for developing several clients that are able to integrate different web resources. The MAPI binaries and documentation are freely available at http://​www.​bitlab-es.​com/​mapi under the Creative Commons Attribution-No Derivative Works 2.5 Spain License. The MAPI source code is available by request (GPL v3 license).','Journal of Biomedical Semantics',1,'Johan KarlssonOswaldo Trelles','springer/service oriented architecture security.csv','springer','\0'),(1208,'Local governments and cloud computing security','2012','','Cloud computing security; Enterprise architecture; Local governments; Risks assessment; SOA; Systems architecture','The Cloud computing solution has enormous potential to provide companies, industries and economy in general with remarkable benefits but there are certain challenges that have to be taken into account when choosing this solution. The purpose of this paper is to provide results of research about local governments\' Cloud computing security, assisting them in making appropriate risk-based security decisions about how to securely embrace Cloud computing. To ensure that managing information of system-related security risks is consistent with the organization\'s mission/business objectives, and that information security requirements, including necessary security controls, are integrated into the organization\'s enterprise architecture and system development life cycle processes.','',1,'Kindzule I., Zeiris E., Ziema M.','scopus/soa security.csv','scopus','\0'),(1209,'Semantic IPTV Service Discovery System','2012','0','IPTV;Ontologies;SOA;Semantic integration;Service discovery','IPTV deals with multimedia services delivered over IP based networks managed to provide the required level of quality of service and experience, security, interactivity and reliability. Service discovery is an important component of IPTV system, but it is challenging due to the unique domain specifics of IPTV and complexities of IPTV ecosystem. In this paper, we formulate the IPTV service discovery problem under an SOA framework, and propose a novel standards-based semantic IPTV service discovery system. The proposed system is based on unifying the traditionally step-wise iterative process of IPTV service discovery, and a semantic integration of service provider and IPTV service descriptions. For demonstration, we consider a specific discovery scenario involving service providers that offer a combination of standard TV services such as linear TV and VoD content, and also advanced interactive multimedia-based IPTV services. With detailed illustration, we demonstrate that our proposed system provides simple but effective discovery of IPTV services, and possesses several benefits that can potentially enhance end-user experience.','2012 IEEE Eighth World Congress on Services',1,'F. L. Lai; X. Shao; R. Kanagasabai','ieee/service oriented architecture security.csv','ieee','\0'),(1210,'Utilizing PCFGs for Modeling and Learning Service Compositions in Sensor Networks','2012','0','PCFGs;sensor networks;service composition','Service composition in sensor networks combines elementary services with a specific functionality to create a service with higher level functionality. The previous efforts in automating composition were sending full information about all services across the entire sensor network, creating a security risk and imposing significant communication overhead. Furthermore, learning based composition or error detection methods do not consider global information, leading to inefficiencies in the generated composition graphs. In this paper, we propose a probabilistic context-free grammar (PCFG) based modeling technique to construct service compositions. The successful compositions created for the given application are treated as statements belonging to an efficient composition PCFG of this application. The given set of such compositions is used to derive this PCFG automatically. Future composition could be then easily constructed with the help of such PCFG. We present our methodology for achieving such modeling and provide examples of its use to demonstrate its advantage over previous work. We also evaluate the resulting improvements in performance of compositions and in the costs of their creation.','Services Computing (SCC), 2012 IEEE Ninth International Conference on',1,'S. C. Geyik; E. Bulut; B. K. Szymanski','ieee/service oriented architecture security.csv','ieee','\0'),(1211,'A Versatile SOA-based E-Business Platform','2008','0','BPEL;E-Business;SOA;mashups;web services','SOA is an IT architecture style, which has been proved to be able to help enterprise adapt rapid change and intensive competition. But practicing SOA is difficult, time-consuming and costly. Even worse, after a company manages to implement SOA, it still finds itpsilas difficult to apply it to the partners that havenpsilat enabled SOA yet. In this paper, we design an e-business platform featuring Web services-based SOA. Its basic subsystems establish a social and commercial zone by employing mashups; its intelligent agent detects events defined by users and reacts on behalf of users; its business process coordinator directs and coordinates business process through BPEL; its data sharing controller provides data sharing and notification between users. The highlight of this platform is: for SOA-ready enterprises, they can maximize their investment returns on SOA; for SOA-unready ones, they can still enjoy the services that the platform provides.','Electronic Commerce and Security, 2008 International Symposium on',2,'L. Diao; Y. Ma','ieee/bpel security.csv','ieee','\0'),(1212,'QoS- and Resource-Aware Service Composition and Adaptation','2012','0','','Abstract Flexible and adaptive quality-of-service (QoS) is desirable for distributed real-time applications, such as e-commerce, or multimedia applications. The objective of this research is to dynamically instantiate composite services by effectively utilising the collective capabilities of the resources to deliver distributed applications. Related to this objective are the problems of: (1) predicting system and network resources utilisation as well as the user’s changing requirements on the provided services, and (2) finding optimal execution plans for a service that meet end-to-end quality requirements and adapting the available resources in accordance to the changing situation. This paper presents a framework for adaptive QoS and resource management in provisioning composite services. We also develop distributed algorithms for finding the multi-constrained optimal execution plan to enable delivery of QoS-assured composite services.','',1,'Quoc Bao VoMinyi Li','springer/service oriented architecture security.csv','springer','\0'),(1213,'Enhancing model driven security through pattern refinement techniques','2013','','','Security requirements are typically defined at a business abstract level by non-technical security officers. However, in order to fulfill the security requirements, technical security controls or mechanisms have to be considered and deployed on the target system. Based on these security controls security patterns have to be selected. The MDS (Model Driven Security) approach uses security requirement models at a high level of abstraction to automatically generate security artefacts that configure security services. The main drawback of the current MDS solutions is that they consider just one security pattern for each security requirement. Current SOA and cloud services are scattered across multiple heterogeneous security domains. Partners and clients with different security infrastructures are changing continuously, which requires the support of multiple patterns for the same security service. The challenge is to provide configurable security services that can support different patterns. In order to overcome this shortcoming we propose a framework that integrates pattern refinement to the MDS approach. In this approach a security pattern refinement layer is added to the traditional MDS layers. The pattern refinement layer supports the configuration of one security service with different patterns, which are stored in a pattern catalog. For example, our approach enables the generation of security artefacts that configure a non-repudiation service to support both fair non-repudiation and naive non-repudiation patterns. © 2013 Springer-Verlag Berlin Heidelberg.','',1,'Katt B., Gander M., Breu R., Felderer M.','scopus/soa security.csv','scopus','\0'),(1214,'ACaaS: Access control as a service for IaaS cloud','2013','','Access control; Cloud computing; Security','Organizations and enterprises have been outsourcing their computation, storage, and workflows to Infrastructureas-a-Service (IaaS) based cloud platforms. The heterogeneity and high diversity of IaaS cloud environment demand a comprehensive and fine-grained access control mechanism, in order to meet dynamic, extensible, and highly configurable security requirements of these cloud consumers. However, existing security mechanisms provided by IaaS cloud providers do not satisfy these requirements. To address such an emergent demand, we propose a new cloud service called access control as a service (ACaaS), a service-oriented architecture in cloud to support multiple access control models, with the spirit of pluggable access control modules in modern operating systems. As a proof-of-concept reference prototype, we design and implement ACaaSRBAC to provide role-based access control (RBAC) for Amazon Web Services (AWS), where cloud customers can easily integrate the service into enterprise applications in order to extend RBAC policy enforcement in AWS. © 2013 IEEE.','',1,'Wu R., Zhang X., Ahn G.-J., Sharifi H., Xie H.','scopus/service oriented architecture security.csv','scopus','\0'),(1215,'Integration of non-functional requirements in a service-oriented and model-driven approach','2014','0','Business Process Modeling;MDA (Model Driven Architecture);Non-Functional Requirements (NFR);SOA(Service Oriented Architecture);Web services (WS);automatic transformations','To face the problems of scalability and complexity of information systems (IS), conceptual models must be able to understand the requirements needed for its development. Beyond the consideration of functional requirements, other more critical requirements have emerged: Non-functional requirements to reflect complex situations that occur in the real world. In this work, we introduce an approach for the integration of non-functional requirements in the conception of information systems. The proposed approach is an approach based on service-oriented architectures (SOA), model driven architecture (MDA), and automatic transformations of models.','2014 IEEE Eighth International Conference on Research Challenges in Information Science (RCIS)',1,'A. Bouain; A. El Fazziki; M. Sadgal','ieee/service oriented architecture security.csv','ieee','\0'),(1216,'Mobile Cloud Computing in Healthcare System','2015','0',' Mobile Cloud Computing Mobile web services healthcare Cloud Computing Medical Cloud Multi Agent System Multi Agent System','Abstract Mobile Cloud Computing (MCC) is a potential technology for mobile web services. Accordingly, we assume that MCC is likely to be of great avail to healthcare domain. MCC offers new kinds of services and facilities for patients and caregivers. In this regard, we have tried to propose a new mobile medical web service system. The proposed system called Medical Cloud Multi Agent System is a complex system which integrates MCC and Multi Agent System in healthcare with view to improving healthcare system.','',1,'Hanen JemalZied KechaouMounir Ben AyedAdel M. Alimi','springer/service oriented architecture security.csv','springer',''),(1217,'Service provisioning middleware for wireless sensor network','2016','','Middleware; Service provisioning; Service-oriented architecture; Wireless sensor network','Earlier, wireless sensor network (WSN) applications tended to follow the traditional format of being specific to a device. Later, when applications evolved integrating heterogeneous devices, it rendered difficulty in enforcing a common standard among all the diverse devices. In order to handle this, a lot of WSN middleware platforms emerged to bind the application interaction with the heterogeneous devices through heterogeneous interfaces. This started increasing the service-based applications while decreasing the device-based applications. Apart from not only providing the classic task of reading the information from the sensor network, the middleware support were extended to address interoperability, management, security, and privacy. However, still there exists an important issue, which many of the existing middleware fail to address. For instance, the network design scenario varies depending on the application context. However, most of the existing middleware operate on the default network infrastructure and data dissemination protocol to collect the data and perform other tasks on the network. Therefore, there is a requirement to include support for customizing the network configuration for an application requirement with respect to its context. Hence, in this work, a service provisioning middleware based on service-oriented architecture (SOA) is proposed. To support network customization, in the middleware layer, a decision algorithm is proposed. It is used for generating the configuration file according to the application requirement. This service provisioning middleware would serve as a generic model for adapting to the required network environment. © Springer India 2016.','',1,'Sasirekha S., Swamynathan S.','scopus/service oriented architecture security.csv','scopus',''),(1218,'The integration of an RE method and AHP: A pilot study in a large Swiss bank','2013','0','Analytic Hierarchy Process (AHP);Banking;Requirements Engineering;SEAM;Service Oriented Architecture (SOA);Switzerland','This paper reports on a pilot study of the integration between the Systemic Enterprise Architecture Method (SEAM) and the Analytic Hierarchy Process (AHP) in a requirements engineering project. The objective of the project, conducted in one of the major banks in Switzerland, was to select a common SOA tool that could satisfy the needs of two of the bank\'s main business units, investment and private banking. SEAM provided help in identifying stakeholders, eliciting their requirements, and analyzing these requirements. The resulting requirements were then grouped and translated into selection criteria for the alternative SOA tools. Based on these criteria, the stakeholders chose the tool to be purchased using AHP. We describe the project, the challenges we faced and the lessons learned. These relate to the nature and traceability of requirements, to the requirements elicitation process and to the relations between the bank\'s business units.','2013 21st IEEE International Requirements Engineering Conference (RE)',1,'A. Golnam; G. Regev; A. Wegmann; S. Kyriakopoulou','ieee/service oriented architecture security.csv','ieee','\0'),(1219,'Proceedings - 4th IEEE International Conference on Computer and Communication Technology, ICCCT 2013','2013','','','The proceedings contain 43 papers. The topics discussed include: multiplier-less VLSI architecture of 1-D Hilbert transform pair using biorthogonal wavelets for QCM-SS image watermarking; bandwidth enhancement of RMPA using ENG meta materials at THz; efficient public verifiability and data dynamics for storage security in hybrid clouds; enterprise transformation to service oriented architecture from legacy applications; a payload distribution method for high capacity image steganography; independent histogram equalization using optimal threshold for contrast enhancement and brightness preservation; content-based image classification using PSO-SVM in fuzzy topological space; cluster based ant-intelligent search algorithm for unstructured peer-to-peer network; diabetes mellitus forecast using different data mining techniques; hybrid recommender system based on fuzzy clustering and collaborative filtering; and exploiting the anomaly detection for high dimensional data using descriptive approach of data mining.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus','\0'),(1220,'Web services workflow for power system security assessment','2005','5','','This paper presents a service-oriented platform for performing efficient and scalable on-line power system security analysis. This analysis is a complex, large-scale, and compute-intensive problem whose solution requires different distributed resources and functionalities. These can be both high-level services provided by organizations belonging to different functional areas of electric industry and low-level services provided by service providers on the Internet. The platform described in the paper is able to integrate services of different kinds, such as real-time data acquisition from several sources, high computational power and data storage capabilities, to perform complex computations on large scale distributed systems. The paper discusses a Web services-based implementation of the platform, which is centered on a BPEL-modeled workflow enactor able to exploit a grid computing middleware to execute compute intensive code.','2005 IEEE International Conference on e-Technology, e-Commerce and e-Service',2,'Q. Morante; N. Ranaldo; E. Zimeo','ieee/bpel security.csv','ieee','\0'),(1221,'Coupling climate and hydrological models: Interoperability through Web Services','2013','15','Climate; Hydrology; Modeling; Modeling frameworks; Service-oriented architectures','Understanding regional-scale water resource systems requires understanding coupled hydrologic and climate interactions. The traditional approach in the hydrologic sciences and engineering fields has been to either treat the atmosphere as a forcing condition on the hydrologic model, or to adopt a specific hydrologic model design in order to be interoperable with a climate model. We propose here a different approach that follows a service-oriented architecture and uses standard interfaces and tools: the Earth System Modeling Framework (ESMF) from the weather and climate community and the Open Modeling Interface (OpenMI) from the hydrologic community. A novel technical challenge of this work is that the climate model runs on a high performance computer and the hydrologic model runs on a personal computer. In order to complete a two-way coupling, issues with security and job scheduling had to be overcome. The resulting application demonstrates interoperability across disciplinary boundaries and has the potential to address emerging questions about climate impacts on local water resource systems. The approach also has the potential to be adapted for other climate impacts applications that involve different communities, multiple frameworks, and models running on different computing platforms. We present along with the results of our coupled modeling system a scaling analysis that indicates how the system will behave as geographic extents and model resolutions are changed to address regional-scale water resources management problems. © 2013 Elsevier Ltd.','',1,'Goodall J.L., Saint K.D., Ercan M.B., Briley L.J., Murphy S., You H., DeLuca C., Rood R.B.','scopus/service oriented architecture security.csv','scopus',''),(1222,'Collaborative Drawing Annotations on Web Videos','2015','0','','Abstract Collaborative Drawing over a computer network, in particular on videos, usually requires some complex client-server architecture. In this paper, we want to demo an approach with the following distinctive features. On the client side we enable peer-to-peer collaborative video drawing in recent Web browsers supporting WebRTC. Developers can therefore embed it in arbitrary Web pages and users do not need to install any additional software. For persistence we use a microservice driven cloud approach which can be set up easily. All components are open source to facilitate wide use and further development. A use case evaluation showed promising results and will be presented in the demo.','',1,'István KorenPetru NicolaescuRalf Klamma','springer/microservice security.CSV','springer',''),(1223,'Configuring trust model for cloud computing: Decision exploration using fuzzy reasoning','2015','','Cloud computing; decision tree; fuzzy projection; middleware; security threats; trust','The concept of cloud computing enhances the on-demand network access expediently to share a pool of configurable resources. The major advantage of cloud computing has been accomplished by business organizations through the use of shared services, service-oriented architecture and virtualizations. Cloud computing is deployed by the third-party or web-based providers. Therefore, security component would be considered all the layers of the cloud architecture. In this paper, a secured and trusted cloud system is proposed. Security could be embedded in middleware architecture of the cloud system. Threats related to the cloud security are dynamic in nature and recurrently changing the types of attacks encountered over time. Therefore, a computationally intelligent and adaptive decision mechanism based on fuzzy rules is introduced to take a proper decision according to the contextual variables. Fuzzy decision maker identify the anomalies and sustain the trust of the cloud computing. © 2015 IEEE.','',1,'Sarkar M., Banerjee S., Balas V.E.','scopus/service oriented architecture security.csv','scopus',''),(1224,'Proxy Mobile IPv6 Handover Management in Vehicular Networks: State of the Art, Taxonomy and Directions for Future Research','2015','1',' IP mobility in VANET V2I PMIPv6 NEMO Seamless handoff Handover latency','Abstract In vehicular communication networks, to facilitate the variety of intelligent transportation system (ITS) applications, handover management is considered as the one of the most challenging research issues. The most compatible and interoperable handover management solutions are designed based on IP mobility protocols. However, due to the unique characteristics of vehicles such as high velocity, IP mobility management protocols are still unacceptable for ITS real-time applications that are sensitive to network latencies. Thus, whenever the vehicle roams between two domains, which is most likely to occur in vehicular networks, its reachability status will be broken-down causing high handover latency and inevitable traffic loss. Recently, proxy mobile IPv6 (PMIPv6) has been proposed to support the mobility management without any intervention of the mobile user in the mobility-related signaling. As PMIPv6 will be deployed in the wireless technologies for next generation networks (i.e., LTE/LTE-advanced, WiFi and WiMAX), vehicular ad hoc networks (VANETs) are expected to employ PMIPv6 protocol in vehicle to infrastructure connection as well. In this paper, we introduce a comprehensive review of the state of the art of PMIPv6 handover management in VANET. We present a new taxonomy and classify the existing schemes according to different considerations. Finally, we outline several open issues and handoff management design considerations as a direction for future research.','Wireless Personal Communications',1,'Mohammed BalfaqihMahamod IsmailRosdiadee NordinZain A. Balfaqih','springer/service oriented architecture security.csv','springer',''),(1225,'[Front-cover]','2013','0','','The following topics are dealt with: software testing; software verification; software validation; engineering safety system; security system; mutation analysis; test case selection; software refactorings; software defect localization; software reachability; software maintainability; data processing; service-oriented architecture; Web services; combinatorial testing; UML; regression testing; and security testing.','Software Testing, Verification and Validation Workshops (ICSTW), 2013 IEEE Sixth International Conference on',1,'','ieee/service oriented architecture security.csv','ieee','\0'),(1226,'Contribution to a Rigorous Analysis of Web Application Frameworks','2012','1','','Abstract We suggest an approach for accurate modeling and analysis of web application frameworks.','',2,'Egon BörgerAntonio CisterninoVincenzo Gervasi','springer/bpel security.csv','springer','\0'),(1227,'A top-down method for secure SOA-based B2B processes','2010','','B2B; BPMN; SOA; WS-BPEL; WS-CDL','Designing secure B2B processes is a challenging task. The business partners have to agree on a common data format and meaning as well as on the security requirements each partner has to fulfill. In this paper we propose a top-down method to design secure B2B processes in the context of service oriented architectures (SOA). In this method, the Web Services Choreography Description Language (WS-CDL) is used to describe the global behavior of a B2B process, which serves as contractual basis for the collaboration between business partners. The global security requirements are represented in a separate XML-based descriptor document. The local behavior for the individual business partners can be generated from the WS-CDL specification using the abstract Web Services Business Process Execution Language (WS-BPEL). WS-BPEL is used in this step solely to describe externally observable message exchange behavior of each business partner involved, without revealing their internal implementation. These generated abstract WS-BPEL processes are the starting point for implementing new local business processes. The local security requirements for each business partner can be generated from the global security descriptor document. Finally, the implemented WS-BPEL processes are deployed in a suitable WS-BPEL engine.','',2,'Madiesh M., Wirtz G.','scopus/bpmn security.csv','scopus','\0'),(1228,'A Graphical Audit Facility for Data Processing and Its Evaluation with Users','2012','0','','Abstract Personally-identifiable information (PII) is increasingly processed in a distributed way. This makes it much harder for individuals to oversee how their PII is used. In the legal systems of many countries, processing of PII is subject to restrictions. In particular, companies have to inform an individual on how they use his PII, and which external parties they transfer it to. We hypothesize that naïve approaches like log messages or plain text are not sufficient to this end. We in turn have developed a user-friendly auditing facility based on business processes (BPs). It visualizes data processing in real time, using the graphical process models one would deploy on a BP engine for execution. We also propose an approach to let a BP-management system generate the necessary audit events at runtime. An evaluation of realistic scenarios with users shows that our tool helps them to understand how their PII is used.','',2,'Jens MüllerMurat KavakKlemens Böhm','springer/bpel security.csv','springer','\0'),(1229,'Microservices validation: Mjolnirr platform case study','2015','0','Cloud computing;Microservices;PaaS;Services Oriented Architecture;testing;validation','Microservice architecture is a cloud application design pattern that implies that the application is divided into a number of small independent services, each of which is responsible for implementing of a certain feature. The need for continuous integration of developed and/or modified microservices in the existing system requires a comprehensive validation of individual microservices and their co-operation as an ensemble with other microservices. In this paper, we would provide an analysis of existing methods of cloud applications testing and identify features that are specific to the microservice architecture. Based on this analysis, we will try to propose a validation methodology of the microservice systems.','Information and Communication Technology, Electronics and Microelectronics (MIPRO), 2015 38th International Convention on',1,'D. I. Savchenko; G. I. Radchenko; O. Taipale','ieee/microservice security.CSV','ieee',''),(1230,'A Solution for the Naming Problem for Name-Centric Services','2014','0',' Content-Centric Networking Wired/Wireless Environments Service Development Service Management','Abstract In recent past name-centric or content-centric networking (CCN) has gained substantial attention in the networking community. In a further development step name-centric service architecture enables the flexible placement and distribution of services in the network especially in a heterogeneous environment of wired and wireless (sensor) networks. However, the problem of structuring and creating hierarchies for names in name-centric networks is not solved yet. E.g. there is no configuration of service names in name-centric service WSN, no concept of unsolicited names or link-local names in CCN. In IP networks, DHCP or IPv6 auto-configuration is available, but no equivalent technique exists for CCN. We analyze the naming problem in the software development life cycle for name-centric services in WSN and propose a structure, hierarchy, and configuration mechanism for names. The paper introduces the overall concept and preliminary steps of implementation.','',1,'Torsten TeublerMohamed A. HailHorst Hellbrück','springer/service oriented architecture security.csv','springer','\0'),(1231,'[Title page i]','2008','0','','The following topics are dealt with: Web service discovery engine; GLUE2; formal concept analysis; analytical hierarchy process; automatic timed test case generation; WS-BPEL compositions; discrete-event simulations; automatic protocol conformance checking; workflow development security; fault-tolerant composite service; service-oriented enterprise health care integration; information flow-sensitive business processes; mobile networks; aggregate signatures; and intrusion detection.','on Web Services, 2008. ECOWS \'08. IEEE Sixth European Conference',2,'','ieee/bpel security.csv','ieee','\0'),(1232,'Ontology-Based Data Access for Maritime Security','2016','0',' Maritime security EMSec RMSAS Geospatial OBDA Ontop SPARQL R2RML OWL','Abstract The maritime security domain is challenged by a number of data analysis needs focusing on increasing the maritime situation awareness, i.e., detection and analysis of abnormal vessel behaviors and suspicious vessel movements. The need for efficient processing of dynamic and/or static vessel data that come from different heterogeneous sources is emerged. In this paper we describe how we address the challenge of combining and processing real-time and static data from different sources using ontology-based data access techniques, and we explain how the application of semantic web technologies increases the value of data and improves the processing workflow in the maritime domain.','',1,'Stefan BrüggemannKonstantina BeretaGuohui XiaoManolis Koubarakis','springer/service oriented architecture security.csv','springer',''),(1233,'Supporting different process views through a Shared Process Model','2015','0',' Business process modeling Business–IT gap Model synchronization','Abstract Different stakeholders in the business process management (BPM) life cycle benefit from having different views onto a particular process model. Each view can show, and offer to change, the details relevant to the particular stakeholder, leaving out the irrelevant ones. However, introducing different views on a process model entails the problem to synchronize changes in case that one view evolves. This problem is especially relevant and challenging for views at different abstraction levels. In this paper, we propose a Shared Process Model that provides different stakeholder views at different abstraction levels and synchronizes changes made to any view. We present detailed requirements and a solution design for the Shared Process Model. We also present an overview of our prototypical implementation to demonstrate the feasibility of the approach. Finally, we report on a comprehensive evaluation of the approach on real Business–IT modeling scenarios.','Software & Systems Modeling',2,'Jochen KüsterHagen VölzerCédric FavreMoisés Castelo BrancoKrzysztof Czarnecki','springer/bpel security.csv','springer','\0'),(1234,'A web service-based multi-disciplinary collaborative simulation platform for complicated product development','2014','1',' Web service Service broker Register center Multi-disciplinary simulation UDDI','Abstract In a ubiquitous computing environment, computer-aided engineering (CAE) software packages can be encapsulated as a service and be accessible through networks, which is essential to small and medium enterprises (SMEs) for complex product design with limited computing resources. In this paper, a web service-based platform for the multi-disciplinary collaborative simulation (MDCSS) is proposed, which is a software-sharing environment. In MDCSS, although the CAE software packages reside in their remote application program servers, they are registered in the service center to be accessible according to the computing requests. Given the increasing CAE services with the same function, a quality of service (QoS)-aware scheduling method with real-time and countable parameters is proposed to adaptively select the most efficient web service among alternatives. Through an additional layer and an application broker for service scheduling, MDCSS allows allocating services automatically, keeping load balance, and minimizing human intervention. This platform is reusable, scalable, and efficient for implementation, which enables the end user to invoke the remote CAE software ubiquitously in a “pay-as-you-use” fashion.','The International Journal of Advanced Manufacturing Technology',1,'Songhua MaLing Tian','springer/soa security.csv','springer','\0'),(1235,'Delivering scalable video with QoS to the home','2012','13',' QoS SVC H.264 Adaptation Monitoring UPnP PQoS','Abstract User satisfaction is a key factor in the success of novel multimedia services. Yet, to enable service providers and network operators to control and maximize the quality (QoS, QoE) of delivered video streams, quite some challenges remain. In this paper, we particularly focus on three of them. First of all, objectively measuring video quality requires appropriate quality metrics and methods of assessing them in a real-time fashion. Secondly, the recent Scalable Video Coding (SVC) format opens opportunities for adapting video to the available (network) resources, yet the appropriate configuration of video encoding as well as real-time streaming adaptation are largely unaddressed research areas. Thirdly, while bandwidth reservation mechanisms in access/core networks do exist, service providers lack a means for guaranteeing QoS in the increasingly complex home networks (which they are not in full control of). In this paper we offer a broad view on these interrelated issues, by presenting the developments originating in a Flemish research project (including proof-of-concept demonstrations). From a developmental perspective, we propose an architecture combining a real-time video quality monitoring platform, on-the-fly adaptation (optimizing the video quality) and QoS reservation in a heterogeneous home network based on UPnP QoS v3. From a research perspective, we propose a new subjective test procedure that revealed user preference for temporal scalability over quality scalability. In addition, an extensive study on optimizing HD SVC encoding in IPTV scenarios with fluctuating bandwidth showed that under certain bandwidth constraints (prohibiting sufficient fidelity) spatial scalability is a better option than quality scalability.','Telecommunication Systems',1,'Chris DevelderPeter LambertWim Van LanckerStefaan MoensRik Van de WalleJelle NelisDieter VerslypeSteven LatréNicolas StaelensNick VercammenBrecht VermeulenBart MasscheleinTom Van LeeuwenJean-Francois MacqKris StruyveFilip De Turck','springer/service oriented architecture security.csv','springer',''),(1236,'Fuzzy Authentication Using Interaction Provenance in Service Oriented Computing','2015','0','Access Control;Authentication;Events;Fuzzy;Interaction Provenance;Persona;Security','In service oriented computing, authentication factors have their vulnerabilities when considered exclusively. Cross-platform and service composition architectures require a complex integration procedure and limit adoptability of newer authentication models. Authentication is generally based on a binary success or failure and relies on credentials proffered at the present moment without considering how or when the credentials were obtained by the subject. The resulting access control engines suffer from rigid service policies and complexity of management. In contrast, social authentication is based on the nature, quality, and length of previous encounters with each other. We posit that human-to-machine authentication is a similar causal effect of an earlier interaction with the verifying party. We use this notion to propose interaction provenance as the only unified representation model for all authentication factors in service oriented computing. Interaction provenance uses the causal relationship of past events to leverage service composition, cross-platform integration, timeline authentication, and easier adoption of newer methods. We extend our model with fuzzy authentication using past interactions and linguistic policies. The paper presents an interaction provenance recording and authentication protocol and a proof-of-concept implementation with extensive experimental evaluation.','Services Computing (SCC), 2015 IEEE International Conference on',1,'R. Khan; R. Hasan','ieee/service oriented architecture security.csv','ieee',''),(1237,'Framework for the model driven development of secure web services composition','2012','3','Business process modelling; Domain specific language; Model driven security; Security goals; Service oriented architecture; Services composition','Now a day\'s enterprises are implementing their WIS using web services technology by composing the web services. They are using the MDA approach to develop the WIS and UML is used as a modelling language for business process modelling. Security is not defined during the early phases of WIS development i.e. during designing the service composition and left to developers. Properly configuring security requirements for service composition is quite difficult for developers because they are not security experts; furthermore, service composition\'s security is cross-domain and all required information is not available at downstream phases. A Model Driven Security framework is proposed for the development of secure web services composition; where along with the business process modelling, using the UML Activity diagram, business domain expert also model the security objectives. Adding security during the design phase helps to save the time and effort during the implementation and verification of security in the SOA applications. Furthermore, specifying security requirements at abstract level, help the architectural team in choosing the different and potentially better security mechanisms. As a proof of work the proposed framework is applied to a typical business process of healthcare domain.','',1,'Saleem M.Q., Jaafar J.B., Hassan M.F.','scopus/service oriented architecture security.csv','scopus','\0'),(1238,'Robust handwriting extraction and lecture video summarization','2016','0',' Video segmentation Video summarization Notes extraction Image processing','Abstract In e-Learning research, teachers can record lecture videos in e-class and upload these lecture videos to e-Learning system themselves. Once lecture videos and handouts can be generated automatically in traditional classroom, it can help students with self-learning and teacher with lecture content development for e-Learning services. This paper proposed a teaching assistant system based on computer vision that can help in content development for e-Learning services. Lecture videos are taken by using two cameras and merged on both sides so that students can see a clear and complete teaching content. The k-means segmentation is used to extract board area and then connected component technique helps refill the board area which is covered by lecturer’s body. Then we use adaptive threshold to extract handwritings in various light conditions and time-series denoising technique is designed to reduce noise. According to extracted handwritings, the lecture videos can be automatically structured with high level of semantics. The lecture videos are segmented into video clips and all key-frames are integrated as handouts of the education videos.','Multimedia Tools and Applications',1,'Greg C. LeeFu-Hao YehYing-Ju ChenTao-Ku Chang','springer/soa security.csv','springer',''),(1239,'QoS-Aware and Ontology-Driven Autonomic Service Bus','2012','0','Architecture;Autonomic;Collaboration;Enterprise Service Bus;Interoperability;Ontology;Quality of Service','Distributed applications and more generally distributed systems are increasingly based on services that are integrated to implement complex functional processes. Diversity and heterogeneity of these services raise many needs for the integration. To meet these needs, the Enterprise Service Bus has been proposed for the development of standard based collaborative strategies between services and applications. However the lack of semantic, the competitiveness between services and the dynamicity of service-oriented architectures contexts (mobility, increase of consumers and providers of services, etc.) are the reason of unpredictable events such as service unavailability, high overhead and response time, decrease of reliability, security, etc. Those events ask to adapt the established integration strategies to ensure or improve performance and Quality of Service offered by the Enterprise Service Bus. In this context, we propose a QoS-aware and ontology-driven Autonomic Service Bus able to take into account non functional properties\' semantics in order to offer self-configuration and self-adaptation functionalities. Beyond the traditional objectives of enterprise service buses, our proposal includes the use of well known transport and network mechanisms to take into account autonomously both functional and non functional properties asked or offered by services consumers or providers.','Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE), 2012 IEEE 21st International Workshop on',1,'C. Diop; E. Exposito; C. Chassot; D. Jlidi','ieee/service oriented architecture security.csv','ieee','\0'),(1240,'Modeling robustness behavior using aspect-oriented modeling to support robustness testing of industrial systems','2012','18',' Aspect-oriented modeling UML state machines Robustness UML profile Crosscutting behavior Robustness testing','Abstract Model-based robustness testing requires precise and complete behavioral, robustness modeling. For example, state machines can be used to model software behavior when hardware (e.g., sensors) breaks down and be fed to a tool to automate test case generation. But robustness behavior is a crosscutting behavior and, if modeled directly, often results in large, complex state machines. These in practice tend to be error prone and difficult to read and understand. As a result, modeling robustness behavior in this way is not scalable for complex industrial systems. To overcome these problems, aspect-oriented modeling (AOM) can be employed to model robustness behavior as aspects in the form of state machines specifically designed to model robustness behavior. In this paper, we present a RobUstness Modeling Methodology (RUMM) that allows modeling robustness behavior as aspects. Our goal is to have a complete and practical methodology that covers all features of state machines and aspect concepts necessary for model-based robustness testing. At the core of RUMM is a UML profile (AspectSM) that allows modeling UML state machine aspects as UML state machines (aspect state machines). Such an approach, relying on a standard and using the target notation as the basis to model the aspects themselves, is expected to make the practical adoption of aspect modeling easier in industrial contexts. We have used AspectSM to model the crosscutting robustness behavior of a videoconferencing system and discuss the benefits of doing so in terms of reduced modeling effort and improved readability.','Software & Systems Modeling',1,'Shaukat AliLionel C. BriandHadi Hemmati','springer/service oriented architecture security.csv','springer',''),(1241,'Copyright page','2015','','','The following topics are dealt with: distributed systems; communication protocols and services engineering; SDN and security; service-oriented architectures, Web services, peer to peer network; mobile networks; routing; sensor networks, ad hoc networks, Internet of Things; and vehicular networks, ICN, resource sharing.','2015 International Conference on Protocol Engineering (ICPE) and International Conference on New Technologies of Distributed Systems (NTDS)',1,'','ieee/service oriented architecture security.csv','ieee',''),(1242,'An Approach to Automating the Integration of the Access Control Policies for Web Services','2013','2','Access Control Polices;Coordinating;Model Driven Architecture;Model Transformation;Quality of Service;Web services','Access Control Policies are one of the key challenges affecting Service oriented Architectures (SoA). This is due to the nature of SoA, which is based on the distributed invocations of Web services. This makes it crucial to develop a method of on-line assignment for Access Control Policies and Web services. This paper proposes a service referred to as Access Control Policies (AC Polices), which allows the simulation and verification of information flow security for access control policies. It extends an existing approach that was proposed to coordinate invocations of Web services from a performance perspective, to harnesses the capability of Model-Driven Architecture (MDA) to automate the creation and integration of the Protocol Service and Access Control Policies (AC Polices) service, which are computed, generated and integrated automatically into the system. As a proof of the concept, the suggested approach was implemented in the form of an Oracle JDeveloper plugin. The paper concludes with the empirical results, detailing the performance-related aspects of the proposed method.','Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD), 2013 14th ACIS International Conference on',1,'M. Alodib','ieee/service oriented architecture security.csv','ieee','\0'),(1243,'Based-on SOA security policy for transverse networking system','2012','','Interface Standard; Networking System; Policy Security; SOA; TIPS','The transverse networking system based on financial, tax department, treasury, and banks is established for exchanging amounts of critical data. This high integrated and widely open system requires guarantee for higher security. Considering the security of transverse networking system, we combine the national platform based on SOA with P3DR2 dynamic security control mechanism. In this paper, we propose a new security policy for transverse networking system, and the policy enables to reduce the frequency access to national systems by provincial systems using L2 cache; meanwhile system security based on the proposed security policy can also be guaranteed.','',1,'Gu S., Li Z., Liu M., Sallam A., Huang L.','scopus/soa security.csv','scopus','\0'),(1244,'ACaaS: Access Control as a Service for IaaS Cloud','2013','1','access control;cloud computing;security','Organizations and enterprises have been outsourcing their computation, storage, and workflows to Infrastructure-as-a-Service (IaaS) based cloud platforms. The heterogeneity and high diversity of IaaS cloud environment demand a comprehensive and fine-grained access control mechanism, in order to meet dynamic, extensible, and highly configurable security requirements of these cloud consumers. However, existing security mechanisms provided by IaaS cloud providers do not satisfy these requirements. To address such an emergent demand, we propose a new cloud service called access control as a service (ACaaS), a service-oriented architecture in cloud to support multiple access control models, with the spirit of plug gable access control modules in modern operating systems. As a proof-of-concept reference prototype, we design and implement ACaaS_RBAC to provide role-based access control (RBAC) for Amazon Web Services (AWS), where cloud customers can easily integrate the service into enterprise applications in order to extend RBAC policy enforcement in AWS.','Social Computing (SocialCom), 2013 International Conference on',1,'R. Wu; X. Zhang; G. J. Ahn; H. Sharifi; H. Xie','ieee/service oriented architecture security.csv','ieee','\0'),(1245,'On the improvement of active XML (AXML) representation and query evaluation','2013','4',' Active XML AXML representation AXML query evaluation algorithm','Abstract Active XML (AXML) as intensional data aims to exploit potential computing powers of XML, Web services and P2P architecture. It is considered a powerful extension of XML to deal with dynamic XML data from autonomous and heterogeneous data sources on a very large scale via Web services. However, AXML is still at an immature stage and various issues need to be investigated before it can be accepted widely. This paper will focus on two issues facing the current AXML system, namely the representation and the query process. We propose superior representation and improved query evaluation for AXML. For justification purposes, we compare our proposed algorithms with the existing algorithms.','Information Systems Frontiers',1,'Binh Viet PhanEric PardedeWenny Rahayu','springer/service oriented architecture security.csv','springer','\0'),(1246,'Cloud repositories for research data – addressing the needs of researchers','2013','0',' Hybrid cloud storage Fedora repository DuraCloud Cost optimisation Rules engine','Abstract This paper describes the problems and explores potential solutions for providing long term storage and access to research outputs, focusing mainly on research data. The ready availability of cloud storage and compute services provides a potentially attractive option for curation and preservation of research information. In contrast to deploying infrastructure within an organisation, which normally requires long lead times and upfront capital investment, cloud infrastructure is available on demand and is highly scalable. However, use of commercial cloud services in particular raises issues of governance, cost-effectiveness, trust and quality of service. We describe a set of in-depth case studies conducted with researchers across the sciences and humanities performing data-intensive research, which demonstrate the issues that need to be considered when preserving data in the cloud. We then describe the design of a repository framework that addresses these requirements. The framework uses hybrid cloud, combining internal institutional storage, cloud storage and cloud-based preservation services into a single integrated repository infrastructure. Allocation of content to storage providers is performed using on a rules-based approach. The results of an evaluation of the proof-of-concept system are described.','Journal of Cloud Computing: Advances, Systems and Applications',1,'Simon WaddingtonJun ZhangGareth KnightJens JensenRoger DowningCheney Ketley','springer/service oriented architecture security.csv','springer','\0'),(1247,'A cloud-based model for hospital information systems integration','2014','','Cloud Computing; HIS; Integration; SOA','Integration of hospital information systems (HIS) is an important area and one the basic requirements of hospitals since it increases quality of care and at the same time reduces costs of creating, upgrading, updating and keeping up with technology and healthcare industry standards and information technology. Cloud computing with features like multitenancy, massive scalability, elasticity, pay as you go and self-provisioning resources help healthcare organizations achieve their goals. This paper presents a cloud computing model for integration of hospital information systems which is based on service oriented architecture. Having considered the requirements of HIS integration, the proposed model enables convenient access for all system components including both service provider and organizational components. To ensure security and high level of availability required for medical information, a Backup and Recovery Cloud service is included in our model to provide the users with the ability to retrieve information in critical situations. In addition, a minimum level of local basic services is included in our model that makes possible retrieving information when the hospital faces network disconnection from the cloud. A scenario-based evaluation method is used for assessment of the proposed model which shows adopting cloud computing technology is an effective way for integrating health information systems. © 2014 IEEE.','',1,'Setareh S., Rezaee A., Farahmandian V., Hajinazari P., Asosheh A.','scopus/service oriented architecture security.csv','scopus','\0'),(1248,'Challenges of Future e-Infrastructure Governance','2012','0',' e-Infrastructures governance service-orientation','Abstract A shift of interest of both providers and consumers from resource provisioning to a system of infrastructure services as well for a governance system for e-Infrastructures based on a user-centric approach is registered nowadays. Applying service level management tools and procedures in e-Infrastructure service provision practices allow users, service providers and funding agencies to investigate e-Infrastructure services in view of individual use cases. The shift should be sustained by legal structures, strategic and financial plans, as well as by openness, neutrality and diversity of resources and services. e-IRG as an e-infrastructure policy forum envisioned these trends and needs and expressed its position in its recent white paper that is shortly presented and discussed from a perspective of building future research agendas of individual teams.','',1,'Dana Petcu','springer/service oriented architecture security.csv','springer','\0'),(1249,'Intelligent GIS Conceptualization','2014','0',' GIS IGIS Artificial intelligence Inference machine Ontology','Abstract The concept of an intelligent geographic information system (IGIS) is not new. However, the term represents a complex set of ideas and methods that cannot be combined into one method, theory, or concept. This chapter attempts to describe this new domain in geographic information system science and technology. Here, we present selected results of theoretical investigations and technological developments to share the vision of IGIS.','',1,'Vasily V. Popovich','springer/service oriented architecture security.csv','springer','\0'),(1250,'A model for implementing security at application level in service oriented architecture','2014','','Application Level Security in SOA; Service Oriented Architecture (SOA); Service Oriented Computing (SOC); Service Oriented Software (SOS); SOA security policy; Web Services Architecture (WSA)','Securing the communication channels only, cannot guaranty end-to-end security in SOA based systems. To provide complete security, there is need to provide security at application level for SOA based systems. But it is a great challenge for the developer of the web services to implement the security during development of the web services. In this paper we have proposed a model, which will automate the generation of security policies for web services. This system will facilitate and enable the developers of the web services, to generate and implement security policies during the development of the web services, without having intensive knowledge of the security domain and the underlying system. The proposed system will also make the application level experts independent of the security experts for the generation and implementation of the security policy for the development of the web services. © 2014 Academy Publisher.','',1,'Nabi S., Rehman S.U., Fong S., Aziz K.','scopus/service oriented architecture security.csv','scopus','\0'),(1251,'Event Pattern Discovery for Cross-Layer Adaptation of Multi-cloud Applications','2014','1',' Cloud computing SOA adaptation modeling pattern discovery','Abstract As Cloud computing becomes a widely accepted service delivery platform, developers usually resort in multi-cloud setups to optimize their application deployment. In such heterogeneous environments, during application execution, various events are produced by several layers (Cloud and SOA specific), leading to or indicating Service Level Objective (SLO) violations. To this end, this paper proposes a meta-model to describe the components of multi-cloud Service-based Applications (SBAs) and an event pattern discovery algorithm to discover valid event patterns causing specific SLO violations. The proposed approach is empirically evaluated based on a real-world application.','',1,'Chrysostomos ZeginisKyriakos KritikosDimitris Plexousakis','springer/service oriented architecture security.csv','springer','\0'),(1252,'Toward Systematic Integration of Security Policies into Web Services','2011','0','AOP;BPEL;RBAC;Security Policies;Web Services Security','In this paper, we introduce our approach for the automatic generation of BPEL (Business Process Execution Language) aspects from security policies. It is based on a synergy between policies, Aspect-Oriented Programming (AOP) and composition of web services. Our proposed approach allows first to transform security policies into BPEL aspects. Then, the generated aspects are weaved in the BPEL process of the composed web services at runtime [1]. The main contributions of our approach are: (1) Describing dynamic security policies, (2) generating automatically the BPEL aspects, (3) separating the business and security concerns of composite web services, and hence developing them separately (4) allowing the modification of the dynamic security features and web services composition at run time and (5) providing modularity for modeling cross-cutting concerns between web services.','Intelligence and Security Informatics Conference (EISIC), 2011 European',2,'A. Mourad; H. Otrok; S. Ayoubi','ieee/bpel security.csv','ieee','\0'),(1253,'Software Development Methods in the Internet of Things','2013','0','','Abstract In the Internet of Things, billions of networked and software- driven devices will be connected to the Internet. They can communicate and cooperate with each other to function as a composite system. This paper proposes the AMG (abstract, model and generate) method for the development of such composite systems. With AMG, the development of software application can be done in an automatic manner, and therefore reducing the cost and develpment time. The method has been prototyped and tested with use cases.','',2,'Selo Sulistyo','springer/bpel security.csv','springer','\0'),(1254,'Automated validation of trust and security of service-oriented architectures with the AVANTSSAR platform','2012','1','','Cutting-edge network infrastructures such as Service-Oriented Architectures (SOAs) or, more generally, the Internet of Services (IoS) entail a major paradigm shift in the way ICT systems and applications are designed, implemented, deployed and consumed: they are no longer the result of programming components in the traditional meaning but are built by composing services that are distributed over the network and reconfigured and consumed dynamically in a demand-driven, flexible way. However, the new opportunities opened by the IoS will only materialize if concepts, techniques and tools are provided to ensure security. In fact, deploying services in such network infrastructures entails a wide range of trust and security issues, but solving them is extremely hard since making the service components trustworthy is not sufficient: composing services leads to new, subtle and dangerous, vulnerabilities due to interference between component services and policies, the shared communication layer, and application functionality. Thus, one needs validation of both the service components and their composition into secure service architectures.','High Performance Computing and Simulation (HPCS), 2012 International Conference on',1,'L. Viganó','ieee/service oriented architecture security.csv','ieee','\0'),(1255,'A Service-Oriented Middleware for Building Collaborative UAVs','2014','5',' Unmanned aerial vehicles Middleware Collaborative UAVs Service-oriented computing','Abstract For a while, Unmanned Arial Vehicles (UAVs) use was limited to military applications, however recently UAVs are also used for a wide range of civilian applications. Some of these UAV applications may involve multiple UAVs that must cooperate to achieve a common goal. This kind of applications is termed collaborative UAV applications. This paper investigates the collaborative aspects and challenges of multiple UAV systems. One of the main issues for multiple UAV systems is developing an effective framework to enable the development of software systems for collaborative UAV operations. One possible approach is to rely on service-oriented computing and service-oriented middleware technologies to simplify the development and operations of such applications. This paper discusses how the service-oriented middleware approach can help resolve some of the challenges of developing collaborative UAVs. The paper also proposes a service-oriented middleware architecture that can satisfy the development and operations of such applications.','Journal of Intelligent & Robotic Systems',1,'Nader MohamedJameela Al-JaroodiImad JawharSanja Lazarova-Molnar','springer/service oriented architecture security.csv','springer','\0'),(1256,'Parameters for Service Level Agreements Generation in Cloud Computing','2012','1','','Abstract Current Service Level Agreements are lacking completeness. They often leave out parameters that are important for the consumer. In addition, SLAs are predefined by the service providers and the consumer does not have a say in them. The goal of this paper is to find the important parameters that should initially be included in a Service Level Agreement between a cloud service provider and a cloud service consumer. In this paper we are showing a client-centric view of the SLA. Some examples for SLAs of services in the market are illustrated, in order to show the need to specify, which parameters should be included in the SLAs.','',1,'Mariam Rady','springer/service oriented architecture security.csv','springer','\0'),(1257,'Architecture approach for mobile service security','2014','','Compo-nent architecture model; Component based development; Mobile service architecture; Mobile service frameworks; Mobile service security; SOA (service oriented architecture)','Mobile computing is a relatively new field. While the challenges arising from mobility and the limitations of the portable devices are relatively well understood, there is no consensus yet as to what should be done to address these challenges. A comprehensive solution has to address many different aspects, such as the issue of dynamically changing bandwidth, the power, computational, and other limitations of the portable devices, or the varying availability of services in different environments. A Mobile service is pro-grammable application logic accessible using standard Internet protocols. In this paper, we present our architecture for such adaptive mobile service security applications. We motivated the architecture by classifying likely mobile applications and identified common properties. The architecture intends to be more general than previous work with respect to adaptability, flexibility, and user mobility. We developed various pieces of the overall architecture and collected some preliminary experience with adap-tive mobile applications. We give an overview of the intersection of the areas of software architecture and mobile applications. We consider the mobile applications, which represent the computing functionality designed to migrate across hardware devices at runtime and execute on mobile hardware platforms, and the mobile systems, which are computing applications that include mobile software and hardware elements. © 2014 SERSC.','',1,'Chung Y.','scopus/service oriented architecture security.csv','scopus','\0'),(1258,'An architecture framework for enterprise IT service availability analysis','2014','4',' Systems availability Service availability Downtime Noisy-OR System quality analysis Enterprise Architecture ArchiMate Metamodel OCL','Abstract This paper presents an integrated enterprise architecture framework for qualitative and quantitative modeling and assessment of enterprise IT service availability. While most previous work has either focused on formal availability methods such as fault trees or qualitative methods such as maturity models, this framework offers a combination. First, a modeling and assessment framework is described. In addition to metamodel classes, relationships and attributes suitable for availability modeling, the framework also features a formal computational model written in a probabilistic version of the object constraint language. The model is based on 14 systemic factors impacting service availability and also accounts for the structural features of the service architecture. Second, the framework is empirically tested in nine enterprise information system case studies. Based on an initial availability baseline and the annual evolution of the 14 factors of the model, annual availability predictions are made and compared with the actual outcomes as reported in SLA reports and system logs. The practical usefulness of the method is discussed based on the outcomes of a workshop conducted with the participating enterprises, and some directions for future research are offered.','Software & Systems Modeling',2,'Ulrik FrankePontus JohnsonJohan König','springer/bpel security.csv','springer',''),(1259,'An Exposition of Performance-Security Trade-offs in RANETs Based on Quantitative Network Models','2013','0',' Mobile ad hoc network (MANET) Robotic mobile wireless ad hoc network (RANET) Quality-of-service (QoS) Queueing network (QN) Generalised stochastic Petri net (GSPN)','Abstract Security mechanisms, such as encryption and authentication protocols, require extra computing resources and therefore, have an adverse effect upon the performance of robotic mobile wireless ad hoc networks (RANETs). Thus, an optimal performance and security trade-off should be one of the main aspects that should be taken into consideration during the design, development, tuning and upgrading of such networks. In this context, an exposition is initially undertaken on the applicability of Petri nets (PNs) and queueing networks (QNs) in conjunction with their generalisations and hybrid integrations as robust quantitative modelling tools for the performance analysis of discrete flow systems, such as computer systems, communication networks and manufacturing systems. To overcome some of the inherent limitations of these models, a novel hybrid modelling framework is explored for the quantitative evaluation of RANETs, where each robotic node is represented by an abstract open hybrid G-GSPN_QN model with head-of-line priorities, subject to combined performance and security metrics (CPSMs). The proposed model focuses on security processing and state-based control and it is based on an open generalised stochastic PN (GSPN) with a gated multi-class ‘On–Off’ traffic and mobility model. Moreover, it employs a power consumption model and is linked in tandem with an arbitrary QN consisting of finite capacity channel queues with blocking for ‘intra’ robot component-to-component communication and ‘inter’ robot-to-robot transmission. Conclusions and future research directions are included.','Wireless Personal Communications',1,'Guzlan M. A. MiskeenDemetres D. KouvatsosEsmaeil Habibzadeh','springer/service oriented architecture security.csv','springer','\0'),(1260,'Translation error handling for multi-protocol SOA systems','2015','','Arrowhead; Cyber-physical systems; Error handling; Internet of Things; Protocol translation; SOA; Translation','The IoT research area has evolved to incorporate a plethora of messaging protocol standards, both existing and new, emerging as preferred communications means. The variety of protocols and technologies enable IoT to be used in many application scenarios. However, the use of incompatible communication protocols also creates vertical silos and reduces interoperability between vendors and technology platform providers. In many applications, it is important that maximum interoperability is enabled. This can be for reasons such as efficiency, security, end-to-end communication requirements etc. In terms of error handling each protocol has its own methods, but there is a gap for bridging the errors across protocols. Centralized software bus and integrated protocol agents are used for integrating different communications protocols. However, the aforementioned approaches do not fit well in all Industrial IoT application scenarios. This paper therefore investigates error handling challenges for a multi-protocol SOA-based translator. A proof of concept implementation is presented based on MQTT and CoAP. Experimental results show that multi-protocol error handling is possible and furthermore a number of areas that need more investigation have been identified. © 2015 IEEE.','',1,'Derhamy H., Eliasson J., Delsing J., Pereira P.P., Varga P.','scopus/soa security.csv','scopus',''),(1261,'Modelling and Analysis of Dynamic Reconfiguration in BP-Calculus','2012','0','','Abstract The BP-calculus is a formalism based on the π -calculus and encoded in WS-BPEL. The BP-calculus is intended to specificaly model and verify Service Oriented Applications. One important feature of SOA is the ability to compose services that may dynamically evolve along runtime. Dynamic reconfiguration of services increases their availability, but puts accordingly, heavy demands for validation, verification, and evaluation. In this paper we formally model and analyze dynamic reconfigurations and their requirements in BP-calculus and show how reconfigurable components can be modeled using handlers that are essential parts of WS-BPEL language.','',2,'Faisal AbouzaidJohn MullinsManuel MazzaraNicola Dragoni','springer/bpel security.csv','springer','\0'),(1262,'Profitability and cost management of trustworthy composite services','2012','','','Building business solutions may require combining multiple existing services. In SOA paradigm this can be achieved using composite services. Composite services may be in turn recursively composed with other services into higher level solutions. The number of component services that need to be aggregated may be large and dynamically changing. Additionally, the component services may vary in their trustworthiness and cost and in their importance to the value of the composite service. Therefore, determining and maintaining the optimal composition in terms of its short-term and long-term profitability and building and expanding consumer base for composite service providers are challenging goals especially in the competitive business service environments. This paper addresses how to create profitable, consumer-focused and trustworthy composite services through optimising pricing and managing the cost and the trustworthiness of those services. The techniques described support consumer differentiation, prioritisation of offered services and dynamic capacity-dependent component charging. © 2012 Springer-Verlag.','',1,'Elshaafi H., McGibney J., Botvich D.','scopus/soa security.csv','scopus','\0'),(1263,'Trust-based security-level evaluation method for dynamic service-oriented environments','2015','1','anomaly detection; future Internet; security-level evaluation; service-oriented architecture','Summary A method of decision-making in security-level estimation process of service-based applications in future Internet architecture is proposed. We demonstrate how distributed services can be composed to form an application run within the next-generation network infrastructure and their security level may be assessed. Our approach is illustrated by the experiments carried on exemplary application (virtual laboratory online lab, using future Internet IPv6 QoS architecture), in which our method was evaluated against two types of attacks observed with the use of traffic anomaly detection methods. © 2015 John Wiley & Sons, Ltd.','',1,'Kołaczek G., Juszczyszyn K., ͆wiątek P., Grzech A., Schauer P., Stelmach P., Falas Ł.','scopus/service oriented architecture security.csv','scopus',''),(1264,'Preference and Similarity-Based Behavioral Discovery of Services','2013','3','','Abstract We extend Constraint Automata by replacing boolean constraints with semiring-based soft constraints. The obtained general formal tool can be used to represent preference-based and similarity-based queries, which allow a user more freedom in choosing the behavior of the service to finally use, among all possible choices. A user states his preferences through a “soft” query, and obtains results that satisfy this query with different levels of preference. The soft requirements may involve a parameter data of the service operations, or the (names of the) operations themselves. Moreover, we introduce a first implementation of the search procedure by using declarative (soft) Constraint Programming.','',1,'Farhad ArbabFrancesco Santini','springer/service oriented architecture security.csv','springer','\0'),(1265,'Threats management throughout the software service life-cycle','2014','','','Software services are inevitably exposed to a fluctuating threat picture. Unfortunately, not all threats can be handled only with preventive measures during design and development, but also require adaptive mitigations at runtime. In this paper we describe an approach where we model composite services and threats together, which allows us to create preventive measures at design-time. At runtime, our specification also allows the service runtime environment (SRE) to receive alerts about active threats that we have not handled, and react to these automatically through adaptation of the composite service. A goal-oriented security requirements modelling tool is used to model business-level threats and analyse how they may impact goals. A process flow modelling tool, utilising Business Process Model and Notation (BPMN) and standard error boundary events, allows us to define how threats should be responded to during service execution on a technical level. Throughout the software life-cycle, we maintain threats in a centralised threat repository. Re-use of these threats extends further into monitoring alerts being distributed through a cloud-based messaging service. To demonstrate our approach in practice, we have developed a proof-of-concept service for the Air Traffic Management (ATM) domain. In addition to the design-time activities, we show how this composite service duly adapts itself when a service component is exposed to a threat at runtime. © Erlend Andreas Gjære & Per Hakon Meland This work is licensed under the Creative Commons Attribution License.','',2,'Gjære E.A., Meland P.H.','scopus/bpmn security.csv','scopus',''),(1266,'Cellular Networking Technologies in ITS Solutions: Opportunities and Challenges','2012','0',' ITS HSPA LTE 802.11p DSRC connectivity enablement flexible subscription management service enablement OSGi virtualization','Abstract The Intelligent Transport Systems (ITS) domain is already today the leading vertical industry sector for the adoption of cellular connectivity. In-built and brought-in access to mobile telecommunication networks is a key enabler for advanced safety, navigation and infotainment services. The growing complexity of the industry ecosystem as well as the diverse service requirements put on the underlying connectivity and service enablement infrastructure demand for open, flexible and scalable end-to-end ITS solutions. In this paper we present scenarios, solution requirements, service enablers and an end-to-end ITS system architecture, covering in-vehicle and backend components, connectivity solutions and service life-cycle management. While we put specific emphasis on presenting opportunities and challenges relating to cellular ITS solutions, we also point out aspects relating to the required marriage with Dedicated Short Range Communication (DSRC) systems. Complemented by experiences from projects with industry partners and the research community and by reflections on ongoing efforts in ITS standardization, we conclude that only by a combination of cellular and DSRC networking technologies the full range of consumer and business needs will be addressed.','',1,'Andreas FasbenderMartin GerdesSascha Smets','springer/service oriented architecture security.csv','springer','\0'),(1267,'Open Problems in Network Security - IFIP WG 11.4 International Workshop, iNetSec 2011, Revised Selected Papers','2012','','','The proceedings contain 12 papers. The topics discussed include: evoking comprehensive mental models of anonymous credentials; towards usable interfaces for proof based access rights on mobile devices; commercial home assistance (ehealth) services; detecting computer worms in the cloud; efficient and stealthy instruction tracing and its applications in automated malware analysis: open problems and challenges; energy-efficient cryptographic engineering paradigm; towards a similarity metric for comparing machine-readable privacy policies; abstract privacy policy framework: addressing privacy problems in SOA; flexible and dynamic consent-capturing; towards user centric data governance and control in the cloud; and securing data provenance in the cloud.','',1,'[No author name available]','scopus/soa security.csv','scopus','\0'),(1268,'Harmonization of ISO/IEC 9001:2000 and CMMI-DEV: from a theoretical comparison to a real case application','2012','5',' Harmonization Mapping SPI Multi-model CMMI-DEV ISO 9001 GQM','Abstract In the past years, both industrial and research communities in Software Engineering have shown special interest in Software Process Improvement—SPI. This is evidenced by the growing number of publications on the topic. The literature offers numerous quality frameworks for addressing SPI practices, which may be classified into two groups: ones that describe “what” should be done (ISO 9001, CMMI) and ones that describe “how” it should be done (Six Sigma, Goal Question Metrics-GQM). When organizations decide to adopt improvement initiatives, many models may be implied, each leveraging the best practices provided, in the quest to address the improvement challenges as well as possible. This may at the same time, however, generate confusion and overlapping activities, as well as extra effort and cost. That, in turn, risks generating a series of inefficiencies and redundancies that end up leading to losses rather than to effective process improvement. Consequently, it is important to move toward a harmonization of quality frameworks, aiming to identify intersections and overlapping parts, as well as to create a multi-model improvement solution. Our aim in this work is twofold: first of all, we propose a theoretical harmonization process that supports organizations interested in introducing quality management and software development practices or concerned about improving those they already have. This is done with specific reference to CMMI-DEV and ISO 9001 models in the direction “ISO to CMMI-DEV”, showing how GQM is used to define operational goals that address ISO 9001 statements, reusable in CMMI appraisals. Secondly, we apply the theoretical comparison process to a real case, i.e., a Small Enterprise certified ISO 9001.','Software Quality Journal',1,'Maria Teresa BaldassarreDanilo CaivanoFrancisco J. PinoMario PiattiniGiuseppe Visaggio','springer/soa security.csv','springer','\0'),(1269,'Security policy monitoring of composite services','2014','','BPMN; Complex event processing; Monitoring; Secure service composition; Security policy; SOA','One important challenge the Aniketos platform has to address is the effective monitoring of services at runtime to ensure that services behave as promised. A service developer plays the role that is responsible for constructing service compositions and the service provider is responsible for offering them to consumers of the Aniketos platform. Typically, service consumers will have different needs and requirements; they have varying business goals and different expectations from a service, for example in terms of functionality, quality of service and security needs. Given this, it is important to ensure that a service should deliver for which it has been selected and should match the consumer’s expectations. If it fails, the system should take appropriate subsequent reactions, e.g., notifications to the service consumer or service designer.In this chapter, we present the policy-driven monitoring framework which is developed as part of the Aniketos project. The monitoring framework allows different user-specified policies to be monitored simultaneously. The monitoring is performed at the business level, as well as at the implementation level, which allows for checking the policies of composite services as well as atomic ones. The framework sends an alarm in case of policy violation to notify the interested parties and triggers re-composition or re-configuration of the service. © Springer International Publishing Switzerland 2014.','',2,'Asim M., Yautsiukhin A., Brucker A.D., Lempereur B., Shi Q.','scopus/bpmn security.csv','scopus','\0'),(1270,'Managing Clouds, Smart Networks and Services: A Report on APNOMS 2011','2012','3',' Network operations and management Management of clouds Smart networks and services','Abstract This article presents a report on APNOMS 2011, which was held September 21–23, 2011 in Taipei, Taiwan. The theme of APNOMS 2011 was “Managing Clouds, Smart Networks and Services.”','Journal of Network and Systems Management',1,'James Won-Ki HongYuan-Kuang TuChoong Seon HongShian-Shyong TsengYoshiaki KirihaHan-Chieh ChaoMarat ZhanikeevWang-Cheol Song','springer/soa security.csv','springer','\0'),(1271,'Cloud computing setup for a campus environment','2012','2','cloud computing; IaaS; multitenancy; PaaS; SaaS; SOA; virtualization','Cloud computing is the most feasible solution for the problems like spaces to store the information and computing power. No one in this world has enough space to store all the information available. Cloud computing in form of resource sharing can increase the computing power, mobility of data, huge lot of space etc. In this paper the case of BITS Pilani, Dubai Campus (BPDC) has been considered for the cloud applications. There are some cloud applications available in BPDC, one of them has been discussed (implementation, deployment, security etc.) in depth. © 2012 IEEE.','',1,'Kumar N., Mittal R.K.','scopus/soa security.csv','scopus','\0'),(1272,'A Context-Aware Access Control Framework for Software Services','2014','0',' Context-awareness context context-aware access control situation situation-aware access control access control policy','Abstract In the present age, context-awareness is an important aspect of the dynamic environments and the different types of dynamic context information bring new challenges to access control systems. Therefore, the need for the new access control frameworks to link their decision making abilities with the context-awareness capabilities have become increasingly significant. The main goal of this research is to develop a new access control framework that is capable of providing secure access to information resources or software services in a context-aware manner. Towards this goal, we propose a new semantic policy framework that extends the basic role-based access control (RBAC) approach with both dynamic associations of user-role and role-service capabilities. We also introduce a context model in modelling the basic and high-level context information relevant to access control. In addition, a situation can be determined on the fly so as to combine the relevant states of the entities and the purpose or user’s intention in accessing the services. For this purpose, we can propose a situation model in modelling the purpose-oriented situations. Finally we need a policy model that will let the users to access resources or services when certain dynamically changing conditions (using context and situation information) are satisfied.','',1,'A. S. M. KayesJun HanAlan Colman','springer/service oriented architecture security.csv','springer','\0'),(1273,'Time-Dependent Analysis of Attacks','2014','1','','Abstract The success of a security attack crucially depends on time: the more time available to the attacker, the higher the probability of a successful attack; when given enough time, any system can be compromised. Insight in time-dependent behaviors of attacks and the evolution of the attacker’s success as time progresses is therefore a key for effective countermeasures in securing systems. This paper presents an efficient technique to analyze attack times for an extension of the prominent formalism of attack trees. If each basic attack step, i.e. , each leaf in an attack tree, is annotated with a probability distribution of the time needed for this step to be successful, we show how this information can be propagated to an analysis of the entire tree. In this way, we obtain the probability distribution for the entire system to be attacked successfully as time progresses. For our approach to be effective, we take great care to always work with the best possible compression of the representations of the probability distributions arising. This is achieved by an elegant calculus of acyclic phase type distributions, together with an effective compositional compression technique. We demonstrate the effectiveness of this approach on three case studies, exhibiting orders of magnitude of compression.','',1,'Florian ArnoldHolger HermannsReza PulunganMariëlle Stoelinga','springer/webservice security.csv','springer','\0'),(1274,'Static analysis for web service security - Tools & techniques for a secure development life cycle','2015','','Cyber Security; Penetration Testing; RESTFul API; Secure Design; Secure Software Development; Security Code Review; Service Oriented Architecture; SOA; SOAP; Source Code Analysis; Static Analysis Tool; Static Code Analysis; Web Application security; Web Services; Web Services Security','In this ubiquitous IoT (Internet of Things) era, web services have become a vital part of today\'s critical national and public sector infrastructure.With the industry wide adaptation of service-oriented architecture (SOA), web services have become an integral component of enterprise software eco-system, resulting in new security challenges. Web services are strategic components used by wide variety of organizations for information exchange on the internet scale. The public deployments of mission critical APIs opens up possibility of software bugs to be maliciously exploited. Therefore, vulnerability identification in web services through static as well as dynamic analysis is a thriving and interesting area of research in academia, national security and industry. © 2015 IEEE.','',1,'Masood A., Java J.','scopus/service oriented architecture security.csv','scopus',''),(1275,'Semi-formal transformation of secure business processes into analysis class and use case models: An MDA approach','2010','27','BPMN; MDA; Secure business processes; UML','Context: Model-Driven Development (MDD) is an alternative approach for information systems development. The basic underlying concept of this approach is the definition of abstract models that can be transformed to obtain models near implementation. One fairly widespread proposal in this sphere is that of Model Driven Architecture (MDA). Business process models are abstract models which additionally contain key information about the tasks that are being carried out to achieve the company\'s goals, and two notations currently exist for modelling business processes: the Unified Modelling Language (UML), through activity diagrams, and the Business Process Modelling Notation (BPMN). Objective: Our research is particularly focused on security requirements, in such a way that security is modelled along with the other aspects that are included in a business process. To this end, in earlier works we have defined a metamodel called secure business process (SBP), which may assist in the process of developing software as a source of highly valuable requirements (including very abstract security requirements), which are transformed into models with a lower abstraction level, such as analysis class diagrams and use case diagrams through the approach presented in this paper. Method: We have defined all the transformation rules necessary to obtain analysis class diagrams and use case diagrams from SBP, and refined them through the characteristic iterative process of the action-research method. Results: We have obtained a set of rules and a checklist that make it possible to automatically obtain a set of UML analysis classes and use cases, starting from SBP models. Our approach has additionally been applied in a real environment in the area of the payment of electrical energy consumption. Conclusions: The application of our proposal shows that our semi-automatic process can be used to obtain a set of useful artifacts for software development processes. © 2010 Elsevier B.V. All rights reserved.','',2,'Rodríguez A., Guzmán I.G.-R.d., Fernández-Medina E., Piattini M.','scopus/bpmn security.csv','scopus',''),(1276,'Remote Collaboration, Decision Support, and On-Demand Medical Image Analysis for Acute Stroke Care','2015','0',' Acute care Cloud computing Decision support High performance computing Medical image analysis Remote collaboration Stroke Telemedicine','Abstract Acute stroke is the leading cause of disabilities and the fourth cause of death worldwide. The treatment of stroke patients often requires fast collaboration between medical experts and fast analysis and sharing of large amounts of medical data, especially image data. In this situation, cloud technologies provide a potentially cost-effective way to optimize management of stroke patients and, consequently, improve patient outcome. This paper presents a cloud-based platform for Medical Distributed Utilization of Services & Applications (MEDUSA). This platform aims at improving current acute care settings by allowing fast medical data exchange, advanced processing of medical image data, automated decision support, and remote collaboration between physicians in a secure and responsive virtual space. We describe a prototype implemented in the MEDUSA platform for supporting the treatment of acute stroke patients. As the initial evaluation illustrates, this prototype improves several aspects of current stroke care and has the potential to play an important role in the care management of acute stroke patients.','',1,'Renan Sales BarrosJordi BorstSteven KleynenbergCéline BadrRama-Rao GanjiHubrecht de BliekLandry-Stéphane Zeng-EyindangaHenk van den BrinkCharles MajoieHenk MarqueringSílvia Delgado Olabarriaga','springer/service oriented architecture security.csv','springer',''),(1277,'Components of a multi-perspective modeling method for designing and managing IT security systems','2016','0',' IT security Multi-perspective security management Information security modeling Enterprise modeling Domain-specific modeling language','Abstract Information technology (IT) security design and management are a major concern and substantial challenge for IT management. Today’s highly complex business and technological environments and the need to effectively communicate and justify IT security requirements and controls demand methodical support. The modeling method presented in this paper addresses this demand. The method is based on the assumption that enriched enterprise models integrating technological, business, organizational and strategic aspects provide an effective foundation for developing and managing IT security systems and facilitating communication and understanding between stakeholders. The proposed modeling method for designing and managing IT security in organizations accounts for different perspectives and is based on multi-perspective enterprise modeling. The core components of the method, based on analysis of requirements at different levels of abstraction, are: modeling language concepts specifically designed to address security issues, process models that guide the use of the resulting language, and a modeling environment. The method facilitates elaborate representations of the various aspects of IT security at different levels of abstraction and covers the entire lifecycle of IT security systems. It not only supports multi-perspective requirement analysis and design but also enables monitoring and analysis of IT security at runtime. The presented artifact is evaluated with recourse to a research method that enables the configuration of multi-criteria justification procedures.','Information Systems and e-Business Management',2,'Anat GoldsteinUlrich Frank','springer/bpmn security.csv','springer',''),(1278,'Process interoperability in healthcare systems with dynamic semantic web services','2013','2',' Interoperability Ontology Workflow HL7 Web Services Mathematics Subject Classification 68Q55 [Computer Science]: Theory of Computing: Semantics','Abstract Healthcare systems are very complex due to extreme heterogeneity in their data and processes. Researchers and practitioner need to make systems interoperable and integrate for the benefit of all the stakeholders including hospitals, clinicians, medical support staff, and patients. The broader goal of interoperability can only be achieved when standards are practiced.Two different healthcare systems can earn HL7 conformance and compliance but at the same time can be incompatible for interoperability because of varying implementation of HL7 interaction model. This is mainly because workflows in healthcare systems are very complex. Interoperability on one hand requires flexible mechanism for the mapping of business processes to a standard, HL7 in our example. On the other hand it requires deeper understanding of the standard interaction model and gaps created by their incompatible implementations. In this paper we propose a novel technique of dynamically creating semantic web services as overlay on top of the existing services. We used Web Service Modeling Framework as an underlying architecture for HL7 process artifacts implementation as semantic web services. These semantic services are mapped to our proposed interaction ontology. Integrated reasoning mechanism provides necessary execution semantics for more effective and seamless end-to-end communication.The prototype we tested on different processes from the laboratory domain at a local diagnostic laboratory with uninterrupted process flow. The scenario of Result Query Placer interaction flow and its associated process artifacts are executed for the proof of concept.The proposed solution complements the existing data interoperability in HL7 and leads to semantic process interoperability. The achievement of semantic interoperability results in timely delivery of healthcare services to patients saving precious lives.','Computing',1,'Wajahat Ali KhanMaqbool HussainKhalid LatifMuhammad AfzalFarooq AhmadSungyoung Lee','springer/soa security.csv','springer','\0'),(1279,'Towards Cloud Computing: A Literature Review on Cloud Computing and Its Development Trends','2012','20','Cloud Computing;Clouds Security;Development Trends;Serivce Governance;Service-Oriented Architecture','This article contains a review of technical literature relating the definitions, characteristics, operations, security management, service governance, and development trends of cloud computing. The advantages and disadvantages of cloud computing are respectively described to represent the impacts of cloud computing in various fields. The article also explains the structure of clouds in service-oriented architectures and summarizes six major development trends, which can be utilized as a reference for entrepreneurs and researchers.','2012 Fourth International Conference on Multimedia Information Networking and Security',1,'K. Gai; S. Li','ieee/service oriented architecture security.csv','ieee','\0'),(1280,'QoS-aware and ontology-driven autonomic service bus','2012','1','Architecture; Autonomic; Collaboration; Enterprise Service Bus; Interoperability; Ontology; Quality of Service','Distributed applications and more generally distributed systems are increasingly based on services that are integrated to implement complex functional processes. Diversity and heterogeneity of these services raise many needs for the integration. To meet these needs, the Enterprise Service Bus has been proposed for the development of standard based collaborative strategies between services and applications. However the lack of semantic, the competitiveness between services and the dynamicity of service-oriented architectures contexts (mobility, increase of consumers and providers of services, etc.) are the reason of unpredictable events such as service unavailability, high overhead and response time, decrease of reliability, security, etc. Those events ask to adapt the established integration strategies to ensure or improve performance and Quality of Service offered by the Enterprise Service Bus. In this context, we propose a QoS-aware and ontology-driven Autonomic Service Bus able to take into account non functional properties\' semantics in order to offer self-configuration and self-adaptation functionalities. Beyond the traditional objectives of enterprise service buses, our proposal includes the use of well known transport and network mechanisms to take into account autonomously both functional and non functional properties asked or offered by services consumers or providers. © 2012 IEEE.','',1,'Diop C., Exposito E., Chassot C., Jlidi D.','scopus/service oriented architecture security.csv','scopus','\0'),(1281,'Authorization in cross-border eHealth systems','2012','2',' Authorization control Health system interoperability eHealth Service composition Web service collaboration','Abstract Modern eHealth systems require collaborations between individual social entities such as hospitals, medical centers, emergency services and community services. Security and privacy are critical issues in this interoperability challenge. In an eHealth system that crosses different administrative domains, individual organisations usually define their authorization control policies independently. When a collaboration opportunity arises a number of issues may be raised. For example, is the collaboration possible given the authorization policies of collaboration participants? How can policy inconsistencies among collaboration participants be identified and resolved? What kind of authorization control support is needed as the collaboration proceeds? In this paper, we analyze different types of collaborations and provide insights into authorization control in individual organisations as well as in collaboration activities. We propose a model to capture the necessary elements for specifying authorization policy for cross-border collaboration. Based on the model, various inconsistencies between authorization policies from different business units are discussed and handling strategies are suggested according to the intended collaboration types. We also briefly discuss how a description logic reasoner can be used to test whether two set of policies are suitable for collaboration. This work lays a foundation for policy development, negotiation and enforcement for cross-border collaboration.','Information Systems Frontiers',1,'Daisy Daiqin HeJian YangMichael ComptonKerry Taylor','springer/soa security.csv','springer','\0'),(1282,'A novel substitution judgment method for mobile cloud computing application system components','2015','','Mobile cloud computing; Pi-calculus; Service oriented architecture; Service substitution','Mobile cloud computing is a novel computing model, which integrates the cloud computing into the mobile environment and overcomes obstacles related to the performance, environment and security discussed in mobile computing. For a mobile cloud computing application system (MCCS), reliable components substitution is an important issue for troubleshooting and system upgrading. In this paper, this issue is equated to MCCS services substitution based on a service-oriented architecture of MCCS. Further, a formal method for modeling MCCS service is proposed based on space-time Pi-calculus, which is presented through introducing location and time operators into classical Pi-calculus. Then, a decision theorem for MCCS service substitution is put forward according to the relationship between service compatibility and substitution. Finally, a case study is performed to show that how to apply this method to ensure MCCS components substitution. The experiment result shows that it is reasonable and feasible. © 2014 IEEE.','',1,'Wang P., Yang L., Li G.W., Gao X.','scopus/service oriented architecture security.csv','scopus',''),(1283,'Consistent Management of Context Information in Ubiquitous Systems','2014','1',' Distributed resources context-awareness systems ubiquitous and pervasive computing Service Oriented Architecture (SOA)','Abstract In context-aware systems, where the context information tends to be distributed and/or replicated, can be decisive to maintain the correctness of this information, owing to the decisions in context-aware systems are taken on the basis of it. In ubiquitous environments, new challenges are emerging, which can affect to the consistent management of the distributed context information. For instance, the dynamism is a feature that directly affects the availability of the resources deployed in the network, among other quality features, and it implies additional design and development efforts from software engineers. Service Oriented Architecture (SOA), together with replication techniques may help to improve resource availability and strengthen the system against node disconnections, nevertheless, additional techniques must be applied to ensure the consistency of the distributed/replicated resources. In this paper, an approach to support, from the software design stage, the synchronization and consistency management of context information is introduced. This approach follows the SOA model, and provides a common basis for the synchronization of distributed/replicated resources. A case study, related with an ubiquitous system deployed in a hospital where context-aware services can be found, will be described in order to show the feasibility of the proposal.','',1,'Gabriel Guerrero-ContrerasJosé Luis GarridoSara Balderas-DíazCarlos Rodríguez-Domínguez','springer/service oriented architecture security.csv','springer','\0'),(1284,'Knowledge Based Framework: A Case Study on Fast, Reliable, and Secure Web Services in UAVs','2014','0','Critical embedded systems;SOA;UAVs;Web services;performance','Advanced and complex embedded systems as multicore and multiprocessor systems are becoming common and this has stimulated the development of critical applications for them. UAVs (Unmanned Aerial Vehicles) constitute a typical application of a complex critical embedded system. One concept that can result in radically different solutions in UAVs is the use of Service-Oriented Architecture (SOA). The increasing use of SOA in critical applications demands dependable and cost effective techniques to ensure high security. In this paper we develop a different kind of services for avionics with different parameters (security, reliability and performance) to provide the use of SOA in a less critical part in the whole systems. The use of these services and the KBF (Knowledge Based Framework for Dynamically Changing Applications) presented in this paper can give more intelligence to the UAVs and provide a new form of segregating the UAV mission from the vehicle itself. The services were developed and a performance evaluation was conducted showing the benefits in choosing one service or another.','Information Technology: New Generations (ITNG), 2014 11th International Conference on',1,'D. Rodrigues; A. A. Chaves; K. R. L. J. C. Branco; R. Ramdhany; G. Coulson','ieee/service oriented architecture security.csv','ieee','\0'),(1285,'Optimized service discovery using QoS based ranking: A fuzzy clustering and particle swarm optimization approach','2011','5','Fuzzy clustering; Fuzzy expert system; PSO; Quality of Service (QOS); Service oriented architecture; Webservices','Webservices are the key technologies for the web applications developed using Service Oriented Architecture (SOA). Many outsourced webservices can be combined to provide value added services to the users. There are many challenges involved in its implementations. One of the essential challenges is service discovery which involves finding a set of suitable webservice candidates faster. When a large number of functionally-equivalent services have been discovered, it is difficult for users to choose which one is to be invoked. Researchers have proposed various techniques for service discovery like ranking the webservices based on their Quality of Service (QoS). The various parameters of quality are reliability, security, performance, etc. This paper presents an algorithm for building a rule based model for ranking the webservices based on quality of service (QoS) using fuzzy clustering and particle swarm optimization (PSO). In general, the numbers of rules are directly proportional to the number of quality attributes considered for ranking but PSO reduces the number of rules by removing the rules that are having less weightage and will not affect the system. This paper also proposes a new webservice reference that behaves as an expert system. It contains a rule base and a reference engine. The rule base consists of all the rules and a reference engine that triggers all these rules and gives the rank of the service as an output © 2011 IEEE.','',1,'Mohana R., Dahiya D.','scopus/webservice security.csv','scopus','\0'),(1286,'Applying SOA to an E-commerce system and designing a logical security framework for small and medium sized E-commerce based on SOA','2015','','','In the last two decades, as with the growth of internet technologies, E-commerce proves to be the best system for conducting business. The E-commerce systems overshadowed the physical part of markets. E-commerce has the advantages of exposure and most organizations adopted E-commerce rapidly as other technologies. To support growing E-commerce, we require better system integration loom and security structure so that enterprise customers and partners efficiently associated through their nets. Service Oriented Architecture (SOA) may be the answer to their problems. SOA provides an autonomous platform for initiatives to transmit with their clients and collaborators. With the advantages, SOA is also endowed with ease for message tampering and unauthorized access. This causes the security technology implementation of SOA based E-commerce very difficult at other technologies or advances. This paper provides an overview of the various Service Development Approaches (SDA) used for migrating towards SOA and several factors discussed, which considered in the performance evaluation of SDAs. The performance evaluations of SDAs are out of scope, for this research. The primary aim of this editorial is to, identifies and evaluates the flaws in the current security standard for small and medium sized E-commerce system, and proposed a logical security framework for SOA based E-commerce. © 2014 IEEE.','',1,'Luhach A.K., Dwivedi S.K., Jha C.K.','scopus/service oriented architecture security.csv','scopus',''),(1287,'Research on trust mechanism in military information grid','2012','1','authentication; fuzzy logic; grid; trust model','Trust issue is presently a research hotspot in military information grid. This paper first proposes a SOA-based unified identity authentication scheme, which can transplant the existing account systems into the new one by means of account association, to solve the problem of inter-network identity authentication. Then, this paper develops an asymmetric trust model based on fuzzy logic. This model takes into account several factors which may affect trust evaluation in military information grid, such as non-symmetric trust relationship between networks, time self-decay. Thus, the model will be more practical and effective. © 2012 IEEE.','',1,'Yang Q.-S., Ma H.-Y., Tao R., Zhang L., Wang B.-C.','scopus/soa security.csv','scopus','\0'),(1288,'Big Data Semantics in Industry 4.0','2015','0',' Industry 4.0 Cyber-Physical Systems Big Data Semantics Internet of Things Industrial automation Heterogeneity','Abstract The Industry 4.0 is a vision that includes connecting more intensively physical systems with their virtual counterparts in computers. This computerization of manufacturing will bring many advantages, including allowing data gathering, integration and analysis in the scale not seen earlier. In this paper we describe our Semantic Big Data Historian that is intended to handle large volumes of heterogeneous data gathered from distributed data sources. We describe the approach and implementation with a special focus on using Semantic Web technologies for integrating the data.','',1,'Marek ObitkoVáclav Jirkovský','springer/service oriented architecture security.csv','springer',''),(1289,'Event-B patterns and their tool support','2013','6',' Event-B Formal methods Design patterns Formal modelling Model reuse','Abstract Event-B has given developers the opportunity to construct models of complex systems that are correct-by-construction. However, there is no systematic approach, especially in terms of reuse, which could help with the construction of these models. We introduce the notion of design patterns within the framework of Event-B to shorten this gap. Our approach preserves the correctness of the models, which is critical in formal methods and also reduces the proving effort. Within our approach, an Event-B design pattern is just another model devoted to the formalisation of a typical sub-problem. As a result, we can use patterns to construct a model which can subsequently be used as a pattern to construct a larger model. We also present the interaction between developers and the tool support within the associated RODIN Platform of Event-B. The approach has been applied successfully to some medium-size industrial case studies.','Software & Systems Modeling',1,'Thai Son HoangAndreas FürstJean-Raymond Abrial','springer/soa security.csv','springer','\0'),(1290,'Continuous Data Collection Framework for Manufacturing Industries','2015','0',' Factories of future Real-time systems Collaborative networks','Abstract The combination of high-performance and quality with cost-effective productivity, realizing reconfigurable, adaptive and evolving factories leading to sustainable manufacturing industries is one of the emerging research challenges in the domain of Internet of Things. So, it is important to define strategies and technical solutions to allow manufacturing process to autonomously react to the changing factors. Continuous data collection from heterogeneous sources and infusion of such data into suitable processes to enable almost real-time reactive systems is emerging research domain. This research work provides a technical framework for continuous data collection in support of the supply network and manufacturing assets optimization based on collaborative production planning. This research work explores its connection to legacy systems, software components and hardware devices to provide information to the different data consumers. The most relevant achievement of this work is the framework to bridge differences among computing systems, devices and networks allowing uniformity for data access by application decoupling data consumers from data sources.','',1,'Sudeep GhimireRaquel MeloJose FerreiraCarlos AgostinhoRicardo Goncalves','springer/service oriented architecture security.csv','springer',''),(1291,'Virtualization and Scheduling Methods for 5G Cognitive Radio Based Wireless Networks','2016','0',' The fifth generation of cellular wireless standards (5G) Cognitive Radio (CR) Virtualization Resource allocation Scheduling Quality of Services (QoS) Wireless Innovative System for Dynamic Operating Megacommunications (WISDOM)','Abstract The 5G technology is a revolutionary technology, which will offer an “unlimited wireless world interconnection” (Badoi et al. in Wirel Pers Commun 57(3):441–464 2011 . doi: 10.​1007/​s11277-010-0082-9 ; Prasad 2014 ) and a large type of services to a vastly number of users, while using a high performance terminal. These services will most probably be provided to the users as cloud based services, with different Quality of Services (QoS) characteristics. More exactly, based on the user subscription and on the required service, the user will be served with a given QoS. Each type of QoS services class will be assured by a 5G virtual network, having a one-to-one QoS class versus 5G virtual network correspondence. In this context, the virtualization and scheduling methods will play an important role regarding the ability to provide such services in 5G networks. In this paper we present the virtualization concept within 5G networks, while also describing the existing work conducted until now in wireless networks and Future Internet fields. Two virtualization methods are also presented in this paper, based on the spectrum sharing principle used in the Cognitive Radio networks (Badoi et al. in Wirel Pers Commun 57(3):441–464 2011 . doi: 10.​1007/​s11277-010-0082-9 ) and based on partition principle used in Future Internet (Nejbati et al. 2012 ). A combination of these two methods should offer a better granularity of 5G networks virtualization, with the price of an increased complexity.','Wireless Personal Communications',1,'Cornelia-Ionela BadoiNeeli PrasadRamjee Prasad','springer/service oriented architecture security.csv','springer',''),(1292,'Seamless Access to the PL-Grid e-Infrastructure Using UNICORE Middleware','2012','0',' UNICORE Grid PL-Grid','Abstract This chapter provides a brief overview of the UNICORE grid middleware and its utilization in the large Distributed Computing Infrastructure. UNICORE framework, in its recent version implements key grid standards and specifications. The system architecture and capabilities, such as security, workflow and data management are described. The installation of the UNICORE environment in the PL-Grid is presented. Special attention is given to the integration of the UNICORE middleware with the PL-Grid authentication and authorization framework which allows for uniform infrastructure and user management across different middlewares. The solutions for monitoring and accounting of the UNICORE infrastructure is presented.','',1,'Krzysztof BenedyczakMarcin StolarekRadosław RowickiRafał KluszczyńskiMarcelina BorczGrzegorz MarczakMaciej FilochaPiotr Bała','springer/service oriented architecture security.csv','springer','\0'),(1293,'Policies Production System for Ambient Intelligence Environments','2014','0',' Policies Sensor Networks Ambient Intelligence Smart Building Energy Efficiency','Abstract This paper presents a tool for designing Policies that govern the operation of an Ambient Intelligence (AmI) environment in order to minimize energy consumption and automate every-day tasks in smart settlements. This tool works on top of a semantic web services middleware and interacts with the middleware’s ontology in order to facilitate the designing, monitoring and execution of user defined rules that control the operation of a network of heterogeneous sensors and actuators. Furthermore, it gives the user the capability to organize these rules in tasks, in order to aggregate and discern relative rules. The main objective of this system is to provide a better monitoring and management of the resources, so as to achieve energy efficiency and reduce power consumption. The work presented in this paper is part of the Smart IHU project, which is developed at International Hellenic University.','',1,'Nikos P. KotsiopoulosDimitris Vrakas','springer/service oriented architecture security.csv','springer','\0'),(1294,'A Design of Web Log Integration Framework Using NoSQL','2014','0',' Big Data Security Log aggregation Cloud computing NoSQL HBase','Abstract Webservice is a software technology as the representative method of information communication currently used to create a dynamic system environment that is configured to fulfill its users’ needs. Therefore, analyzing log data that occurred at provision is being used as the significant basic data in webservice research. Thanks to development of Cloud computing technology, it has resulted in centralized points from which data is generated and data enlargement. A research is now implemented to create information from collecting, processing and converting flood of data and to obtain the new various items of information. Against this backdrop, it is justified that collection, storage and analysis of web log data in the existing conventional RDBMS system may be inadequate to process the enlarged log data. This research propose a framework which to integrate web log for storage using HBase, a repository of the Cloud computing- based NoSQL. In addition, data validation must be completed in the pre-process when collecting web log. The validated log is stored in the modeling structure in which takes features of web log into account. According to the results, introduction of NoSQL system is found to integrate the enlargement of log data in more efficient manner. By comparisons with the existing RDBMS in terms of data processing performance, it was proved that the NoSQL- based database had a superior performance.','',1,'Huijin JeongJunho ChoiChang ChoiIlsun YouPankoo Kim','springer/webservice security.csv','springer','\0'),(1295,'Optical switch emulation in programmable software router testbed','2013','1',' Optical networks Network programmability Optical switching Optical components Software-defined networking','Abstract A programmable optical router is a key enabler for dynamic service provisioning in Future Internet scenarios. It is equipped with optical switching hardware to forward information at hundreds of Gigabits/s rates and above, controlled and managed through modular and flexible procedures according to emerging standards. The possibility to test such costly optical architectures in terms of logical and physical performance, without implementing complex and expensive testbeds, is crucial to speed-up the development process of high-performance routers. To this purpose, this paper introduces the software-based emulation testbed of a programmable optical router, which is here developed and applied to test optical switching fabrics. Accurate characterization of the optical devices and physical layer aspects is implemented with the Click software router environment. Power loss and optical signal-to-noise-ratio evaluation are provided through accurate software representation of the physical characteristics of the optical devices employed. The scalability of the proposed emulation testbed is also assessed on standard PC hardware. All the obtained results prove the effectiveness of the proposed tool to emulate an optical router at different levels of granularity.','Photonic Network Communications',1,'Ivan AldayaRaul CafiniWalter CerroniCarla RaffaelliMichele Savi','springer/soa security.csv','springer','\0'),(1296,'A scalable Cloud-based system for data-intensive spatial analysis','2015','0',' e-Infrastructure Urban research Cloud computing Geospatial systems Spatial analysis','Abstract Advances in Cloud computing technology and the availability of affordable and easy to use Cloud services are enabling a multitude of scientific applications to use these resources as primary or secondary computing infrastructure. The urban and built environment research domain is one area that can benefit greatly from Cloud computing. The global population growth and increase in the size and population of cities raise many challenges for governments, planners and researchers alike. The Australian Urban Research Infrastructure Network (AURIN— http://​www.​aurin.​org.​au ) project has been tasked with developing an advanced platform (e-Infrastructure) across Australia to tackle these challenges. The platform leverages large-scale Cloud resources to provide federated data access to, at present over 1100 data sets from major and often definitive government and industry data-rich organisations, and for scalable data processing and visualisation. The original AURIN tools were developed using the object modelling system (OMS) and supported integrated workflows to define and enact/re-enact scientific processes. More recently the work has evolved to focus more on delivery of a workbench offering a rich range of tools delivered through an extensible workflow environment. In this paper, we provide the background to AURIN including the scientific drivers that are shaping the work and the realisation of the Cloud-based AURIN environment. We focus in particular on the workflow environment and show how it seamlessly utilizes the Cloud for urban research processes focused especially on data-intensive spatial analysis. We illustrate the utilisation of this workflow environment across a range of case studies reflecting urban research activities.','International Journal on Software Tools for Technology Transfer',1,'R. O. SinnottW. Voorsluys','springer/service oriented architecture security.csv','springer',''),(1297,'HANDY: a hybrid association rules mining approach for network layer discovery of services for mobile ad hoc network','2013','2',' MANET HANDY Service discovery Correlation patterns Semantic discovery Cross-layer design','Abstract Mobile ad hoc network (MANET) is an infrastructure-less network formed between a set of mobile nodes. The discovery of services in MANET is a challenging job due to the unique properties of network. In this paper, a novel service discovery framework called hybrid association rules based network layer discovery of services for ad hoc networks (HANDY) has been proposed. HANDY provides three major research contributions. At first, it adopts a cross-layer optimized design for discovery of services that is based on simultaneous discovery of services and corresponding routes. Secondly, it provides a multi-level ontology-based approach to describe the services. This resolves the issue of semantic interoperability among the service consumers in a scalable fashion. Finally, to further optimize the performance of the discovery process, HANDY recommends exploiting the inherent associations present among the services. These associations are used in two ways. First, periodic service advertisements are performed based on these associations. In addition, when a response of a service discovery request is generated, correlated services are also attached with the response. The proposed service discovery scheme has been implemented in JIST/SWANS simulator. The results demonstrate that the proposed modifications give rise to improvement in hit ratio of the service consumers and latency of discovery process.','Wireless Networks',1,'Noman IslamZubair Ahmed ShaikhAqeel-ur RehmanMuhammad Shahab Siddiqui','springer/soa security.csv','springer','\0'),(1298,'Model-Driven Design of Object and Component Systems','2016','0',' Component-based architecture Object-oriented design Interfaces Contracts Design patterns rCOS UML','Abstract The notion of software engineering implies that software design and production should be based on the types of theoretical foundations and practical disciplines that are established in the traditional branches of engineering. The goal is to make development of complex software systems more predictable and the systems developed more trustworthy - safe, secure and dependable . A number of theories have been well developed in the past half a century, including Abstract Data Types , Hoare Logic , Process Calculi , and I/O automata , and those alike. Based on them, techniques and tools have been developed for software specification, refinement and verification. However, the theoretically sound techniques and tools have not been seamlessly integrated in practical software development, and their impact upon commonly-used software systems is still far from convincing to software engineering practitioners. This is clearly reflected by the challenges of their applications in engineering large-scale systems, including Cyber-Physical Systems (CPS), Networks of Things and Cloud-Based Systems, that have multi-dimensional complexities. Indeed, students are not often shown how the theories, and their underpinned techniques and tools, can better inform the software engineering they are traditionally taught. The purpose of this course to demonstrate such an effort. We present a model-driven design framework for component-based and object-oriented software systems. We identify a set of UML notations and textual descriptions for representing different abstractions of software artefacts produced in different development stages. These abstractions, their relations and manipulations all have formalisations in the rCOS formal method of component and object systems. The aim is to allow the advantage of using precise models for development better appreciated. We organise the lecture notes into three chapters, each having a title page but all the references to literature are given at the end of Part III.','',1,'Zhiming LiuXiaohong Chen','springer/service oriented architecture security.csv','springer',''),(1299,'An Extendable OpenSource Architecture of E-Learning System','2013','','distance learning;electronic learning;layered architecture;open source software;service oriented architecture;system architecture','In this paper, we present an extendable open source architecture and model of an e-Learning system. The system composed of essential e-Learning core components and optional open source extensions. Open source extensions, developed and maintain by open source community, enhance the functionality of e-Learning system. In the other system components, the server side extension manager validates the portability, e-Learning standardization and security issues before approval of any extension to the community of the e-Learning system. The client side extension manager checks for new extensions/ updates and allow/disallow these extensions/updates. The open source development process of system components can improve the security, reliability, quality and evaluation of the system.','e-Learning Best Practices in Management, Design and Development of e-Courses: Standards of Excellence and Creativity , 2013 Fourth International Conference on',1,'M. A. Khan; F. Urrehman','ieee/service oriented architecture security.csv','ieee','\0'),(1300,'Table of contents','2014','0','','The following topics are dealt with: service optimization; cloud service; service workflow; Web service composition; quality of service; ontology; data service generation; service modelling; service protocol; service oriented architecture; service interaction; risk analysis; service operation; service performance indicator; IT service; service selection; service matchmaking; service security and privacy; service level agreement; service negotiation; context awareness; service personalization; service behavior; business process service; service collaboration; composite service execution; service events; service manipulation; and social networking service.','Services Computing (SCC), 2014 IEEE International Conference on',1,'','ieee/service oriented architecture security.csv','ieee','\0'),(1301,'A Feature-Oriented WSDL Extension for Describing Grid Services','2012','0',' Grid service Feature-oriented Software Development Design by Contract QoS Attributes Grid Service Composition','Abstract Grid computing and Feature-oriented Development Software are emerging technologies, which can be combined to analyze, model, and specify Grid services. In a Grid environment, there are a large number of similar resources provided by different parties, that may provide the same functionality, but different Quality of Service (QoS) measures. A feature-based approach is presented to optimize the development of Grid services and Grid service composition. WSDL specification is extended to contain useful description of both functional and non-functional characteristics by mean Design by Contract technique. In this way, Grid users can specify their QoS expectations and select suitable resources and use them for their Grid workflow at design time before its execution on the Grid.','',1,'Natalia TrejoSandra CasasKarim Hallar','springer/service oriented architecture security.csv','springer','\0'),(1302,'Secure and reliable remote access for the European XFEL control system','2012','0','control systems;jddd;opensso;real-time systems;web applications;web services doocs;xfel','The collaboration work between the Stockholm University and DESY in Hamburg regarding the European XFEL is among other things aiming towards to provide access methods to the accelerator control system for the European XFEL project with the possibility of a secure and reliable access from remote places. The requested expansion of the control system has been designed as an extra layer for control and data transmissions integrated with systems for authentication and authorization. This makes it possible to have these remote access methods working side by side with more conventional access methods in the control system. This gives you the possibility to access the control system remotely with traditional, already in use rich clients implemented in Java and expanded with an extra layer for the remote communication or you can use other clients in the future, e.g. web applications. A key focus here is to implement these requirements and at the same time achieve good performance in a secure and reliable way. In this paper we will discuss how we implement these requirements, what parameters and security measures we are using in order to implement a reliable, secure and easy to use secured access layer and how it is integrated to the accelerator control system. The system is designed as a Service-Oriented Architecture (SOA) and implemented with the latest web service technology available at present in order to connect the different nodes such as control system nodes, application servers and different clients for control and monitoring with quality of service (QoS). The architecture and the chosen access security manager (OpenSSO) for authentication and authorization will be described in its parts and how they are integrated. We will present our experiences of the architecture so far, what design choices we have found suitable in order to meet the requirements of a modern control system and what performance we have achieved when transporting data and commands in a reliable wa- .','Real Time Conference (RT), 2012 18th IEEE-NPSS',1,'C. C. W. Robson; C. Bohm; R. Kammering; K. Rehlich','ieee/service oriented architecture security.csv','ieee','\0'),(1303,'Service-Oriented Computing, ICSOC 2011 Workshops - ICSOC 2011 International Workshops, WESOA, NFPSLAM-SOC, and Satellite Events, Revised Selected Papers','2012','','','The proceedings contain 41 papers. The topics discussed include: strategic alignment of business processes; decentralized workflow coordination through molecular composition; using a lifecycle model for developing and executing real-time online applications on clouds; a pragmatic approach for analysis and design of service inventories; artifact-centric modeling using BPMN; asynchronous learning for service composition; engineering energy-aware web services toward dynamically-green computing; semantic matching of WS-security policy assertions; quality prediction in service composition frameworks; ECMAF: an event-based cross-layer service monitoring and adaptation framework; defining an SLA-aware method to test service-oriented systems; data flow-oriented process mining to support security audits; and towards opportunistic service composition in dynamic ad hoc environments.','',2,'[No author name available]','scopus/bpmn security.csv','scopus','\0'),(1304,'Data Privacy Management and Autonomous Spontaneous Security - 6th International Workshop, DPM 2011, and 4th International Workshop, SETOP 2011, Revised Selected Papers','2012','','','The proceedings contain 22 papers. The topics discussed include: privacy challenges in RFID; fake injection strategies for private phonetic matching; a design phase for data sharing agreements; a privacy-protecting architecture for collaborative filtering via forgery and suppression of ratings; secure and privacy-aware searching in peer-to-peer networks; inference-proof view update transactions with minimal refusals; using personal portfolios to manage customer data; using requirements engineering in an automatic security policy derivation process; web services verification and prudent implementation; evolving security requirements in multi-layered service-oriented-architectures; risk-based auto-delegation for probabilistic availability; and distributed orchestration of web services under security constraints.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus','\0'),(1305,'Automating Privacy Enforcement in Cloud Platforms','2013','2','','Abstract Privacy in cloud computing is a major concern for individuals, governments, service and platform providers. In this context, the compliance with regards to policies and regulations about personal data protection is essential, but hard to achieve, as the implementation of privacy controls is subject to diverse kinds of errors. In this paper we present how the enforcement of privacy policies can be facilitated by a Platform as a Service. Cloud applications developers can use non-obtrusive annotations in the code to indicate where personally identifiable information is being handled, leveraging the aspect-oriented programming (AOP) features. Subsequently the evaluation of user defined preferences is performed by trustful components provided by the platform, liberating developers from the burden of designing custom mechanisms for privacy enforcement in their software.','',1,'Peng YuJakub SendorGabriel SermeAnderson Santana de Oliveira','springer/service oriented architecture security.csv','springer','\0'),(1306,'2013 International Conference on Services Science and Services Information Technology, SSSIT 2013','2014','','','The proceedings contain 214 papers. The special focus in this conference is on Services Science and Services Information Technology. The topics include: high-speed rail safety monitoring system based on ZigBee wireless sensor network; application research of soa in the area of business intelligence system; application of web network management based on mobile agent; security mechanism research on hiring excellent staffs in subsidiary company; study on supply chain management strategies of sports goods company; the research of viability of state-owned enterprises; the application of the bionics in agricultural tourism planning; research on inventory control model based on the rising price; China\'s rural economy growth basing on solow model; the empirical analysis on calendar spread arbitrage of CSI 300 stock index futures; opportunism of financial supervision and self-enforcing of supervisory contracts; corporate governance and financial distress prediction; comparison of Hubei and typical provinces on the engine of economic growth; the application of fuzzy set theory in modern information retrieval; the genesis of land finance in china and the solution; research on building the harmonious labor relations in private enterprises; analysis of production line balancing based on double-e; research on sustainable development water-price system in Dalian; an internet transaction integrity risk game model; the postponement strategy oriented towards mass customization and its application; the creation of provincial cultivated land protection fund; research on internal control evaluation system and CSA; research on stock index optimization replication in genetic algorithm; diet safety and management of seafood in china; game analysis on two-echelon supply chain with product quality failure; new understanding of consumer attitude in the context of brand crisis; empirical research of female financial behavior based on self-concept structure; current situation and countermeasures of strategic emerging industries in china; the fourth wave of computing; a tentative probe into crisis stimulus and performance control system; the efficiency of resources allocation on coordinating urban and rural education; research on side payment incentive mechanism in low-carbon economy development; the cause and prevention of the enterprise financing risk; study on flexible performance appraisal index system of nonprofit knowledge organization; the marine tourism safety control system research; adaptive countermeasures for permafrost degradation in northeast China; study on low-rent housing system; a study on sustainable development of resource producing areas in china; grey correlation analysis of Shandong environmental regulation and FDI; research and analysis on lipstick effect of cultural industries in the postcrisis era; the development policy of Wuhan college students technology venture angel fund; comprehensive assessment index system for marine industry; research on network information ecological chain from the view of evolution; a study on agricultural logistics mode of karst region; the appreciation trend and forecast of RMB exchange rate; a group company materials management countermeasure; analysis on the brand strategy of decentralized agricultural production; FDI risk assessment based on the dual fuzzy comprehensive evaluation method; the current status and the coming trends of China\'s SME\'s internet marketing; a price discount in n-stage ordering contract to the supply chain coordination; intergenerational knowledge transfer in workplace; the effectiveness evaluation of inner Mongolia region investment based on DEA model; China population strategy and economic structure adjustment; the study of load matching of passenger in expressway; integrated model and network optimization for China\'s agricultural supply chain; study on strategy management in port scale competition; countermeasures and suggestions on expediting the boomtown construction in low-carbon economy; analysis of vehicle dispatching policy in an automated container terminal; an empirical study of the western region industrial agglomeration measure; application of IAHP to improve the method of job evaluation; on system of enterprise emergency management based on integrating peacetime with wartime; research on Chinese tax policy for energy saving and emission reduction; Psychological contract is psychological drive for professional development of college teachers; Information disclosure, information quality, and controlling large shareholders; infrastructure investment and economic growth empirical analysis in Henan province; labor quota determination, application and improvement research; influencing factors for high-tech industry in Jiangsu Province; the reflection and definition of the macroeconomic policy for China\'s labor migration; the effect of merchandise assortment on retail brand; development of low-carbon industrial park based on the assessment of carbon emission; empirical analysis of equity concentration and company performance; some thoughts on the development of renewable energy in China; The factor analysis of environment policy based on international trade; a new evaluation model based on SEM; study on information ecosystem research in electronic commerce; cognitive model and formal description for survivable system based on SM-PEPA; formal description of cognitive reference model for survivable system based on symbolic trace method; the research of waste cars\' recycling rate regulation under extended producer responsibility; a joint computing model based on Chinese spam text similarity; a perspective on customer equity; the cloud single sign-on authentication based on Kerberos and SAML; analyzing uncertainty and ambiguity in R&D projects using simulation; the data integration of financial management system with digital campus platform; an improved clustering algorithm based on BIRCH and DBSCAN; web spam detection based on tri co-training; design and implementation of a monitor system for application server based on JMX; the application of artificial neural network in constructional engineering cost budget; the construction of the three-dimensional network security defence system based on the T-S model of the neural network; design of integration platform for data sharing in distributed computer network; efficient group method of data handling; research and application of PON technology; the application and optimization of artificial intelligence in robot path planning; the application research on honeypot technology in intrusion detection system; research of WEB data mining and its application in social networks; over the top service of IPTV in cloud computing era; Research of a Zigbee energy balancing routing algorithm; research of image detection based on image segmentation; design of smart home security system based on Zigbee; extension detecting technology applied in medical image segmentation; study on application of multiple intelligences theory in higher college education; research of image segmentation technology on AFM image; design of greenhouse monitoring system based on IOT; image inpainting algorithm in 2d-to-3d video conversion; design of consumption management system based on RFID; the discussion on large capacity rail traffic safety monitoring network and color image segmentation using PSO-based histogram thresholding.','',1,'[No author name available]','scopus/soa security.csv','scopus','\0'),(1307,'Business Process Modeling for Insider Threat Monitoring and Handling','2014','0',' Business Process Business Process Management Insider Threat Monitoring Privacy Social Media','Abstract Business process modeling has facilitated modern enterprises to cope with the constant need to increase their productivity, reduce costs and offer competitive products and services. Despite modeling’s and process management’s widespread success, one may argue that it lacks of built-in security mechanisms able to detect and deter threats that may manifest throughout the process. To this end, a variety of different solutions have been proposed by researchers which focus on different threat types. In this paper we examine the insider threat through business processes. Depending on their motives, insiders participating in an organization’s business process may manifest delinquently in a way that causes severe impact to the organization. We examine existing security approaches to tackle down the aforementioned threat in enterprise business processes and propose a preliminary model for a monitoring approach that aims at mitigating the insider threat. This approach enhances business process monitoring tools with information evaluated from Social Media by examining the online behavior of users and pinpoints potential insiders with critical roles in the organization’s processes. Also, this approach highlights the threat introduced in the processes operated by such users. We conclude with some observations on the monitoring results (i.e. psychometric evaluations from the social media analysis) concerning privacy violations and argue that deployment of such systems should be allowed solely on exceptional cases, such as protecting critical infrastructures or monitoring decision making personnel.','',2,'Vasilis StavrouMiltiadis KandiasGeorgios KaroulasDimitris Gritzalis','springer/bpmn security.csv','springer',''),(1308,'A robustness testing approach for SOAP Web services','2012','3',' Testing Reliability and robustness Web services Benchmarking','Abstract The use of Web services in enterprise applications is quickly increasing. In a Web services environment, providers supply a set of services for consumers. However, although Web services are being used in business-critical environments, there are no practical means to test or compare their robustness to invalid and malicious inputs. In fact, client applications are typically developed with the assumption that the services being used are robust, which is not always the case. Robustness failures in such environments are particularly dangerous, as they may originate vulnerabilities that can be maliciously exploited, with severe consequences for the systems under attack. This paper addresses the problem of robustness testing in Web services environments. The proposed approach is based on a set of robustness tests (including both malicious and non-malicious invalid call parameters) that is used to discover programming and design errors. This approach, useful for both service providers and consumers, is demonstrated by two sets of experiments, showing, respectively, the use of Web services Robustness testing from the consumer and the provider points of view. The experiments comprise the robustness testing of 1,204 Web service operations publicly available in the Internet and of 29 home-implemented services, including two different implementations of the Web services specified by the standard TPC-App performance benchmark. Results show that many Web services are deployed with critical robustness problems and that robustness testing is an effective approach to improve services quality.','Journal of Internet Services and Applications',2,'Nuno LaranjeiroMarco VieiraHenrique Madeira','springer/bpel security.csv','springer','\0'),(1309,'A secure framework for business process execution','2013','','Business processes; Secure framework; Web service; Web service composition','A web service is a method of communication between two electronic devices over the World Wide Web. The web service is a software function that provides different business functionality to service consumers. The set of web services can be composed together as a composition operation to fulfill and achieve the complex business requirements with the help of Business Process Execution Language (BPEL) or business processes. The existing business processes are having set of merits such as industry oriented approach and good control over workflow design. The business processes are unable to support for human user interaction, encryption and decryption mechanisms for providing the security for its data processing, therefore, the data process by business processes will not be secure from unauthorized users over the network. In this paper, we propose a secure framework for business processes to provide data security over the network. The proposed framework implements Caesar Cipher technique of cryptography with an example. The proposed technique transmits data in a secure manner over the network. © 2013 IEEE.','',2,'Bhandari R., Suman U.','scopus/bpel security.csv','scopus','\0'),(1310,'Network and infrastructure considerations for hard and soft information fusion processes','2012','','hard soft information fusion; infrastructure; participatory sensing; service-oriented; SOA','The changing landscape of defense and security applications, as well as existing needs in other domains, has given rise to the need to design and develop information fusion systems that entail the combination of hard (physical sensor) data and observations from humans (soft data) in a distributed networked environment ([1], [2]). Such fusion processes stress both traditional fusion-based algorithmic design strategies as well as imputing requirements onto the design of appropriate decentralized architectures. In designing a framework for such an environment, the system architecture must be considered both at the level of information infrastructure and at the network/software level of implementation. From the information infrastructure perspective, primary concerns include which observations will be fed into the system, the intended goals (e.g. data mining, hypothesis generation/testing), how humans interact with the system (e.g. information gathering, analysis, process evaluation/refinement), and which levels of state estimation and fusion are appropriate at a given stage of the process [3]. Bisantz et al [4] discuss aspects of how humans interact with such new distributed networked information fusion systems and identify \"touch points\" where innovations can support improved system performance. An effective network/software architecture is tightly intertwined with the information infrastructure. The former must meet the functional requirements of the latter without adding unnecessary complexity, prohibiting scalability or extensibility, putting undue performance limitations on the system, or compromising system security. Additionally, the system must have the agility and flexibility to successfully and rapidly complete complex tasks that were not possible to anticipate at design-time. This paper presents an information infrastructure for hard and soft fusion that balances the features offered by the current state of the art in computing paradigms (e.g. SOA, ESB) and data representation (e.g. RDF, OWL, TML, EML) with the requirements of our overarching concept of employment for hard and soft fusion capability. The paper provides guidance on determining the optimal software and network architecture design for enabling human-centric and distributed operations in time-critical, vastly heterogeneous, and highly unpredictable conditions. The designs described have been implemented using both synthetic data from our SYNCOIN data set ([5], [6]) and actual sensor/observational data collected at a Penn State test site. © 2012 ISIF (Intl Society of Information Fusi).','',1,'Rimland J.C., Llinas J.','scopus/soa security.csv','scopus','\0'),(1311,'Automatic Service Categorisation through Machine Learning in Emergent Middleware','2013','0','','Abstract The modern environment of mobile, pervasive, evolving services presents a great challenge to traditional solutions for enabling interoperability. Automated solutions appear to be the only way to achieve interoperability with the needed level of flexibility and scalability. While necessary, the techniques used to determine compatibility, as a precursor to interaction, come at a substantial computational cost, especially when checks are performed between systems in unrelated domains. To overcome this, we apply machine learning to extract high-level functionality information through text categorisation of a system’s interface description. This categorisation allows us to restrict the scope of compatibility checks, giving an overall performance gain when conducting matchmaking between systems. We have evaluated our approach on a corpus of web service descriptions, where even with moderate categorisation accuracy, a substantial performance benefit can be found. This in turn improves the applicability of our overall approach for achieving interoperability in the Connect project.','',2,'Amel BennaceurValérie IssarnyRichard JohanssonAlessandro MoschittiRomina SpalazzeseDaniel Sykes','springer/bpel security.csv','springer','\0'),(1312,'An immunology-inspired multi-engine anomaly detection system with hybrid particle swarm optimisations','2012','0','Anomaly intrusion detection;Fuzzy logic;Hidden Markov model;Immunology;Multiple detection engines','In this paper, multiple detection engines with multi-layered intrusion detection mechanisms are proposed for enhancing computer security. The principle is to coordinate the results from each single-engine intrusion alert system, which seamlessly integrates with a multiple layered distributed service-oriented structure. An improved hidden Markov model (HMM) is created for the detection engine which is capable of the immunology-based self/nonself discrimination. The classifications of normal and abnormal behaviours of system calls are further examined by an advanced fuzzy-based inference process tuned by HPSOWM. Considering a real benchmark dataset from the public domain, our experimental results show that the proposed scheme can greatly shorten the training time of HMM and significantly reduce the false positive rate. The proposed HPSOWM works especially well for the efficient classification of unknown behaviors and malicious attacks.','Fuzzy Systems (FUZZ-IEEE), 2012 IEEE International Conference on',1,'F. Jiang; S. H. Ling; Kit Yan Chan; Z. Chaczko; F. H. F. Leung; M. R. Frater','ieee/service oriented architecture security.csv','ieee','\0'),(1313,'SOA-scanner: An integrated tool to detect vulnerabilities in service-based infrastructures','2013','2','security; security testing; SOA; vulnerability detection; web-services','Service Oriented Architectures are nowadays used in a wide range of organizations to support critical daily operations. Although the underlying services should behave in a secure manner, they are often deployed with bugs that can be maliciously exploited. The characteristics of service-based environments open the door to security challenges that must be handled properly, including services under the control of multiple providers and dynamism of interactions and compositions. This paper presents an extensible tool able to widely test such infrastructures for vulnerabilities. The tool is based in an iterative process that uses interface monitoring to automatically monitor and discover the existing services, resources and interactions, and applies different testing approaches depending on the level of access to each existing services. Two case studies has been developed do demonstrate the tool, and results show that the tool can effectively be used in different service-based scenarios, under different access conditions to the target services. © 2013 IEEE.','',1,'Antunes N., Vieira M.','scopus/service oriented architecture security.csv','scopus','\0'),(1314,'A Metamodel of the B Modeling of Access-Control Policies: Work in Progress','2012','0',' Metamodel access-control IS formal method MDA B','Abstract Verification and validation of access-control policies for information systems is a difficult yet necessary task. In order to take advantage of the formal properties and tools of the B method, we introduce in this paper a metamodel of the B modeling of access control policies. This metamodel lead to the development of a formal prototype of an access control filter combined to the system. It allows verification and validation of policies before implementation.','',2,'Jérémy MilhauMarc FrappierRégine Laleau','springer/bpel security.csv','springer','\0'),(1315,'A Heterogeneous Approach for Developing Applications with FIWARE GEs','2015','0',' Cloud FIWARE Generic enabler Component model Heterogeneous composition','Abstract The European Commission funded FIWARE project aims to support the development of a European cloud, and a rich catalogue of generic components called Generic Enablers (GEs). However, the lack of an efficient approach and tool for developing applications using GEs hinders their adoption. This paper tries to fill this gap by proposing an approach based on a component model, along with its related tool, that allows heterogeneous composition of GEs and non-GE components. The approach is validated with a case study where a content delivery application is developed.','',2,'Simone Di ColaCuong TranKung-Kiu LauAntonio CelestiMaria Fazio','springer/bpel security.csv','springer',''),(1316,'A BPMN extension for the modeling of security requirements in business processes','2007','130','BPMN; Business process; Security requirement','Business Processes are considered a crucial issue by many enterprises because they are the key to maintain competitiveness. Moreover, business processes are important for software developers, since they can capture from them the necessary requirements for software design and creation. Besides, business process modeling is the center for conducting and improving how the business is operated. Security is important for business performance, but traditionally, it is considered after the business processes definition. Empirical studies show that, at the business process level, customers, end users, and business analysts are able to express their security needs. In this work, we will present a proposal aimed at integrating security requirements through business process modeling. We will summarize our Business Process Modeling Notation extension for modeling secure business process through Business Process Diagrams, and we will apply this approach to a typical health-care business process. Copyright © 2007 The Institute of Electronics, Information and Communication Engineers.','',2,'Rodríguez A., Fernández-Medina E., Piattini M.','scopus/bpmn security.csv','scopus',''),(1317,'Formalizing and verifying stochastic system architectures using Monterey Phoenix','2016','0',' Model checking Stochastic system architecture Monterey Phoenix','Abstract The analysis of software architecture plays an important role in understanding the system structures and facilitate proper implementation of user requirements. Despite its importance in the software engineering practice, the lack of formal description and verification support in this domain hinders the development of quality architectural models. To tackle this problem, in this work, we develop an approach for modeling and verifying software architectures specified using Monterey Phoenix (MP) architecture description language. MP is capable of modeling system and environment behaviors based on event traces, as well as supporting different architecture composition operations and views. First, we formalize the syntax and operational semantics for MP; therefore, formal verification of MP models is feasible. Second, we extend MP to support shared variables and stochastic characteristics, which not only increases the expressiveness of MP, but also widens the properties MP can check, such as quantitative requirements. Third, a dedicated model checker for MP has been implemented, so that automatic verification of MP models is supported. Finally, several experiments are conducted to evaluate the applicability and efficiency of our approach','Software & Systems Modeling',1,'Songzheng SongJiexin ZhangYang LiuMikhail AugustonJun SunJin Song DongTieming Chen','springer/service oriented architecture security.csv','springer',''),(1318,'The Role of Data Integrity in EU Digital Signature Legislation — Achieving Statutory Trust for Sanitizable Signature Schemes','2012','0','','Abstract We analyse the legal requirements that digital signature schemes have to fulfil to achieve the Statutory Trust granted by the EU electronic signature laws (“legally equivalent to hand-written signatures”). Legally, we found that the possibility to detect subsequent changes is important for the Statutory Trust. However, detectability was neither adequately nor precisely enough defined in the technical and legal definitions of the term “Data Integrity”. The existing definition on integrity lack a precise notion of which changes should not invalidate a corresponding digital signature and also lack notions to distinguish levels of detection. We give a new definition for Data Integrity including two notions: Authorized changes, these are changes which do not compromise the data’s integrity; and their level of detection. Especially, the technical term “Transparency” introduced as a security property for sanitizable signature schemes has an opposite meaning in the legal context. Technically, cryptography can allow authorized changes and keep them unrecognisably hidden. Legally, keeping them invisible removes the Statutory Trust. This work shows how to gain the Statutory Trust for a chameleon hash based sanitizable signature scheme.','',1,'Henrich C. PöhlsFocke Höhne','springer/webservice security.csv','springer','\0'),(1319,'SAMM: an architecture modeling methodology for ship command and control systems','2016','0',' Architecture modeling Viewpoint UML SysML Ship command and control systems','Abstract Ship command and control systems (SCCSs) are composed of large-scale, complex, real-time and software-intensive systems that complete tasks collaboratively. Open architecture has been introduced to design the architecture of SCCSs and has been refined into functional architecture (FA) and technical architecture (TA) to meet architectural requirements such as adapting fast-speed functional and technical changes. Thereby, specifying the architecture of SCCSs, based on FA and TA, becomes a key issue for stakeholders of the domain. In this paper, we propose an architecture modeling methodology (named as SAMM) for describing the architecture of SCCSs. SAMM is derived by following a systematic and generic framework—modeling Goal, domain-specific Conceptual model, architecture Viewpoint, and architecture description Language (GCVL), which guides domain experts to devise domain-specific architecture modeling methodologies of large-scale software-intensive systems. SAMM contains three viewpoints and 22 models, and a UML/SysML-based architecture description language. An industrial application of SAMM, along with the subsequent application of the derived SAMM architecture model (i.e., a deployed SCCS prototype) was conducted to evaluate SAMM. A questionnaire-based survey was also conducted to subjectively evaluate whether SAMM meets the modeling goals and its applicability. Results show that SAMM meets all modeling goals and is easy to apply.','Software & Systems Modeling',1,'Zhiqiang FanTao YueLi Zhang','springer/service oriented architecture security.csv','springer',''),(1320,'Model-Driven Composition of Information Systems from Shared Components and Connectors','2013','0',' information system engineering component model model-driven engineering','Abstract We introduce CompIS, an approach, model and platform for model-driven component-based information system engineering. Our approach is based on the concept of shared components and connectors between them. To address the data-intensive nature of information systems, our components follow an extended model-view-control structure that also includes data. Component composition is based on configurable connectors, which define the collaboration logic between components and support component composition at the level of the component model, view, control and data. The CompIS UML profile allows to graphically define new components, connectors and compositions. The CompIS platform is a model-driven engineering environment, based on an extended object database that natively integrates the CompIS model. From graphical UML model definitions, the platform automatically generates application code that creates and initialises components and connectors. We present and validate our approach in the eCommerce domain.','',2,'Stefania LeoneAlexandre de SpindlerDennis McLeod','springer/bpel security.csv','springer','\0'),(1321,'Supporting Different Process Views through a Shared Process Model','2013','0','','Abstract Different stakeholders in the Business Process Management (BPM) life cycle benefit from having different views onto a particular process model. Each view can show, and offer to change, the details relevant to the particular stakeholder, leaving out the irrelevant ones. However, introducing different views on a process model entails the problem to synchronize changes in case that one view evolves. This problem is especially relevant and challenging for views at different abstraction levels. In this paper, we propose a Shared Process Model that provides different stakeholder views at different abstraction levels and that synchronizes changes made to any view. We present detailed requirements and a solution design for the Shared Process Model in this paper. Moreover, we also present an overview of our prototypical implementation to demonstrate the feasibility of the approach.','',2,'Jochen KüsterHagen VölzerCédric FavreMoises Castelo BrancoKrzysztof Czarnecki','springer/bpel security.csv','springer',''),(1322,'Design and realization of SOA based management system for open experiment lab','2012','','Management system; Open experimental Lab; SOA','This paper first analyzed the current situations and problems in open experiment labs of higher education and then explored and designed SOA based management system for open experiment lab. This system can meet the needs of functions, performance and security and it has improved quality of experimental teaching and simplified the management work. © 2012 IEEE.','',1,'Ding M., Chai S.','scopus/soa security.csv','scopus','\0'),(1323,'Architecture and organization of e-Assessment cloud solution','2013','21','Cloud Computing;Load Balancing;Performance;eAssessment','All e-Assessment systems have several challenges, such as accurate evaluation, security and data privacy, performance, scalability etc. In this paper we focus on e-Assessment scalability and performance. We propose a SOA architecture of a cloud hosted e-Assessment system which uses scalability and elasticity in order to achieve sustainable performance. Our solution consists of three subsystems, the first for management, the second for reports, and the third for on-demand activities during the assessments. It reduces the overall costs since it uses minimum resources utilized only during the e-Assessment. Better performance is expected to be achieved since the active subsystem for each assessment works with much smaller data compared to the centralized one.','Global Engineering Education Conference (EDUCON), 2013 IEEE',1,'S. Ristov; M. Gusev; G. Armenski; K. Bozinoski; G. Velkoski','ieee/service oriented architecture security.csv','ieee',''),(1324,'An End-to-End Security Auditing Approach for Service Oriented Architectures','2012','3','Service Oriented Architecture;security auditing;taint analysis;trust','Service-Oriented Architecture (SOA) is becoming a major paradigm for distributed application development in the recent explosion of Internet services and cloud computing. However, SOA introduces new security challenges not present in the single-hop client-server architectures due to the involvement of multiple service providers in a service request. The interactions of independent service domains in SOA could violate service policies or SLAs. In addition, users in SOA systems have no control on what happens in the chain of service invocations. Although the establishment of trust across all involved partners is required as a prerequisite to ensure secure interactions, still a new end-to-end security auditing mechanism is needed to verify the actual service invocations and its conformance to the expected service orchestration. In this paper, we provide an efficient solution for end-to-end security auditing in SOA. The proposed security architecture introduces two new components called taint analysis and trust broker in addition to taking advantages of WS-Security and WS-Trust standards. The interaction of these components maintains session auditing and dynamic trust among services. This solution is transparent to the services, which allows auditing of legacy services without modification. Moreover, we have implemented a prototype of the proposed approach and verified its effectiveness in a LAN setting and the Amazon EC2 cloud computing infrastructure.','Reliable Distributed Systems (SRDS), 2012 IEEE 31st Symposium on',1,'M. Azarmi; B. Bhargava; P. Angin; R. Ranchal; N. Ahmed; A. Sinclair; M. Linderman; L. B. Othmane','ieee/service oriented architecture security.csv','ieee','\0'),(1325,'SHERPA: An Air-Ground Wireless Network for Communicating Human and Robots to Improve the Rescuing Activities in Alpine Environments','2015','0',' Air-ground robotic networks Alpine scenarios WiMAX','Abstract Robot-based rescue systems are envisioned now-a-days as a promising solution for saving human lives after the avalanche accidents in alpine environments. To this aim, a European project named “Smart collaboration between Humans and ground-aErial Robots for imProving rescuing activities in Alpine environments (SHERPA)” has been launched. Robots with smart sensors and mobility feature are needed for achieving the goal of this project, therefore, the SHERPA networks need to consider two degrees of freedom: one is throughput for transmitting realtime images and videos and another is range for mobility. In this paper, we design a wireless network infrastructure with the objective to communicate human and robots during the rescue mission in alpine environments. Firstly, we study about the network components, scenario and topology according to this environment. Then we design the network infrastructure for communicating among network components by taking account of the two degrees of freedom. Finally, the performance of the network is analyzed by means of numerical simulations. The simulation results reveal the effectiveness of the proposal.','',1,'Md Arafatur Rahman','springer/service oriented architecture security.csv','springer',''),(1326,'Why Are Business Processes Not Secure?','2013','2','','Abstract Security is simple to understand but hard to ensure. In the times of Internet, this task has been becoming harder every day. To date, computer science has not solved how to prevent the misuse of business processes. While data objects can be protected, a process cannot. The reason is the security of a process depends not only on its individual accesses and can only be accessed upon the process’ termination or when cast into the context of other processes. Many unbelievable scandals encompassing sophisticated and powerful players, from Microsoft to Sony and credit card operators, from leakages in governments to cyber crime and war attacks could not be prevented despite heavy investment in security. The claim here is that the way in which computer science deals with security does not apply to processes. The key discipline in security is “cryptography”, where the “laureate” Prof. Buchmann got his distinction from. This paper is about how cryptography can be applied as a basis to automate security and give participants in a market an equal position and prevent fraud. To complicate the issue, the goal is security in business processes. The reason is obvious. If one makes mistakes or vulnerabilities are left uncovered, huge fraud incidents might happen, the stockowners rebel, the government complains and employees are, in the worst case, deprived from their pension. This is a real, sensitive issue, with unclear solutions, ambivalent in nature, but rigorous in punishment. The issue is not just to protect, but also to deter “bad things”, such as criminal intents. The option to judge people’s intentions is not an option for mankind; it is not an option though for computer science. We need to automate security and establish procedures that, upon the event of misuse, ascertain accountability. The main goal and challenge of security in business processes is, on one hand, to provide well-founded guarantees regarding the adherence to security, privacy and regulatory compliance requirements and, on the other hand, to integrate the corresponding mechanisms into the business process management lifecycle. This paper introduces this research area, its current status and upcoming practical challenges.','',2,'Günter MüllerRafael Accorsi','springer/bpel security.csv','springer','\0'),(1327,'Reactive Service Selection in Dynamic Service Environments','2012','1',' service composition adaptive service selection quality of service','Abstract Due to the highly dynamic nature of services (web services can enter or leave the system at any time, or change their characteristics), adaptation to change during service composition is necessary to meet user needs. Yet current approaches to change handling detect quality violations and service unavailability only after their occurrence (after executing the corresponding service), resulting in undesired situations at execution time from which recovery (usually through costly replanning) might not always be possible. In response, this paper presents a novel reactive selection algorithm, which adapts to changes in the environment efficiently while performing the selection, ensuring that the selected composite service is executable, satisfactory and optimal prior to execution. The algorithm’s effectiveness is demonstrated via experimental results.','',2,'Lina BarakatSimon MilesMichael Luck','springer/bpel security.csv','springer','\0'),(1328,'Automatic Top-Down Role Engineering Framework Using Natural Language Processing Techniques','2015','0',' Role Based Access Control Role engineering Semantic role labeling Natural language processing Privacy policy','Abstract A challenging problem in managing large networks is the complexity of security administration. Role Based Access Control (RBAC) is the most well-known access control model in diverse enterprises of all sizes because of its ease of administration as well as economic benefits it provides. Deploying such system requires identifying a complete set of roles which are correct and efficient. This process, called role engineering, has been identified as one of the most expensive tasks in migrating to RBAC. Numerous bottom-up, top-down, and hybrid role mining approaches have been proposed due to increased interest in role engineering in recent years. In this paper, we propose a new top-down role engineering approach and take the first step towards extracting access control policies from unrestricted natural language requirements documents. Most organizations have high-level requirement specifications that include a set of access control policies which describes allowable operations for the system. It is very time consuming, labor-intensive, and error-prone to manually sift through these natural language documents to identify and extract access control policies. We propose to use natural language processing techniques, more specifically Semantic Role Labeling (SRL) to automatically extract access control policies from these documents, define roles, and build an RBAC system. By successfully applying semantic role labeling to identify predicate-argument structure, and using a set of predefined rules on the extracted arguments, we were able correctly identify access control policies with a precision of 79%, recall of 88%, and \\( F_{1} \\) score of 82%.','',2,'Masoud NaroueiHassan Takabi','springer/bpmn security.csv','springer',''),(1329,'Human Task Management for RESTful Services','2012','0',' Human Task Management REST Hypermedia','Abstract Human task management is an integral part of WS-* based service-oriented solutions like ESBs as human interactions are important for business processes. Also alternative REST-based service-oriented solutions provide support for business processes but lack interoperable human task management solutions. In the PhD project we are investigating possibilities and limits of incorporating human tasks in REST-based service solutions. We present a first approach and discuss the design of the remaining research process including challenges, potential benefits, and open issues.','',2,'Daniel Schulte','springer/bpel security.csv','springer','\0'),(1330,'Implementing Billing as a Service by an IPDR Aggregator System','2016','0',' Internet Protocol Detail Record Cloud computing Aggregated bill Billing as a Service Cellular operators','Abstract In the past decade, mobile Internet applications provided by cellular operators have been shifted from an emphasis on one-way content delivery to attention to two-way multimedia interaction. IP-based multimedia application development is booming in the recent years. Without systematical integration among these business support systems, subscribers may receive several different bills from different service providers periodically so as to makes them bedazzled. Meanwhile, cloud computing typically involves provisioning of dynamically scalable resources to provide a powerful computation. Motivated by the aforementioned facts, we propose an Internet Protocol Detail Record based architecture, which can combine different service bills and utilize cloud computing to calculate collectively aggregated bill, to establish a Billing as a Service for cellular operators. In order to validate the efficiency of clouding computing for the aggregated billing calculation, we also conduct performance evaluations for the billing computation over the traditional relational database and our proposed system.','Wireless Personal Communications',1,'Jenq-Shiou LeuWen-Bin HsiehYun-Sun Yee','springer/service oriented architecture security.csv','springer',''),(1331,'Reliable, Secure, and Transacted Web Service Compositions with AO4BPEL','2006','7','','Web service compositions in BPEL have several nonfunctional requirements such as security, reliable messaging, and transactions. Although many WS-* specifications address such non-functional concerns in the Web service context, they focus only on the messaging-level requirements without addressing the process-level requirements. In this paper, we discuss different non-functional requirements in BPEL workflows and observe that current orchestration engines lack support for the specification and enforcement of such requirements, especially for process-level requirements. To solve this problem, we present a container framework, which introduces an XML-based deployment descriptor to specify the non-functional requirements in a declarative way. To enforce these requirements, a process container intercepts the process execution and calls dedicated middleware Web services. We implemented the process container as a lightweight container using a set of A04BPEL aspects that are automatically generated from the deployment descriptor. In addition, we have implemented BPEL middleware Web services for reliable messaging, security, and transaction','2006 European Conference on Web Services (ECOWS\'06)',2,'A. Charfi; B. Schmeling; A. Heizenreder; M. Mezini','ieee/bpel security.csv','ieee','\0'),(1332,'Case Studies: Code Generators for jABC','2013','0','','Abstract Besides being the basis of the Genesys framework, jABC itself is an application field for code generation. As described in Sect. 3.1, the XMDD paradigm underlying jABC postulates an unidirectional code generation approach that deliberately avoids round-tripping (cf. Sect. 2.4.4). Consequently, jABC is in need of code generation facilities that are powerful enough to support this tenet, and at the same time are easy to use in a way that respects jABC’s users, who are typically application experts without deep technical knowhow. Similar objectives can also be found among the basic requirements of the Genesys approach ( Requirement S2 - Full Code Generation, Requirement G3 - Simplicity ). Furthermore, as jABC is used in a broad range of very heterogeneous application scenarios (cf. Sect. 3.2), it provides the opportunity of examining and comparing the construction of code generators for very different target platforms, each of them representing a separate case study with its own set of specific requirements.','',2,'Sven Jörges','springer/bpel security.csv','springer','\0'),(1333,'Springer computing special issue: adaptation in service-oriented and Cloud Computing','2013','0','','','Computing',1,'Dimka Karastoyanova','springer/service oriented architecture security.csv','springer','\0'),(1334,'A flexible service selection for executing virtual services','2013','1',' service discovery service selection virtual service service selector service aggregation marketplace','Abstract With the adoption of a service-oriented paradigm on the Web, many software services are likely to fulfil similar functional needs for end-users. We propose to aggregate functionally equivalent software services within one single virtual service, that is, to associate a functionality, a graphical user interface (GUI), and a set of selection rules. When an end user invokes such a virtual service through its GUI to answer his/her functional need, the software service that best responds to the end-user’s selection policy is selected and executed and the result is then rendered to the end-user through the GUI of the virtual service. A key innovation in this paper is the flexibility of our proposed service selection policy. First, each selection policy can refer to heterogeneous parameters (e.g., service price, end-user location, and QoS). Second, additional parameters can be added to an existing or new policy with little investment. Third, the end users themselves define a selection policy to apply during the selection process, thanks to the GUI element added as part of the virtual service design. This approach was validated though the design, implementation, and testing of an end-to-end architecture, including the implementation of several virtual services and utilizing several software services available today on the Web.','World Wide Web',1,'Nassim LagaEmmanuel BertinNoel CrespiIvan BediniBenjamin MolinaZhenzhen Zhao','springer/service oriented architecture security.csv','springer','\0'),(1335,'International Conference on ICT for Sustainable Development, ICT4SD 2015','2016','','','The proceedings contain 77 papers. The special focus in this conference is on Sustainable Development. The topics include: Implementing the logical security framework for e-commerce based on service-oriented architecture; indian sign language translator using kinect; formal transformation of UML diagram; a survey of android malware detection strategy and techniques; a review on dynamic view selection; software project estimation using fuzzy inference system; lost connectivity restoration in partitioned wireless sensor networks; analysis of authentication techniques adopted by end users in real-life cloud implementation; network analysis of ICMP ping flood DoS attack in WiMAX and wireless LAN; scheduling in big data heterogeneous distributed system using Hadoop; a new differential scan-based side-channel attacks against RSA cryptosystem; design and development of a rule-based Urdu lemmatizer; enhanced microstrip patch antenna using metamaterial for DECT and aircraft wireless system applications; an enhanced strategy to minimize makespan in cloud environment to accelerate the performance; prefix length-based disjoint set tries for IPv6 lookup; implementation of FAST clustering-based feature subset selection algorithm for high-dimensional data; performance comparison of 2D and 3D zigbee wireless sensor networks; enhancement of data security by PMK technique; privacy-leveled perturbation model for privacy preserving collaborative data mining; extended bellman ford algorithm with optimized time of computation; supervised link prediction using forecasting models on weighted online social network and dual-band rectangular-shaped antenna with sideway extension at top and bottom for WLAN and WiMax applications.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus',''),(1336,'Service security revisited','2014','','REST; Security; Services; SOA; SOAP','Developing contemporary software architectures requires the consideration and adoption of the Service-oriented Architecture (SOA) principles. Distributed applications are a very common domain in which SOA guides design decisions in particular. For a long time, SOAP and its related stack of standards have been the only technological choice for implementing SOA-based systems. With the increased adoption of the REST concept, an alternative to SOAP is gaining traction. Security considerations have been part of the SOAP-based standardization work since the very beginning. As a result, a mature and comprehensive set of security-related standards is available for building SOAP-based service systems. REST-ful service systems, however, cannot take advantage of such a fully developed security framework yet. This paper therefore revisits the SOAP-based web services security stack in order to identify commonalities, differences and gaps in the security available for REST-ful services. From these findings a desired REST-ful web services security stack is proposed together with related research, development and standardization challenges. © 2014 IEEE.','',1,'Gorski P.L., Iacono L.L., Nguyen H.V., Torkian D.B.','scopus/service oriented architecture security.csv','scopus','\0'),(1337,'Extended BPEL with Heterogeneous Authentication Mechanisms in Service Ecosystems','2009','0','BPEL, SSO, authentication, web service composition','Proceedings of the International Conference on Management of Emergent Digital EcoSystems','',2,'Pascal Bou Nassar and Youakim Badr and Frederique Biennier and Kablan Barbar','acm/bpel security.csv','acm','\0'),(1338,'Remotely reconfigurable hardware-software platform with web service interface for automated video surveillance','2013','1','FPGA; Image processing; Soa; Video surveillance; Web service','This paper presents a reconfigurable hardware platform for general-purpose video processing. The proposed design is a step towards portable, web-enabled devices which, unlike most existing smart cameras, are to a large degree autonomous and have substantial intelligence embedded. The device is based on programmable logic, microcontrollers, and dedicated communication modules. It is able to acquire an input frame using a built-in camera, process the image in a massively parallel manner, and expose its functionality as a web service compliant with the Service Oriented Architecture (SOA) paradigm. Thanks to the FPGA technology used for main functionality implementation, the system\'s hardware can be locally or remotely reconfigured in order to optimize it on a very low level for user-defined tasks. Moreover, the image processing core is implemented using a C-to-HDL compiler to reduce time to market when deploying new functionalities. We demonstrate the capabilities of our device on two example applications: moving object detection and face recognition. © 2013 Elsevier B.V. All rights reserved.','',1,'Brzoza-Woch R., Ruta A., Zieliński K.','scopus/service oriented architecture security.csv','scopus','\0'),(1339,'Automation of service-based security-aware business processes in the Cloud','2015','0',' Business process Automation Security Web services Cloud Mathematics Subject Classification 68M14 Distributed systems 68M11 Internet topics 68U35 Information systems','Abstract The use of business process standards to model and execute business needs is growing rapidly. In addition, Service-oriented Computing has been adopted to realize business processes, which basically consists of executing the process activities using services available in the Internet. In this context, the importance of security is apparent, because sensitive data sent over the Internet may be accessed by unauthorized third-parties. To prevent security problems, users may associate security requirements that must be enforced in essential tasks of the business process. This fact leads to the need of automation, because both functional and security requirements should be modeled, at high-level, and enforced, at execution level. This work proposes a cloud-based solution named BPA-Sec4Cloud that supports all phases of the security-aware business process automation, from its modeling to its deployment. The use of a cloud-based solution facilitates the deployment process because all needed resources are available in the cloud and ready to be used. In addition, the cloud is also used as a platform in order to provide specific services, such as translators, to support the automation process. In order to evaluate the BPA-Sec4Cloud, the solution was compared against existing solutions through the use of metrics related to the quality of generated artifacts.','Computing',2,'Fernando LinsJulio DamascenoRobson MedeirosErica SousaNelson Rosa','springer/bpel security.csv','springer',''),(1340,'An Approach to Assure Dependability Through ArchiMate','2015','0',' Assurance case O-DA Archimate ADM Assuredness EA','Abstract This paper describes a method to create assurance cases for the Open Dependability through Assuredness (O-DA) standard of The Open Group (TOG) based on ArchiMate. ArchiMate provides Enterprise Architecture (EA) models to describe Business, Application and Technology Architectures. Although O-DA shows the necessity of agreeing on the assuredness of EA using assurance cases, O-DA does not mention how to create assurance cases for EA. In this paper, an assurance case pattern is proposed to argue the assuredness for these three kinds of architectures modelled by ArchiMate.','',2,'Shuichiro Yamamoto','springer/bpmn security.csv','springer',''),(1341,'A Postmodern Perspective on Socio-technical Design Science Research in Information Systems','2015','0',' Design science Socio-technical artifacts Postmodernism Postmodern','Abstract This paper presents a critical account of the current state of design science research (DSR) of socio-technical artifacts in the information systems discipline as viewed through a postmodern lens. The paper offers a novel perspective to reflect on DSR and socio-technical artifacts, especially in terms of their limitations and boundaries of application. To achieve this, I critically appraise the current state of DSR practices, based on postmodern researchers’ key stances. The findings offer new perspectives on artifact effects, their application contexts, artifact utility, artifact audiences, the roles of the languages in which artifacts are specified, the design researcher’s role in the DSR process, and the political dimension of artifact design and evaluation. Design science researchers working on all types of socio-technical artifacts can use this paper’s findings to reflect on their artifacts’ limitations and potential real-world consequences before, during, and after artifact design and instantiation, and to subsequently improve these artifacts.','',2,'Andreas Drechsler','springer/bpmn security.csv','springer',''),(1342,'Towards a Reference Architecture for Service-Oriented Cross Domain Security Infrastructures','2014','0',' Cross Domain Communications Security Guard Workflow Service Oriented Architecture Reference Architecture Ontology Protocol','Abstract Today’s Cross Domain Communication (CDC) infrastructure largely consists of guards built to vendor specifications. Such an infrastructure often fails to provide adequate protections for CDC workflows involving Service Oriented Architectures. Focusing on the transport layer and oblivious to the context of the information exchanges, the guards often rely on rudimentary filtering techniques that require frequent human intervention to adjudicate messages. In this paper, we present a set of key requirements and design principles for a Service Oriented Cross Domain Security Infrastructure in form of a CDC Reference Architecture, featuring domain-associated guards as active workflow participants. This reference architecture will provide the foundation for the development of protocols and ontologies enabling runtime coordination among CDC elements, leading to more secure, effective, and interoperable CDC solutions.','',2,'Wen ZhuLowell VizenorAvinash Srinivasan','springer/bpel security.csv','springer',''),(1343,'Failure recovery in distributed model composition with intelligent assistance','2015','0',' Distributed model composition Failure recovery Semantic web AI planning','Abstract Composite models in Decision Support Systems (DSS) are combinations of model functions to solve complex decision problems. They must be executed successfully to obtain the desired results. Unfortunately, faults may happen during its execution due to the dynamic networks or the information asymmetry between developers and users. Therefore, designing effective failure recovery mechanism to ensure the reliability of the composite model execution is essential. Progress has been made in the web service composition field to obtain limited failure recovery capabilities, but not fully applicable to composite models since model services are informational services in essence which do not change the world conditions. This paper proposes a unified framework, integrated with a process ontology and multiple recovery strategies that can provide valuable failure recovery recommendations intelligently. The recovery strategies have been greatly enhanced in providing greater failure recovery capability. Feasibility and efficiency of this framework have been illustrated and tested.','Information Systems Frontiers',2,'Hui HuangXueguang ChenZhiwu Wang','springer/bpel security.csv','springer',''),(1344,'Automatic Adaptation of BPEL Processes Using Semantic Rules: Design and Development of a Loan Approval System','2007','0','','Dynamic service composition is an important challenge for many applications. This paper considers dynamic composition where the parties involved and the process they execute changes based on context. In such a setting, creating compositions from scratch is costly. Instead, we advocate automatic adaptation of existing compositions to fit the requested service demands. Our approach starts from existing BPEL processes. The details and constraints on the environment are expressed by semantic rules. We automatically decide which services are necessary to complete a desired service in a given BPEL process and which services can be removed from the process by using a reasoning engine. Based on this information, our flow generator modifies existing BPEL pivcesses to derive effective variations. The newly generated BPEL process is then executed. We study this approach in the context of a loan approval system and show how the modifications can be done on example scenarios.','Data Engineering Workshop, 2007 IEEE 23rd International Conference on',2,'F. M. Isik; B. Tastan; P. Yolum','ieee/bpel security.csv','ieee','\0'),(1345,'Data-centric access control with confidentiality for collaborating smart grid services based on publish/subscribe paradigm','2013','1','Access Control; Publish/Subscribe; Smart Grid; SOA','With the smart grid coming near, its information systems become more and more open with services as building blocks. Different smart grid services in different control centers collaborate to realize the real-time control and protection of power systems. The publish/subscribe paradigm makes smart grid service collaborations more real-time and flexible because of the space, time and control decoupling of event producer and consumer, which can be used to establish an appropriate communication infrastructure. Unfortunately, a publish/ subscribe-based smart grid service does not know who consumes its events, and consumers do not know who produces the events either. In this environment, the smart grid service cannot directly control access because of anonymous and indirect service interactions. To address the above issues, this paper at first describes the service communication foundation for smart grid services, and then defines their security model supporting data-centric methodology. Based on such model, underpinning network capabilities can be integrated to help smart grid services control access. The key point in our access control solution is to preserve the service interaction characteristics of the publish/subscribe-based smart grid services: anonymous, multicast and session-control. So two special kinds of event types are used to accomplish authorization request and granting with being consistent with the publish/subscribe paradigm. Attaching policy method is adopted to preserve the anonymity feature for collaborating smart grid services. A delegation scheme for brokers to enforce policies is finally constructed based on attribute-based encryption, which also brings confidentiality for smart grid services. © 2013 IEEE.','',1,'Zhang Y., Chen J.-L.','scopus/soa security.csv','scopus','\0'),(1346,'Towards Conflict-Free Composition of Non-functional Concerns','2012','0',' Feature Interaction NFC Composition Model-driven development Web Services','Abstract In component-based software development, applications are decomposed, e.g., into functional and non-functional components which have to be composed to a working system. The composition of non-functional behavior from different non-functional domains such as security, reliability, and performance is particularly complex. Finding a valid composition is challenging because there are different types of interdependencies between concerns, e.g. mutual exclusion, conflicts, and ordering restrictions, which should not be violated. In this paper we formalize a set of interdependency types between non-functional actions realizing non-functional behavior. These interdependencies can either be specified explicitly or implicitly by taking action properties into account. This rich set of interdependencies can then be used to ease the task of action composition by validating compositions against interdependency constraints, proposing conflict resolution strategies, and by applying our guided composition procedure. This procedure proposes next valid modeling steps leading to conflict-free compositions.','',2,'Benjamin SchmelingAnis CharfiMarko MartinMira Mezini','springer/bpmn security.csv','springer','\0'),(1347,'Cloud Computing, Networking, and Services','2012','2','','','Journal of Network and Systems Management',1,'Bhumip KhasnabishDijiang HuangXiaoying BaiPaolo BellavistaGregorio MartinezNick Antonopoulos','springer/service oriented architecture security.csv','springer','\0'),(1348,'Service-oriented middleware for collaborative UAVs','2013','3','Collaborative UAVs;Middleware;Service-Oriented Computing;Unmanned Aerial Vehicles','For a while, UAV (Unmanned Aerial Vehicles) use was limited to military applications, however recently UAVs are also used for a wide range of civilian applications. Some of the UAV applications may involve multiple UAVs that must cooperate to achieve a common task. This kind of applications is termed collaborative UAV applications. One of the main issues for multiple UAVs is developing an effective framework to enable the development of software systems for collaborative UAV operations. One possible approach is to rely on service-oriented computing and service-oriented middleware technologies to simplify the development and operations of such applications. This paper discusses the challenges of developing collaborative UAV applications and how the service-oriented middleware approach can help resolve some of these challenges. The paper also investigates the collaborative aspects of multiple UAVs and proposes a service-oriented middleware architecture that can satisfy the development and operations of such applications.','Information Reuse and Integration (IRI), 2013 IEEE 14th International Conference on',1,'N. Mohamed; J. Al-Jaroodi','ieee/service oriented architecture security.csv','ieee','\0'),(1349,'A certification-aware service-oriented architecture','2014','','','The widespread development of Service-Oriented Architecture (SOA) and web services is changing the traditional view of information technology. Today, software applications are increasingly distributed and consumed as a service, and business processes are implemented by selecting and composing services provided by different suppliers at run-time and with a minimal human intervention. In this scenario, where services are usually selected on the basis of clients\' functional preferences, the risk of providing powerful but insecure applications raises, and the problem of guaranteeing and preserving the security of services and business processes becomes stringent. To this aim, we put forward the idea that security certification techniques can be adopted to provide the evidence that a service system has some security properties and behaves as expected. However, existing security certification techniques are not well-suited to the service scenario, since they are designed for static and monolithic software and then cannot support the intrinsic SOA dynamics. In this chapter, we discuss recent developments in the area of extending security certifications to web services. In particular, we first review current certification approaches, and highlight requirements and challenges for applying them to the service ecosystem. We then present an advanced methodology for security certification based on testing, as a crucial part of a novel approach for security certification developed in the context of the FP7 EU project Advanced Security Service cERTificate for SOA (ASSERT4SOA). © Springer Science+Business Media New York 2014. All rights are reserved.','',1,'Anisetti M., Ardagna C.A., Bezzi M., Damiani E., Kaluvuri S.P., Sabetta A.','scopus/service oriented architecture security.csv','scopus','\0'),(1350,'The Future of Enterprise Systems in a Fully Networked Society','2012','1',' Future information systems enterprise systems new enterprise values enabling technologies knowledge technologies','Abstract The industrialised countries are living in an crucial phase for their economies and social systems. Computers and digital technologies have traditionally played a central role for the development of the socio-economic systems, and of enterprises in particular. But if the socio-economic scenario undergoes profound changes, also the enterprises need to change and, consequently, enterprise computing. In the next decade, enterprise software systems cannot continue to evolve along the beaten paths, there is an urgent need for new directions in the ways enterprise software is conceived, built, deployed and evolved. In this paper we illustrate the main outcome of the Future Internet Enterprise Systems ( FInES ) Research Roadmap 2025, a study on the future research lines of enterprise systems, promoted by the FInES Cluster of the European Commission (DG Information Society and Media.)','',2,'Michele Missikoff','springer/bpmn security.csv','springer','\0'),(1351,'Access Control and Authorization Constraints for WS-BPEL','2006','12','','Computerized workflow systems have attracted considerable research interest. More recently, there have been several XML-based languages proposed for specifying and orchestrating business processes, culminating in WS-BPEL. A significant omission from WS-BPEL is the ability to specify authorization information associating users with activities in the business process and authorization constraints on the execution of activities such as separation of duty. In this paper, we address these deficiencies by developing the RBAC-WS-BPEL and BPCL languages. The first of these provides for the specification of authorization information associated with a business process specified in WS-BPEL, while BPCL provides for the articulation of authorization constraints','2006 IEEE International Conference on Web Services (ICWS\'06)',2,'E. Bertino; J. Crampton; F. Paci','ieee/bpel security.csv','ieee',''),(1352,'A Stochastic Approach to Predict Performance of Web Service Composition','2009','1','Performance;Service composition','In this paper, we propose an analytical approach to predict the performance of Web service composition built on BPEL. The approach first translates Web service composition specification into stochastic Petri nets. From the SPN model and its corresponding continuous-time Markov chain, we derive the analytical performance estimates of process-completion-time. In the case study, we also use computer simulation techniques to validate our analytical model. The paper concludes with a comparison with related work.','Electronic Commerce and Security, 2009. ISECS \'09. Second International Symposium on',2,'Y. Dong; Y. Xia; Q. Zhu; Y. Huang','ieee/bpel security.csv','ieee','\0'),(1353,'PO-SAAC: A Purpose-Oriented Situation-Aware Access Control Framework for Software Services','2014','1',' Situation-aware access control Context information Purpose Situation reasoning Access control policy','Abstract Situation-aware applications need to capture relevant context information and user intention or purpose , to provide situation-specific access to software services. As such, a situation-aware access control approach coupled with purpose-oriented information is of critical importance. Existing approaches are highly domain-specific and they control access to services depending on the specific types of context information without considering the purpose . To achieve situation-aware access control , in this paper we consider purpose-oriented situations rather than conventional situations (e.g., user’s state). We take situation to mean the states of the entities and the states of the relationships between entities that are relevant to the purpose of a resource access request. We propose a generic framework, P urpose- O riented S ituation- A ware A ccess C ontrol , that supports access control to software services based on the relevant situations. We develop a software prototype to demonstrate the practical applicability of the framework. In addition, we demonstrate the effectiveness of our framework through a healthcare case study. Experimental results demonstrate the satisfactory performance of our framework.','',1,'A. S. M. KayesJun HanAlan Colman','springer/service oriented architecture security.csv','springer','\0'),(1354,'A framework for flexible REST services: Decoupling authorization for reduced service dependency','2015','','authentication; authorization; resources; RESTful services; security; service integration; SOA architecture','Integrating or creating new applications (services), using existing data involves changing existing applications (services). For better usage, there is a need to export data as basic services (SOA approach). Representational State Transfer (REST) works with resources instead of operations, offering full web-scale interoperability and scalability advantages while exchanging information between applications and in this way is more adequate, also offering HTTP content negotiation, most importantly discoverability for free and HTTP concurrency control and compression. Although there are de-facto standardized solutions for such SOA architectures, essential problems remain and need to be addressed: Authentication, Authorization, and Security. In our work we are going to propose a decoupling authorization framework for reduced service dependency, providing integration of in-house service registration such as University Services in the Cloud increasing service flexibility. © 2015 IEEE.','',1,'Memeti A., Selimi B., Besimi A., Cico B.','scopus/soa security.csv','scopus',''),(1355,'Mobile-Based Medical Data Accessibility in mHealth','2014','0','Health Information System;Provenance;REST;Web Services;WebSocket;mHealth;middleware','The medical domain is embracing mobile technology (mHealth) to enable healthcare professionals have ubiquitous access to the Electronic Health Records (EHR). This creates the need for supporting mobile users to access medical data remotely in real-time, especially in mission critical and decision making situations. However, supporting real-time access and services synchronization in highly distributed mobile environments can be challenging due to the presence of the following factors: 1) sporadic wireless disconnections, 2) fluctuating bandwidth, 3) variations in device features, and 4) battery life constraints. The mobility of the healthcare professionals also poses threats to privacy especially when personalized devices such as smartphones get into the wrong hands. In this work, we focus on the above highlighted challenges by proposing a middleware-oriented mobile cloud computing framework that facilitates near real-time data propagation in the mobile environment. Also, we explore privacy and security options for the accessibility of the medical data in a mobile environment based on provenance and data transformation. The privacy is enhanced through the implementation of policies which ensures that the requester of the medical record is the intended user. The evaluation of the system, called Med App, shows that medical data dissemination can be achieved efficiently and securely.','Mobile Cloud Computing, Services, and Engineering (MobileCloud), 2014 2nd IEEE International Conference on',1,'R. K. Lomotey; R. Deters','ieee/service oriented architecture security.csv','ieee','\0'),(1356,'SARA – System for Inventory and Static Security Control in a Grid Infrastructure','2012','0',' IT security attacks vulnerabilities security measure security standards CVE CPE CVSS NVD SARA','Abstract IT security, even if once achieved, is not a permanent state but rather a process. One of the main factors that impact this process is the ability to identify security vulnerabilities in the software. Disclosing such a flaw is usually followed by issuing a patch. However, for maintainers of a heterogeneous and compound environment, being up to date with all necessary fixes, may be an unexpectedly difficult task. Developing custom software in a grid project introduces another dimension to this problem. The SARA system for static security control has been developed to help the administrators with that issue.','',1,'Gerard FrankowskiMichał Rzepka','springer/service oriented architecture security.csv','springer','\0'),(1357,'Security Audits Revisited','2012','2','','Abstract Security audits with subsequent certification appear to be the tool of choice to cure failures in providing the right level of security between different interacting parties, e.,g., between an outsourcing provider and its clients. Our game-theoretic analysis scrutinizes this view and identifies conditions under which security audits are most effective, and when they are not. We find that basic audits are hardly ever useful, and in general, the thoroughness of security audits needs to be carefully tailored to the situation. Technical, managerial, and policy implications for voluntary, mandatory, unilateral, and bilateral security audits are discussed. The analysis is based on a model of interdependent security which takes as parameters the efficiency of security investment in reducing individual risk, the degree of interdependence as a measure of interconnectedness, and the thoroughness of the security audit.','',1,'Rainer Böhme','springer/service oriented architecture security.csv','springer','\0'),(1358,'Secure Outsourcing of Matrix Operations as a Service','2013','2','Cloud;Outsourcing;Security;Service;Workflow','This paper reports the design of a cloud-based service for coordinating secure outsourcing of storage and computation of scientific data, particularly matrices. While this service may support different secure outsourcing protocols and mechanisms (e.g. homomorphic encryption, secret sharing and randomization), we hide all the complexity from end-users and move it to a middleware broker. The broker manages the communication between the client and one or more clouds. The requests submitted by users are automatically translated into WS-BPEL workflows and then executed by the broker workflow engine to coordinate the control flow and the data flow for outsourcing of matrix operations. We detail the architecture of our framework and the design of its key components. Our work facilitates real-world and practical deployment of recently proposed secure outsourcing protocols.','2013 IEEE Sixth International Conference on Cloud Computing',2,'M. Nassar; A. Erradi; F. Sabri; Q. M. Malluhi','ieee/bpel security.csv','ieee','\0'),(1359,'Reconfigurable and Software-Defined Networks of Connectors and Components','2015','0',' Network-conscious pi-calculus PASTRY overlay networks coalgebraic semantics HD-automata BIP Petri nets with boundaries algebras of connectors tile model reconfigurable connectors dynamic connectors','Abstract The diffusion of adaptive systems motivate the study of models of software entities whose interaction capabilities can evolve dynamically. In this paper we overview the contributions in the ASCENS project in the area of software defined networks and of reconfigurable connectors. In particular we highlight: (i) the definition of the Network-conscious pi-calculus and its use in the modeling and verification of the PASTRY protocol, and (ii) the mutual correspondence between different frameworks for defining networks of connectors together with two suitable enhancements for addressing dynamically changing systems.','',2,'Roberto BruniUgo MontanariMatteo Sammartino','springer/bpel security.csv','springer',''),(1360,'Highly Customizable Service Composition and Orchestration','2015','0',' Service orchestration Self-organization Holonic system','Abstract One of the current challenges of Service Oriented Engineering is to provide instruments for dealing with dynamic and unpredictable user requirements and environment. Traditional approaches based on workflow for orchestrating services provide little support for configuring at run-time the flow of activities. This paper presents a general approach for composing and orchestrating services in a self-organization fashion. User requirements are made explicit in the system by a goal specification language. These can be injected into the running orchestration system that is able to autonomously and contextually reason on them. Therefore, the system dynamically organizes its structure for addressing the result. A prototype of the system has been implemented in JASON, a language for programming multi agent systems. Some aggregate statistics of execution are reported and discussed.','',2,'Luca SabatucciCarmelo LodatoSalvatore LopesMassimo Cossentino','springer/bpel security.csv','springer',''),(1361,'Improving Security Testing with Usage-Based Fuzz Testing','2015','0',' Security testing Fuzzing Usage-based testing','Abstract Along with the increasing importance of software systems for our daily life, attacks on these systems may have a critical impact. Since the number of attacks and their effects increases the more systems are connected, the secure operation of IT systems becomes a fundamental property. In the future, this importance will increase, due to the rise of systems that are directly connected to our environment, e.g., cyber-physical systems and the Internet of Things. Therefore, it is inevitable to find and fix security-relevant weaknesses as fast as possible. However, established automated security testing techniques such as fuzzing require significant computational effort. In this paper, we propose an approach to combine security testing with usage-based testing in order to increase the efficiency of security testing. The main idea behind our approach is to utilize that little tested parts of a system have a higher probability of containing security-relevant weaknesses than well tested parts. Since the execution of a system by users can also be to some degree being seen as testing, our approach plans to focus the fuzzing efforts such that little used functionality and/or input data are generated. This way, fuzzing is targeted on weakness-prone areas which in turn should improve the efficiency of the security testing.','',1,'Martin A. SchneiderSteffen HerboldMarc-Florian WendlandJens Grabowski','springer/service oriented architecture security.csv','springer',''),(1362,'Security-as-a-service for microservices-based cloud applications','2015','','Microservices; Network monitoring; Security','Microservice architecture allows different parts of an application to be developed, deployed and scaled independently, therefore becoming a trend for developing cloud applications. However, it comes with challenging security issues. First, the network complexity introduced by the large number of microservices greatly increases the difficulty in monitoring the security of the entire application. Second, microservices are often designed to completely trust each other, therefore compromise of a single microservice may bring down the entire application. The problems are only exacerbated by the cloud, since applications no longer have complete control over their networks. In this paper, we propose a design for security-as-a-service for microservices-based cloud applications. By adding a new API primitive FlowTap for the network hypervisor, we build a flexible monitoring and policy enforcement infrastructure for network traffic to secure cloud applications. We demonstrate the effectiveness of our solution by deploying the Bro network monitor using FlowTap. Results show that our solution is flexible enough to support various kinds of monitoring scenarios and policies and it incurs minimal overhead (~6%) for real world usage. As a result, cloud applications can leverage our solution to deploy network security monitors to flexibly detect and block threats both external and internal to their network. © 2015 IEEE.','',1,'Sun Y., Nanda S., Jaeger T.','scopus/microservice security.CSV','scopus','\0'),(1363,'Building Enterprise Ready Applications Using Linked Open Data','2014','0','','Abstract Exploiting open data in the web community is an established movement that is growing these recent years. Government public data is probably the most common and visible part of the later phenomena. What about companies and business data? Even if the kickoff was slow, forward-thinking companies and businesses are embracing semantic technologies to manage their corporate information. The availability of various sources, be they internal or external, the maturity of semantic standards and frameworks, the emergence of big data technologies for managing huge volumes of data have fostered the companies to migrate their internal information systems from traditional silos of corporate data into semantic business data hubs. In other words, the shift from conventional enterprise information management into Linked Opened Data compliant paradigm is a strong trend in enterprise roadmaps. This chapter discusses a set of guidelines and best practices that eases this migration within the context of a corporate application.','',1,'Amar-Djalil MezaourBert Van NuffelenChristian Blaschke','springer/service oriented architecture security.csv','springer','\0'),(1364,'Experience report on successful demonstration of SWIM by three industry partners','2012','','','This paper presents the concept, design, technologies, and implementation of a generic system wide information management platform based on service oriented architecture principles. Together with a number of industrial partners, FREQUENTIS conducted a successful first implementation of the still to be developed further European System Wide Information Management (SWIM) Infrastructure dedicated to the definition of the European SWIM Technical Architecture, which will allow seamless interoperability and information sharing of future European Air Traffic Management (ATM) Systems. To cover the needs of existing research projects like Next Generation Air Transportation System (NextGen), Single European Sky ATM Research (SESAR) or Collaborative Actions for Renovation of Air Traffic Systems (CARATS), FREQUENTIS works on a reference architecture with the goal of reusability across domains. This paper describes the current results of SESAR SWIM in the form of requirements and capability definitions that a compatible information system needs to fulfill. Those capabilities are basically derived from major topics of interest within the SWIM Technical Infrastructure such as interoperable communication, security, and governance. Following requirements and capabilities, FREQUENTIS creates a conceptual architecture utilizing artifact types from several commonly used architectural views (structural, behavioral, deployment) depicting logical structure and interaction among the major sub-systems and their components, as well as information exchange flows. Based on previous logical architecture considerations, a list of appropriate technology standards is given. The system will be deployed either as an extension to new services of certain service providers or in case of existing legacy services as a Service Oriented Architecture (SOA) enabler. Therefore, the possible fields of use are beyond the SESAR Air Traffic Management SWIM scenario. © 2012 IEEE.','',1,'Gringinger E., Trausmuth G., Balaban A., Jahn J., Milchrahm H.','scopus/service oriented architecture security.csv','scopus','\0'),(1365,'Pattern-driven green adaptation of process-based applications and their runtime infrastructure','2012','2',' Green business process pattern Cloud pattern Green IT TOSCA Adaptation of applications Ecological sustainable business processes Mathematics Subject Classification (2000) 68U01 68U35 68W01','Abstract Business processes are a key aspect of modern organization. In recent years, business process management and optimization has been applied to different cross-cutting concerns such as security, compliance, or Green IT, for example. Based on the ecological characteristics of a business process, proper environmentally sustainable adaptation strategies can be chosen to improve the total environmental impact of the business process. We use ecological sustainable adaptation strategies that are described as green business process patterns. The application of such a green business process pattern, however, affects the business process layer, the application component and the infrastructure layer. This implies that changes in the application infrastructure also need to be considered. Hence, we use best practices of cloud application architectures which are described as Cloud patterns. To guide developers through the adaptation process we propose a pattern-based approach in this work. We correlate Cloud patterns relevant for sustainable business processes to green business process patterns and organize them within a classification. To provide concrete implementation support we further annotate these Cloud patterns to application component models that are described with the topology and orchestration specification for cloud applications (TOSCA). Using these annotations, we describe a method that provides the means to optimize business processes based on green business process patterns through adapting the implementation of application components with concrete TOSCA implementation models.','Computing',2,'Alexander NowakTobias BinzChristoph FehlingOliver KoppFrank LeymannSebastian Wagner','springer/bpel security.csv','springer','\0'),(1366,'Architecture for a system providing a common operating picture of critical infrastructure','2015','','','This paper presents an architecture for the Situational Awareness of Critical Infrastructure and Networks (SACIN) framework, which offers a common operating picture of the critical infrastructure with its interdependencies. SACIN delivers the common operating picture through a brokered agent-based architecture. The design follows the Joint Directors of Laboratories (JDL) data fusion model to allow integration of different critical infrastructure systems. A generic agent component is customized for each source system to produce events and allow JDL level 0 integration. Three different analysis components collect the events and produce meaningful objects, current state and future impact estimations in accordance with JDL levels 1 to 3. Brokered architecture allows level 4 control from various components, and JDL level 5 user interface is offered through a Web application. A prototype system has been developed to test and evaluate the SACIN framework. Apache ActiveMQ message broker was used to implement the brokered architecture, and other system components were implemented using Spring framework. The system architecture was tested using real-world data from intrusion detection system (IDS)-generated syslog and a supervisory control and data acquisition (SCADA) system snapshot. Customized agents for IDS and SCADA systems demonstrated that the system can process event and dependency data from different sources as part of the common operating picture and consequently can support situational awareness.','Technologies for Homeland Security (HST), 2015 IEEE International Symposium on',1,'L. Laaperi; J. Vankka','ieee/service oriented architecture security.csv','ieee',''),(1367,'Security transparency: the next frontier for security research in the cloud','2015','1',' Security and protection Cloud Services Security transparency Mutual audits Trusted cloud services','Abstract The recent advances in networking and the ubiquity of the Internet have enabled the emergence of cloud computing as a viable solution for a convenient, elastic and economical usage of services. In spite of these apparent advantages, the cloud model presents some challenges that hamper its wider adoption, most of which relate to security and privacy. This paper provides a review of the current initiatives devised by both academia and industry for addressing the security concerns inherent to the cloud model. Our analysis of the state of the art reveals that although initiatives such as SLA and virtual machines monitoring, and recent development in encryption mechanisms, have contributed to addressing some of the salient issues of security and privacy in the cloud, larger initiatives, other than standards, aiming at enabling security transparency and a mutual auditability in the cloud remain to be seen. With this in mind, the paper proposes some routes towards related solutions by discussing a number of desiderata for establishing a better security transparency between a Cloud Service Provider (CSP) and a Cloud Service Consumer (CSC). Given the current reluctance of some major businesses to embrace the trend, owing mainly to the devolution of some of the security aspects to a third party, the authors argue that undertaking some initiatives in that direction is a key to sustaining the current momentum of the cloud.','Journal of Cloud Computing',1,'Moussa OuedraogoSeverine MignonHerve CholezSteven FurnellEric Dubois','springer/service oriented architecture security.csv','springer',''),(1368,'Design science in action: developing a modeling technique for eliciting requirements on business process management (BPM) tools','2015','0',' Business process modeling Workflow Case management Shared space Design science','Abstract Selecting a suitable business process management (BPM) tool to build a business process support system for a particular business process is difficult. There are a number of BPM tools on the market that are available as systems to install locally and as services in the cloud. These tools are based on different BPM paradigms (e.g., workflow or case management) and provide different capabilities (e.g., enforcement of the control flow, shared spaces, or a collaborative environment). This makes it difficult for an organization to select a tool that would fit the business processes at hand. The paper suggests a solution for this problem. The core of the solution is a modeling technique for business processes for eliciting their requirements for a suitable BPM tool. It produces a high-level, business process model, called a “step-relationship” model that depicts the essential characteristics of a process in a paradigm-independent way. The solution presented in this paper has been developed based on the paradigm of design science research, and the paper discusses the research project from the design science perspective. The solution has been applied in two case studies in order to demonstrate its feasibility.','Software & Systems Modeling',2,'Ilia BiderErik Perjons','springer/bpmn security.csv','springer',''),(1369,'355--356','2013','0','','Business processes today must be developed while businesses are themselves changing to suit turbulent market conditions. Cooperation and collaboration across corporations is the key to developing effective and adaptable business processes in this situation. But how? Both business users and technical developers must work together using a tool that lets both skill sets deliver an optimal solution. One of the most successful business process development tools for both a business user and a technical developer was used in this workshop: IBM\'s Business Process Manager Advanced 8.5.','',1,'','acm/soa security.csv','acm','\0'),(1370,'Policy Management as a Service: An Approach to Manage Policy Heterogeneity in Cloud Computing Environment','2012','3','access control;cloud computing;heterogeneity;policy management;policy management as a service','Security issues are delaying fast adoption of cloud computing and security mechanisms to ensure its secure adoption has become a crucial immediate need. On the other hand, cloud computing can help enable security controls to be delivered in new ways by service providers. To this end, we need frameworks for efficient delivery of cloud-based security services and for provisioning desirable solutions to customers based on their requirements. In this paper, we focus on policy management systems in cloud environments. Currently, users must use diverse access control solutions available for each cloud service provider to secure data. Access control policies may be composed in incompatible ways because of diverse policy languages that are maintained separately at every cloud provider. Heterogeneity and distribution of these policies pose problems in managing access policy rules for a cloud environment. In this paper, we introduce Policy Management as a Service (PMaaS), a cloud based policy management framework that is designed to give users a unified control point for managing access policies to control access to his resources no matter where they are stored. We present the framework and describe its components and protocols needed for various components to communicate.','System Science (HICSS), 2012 45th Hawaii International Conference on',1,'H. Takabi; J. B. D. Joshi','ieee/service oriented architecture security.csv','ieee','\0'),(1371,'Systems and Virtualization Management: Standards and the Cloud. A report on SVM 2013','2014','1',' Cloud CIM Web services and SOA Network Server Desktop management','Abstract Hosted by the Distributed Management Task Force (DMTF) and collocated with the International Conference on Network and Service Management, SVM 2013 was the seventh International DMTF Academic Alliance Workshop on Systems and Virtualization Management (SVM). SVM 2013 was held in Zurich, Switzerland on October 18, 2013. Featuring seven presentations surrounding cloud, OpenSAF, open standards, and CIM, SVM 2013 also included a joint poster session with another workshop, an invited talk by a guest speaker, a keynote speech given by the DMTF President, Jeff Hilland, and closed with an informal interactive group discussion.','Journal of Network and Systems Management',1,'Mark Carlson','springer/soa security.csv','springer','\0'),(1372,'Privacy preserving sub-feature selection based on fuzzy probabilities','2014','1',' Distributed data mining Fuzzy probabilities Privacy Feature selection','Abstract The feature selection addresses the issue of developing accurate models for classification in data mining. The aggregated data collection from distributed environment for feature selection makes the problem of accessing the relevant inputs of individual data records. Preserving the privacy of individual data is often critical issue in distributed data mining. In this paper, it proposes the privacy preservation of individual data for both feature and sub-feature selection based on data mining techniques and fuzzy probabilities. For privacy purpose, each party maintains their privacy as the instruction of data miner with the help of fuzzy probabilities as alias values. The techniques have developed for own database of data miner in distributed network with fuzzy system and also evaluation of sub-feature value included for the processing of data mining task. The feature selection has been explained by existing data mining techniques i.e., gain ratio using fuzzy optimization. The estimation of gain ratio based on the relevant inputs for the feature selection has been evaluated within the expected upper and lower bound of fuzzy data set. It mainly focuses on sub-feature selection with privacy algorithm using fuzzy random variables among different parties in distributed environment. The sub-feature selection is uniquely identified for better class prediction. The algorithm provides the idea of selecting sub-feature using fuzzy probabilities with fuzzy frequency data from data miner’s database. The experimental result shows performance of our findings based on real world data set.','Cluster Computing',1,'Hemanta Kumar BhuyanNarendra Kumar Kamila','springer/soa security.csv','springer','\0'),(1373,'Remote agent based automated framework for threat modelling, vulnerability testing of SOA solutions and web services','2012','1','extensible automated framework; security testing; user driven test scenarios; web services','Web services are a widely touted technology that aims to provide tangible benefits to both business and IT. Their increasing use in the enterprise sector, for the integration of distributed systems and business critical functions, dictates the need for diverse security assurances. Existing security frameworks do provide comprehensive security testing, but are not flexible enough to handle complex, user defined threat scenarios. This paper identifies and details an approach for providing an automated mechanism, which has the capability to allow users to create their own complex threat scenarios and test them against highly distributed web services. This mechanism provides the user with the tools and information necessary to generate and implement user defined security tests. This mechanism should however be considered only as a user driven extension to existing web service security testing frameworks. © 2012 Infonomics Society.','',1,'Patil P., Pawar S.','scopus/soa security.csv','scopus','\0'),(1374,'The Aniketos Service Composition Framework','2014','0',' secure service composition BPMN service modelling service availability','Abstract Modern applications are inherently heterogeneous: they are built by composing loosely coupled services that are, usually, offered and operated by different service providers. While this approach increases the flexibility of the composed applications, it makes the implementation of security and trustworthiness requirements much more difficult. Therefore there is a need for new approaches that integrate security requirements right from the beginning while composing service-based applications, in order to ensure security and trustworthiness. In this chapter, we present a framework for secure service composition using a model-based approach for specifying, building, and executing composed services. As a unique feature, this framework integrates security requirements as a first class citizen and, thus, avoids the “security as an afterthought” paradigm.','',2,'Achim D. BruckerFrancesco MalmignatiMadjid MerabtiQi ShiBo Zhou','springer/bpmn security.csv','springer',''),(1375,'Data Analysis as a Service: An Infrastructure for Storing and Analyzing the Internet of Things','2015','0',' Internet of things Mongodb Data analysis as a protocol Meteor Restful services Reactive visualisation','Abstract As the Internet of Things (IoT) is becoming an increasingly trendy topic both for individuals, businesses and governments, the need for academically reviewed and developed prototypes focusing on certain aspects of IoT are increasing as well. Throughout this paper we propose an architecture and a technology stack for creating real-time applications focusing on time-series data generated by IoT devices. The architecture and technology stack are then implemented through a proof-of-concept prototype named Office Analysis as a Service, DaaS, a data-centric web application developed using Meteor.js and MongoDB. We also propose a data structure for storing time-series data in a MongoDB document for optimal query performance of large datasets. One common research challenge in the IoT, security , is considered only briefly, and is of utmost importance in future research..','',1,'Martin LehmannAndreas Biørn-HansenGheorghita GhineaTor-Morten GrønliMuhammad Younas','springer/service oriented architecture security.csv','springer',''),(1376,'A noisy channel model for web service','2010','0','compensation;fault handling;interval value;noisy channel;operational semantics;web service','In this paper, we propose a language I-BPEL to model web services in the environment with channel noise and system instabilities. Each channel is assigned an interval value to indicate the value of noise. We introduce an operational semantics which attached with interval values to indicate the quality of the web service. Based on the syntax and semantics, we define the notion of simulation and investigate some important properties of simulation.','Software Engineering and Data Mining (SEDM), 2010 2nd International Conference on',2,'J. Zhou; S. Key; Y. Chen','ieee/bpel security.csv','ieee','\0'),(1377,'Theme issue on advances in the Internet of Things: identification, information, and knowledge','2015','1','','','Personal and Ubiquitous Computing',1,'Yunchuan SunRongfang BiePeter ThomasXiuzhen Cheng','springer/service oriented architecture security.csv','springer',''),(1378,'ASM-based formal design of an adaptivity component for a Cloud system','2016','0',' Distributed systems Cloud computing Abstract State Machines Modeling process Model refinement Validation Verification','Abstract The request of formal methods for the specification and analysis of distributed systems is nowadays increasing, especially when considering the development of Cloud systems and Web applications. This is due to the fact that modeling languages currently used in these areas have informal definitions and ambiguous semantics, and therefore their use may be unreliable. Thanks to their mathematical foundation, formal methods can guarantee rigorous system design, leading to precise models where requirements can be validated and properties can be assured, already at the early stages of the system development. In this paper, we present a rigorous engineering process for distributed systems, based on the Abstract State Machines (ASM) formal method. We rely on the foundational notions of ASM ground model and model refinement to obtain a precise model for a client-server application for Cloud systems. This application has been proposed to tackle the problem of making Cloud services usable to different end-devices by adapting on-the-fly the content coming from the Cloud to the different devices contexts. The ASM-based modeling process is supported by a number of validation and verification activities that have been exploited on the component under development to guarantee consistency, correctness, and reliability properties.','Formal Aspects of Computing',1,'Paolo ArcainiRoxana-Maria HolomElvinia Riccobene','springer/service oriented architecture security.csv','springer',''),(1379,'Understanding and mitigating security and authentication issues in service oriented network architecture','2015','','Authentication; Flexible network; Pki; Public key; Public key infrastructure; Security; Service oriented network architecture; Services; Sonate','Service oriented network architecture (SONATE) is one of the outcome of many architectures being explored to evolve as future network architecture. The architecture describes about the importance of flexibility to solve the short term as well as the long term requirements of the consumer (Manu et al., 2012; Rudra et al., 2011a). Flexibility is the solution for solving the architectural problems but raises many security problems. It is important to consider security must be considered as the integral part of design level rather than at the development stage of the architecture. This paper discusses various security requirements for the entities of the architecture and the importance of authentication.Apublic key based infrastructure (PKI) mechanism is proposed and discussed in detail. Copyright © 2015 Inderscience Enterprises Ltd.','',1,'Rudra B., Vyas O.P.','scopus/service oriented architecture security.csv','scopus',''),(1380,'Extension on Transactional Remote Services in SOFL','2013','0','','Abstract Software quality always attracts considerable attentions of people. Software running without any mistakes is always a dream of all developers. Besides traditional testing method using in practice such as path coverage, selection coverage, etc, people try to use some more formal and reliably method to ensure the quality. SOFL, stands for Structured Object-oriented Formal Language, is a kind of formal language which can be used to describe, validate and verify core business flow of software. As software developing model keeps changing for years, we need to make some extensions to SOFL. In this paper, we have performed extension on transactional remote services designed for SOFL. Our extension can mainly be divided into two parts: remote services and transactions. By introducing these, SOFL is able to keep pace with the changing software developing model, thus ensuring software quality in a more mathematical and different way comparing with traditional testing.','',2,'Yisheng WangHaopeng Chen','springer/bpel security.csv','springer','\0'),(1381,'Human-Agent Teamwork in Cyber Operations: Supporting Co-evolution of Tasks and Artifacts with Luna','2012','1',' Task-artifact cycle coactive emergence software agents multi-agent systems policy Luna KAoS OWL ontologies cyber security','Abstract In this article, we outline the general concept of coactive emergence , an iterative process whereby joint sensemaking and decision-making activities are undertaken by analysts and software agents. Then we explain our rationale for the development of the Luna software agent framework. In particular, we focus on how we use capabilities for comprehensive policy-based governance to ensure that key requirements for security, declarative specification of taskwork, and built-in support for joint activity within mixed teams of humans and agents are satisfied.','',1,'Larry BunchJeffrey M. BradshawMarco CarvalhoTom EskridgePaul J. FeltovichJames LottAndrzej Uszok','springer/service oriented architecture security.csv','springer','\0'),(1382,'Enhanced Hospital Information System by Cloud Computing: SHEFA’A','2014','0','','Abstract Information Technology is an important part of the healthcare environment. Accuracy and integrity of the information in any hospital system is necessary. Then, this information has to be up-to-date as well to achieve continuous quality improvement in any organization and particularly in a complex area like healthcare. Therefore, diverse information systems must be integrated across the healthcare enterprise. The main objective of this research is to develop a framework for the exchange of patients records located in different hospitals in Saudi Arabia, adding insurance and prescriptions information along with the patient’s record to facilitate the insurance process and to automate the medicine prescription process that is currently manual in most hospitals. The proposed framework aims to improve the regular ways of obtaining patients medical records separated in each hospital. For instance, if a particular patient has different medical records in different hospitals visited by that patient, our architecture focuses on the method by which data should be searched and retrieved efficiently from a database on the cloud from different hospitals by preprocessing the data in current hospital’s and saving them in the database that resides on the cloud. Our system design is based on cloud computing service oriented architecture. Some of the information included in these medical records is: medical history, prescribed medications and allergies, immunization status, laboratory and test results, radiology images, personal stats like age and weight, diagnoses, order tests and appointments. All of these records are identified by the national ID of the patient. these systems will be utilized by web services asp.net based framework, the doctor will use his/her ID and password to enter the system for security and then enter the patient’s ID to send a request for that patient’s record that will be sent back to the doctor, the record will be up-to-date since the last visit of the patient to any hospital in Saudi Arabia. The main aim of this study is to provide a data exchange model of patients records, it is used to decrease the time and cost of patients, and help doctors to get up-to-date and accurate information of patients from the records from any hospital in Saudi Arabia. By using e-Patient medical records and Mirth Connect program which use HEALTH LEVEL 7 (HL7) protocol. HL7 protocol is a standard information format of healthcare for data exchange. We provide a single, complete automated patient medical record to give a better patient care that avoids medical mistakes due to lack of information and unavailability of medical records.','',1,'Lamiaa Fattouh IbrahimSuzan SadekShahd HakeemLana Al-SabbanAsmaa Ibrahim Mohammed AhmedAlaa Hassan Al-Sayed','springer/service oriented architecture security.csv','springer','\0'),(1383,'Lightweight information flow control for web services','2012','','','This paper presents a concept of incorporating information flow control (IFC) mechanisms into service-oriented systems. As opposed to existing IFC proposals, commonly imposing requirements hard or impossible to achieve in service-oriented environments (such as analysis of the application code), our solution fully complies with the Service Oriented Architecture (SOA) model. We present how IFC can be managed in an SOA system by using ORCA security policy language. We also describe two possible implementations of such SOA-specific IFC mechanisms using cryptographic keys and poly-instantiated web services. © 2012 Springer-Verlag.','',1,'Brodecki B., Kalewski M., Sasak P., Szychowiak M.','scopus/service oriented architecture security.csv','scopus','\0'),(1384,'Challenges for mesoscale climatology execution on experimental grid computing systems','2013','0',' Grid computing Climatology Mesoscale numerical atmospheric model BRAMS Globus OurGrid OAR/CiGri','Abstract This paper discusses the challenges of executing a long-term application on a computational grid, which generates the climatology of the atmospheric numerical model BRAMS ( B razilian development on R egional A tmospheric M odeling S ystem) using ensemble members. We have developed a workflow that submits climatology to the computational grid composed by three different grid middlewares (OurGrid, OAR/CiGri and Globus) and three clusters (situated in Porto Alegre, São José dos Campos and Cachoeira Paulista—Brazil). The application characteristics demand a processing grid, rather than a data grid, due to intensive computation and data transfer between the geographically distributed grid nodes. We achieved the goal of generating the climatology using a computational grid. However, we observed problems on application performance due data transfer and non-availability of the computational grid. Questions related to data storage/transfer and grid failures must be better treated to ensure application performance.','Journal of the Brazilian Computer Society',1,'Eugenio Sper de AlmeidaHaroldo Fraga de Campos VelhoAiram Jonatas Preto','springer/service oriented architecture security.csv','springer','\0'),(1385,'Privacy Against the Business Partner: Issues for Realizing End-to-End Confidentiality in Web Service Compositions','2009','5','Web Services;confidentiality;privacy','For service-oriented business processes, an important security requirement is confidentiality of transmitted data. Here, existing Web Services security standards provide suitable solutions for single invocations, but fail to cover service composition scenarios properly, especially for securing business process data against partners. In this paper, we investigate the issues regarding the realization of process level confidentiality in WS-BPEL-based Web Service compositions.','2009 20th International Workshop on Database and Expert Systems Application',2,'M. Jensen; N. Gruschka','ieee/bpel security.csv','ieee','\0'),(1386,'Territorial Governance, E-Government and Sustainable Development Policy: A System Dynamics Approach','2013','0',' territorial governance egovernment sustainable development policy','Abstract The goal of this paper is to demonstrate how system dynamics modelling can be used in e-government policy and systems as an aid to spport territorial ananlysis, planning and governance, sustainable performance in urban areas and the assessment of policy outcomes. Topics such as renewable energy, efficiency, the design and exploitation of urban energy, water and waste management infrastructure and the alignment of different stakeholders provide relevant fields of study for the analysis of this paper. Specifically, we reflect upon the way in which a preliminary dynamic performance management model of an exemplary case study can be used to foster a common shared view among different policy makers as a way to highlight new ways to enable sustainable development in urban areas.','',1,'Diego NavarraCarmine Bianchi','springer/service oriented architecture security.csv','springer','\0'),(1387,'Business models and service applications for traffic management','2012','','Business modeling; Service-oriented architecture; Traffic management; Web services','Managing traffic becomes more and more dependent on ICT - Information and Communication Technology, in general and particularly on ICT services support. Safety, pollution, congestion, and travel time are all important concerns that point to needs for improving traffic management and realizing this would concern the supportive services (including ICT services). Technology-independent functionality models are not only needed for better understanding the (used and/or desired) (IT) services and discussing them of full value with both developers and users but also for establishing appropriate traceability that would allow updating the underlying technology accordingly based on desired updates in the service support. That is why business models and service applications need to be considered together. Hence, in addressing service applications for traffic management, we would emphasize on the crucial role of business process analysis and technology-independent modeling. Further, service applications relate to corresponding ICT-based service platforms that provide relevant support - in the case of traffic management, it would be for example: localized monitoring and management of traffic and environmental information collected from various information sources such as sensors, surveillance cameras, and weather stations. Such information should be made available through the services in order to increase reusability, loose coupling and management of different information and their analysis. With regard to this, two significant challenges relate to service discovery and interoperability. This paper, reporting research in progress, emphasizes not only on service applications (particularly for traffic) and relations to business modeling, but also on the challenges mentioned above. In this way, we present some visions on how to better benefit from business models and IT services, for usefully improving traffic management, partially exemplifying this.','',1,'Sapkota B., Van Sinderen M., Shishkov B.','scopus/service oriented architecture security.csv','scopus','\0'),(1388,'Evaluation of ASLan mutation operators','2013','','','The AVANTSSAR validation platform is an automated toolset for validating trust and security aspects of Service-Oriented Architectures (SOAs). Models and security properties are specified in lowlevel AVANTSSAR Specification Language (ASLan) and there are three dedicated model-checkers that can validate if such models satisfy the security properties. However, the implementation may deviate from the specification and may contain some vulnerabilities that an attacker could exploit to violate the defined security properties. We have designed a set of semantic mutation operators to inject such vulnerabilities in an ASLan specification. Here we present the implementation of those mutation operators as Extensible Stylesheet Language Transformation (XSLT) scripts. Then, we evaluate the interest of using semantic mutation operators instead of syntactic ones by comparing the number of mutants that lead to the generation of a test case (i.e., a potential attack) and the resulting test suite for a set of existing ASLan specifications. © 2013 Springer-Verlag.','',1,'Oudinet J., Calvi A., Büchler M.','scopus/service oriented architecture security.csv','scopus','\0'),(1389,'Behavioral Attestation for Web Services using access policies','2013','0',' Trusted computing Remote attestation Behavioral attestation Usage control Web services Delegation','Abstract Service Oriented Architecture with underlying technologies like web services and web service orchestration opens new vistas for integration among business processes operating in heterogeneous environments. However, such dynamic collaborations require a highly secure environment at each respective business partner site. Existing web services standards address the issue of security only on the service provider platform. The partner platforms to which sensitive information is released have till now been neglected. Remote Attestation is a relatively new field of research which enables an authorized party to verify that a trusted environment actually exists on a partner platform. To incorporate this novel concept in to the web services realm, a new mechanism called WS-Attestation has been proposed. This mechanism provides a structural paradigm upon which more fine-grained solutions can be built. In this paper, we present a novel framework, Behavioral Attestation for Web Services, in which XACML is built on top of WS-Attestation in order to enable more flexible remote attestation at the web services level. We propose a new type of XACML policy called XACML behavior policy, which defines the expected behavior of a partner platform. Existing web service standards are used to incorporate remote attestation at the web services level and a prototype is presented, which implements XACML behavior policy using low-level attestation techniques.','Multimedia Tools and Applications',1,'Masoom AlamXinwen ZhangMohammad NaumanTamleek AliMuhammad AliSajid AnwarQuratulain Alam','springer/service oriented architecture security.csv','springer','\0'),(1390,'A Classification of Trust Computation Models for Service-Oriented Internet of Things Systems','2015','0','Internet of things (IoT);security;social IoT;trust','Future Internet of Things (IoT) systems will connect the physical world into cyberspace everywhere and everything via billions of smart objects and are expected to have a high economic impact. To date there is little work on trust computation in IoT environments for security enhancement, especially for dealing with misbehaving owners of IoT devices that provide services to other IoT devices in the system. In this paper we classify trust computation models to-date for IoT systems. Our approach is to classify existing trust computation models based on five design dimensions: trust composition, trust propagation, trust aggregation, trust update, and trust formation. We summarize advantages and drawbacks of each dimension\'s options, and highlight the effectiveness of defense mechanisms against malicious attacks. We also summarize the most and least studied trust computation techniques in the literature and provide insight on the effectiveness of trust computation techniques as applying to IoT systems. Finally, we identify gaps in IoT trust computation research and suggest future research directions.','Services Computing (SCC), 2015 IEEE International Conference on',1,'J. Guo; I. R. Chen','ieee/service oriented architecture security.csv','ieee',''),(1391,'A Unified Formal Model for Service Oriented Architecture to Enforce Security Contracts','2012','1','aspects, formal methods, reference monitors, security, service-oriented architecture','In this paper we introduce a model as a foundation for heterogeneous services, therefore unifying web services technologies in SOA (Service Oriented Architecture), specifically, SOAP/WS* and RESTful models. This model abstracts away from service implementations, in order to verify and to enforce some important security properties.','',1,'Diana Allam','acm/service oriented architecture security.csv','acm','\0'),(1392,'SATURN (Situational awareness tool for urban responder networks)','2012','0','sensor fusion;urban responders;video;video analytics','SATURN is a prototype system for the intelligent incorporation of output from surveillance camera networks into an enhanced situational awareness display. It is a web-based, service oriented, open standards platform designed to be accessible to any user with a common browser. SATURN fuses information from an array of sensors including real-time feeds from video cameras. The sensor data is displayed within an intuitive map-based view and is coupled with video analytics algorithms, a chat capability, and collaborative tools for annotation. A principal component of the system is the ability to conduct attribute-based searches for people within live video feeds and for vehicles within archived camera footage. This realtime cueing to events involving people or vehicles of interest provides a potential reduction in manpower and shortened response timeline. SATURN is applicable to a broad set of law enforcement, security, and counterterrorism missions typically addressed by urban responders.','Information Fusion (FUSION), 2012 15th International Conference on',1,'H. Zwahlen; A. Yahr; D. Berven; M. T. Chan; M. Merfeld; C. Russ; J. Thornton; J. Mapar','ieee/service oriented architecture security.csv','ieee','\0'),(1393,'Assisting the Deployment of Security-Sensitive Workflows by Finding Execution Scenarios','2015','0','','Abstract To support the re-use of business process models, an emerging trend in Business Process Management, it is crucial to assist customers during deployment. We study how to do this for an important class of business processes, called security-sensitive workflows, in which execution constraints on the tasks are complemented with authorization constraints (e.g., Separation of Duty) and authorization policies (constraining which users can execute which tasks). We identify the capability of solving Scenario Finding Problems (SFPs), i.e. finding concrete execution scenarios, as crucial in supporting the re-use of security-sensitive workflows. Solutions of SFPs provide evidence that the business process model can be successfully executed under the policy adopted by the customer. We present a technique for solving two SFPs and validate it on real-world business process models taken from an on-line library.','',2,'Daniel R. dos SantosSilvio RaniseLuca CompagnaSerena E. Ponta','springer/bpmn security.csv','springer',''),(1394,'Security and Safety of Assets in Business Processes','2012','1','BPMN, monitoring, resource modeling, safety, security','Proceedings of the 27th Annual ACM Symposium on Applied Computing','',2,'Ganna Monakova and Achim D. Brucker and Andreas Schaad','acm/bpmn security.csv','acm','\0'),(1395,'A BIM-based Code Compliance Checking Process of Deep Foundation Construction Plans','2015','2',' Code compliance checking Rule-based checking Deep foundation BIM','Abstract Deep foundation construction projects are quite risky, so it has to be checked by supervisors for code compliance and reviewed by a committee of experts for risk identification before the construction begins. The quality of code compliance checking directly affects the safety of deep foundation construction. Because of the limitations of manual checking by even the best supervisors, the goal of this research is to achieve an approach of BIM-based code compliance checking for deep foundation construction presented in BIM models, as well as a system based on the proposed approach. This research abides by the principles of four stages in rule-based system, and emphasizes the development of the library of checking knowledge and the standard of required information which are the key problems in achieving the BIM-based code compliance checking. Decision tables, production representation and a developing process similar to IDM development are used to solve the problems. Furthermore, a case study is provided to investigate the effect of the BIM-based code compliance checking process. It is proved that the BIM-based checking improves the efficiency and precision in code compliance checking and facilitates the risk identification at the next stage. It ensures the safety of deep foundation and reduces personal injury and property loss.','Journal of Intelligent & Robotic Systems',2,'Hanbin LuoPeisong Gong','springer/bpmn security.csv','springer',''),(1396,'Patterns for a Log-Based Strengthening of Declarative Compliance Models','2012','1',' Linear Temporal Logic Declare Vacuity detection Compliance checking Event log','Abstract LTL-based declarative process models are very effective when modelling loosely structured processes or working in environments with a lot of variability. A process model is represented by a set of constraints that must be satisfied during the process execution. An important application of such models is compliance checking: a process model defines then the boundaries in which a system/organisation may work, and the actual behaviour of the system, recorded in an event log, can be checked on its compliance to the given model. A compliance model is often a general one, e.g., applicable for a whole branch of industry, and some constraints used there may be irrelevant for a company in question: for example, a constraint related to property assessment regulations will be irrelevant for a rental agency that does not execute property assessment at all. In this paper, we take the compliance model and the information about past executions of the process instances registered in an event log and, by using a set of patterns, we check which constraints of the compliance model are irrelevant (vacuously satisfied) with respect to the event log. Our compliance patterns are inspired by vacuity detection techniques working on a single trace. However, here we take all the knowledge available in the log into consideration.','',2,'Dennis M. M. SchunselaarFabrizio M. MaggiNatalia Sidorova','springer/bpel security.csv','springer','\0'),(1397,'Security issues in service oriented manufacturing architectures with distributed intelligence','2016','','Distributed intelligence; Intelligent product; Manufacturing execution system; Multi-agent framework; Security; SOMA','The paper discusses the main classes of shop floor devices relative to distributed intelligence for product-driven automation in heterarchical control. The intelligent product (IP) concept is enhanced with two additional require-ments: standard alignment and SOA capability. The paper classifies IPs from SOA integration point of view and introduces a formalized data structure in the form of a XSD schema for XML representation. We propose a security solution for service oriented manufacturing architectures (SOMA) that uses a public-key infrastructure to generate certificates and propagate trust at runtime (during product execution) for embedded devices that establish IPs on board pallets and communicate with shop floor resources. Experimental results are provided. © Springer International Publishing Switzerland 2016.','',1,'Morariu C., Morariu O., Borangiu T.','scopus/soa security.csv','scopus',''),(1398,'ASLan++ — A Formal Security Specification Language for Distributed Systems','2012','1',' services security specification language formal analysis','Abstract This paper introduces ASLan++, the AVANTSSAR Specification Language. ASLan++ has been designed for formally specifying dynamically composed security-sensitive web services and service-oriented architectures, their associated security policies, as well as their security properties, at both communication and application level. We introduce the main concepts of ASLan++ at a small but very instructive running example, abstracted form a company intranet scenario, that features non-linear and inter-dependent workflows, communication security at different abstraction levels including an explicit credentials-based authentication mechanism, dynamic access control policies, and the related security goals. This demonstrates the flexibility and expressiveness of the language, and that the resulting models are logically adequate, while on the other hand they are clear to read and feasible to construct for system designers who are not experts in formal methods.','',1,'David von OheimbSebastian Mödersheim','springer/service oriented architecture security.csv','springer','\0'),(1399,'Designing Secure Service Workflows in BPEL','2014','1','','Abstract This paper presents an approach that we have developed to support the design of secure service based applications in BPEL. The approach is based on the use of secure service composition patterns, which are proven to preserve composition level security properties if the services that are composed according to the pattern satisfy other properties individually. The secure service composition patterns are used for two purposes: (a) to analyse whether a given workflow fragment satisfies a given security property, and (b) to generate compositions of services that could substitute for individual services within the workflow that cause the violation of the security properties. Our approach has been implemented in a tool that is based on Eclipse BPEL Designer.','',2,'Luca PinoKhaled MahbubGeorge Spanoudakis','springer/bpel security.csv','springer','\0'),(1400,'PREMIS OWL','2015','0',' Linked open data PREMIS OWL Preservation Metadata Ontology Semantic','Abstract In this article, we present PREMIS OWL. This is a semantic formalisation of the PREMIS 2.2 data dictionary of the Library of Congress. PREMIS 2.2 are metadata implementation guidelines for digitally archiving information for the long term. Nowadays, the need for digital preservation is growing. A lot of the digital information produced merely a decade ago is in danger of getting lost as technologies are changing and getting obsolete. This also threatens a lot of information from heritage institutions. PREMIS OWL is a semantic long-term preservation schema. Preservation metadata are actually a mixture of provenance information, technical information on the digital objects to be preserved and rights information. PREMIS OWL is an OWL schema that can be used as data model supporting digital archives. It can be used for dissemination of the preservation metadata as Linked Open Data on the Web and, at the same time, for supporting semantic web technologies in the preservation processes. The model incorporates 24 preservation vocabularies, published by the LOC as SKOS vocabularies. Via these vocabularies, PREMIS descriptions from different institutions become highly interoperable. The schema is approved and now managed by the Library of Congress. The PREMIS OWL schema is published at http://​www.​loc.​gov/​premis/​rdf/​v1 .','International Journal on Digital Libraries',1,'Sam CoppensRuben VerborghSébastien PeyrardKevin FordTom CreightonRebecca GuentherErik MannensRik Van de Walle','springer/service oriented architecture security.csv','springer',''),(1401,'WSDM-Enabled Autonomic Augmentation of Classical Multi-version Software Fault-Tolerance Mechanisms','2012','1','','Abstract Web services are increasingly deployed in many enterprise applications. For this type of applications, dependability issues are usually resolved by introducing some form of redundancy in the system. Whereas hardware redundancy schemes have traditionally been defined through static configurations based on worst-case analysis, the enhanced flexibility and interoperability of web services allows for dynamic (self-) management of redundancy at the application layer. Combining this advantage with service-oriented platforms such as OSGi facilitates the replication of software components and their integration within redundancy schemes. The application of such redundancy schemes inevitably comes at a price though — primarily due to the allocation of additional system resources. It is often unknown to the service provider how much redundancy and management complexity is required. Furthermore, the degree of redundancy and the dependability strategy to be employed may be restricted by the budget and requirements of the client, both of which may vary. In this paper, we propose a solution to allow the client to express a trade-off between its dependability requirements and its available budget at request level. A dedicated service provider will then attempt to honour these objectives — failing to do so would obviously result in failure from the client point of view. Furthermore, we show how classical multi-version software fault-tolerance techniques can be augmented with advanced redundancy management leveraging the Web Services Distributed Management standard.','',1,'Roeland DillenJonas BuysVincenzo De FlorioChris Blondia','springer/service oriented architecture security.csv','springer','\0'),(1402,'Service-Oriented Ontology and Its Evolution','2012','0',' Web Service Service Ontology Tag Service Relation Service Chain Service Discovery','Abstract Web service was designed to solve the problem of the heterogeneous system integration and make heterogeneous systems interoperable. However, current Web service technologies are not sufficient to build distributed, heterogeneous Web service infrastructure, because they are provide by different service providers, use different conceptual model and design tools, which hinders Web service automatic discovery and composition. With diversification of user requirements, we need to reasonable abstraction and organization of the Web services through a new viewpoint. Thus, an lightweight Web services semantic description model, namely Service Ontology, is proposed in this paper, whose intention is to make comprehensive and multi-dimension semantic description for Web services. This paper also describes the evolution mechanism of service ontology. The mechanisms make use of the semantic tags to expand Service Ontology. Finally, a case study is presented in the paper that validates the Service Ontology can fulfill the multi-granularity requirement of the users. This paper has made the beneficial exploration in multi-dimension modeling and automation organization of Web services.','',1,'Weisen PanShizhan ChenZhiyong Feng','springer/service oriented architecture security.csv','springer','\0'),(1403,'New approach for the dynamic enforcement of Web services security','2010','3','','We propose in this paper a new approach for the dynamic enforcement of Web services security, which is based on a synergy between Aspect-Oriented Programming (AOP) and composition of Web services. Security policies are specified as aspects. The elaborated aspects are then weaved (integrated) in the Business Process Execution Language (BPEL) process at runtime. The main contributions of our approach are threefold: (1) separating the business and security concerns of composite Web services, and hence developing them separately (2) allowing the modification of the Web service composition at run time and (3) providing modularity for modeling cross-cutting concerns between Web services. We demonstrate the feasibility of our approach by developing a Flight System (FS) that is composed of several Web services. First, a RBAC (Role Based Access Control) model for the flight system, which we called RBAC-FS, is elaborated. Afterwards, the Web services that implement the security features are developed. Finally, the BPEL aspects that integrate the security functionalities dynamically into the BPEL process are created. The devised aspects realize the elaborated RBAC-FS model and provide authentication and access control features to the flight system. Case studies and experimental results are also presented to defend our propositions.','Privacy Security and Trust (PST), 2010 Eighth Annual International Conference on',2,'A. Mourad; S. Ayoubi; H. Yahyaoui; H. Otrok','ieee/bpel security.csv','ieee','\0'),(1404,'Spatio-temporal Data Organization Method of “Air-Earth-Life” the Multidimensional Elements Based on SOA in Land Environment','2014','0',' land temporal data object-oriented SOA','Abstract Classifying and abstracting the temporal information of land environment in this paper, from the aspects of air, earth and life, analysising temporal logic and description in geographic entities of land environment, abstract lot to spatial objects, exploring that the definition of space object, temporal evolution and organization and storage methods of dynamic spatio-temporal data; combining closely the object-oriented with the SOA, constructing a model that SOA-based spatio-temporal data frame of \"air-earth-life\" in land environment. Studies have shown that, it’s the internal demand and the inevitable choice for platform development of integrated information management in land environment to construct by using SOA.','',1,'Jingwen LiYanling LuJizheng WanLiangsong Ye','springer/service oriented architecture security.csv','springer','\0'),(1405,'Improving PA Business Processes through Modeling, Analysis, and Reengineering','2012','0','','Abstract Too often e-government services are derived from “old style” intra- and inter-administration Business Processes without taking into account the potentiality of adopted technologies. In this paper we present our experience in Inter-organizational Business Processes modeling, analysis and reengineering in order to make them more effective and efficient. We used semi-formal notations to model three complex services. To do that we directly involved domain experts and civil servants. Thanks to the resulting models, we identified several pitfalls and opportunities for improvements. As a result we were able both to derive ameliorated versions for the analysed services, and to identify common “bad habits” in the specification, permitting to define a general quality framework for services improvement.','',2,'Damiano FalcioniAndrea PoliniAlberto PolzonettiBarbara Re','springer/bpmn security.csv','springer','\0'),(1406,'Docker [Software engineering]','2015','1','Docker;Docker containers;James Turnbull;SE Radio;Software Engineering Radio;microservices','In episode 217 of Software Engineering Radio, host Charles Anderson talks with James Turnbull, a software developer and security specialist who\'s vice president of services at Docker. Lightweight Docker containers are rapidly becoming a tool for deploying microservice-based architectures.','IEEE Software',1,'C. Anderson','ieee/microservice security.CSV','ieee',''),(1407,'Loan system in brazilian financial institution - A SOA application','2012','','Financial System; Framework; SOA; Software Architecture; Web Services','With the intention of offering financial products to its customers in a fast, secure and high technological value, the financial institutions has been highlighted by constant investment in the area of Information Technology. This article presents the technology by a Brazilian institution and developed by a software provider, using the Service Oriented Architecture, enabling customers to access the functionalities of a System of Financing and Loan. Through architecture are generated financial affairs with confidence, performance and security that customers expect from a financial institution. Its unique feature is to present the development of mainframe subprograms with the profile of componentization, but without losing original features such as robustness, high performance and information security. Its main contribution is to demonstrate that it is possible to unify completely different platforms in a Service Oriented Architecture, provided that it has focused on the fact that the most important features of each of these platforms are utilized. How was extracted lessons learned that should be followed important points of attention in the definition of the architecture such as not using SOA as hype or without sufficient technical knowledge. © 2012 IEEE.','',1,'Bernardo C.G.','scopus/service oriented architecture security.csv','scopus','\0'),(1408,'Extending net-centricity to coalition operations','2013','1','coalition information sharing; distributed applications; service-oriented architectures','To bring the advantages of network-centric warfare to coalition warfighting, we must significantly improve our ability to quickly share critical information while still satisfying security requirements. Here, the authors explore a services-based approach to such information management. © 2001-2011 IEEE.','',1,'Suri N., Uszok A., Lenzi R., Breedy M., Bradshaw J.M., Fu Y., Hanna J., Combs V.T., Sinclair A., Grant R.','scopus/service oriented architecture security.csv','scopus','\0'),(1409,'Software diversity: state of the art and perspectives','2012','21',' Software diversity Variability Software product lines','Abstract Diversity is prevalent in modern software systems to facilitate adapting the software to customer requirements or the execution environment. Diversity has an impact on all phases of the software development process. Appropriate means and organizational structures are required to deal with the additional complexity introduced by software variability. This introductory article to the special section “Software Diversity—Modeling, Analysis and Evolution” provides an overview of the current state of the art in diverse systems development and discusses challenges and potential solutions. The article covers requirements analysis, design, implementation, verification and validation, maintenance and evolution as well as organizational aspects. It also provides an overview of the articles which are part of this special section and addresses particular issues of diverse systems development.','International Journal on Software Tools for Technology Transfer',1,'Ina SchaeferRick RabiserDave ClarkeLorenzo BettiniDavid BenavidesGoetz BotterweckAnimesh PathakSalvador TrujilloKarina Villela','springer/service oriented architecture security.csv','springer',''),(1410,'Research on application information system integration platform in medicine manufacturing enterprise','2012','2','Access control; Integration platform; Medicine manufacturing enterprise; Radio frequency identification; Service component; SOA','Computer and information technology popularizes in the medicine manufacturing enterprise for its potentials in working efficiency and service quality. In allusion to the explosive data and information of application system in current medicine manufacturing enterprise, we desire to propose a novel application information system integration platform in medicine manufacturing enterprise, which based on a combination of RFID technology and SOA, to implement information sharing and alternation. This method exploits the application integration platform across service interface layer to invoke the RFID middleware. The loose coupling in integration solution is realized by Web services. The key techniques in RFID event components and expanded role-based security access mechanism are studied in detail. Finally, a case study is implemented and tested to evidence our understanding on application system integration platform in medicine manufacturing enterprise. © 2011 Springer Science+Business Media, LLC.','',1,'Deng W., Zhao H., Zou L., Li Y., Li Z.','scopus/service oriented architecture security.csv','scopus','\0'),(1411,'Process Engine Selection Support','2014','0',' BPM process engines engine selection execution requirements testing','Abstract Nowadays, business processes and their execution are corner stones in modern IT landscapes, as multiple process languages and corresponding engines for these languages have emerged. In practice, it is not feasible to select the best fitting engine, as engine capabilities are mostly hidden in the engine implementation and a comparison is hampered by the large differences and high adoption costs of the engines. We aim to overcome these problems by a) introducing an abstract layer to access the functionality of the engines uniformly, b) by revealing the engine capabilities through automated and isolated tests for typical requirements, and c) support the user in their selection of a process engine by determining and explaining the fitness of the engines for a single process or a given set of processes using policy matching against previously revealed engine capabilities. Early results show the general feasibility of our approach for BPEL engines for a single capability.','',2,'Simon Harrer','springer/bpel security.csv','springer',''),(1412,'A variable threshold-value authentication architecture for wireless mesh networks','2014','48','Authentication; Lightweight certification; Threshold signature; Wireless mesh networks','Wireless Mesh Networks (WMNs) play a very important role on \"the last mile\" in a variety of wireless network access with infrastructure support. It is necessary to provide guaranteed security while minimizing WMNs topology change by considering both rapid authentication of mobile terminals and demand for fast switch between different wireless networks. In this paper, we propose a novel design paradigm toward lightweight and tolerant authentication for service-oriented WMNs, named Variable Threshold-value Authentication (VTA) architecture. On one hand, VTA\'s intrusion-tolerant ability is ensured to design a series of node activated mechanisms to remain threshold values t and n of system private key unchanged. On the other hand, VTA changes threshold values t and n when nodes leave/join authentication server group. Analysis and simulation results show that VTA can not only overcome the disadvantage of those static threshold value schemes, but also largely increase system cost comparing to the schemes not equipped with threshold mechanism for WMNs.','',1,'Guo P., Wang J., Geng X.H., Kim C.S., Kim J.-U.','scopus/service oriented architecture security.csv','scopus',''),(1413,'Ten Problems of Deontic Logic and Normative Reasoning in Computer Science','2012','0',' Deontic logic normative systems input/output logic agency','Abstract This tutorial presents and discusses ten problems of deontic logic and normative reasoning in computer science. Five of the problems have been taken or derived from a list of ten philosophical problems in deontic logic recently discussed by Hansen, Pigozzi and van der Torre. In what sense are obligations different from norms? How to reason about contrary-to-duty norms? How do norms change? How to relate various kinds of permissions? What is the role of constitutive norms? Hansen et al. discuss their ten philosophical problems from the viewpoint of input/output logic as developed by Makinson & van der Torre, and they argue that norms, not ideality, should take the central position in deontic semantics, and that a semantics for norms explicitly represented in the object language by using, e.g., input/output logic normative rules, provides a helpful tool for analyzing, clarifying and solving the problems of deontic logic. However, for applications in computer science and artificial intelligence we have to reconcile the input-output logic representation of norms with representations for agency, informational and motivational modalities (beliefs, intentions), time, actions and decision- and game-theoretic concepts. This leads to five more questions. What is the role of time in deontic reasoning? What is the role of action in deontic reasoning? How can we use norms to influence, solve, or control games? How do we resolve the general problem of norm compliance? How do norms interact with informational modalities such as beliefs and knowledge, and motivational modalities such as intentions and desires?','',2,'Jan BroersenLeendert van der Torre','springer/bpel security.csv','springer','\0'),(1414,'Partial Model Checking for the Verification and Synthesis of Secure Service Compositions','2014','0',' Synthesis of Functional and Secure Processes Secure Service Composition Partial Model Checking Cryptography Process Algebras Quantitative Security','Abstract Security is one of the main aspects of Web Services composition. In this paper we describe a logical approach based on partial model checking technique and open system analysis for the verification and synthesis of secure service orchestrators. Indeed through this framework we are able to specify a system with a possible intruder and verify whether the whole system is secure, i.e. , whether the system satisfies a given temporal logic formula that describes a correct behavior ( security property ). Moreover we are able to define an orchestrator operator able to orchestrate several services in such a way to guarantee both functional and security requirements.','',2,'Fabio MartinelliIlaria Matteucci','springer/bpel security.csv','springer',''),(1415,'Architecting Access Control for Business Processes in the Cloud','2014','0','','Enterprise architecture (EA) aims to provide management with appropriate indicators and controls to steer and model service-oriented enterprises. Nevertheless, common enterprises architecture frameworks lack of access control mechanisms supporting security requirements within organizations. Moreover, the rapid permeation of information technology motivates new computing paradigms such as cloud computing. In this paper, we propose an approach for modeling access control requirements in enterprise architecture, and supporting its provisioning in Cloud providers. The idea is to leverage EA paradigms to ensure business-IT alignment when modeling access control, and deploying access control mechanisms in the Cloud. Our approach is illustrated through the handling of an e-Government scenario, in which EA modeling and appropriate Cloud resources provisioning are motivated.','Advanced Information Systems for Enterprises (IWAISE), 2014 International Workshop on',1,'K. Gaaloul; S. Yangui; S. Tata; H. A. Proper','ieee/service oriented architecture security.csv','ieee','\0'),(1416,'Towards performance evaluation of cloud service providers for cloud data security','2016','','Business process management (BPM); Business process modeling (BPMN); Cloud computing; Cloud service provider (CSP); Data security','Today\'s data is sensitive that requires privacy and security both from the cloud service providers (CSP) as well as from users in its all the form of data states: data at rest, while transferring data, enquiring data, and processing the data. Cloud computing has been applied in the health sector, national security services, banking and other business and companies that store confidential data into the cloud as we have seen in recent years. Therefore, information and data security is a crucial issue that needs to be addressed thoroughly in the cloud computing business. This research deals with the performance analysis of recent cloud data security models. This paper proposes cloud data security models based on Business Process Modeling Notations (BPMN) and simulation results can reveal performances issues related to data security as part of any organizations initiative on Business process management (BPM). © 2016, Elsevier Ltd. All rights reserved.','',2,'Ramachandran M., Chang V.','scopus/bpmn security.csv','scopus',''),(1417,'Model-driven development of secure service applications','2012','6','Code generation; Model-driven development; Security; Security-critical systems; UML; Web service','The development of a secure service application is a difficult task and designed protocols are very error-prone. To develop a secure SOA application, application-independent protocols (e.g. TLS or Web service security protocols) are used. These protocols guarantee standard security properties like integrity or confidentiality but the critical properties are applicationspecific (e.g. \"a ticket can not be used twice\"). For that, security has to be integrated in the whole development process and application-specific security properties have to be guaranteed. This paper illustrates the modeling of a security-critical service application with UML. The modeling is part of an integrated software engineering approach that encompasses model-driven development. Using the approach, an application based on service-oriented architectures (SOA) is modeled with UML. From this model executable code as well as a formal specification to prove the security of the application is generated automatically. Our approach, called SecureMDD, supports the development of security-critical applications and integrates formal methods to guarantee the security of the system. The modeling guidelines are demonstrated with an online banking example. © 2013 IEEE.','',1,'Borek M., Moebius N., Stenzel K., Reif W.','scopus/service oriented architecture security.csv','scopus','\0'),(1418,'Decentralized Information Flow Verification Framework for the Service Chain Composition in Mobile Computing Environments','2013','1','Mobile computing environments;Secure information flow;Service chain model;Service composition','Dynamic service composition in wireless environment provides us with a promising approach to build complex applications based on the basic value-added services. In different network domains, multiple services may provide data with different security levels. In order to prevent from information leakage, information flow security is a major concern in composite services. However, the energy-limited nature of user terminal in mobile computing environments poses a significant challenge for the centralized information flow verification where the verification node need cost lots of computation and network resources. In this paper, we specify the security constraints for each service participant to secure the information flow in service chain based on the lattice model, and then present a decentralized information flow verification framework that cooperates different service participants to complete the verification process distributively with respect to their information flow policies. Through the experiments and evaluations, the results show it decreases the verification cost on single service node.','Web Services (ICWS), 2013 IEEE 20th International Conference on',1,'N. Xi; J. Ma; C. Sun; T. Zhang','ieee/service oriented architecture security.csv','ieee','\0'),(1419,'A content delivery strategy based on resource popularity for P4P architecture','2012','0','Content delivery;P4P;Resource popularity','Peer-to-peer (P2P) traffic engineering is a key problem for Internet Service Provider (ISP). ISP can obtain benefits from operating the inter-domain traffic. In order to reduce the negative impression of the P2P applications on the network, Provider Portal for Application (P4P) strategy has been propose recently. In this paper, we propose a novel content delivery scheme for ISP in P4P architecture, which consider the resource popularity to decrease the inter-domain traffic generated by p2p applications. We compare our scheme with the method based on non-popularity by simulation. The experiments results show that our method can reduce the inter-domain traffic efficiently.','2012 IEEE 2nd International Conference on Cloud Computing and Intelligence Systems',1,'Q. Li; H. He; B. Fang; Z. Zhang; J. Chen','ieee/service oriented architecture security.csv','ieee','\0'),(1420,'Knowledge base support for dynamic information system management','2015','0',' Enterprise information systems Knowledge base Business process Model driven engineering User experience Application prototyping','Abstract Enterprise activities are governed by regulations and laws that are multiple, heterogeneous and not always easy to understand. The arising and/or the modification of these regulations and laws can cause a significant impact in the business context, especially in terms of enterprise information systems adaptation. Currently, there are many methodological and technological tools that facilitate the application of regulations and procedures, but they are not integrated enough to ensure a complete problem management. Therefore, they are not sufficient to support organizations and companies in the management of their business processes. In this paper we propose a methodological and technological solution, able to model, manage, execute and monitor business processes of complex domains. The system allows both the design of an information system and its prototyping as a web application, by the extension of an appropriately selected Business Process Management suite. During both the design and the usage phases of the prototyped information system, it is possible to interface with a knowledge base that contains information about regulations and aspects that characterize the enterprise (organizational chart, tasks, etc.).','Information Systems and e-Business Management',2,'Adriana CaioneAnna Lisa GuidoAngelo MartellaRoberto PaianoAndrea Pandurino','springer/bpmn security.csv','springer',''),(1421,'Semantically-secure functional encryption: Possibility results, impossibility results and the quest for a general definition','2013','3','','This paper explains that SS1-secure functional encryption (FE) as defined by Boneh, Sahai and Waters implicitly incorporates security under key-revealing selective opening attacks (SOA-K). This connection helps intuitively explain their impossibility results and also allows us to prove stronger ones. To fill this gap and move us closer to the (laudable) goal of a general and achievable notion of FE security, we seek and provide two \"sans SOA-K\" definitions of FE security that we call SS2 and SS3. We prove various possibility results about these definitions. We view our work as a first step towards the challenging goal of a general, meaningful and achievable notion of FE security. © Springer International Publishing 2013.','',1,'Bellare M., O\'Neill A.','scopus/soa security.csv','scopus','\0'),(1422,'Towards Privacy for MapReduce on Hybrid Clouds Using Information Dispersal Algorithm','2014','0','','Abstract MapReduce is a powerful model for parallel data processing. The motivation of this work is to allow running map-reduce jobs partially on untrusted infrastructures, such as public clouds and desktop grid, while using a trusted infrastructure, such as private cloud, to ensure that no outsider could get the ’entire’ information. Our idea is to break data into meaningless chunks and spread them on a combination of public and private clouds so that the compromise would not allow the attacker to reconstruct the whole data-set. To realize this, we use the Information Dispersion Algorithms (IDA), which allows to split a file into pieces so that, by carefully dispersing the pieces, there is no method for a single node to reconstruct the data if it cannot collaborate with other nodes. We propose a protocol that allows MapReduce computing nodes to exchange the data and perform IDA-aware MapReduce computation. We conduct experiments on the Grid’5000 testbed and report on performance evaluation of the prototype.','',1,'Asma Ben CheikhHeithem AbbesGilles Fedak','springer/service oriented architecture security.csv','springer','\0'),(1423,'Towards unified vulnerability assessment with open data','2013','1','cloud computing; computer security; CVE; OVAL; SCAP; SOA; vulnerability assessment','Continuous and comprehensive vulnerability management is a difficult task for administrators. The difficulties are not because of a lack of tools, but because they are designed without service-oriented architecture viewpoint and there is insufficient trustworthy machine-readable input data. This paper presents a service-oriented architecture for vulnerability assessment systems based on the open security standards and related contents. If the functions are provided as a service, various kinds of security applications can be interoperated and integrated in loosely-coupled way. We also studied the effectiveness of the available public data for automated vulnerability assessment. Despite the large amount of efforts that goes toward describing machine-readable assessment test in conformity to the OVAL standard, the evaluation result proves inadequate for comprehensive vulnerability assessment. Only about 12% of all the known vulnerabilities are covered by existing OVAL tests, while some popular client applications in the Top 30 with most unique vulnerabilities are covered more than 90%. © 2013 IEEE.','',1,'Nakamura A.','scopus/service oriented architecture security.csv','scopus','\0'),(1424,'Generalized framework for secure web service composition','2012','1','BPEL; business processes; secure web services; service composition; web service; web service composition','Web services have generated great interests in researchers recently due to its heterogeneous nature. These are based on existing Internet protocols and open standards. It can provide a flexible solution to the problem of application integration. These can be combined together through service composition to solve critical problems, which exists in current scenarios [3]. The service composition suffers from several limitations of security issues such as lack of native support for encryption, decryption and authorization [12]. In this paper, we have proposed a generalized framework for secure web service composition, which incorporates cryptography techniques. The current scenerio get benefited by secure environment over network, prevent unauthorized access of services and support of encryption and decryption mechanism in terms of service composition with the help of proposed framwork. © 2012 IEEE.','',2,'Bhandari R., Suman U.','scopus/bpel security.csv','scopus','\0'),(1425,'BioCloud Search EnGene: Surfing Biological Data on the Cloud','2014','1',' Biomedical data exploration Cloud computing Data searching Data integration Dataspaces Pay-as-you-go data querying','Abstract The massive production and spread of biomedical data around the web introduces new challenges related to identify computational approaches for providing quality search and browsing of web resources. This papers presents BioCloud Search EnGene (BSE), a cloud application that facilitates searching and integration of the many layers of biological information offered by public large-scale genomic repositories. Grounding on the concept of dataspace, BSE is built on top of a cloud platform that severely curtails issues associated with scalability and performance. Like popular online gene portals, BSE adopts a gene-centric approach: researchers can find their information of interest by means of a simple “Google-like” query interface that accepts standard gene identification as keywords. We present BSE architecture and functionality and discuss how our strategies contribute to successfully tackle big data problems in querying gene-based web resources. BSE is publically available at: http://​biocloud-unica.​appspot.​com/​ .','',1,'Nicoletta DessìEmanuele PascarielloGabriele MiliaBarbara Pes','springer/webservice security.csv','springer','\0'),(1426,'A hybrid framework for integrating multiple manufacturing clouds','2015','0',' Multiple manufacturing clouds Cloud manufacturing Interoperability Collaboration','Abstract Cloud manufacturing (CMfg) adopts and extends the concept of cloud computing to make mass Manufacturing Resources and Capabilities (MR/Cs) more widely integrated and accessible to users through the Internet. However, a single manufacturing cloud (MC) has limited MR/Cs, due to both economic and technical constraints, and can only provide limited manufacturing services in terms of function, price, and reliability, etc. Using the aggregated MR/Cs or services of multiple MCs is a natural evolution, i.e., MCs can satisfy peak demands for MR/Cs through collaboration, while users can have a wider selection of services from multiple MCs. To address such requirements, we propose a hybrid framework for integrating multiple MCs. The key functional modules and the business models of the proposed framework are presented to guide future integration of MCs. The enabling technologies, such as semantic web and ontologies, intelligent agents, service-oriented architecture, and materials handling and logistics technologies are also discussed. A case study is given, showing the feasibility and rationality of the proposed approach.','The International Journal of Advanced Manufacturing Technology',1,'Chen YangWeiming ShenTingyu LinXianbin Wang','springer/soa security.csv','springer',''),(1427,'Multi-phase search optimisation algorithm for constrained optimal power flow problem','2014','','Emergency conditions; Genetic algorithm; Optimal power flow; Particle swarm optimisation; Seeker optimisation algorithm; SOA','This paper proposes an enhanced solution for security constrained optimal power flow (SC-OPF) problem based on multi-phase search optimisation algorithm (MSOA). The objective is to minimise the generation costs by optimising the control variables, such as generator power, and satisfying system constraints. MSOA simulates the performance of humans\' intelligent search with memory, experience and uncertainty reasoning. The proposed algorithm is integrated with Lagrangian relaxation factors to deal with network constrains. The proposed technique is carried out on the IEEE 30-bus, 57-bus test systems and a real power system at West Delta Network as part of the Unified Egyptian Network. The space reduction strategy succeeded to decrease the search space in each generation causing fast convergence to the optimal solution. The obtained results are compared with particle swarm optimisation technique to prove the effectiveness of MSOA in solving SC-OPF problems in normal and emergency conditions. Copyright © 2014 Inderscience Enterprises Ltd.','',1,'El-Sehiemy R.A., Shafiq M.B., Azmy A.M.','scopus/soa security.csv','scopus','\0'),(1428,'Cloud Service Selection Based on Variability Modeling','2012','4',' Cloud service selection variability modeling feature modeling decision-making','Abstract The selection among Cloud services is a recent problem in research and practice. The diversity of decision-relevant criteria, configurability of Cloud services and the need to involve human decision-makers require holistic support through models, methodologies and tools. Existing Cloud service selection approaches do not address all stated difficulties at the same time. We present an approach to capture capabilities of Cloud services and requirements using variability modeling. We use Cloud feature models (CFMs) as a representation mechanism and describe how they are utilized for requirements elicitation and filtering within a presented Cloud service selection process (CSSP) that includes human decision-makers. Filtering produces a reduced number of valid Cloud service configurations that can be further assessed with current multi-criteria decision making-based selection approaches. We present software tools that we use to demonstrate the applicability of our approach in a use case about selecting among Cloud storage services.','',2,'Erik WitternJörn KuhlenkampMichael Menzel','springer/bpmn security.csv','springer','\0'),(1429,'Middleware for wireless sensor networks: an outlook','2012','2',' Middleware Wireless sensor networks','Abstract In modern distributed computing, applications are rarely built directly atop operating system facilities, e.g., sockets. Higher-level middleware abstractions and systems are often employed to simplify the programmer’s chore or to achieve interoperability. In contrast, real-world wireless sensor network (WSN) applications are almost always developed by relying directly on the operating system. Why is this the case? Does it make sense to include a middleware layer in the design of WSNs? And, if so, is it the same kind of software system as in traditional distributed computing? What are the fundamental concepts, reasonable assumptions, and key criteria guiding its design? What are the main open research challenges, and the potential pitfalls? Most importantly, is it worth pursuing research in this field? This paper provides a (biased) answer to these and other research questions, preceded by a brief account on the state of the art in the field.','Journal of Internet Services and Applications',2,'Luca MottolaGian Pietro Picco','springer/bpmn security.csv','springer','\0'),(1430,'An Ontological Framework for Decision Support','2013','1','','Abstract In the last few years, ontologies have been successfully exploited by Decision Support Systems ( DSSs ) to support some phases of the decisionmaking process. In this paper, we propose to employ an ontological representation for all the content both processed and produced by a DSS in answering requests. This semantic representation supports the DSS in the whole decisionmaking process, and it is capable of encoding (i) the request, (ii) the data relevant for it, and (iii) the conclusions/suggestions/decisions produced by the DSS . The advantages of using an ontology-based representation of the main data structure of a DSS are many: (i) it enables the integration of heterogeneous sources of data available in the web, and to be processed by the DSS , (ii) it allows to track, and to expose in a structured form to additional services (e.g., explanation or case reuse services), all the content processed and produced by the DSS for each request, and (iii) it enables to exploit logical reasoning for some of the inference steps of the DSS decision-making process. The proposed approach have been successfully implemented and exploited in a DSS for personalized environmental information, developed in the context of the PESCaDO EU project.','',1,'Marco RospocherLuciano Serafini','springer/service oriented architecture security.csv','springer','\0'),(1431,'Design and implementation of a unified network information service','2013','1','networks; web services','A holistic view of the network is key to the successful operation of many distributed, cloud-based, and service-oriented computing architectures. Supporting network-aware applications and application-driven networks requires a detailed representation of network resources, including multi-layer topologies, associated measurement data, and in-the-network service location and availability information. The rapid development of increasingly configurable and dynamic networks has increased the demand for information services that can accurately and efficiently store and expose the state of the network. This work introduces our Unified Network Information Service (UNIS), designed to represent physical and virtual networks and services. We describe the UNIS network data model and its RESTful interface, which provide a common interface to topology, service, and measurement resources. In addition, we describe the security mechanisms built into the UNIS framework. Our analysis of the UNIS implementation shows significant performance and scalability gains over an existing and widely-deployed topology, service registration, and lookup information service architecture. © 2013 IEEE.','',1,'El-Hassany A., Kissel E., Gunter D., Swany M.','scopus/service oriented architecture security.csv','scopus','\0'),(1432,'Towards a Friendly User Interface on the Cloud','2014','1',' cloud computing user interface standardization service','Abstract The wide availability of high interconnection networks, powerful mobile devices and service-oriented architectures has paved the way for the delivery of cloud services. Moving information technology services to the cloud has imposed new ways of interaction with users. Users desire friendly looking, highly interactive, dynamically visualized and naturally controlled user interfaces (UI) that allow smooth navigation in the cloud space. Transferring the rich user interface of the desktop, where running the software dynamically online and instantly following up with social networking activities is relatively easy, to the web-browser on mobile devices is introducing many challenges. This has resulted in the emergence of innovative cloud services and implementation approaches specifically to handle the new user interface demands. However, a standardized consistent user interface metaphor for cloud services is still lacking. This paper presents a comprehensive study on the cloud user interface requirements, special services, implementation trends, technologies and efforts for standardization.','',1,'Heba A. KurdiSafwat HamadAmal Khalifa','springer/service oriented architecture security.csv','springer','\0'),(1433,'Analysis of Communicating Authorization Policies','2013','0','','Abstract We present a formal language for specifying distributed authorization policies that communicate through insecure asynchronous media. The language allows us to write declarative authorization policies; the interface between policy decisions and communication events can be specified using guards and policy updates. The attacker, who controls the communication media, is modeled as a message deduction engine. We give trace semantics to communicating authorization policies, and formulate a generic reachability problem. We show that the reachability problem is decidable for a large class of practically-relevant policies specified in our formal language.','',1,'Simone FrauMohammad Torabi Dashti','springer/service oriented architecture security.csv','springer','\0'),(1434,'Domain-specific multi-modeling of security concerns in service-oriented architectures','2012','','','As a common reference for many in-development standards and execution frameworks, special attention is being paid to Service-Oriented Architectures. SOAs modeling, however, is an area in which a consensus has not being achieved. Currently, standardization organizations are defining proposals to offer a solution to this problem. Nevertheless, until very recently, non-functional aspects of services have not been considered for standardization processes. In particular, there exists a lack of a design solution that permits an independent development of the functional and non-functional concerns of SOAs, allowing that each concern be addressed in a convenient manner in early stages of the development, in a way that could guarantee the quality of this type of systems. This paper, leveraging on previous work, presents an approach to integrate security-related non-functional aspects (such as confidentiality, integrity, and access control) in the development of services. © 2012 Springer-Verlag.','',1,'Silva Gallino J.P., De Miguel M., Briones J.F., Alonso A.','scopus/service oriented architecture security.csv','scopus','\0'),(1435,'Obtaining secure BPEL from Secure Business Process specified with BPMN','2014','0','BPEL;Business Process;Secure Business Process','Business Processes are an important resource for performance on business competitiveness. The Business Process descriptions made; with BPMN (Business Process Modelling Notation), the de facto standard in the market, can be translated into execution languages; such as BPEL (Business Process Execution Language). Originally, BPMN specification does not include the representation of security aspects. However, there are proposals that incorporate security specifications of Business Processes using BPMN. Among these we have considered for describing a SBP (Secure Business Process), incorporating the business analyst\'s perspective in relation to security. However, until now,there are no translations of the SBP to execution languages. In this paper we propose a translation of the security requirements, including access control, defined in a SBP to secure Web services using BPEL language.','IEEE Latin America Transactions',2,'G. Marquez; A. Rodriguez; E. Fernandez Medina','ieee/bpel security.csv','ieee','\0'),(1436,'Comparison and evaluation of goal-oriented satisfaction analysis techniques','2013','14',' Goal-oriented requirements engineering Requirements modeling Model analysis','Abstract Goal-oriented requirements engineering (GORE) has been introduced as a means of modeling and understanding the motivations for system requirements. Using models to make goals explicit helps to avoid system failures due to implementing the wrong requirements or ignoring certain stakeholder needs. These models are unique when compared to other models used in system analysis in that their structure naturally lends itself to an analysis of goal satisfaction. Existing work claims that analysis using goal models can facilitate decision making over functional or design alternatives, using criteria in the model. Many different approaches to the analysis of goal-oriented requirements models have been proposed, including several procedures that analyze the satisfaction or denial of goals. These procedures make different choices in their interpretation of the goal model syntax, the methods to resolve conflicting or partial evidence, and in the way they represent satisfaction. This work uses three available tools implementing seven similar goal satisfaction analysis procedures to analyze three sample goal models. Results are reported and compared. The purpose of this comparison is to understand the ways in which procedural design choices affect analysis results, and how differences in analysis results could lead to different recommendations over alternatives in the model. Our comparison shows that different satisfaction analysis techniques for goal models can produce variable results, depending on the structure of the model. Comparison findings lead us to recommend the use of satisfaction analysis techniques for goal models as only heuristics for decision making. Our results emphasize investigation into the benefits of satisfaction analysis beyond decision making, namely improving model quality, increasing domain knowledge, and facilitating communication.','Requirements Engineering',2,'Jennifer HorkoffEric Yu','springer/bpmn security.csv','springer',''),(1437,'A high assurance cross-domain guard for use in Service-Oriented Architectures','2015','','cross-domain information exchange; guard; high assurance; service-oriented architectures; SOAP; XML','Access to information in a timely manner is becoming more and more important in military operations. This also includes exchange of information between different security domains. Traditionally security domains have been physically separated to avoid loss of confidentiality. Information exchange between domains has been limited to specialized solutions or manual intervention. In this paper we present a prototype guard for use in Service-Oriented Architectures (SOA), providing sufficient flexibility for use with various applications. The prototype guard has been designed to pass a high assurance (CC EAL5) evaluation, thus providing the necessary trust. © 2015 Military University of Technology.','',1,'Haakseth R., Nordbotten N.A., Jonsson O., Kristiansen B.','scopus/service oriented architecture security.csv','scopus',''),(1438,'Proceedings of the 2nd National Days of Network Security and Systems, JNS2 2012','2012','','','The proceedings contain 20 papers. The topics discussed include: a maturity metric based approach for eliciting SOA security requirements; an elliptic curve cryptography based on matrix scrambling method; algorithms of representation group Ga,b; exploring opportunistic scheduling in ad-hoc network with physical layer security; wireless sensor network: security challenges; computation integrity mechanism for MapReduce in Cloud computing; homomorphic encryption method applied to Cloud computing; secure multimedia objects management in medical information system; and load balancing in Vloud computing state of art.','',1,'[No author name available]','scopus/soa security.csv','scopus','\0'),(1439,'OPC Unified Architecture: A Service-oriented Architecture for Smart Grids','2012','0','OPC UA, automation, communication, service-oriented architectures, smart grids, standardization','In this paper, the OPC UA is introduced as a key technology for realizing a variety of Smart Grid use cases enabling relevant tasks of automation and control. OPC UA is the successor of the established Classic OPC specification and state of the art regarding information exchange in the industrial automation branch. One of its key improvements over the Classic OPC is that the area of application is no longer restricted to industrial automation but OPC UA can be applied almost in every domain facing challenges in automated control. This improvement stems from a more generic and object-oriented approach. For the adoption of OPC UA to Smart Grids, two of the most important data models -- the Common Information Model (CIM) and the IEC 61850 -- have been identified to be integrated into OPC UA communication. In this contribution, basic OPC UA features and functionalities (information modeling, communication services, and information security) are introduced and discussed in the context of Smart Grids.','',1,'Sebastian Lehnhoff and Sebastian Rohjans and Mathias Uslar and Wolfgang Mahnke','acm/service oriented architecture security.csv','acm','\0'),(1440,'Veranstaltungskalender 6|2012','2012','0','','','Datenschutz und Datensicherheit - DuD',1,'','springer/soa security.csv','springer','\0'),(1441,'Development of a Construction Quality Supervision Collaboration System Based on a SaaS Private Cloud','2015','0',' SaaS Private cloud Construction engineering Coordination of quality supervision','Abstract In this paper, the background of the SaaS private cloud-based Construction Quality Supervision Collaboration System (CQSCS) is introduced; the current status and shortcomings of construction quality supervision are described, and methods are proposed to incorporate the novel software architecture and application models of the SaaS private cloud to strengthen construction quality supervision and management. The design and construction of the overall framework of the CQSCS were completed in the study; system functions and structure were designed and developed, such as the quality supervision unit, quality inspection unit and quality acceptance unit, whose targets are to serve construction quality supervision agencies, quality inspection agencies and units involved in on-site construction. Additionally, the new system is compared against the old system. Finally, based on the CQSCS used in Wuhan, the function system and applications of the construction quality supervision and management system are discussed, and the prospect of the wide-spread application of the designed system is speculated.','Journal of Intelligent & Robotic Systems',1,'Yuping ChengYan ChenRan WeiHanbin Luo','springer/soa security.csv','springer',''),(1442,'Computational Context to Promote Geographic Information Systems toward Human-Centric Perspectives','2012','0',' GIS Context-awareness CCMF Web Services','Abstract Spatial information is of vital importance to Geographic Information Systems, but it does not suffice to its application to solve problems that require a human-centric perspective. For this to be accomplished, it must be considered other context dimensions, such as the personal data of users. With this purpose, GIS can be combined with Computational Context in order to produce software parameterized by information other than user’s location. Moreover, considering the shift of GIS toward web/distributed approaches, in this paper, it is also surveyed the placement of the proposed solution in composite Web Services to enable the coupling of geographic systems with worldwide client software.','',1,'Luis Paulo da Silva CarvalhoPaulo Caetano da Silva','springer/service oriented architecture security.csv','springer','\0'),(1443,'The Language Application Grid Web Service Exchange Vocabulary','2016','0',' Linguistic standards Interoperability Web services Service grids','Abstract In the context of the Linguistic Applications (LAPPS) Grid project, we have undertaken the definition of a Web Service Exchange Vocabulary (WS-EV) specifying a terminology for a core of linguistic objects and properties exchanged among NLP tools that consume and produce linguistically annotated data. The goal is not to define a new set of terms, but rather to provide a single web location where terms relevant for exchange among NLP tools are defined and provide a “sameAs” link to all known web-based definitions that correspond to them. The WS-EV is intended to be used by a federation of six grids currently being formed but is usable by any web service platform.','',1,'Nancy IdeKeith SudermanMarc VerhagenJames Pustejovsky','springer/service oriented architecture security.csv','springer',''),(1444,'Efficient consumption of the electronic health record in mHealth','2014','1',' mHealth REST Middleware WebSocket Electronic health record Publish/subscribe','Abstract With the advancement in mobile technology, there are lots of prospect for the health domain. Specifically, the accessibility of the electronic health record (EHR) can be extended to the mobile node to promote remote healthcare delivery; this is known as mobile Health or mHealth. However, supporting real-time access and services synchronization in highly distributed mobile environments can be challenging due to the fact that mobile devices rely on wireless communication mediums to exchange data. These mediums can be unstable due to bandwidth fluctuations and the mobility of the healthcare professionals. In this work, we examine how to provide real-time accessibility of the medical record in the mobile environment by overcoming the network-level limitations. Thus, we propose distributed cloud-hosted middleware platform that enables the mobile devices to receive updates. Since the middleware are distributed, a methodology called the “best-proximity” accessibility is enforced so that the healthcare professionals are able to connect to the middleware that offers the most optimal request–response time. The evaluation of the framework, called Med App, shows that: (1) medical data dissemination and accessibility can be achieved in a low-latency fashion, (2) data state can be managed efficiently through a policy-based consistency model, and (3) the resources of the mobile device can be efficiently utilized through services composition on the middleware.','Network Modeling Analysis in Health Informatics and Bioinformatics',1,'Richard K. LomoteyRalph Deters','springer/soa security.csv','springer','\0'),(1445,'Interface-Based Service Composition with Aggregation','2012','1','','Abstract Service-oriented architectures (SOAs) usually comprehend in-the- middle entities such as proxies or service mediators that compose services abstracting from the order in which they exchange messages. Although widely used, these entities are usually implemented by means of ad-hoc solutions. In this paper we generalise this composition mechanism by identifying the primitive notion of aggregation . We formally define the semantics of aggregation in terms of a process calculus. We also provide a reference implementation for this primitive by extending the Jolie language, thus allowing for the experimentation with real SOA scenarios.','',2,'Mila Dalla PredaMaurizio GabbrielliClaudio GuidiJacopo MauroFabrizio Montesi','springer/bpel security.csv','springer','\0'),(1446,'TEEI - A mobile security infrastructure for TEE integration','2015','','ITS; Mobile payment; Mobile security; TEE; TEEI; TVM; Virtual network','Mobile security becomes a hot topic recently, especially in mobile payment and privacy data fields. Traditional solution can\'t keep a good balance between convenience and security. Against this background, a dual OS security solution named Trusted Execution Environment (TEE) is proposed and implemented by many institutions and companies. However, it raised TEE fragmentation and control problem. Addressing this issue, a mobile security infrastructure named Trusted Execution Environment Integration (TEEI) is presented to integrate multiple different TEEs. By using Trusted Virtual Machine (TVM) tech-nology, TEEI allows multiple TEEs running on one secure world on one mobile device at the same time and isolates them safely. Furthermore, a Virtual Network protocol is proposed to enable communication and cooperation among TEEs which includes TEE on TVM and TEE on SE. At last, a SOA-like Internal Trusted Service (ITS) framework is given to facilitate the development and maintenance of TEEs. © 2014 IEEE.','',1,'Chai H., Lu Z., Meng Q., Wang J., Zhang X., Zhang Z.','scopus/soa security.csv','scopus','\0'),(1447,'Stock Control through Video Surveillance in Logistics','2013','0',' Stock Control Video Surveillance Logistic RFID Tracking Anomaly Detection','Abstract The transport sector has certainly witnessed the latest developments in information and communication technologies (ICT). In this context the objective of the CPILOS project is to develop a technological platform, based on IT infrastructures and services, that can support critical processes, like secure tracking and tracing of goods, using video surveillance facilities with radio-frequency identification (RFID) support. More specifically, the project involves the study and implementation of an integrated platform for quality control of goods, particularly perishable food coming from China and intended to be distributed in the Italian and European consumer markets (usually not controlled at the source).','',1,'Mariarosaria CarulloGianluca CavaliereAniello De PriscoMichele Di CapuaAlfredo PetrosinoDonatella PadovanoGennaro NaveDaniele Ruggeri','springer/service oriented architecture security.csv','springer','\0'),(1448,'Transparent Model Transformation: Turning Your Favourite Model Editor into a Transformation Tool','2015','0','','Abstract Current model transformation languages are supported by dedicated editors, often closely coupled to a single execution engine. We introduce Transparent Model Transformation, a paradigm enabling modelers to specify transformations using a familiar tool: their model editor. We also present VMTL, the first transformation language implementing the principles of Transparent Model Transformation: syntax, environment, and execution transparency. VMTL works by weaving a transformation aspect into its host modeling language. We show how our implementation of VMTL turns any model editor into a flexible model transformation tool sharing the model editor’s benefits, transparently.','',2,'Vlad AcretoaieHarald StörrleDaniel Strüber','springer/bpmn security.csv','springer',''),(1449,'A maturity metric based approach for eliciting SOA security requirements','2012','2','Maturity Models; Metrics; Security Assessment; Security elicitation; Security Requirement; SOA','The emergence of service-oriented architecture (SOA) as an approach for integrating applications that expose services presents many new challenges to organizations resulting in significant risks to their business. Particularly important among those risks are failures to effectively address quality attribute requirements such as security. Properly defining and configuring security requirements in SOA applications is quite difficult for developers and business experts because they are not necessary security experts. SOA security requirements identification is a challenging and promising research area. In this article, we propose an SOA Security requirement elicitation approach based on the maturity assessment of security processes and controls applicable in the context of SOA. © 2012 IEEE.','',1,'Kassou M., Kjiri L.','scopus/service oriented architecture security.csv','scopus','\0'),(1450,'Design and implementation of human resources management system','2012','','dynamic web page; Human resources management system; SOA; UniEAP; VPN','Human resources management being a new growth point of university development, its information system has become the key project of university informationization. The new system covers the whole life cycle including faculty recruitment, admittance, training, promotion, dispatch, and retirement. This essay focuses on introducing business and technical framework of human resources management system, describes UniEAP development platform based on SOA, and introduces comprehensive security measures adopted by this system. © 2012 Springer-Verlag GmbH.','',1,'Ran L., Shen Z.','scopus/soa security.csv','scopus','\0'),(1451,'Mashing up the Internet of Things: a framework for smart environments','2012','6','','Abstract Along with the advent of the Web 2.0 came a rich ecosystem of application services allowing developers to use the functionality provided by Web applications into their own customized solutions. This, together with the current developments on the Internet of Things are laying the foundations of new IP-based smart environments in which applications and services are combined to support users in ways not possible before. Recently, most of the research has focused on improving the networking capabilities of the Internet of Things infrastructure and in enabling the access to the following generation of services. However, there are two more issues that need to be attended. First, how data and functionality provided by services on these smart environments would be modeled in order to facilitate abstraction and composition, and second, how users are intended to interact with the environments in order to make applications support their particular needs. In this article, we present a framework and an user-interaction model for Internet of Things applications based on the technologies of the modern Web as a solution proposal for both issues. We start by describing the elements of the framework, and then discuss the user-interaction model by using a case-of-study scenario illustrating the capabilities of our contributions.','EURASIP Journal on Wireless Communications and Networking',2,'Edgardo Avilés-LópezJ Antonio García-Macías','springer/bpel security.csv','springer','\0'),(1452,'A Model to Verify Quality of Protection Policies in Composite Web Services','2009','2','Quality of Protection;WS-Policy;Web Service composition','Description languages for Web service composition deal specifically with the definition of the business process logic, and do not provide support for the specification of security aspects related to the Web services involved. This paper uses the WS-Policy standard, and the WS-BPEL and WSCDL languages to propose a model for verifying the compatibility of quality of protection policies of the business process participants, avoiding many conflicts between policies incompatibilities during execution time. The model emphasizes a general policy for the composite process.','2009 Congress on Services - I',2,'D. Böger; J. Fraga; P. Mafra; M. S. Wangham','ieee/bpel security.csv','ieee','\0'),(1453,'Integration and Exchangeability of External Security-Critical Web Services in a Model-Driven Approach','2015','0','','Abstract Model-driven approaches facilitate the development of applications by introducing domain-specific abstractions. Our model-driven approach called SecureMDD supports the domain of security-critical applications that use web services. Because many applications use external web services (i.e. services developed and provided by someone else), the integration of such web services is an important task of a model-driven approach. In this paper we present an approach to integrate and exchange external developed web services that use standard or non-standard cryptographic protocols, in security-critical applications. All necessary information is defined in an abstract way in the application model, which means that no manual changes of the generated code are necessary. We also show how security properties for the whole system including external web services can be defined and proved. For demonstration we use a web shop case study that integrates an external payment service.','',2,'Marian BorekKurt StenzelKuzman KatkalovWolfgang Reif','springer/bpel security.csv','springer',''),(1454,'Extending Ontology-Based Databases with Behavioral Semantics','2012','0','','Abstract Recently, Ontology-Based DataBases (OBDB) have been developed as a solution to store and manipulate, efficiently and in a scalable way, ontologies together with data they describe. Currently, existing OBDBs propose weak solutions to calculate derived (non-canonical) concepts. Indeed, these solutions are internal to the OBDB and specific to the ontology model (formalism) supported. As a consequence, non-canonical concepts can not be in all cases properly defined with the different available mechanisms since existing solutions are not constantly suitable. In this paper, we propose a generic solution which is an extension of OBDBs with the capability to introduce dynamically operators to calculate non-canonical concepts. These operators can be implemented in different ways (e.g. with external programs or with web services). Then, we show the interest of this extension by improving a proposed methodology to design databases storing ontologies. Finally, a prototype implementing our design approach is outlined.','',1,'Youness BazharChedlia ChakrounYamine Aït-AmeurLadjel BellatrecheStéphane Jean','springer/webservice security.csv','springer','\0'),(1455,'26th International Conference on Advanced Information Systems Engineering, CAiSE 2014','2014','','','The proceedings contain 32 papers. The special focus in this conference is on Advanced Information Systems Engineering. The topics include: Analysis and prediction of design model evolution using time series; zero-knowledge private computation of node bridgeness in social networks; valuation and selection of OSS with real options; state of the art in context modelling - a systematic literature review; on the applicability of concepts from variability modelling in capability modelling; capability-based business model transformation; capability-driven development of a SOA platform; service functioning mode in variability model; towards a computer-aided problem-oriented variability requirements engineering method; an outlook on patterns as an aid for business and IT alignment with capabilities; supporting BPMN model creation with routing patterns; coupling elements of a framework for cognitive matchmaking with enterprise models; investigating differences between graphical and textual declarative process models; conceptual understanding of conceptual modeling concepts; towards semantic collective awareness platforms for business innovation; leveraging user inspiration with microblogging-driven exploratory search; system architecture of the BIVEE platform for innovation and production improvement; cooperative decision making in virtual enterprises; a methodology for the set-up of a virtual innovation factory platform; data mart reconciliation in virtual innovation factories; resolving policy conflicts - integrating policies from multiple authors; evolving computational intelligence system for malware detection; lightweight formal verification in real world, a case study and security requirements analysis using knowledge in CAPEC.','',2,'[No author name available]','scopus/bpmn security.csv','scopus',''),(1456,'Extracting Data from WSNs: A Service-Oriented Approach','2012','1','','Abstract This chapter describes the architecture of a middleware layer between low-level sensing devices and higher level software layers, to support the requirements of a software infrastructure for networked enterprises. The development of such middleware layer is an important problem, as demonstrated by the number or research papers and the variety of approaches that can be found in literature. The main goals are to hide the complexity of low-level pervasive technologies, such as Wireless Sensors Networks (WSNs); and to help the higher software layers in managing the heterogeneous real-time data coming from the environment. In this chapter, after analysing the different approaches, we select the Service Oriented Architecture (SOA) design paradigm as the most suitable for allowing a seamless and effective integration of pervasive technologies into the enterprise information systems. We also present SensorsMW, our middleware proposal implemented in the context of the ArtDeco project, which is based on some of the many technologies that spin around the SOA world. In particular, our software is a service-oriented, flexible and adaptable middleware that allows applications to configure WSN functionalities and exploit them in the form of Web Services.','',2,'Gaetano F. AnastasiEnrico BiniGiuseppe Lipari','springer/bpel security.csv','springer','\0'),(1457,'Composition and Self-Adaptation of Service-Based Systems with Feature Models','2013','2',' Service Composition Self-Adaptation Feature Models','Abstract The adoption of mechanisms for reusing software in pervasive systems has not yet become standard practice. This is because the use of pre-existing software requires the selection, composition and adaptation of prefabricated software parts, as well as the management of some complex problems such as guaranteeing high levels of efficiency and safety in critical domains. In addition to the wide variety of services, pervasive systems are composed of many networked heterogeneous devices with embedded software. In this work, we promote the safe reuse of services in service-based systems using two complementary technologies, Service-Oriented Architecture and Software Product Lines. In order to do this, we extend both the service discovery and composition processes defined in the DAMASCo framework, which currently does not deal with the service variability that constitutes pervasive systems. We use feature models to represent the variability and to self-adapt the services during the composition in a safe way taking context changes into consideration. We illustrate our proposal with a case study related to the driving domain of an Intelligent Transportation System, handling the context information of the environment.','',2,'Javier CuboNadia GamezLidia FuentesErnesto Pimentel','springer/bpel security.csv','springer','\0'),(1458,'SOA-Readiness of REST','2014','1',' SOA REST Service Discovery Service Coupling','Abstract SOA is a core concept for designing distributed applications based on the abstraction of software services. The main strength lies in the ability to discover services and loosely-couple them with service consumers across platform-boundaries. The evolved service protocol SOAP and its accompanying standards provide a stable, rich and wide-spread technology stack for implementing SOA-based systems. As an alternative approach to design and implement distributed systems based on services, the architectural style REST gains traction, due to its more light-weight and data format independent nature. Whether REST is also suited for acting as a basis for implementing SOA-based systems is still an open issue, however. This paper focuses on this question and provides an analysis on the SOA-readiness of REST. Both, a theoretical analysis and an empirical study of REST frameworks have been conducted in order to obtain a comprehensive understanding on this matter. The results show a lack of core SOA principles mainly related to the discoverability and the loose coupling of services.','',1,'Peter Leo GorskiLuigi Lo IaconoHoai Viet NguyenDaniel Behnam Torkian','springer/service oriented architecture security.csv','springer','\0'),(1459,'A Framework for Privacy Protection and Usage Control of Personal Data in a Smart City Scenario','2013','1',' Identity management privacy protection usage control smart cities trust negotiation','Abstract In this paper we address trust and privacy protection issues related to identity and personal data provided by citizens in a smart city environment. Our proposed solution combines identity management, trust negotiation, and usage control. We demonstrate our solution in a case study of a smart city during a crisis situation.','',1,'Gianmarco BaldiniIoannis KounelisIgor Nai FovinoRicardo Neisse','springer/service oriented architecture security.csv','springer','\0'),(1460,'Composing Non-functional Concerns in Composite Web Services','2011','2','Composition;Non-functional Concerns;Web services','The support for non-functional concerns (NFC) is essential for the success and adoption of web services. However, state of the art works offer only a limited support for these concerns especially when it comes to the composition of multiple non-functional concerns with composite web services. In this paper, we focus on the composition of non-functional actions (NFA) with composite web services whose composition logic is made explicit using languages such as BPMN2 or WS-BPEL (gray box view). In contrast to the black box view where only the interface of the service is visible the gray box view reveals additional information on control flow, data flow, composed services, etc. NFAs can also be composite and constitute complex processes such as secure conversations or transactions which have to be integrated with composite web services. Additionally, the execution order of multiple superimposing NFA has to be declared. In our approach we introduce a model-driven approach for the integrated specification and realization of the different types of NFC composition (NFAs with composite services, execution order of superimposing NFAs and composite NFAs) as well as a set of editors and code generators supporting this approach.','Web Services (ICWS), 2011 IEEE International Conference on',2,'B. Schmeling; A. Charfi; M. Mezini','ieee/bpel security.csv','ieee','\0'),(1461,'A GENTL Approach for Cloud Application Topologies','2014','1',' application topology language annotation schemes application distribution cloud migration','Abstract The availability of an increasing number of cloud offerings allows for innovative solutions in designing applications for the cloud and in adapting existing ones for this environment. An important ingredient in identifying the optimal distribution of an application in the cloud, potentially across offerings and providers, is a robust topology model that can be used for the automated deployment and management of the application. In order to support this process, in this work we present an application topology language aimed for cloud applications that is generic enough to allow the mapping from other existing languages and comes with a powerful annotation mechanism already built-in. We discuss its supporting environment that we developed and show how it can be used in practice to assist application designers.','',2,'Vasilios AndrikopoulosAnja ReuterSantiago Gómez SáezFrank Leymann','springer/bpel security.csv','springer',''),(1462,'Context-Aware Adaptive Process Information Systems: The Context-BPMN4V Meta-Model','2014','1',' Context Adaption Process Information Systems Versions BPMN','Abstract This paper introduces Context-BPMN4V, an extension of BPMN for modeling variability of processes using versions and also considering their contextual dimension. More precisely, it shows how we extend BPMN meta-models to support version modeling to deal with process adaptation, along with context modeling to characterize the situations in which instances of processes are executed. Because of space limitation, this paper only focuses on intra-organizational processes.','',2,'Imen Ben SaidMohamed Amine ChaabaneEric AndonoffRafik Bouaziz','springer/bpmn security.csv','springer',''),(1463,'Supporting Structural Consistency Checking in Adaptive Case Management','2015','0','','Abstract Adaptive Case Management (ACM) enables knowledge workers to collaboratively handle unforeseen circumstances by making ad hoc changes of case instances at runtime. Therefore, it is crucial to ensure that various structural elements of an ACM case, such as goals, subprocesses and so on, remain consistent over time. To the best of our knowledge, no studies in the literature provide adequate support for structural consistency checking of ACM. In this paper, we introduce a formal categorization of ACM’s structural features and potential inconsistencies. Based on this categorization, we develop a novel approach for structural consistency checking of ACM cases. Our approach, based on model checking and graph algorithms, can detect a wide range of inconsistencies of ACM’s structural elements. The evaluation of our approach shows reasonable performance and scalability.','',2,'Christoph CzepaHuy TranUwe ZdunStefanie Rinderle-MaThanh Tran Thi KimErhard WeissChristoph Ruhsam','springer/bpmn security.csv','springer',''),(1464,'An OWL-S based specification model of dynamic entity services for Internet of Things','2016','0',' Dynamic description Entity services OWL-S Internet of Things','Abstract Semantic Web is an effective technology for intelligent Internet of Things (IoT), where Web Services are commonly used to describe the entity functions in the transaction process. However, as a specification of information processing, conventional Web Services cannot fully meet the needs of execution and control of the transactions on IoT. To facilitate describing entities involved in the transactions on IoT, by extending OWL-S, we propose a specification model of dynamic services for IoT entities. In our model, information of entity status is issued in real-time by the extended structure and is released to the requesters as dynamic services. In this way, the transactions on IoT can be constructed and executed intelligently as needed. Finally, the experimental results demonstrated the effectiveness of the proposed model of dynamic entity services for IoT.','Journal of Ambient Intelligence and Humanized Computing',1,'Chao QuFagui LiuMing TaoDacheng Deng','springer/soa security.csv','springer',''),(1465,'A Service-Oriented Architecture in a Multi-Agency Environment: A Case Study in Enterprise Dynamics','2006','0','','Many of the challenges faced by today¿s government-international trade, health care, and national security-require complex multi-agency responses involving public and private networked institutions cooperating on a global scale. In this paper, we examine the service-oriented architecture (SOA)-based approach in supporting the overall enterprise architecture used by the federal government for information sharing among multiple agencies. We apply SOA industrial concepts along with the Business Process Executable Language (BPEL) service broker model to enhance a set of geographic information system-based business performance modeling and planning tools middleware (Integrated Enterprise Engineering Workbench (IEEW)). Applying the SOA concept and the BPEL model has advanced the IEEW one step further in its scope to serve as a case study for the modernization planning and integration of information systems for the multi-agency challenge of monitoring and managing international trade.','2006 10th IEEE International Enterprise Distributed Object Computing Conference Workshops (EDOCW\'06)',2,'K. Zheng; D. Kenneth; C. Hoffman','ieee/bpel security.csv','ieee','\0'),(1466,'Critical analysis of vendor lock-in and its impact on cloud computing migration: a business perspective','2016','0',' Cloud computing Vendor lock-in Enterprise migration Cloud adoption Cloud API’s Interoperability Portability Standards DevOps','Abstract Vendor lock-in is a major barrier to the adoption of cloud computing, due to the lack of standardization. Current solutions and efforts tackling the vendor lock-in problem are predominantly technology-oriented. Limited studies exist to analyse and highlight the complexity of vendor lock-in problem in the cloud environment. Consequently, most customers are unaware of proprietary standards which inhibit interoperability and portability of applications when taking services from vendors. This paper provides a critical analysis of the vendor lock-in problem, from a business perspective. A survey based on qualitative and quantitative approaches conducted in this study has identified the main risk factors that give rise to lock-in situations. The analysis of our survey of 114 participants shows that, as computing resources migrate from on-premise to the cloud, the vendor lock-in problem is exacerbated. Furthermore, the findings exemplify the importance of interoperability, portability and standards in cloud computing. A number of strategies are proposed on how to avoid and mitigate lock-in risks when migrating to cloud computing. The strategies relate to contracts, selection of vendors that support standardised formats and protocols regarding standard data structures and APIs, developing awareness of commonalities and dependencies among cloud-based solutions. We strongly believe that the implementation of these strategies has a great potential to reduce the risks of vendor lock-in.','Journal of Cloud Computing',2,'Justice Opara-MartinsReza SahandiFeng Tian','springer/bpel security.csv','springer',''),(1467,'A pragmatic approach to capturing safety and security relevant information for reusable european component oriented architecture software components','2014','0','Component;Reuse;Safety;Security;Software','The European Component Oriented Architecture, (ECOA), concept provides a framework for portability and interoperability of Application Software Components, (ASC), through use of an interfacing layer, which permits a standardised but abstractly specified component interface to be mapped through to a range of different computing platforms. This flexibility is expected to revolutionise how the military avionics industry procures and develops software systems, including reducing costs and timescales to deployment of new and enhanced systems. These benefits are only realised if an equally flexible approach can be taken for safety certification and security accreditation. Unfortunately, the standards, regulators and approaches required in each of the nation states are not the same, hence it has been necessary to search for shared objectives wherever possible, but also allow points of variation where necessary. The approach proposed is pragmatic and simple but leaves scope for more rigour to be applied where appropriate, for example, for higher assurance systems. Although the ECOA concepts were developed with the military avionic sector in mind, the concepts and the approach to recording safety and security information may also be useful in other domains. The ECOA concept is currently under development by: Dassault Aviation, BAE Systems, AgustaWestland, Bull, General Dynamics, GE Aviation, Selex and Thales, funded jointly by UK and French governments.','System Safety and Cyber Security (2014), ??????9th IET International Conference on',1,'J. Fenn; T. Cornilleau; Y. Oakshott; A. Britto','ieee/service oriented architecture security.csv','ieee','\0'),(1468,'Community Resilience Engineering: Reflections and Preliminary Contributions','2014','3','','Abstract An important challenge for human societies is that of mastering the complexity of Community Resilience, namely “the sustained ability of a community to utilize available resources to respond to, withstand, and recover from adverse situations”. The above concise definition puts the accent on an important requirement: a community’s ability to make use in an intelligent way of the available resources, both institutional and spontaneous, in order to match the complex evolution of the “significant multi-hazard threats characterizing a crisis”. Failing to address such requirement exposes a community to extensive failures that are known to exacerbate the consequences of natural and human-induced crises. As a consequence, we experience today an urgent need to respond to the challenges of community resilience engineering. This problem, some reflections, and preliminary prototypical contributions constitute the topics of the present article.','',1,'Vincenzo De FlorioHong SunChris Blondia','springer/service oriented architecture security.csv','springer','\0'),(1469,'CLOSER 2014 - Proceedings of the 4th International Conference on Cloud Computing and Services Science','2014','','','The proceedings contain 88 papers. The topics discussed include: proactive adaptation in service composition using a fuzzy logic based optimization mechanism; preference-driven refinement of service compositions; collaborative, dynamic & complex systems - modeling, provision & execution; choreography-based consolidation of multi-instance BPEL processes; a cloud application for security service level agreement evaluation; utility-based decision making in collective adaptive systems; a web service discovery approach based on hybrid negotiation; monitoring large cloud-based systems; robust performance control for web applications in the cloud; PAEAN4CLOUD - a framework for monitoring and managing the SLA violation of cloud service-based applications; and methodology to determine relationships between performance factors in hadoop cloud computing applications.','',2,'[No author name available]','scopus/bpel security.csv','scopus',''),(1470,'Proposing a context-aware enterprise mashup readiness assessment framework','2012','6',' Enterprise 2.0 Enterprise mashup Business services Readiness assessment Web 2.0','Abstract Web mashups have received a lot of attention recently as more enterprises are engaged in enterprise 2.0 initiatives. So far, there is insufficient research on the adoption and diffusion of Web mashups in an enterprise context. In this paper, we discussed the benefits and issues associated with enterprise mashups. We proposed a context-aware enterprise mashup readiness assessment framework to help enterprise managers and decision makers determine their needs and readiness for enterprise mashups. A case study was conducted to verify the usefulness of the proposed framework. The results show that our work can be used to guide enterprises with their decision making for the adoption of enterprise mashups and thus contribute to the development of a rigorous strategy for enterprise mashup adoption, development and diffusion.','Information Technology and Management',1,'Gerald BaderWu HeAmin AnjomshoaaA. Min Tjoa','springer/soa security.csv','springer','\0'),(1471,'Investigations on User Preferences of the Alignment of Process Activities, Objects and Roles','2013','0',' process modeling understandability model visualization','Abstract Numerous attempts have been made to research the variety of different influences on the understandability of process models. Common to all of these attempts is the limitation to the process model itself. Little empirical effort is spent on investigating the understandability of the alignment of process activities, objects, and roles. This paper tackles this issue and empirically studies preferences of how to visually align process activities with objects and roles. In particular, three visualization techniques are evaluated in order to support the combination of the object and organization units with their corresponding process model elements. The empirical study provides a strong support for the visualization of a process model that is disburdened from context information such as objects used and roles involved and thus is reduced to the sole visualization of process activities and its control-flow.','',2,'Agnes KoschmiderSimone KriglsteinMeike Ullrich','springer/bpel security.csv','springer','\0'),(1472,'A Study on Smartwork Security Technology Based on Cloud Computing Environment','2015','0',' Smartwork Security analysis Cloud computing Security element','Abstract Computing environment has changed a lot by development of network and wide spread of the mobile terminal. Among them, adoption of cloud computing causes a large change socially. The social consensus by introduction of smartwork based on this cloud computing environment is increasing. Especially, smartwork which can work freely anytime and anywhere has been noted as a new business model while broadband communication infrastructure becomes popular. However, smartwork based on cloud computing environment has a variety of security vulnerabilities. The risk of information leakage is increasing according to increasing of vulnerability of virtualization technology which cloud computing has, and security threats of mobile terminal used to smartwork. In this paper, we look security element by smartwork design for the activation of the smartwork based on cloud computing and organize to respond to the attack. The corresponding method presented in this paper will be applied to safe security model.','Wireless Personal Communications',1,'Hwan-Seok YangSeung-Jae Yoo','springer/service oriented architecture security.csv','springer',''),(1473,'Using a cloud-centric middleware to enable mobile hosting of Web services: mHealth use case','2014','1',' REST Mobile cloud computing Mobile hosting Middleware mHealth E-health Workflow','Abstract The unceasing growth and divergence of the mobile landscape have led to the use of smartphone and tablet devices in consuming Web services (WS) in enterprises. However, in heterogeneous WS, the shift from the mobile client consumer approach to the mobile service hosting approach is insufficiently studied. With the advancement of storage and processing capabilities of these devices, coupled with the high availability of the Web, this research focuses on the use of the mobile devices as hosts of WS in a mHealth domain. In this paper, a cloud-centric middleware technique is employed to enable access to the mobile hosts. The paper presents mobile hosting of medical data which are modeled as light-weight WS which is deployed in a real-world system. Further, a workflow authorization model is proposed to ensure privacy and the prevention of unauthorized modification of data on the mobile hosts. A data encryption technique is also put forward to enforce security and privacy of the mobile hosted data. Our current implemented project, called SOPHRA, supports mobile communication over HTTP in a Wi-Fi environment.','Personal and Ubiquitous Computing',1,'Richard K. LomoteyRalph Deters','springer/soa security.csv','springer','\0'),(1474,'Facilitating Adoption of International Information Infrastructures: A Living Labs Approach','2013','0',' Data quality supply chains public-private information infrastructures living labs','Abstract One of the key challenges that governments face in supervising international supply chains is the need for improving the quality of data accompanying the logistics flow. In many supply chains, individual parties in the chain work with low quality data for their operations and compliance, even though somewhere in the supply chain, better data is available. In the European CASSANDRA project, ICT-supported information infrastructures are developed to exchange data between businesses and government, to support visibility on the supply chain and the re-use of information. However, to gain better data, actors need to be open about their operations, processes and systems to parties that are geographically and culturally on the other side of the world. This adds (perceived) vulnerabilities for parties already operating in a highly competitive environment. This could be a major barrier for making the innovation work. We argue that Living Labs, as a collaborative innovation approach, are able to support the adoption of innovative information infrastructures. They help identifying gains that innovations may bring. Furthermore, the trust-based setting also mitigates the added (perceived) vulnerability such innovations bring for the participants. We illustrate this by examples from the CASSANDRA Living Labs.','',1,'Bram KlievinkInge Lucassen','springer/service oriented architecture security.csv','springer','\0'),(1475,'Distributed applications management platform based on Service Component Architecture','2012','6','','The increasing complexity in current distributed embedded systems (DES) makes its design a hard task that involves several aspects like distribution middleware selection, QoS support, implementation language selection, application dynamic reconfiguration or application deployment and maintenance. These design considerations must provide a solution to non functional requirements that distributed applications nowadays demand (e.g. Hardware heterogeneity, real time requirements, energy constraints, security, safety or fault tolerance). This paper proposes a management platform for distributed component based applications that follow the SCA (Service Component Architecture) standard. This platform provides several functionalities that range from application deployment and life cycle control to QoS and fault tolerance support.','Proceedings of 2012 IEEE 17th International Conference on Emerging Technologies & Factory Automation (ETFA 2012)',1,'A. Agirre; M. Marcos; E. Estévez','ieee/service oriented architecture security.csv','ieee','\0'),(1476,'Limitations of Web Service Security on SOAP Messages in a Document Production Workflow Environment','2008','1','','Web service security is one of the important areas of research both in industry as well as in academia. SOAP messages with XML signatures under Web service security specification provide secure message exchange solutions in SOA based applications. Recent researches established that the solutions based on the specification have several limitations. XML rewriting attacks on SOAP messages exposed the vulnerability of SOAP messages and different solutions are proposed to counter the attacks. In the present paper we expose few other limitations of Web service security in providing end-to-end integrity, specially part integrity and reuse issues, of multiple signed messages in a SOAP message in a document production workflow environment. The present paper also discusses the consequences of the limitation and establishes that it is not possible to address these issues at message level. It also proposes a solution in BPEL process level using a special protocol.','Advanced Computing and Communications, 2008. ADCOM 2008. 16th International Conference on',2,'S. K. Sinha; S. Sinha','ieee/bpel security.csv','ieee','\0'),(1477,'Quantitative evaluation of model consistency evolution in compositional service-oriented simulation using a connected hyper-digraph','2014','0','Key words Model consistency evolution Factor quantification analysis Connected hyper-digraph Formal methods Compositional service-oriented simulation CLC number TP391.9','Abstract Appropriate maintenance technologies that facilitate model consistency in distributed simulation systems are relevant but generally unavailable. To resolve this problem, we analyze the main factors that cause model inconsistency. The analysis methods used for traditional distributed simulations are mostly empirical and qualitative, and disregard the dynamic characteristics of factor evolution in model operational running. Furthermore, distributed simulation applications (DSAs) are rapidly evolving in terms of large-scale, distributed, service-oriented, compositional, and dynamic features. Such developments present difficulty in the use of traditional analysis methods in DSAs, for the analysis of factorial effects on simulation models. To solve these problems, we construct a dynamic evolution mechanism of model consistency, called the connected model hyper-digraph (CMH). CMH is developed using formal methods that accurately specify the evolutional processes and activities of models (i.e., self-evolution, interoperability, compositionality, and authenticity). We also develop an algorithm of model consistency evolution (AMCE) based on CMH to quantitatively and dynamically evaluate influencing factors. Experimental results demonstrate that non-combination (33.7% on average) is the most influential factor, non-single-directed understanding (26.6%) is the second most influential, and non-double-directed understanding (5.0%) is the least influential. Unlike previous analysis methods, AMCE provides good feasibility and effectiveness. This research can serve as guidance for designers of consistency maintenance technologies toward achieving a high level of consistency in future DSAs.','Journal of Zhejiang University SCIENCE C',1,'Lin-jun FanYun-xiang LingXing-tao ZhangJun Tang','springer/soa security.csv','springer','\0'),(1478,'An Architecture for Dynamic Web Service Provisioning Using Peer-to-Peer Networks','2013','2',' Peer-to-Peer UDDI SOA Web Services Grid Computing Virtual Organization Virtual Market Place','Abstract Grid computing has made it possible for users to create complex applications by combining globally distributed data and analysis components and deploy them on geographically distributed resources for execution. Introduction of ad-hoc Virtual Organizations based on on-demand service provisioning further enhances this architectural concept. Job-based paradigms or reliance on relatively static UDDI lead to a failure in offering the complete dynamism of a heterogeneous distributed Grid. A possible alternative is the use of dynamic peer-to-peer (P2P) techniques within a Web Service based Grid to introduce the ability of the network to adapt to resource volatility already established in P2P-based content-delivery models. In this paper, we present the architecture of a demand-driven Web Service deployment framework that allows sharing of data and computing capacity using P2P technology as its backbone. We focus on various issues such as resource availability, scalability and abstraction. Demand-driven resource allocation is based on request parameters and availability of the resources to create the basis for a fully dynamic virtual market place of computational resources.','',1,'Sujoy MistryDibyanshu JaiswalSagar ViraniArijit MukherjeeNandini Mukherjee','springer/service oriented architecture security.csv','springer','\0'),(1479,'On Patterns for Decentralized Control in Self-Adaptive Systems','2013','14','','Abstract Self-adaptation is typically realized using a control loop. One prominent approach for organizing a control loop in self-adaptive systems is by means of four components that are responsible for the primary functions of self-adaptation: Monitor, Analyze, Plan, and Execute, together forming a MAPE loop. When systems are large, complex, and heterogeneous, a single MAPE loop may not be sufficient for managing all adaptation in a system, so multiple MAPE loops may be introduced. In self-adaptive systems with multiple MAPE loops, decisions about how to decentralize each of the MAPE functions must be made. These decisions involve how and whether the corresponding functions from multiple loops are to be coordinated (e.g., planning components coordinating to prepare a plan for an adaptation). To foster comprehension of self-adaptive systems with multiple MAPE loops and support reuse of known solutions, it is crucial that we document common design approaches for engineers. As such systematic knowledge is currently lacking, it is timely to reflect on these systems to: (a) consolidate the knowledge in this area, and (b) to develop a systematic approach for describing different types of control in self-adaptive systems. We contribute with a simple notation for describing interacting MAPE loops, which we believe helps in achieving (b), and we use this notation to describe a number of existing patterns of interacting MAPE loops, to begin to fulfill (a). From our study, we outline numerous remaining research challenges in this area.','',1,'Danny WeynsBradley SchmerlVincenzo GrassiSam MalekRaffaela MirandolaChristian PrehoferJochen WuttkeJesper AnderssonHolger GieseKarl M. Göschka','springer/service oriented architecture security.csv','springer',''),(1480,'Integrated security infrastructures for law enforcement agencies','2015','1',' Law enforcement agency (LEA) Public key infrastructure (PKI) Virtual private network (VPN) INDECT block cipher (IBC) X.509 certificates Smart card (SC) Federated identity management Transport layer security (TLS)','Abstract This paper provides an overview of the security architecture for Law Enforcement Agencies (LEAs) designed by the INDECT project, and in particular the security infrastructures that have been deployed so far. These security infrastructures can be organized in the following main areas: Public Key Infrastructure (PKI) and user management, communications security, and new cryptographic algorithms. This paper presents the new ideas, architectures and deployed testbeds for these areas. In particular, it explains the inner structure of the INDECT PKI employed for federated identity management, the different technologies employed in the VPN testbed, the INDECT Block Cipher (IBC) – a novel cryptographic algorithm that has being integrated into OpenSSL library, and how IBC-enabled TLS/SSL sessions and X.509 certificates are employed to protect INDECT applications. All proposed mechanisms have been designed to work in an integrated fashion as the security foundation of all systems being developed by the INDECT project for LEAs.','Multimedia Tools and Applications',1,'Nikolai StoianovManuel UrueñaMarcin NiemiecPetr MachnikGema Maestro','springer/service oriented architecture security.csv','springer',''),(1481,'Automated Validation of Security-Sensitive Web Services Specified in BPEL and RBAC','2010','1','','We formalize automated analysis techniques for the validation of web services specified in BPEL and a RBAC variant tailored to BPEL. The idea is to use decidable fragments of first-order logic to describe the state space of a certain class of web services and then use state-of-the-art SMT solvers to handle their reach ability problems. To assess the practical viability of our approach, we have developed a prototype tool implementing our techniques and applied it to a digital contract signing service inspired by an industrial case study.','Symbolic and Numeric Algorithms for Scientific Computing (SYNASC), 2010 12th International Symposium on',2,'A. Calvi; S. Ranise; L. Vigano','ieee/bpel security.csv','ieee','\0'),(1482,'Semantic web technologies for video surveillance metadata','2012','3',' Video surveillance system Semantic web technologies Multimedia standards Reasoning Video analytics','Abstract Video surveillance systems are growing in size and complexity. Such systems typically consist of integrated modules of different vendors to cope with the increasing demands on network and storage capacity, intelligent video analytics, picture quality, and enhanced visual interfaces. Within a surveillance system, relevant information (like technical details on the video sequences, or analysis results of the monitored environment) is described using metadata standards. However, different modules typically use different standards, resulting in metadata interoperability problems. In this paper, we introduce the application of Semantic Web Technologies to overcome such problems. We present a semantic, layered metadata model and integrate it within a video surveillance system. Besides dealing with the metadata interoperability problem, the advantages of using Semantic Web Technologies and the inherent rule support are shown. A practical use case scenario is presented to illustrate the benefits of our novel approach.','Multimedia Tools and Applications',1,'Chris PoppeGaëtan MartensPieterjan De PotterRik Van de Walle','springer/webservice security.csv','springer','\0'),(1483,'Motion/imagery secure cloud enterprise architecture analysis','2012','','cloud; distributed enterprise, openstack, openflow; media; Motion imagery and persistent surveillance; secure','Cloud computing with storage virtualization and new service-oriented architectures brings a new perspective to the aspect of a distributed motion imagery and persistent surveillance enterprise. Our existing research is focused mainly on content management, distributed analytics, WAN distributed cloud networking performance issues of cloud based technologies. The potential of leveraging cloud based technologies for hosting motion imagery, imagery and analytics workflows for DOD and security applications is relatively unexplored. This paper will examine technologies for managing, storing, processing and disseminating motion imagery and imagery within a distributed network environment. Finally, we propose areas for future research in the area of distributed cloud content management enterprises. © 2012 Copyright Society of Photo-Optical Instrumentation Engineers (SPIE).','',1,'DeLay J.L.','scopus/service oriented architecture security.csv','scopus','\0'),(1484,'Optimised Realistic Test Input Generation Using Web Services','2012','0','','Abstract We introduce a multi-objective formulation of service-oriented testing, focusing on the balance between service price and reliability. We experimented with NSGA-II for this problem, investigating the effect on performance and quality of composition size, topology and the number of services discovered. For topologies small enough for exhaustive search we found that NSGA-II finds a pareto front very near (the fronts are a Euclidean distance of ~0.00024 price-reliability points apart) the true pareto front. Regarding performance, we find that composition size has the strongest effect, with smaller topologies consuming more machine time; a curious effect we believe is due to the influence of crowding distance. Regarding result quality, our results reveal that size and topology have more effect on the front found than the number of service choices discovered. As expected the price-reliability relationship (logarithmic, linear, exponential) is replicated in the front discovered when correlation is high, but as the price-reliability correlation decreases, we find fewer solutions on the front and the front becomes less smooth.','',2,'Mustafa BozkurtMark Harman','springer/bpel security.csv','springer','\0'),(1485,'Extending generic BPM with computer vision capabilities','2016','','BPM; BPMN; Computer vision; Modelling','Leveraging Business Process Management (BPM) is key to enabling business agility in organizations. Video analysis is a nascent technology that allows for innovative sensing and understanding of a large family of tasks across many diverse application domains. This includes interactions between persons, objects, and the environment in domains such as Healthcare and Retail, as well as more general activities (e.g., in video-surveillance or Transportation). It can, therefore, enable better BPM by giving the opportunity to augment, complement, and improve the observation, description, monitoring, triggering, and execution of a broad array of tasks, including new ones that can only be described visually. This may be of particular interests in cyber-physical systems where interactions between human agents and artificial agents can be tracked and managed in the context of various business processes. This paper proposes a way to integrate video data and analysis into the control flow of business processes, in a way that enables the seamless augmentation of business process execution with information from the observable environment. © Springer-Verlag Berlin Heidelberg 2016.','',2,'Mos A., Gaidon A., Vig E.','scopus/bpmn security.csv','scopus',''),(1486,'An enterprise security architecture for accessing SaaS cloud services with BYOD','2015','1','BYOD; BYOS; Cloud sprawl; Mobile device management; SABSA security architecture; Smartphone','In contemporary times IT plays a major role in enterprises\' business processes. Companies pursue the adoption of new technological trends in order to improve their business in terms of both performance and efficiency so that they can keep up with the fierce market competition. However, the emergence of cloud computing technology and the opportunity for employees to work using their personal smart phones through the adoption of Bring your own Device (BYOD) policies introduce additional risk for the enterprise. In this paper we propose an enterprise information security architecture for accessing SaaS cloud services by Smartphone BYOD. This architecture is based on the SABSA security architecture framework, which consists of the hardware, software and service-oriented security components that can reduce the aforementioned risks to acceptable levels. © 2014 IEEE.','',1,'Samaras V., Daskapan S., Ahmad R., Ray S.K.','scopus/service oriented architecture security.csv','scopus',''),(1487,'A Negative Input Space Complexity Metric as Selection Criterion for Fuzz Testing','2015','0',' Security testing Risk-based testing Fuzz testing Security metrics','Abstract Fuzz testing is an established technique in order to find zero-day-vulnerabilities by stimulating a system under test with invalid or unexpected input data. However, fuzzing techniques still generate far more test cases than can be executed. Therefore, different kinds of risk-based testing approaches are used for test case identification, selection and prioritization. In contrast to many approaches that require manual risk analysis, such as fault tree analysis, failure mode and effect analysis, and the CORAS method, we propose an automated approach that takes advantage of an already shown correlation between interface complexity and error proneness. Since fuzzing is a negative testing approach, we propose a complexity metric for the negative input space that measures the boundaries of the negative input space of primitive types and complex data types. Based on this metric, the assumed most error prone interfaces are selected and used as a starting point for fuzz test case generation. This paper presents work in progress.','',1,'Martin A. SchneiderMarc-Florian WendlandAndreas Hoffmann','springer/service oriented architecture security.csv','springer',''),(1488,'An Attribute-Role Based Access Control Mechanism for Multi-tenancy Cloud Environment','2015','2',' Multi-tenancy Cloud computing Role-based access control Authorization Attribute','Abstract Because of the rapid development of software technology, many enterprises require more high-performance hardware to enhance their competitiveness. Cloud computing is the result of distributed computing, grid computing and is gradually being seen as the future solution to the companies. Cloud computing can virtualize existing software and hardware to reduce costs. Thus, enterprises only require high Internet bandwidth and devices to access cloud service on the Internet. This would decrease many overhead costs and reduce IT staff requirement. A cloud environment provider provides many companies to rent a cloud service simultaneously in the provider’s cloud, the technology is named multi-tenancy cloud service. However, how to access resource safely is an important topic if user want to adopt multi-tenancy cloud computing technology. The cloud-computing environment is vulnerable to network-related attacks. This research uses role-based access control authorization mechanism concept and combines it with attribute based access control to determine which tenant that user can access. The enhanced authorization mechanism can improve the safety of cloud computing services and protected the data secret.','Wireless Personal Communications',1,'Nai Wei LoTa Chih YangMing Huang Guo','springer/service oriented architecture security.csv','springer',''),(1489,'Using aspects for security engineering of Web service compositions','2005','20','','Web Service composition languages promise a cheap and effective means for application integration over the Internet as in typical B2B interaction scenarios. BPEL is the upcoming standard for Web Service composition and several implementations of it are already available. However, for Web Service composition languages to keep their promises it is essential to provide more support for security. Companies will embrace Web Service composition languages only if their requirements of confidentiality, integrity, authentication, etc. are fulfilled. In this paper, we look at security in Web Services compositions and present a framework for securing BPEL compositions using WS-Security and WS-Policy. The main components of our framework are the process container implemented by a set of aspects in AO4BPEL, an aspect-oriented extension to BPEL, the security service and the deployment descriptor. We also introduce the notion of policy-based process deployment to check the compatibility of the security policies of the composition and its partners at deployment time.','IEEE International Conference on Web Services (ICWS\'05)',2,'A. Charfi; M. Mezini','ieee/bpel security.csv','ieee',''),(1490,'Component-based information service platform for heating industry','2014','','Business p rocess; Heating; Information integration; Service platform; SOA','To solve the problem of low information integration for heating industry, a framework of information service platform is proposed. The framework realizes information sharing and integration control of central heating. Four core components are designed to implement process development, service collaboration, publish/subscribe and event rule. A heating management system has been designed based on these components, which realizes intelligent and security of the production management. And three application subsystems have been developed to realize heating maintenance service, multi-level alarm service and heating charging service. The information service platform effectively achieves information integration and rapid service development. © 2014 IEEE.','',1,'Hu G., Wu B., Cheng B., Chen J.','scopus/soa security.csv','scopus','\0'),(1491,'Taming the Cloud: Safety, Certification and Compliance for Software Services','2012','0','','Abstract The maturity of IT processes, such as software development, can be and is often certified. Current trends in the IT industry suggest that software systems in the future will be very different from their counterparts today, with an increasing adoption of the Service-Oriented Architecture (SOA) design pattern and the deployment of Software-as-a-Service (SaaS) on Cloud infrastructures. In this talk we discuss some issues surrounding engineering Software Services for Cloud infrastructures and highlight the need for enhanced control, service-level agreement and compliance mechanisms for Software Services. Cloud Infrastructures and Service Mash-ups.','',2,'Howard FosterGeorge Spanoudakis','springer/bpel security.csv','springer','\0'),(1492,'Model-Driven Middleware Support for Team-Oriented Process Management','2013','0','','Abstract Management of collaborative processes involving multiple parties is one of the dominant topics in contemporary information system research. While the process perspective is quite well understood and supported by a wide range of modeling approaches, it is necessary to go beyond the process perspective alone. We specifically address the following question: If we consider the involved parties of a collaborative process as a team , then (1) which are the general formation rules for such a team together with the collaborative process it carries out and (2) to which concrete underlying organizational structure do these rules apply? To address this question, we present the organizational modeling approach Sonar . The accompanying models are rather high-level and illustrative but at the same time they are rich enough in order to generate executable models and other kinds of code that together form the core of a middleware implementation for team-oriented process management.','',2,'Matthias Wester-EbbinghausMichael Köhler-Bußmeier','springer/bpel security.csv','springer','\0'),(1493,'Big Data in product lifecycle management','2015','19',' Big Data Manufacturing Product lifecycle management Potential application','Abstract Recently, “Big Data” has attracted not only researchers’ but also manufacturers’ attention along with the development of information technology. In this paper, the concept, characteristics, and applications of “Big Data” are briefly introduced first. Then, the various data involved in the three main phases of product lifecycle management (PLM) (i.e., beginning of life, middle of life, and end of life) are concluded and analyzed. But what is the relationship between these PLM data and the term “Big Data”? Whether the “Big Data” concept and techniques can be employed in manufacturing to enhance the intelligence and efficiency of design, production, and service process, and what are the potential applications? Therefore, in order to answer these questions, the existing applications of “Big Data” in PLM are summarized, and the potential applications of “Big Data” techniques in PLM are investigated and pointed out.','The International Journal of Advanced Manufacturing Technology',1,'Jingran LiFei TaoYing ChengLiangjin Zhao','springer/soa security.csv','springer',''),(1494,'A Reusable Automated Acceptance Testing Architecture for Microservices in Behavior-Driven Development','2015','0','executable automated acceptance testing; Gherkin; functional testing; behavior-driven development; microservice','Cloud Computing and Mobile Cloud Computing are reshaping the way applications are being developed and deployed due to their unique needs such as massive scalability, guaranteed fault tolerance, near zero downtime, etc. and also daunting challenges such as security, reliability, continuous deployment and update capability. Microservices architecture, where application is composed of a set of independently deployable services, is increasingly becoming popular due to its capability to address most of these needs and challenges. In recent years, the Behavior-Driven Development (BDD) has become one of the most popular agile software development processes, and frequently used in microservices development. The key to success of BDD is the executable acceptance tests that describe the expected behavior of a feature and its acceptance criteria in the form of scenarios using simple and business people readable syntax. The reusability, auditability, and maintainability become some of the major concerns when BDD test framework is applied for each microservice repository and no previous research addresses these concerns. In this paper, we present a reusable automated acceptance testing architecture to address all these concerns.','Service-Oriented System Engineering (SOSE), 2015 IEEE Symposium on',1,'M. Rahman; J. Gao','ieee/microservice security.CSV','ieee',''),(1495,'A High Performance Web-Based System for Analyzing and Visualizing Spatiotemporal Data for Climate Studies','2013','3',' Big Data CyberGIS Online Visual Analytics Computing Optimization','Abstract Large amount of data are produced at different spatiotemporal scales by many sensors observing Earth and model simulations. Although advancements of contemporary technologies provide better solutions to access the spatiotemporal data, it is still a big challenge for researchers to easily extract information and knowledge from the data due to the data complexities of high dimensions, heterogeneity, distribution, large amount and frequently updating. This is especially true in climate studies, because climate data with coverage of the entire Earth and a long time period (such as 200 years) are often required to extract useful climate change information and patterns. A well-developed online visual analytical system has the potential to provide an efficient mechanism to bridge this gap. Using performance improving techniques for an online visual analytical system, we researched and developed a high performance Web-based system for spatiotemporal data visual analytics includes the following components: 1) a Spatial Data Registration Center for managing the big spatiotemporal data and enabling researchers to focus on analyses without worrying about data related issues such as format, management and storage; 2) a workflow for pre-generating and caching frequently requested data to reduce the server response time; and 3) a technique of “single data fetch, multiple analyses” to reduce both server response time and client response time; Finally, we demonstrate the effectiveness of the prototype through a few use cases.','',1,'Zhenlong LiChaowei YangMin SunJing LiChen XuQunying HuangKai Liu','springer/service oriented architecture security.csv','springer','\0'),(1496,'Introducing domain-specific language implementation using web service-oriented technologies','2012','2','Domain-specific languages; service-oriented architecture','Several advantages have been documented that suggest Domain-Specific Languages (DSLs) have the potential to improve productivity, reliability, maintainability and portability in some specialized domains. However, several key challenges still remain. In particular, the extension and evolution of both DSL syntax and semantics still suffer due to the limitations related to the current state-of-the-art implementation techniques. Such techniques also lack interoperable capabilities among base languages and limited tool support. As changes of domain concepts are omnipresent and more base languages may support DSL implementation, the aforementioned limitations may be no longer tolerable, and hence a new implementation technique to DSL development is desired. This paper implements six DSL case studies (representing imperative, declarative and hybrid categories) to validate the feasibility of utilizing Service-Oriented Architecture (SOA) for DSL implementation. Such case studies also highlight that the advantages of SOA (i.e., ease of evolution/extension, interoperability and tool support) can be retained under the context of DSL development. The paper concludes with the discussion of additional findings, both positive and negative: the SOA-based approach improves modularization at the lexical, syntactical and semantic levels and delegates tokenization/parsing to the underlying WS-BPEL engine; yet, the usability, resource utilization, security, and flexibility of the SOA-based DSLs are degraded, which requires more future work in this unique area that spans SOA and DSLs. © 2011 - IOS Press and the authors. All rights reserved.','',2,'Liu S.-H., Cardenas A., Mernik M., Bryant B.R., Gray J., Xiong X.','scopus/bpel security.csv','scopus','\0'),(1497,'Efficient Workload Distribution Bridging HTC and HPC in Scientific Computing','2012','3','','Abstract GriF is a Workflow Management System designed to support users of the Molecular and Materials Sciences and Technologies COMPCHEM Virtual Organization. In particular, GriF manages the results of the parameter sweeping studies submitted to the Grid. This service has been recently extended to implement seamless access to both High Performance and High Throughput Computing architectures. To this end, the Workflow execution is splitted into single blocks whose execution is most suited to one or the other platform. This has been obtained by implementing a communication channel allowing interoperability between the gLite middleware operating on the Italian Grid Initiative segment accessible to COMPCHEM and the software stack operating on the CINECA machines. As a prototype application a high level ab initio calculation of the potential energy surface of few atom system has been implemented.','',1,'Carlo ManualiAlessandro CostantiniAntonio LaganàMarco CecchiAntonia GhiselliMichele CarpenéElda Rossi','springer/service oriented architecture security.csv','springer','\0'),(1498,'A Survey of Journey of Cloud and Its Future','2015','0','API (Application Programming Interface);CSP (Cloud Service Provider);Cloud Computing;DC (Data-centers);PAAS (Platform as a Service);SAAS (Software as a Service);SOA (Service-Oriented Architecture);TC (Telecommunications Closet);Virtualization;and','Cloud computing in the past few years has grown from a promising business idea to one of the fastest growing field of the IT industry. Still the IT organization is concern about critical issues (like security, data loss) existing with the implementation of cloud computing, related to security in particular. Consequently issues arise due to client switching to cloud computing. This paper briefs about the role of cloud in IT business enterprise, its woes and its projected solutions. It proposes the use of \"Honey-Comb Infrastructure\" for flexible, secure and reliable storage supported by parallel computing.','Computing Communication Control and Automation (ICCUBEA), 2015 International Conference on',1,'K. Shekanayaki; A. Chakure; A. Jain','ieee/service oriented architecture security.csv','ieee',''),(1499,'Construction of Messaging-Based Enterprise Integration Solutions Using AI Planning','2012','0',' Enterprise Application Integration Enterprise Integration Patterns Messaging Action-Based Planning STRIPS-like Planning','Abstract This paper presents a novel method of using action-based planning for construction of enterprise integration solutions that utilize messaging technologies. More specifically, the presented method is able to generate a sequence of processing steps needed to transform input message flow(s) to specified output message flow(s), taking into account requirements in areas of throughput, availability, service monitoring, message ordering, and message content and format conversions. The method has been implemented as a research prototype. It has been evaluated using scenarios taken from the literature as well as from real-world experience of the authors.','',2,'Pavol MederlyMarián LekavýMarek ZávodskýPavol Návrat','springer/bpmn security.csv','springer','\0'),(1500,'Specifying business process outsourcing requirements','2016','','Bpmn extension; Business process outsourcing; Cloud computing; Genetic algorithm','Outsourcing enterprises’ data, business processes and applications to the Cloud is emerging as a major trend thanks to the Cloud offerings and features. Basically, enterprises expect when outsourcing to save cost, improve software and hardware performance and gain more flexibility by responding to the dynamic customers’ requirements. However, adopting the Cloud as an alternative environment for the management of the business processes leads to a radical change in the enterprise IT infrastructure. Furthermore, additional challenges may appear such as data security, vendor-lock-in and labor union rendering the outsourcing decision require a deep analysis and knowledge about the business processes context. Assisting enterprises’ experts in the business process outsourcing to the Cloud decision is the focus of this paper: it extends the BPMN 2.0 language to explicitly support the specification of outsourcing concepts, and it presents an automated approach to help decision makers identify those parts of their business process that benefit most from outsourcing to the Cloud. Using this extension helps also in identifying Cloud services considered as the most suitable to support the outsourced business process requirements. © Springer International Publishing Switzerland 2016.','',2,'Rekik M., Boukadi K., Ben-Abdallah H.','scopus/bpmn security.csv','scopus',''),(1501,'Multimedia on the web - editorial','2014','0','','','Multimedia Tools and Applications',1,'Florian StegmaierHarald KoschRalf KlammaMathias LuxErnesto Damiani','springer/service oriented architecture security.csv','springer','\0'),(1502,'A Coloured Petri Net Approach to the Functional and Performance Analysis of SIP Non-INVITE Transaction','2014','0',' SIP Coloured Petri nets Protocol verification Functional analysis Performance analysis','Abstract With the increasing popularity of Voice over IP, the Session Initiation Protocol (SIP), a protocol for session creation and management, has become more and more important. This paper is focused on SIP non-INVITE transaction (NIT) and analyzes its functional correctness and performance. We firstly propose an extension to a Coloured Petri Net (CPN) based protocol verification methodology with a performance analysis component. Following the extended methodology, CPN models for NIT are created, verified and simulated. Functional verification shows that NIT contains no livelock and dead code, but it is not free of deadlock. Simulation analysis indicates that channel loss has a signifcant impact on bandwidth consumption by NIT, and when channel loss rate is less than 20 %, the delay by the server generating its final response has great influence on NIT performance. The outcome of this research also demonstrates the effectiveness of CPN for both functional and performance analysis of network protocols.','',1,'Junxian LiuLin Liu','springer/service oriented architecture security.csv','springer','\0'),(1503,'Proceedings - 2012 5th IEEE International Conference on Service-Oriented Computing and Applications, SOCA 2012','2012','','','The proceedings contain 47 papers. The topics discussed include: virtual disaster management information repository and applications based on linked open data; bridging the heterogeneity of orchestrations - a Petri net-based integration of BPEL and windows workflow; performance evaluation of a massively parallel ESB-oriented architecture; adaptive load shedding via fuzzy control in data stream management systems; pattern-based process discovery; a rule-based approach for dynamic adaptation of service flow; cost-driven service provisioning in hybrid clouds; selecting the right mobile app paradigms; revenue maximization with quality assurance for CompositeWeb services; eventlets: components for the integration of event streams with SOA; a fuzzy approach for ranking adaptation strategies in CLAM; and security measurement in service-based computing systems.','',2,'[No author name available]','scopus/bpel security.csv','scopus','\0'),(1504,'Container-level security certification of services','2012','1','','The increasing success of the Service-Oriented Architecture (SOA) paradigm has fostered the implementation of complex services, including business processes, via dynamic selection and composition of remote services providing single functionality. Run-time selection and composition of services require the deployment of high-level security standards for the SOA infrastructure, to increase the confidence of both service consumers and providers that the services satisfy their security requirements and behave as expected. In this context, certification can play a fundamental role and provide the evidence that a set of properties hold for a given service. Security certification of services can involve two different aspects: i) the evaluation of the container in which the service is deployed, in terms of compliance with web service security standards and policies; ii) the verification and validation of the service implementation. In this chapter, we focus on the first aspect and we propose an overview of container-level certification of services. © 2012 Springer-Verlag.','',1,'Anisetti M., Ardagna C.A., Damiani E.','scopus/service oriented architecture security.csv','scopus','\0'),(1505,'Layering of the Provenance Data for Cloud Computing','2013','0','','Abstract With the recent advancements in distributed systems, Cloud computing has emerged as a model for enabling convenient, on-demand network access to a shared resource pool of configurable elements such as (networks, servers, storage, applications, and services). Various applications are developed and deployed into the Cloud following the layered architecture. The layered approach includes infrastructure, virtualization, application, platform and client tiers. Provenance (the meta-data), is the information that helps cloud providers and users to determine the derivation history of a data product, starting from its origin. Each layer in the Cloud has its own provenance data and generally, provenance data for each layer address different audience. For example, Cloud providers are interested in the infrastructure provenance data to verify the high utilization of resources through audit trials. Cloud users on the other hand are interested in the performance of the deployed application and the verification of experiments. In this paper, we present various queries regarding the provenance data for different layers of Cloud. Hereby, we integrate the provenance data from individual layers and highlight the importance of integrated provenance. We also outline the relationship between various layers of the Cloud by using the integrated provenance.','',1,'Muhammad ImranHelmut Hlavacs','springer/service oriented architecture security.csv','springer','\0'),(1506,'Detecting vulnerabilities in Service Oriented Architectures','2012','','Benchmarking; Security; SOA; Vulnerabilities; Vulnerability detection; Web services','The adoption of Service Oriented Architectures (SOAs) in a wide range of organizations, including business-critical systems, opens the door to new security challenges. Although the services used should be secure and reliable, they are often deployed with security bugs that can be maliciously exploited. The problem is that developers are frequently not specialized on security and the common time-to-market constraints limits an in depth test for vulnerabilities. Additionally, research and practice shows that the effectiveness of existing vulnerability detection tools is very poor. The goal of this work is to advance the state-of-the-art by investigating new techniques and tools to effectively detect vulnerabilities in SOAs in an automated manner. Instrumental in this work is to propose a benchmarking approach that allows assessing and comparing vulnerability detection tools, thus helping guiding tools development and improvement, and allowing users to select the most effective ones according to specific needs. © 2012 IEEE.','',1,'Antunes N., Vieira M.','scopus/service oriented architecture security.csv','scopus','\0'),(1507,'18th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, TACAS 2012 held as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2012','2012','','','The proceedings contain 48 papers. The special focus in this conference is on SAT and SMT Based Methods. The topics include: Quantitative models for a not so dumb grid; history-aware data structure repair using SAT; the guardol language and verification system; numeric bounds analysis with conflict-driven learning; Ramsey-based analysis of parity automata; a library for efficient manipulation of non-deterministic tree automata; LTL to buchi automata translation; pushdown model checking for malware detection; aspect-oriented runtime monitor certification; partial model checking using networks of labelled transition systems and boolean equation systems; from under-approximations to over-approximations and back; automated analysis of AODV using UPPAAL; modeling and verification of a dual chamber implantable pacemaker; counter-example guided fence insertion under TSO; java memory model-aware model checking; compositional termination proofs for multi-threaded programs; deciding conditional termination; the AVANTSSAR platform for the automated validation of trust and security of service-oriented architectures; reduction-based formal analysis of BGP instances; minimal critical subsystems for discrete-time markov models; automatic verification of competitive stochastic systems; coupling and importance sampling for statistical model checking; verifying pCTL model checking; parameterized synthesis; towards an open source framework for RTL design synthesis and verification; template-based controller synthesis for timed systems; an automated prover for properties of recursive data structures; a proof assistant for alloy specifications and reachability under contextual locking.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus','\0'),(1508,'A Flow Analysis Approach for Service-Oriented Architectures','2015','0','','Abstract The discipline of SOA (Service-oriented Architecture) provides concepts for designing the structural and behavioral aspects of application landscapes that rely on the interaction of self-contained services. To assess an architecture’s quality and validate its conformance to behavioral requirements, those models must be subjected to sophisticated static analyses. We propose a comprehensive methodology that relies on data flow analysis for a context-sensitive evaluation of service-oriented system designs. The approach employs a model-based format for SOA artifacts which acts as a uniform basis for the specification and execution of various analyses. Using this methodology, we implement two analyses which reveal blocking calls and assess performance metrics. These applications are evaluated in the context of two case studies that have been developed in the SENSORIA and the ENVIROFI projects.','',2,'Bernhard BauerMelanie LangermeierChristian Saad','springer/bpel security.csv','springer',''),(1509,'A Requirements-Based Model for Effort Estimation in Service-Oriented Systems','2014','0',' Software Engineering Service-oriented Computing Development Costs Estimation','Abstract Assessing the development costs of an application remains an arduous task for many project managers. Using new technologies and specific software architectures makes this job even more complicated. In order to help people in charge of this kind of work, we propose a model for estimating the effort required to implement a service-oriented system. Its starting point lies in the requirements and the specifications of the system-to-be. It is able to provide an estimate of the development effort needed. The latter is expressed in a temporal measurement unit, easily convertible into a monetary value. The model proposed takes into account the three types of system complexity, i.e., the structural, the conceptual and the computational complexity.','',1,'Bertrand VerlaineIvan J. JuretaStéphane Faulkner','springer/service oriented architecture security.csv','springer','\0'),(1510,'A semantic self-management approach for service platforms','2014','1','Autonomic Computing;Model Driven Architecture;Ontologies;Semantic Services;Service Level Management','Future personal living environments feature an increasing number of convenience-, health- and security-related applications provided by distributed services, which do not only support users but require tasks such as installation, configuration and continuous administration. These tasks are becoming tiresome, complex and error-prone. One way to escape this situation is to enable service platforms to configure and manage themselves. The approach presented here extends services with semantic descriptions to enable platform-independent autonomous service level management using model driven architecture and autonomic computing concepts. It has been implemented as a OSGi-based semantic autonomic manager, whose concept, prototypical implementation and evaluation are presented.','2014 IEEE Network Operations and Management Symposium (NOMS)',1,'J. Schaefer','ieee/service oriented architecture security.csv','ieee','\0'),(1511,'BPEL processes for non-repudiation protocols in Web services','2005','0','','The BPEL language formally specifies business processes and interaction protocols. Nonrepudiation is a serious security issue in business transactions where any involved party denies having participated in a transaction. We propose and verify novel nonrepudiation protocols for business transactions and specify them in BPEL. Our proposed protocols fulfil the requirements of security, fairness, and timeliness.','International Conference on Next Generation Web Services Practices (NWeSP\'05)',2,'M. Bilal; J. P. Thomas; P. Harrington; A. Abraham','ieee/bpel security.csv','ieee','\0'),(1512,'A systematic survey of service identification methods','2014','8',' Service-oriented architecture SOA Service identification method SIM Systematic survey','Abstract One of the major challenges for the adoption of the service-oriented architecture (SOA) is the service identification phase that aims to determine which services are appropriate to be implemented. In the last decade, several service identification methods (SIMs) were proposed. However, the service identification phase still remains a challenge to organizations due to the lack of systematic methods and comprehensive approaches that support the examination of the businesses from multiple perspectives and consider service quality attributes. This work aims to provide an overview of existing SIMs by detailing which service’s perspectives, stated as relevant by the industry, are addressed by the SIMs and also by synthesizing the identification techniques used by them. We have performed a systematic survey over publications about SIMs from 2002 to June 2013, and 105 studies were selected. A detailed investigation on the analyzed SIMs revealed that the identification techniques applied by them have a correlation on how they address many of the service’s perspectives. In addition, they are supporting the SOA adoption by handling many perspectives of the OASIS’ reference architecture for SOA. However, most of them do not explicitly address service quality attributes and few studies support the evaluation of both. Therefore, future research should follow the direction toward hybrid methods with mechanisms to elicit business and service’s quality attributes.','Service Oriented Computing and Applications',1,'Rosane S. HuergoPaulo F. PiresFlavia C. DelicatoBruno CostaEverton CavalcanteThais Batista','springer/soa security.csv','springer','\0'),(1513,'A Service Oriented life cycle model for Educational Information System','2012','1','Locator; Service oriented architecture; Web service','The Service Oriented model is developed and adopted by different organizations. The services are open and can be developed and consumed independently. The service life cycle needs to be consumed and updated dynamically in order to maintain the availability and the appropriateness of the services. The Second section of this paper describes the fundamentals of the SOA and the requirements of the security parameters with the same. The third section deals with the service life cycle model related to Educational Information System. The fourth section elaborates the functions of secured service lifecycle information model. The fifth section summarizes the results and the findings of the design and implementation. The conclusion indicates the main advantages of this model. Copyright 2012 ACM.','',1,'Kamatchi R.','scopus/service oriented architecture security.csv','scopus','\0'),(1514,'Situating COIN in the Cloud','2013','0','','Abstract We start from the view that the central theme of the research at the core of coordination, organization, institutions and norms, is whether the social structures and mechanisms, that have emerged over time, can be adapted and applied to artificial societies of programs and perhaps more significantly, to mixed societies of humans and programs –and how The means by which the social constraints that guide and regulate behaviour are acquired and represented remains an open problem. If recent experiences in information retrieval and natural language processing are plausible indicators, the statistical may yet oust the logical. Technology aside, it is clear that for socio-technical systems, that integrate human and software components, we may expect the adoption of, or the illusion of observation of, and support for human social conventions. The growing migration to cloud computing of the services that make up current pervasive, social applications suggests near-term developments emerging from the same platform(s). Thus, the question considered here is, what pathways, opportunities and challenges exist for the development, wider use and validation of COIN technologies to help realize socio-technical systems that better meet human requirements. As examples of specific enabling technologies, we review current developments in resource-oriented architecture, complex event processing and stream reasoning and observe how COIN technologies might integrate with them.','',1,'Julian Padget','springer/service oriented architecture security.csv','springer','\0'),(1515,'Automated deployment and Aggregated access control for SOA composite applications','2007','0','Integration and middleware technologies for management;Security management Policy and role based management;Service Onented Architecture and management;service deployment','Modeling, assembling, deploying and managing composite applications built using service oriented architectures (SOA) present many interesting challenges. Among these challenges, we consider two: service deployment and security management for access control. In this application session, these challenges are explored in the context of a prototype banking application: \"Jivaro\". The Jivaro prototype has features such as automated and configurable business processes using BPEL and manual tasks, multitenancy using virtual portals, and security using LDAP. We focus on two specific management pain points: 1. the difficulty in deploying multiple SOA components into multiple target middleware containers, and 2. inconsistency in access control policies for multi-tier applications. For addressing the deployment issues, we present a real-wo rid deployment scenario involving the use of ANT tasks and scripting interfaces. For addressing inconsistencies in access control policies, we present a solution using the XACML standard, a common authorization model developed as an extension of the Java authorization contract for containers and a common policy store and policy administration point. We compare and contrast current access control policies for J2EE containers and databases with the proposed new common authorization model. We also compare separate access control policy stores versus the proposed solution for a common store. Our aggregated role based authorization model provides consistent access control policies that complement single sign-on and identity propagation schemes. This model also touches upon issues surrounding role and policy based management, specifically regarding the potential of combining security policy administrator roles for different tiers.','2007 10th IFIP/IEEE International Symposium on Integrated Network Management',2,'I. Poddar; G. Goldszmidt','ieee/bpel security.csv','ieee','\0'),(1516,'Exploration of access control mechanisms for service-oriented network architecture','2015','1','Access control; Authorisation; Flexible network; Future internet; Security; Service-oriented network architecture; SONATE','The future network is expected to hosts much more than today\'s applications in an efficient manner but many flaws were found due to rigidity of the architecture. The researchers successfully developed many new flexible internet architectures to solve the infrastructural problems of the current internet. Service-oriented network architecture (SONATE) is one, which helps in supporting not only short-term demands but allows long-term demands that evolve. It offers various flexible services which bestow many issues of security. It is also envisioned that the security aspect needs to be embedded in the architecture because the major bottleneck in today\'s networking architecture is imparting the security provisions from outside the architecture. The authors discuss the need and importance for the development of access controls for the authenticated principals using a technique which is based on the role-based access and Mandatory access for the loosely coupled nature of the services. Copyright © 2015 Inderscience Enterprises Ltd.','',1,'Rudra B., Vyas O.P.','scopus/service oriented architecture security.csv','scopus',''),(1517,'RAFT-REST - A Client-Side Framework for Reliable, Adaptive and Fault-Tolerant RESTful Service Consumption','2013','2','','Abstract The client/server paradigm in distributed systems leads to multi-stakeholder architectures with messages exchanged over connections between client applications and services. In practice, there are many hidden obstacles for client developers caused by unstable network connections, unavailable or faulty services or limited connectivity. Even if many frameworks and middleware solutions have already been suggested as corrective, the rapid development of clients to (almost) RESTful services remains challenging, especially when mobile devices and wireless telecommunications are involved. In this paper we introduce RAFT-REST, a conceptual framework aimed at engineers of clients to RESTful services. RAFT-REST reduces the effort to achieve reliable, adaptive and fault-tolerant service consumption. The framework is applied and validated with ReSup, a fully implemented flavour for Java clients which run on the desktop and on Android mobile devices. We show that by using the framework, message loss can be reduced significantly with tolerable delay, which contributes to a higher quality of experience.','',1,'Josef SpillnerAnna UtlikThomas SpringerAlexander Schill','springer/service oriented architecture security.csv','springer','\0'),(1518,'A provenance auditing framework for cloud computing systems','2015','0','Auditing;Cloud computing;Provenance','Cloud computing is a service oriented paradigm that aims at sharing resources among a massive number of tenants and users. This sharing facility that it provides coupled with the sheer number of users make cloud environments susceptible to major security risks. Hence, security and auditing of cloud systems is of great relevance. Provenance is a meta-data history of objects which aid in verifiability, accountability and lineage tracking. Incorporating provenance to cloud systems can help in fault detection. This paper proposes a framework which aims at performing secure provenance audit of clouds across applications and multiple guest operating systems. For integrity preservation and verification, we use established cryptographic techniques. We look at it from the cloud service providers\' perspective as improving cloud security can result in better trust relations with customers.','Signal Processing, Informatics, Communication and Energy Systems (SPICES), 2015 IEEE International Conference on',1,'G. Meera; G. Geethakumari','ieee/service oriented architecture security.csv','ieee',''),(1519,'An (OPS-M)-based WDM-PON with functions of wavelength tri-reuse and all-sided fiber protection','2015','0',' Optical power splitter module Tri-reuse Orthogonal vector group Matrices Self-protection WDM-PON','Abstract In this paper, an optical power splitter module (OPS-M) and (OPS-M)-based WDM-PON are proposed. The symmetry and passivity of OPS-M makes it easy to integrate and dirt cheap in practice. It shows this OPS-M can be widely applied in an optical network. By utilizing the OPS-M, the wavelength tri-reuse is realized. At the same time, the coherent interference can also be eliminated due to cross-wavelength reuse. By introducing matrix operations and orthogonal vector group, the relations among wavelengths, optical network units and their services are shown clearly. By designing structure of ONU, feeder fiber and distributed fiber failures can be self-protected. Besides, the ONUs remain colorless and the system has passivity. By the simulation, feasibility of the scheme is demonstrated.','Photonic Network Communications',1,'Weilun XieChaoqin GanHaibin ChenSu GuoCuiping Ni','springer/soa security.csv','springer',''),(1520,'Authentication method in SWIM based on improved Diameter/EAP-MD5','2014','','Diameter protocol; Extensible authentication protocol (EAP); Identity authentication; Message-digest (MD) algorithm; System wide information management (SWIM)','System wide information management (SWIM) provides the civil aviation information exchange and data sharing function by using service-oriented architecture (SOA). Based on the analysis of SWIM architecture and the sub-protocol EAP-MD5 of Diameter, the security vulnerable of authenticating process in standard Diameter/EAP-MD5 is explored, the EAP-MD5 authentication protocol is improved, and the SWIM authentication service based on Diameter is studied, then the SWIM authentication method based on improved Diameter/EAP-MD5 protocol is proposed. Experiments on the security of SWIM authentication service based on Diameter are performed in SWIM simulation environment, results show that the improved Diameter/EAP-MD5 authentication method can enhance the security of SWIM authentication and guarantee SWIM security service.','',1,'Wu Z.-J., Zhao T., Lei J.','scopus/service oriented architecture security.csv','scopus','\0'),(1521,'A Formal Methodology for Modeling Threats to Enterprise Assets','2014','0',' Asset Formal Model Impact Likelihood of Occurrence Threat','Abstract Enterprises usually execute business processes with the help of Information Technology (IT) services which, in turn, are realized by IT assets. Enterprise IT assets contain vulnerabilities that can be exploited by threats to cause harm to business processes and breach security of information assets. Hence, detection of threats is crucial for ensuring business continuity and protection of enterprise information security. Existing threat detection mechanisms are limited in scope owing to absence of methodologies for modeling different categories of threats uniformly. This paper presents a formal methodology that can model diverse types of threats to enterprise assets. The methodology provides sufficient flexibility to enterprises for defining threshold values of threat parameters that suit their specific needs and help them to compute probability of occurrence of threats.','',1,'Jaya BhattacharjeeAnirban SenguptaChandan Mazumdar','springer/service oriented architecture security.csv','springer','\0'),(1522,'Social-QAS: Tailorable Quality Assessment Service for Social Media Content','2015','2',' Social media Information quality Tailoring End User Development Emergencies','Abstract More than 3 billion people use the Internet, many of whom also use social media services such as the social network Facebook with about 1.35 billion active users monthly or the microblogging platform Twitter numbering approximately 284 million active users monthly. This paper researches how a tailorable quality assessment service can assist the use of citizen-generated content from social media. In particular, we want to study how users can articulate their personal quality criteria appropriately. A presentation of related work is followed by an empirical study on the use of social media in the field of emergency management, focusing on situation assessment practices by the emergency services. Based on this, we present the tailorable quality assessment service (QAS) for social media content, which has been implemented and integrated into an existing application for both volunteers and the emergency services.','',1,'Christian ReuterThomas LudwigMichael RitzkatisVolkmar Pipek','springer/service oriented architecture security.csv','springer',''),(1523,'A conceptual SOA-based framework for e-Government Central Database','2012','1','Central Database;Database Replication;ESB;SOA;Web Services;e-Government','The Central Database is one of the core components in the Palestinian e-Government technical framework. The Central Database model lacks features such as: interoperability, flexibility, and manageability. The purpose of this paper is to propose a SOA based solution for the Central Database that achieves the above features.','Computer, Information and Telecommunication Systems (CITS), 2012 International Conference on',1,'R. S. Baraka; S. M. Madoukh','ieee/service oriented architecture security.csv','ieee','\0'),(1524,'Proposal of Movie CAPTCHA Method Using Amodal Completion','2012','0','amodal completion;captcha;webservice','Web services accounts have recently been automatically acquired in large quantities by bot-programs, which are malicious. Furthermore, the acquired accounts have been used for spamming, which is a problem for service operators or Internet users. Completely Automated Public Turing Tests To Tell Computers and Humans Apart (CAPTCHAs) have generally been adopted for Web Services as a method of preventing Web services accounts from being acquired. These are Turing tests for users of Web services to distinguish between humans and bot-programs. There are several types of methods in CAPTCHAs, but the most typical in this field are text-based. However, these methods can be decoded with a high degree of probability, because of the OCR technology that has evolved. Much research on resolving this problem has been proposed. For example, one method in this research adds distortion to characters to make it difficult to analyze them with OCR. Despite this research, OCR has a higher success rate than humans. Thus, we propose a practical method for CAPTCHA in this paper in which only humans can provide correct answers by applying a modal completion.','Applications and the Internet (SAINT), 2012 IEEE/IPSJ 12th International Symposium on',1,'T. Mori; R. Uda; M. Kikuchi','ieee/webservice security.csv','ieee','\0'),(1525,'Service Knowledge Discovery in Smart Machine Networks','2015','2',' Service discovery Machine to machine Ontology IPv6 Neighbor Discovery Semantics ICMPv6','Abstract The devices surrounding us become smarter and can autonomously form a network without requiring our intervention. However, our needs can be even better accommodated when the networked devices cooperate and complement each other’s capabilities. One of the initial steps towards achieving a cooperative platform of smart devices is the discovery of resources and capabilities within the network. Today’s operational service discovery protocols carry simple text-based uniform resource identifiers that are not expressive enough. Machines cannot comprehend the meaning of a new service that is not in their knowledge base. In addition to being more expressive, service discovery protocols must compensate the diversity to improve cooperation between the devices that use different application protocols and operate on different communication interfaces. In this paper, we propose the Smart Discovery Protocol (SDP) which outperforms the operational service discovery protocols with three main features: (1) more expressive semantic representation of the services, (2) operating in the network layer to deal with diversity, and (3) unifying existing service discovery protocols. SDP represents services with ontologies as some recently proposed semantic service discovery protocols. It further enhances the success of semantic representations by creating a unified platform that can carry legacy discovery services. In this respect, the novelties of SDP are as follows: firstly, it operates in the network layer and consequently abstracts both the application layer and communication interfaces. Secondly, SDP unifies the legacy service discovery protocols by integrating their simple text-based service representations in one message. The underlying transport mechanism of SDP is designed as an add-on to the Neighbor Discovery Protocol (NDP) of the IPv6 standard. The metadata is carried in the payload of ICMPv6 packets. Simple text-based representations of other service discovery protocols are embedded in type-length-value options of NDP. Authenticity of the devices is ensured by the IPv6 Secure Neighbor Discovery protocol. Unlike previous semantic approaches on service discovery, we have implemented our protocol on real hardware. The results demonstrate the feasibility of carrying semantic representations of the services and integration of other service discovery protocols.','Wireless Personal Communications',1,'Yunus DurmusErtan Onur','springer/soa security.csv','springer',''),(1526,'Design and implementation of an information destruction security service in mixed local area networks','2013','','','This paper focuses on the architecture of mixed LAN-oriented security service components firstly, and then expands each one of them by explaining its design and structural implementation. The novel developed service upgrades LAN security systems, wired mingled with wireless, allowing its software to run alongside with any malware detection program. The need to strenghten security services has led to a different approach of securing information, which represents one of the most stable and efficient processes given the nature of its basic procedure, destruction. To be practical, the interconnected components can be separated and then redeployed, being easily integrated into other security system, thus fitting the needs of diverse organization LANs. © 2013 IEEE.','',1,'Pachia M.','scopus/service oriented architecture security.csv','scopus','\0'),(1527,'Engineering Computational Service Grid: A Flexible Engineering Computational Environment Based on Grid Computing','2009','0','Flexible engineering computational environment;Grid portal;workflow','An ideal engineering computational environment for solving design problems should be flexible, which is characterized by helping designers to establish solution strategy conveniently and integrating design resources effectively. In this paper, a flexible engineering computational system called engineering computational service grid (ECSG) based on grid portal technology and workflow technology is presented, and the architecture of ECSG is described detailedly. For managing solution strategy of engineering computational job, the structure of BPEL (business process execution language) based workflow management subsystem is put forward, and an application scenario of ECSG is given. The research results aforementioned can clarify the functional system of engineering computational environment and provide an approach to constructing flexible engineering computational environment.','Computer Science and Information Engineering, 2009 WRI World Congress on',2,'W. Wang','ieee/bpel security.csv','ieee','\0'); +INSERT INTO `articles` VALUES (1528,'Holistic approach to design and implementation of a medical teleconsultation workspace','2015','','Collaboration; SOA; Teleconsultation; Telemedicine; Teleradiology; VO','While there are many state-of-the-art approaches to introducing telemedical services in the area of medical imaging, it is hard to point to studies which would address all relevant aspects in a complete and comprehensive manner. In this paper we describe our approach to design and implementation of a universal platform for imaging medicine which is based on our longstanding experience in this area. We claim it is holistic, because, contrary to most of the available studies it addresses all aspects related to creation and utilization of a medical teleconsultation workspace.We present an extensive analysis of requirements, including possible usage scenarios, user needs, organizational and security issues and infrastructure components. We enumerate and analyze multiple usage scenarios related to medical imaging data in treatment, research and educational applications - with typical teleconsultations treated as just one of many possible options. Certain phases common to all these scenarios have been identified, with the resulting classification distinguishing several modes of operation (local vs. remote, collaborative vs. non-interactive etc.).On this basis we propose a system architecture which addresses all of the identified requirements, applying two key concepts: Service Oriented Architecture (SOA) and Virtual Organizations (VO). The SOA paradigm allows us to decompose the functionality of the system into several distinct building blocks, ensuring flexibility and reliability. The VO paradigm defines the cooperation model for all participating healthcare institutions. Our approach is validated by an ICT platform called TeleDICOM II which implements the proposed architecture. All of its main elements are described in detail and cross-checked against the listed requirements. A case study presents the role and usage of the platform in a specific scenario. Finally, our platform is compared with similar systems described into-date studies and available on the market. © 2015.','',1,'Czekierda Ł., Malawski F., Wyszkowski P.','scopus/service oriented architecture security.csv','scopus',''),(1529,'Supporting Content, Context and User Awareness in Future Internet Applications','2012','7',' Future Internet Next Generation Networks (NGN) distributed applications quality of service (QoS) content-awareness context-awareness services personalization service oriented architecture (SOA)','Abstract We show how the applications utilizing a Future Internet architecture can benefit from its features like quality of service (QoS) provisioning and resources reservation.We demonstrate, how proposed applications address content, context and user awareness basing on the underlying Next Generation Network (NGN) infrastructure and how it can be used to host service-based applications.','',1,'Paweł ŚwiątekKrzysztof JuszczyszynKrzysztof BrzostowskiJarosław DrapałaAdam Grzech','springer/service oriented architecture security.csv','springer','\0'),(1530,'A Service-Oriented Integration Platform to Support a Joined-Up E-Government Approach: The Uruguayan Experience','2012','2',' e-government soa interoperability security web services middleware','Abstract E-Government Platforms have become a key tool to support the development of e-government in many countries. They usually provide infrastructure and services that facilitate the interconnection between the information systems of public agencies, provide common services that generate economy of scale, and encourage the implementation of multi-agency services. In particular, the Uruguayan E-Government Platform has the general goal of enabling and promoting the development of e-government services in Uruguay. The platform, which follows a joined-up approach, consists of an Interoperability Platform and a set of Crosscutting Services. It implements a service-oriented architecture, leveraging the Web Services technology, to expose, use and combine government functionality implemented by public agencies. This paper presents the Uruguayan E-Government Platform focusing on two components of the Interoperability Platform: the Middleware Infrastructure and the Security System. It also evaluates its first years of operation which have shown that, although there are still many challenges to be addressed, the platform is a key enabler for developing a joined-up e-government approach in Uruguay.','',2,'Laura GonzálezRaúl RuggiaJorge AbinGuzmán LlambíasRaquel SosaBruno RienziDiamela BelloFabricio Álvarez','springer/bpel security.csv','springer','\0'),(1531,'Challenges towards the global adoption of cloud computing','2012','','','Cloud computing represents a fundamental shift in the delivery of information technology services that has been changing the computing landscape. Indeed, over the past several years, cloud computing has rapidly emerged as a widely accepted computing paradigm. The research and development community has quickly reached consensus on the core concepts such as on-demand computing resources, elastic scaling, elimination of up-front capital and operational expenses, as well as the new pay-per-use business model for computing and other information technology services provided by the cloud. With the adoption of virtualization, service-oriented architectures, and utility computing, there is also consensus on the enabling technologies necessary to support this new consumption and delivery services model. Additionally, the customers\' demand to meet quality-of-service requirements and service-level agreements, including security, is well understood. © 2012 IEEE.','',1,'Getov V., Chu W.C., Claycomb W.R., Strawn G.O., Yau S.S.','scopus/service oriented architecture security.csv','scopus','\0'),(1532,'Design and Implementation of an Office Automation Assistant Utility Using Adobe AIR Technology','2013','0',' Adobe AIR web service HTTP service auto update memory optimization','Abstract Comprehensive online office automation platform helps one process/exchange online documents, schedule meetings and complete information integration as well as other daily office work. However active reminding function of incoming documents/scheduled meetings still remains unavailable in most of the current office automation systems. Thus, traditionally, users have to repeatedly refresh related web pages to obtain latest information, which inevitably influences working efficiency. To tackle the problem, we design and implement an assistant utility, providing the needed reminding functions. The utility is built on Adobe AIR technology, a desktop-oriented browser-less runtime frame for developing Rich Internet Applications (RIAs). Through the provided web service, the utility gets the latest information from office automation server. Additionally, HTTP service is employed for providing auto update capability. Moreover, memory optimization is considered in the design and implementation.','',2,'Xin LiuLiang LiaoBin YangHeng Liu','springer/bpel security.csv','springer','\0'),(1533,'BPEL Orchestration of Secure Webmail','2006','0','BPEL, SMTP misuse cases, SMTP use cases, WSEmail, verification, webmail','Proceedings of the 3rd ACM Workshop on Secure Web Services','',2,'Saket Kaushik and Duminda Wijesekera and Paul Ammann','acm/bpel security.csv','acm','\0'),(1534,'Deriving XACML policies from business process models','2007','7','Enforcement; eXtensible access control markup language; Integration; Policy definition; Separation of duties business process modeling','The Business Process Modeling Notation (BPMN) has become a defacto standard for describing processes in an accessible graphical notation. The extensible Access Control Markup Language (XACML) is an OASIS standard to specify and enforce platform independent access control policies. In this paper we define a mapping between the BPMN and XACML meta-models to provide a model-driven extraction of security policies from a business process model. Specific types of organisational control and compliance policies that can be expressed in a graphical fashion at the business process modeling level can now be transformed into the corresponding task authorizations and access control policies for process-aware information systems. As a proof of concept, we extract XACML access control policies from a security augmented banking domain business process. We present an XSLT converter that transforms modeled security constraints into XACML policies that can be deployed and enforced in a policy enforcement and decision environment. We discuss the benefits of our modeling approach and outline how XACML can support task-based compliance in business processes. © Springer-Verlag Berlin Heidelberg 2007.','',2,'Wolter C., Schaad A., Meinel C.','scopus/bpmn security.csv','scopus','\0'),(1535,'An ontology-based approach to security pattern selection','2016','0',' Security pattern ontology security requirement risk analysis security engineering','Abstract Usually, the security requirements are addressed by abstracting the security problems arising in a specific context and providing a well proven solution to them. Security patterns incorporating proven security expertise solution to the recurring security problems have been widely accepted by the community of security engineering. The fundamental challenge for using security patterns to satisfy security requirements is the lack of defined syntax, which makes it impossible to ask meaningful questions and get semantically meaningful answers. Therefore, this paper presents an ontological approach to facilitating security knowledge mapping from security requirements to their corresponding solutions–security patterns. Ontologies have been developed usingWeb Ontology Language (OWL) and then incorporated into a security pattern search engine which enables sophisticated search and retrieval of security patterns using the proposed algorithm. Applying the introduced approach allows security novices to reuse security expertise to develop secure software system.','International Journal of Automation and Computing',1,'Hui GuanHongji YangJun Wang','springer/service oriented architecture security.csv','springer',''),(1536,'Lightweight Coordination Calculus for Agent Systems: Retrospective and Prospective','2012','1','','Abstract The Lightweight Coordination Calculus was presented in a paper to DALT 2004 as a method for specifying a class of social norms for multi-agent systems. This was intended for use in the engineering of a range of applications but at the time the original paper was written this was an aspiration and we had little experience of actual use of the method. In this paper I summarise how experience with this approach has developed in the seven years from 2004 to date.','',2,'David Robertson','springer/bpel security.csv','springer','\0'),(1537,'CyberVis: Visualizing the potential impact of cyber attacks on the wider enterprise','2013','0','','A variety of data-mining tools and filtering techniques exist to detect and analyze cyber-attacks by monitoring network traffic. In recent years many of these tools use visualization designed to make traffic patterns and impact of an attack tangible to a security analyst. The visualizations attempt to facilitate understanding elements of an attack, including the location of malicious activity on a network and the consequences for the wider system. The human observer is able to detect patterns from useful visualizations, and so discover new knowledge about existing data sets. Because of human reasoning, such approaches still have an advantage over automated detection, data-mining and analysis. The core challenge still lies in using the appropriate visualization at the right time. It is this lack of situational awareness that our CyberVis framework is designed to address. In this paper we present a novel approach to the visualization of enterprise network attacks and their subsequent potential consequences. We achieve this by combining traditional network diagram icons with Business Process Modeling and Notation (BPMN), a risk-propagation logic that connects the network and business-process and task layer, and a flexible alert input schema able to support intrusion alerts from any third-party sensor. Rather than overwhelming a user with excessive amounts of information, CyberVis abstracts the visuals to show only noteworthy information about attack data and indicates potential impact both across the network and on enterprise tasks. CyberVis is designed with the Human Visual System (HVS) in mind, so severe attacks (or many smaller attacks that make up a large risk) appear more salient than other components in the scene. A Deep-Dive window allows for investigation of data, similar to a database interface. Finally, a Forensic Mode allows movie-style playback of past alerts under user-defined conditions for closer examination.','Technologies for Homeland Security (HST), 2013 IEEE International Conference on',2,'S. Creese; M. Goldsmith; N. Moffat; J. Happa; I. Agrafiotis','ieee/bpmn security.csv','ieee','\0'),(1538,'An enhanced smart multi-banking integrated system — Service oriented approach','2012','0','Bank composite service;Integrated banking;Multi banking;Service Composition','Nowadays smart way of doing the work is very familiar among every business oriented enterprise applications. In this paper we propose an enhanced smart multi-banking integrated using service oriented composition model by which using single username and password the user can able to access multiple bank accounts. Every user can have more than one bank accounts and each bank provides different username and passwords. To operate his/her account he/she wants to remember all the user name and password of each bank. This Multi Banking Interface is aimed to enhance the current services of the bank to meet the requirements for future-banking world for the users who is having accounts in multiple banks. By using this interface any user who is having accounts in various banks can directly login to Multiple Banks and make any kind of transactions. By using this interface client can also able to see all various bank account summaries in the single page. He/she can get minimum 10 transaction details of all banks. Even amount can be transacted between the banks in the single interface. In addition to this, the main feature of the paper is, Sometimes the client need a particular amount, but all the banks in which he/she has account is having balance lesser then the required amount. For this we are providing a dynamic service composition interface to overcome this problem. Consider `n\' number of banks is going to participate in multi-banking interface. Here one of the banks acts as a primary and remaining are secondary one. Consider the scenario that the user requires the amount of Rs.10000/- but no banks have full-required amount. Now the integrated system checks whether 60% of required amount is available in any of the banks. If so, it takes the amount from the corresponding bank otherwise it checks for 50% of required amount and so on for particular limit. Similarly, the remaining amount is taken from other banks in such criteria. Now the integrated system transfers the amount- which is taken from the secondary banks to primary bank account. Finally From the primary bank account the user can withdraw the required amount. If the client needs to add one more bank he/she can add the bank details and make our system to composite with the existing bank services dynamically.','Computing Communication & Networking Technologies (ICCCNT), 2012 Third International Conference on',1,'P. Iyappan; V. PrasannaVenkatesan; R. Amarnath; L. Noor Mouhammed; A. Selvamani','ieee/service oriented architecture security.csv','ieee','\0'),(1539,'The FBI sentinel project','2013','','','In 2000, the United States Federal Bureau of Investigation (FBI) initiated its Trilogy program in order to upgrade FBI infrastructure technologies, address national security concerns, and provide agents and analysts greater investigative abilities through creation of an FBI-wide network and improved user applications. Lacking an appropriate enterprise architecture foundation, IT expertise, and management skills, the FBI cancelled further development of Trilogy Phase 3, Virtual Case File (VCF), with prime contractor SAIC after numerous delays and increasing costs. The FBI began development of Sentinel in 2006 through Lockheed Martin. Unlike in the case of Trilogy, the FBI decided to implement a service-oriented architecture (SOA) provided in part by commercial-off-the-shelf (COTS) components, clarify contracts and requirements, increase its use of metrics and oversight through the life of the project, and employ IT personnel differently in order to meet Sentinel objectives. Although Lockheed Martin was eventually released from their role in the project due to inadequate performance, the project is still moving forward on account of the use of best practices. The case highlights key events in both VCF and Sentinel development and demonstrates the FBI\'s IT transformation over the past four years. © 2013 by IGI Global. All rights reserved.','',1,'Olszewski L., Wingreen S.C.','scopus/service oriented architecture security.csv','scopus','\0'),(1540,'Recent advanced applications and services for intelligent ubiquitous environments','2014','0','','','Electronic Commerce Research',1,'Jongsung KimHan-Chieh ChaoUyen Trang Nguyen','springer/service oriented architecture security.csv','springer','\0'),(1541,'Determining trust in media-rich websites using semantic similarity','2012','3',' Multimedia Web Trust Semantic similarity','Abstract Significant growth of multimedia content on the World Wide Web (or simply ‘Web’) has made it an essential part of peoples lives. The web provides enormous amount of information, however, it is very important for the users to be able to gauge the trustworthiness of web information. Users normally access content from the first few links provided to them by search engines such as Google or Yahoo!. This is assuming that these search engines provide factual information, which may be popular due to criteria such as page rank but may not always be trustworthy from the factual aspects. This paper presents a mechanism to determine trust of websites based on the semantic similarity of their multimedia content with already established and trusted websites. The proposed method allows for dynamic computation of the trust level of websites of different domains and hence overcomes the dependency on traditional user feedback methods for determining trust. In fact, our method attempts to emulate the evolving process of trust that takes place in a user’s mind. The experimental results have been provided to demonstrate the utility and practicality of the proposed method.','Multimedia Tools and Applications',1,'Pradeep K. AtreyHicham IbrahimM. Anwar HossainSheela RamannaAbdulmotaleb El Saddik','springer/service oriented architecture security.csv','springer','\0'),(1542,'An Aspect-Oriented Approach to Enforce Security Properties in Business Processes','2013','0',' AOP security Web services Separation of concerns MDA','Abstract Security is an essential requirement for business processes. However, we observe that security is mostly addressed at the technical implementation level and not at the design level. In a previous work we motivated the need to address security already in business process modeling. In this paper, we show how one could use Aspect-Oriented Programming (AOP) to enforce security requirements in a modular way. Starting from a business process model where security requirements are expressed using a profile mechanism we generate AspectJ [1] code, which enforces those requirements. This generation is based on a set of Model-to-Text transformation rules. As security is a typical example for crosscutting concerns the usage of aspects allows for a modular implementation, in which the implementation of the business process is separated from the implementation of the security properties.','',2,'Inaya YahyaSameh Hbaieb TurkiAnis CharfiSlim KallelRafik Bouaziz','springer/bpel security.csv','springer','\0'),(1543,'A service-oriented architecture for wireless video sensor networks: Opportunities and challenges','2015','','','Video surveillance is an essential tool for many security-related applications but video is also increasingly used in combination with computer vision technologies in other sensing applications. With the growth of installed camera infrastructure and development it would be beneficial to enable video surveillance systems to support many application simultaneously. Service-oriented Architecture (SoA) is a prospective solution to implement such a multi-application surveillance system, which can provide video data and processing methods to different applications based on their requirements. However, such a system presents several challenges, which needs to be addressed and considered along with the constrains on the system resources. In this paper, we propose a framework for a SoA based video surveillance system with efficient system resource management, including device, data and network management. Our contribution is to present the benefits of such an approach and highlight the research challenges that need to be addressed to realise such a system.','Industrial Electronics Society, IECON 2015 - 41st Annual Conference of the IEEE',1,'B. Cheng; G. P. Hancke','ieee/service oriented architecture security.csv','ieee',''),(1544,'Ubiquity and QoS for Cloud Security','2012','0','Architecture Model;Cloud Computing;Cloud Security;QoS;Ubiquity','Cloud computing brings many advantages in terms of externalization, service delivery, elasticity, dependability and scalability. Nevertheless, it can be exposed to several vulnerabilities and security attacks. Therefore, we propose, in our UBIS (Ubiquity and Integration of Services) project, an architectural model that aims to satisfy cloud user requirements and cloud security challenges. For this purpose, our solution is based on two key elements. The former deals with ubiquitous services in Service Oriented Architecture. The latter considers QoS management that includes security aspects based on Event Driven Architecture.','2012 41st International Conference on Parallel Processing Workshops',1,'A. Hammami; N. Simoni; R. Salman','ieee/service oriented architecture security.csv','ieee','\0'),(1545,'Security Property Lifecycle Management for Secure Service Compositions','2013','','','We present an approach to deploying a security property life cycle management mechanism for secure service composition. A Security Property Determination Module component is introduced that forms part of the Aniketos project, in the context of a case study relating to an online payment system that has been developed using real services deployed within the Activiti BPMN service process engine. Both the theory behind the implementation as well as the implementation itself will be discussed, along with the lessons learnt and the potential for future improvements to the lifecycle mechanism. The mechanism integrates tightly with the verification processes of the Aniketos platform. It also allows the security property lifecycle to be managed at run-time without user intervention. The mechanism unifies the verification of imported properties and the digital signing and storage of properties associated with both atomic and composed services. These integrated capabilities form a novel approach discussed and situated in the context of the case study. © Springer-Verlag Berlin Heidelberg 2013.','',2,'Hoque S., Rahim A., Llewellyn-Jones D., Merabti M.','scopus/bpmn security.csv','scopus','\0'),(1546,'E-EPR: a workflow-based electronic emergency patient record','2014','2',' Holistic care workflow SOA IHE Health and social care','Abstract Emergency care is, politically and socially, one of the highest priorities in society today. Increasing patient expectations and the advancement of scientific and medical knowledge has had a dramatic effect on the provision of emergency care. Emergency medical services (EMSs) perform pre-hospital and in-hospital emergency care activities, operate 24 h a day/7 days a week and constitute an important link between the community (primary care) and the hospital (secondary and tertiary care). Managing emergency care involves assessing individual needs to create a coordinated plan of care that is consistent with agreed priorities and is designed to bring optimal outcomes using cost-effective care. Emergency care is vital for avoiding death and chronic suffering by the elderly and the homeless, but its overall positive effect on the long-term health and overall well-being of these people can only be improved significantly by applying holistic principles, going beyond basic medical care to offer psychological and social support as far as possible. Thus, creating appropriate emergency care plans requires collaboration and coordination among EMS and social care providers, giving rise to a more holistic approach to emergency care management. In turn, this requires the availability of integrated patient information to authorized individuals of health and social care providers when and where needed. On these grounds, the development of a workflow-based electronic patient record (E-EPR) for emergency care is described which is provided as a service on a cloud. The E-EPR aims at supporting the execution of EMS workflows by providing integrated patient information to EMS process participants and to make this information shareable to health and social care professionals. Due to the heterogeneity of the participating organizations’ information systems, the E-EPR is built on top of an Integrating the Healthcare Enterprise (IHE)-based collaborative network consisting of EMS agencies and health and social care providers who share patient documents using IHE-based profiles. An experimental implementation of the E-EPR is also described.','Personal and Ubiquitous Computing',1,'M. PoulymenopoulouF. MalamateniouG. Vassilacopoulos','springer/soa security.csv','springer','\0'),(1547,'A Toolchain for Designing and Testing Access Control Policies','2014','1','','Abstract Security is an important aspect of modern information management systems. The crucial role of security in this systems demands the use of tools and applications that are thoroughly validated and verified. However, the testing phase is an effort consuming activity that requires reliable supporting tools for speeding up this costly stage. Access control systems, based on the integration of new and existing tools are available in the Service Development Environment (SDE). We introduce an Access Control Testing toolchain (ACT) for designing and testing access control policies that includes the following features: (i) the graphical specification of an access control model and its translation into an XACML policy; (ii) the derivation of test cases and their execution against the XACML policy; (iii) the assessment of compliance between the XACML policy execution and the access control model. In addition, we illustrate the use of the ACT toolchain on a case study.','',1,'Antonia BertolinoMarianne BuschSaid DaoudaghFrancesca LonettiEda Marchetti','springer/service oriented architecture security.csv','springer','\0'),(1548,'Conceptual and content-based annotation of (multimedia) documents','2014','0',' Annotation systems Binary and n- ary conceptual representations Ontologies Elementary and complex events Narratives Querying and inference procedures','Abstract This paper focuses on the techniques used in an NKRL environment (NKRL = Narrative Knowledge Representation Language) to deal with a general problem affecting the so-called “semantic/conceptual annotations” techniques. These last, mainly ontology-based, aim at “annotating” multimedia documents by representing, in some way, the “inner meaning/deep content” of these documents. For documents of sufficient size, the content modeling operations are separately executed on ‘significant fragments’ of the documents, e.g., “sentences” for natural language texts or “segments” (minimal units for story advancement) in a video context. The general problem above concerns then the possibility of collecting all the partial conceptual representations into a global one. This integration operation must, moreover, be carried out in such a way that the meaning of the full document could go beyond the simple addition of the ‘meanings’ conveyed by the single fragments. In this context, NKRL makes use of second order knowledge representation structures, “completive construction” and “binding occurrences”, for collecting within the conceptual annotation of a whole “narrative” the basic building blocks corresponding to the representation of its composing elementary events. These solutions, of a quite general nature, are discussed in some depth in this paper. This last includes also a short “state of the art” in the annotation domain and some comparisons with the different methodologies proposed in the past for solving the above ‘integration’ problem.','Multimedia Tools and Applications',1,'Gian Piero Zarri','springer/service oriented architecture security.csv','springer','\0'),(1549,'Energy-efficient communication networks for improved global energy productivity','2013','13',' Energy efficiency Power consumption Network elements Core networks Access networks Holistic approach','Abstract Recently, a lot of effort has been put into research and development of energy-efficient devices and systems and into optimization of the network infrastructure with regard to energy consumption. On the one hand, reducing total power consumption of global communication networks has become an imperative and an important step towards the future highly energy-efficient Internet. On the other hand, capacity and performance of the Internet must be continuously improved in order to meet the high requirements set by the continuously increasing of both the number of broadband subscribers and the amount of user traffic. Thus, only a highly energy-efficient and high-performance network infrastructure designed to efficiently support advanced applications and services for improving energy productivity in many other branches of business and society can significantly contribute to global energy savings. This paper briefly discusses potentials and options for achieving such an energy-efficient network infrastructure. Some examples of software applications and services for global energy savings are briefly reviewed. The aim of this paper is to draw attention to the need for a holistic approach to evaluate energy efficiency and to improve the global energy productivity through the use of high-performance and energy-efficient networks, services and applications.','Telecommunication Systems',1,'Slaviša Aleksić','springer/soa security.csv','springer',''),(1550,'Determining the Link and Rate Popularity of Enterprise Process Information','2013','1',' process-oriented information logistics process information relevance link popularity algorithm rate popularity algorithm','Abstract Today’s knowledge workers are confronted with a high load of heterogeneous information making it difficult for them to identify the information relevant for performing their tasks. Particularly challenging is thereby the alignment of process-related information ( process information for short), such as e-mails, office files, forms, checklists, guidelines, and best practices, with business processes. In previous work, we introduced the concept of process-oriented information logistics (POIL) to bridge this gap. POIL allows for the process-oriented and context-aware delivery of relevant process information to knowledge workers. So far, we have introduced concepts to integrate business processes with process information. A remaining challenge is to identify the process information relevant for a given process context. This paper tackles this challenge and extends our POIL approach with techniques and algorithms for identifying relevant process information. More specifically, we introduce two algorithms for determining the relevance of process information based on their link and rate popularity. We use a scenario from the automotive domain to demonstrate and validate the applicability of our approach.','',2,'Bernd MichelbergerBela MutschlerMarkus HippManfred Reichert','springer/bpmn security.csv','springer','\0'),(1551,'Towards a Computer Assisted Approach for Migrating Legacy Systems to SOA','2012','1',' Services-oriented architecture web services legacy system migration direct migration indirect migration semi-automatic cobol migration','Abstract Legacy system migration to Service-oriented Architectures (SOA) has been identified as the right path to the modernization of enterprise solutions needing agility to respond to changes and high levels of interoperability. However, one of the main challenges of migrating to SOA is finding an appropriate balance between migration effort and the quality of resulting service interfaces. This paper describes an approach to assist software analysts in the definition of produced services, which bases on the fact that poorly designed service interfaces may be due to bad design and implementation decisions present in the legacy system. Besides automatically detecting common design pitfalls, the approach suggests refactorings to correct them. Resulting services have been compared with those that resulted from migrating a real system by following two classic approaches.','',1,'Gonzalo SalvatierraCristian MateosMarco CrassoAlejandro Zunino','springer/service oriented architecture security.csv','springer','\0'),(1552,'A sharing-based approach to supporting adaptation in service compositions','2013','0',' Service composition Adaptation Sharing Static analysis Horn clauses Mathematics Subject Classification 68M14 68U35 68N30 68Q85 68N17 68Q60','Abstract Data-related properties of the activities involved in a service composition can be used to facilitate several design-time and run-time adaptation tasks, such as service evolution, distributed enactment, and instance-level adaptation. A number of these properties can be expressed using a notion of sharing. We present an approach for automated inference of data properties based on sharing analysis, which is able to handle service compositions with complex control structures, involving loops and sub-workflows. The properties inferred can include data dependencies, information content, domain-defined attributes, privacy or confidentiality levels, among others. The analysis produces characterizations of the data and the activities in the composition in terms of minimal and maximal sharing, which can then be used to verify compliance of potential adaptation actions, or as supporting information in their generation. This sharing analysis approach can be used both at design time and at run time. In the latter case, the results of analysis can be refined using the composition traces (execution logs) at the point of execution, in order to support run-time adaptation.','Computing',2,'Dragan IvanovićManuel CarroManuel V. Hermenegildo','springer/bpel security.csv','springer','\0'),(1553,'The Building Blocks of a PaaS','2014','1',' Platform as a service Cloud computing Performance testing','Abstract Traditional cloud computing providers enable developers to program and deploy applications in the cloud by using platform as a service (PaaS) providers. Despite the benefits of such an approach, this service model usually comes with a high level of the lock in effect into the service provider. The lock in effect occurs when a software developer needs to change its cloud provider. When this happens, it usually means a major application rewrite, specific for the new PaaS. This paper details the initial results of a project whose goal is to build a PaaS where vendor lock in does not occur. With this PaaS, developers wishing to deploy their applications into the cloud may continue to program using their usual development environments. There are no necessary changes required to make the application PaaS compatible. As a proof of concept, we developed an open source PaaS management application as a regular web application and then deployed it on the cloud.','Journal of Network and Systems Management',1,'Cláudio TeixeiraJoaquim Sousa PintoRicardo AzevedoTiago BatistaAndré Monteiro','springer/service oriented architecture security.csv','springer','\0'),(1554,'BPM Demos 2012 - Proceedings of the Demonstration Track of the 10th International Conference on Business Process Management','2012','','','The proceedings contain 10 papers. The topics discussed include: BPM academic initiative - fostering empirical research; updatable process views for adapting large process models: the proView demonstrator; the shared process model; eventifier: extracting process execution logs from operational databases; supporting blended workflows; detecting approximate clones in process model repositories with apromore; information flow security for business process models - just one click away; disco: discover your processes; mayflower - explorative modeling of scientific workflows with BPEL; and CRISTAL: collection of resource-centric supporting tools and languages.','',2,'[No author name available]','scopus/bpel security.csv','scopus','\0'),(1555,'Green service over Internet of Things: a theoretical analysis paradigm','2013','2',' Internet of Things Green service Dynamic powering Satisfaction model','Abstract There are two kinds of uncertainty for providing green service over Internet of Things (IoT): network service period and user satisfaction model. In this paper, we consider a power-aware service problem over IoT where both of the uncertainties are incorporated. Specifically, we consider a generic IoT’s service scenario: a server provides different kinds of services without knowledge of user satisfaction model and network service period. Our objective aims at dynamically adjusting the power allocation for each service over a uncertain period to maximize expected user satisfaction. It should be noted that practical user satisfaction rate is observed over time, but the inherent functional relationship between the power and satisfaction rate is unknown. In order to present a quantitative analysis, we consider a general user satisfaction model belonging to a class of functions that do not deploy any parametric representation. In this case, a blind dynamic powering algorithm is developed, in which one learns the satisfaction function and optimizes power-aware user satisfaction with on-line operation. More precisely, the algorithm performance is measured in terms of regret which denotes the satisfaction loss compared to the optimal satisfactions that can be obtained when the service period and satisfaction rate are known. Moreover, a tight bound on this regret is proposed for any possible powering policy, and we show that the proposed algorithm can achieve a regret that is close to this bound.','Telecommunication Systems',1,'Liang Zhou','springer/soa security.csv','springer','\0'),(1556,'A Structure P2P Based Web Services Registry with Access and Control','2014','0',' Web Service Registry UDDI P2P Pastry Access and Control','Abstract In the cloud computing, there are massive functions and resources are encapsulated into Web services. The traditional web service registry systems normally using the central architecture can’t meet the requirements of cloud computing. A web service registry system based on structured P2P system with secure access and control is implemented. Multiple Universal Description, Discovery and Integration (UDDI) nodes are organized by the P2P based schedule and communication mechanism. The registration and discovery of Web services is redesigned to the new system that provides services like one single UDDI server. The experiment results show that the capacity can be extended dynamically and support large scalable access.','',1,'He QianZhao BaokangLong YunjianSu JinshuIlsun You','springer/service oriented architecture security.csv','springer','\0'),(1557,'Variability patterns for business processes in BPMN','2015','0',' Business process improvement Business process BPMN Variability Variability pattern','Abstract Many entities, both in academia and the business sector, urge an efficient improvement of business processes. However, when it comes to addressing this point, each slight disparity in the business rules and/or objectives translates into a separate model, which is neither practical nor acceptable as it burdens the host process-aware information system with repetitive and almost verbatim instances. \n To solve this issue, we propose considering variability. Variability will serve as a business process improvement technique to efficiently design and run a variable business process throughout different business situations that are similar to one another is some ways yet differ in others. First, we define variability within the context of business processes. Second, we present a set of variability patterns and explain how they are used. We validate our approach via the business process improvement patterns known and used by the community. The variability design patterns are a series of business process improvement patterns for building business process with variability and efficiently acting on the improved process performance metrics.','Information Systems and e-Business Management',2,'Alaaeddine YousfiRajaa SaidiAnind K. Dey','springer/bpmn security.csv','springer',''),(1558,'Provenance-Based Quality Assessment and Inference in Data-Centric Workflow Executions','2014','0','','Abstract In this article we present a rule-based quality model for data centric workflows. The goal is to build a tool assisting workflow designers and users in annotating, exploring and improving the quality of data produced by complex media mining workflow executions. Our approach combines an existing fine-grained provenance generation approach [3] with a new quality assessment model for annotating XML fragments with data/application-specific quality values and inferring new values from existing annotations and provenance dependencies. We define the formal semantics using an appropriate fixpoint operator and illustrate how it can be implemented using standard Jena inference rules provided by current semantic web infrastructures.','',1,'Clément CaronBernd AmannCamelia ConstantinPatrick GirouxAndré Santanchè','springer/service oriented architecture security.csv','springer','\0'),(1559,'Federated Single Sign on in Disconnected, Intermittent and Limited (DIL) Networks','2015','1','','In a military setting resource exchange amongst coalition partners is of great importance. Using SAML2.0 in a Single Sign On scheme in a federated setting can be a solution to Web authentication of Web resources. The problem of adding security in a potentially disconnected, intermittent and limited (DIL) network environment is the security overhead. In this paper tests are performed to measure this overhead, and the results are evaluated.','2015 IEEE 81st Vehicular Technology Conference (VTC Spring)',1,'M. R. Brannsten','ieee/service oriented architecture security.csv','ieee',''),(1560,'SOBA: A Services-Oriented Browser Architecture with Distributed URL-Filtering Mechanisms for Teenagers','2013','1','Services-oriented;URL Filter;URL Verification','In order to protect the teenagers in online cyberspace, this paper presents SOBA, novel services-oriented internet browser architecture with distributed filtering mechanisms. SOBA is the first literature that introduces SOA concepts into the web browser design paradigm. It contains a server cluster, which employs URL filter functions to verify the URL access, while whitelists and validation results are wrapped as services. Mean-while, a customized SOBA client is in charge of data conversion and web site navigation while verification workloads are de-ployed on the server side. Administrators can manage URL data-bases through back stage websites. A prototyping software browser of SOBA demonstrates that SOA concepts can greatly improve the safety for teenage users with high flexibility and modularity.','2013 IEEE Ninth World Congress on Services',1,'A. Wang; C. Wang; X. Li; X. Zhou','ieee/service oriented architecture security.csv','ieee','\0'),(1561,'Toward a System Design Science','2014','0','','Abstract Design is a universal concept. It links the immaterial world of concepts to the physical world. It is an essential area of human experience, expertise, and knowledge, which deals with our ability to mold our environment to satisfy material and spiritual needs. Design has two different connotations. One is simply a plan or a pattern for assembling objects constituting a given artifact. The other is the creative process for devising plans or patterns and carrying them out to produce an artifact. For this paper we focus on the second interpretation. We are ultimately interested in putting design on a more scientific basis. Toward this end, we focus here on articulating a new structure for the design process, which we believe will support this goal.','',2,'Joseph Sifakis','springer/bpel security.csv','springer',''),(1562,'Byzantine Fault Tolerance with Window Mechanism for Replicated Services','2015','','Byzantine fault tolerance;State machine replication;replica;service','Byzantine fault is the fault that can make the components behave arbitrary and may cause disastrous results. With the increasing malicious attacks and software errors, Byzantine fault tolerance has begun to draw more attention it deserves. Previous Byzantine fault tolerant algorithms have strong assumption that all the replicas is synchronous and do not support replicated calling services, which make them not practical and not suit for new computing model such as SOA. This paper proposes a new Byzantine fault tolerant algorithm based on well-known Byzantine fault tolerant algorithm CLBFT (Castro Liskov Byzantine Fault Tolerance) for replicated services in the calling endpoint. The algorithm works in asynchronous environments and support replicated calling services. To make the algorithm more practical, we incorporates important optimization-Window mechanism, which can make the replica batch process the message that reduce the response time much more than previous algorithms. Besides non-faulty process of the algorithm, we provide the faulty handling process to make the algorithm more robust.','2015 Fifth International Conference on Instrumentation and Measurement, Computer, Communication and Control (IMCCC)',1,'L. Chen; W. Zhou','ieee/service oriented architecture security.csv','ieee',''),(1563,'IoT-enabled Web warehouse architecture: a secure approach','2015','1',' Web service Internet of things (IoT) Cryptography Data warehouse Secure query processing Web warehouse','Abstract Web warehouse (WWh) has overcome the geographical dependencies of data warehouse. With the rapid development of WWh, decision makers (humans) and intelligent devices are able to remotely retrieve the information for supporting the effective decision-making process. This paper presents a secure Web service-oriented architecture of the WWh. The proposed architecture provides the better scalability, availability of WWh, and secure analytical service for human and Internet of Things for effective decision making. In addition, the service-oriented architecture of WWh integrates intelligent devices for the process of decision making. The proposed architecture uses XML-based Web services to provide authentication, authorization, and data confidentiality and integrity. Experiments show that the proposed architecture is more reliable, scalable, and secure.','Personal and Ubiquitous Computing',1,'Rashid MehmoodMaqbool Uddin ShaikhRongfang BieHussain DawoodHassan Dawood','springer/soa security.csv','springer','\0'),(1564,'Business process compliance via security validation as a service','2013','3','Business Process Management; Security; Validation','Modern enterprise systems are often processbased, i. e., they allow for the direct execution of business processes that are specified in a high-level language such as BPMN. In this paper, we present a service, called Security Validation as a Service (SVaaS) for validating the compliance of the business processes during design-time. Basically, while modeling a business process the business analyst specifies as well the security and compliance requirements the business process should comply to. By pressing a button, these requirements are validated and the results are presented in a graphical format to the business analysis.At the core of SVaaS lies a rigorous and industrially viable approach in which the security validation business logic is handled server-side (SVaaS Server) in the Cloud, while the clientside user interface that business analysts use is handled by a light-weight SVaaS Connector. As proof-of-concept we created a SVaaS prototype in which the SVaaS Server is deployed on the SAP NetWeaver Cloud and two SVaaS Connectors are built to enable two well-known BPMN tools, SAP NetWeaver BPM and Activiti, to consume SVaaS against industrial relevant business processes. © 2013 IEEE.','',2,'Compagna L., Guilleminot P., Brucker A.D.','scopus/bpmn security.csv','scopus','\0'),(1565,'Aspect-Based Realization of Non-functional Concerns in Business Processes','2015','0',' Business process modeling Non-functional concerns Aspects BPMN AO4BPEL WS-BPEL','Abstract While functional concerns are well supported in current business process modeling languages such as the Business Process Modeling Notation (BPMN), many important non-functional concerns such as security and quality of service (QoS) cannot be expressed. Some works proposed specific extensions to business process modeling languages to express certain non-functional concerns. However, most related works focus only on expressing non-functional properties in business process models without considering their realization on the implementation level. In this paper, we present a generic approach to non-functional concerns in business processes and bridge the gap between process modeling and process implementation by generating AO4BPEL aspects that enforce and realize the non-functional properties specified in the business process model. The functional part of the processes is realized by generating executable WS-BPEL code out of BPMN process models. The approach is not specific to a particular non-functional concern and the usage of aspects ensures a modular implementation of the business process.','',2,'Anis CharfiHaolin Zhi','springer/bpel security.csv','springer',''),(1566,'Aggregate QoS Estimation of Service Compositions - An Analysis of Pattern-Oriented Approaches','2014','0','quality of service estimation;service composition;service composition patterns','For service-oriented systems the estimation of QoS is an important factor to determine whether a prospective service composition will meet the expectations of its final users. Many approaches to QoS estimation of service compositions have been proposed. However, not all of them allow the QoS of composition be estimated a priori and systematically from the QoS of its individual services. This is an important goal for many composition-based development approaches. This paper is a first effort to analyze QoS estimation approaches aligned to this goal. We revise approaches that use patterns as composition mechanisms as they enable the QoS of a service composition be estimated, a priori and systematically, by aggregating the QoS information of its constituent services. The result of this analysis offers insight in the main patterns and quality attributes addressed by these approaches as well as the adopted aggregation criteria. This will help us to achieve our ultimate goals of using these approaches on public services, assessing them for practicality, identifying gaps between theory and practice and possibilities for future work.','2014 IEEE World Congress on Services',1,'P. Velasco-Elizondo; D. Barredo-Hernandez; H. A. Mitre','ieee/service oriented architecture security.csv','ieee','\0'),(1567,'A trust mechanism for web services registries data exchanging','2012','3','Service oriented architecture; Trust mechanism; Web service registry','In recent years, Web Services (WS) have been becoming more popular, as more people realize its benefits. However, the WS-Security specification only guarantees the security on end-to-end level. We propose the architecture of Trust-based Web Services Registries Data Exchanging (TWSRDE) which is four-tier architecture composed of the users, Web Service Providers (WSP) in Simple Object Access Protocol (SOAP) server, Enhance Web Services Registry (EWSR), and extra Web Services Registries (WSReg). The EWSR provides the trust mechanism which considers physical space and concept space to infer the trust value of WS for WSReg data exchanging. © 2012 ICIC International.','',1,'Chen C.-H., Cheng D.-Y., Lin B.-Y., Lu Y.-J., Lo C.-C.','scopus/service oriented architecture security.csv','scopus','\0'),(1568,'Financial Risk Management in e-commerce Using Executable Business Process Modeling Notation','2015','0','','Abstract In e-commerce systems like online auction houses or online stores, there are financial transactions involving buyers and sellers. At large payment processing firms, there is significant risk of fraud (upto 0.9 %). This fraud can be prevented before the actual transaction phase through risk scoring models. In the post transactions phase, measures like withholding or reserving funds of the seller, or asking for additional supporting material from the seller to release the funds can be done. There are numerous variations based on different geographies or different seller classes or different holding mechanisms of these measures. It was found that the software being developed for a payment system was combining both infrastructural software (database, queue, logs) as well the actual risk business process. Subsequently, prototypes were created for different risk measures in the post transaction phase using executable BPMN2 (using Activiti engine). For example, a certain amount of money may be withheld from the seller for a configurable time period which can be edited in the graphical BPMN2. In this paper, we discuss the numerous types of transactions, the numerous measures for financial risk and how BPMN2, can be used to model the same and at the same time form a performant executable component reducing development time. It is also possible that such models can be standardized and exchanged in the industry.','',2,'Ramkumar IyerSanjeevi Moorthy','springer/bpel security.csv','springer',''),(1569,'Agent-Based Self-Adaptable Context-Aware Network Vulnerability Assessment','2013','1','Vulnerability assessment;agent-based system;intrusion detection system (IDS);management information base (MIB);threats awareness analysis','Immunology inspired computer security has attracted enormous attention as its potential impacts on the next generation service-oriented network operation system. In this paper, we propose a new agent-based threat awareness assessment strategy inspired by the human immune system to dynamically adapt against attacks. Specifically, this approach is based on the dynamic reconfiguration of the file access right for system calls or logs (e.g., file rewritability) with balanced adaptability and vulnerability. Based on an information-theoretic analysis on the coherently associations of adaptability, autonomy as well as vulnerability, a generic solution is suggested to break down their coherent links. The principle is to maximize context-situation awared systems\' adaptability and reduce systems\' vulnerability simultaneously. Experimental results show the efficiency of the proposed biological behaviour-inspired vulnerability awareness system.','IEEE Transactions on Network and Service Management',1,'F. Jiang; D. Dong; L. Cao; M. R. Frater','ieee/service oriented architecture security.csv','ieee','\0'),(1570,'Iterative multi-party agreement negotiation for establishing collaborations','2012','0',' Multilateral agreement negotiation protocol Multi party agreement Ad hoc collaborations WS-agreement Comprehensive agreements','Abstract Inter-domain collaborations suffer not only from technological obstacles that hinder interoperability, but also from diverting business objectives of the involved domains. Today, hand-crafted contracts define the terms and conditions for service interactions. Electronic negotiation can serve as the enabler of dynamic interdomain collaborations by providing a large degree of freedom for the automation of agreement formation and electronic contracting. Negotiation by electronic means has been an area of intensive research for many years now. However, most effort was put on the determination of prices and neglected that real-world agreements also consist of complex dependencies of interdependent obligations. In this paper we present agreement negotiation as a tool to establish ad hoc services collaborations. Our novel protocol allows for the discovery of complex agreement options and for the formation of multi-party agreements. The protocol works through an iterative exchange of requirements and offers. A major benefit over existing bilateral negotiation protocols is that our protocol is capable of discovering potential collaborations between different parties. It will leave each negotiating party with a complete agreement document after a successful negotiation. This comprehensive agreement document defines the interdependent obligations between all parties and is well suited for E-Contracting.','Service Oriented Computing and Applications',1,'Andreas KlenkAndreas Beck-GreinwaldHannes AngstGeorg Carle','springer/soa security.csv','springer','\0'),(1571,'VGI, Augmented Reality and Smart Web Application: Projects of Development in the Territory of the Sardinia Region','2013','0',' VGI augmented reality smart web application','Abstract New technologies affect society along new directions that after a few years are consolidated and become part of our life. This article describes how Information and Communications Technology (ICT) has introduced a new approach in the handling of spatial data and related services and how Regione Autonoma della Sardegna, one of the Italian local governments, has been involved in an interesting growth that adopts ICT to provide spatial data and related services to itself and to its territory.','',1,'Gabriele GarneroAlessandro CorriasLuisa ManigasStefania Valentina Zedda','springer/service oriented architecture security.csv','springer','\0'),(1572,'A Graph Grammar-Based Dynamic Reconfiguration for Virtualized Web Service-Based Composite Architectures','2012','0','','Abstract Adaptation of deployment is required for maintaining the Quality of Service (QoS) in Service Oriented Architectures (SOA). Dynamic reconfiguration of SOA is proposed here to cope with adaptation in reaction to or in prediction of QoS degradation. Handling such an issue needs to detect and to identify the deficiency source, and to reconfigure the architecture implementing service composition. System reconfiguration constitutes a complex activity acting on distributed software entities, and requires to be implemented by correct model-based approaches. We show in this chapter how graph grammars can be used to design policy-driven reconfiguration mechanisms of architectures and to rule application adaptation using reconfiguration laws. We describe how coordinated architectural actions and reconfiguration policies are used to maintain QoS at runtime.','',1,'Ismael Bouassida RodriguezRiadh Ben HalimaKhalil DriraChristophe ChassotMohamed Jmaiel','springer/service oriented architecture security.csv','springer','\0'),(1573,'Improving the exchange of lessons learned in security incident reports: case studies in the privacy of electronic patient records','2015','0',' Lessons learned Security incident Electronic patient record Generic security template Empirical study Cognitive dimensions','Abstract The increasing use of Electronic Health Records has been mirrored by a similar rise in the number of security incidents where confidential information has inadvertently been disclosed to third parties. These problems have been compounded by an apparent inability to learn from previous violations; similar security incidents have been observed across Europe, North America and Asia. This has resulted in the loss of confidence and trust of the public towards the organisations’ ability to protect the patients’ private information. The Generic Security Template (G.S.T.) has been proposed to communicate security lessons learned from previous security incidents. This paper conducts a series of empirical studies to evaluate the usability of the G.S.T. The first study compares the G.S.T. with the conventional text-based security incident reports. The two methods were compared in term of the users’ ability to identify a number of lessons learned from investigations into previous incidents involving the disclosure of healthcare records. The study showed that the graphical approach resulted in higher accuracy in terms of number of correct answers generated by participants. However, subjective feedback raised further questions about the usability of the G.S.T. as the readers of security incident reports try to interpret the lessons that can increase the security of patient data. The second study further evaluates the usability of the G.S.T. using the Cognitive Dimensions and identifies some aspects that need to be improved.','Journal of Trust Management',2,'Ying HeChris JohnsonYu Lu','springer/bpmn security.csv','springer',''),(1574,'Integrating GI with non-GI services—showcasing interoperability in a heterogeneous service-oriented architecture','2012','2',' Service-oriented architecture (SOA) Application integration Enterprise resource planning (ERP) system Interoperability Semantic heterogeneity','Abstract The concept of a service-oriented architecture provides a technical foundation for delivering, using, and integrating software. It can serve as an approach to integrate GIS with other, non-GIS applications. This paper presents and discusses a service-oriented architecture that embraces a GIS and an enterprise resource planning system. The two information systems make mutually required functionalities available as services. This defines the showcase for making GI and non-GI services syntactically and semantically interoperable. The services-based integration leverages open-standard interfacing and, thus, removes syntactic heterogeneity. The integration is discussed in terms of an emergency management scenario. This scenario also helps to outline challenging semantic interoperability issues. When services provided by GIS and non-GIS applications interact, the problem arises how their different conceptualizations should be mapped. This paper analyzes essential ontological distinctions for mapping conceptual schemes in GI locator services and non-GI services. It proposes a hybrid decentralized approach of concept mapping, based on a common top-level ontology.','GeoInformatica',1,'Martin TreiblmayrSimon ScheiderAntonio KrügerMarc von der Linden','springer/soa security.csv','springer','\0'),(1575,'Exploring a multi-faceted framework for SOC: how to develop secure Web-service interactions?','2004','4','','Service oriented computing (SOC) demands an infrastructure that seamlessly integrates all connection points between business processes, services and associated support resources. Parts of the infrastructure may be supported by existing standards such as XACML and BPEL. However, an integral and sound framework that takes into account all these issues and serves as the formal underpinning of this infrastructure is currently lacking. A multi-faceted framework to enforce minimal levels of security not only at the level of the network (e.g., using encryption), but also of business processes, is of paramount importance. To address this challenge, we explore an event-driven framework for service oriented computing (EFSOC) that is organized in four tiers: the event tier, the business process tier, the resource tier, and the access control tier. The event tier encompasses definitions of business-related events, and supports their propagation throughout the business process flow. The business process tier specifies the dynamic interactions between business processes and services. The resource tier describes how service invocations interact with organizational resources, while the access control tier defines access roles that are allowed to invoke certain services.','Research Issues on Data Engineering: Web Services for e-Commerce and e-Government Applications, 2004. Proceedings. 14th International Workshop on',2,'K. Leune; W. J. van den Heuvel; M. Papazoglou','ieee/bpel security.csv','ieee','\0'),(1576,'VULCAN: Vulnerability assessment framework for cloud computing','2013','4','Cloud Computing; Ontology; Vulnerability Assessment','Assessing security of software services on Cloud is complex because the security depends on the vulnerability of infrastructure, platform and the software services. In many systems, the platform or the infrastructure on which the software will actually run may not be known or guaranteed. This implies that the security of the software service must be assured regardless of the underlying infrastructure or platform, requiring a large number of combinations. Another common trend in Cloud and Service oriented Architecture (SoA) environments is Service composition, whereby new services can be created rapidly by composing existing services. Once again, the component services must be tested for security levels on a large number of platform and infrastructure combinations. In this paper we propose a novel vulnerability assessment framework for cloud computing systems. We have designed and developed a prototype of our framework. We also present the design and development of our framework with some use cases. © 2013 IEEE.','',1,'Kamongi P., Kotikela S., Kavi K., Gomathisankaran M., Singhal A.','scopus/service oriented architecture security.csv','scopus','\0'),(1577,'A SOA-based architecture for empowering future collaborative cloud-based industrial automation','2012','14','','The last years we are witnessing of rapid advances in the industrial automation domain, mainly driven by business needs towards agility and supported by new disruptive technologies. Future factories will rely on multi-system interactions and collaborative cross-layer management and automation approaches. Such a factory, configured and managed from architectural and behavioural viewpoints, under the service-oriented architecture (SOA) paradigm is virtualized by services exposed by its key components (both HW and SW). One of the main results of this virtualization is that the factory is transformed into a “cloud of services”, where dynamic resource allocation and interactions take place. This paper presents a view on such architecture, its specification, the main motivation and considerations, as well as the preliminary services it may need to support.','IECON 2012 - 38th Annual Conference on IEEE Industrial Electronics Society',1,'S. Karnouskos; A. W. Colombo; T. Bangemann; K. Manninen; R. Camp; M. Tilly; P. Stluka; F. Jammes; J. Delsing; J. Eliasson','ieee/service oriented architecture security.csv','ieee',''),(1578,'Annotations of security requirements','2012','4','Annotation; Conceptual model; Diagrammatic specification; Security requirements','In current practice of software development, security requirements are specified at the early phases of the software lifecycle. They are then passed on to the development phase to be configured and integrated into low-level details. Accordingly, how to represent security constraint is an important aspect of the total developed system. Typically, in this context, the specifications are based on extending process modeling methods such as UML, BPMN, and colored Petri net. We claim that these descriptions suffer from conceptual discontinuity that disturbs the security needs of tight streams of flows. In this paper, we demonstrate this discontinuity by contrasting examples of extended modeling methods that we recast in a new diagrammatic specification methodology. The resultant new conceptual description provides a specification of data flow characterized by continuity of sequence of events and a fine-grained structure suitable for security annotations and labeling. © 2012 Praise Worthy Prize S.r.l. - All rights reserved.','',2,'Al-Fedaghi S.','scopus/bpmn security.csv','scopus','\0'),(1579,'Johnny: An Autonomous Service Robot for Domestic Environments','2012','12',' Domestic service robots Semantic scene understanding Human robot interaction','Abstract In this article we describe the architecture, algorithms and real-world benchmarks performed by Johnny Jackanapes , an autonomous service robot for domestic environments. Johnny serves as a research and development platform to explore, develop and integrate capabilities required for real-world domestic service applications. We present a control architecture which allows to cope with various and changing domestic service robot tasks. A software architecture supporting the rapid integration of functionality into a complete system is as well presented. Further, we describe novel and robust algorithms centered around multi-modal human robot interaction, semantic scene understanding and SLAM. Evaluation of the complete system has been performed during the last years in the RoboCup@Home competition where Johnnys outstanding performance led to successful participation. The results and lessons learned of these benchmarks are explained in more detail.','Journal of Intelligent & Robotic Systems',1,'Thomas BreuerGeovanny R. Giorgana MacedoRonny HartantoNico HochgeschwenderDirk HolzFrederik HeggerZha JinChristian MüllerJan PaulusMichael ReckhausJosé Antonio Álvarez RuizPaul G. PlögerGerhard K. Kraetzschmar','springer/webservice security.csv','springer',''),(1580,'Review of cyber-physical system architecture','2012','3','CPS architecture; Cyber-Physical Systems; Service-Oriented Architecture','With the goal of accomplish the ubiquitous intelligence in social life, Cyber-Physical Systems (CPS) are getting growing attentions of researchers and engineers. However, the complexity of computing and physical dynamics bring a lot of challenges in the development of CPS, such as integration of heterogeneous physical devices, system verification, security assurance, and so on. A general or unified architecture plays an important part in the process of CPS design. In this paper, we review the current and previous works of CPS architecture, and introduce the main challenges and techniques of architecture development : real-time control, security assurance, integration mechanism. Then we propose a general CPS architecture based on Service-Oriented Architecture (SOA), the main advantage of this proposed architecture is the integration flexibility of services and components. At the end, we introduce the typical applications of CPS, and suggest the future research areas. © 2012 IEEE.','',1,'Hu L., Xie N., Kuang Z., Zhao K.','scopus/service oriented architecture security.csv','scopus','\0'),(1581,'Connectivity abstractions and “service-oriented network” architecture','2012','2','Connectivity abstractions;P2P overlay;Service architecture;Service-oriented network architecture','Current generation networks have been designed only for network connectivity; they have been stretched to the limit with many afterthought add-on features including quality of service, mobility, programmability, and security so that they can be deployed for business applications and processes. As such, service deployment on current networks are difficult, time consuming and with limited successes. This paper suggests a service architecture based on network connectivity abstraction, user connectivity abstraction and application/service connectivity abstraction. The paper also proposes a service-oriented network (SON) architecture that facilitates the development of services and applications regardless of the underlying network access technologies. The architecture is conceived through the consideration of the essential requirements of generic Internet applications from the service and network providers\' perspective that addresses the Service-Oriented Architecture (SOA) application deployment pattern, user location and device mobility, and the structure of IP-converged networks.','Computing, Networking and Communications (ICNC), 2012 International Conference on',1,'D. B. Hoang; C. Pham','ieee/service oriented architecture security.csv','ieee','\0'),(1582,'A cyber security ontology for BPMN-security extensions','2015','','BPMN; Cyber security ontology; Security extension','Every so often a paper is published presenting a new extension for modelling cyber security requirements in Business Process Model and Notation (BPMN). The frequent production of new extensions by experts belies the need for a richer and more expressive representation of security requirements in BPMN processes. One reason for this is that current extensions focus on only specific areas and so fail to provide adequate coverage of the cyber security domain. In this paper, we present our work considering an analysis of existing extensions and identify the security concepts used within each of them. We discuss how there is as yet no single extension which covers a comprehensive range of cyber security concepts. Consequently there is no adequate solution for accurately specifying cyber security requirements within BPMN. In order to address this, we propose a new comprehensive ontology which includes all concepts potentially modellable in BPMN related to cyber security. We explain how this ontology can be used as the basis for developing future BPMN-security extensions, and explore the challenges that must be overcome in order to develop a representation that is both effective and with adequate coverage of security requirements. © 2015 IEEE.','',2,'Maines C.L., Llewellyn-Jones D., Tang S., Zhou B.','scopus/bpmn security.csv','scopus',''),(1583,'Improving Cooperativity in a Workflow Coordination Model over a Pub/Sub Network','2012','0',' workflow scalability publish-subscribe gossip-based algorithms','Abstract The execution of distributed workflows is an advance in state-of-the-art service orchestration that indeed improves scalability. However, it introduces complexity in the coordination model of distributed fragments and hampers the workflow reconfiguration. This work proposes a novel approach that uses cooperative techniques over a Pub/Sub network to improve scalability issues and dynamic executions of distributed workflows. We also propose new Pub/Sub dissemination models and strategies in the form of push gossip-based algorithms for controlling event dissemination.','',1,'Augusto MoralesRamón AlcarriaTomás RoblesEdwin Cedeño','springer/service oriented architecture security.csv','springer','\0'),(1584,'Cloud authorization: exploring techniques and approach towards effective access control framework','2015','0',' authorization access control software as a service extensible access control markup language identity & access management cloud security','Abstract Despite the various attractive features that Cloud has to offer, the rate of Cloud migration is rather slow, primarily due to the serious security and privacy issues that exist in the paradigm. One of the main problems in this regard is that of authorization in the Cloud environment, which is the focus of our research. In this paper, we present a systematic analysis of the existing authorization solutions in Cloud and evaluate their effectiveness against well-established industrial standards that conform to the unique access control requirements in the domain. Our analysis can benefit organizations by helping them decide the best authorization technique for deployment in Cloud; a case study along with simulation results is also presented to illustrate the procedure of using our qualitative analysis for the selection of an appropriate technique, as per Cloud consumer requirements. From the results of this evaluation, we derive the general shortcomings of the extant access control techniques that are keeping them from providing successful authorization and, therefore, widely adopted by the Cloud community. To that end, we enumerate the features an ideal access control mechanisms for the Cloud should have, and combine them to suggest the ultimate solution to this major security challenge — access control as a service (ACaaS) for the software as a service (SaaS) layer. We conclude that a meticulous research is needed to incorporate the identified authorization features into a generic ACaaS framework that should be adequate for providing high level of extensibility and security by integrating multiple access control models.','Frontiers of Computer Science',1,'Rahat MasoodMuhammad Awais ShibliYumna GhaziAyesha KanwalArshad Ali','springer/soa security.csv','springer',''),(1585,'Automated Formal Verification of Application-specific Security Properties','2014','0','','Abstract In the past, formal verification of security properties of distributed applications has been mostly targeted to security protocols and generic security properties, like confidentiality and authenticity. At ESSOS 2010, Moebius et. al. presented an approach for developing Java applications with formally verified application-specific security properties. That method, however, is based on an interactive theorem prover, which is not automatic and requires considerable expertise. This paper shows that a similar result can be achieved in a fully automated way, using a different model-driven approach and state-of-the-art automated verification tools. The proposed method splits the verification problem into two independent sub-problems using compositional verification techniques and exploits one tool for analyzing the security protocol under active attackers and another tool for verifying the application logic. The same case study that was verified in the previous work is used here in order to show how the new approach works.','',1,'Piergiuseppe Bettassa CopetRiccardo Sisto','springer/service oriented architecture security.csv','springer','\0'),(1586,'Security-Oriented Cloud Platform for SOA-Based SCADA','2015','0','Cloud Computing;Critical Infrastructure;SCADA;SOA','During the last 10 years, experts in critical infrastructure security have been increasingly directing their focus and attention to the security of control structures such as Supervisory Control and Data Acquisition (SCADA) systems in the light of the move toward Internet-connected architectures. However, this more open architecture has resulted in an increasing level of risk being faced by these systems, especially as they became offered as services and utilised via Service Oriented Architectures (SOA). For example, the SOA-based SCADA architecture proposed by the AESOP project concentrated on facilitating the integration of SCADA systems with distributed services on the application layer of a cloud network. However, whilst each service specified various security goals, such as authorisation and authentication, the current AESOP model does not attempt to encompass all the necessary security requirements and features of the integrated services. This paper presents a concept for an innovative integrated cloud platform to reinforce the integrity and security of SOA-based SCADA systems that will apply in the context of Critical Infrastructures to identify the core requirements, components and features of these types of system. The paper uses the SmartGrid to highlight the applicability and importance of the proposed platform in a real world scenario.','Cluster, Cloud and Grid Computing (CCGrid), 2015 15th IEEE/ACM International Symposium on',1,'T. Baker; M. Mackay; A. Shaheed; B. Aldawsari','ieee/service oriented architecture security.csv','ieee',''),(1587,'A Cyber Mission Impact assessment tool','2015','','business process modeling; cyber effects; impact assessment; mission assurance; mission impact; simulation','The promise of practicing mission assurance is to be able to leverage an understanding of how mission objectives and outcomes are dependent on supporting cyber resources. This makes it possible to analyze, monitor, and manage your cyber resources in a mission context. In previous work, we demonstrated how process modeling tools can simulate mission systems to allow us to dynamically compute the mission impacts of cyber events. We demonstrated the value of using this approach, but unfortunately practical deployment of our work was hampered by limitations of existing commercial off-the-shelf (COTS) tools for process modeling. To address this deficiency, we have developed our own Cyber Mission Impact Business Process Modeling tool. Although it implements only a functional subset of the business process modeling notation (BPMN), it has, unlike the more generic COTS tools, been specifically designed for the representation of cyber processes, resources, and cyber incident effects. The method and tool are described in this paper. © 2015 IEEE.','',2,'Musman S., Temin A.','scopus/bpmn security.csv','scopus',''),(1588,'ISORC 2012 [front cover]','2012','0','','The following topics are dealt with: distributed real-time systems; dependable computing; secure computing; timing analysis; component-based architectures; service-oriented architectures; multicore platforms; configuration and adaptation; formal validation and formal verification.','2012 IEEE 15th International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing',1,'','ieee/service oriented architecture security.csv','ieee','\0'),(1589,'The Evolution of Jolie','2015','0','','Abstract Jolie is an orchestration language conceived during Sensoria , an FP7 European project led by Martin Wirsing in the time frame 2005–2010. Jolie was designed having in mind both the novel –at project time– concepts related to Service-Oriented Computing and the traditional approach to the modelling of concurrency typical of process calculi. The foundational work done around Jolie during Sensoria has subsequently produced many concrete results. In this paper we focus on two distinct advancements, one aiming at the development of dynamically adaptable orchestrated systems and one focusing on global choreographic specifications. These works, more recently, contributed to the realisation of a framework for programming dynamically evolvable distributed Service-Oriented applications that are correct-by-construction.','',2,'Ivan LaneseFabrizio MontesiGianluigi Zavattaro','springer/bpel security.csv','springer',''),(1590,'Automatic belief network modeling via policy inference for SDN fault localization','2016','0',' SDN Belief network Policy Fault localization','Abstract Fault localization for SDN becomes one of the most critical but difficult tasks. Existing tools typically only address a specific part of the problem (e.g., control plane verification, flow checker). In this paper, we propose a new approach to tackle SDN fault localization by automatically Modeling via Policy Inference (called MPI ) the causality between SDN faults and their symptoms to a belief network. In the MPI system, a service oriented high level policy language is used to specify network services provisioned between end nodes. MPI parses each service provisioning policy to a logical policy view, which consists of a pair of logical end nodes, a traffic pattern specification, and a list of required network functions (or a service function chain). An SDN controller takes the policies from multiple parties and provisions the requested services on its orchestrated SDN network. MPI queries the controller about the network topology and retrieves flow rules from all SDN switches. MPI maps the policy view to the corresponding implementation view, in which all the logical components in the policy view are mapped to the actual system components along with the actual network topology. Referring to the component causality graph templates derived from SDN reference model, the implementation view of the current running network services can be modeled as a belief network. A heuristic fault reasoning algorithm is adopted to search for the most likely root causes. MPI has been evaluated in both a simulation environment and a real network system for its accuracy and efficiency. The evaluation shows that MPI is a highly scalable, effective and flexible modeling approach to tackle fault localization challenges in a highly dynamic and agile SDN network.','Journal of Internet Services and Applications',1,'Yongning TangGuang ChengZhiwei XuFeng ChenKhalid ElmansorYangxuan Wu','springer/webservice security.csv','springer',''),(1591,'A feasibility study of SOA-enabled networked rock bolts','2014','','','The use of rock bolts in the mining industry is a widely used approach for increasing mine stability. However, when compared to the automation industry, where the use of sensors and real-time monitoring of processes have evolved rapidly, the use rock bolts have not changed a lot during the last 100 years. What is missing are technologies for keeping installed rock bolts under real-time and online monitoring. One problem is that rock bolts can become damaged by seismic activities or movements within the rock, and thus lose their load bearing capacity. If that happens, the outer shell of a tunnel\'s walls or ceiling can collapse, with disaster as a result. Therefore, there is a clear need for online and real-time monitoring solutions for strain and thereby stress, as well as seismic activity. In this paper, the current state of art in research around intelligent rock bolts is presented. An intelligent rock bolt is the combination of a traditional rock bolt with an Internet of Things device, i.e. a rock bolt with embedded sensors, actuators, processing capabilities and wireless communication. In the proposed architecture, every rock bolt has its own IPv6 address and can establish a wireless mesh network in an ad-hoc manner. By measuring strain and seismic activity and exposing the sensors in the form of services, large gains in terms of safety and efficiently can be achieved. A number of mining related activities such as stress on the rock bolt can be detected, falling rocks and the presence of mobile machinery can be observed. Since the network is based on standard communication protocols such as IPv6, it is vital to add security mechanisms to prevent eavesdropping and tampering of data traffic. By utilizing the real-time monitoring capabilities of a network of Internet-connected intelligent rock bolt, it is possible to drastically improve monitoring of mining activities and thereby providing workers with a safer working environment. © 2014 IEEE.','',1,'Eliasson J., Pereira P.P., Mäkitaavola H., Delsing J., Nilsson J., Gebart J.','scopus/soa security.csv','scopus','\0'),(1592,'Automated Resource Assignment in BPMN Models Using RACI Matrices','2012','2',' Responsibility management RACI matrix RACI-aware BPMN model RASCI sub-process RASCI meta model','Abstract Organizations need to manage the responsibility of their employees with respect to all the activities that are daily carried out within them. Process-oriented organizations need to do it, in addition, in accordance to the business processes their members participate in. However, powerful mechanisms to manage responsibility in combination with business processes are missing in current modelling notations, usually limited to indicating who is in charge of undertaking the activities. RACI matrices, on the contrary, were specifically conceived to provide responsibility management information. They enable the specification of the level of responsibility each human resource has with regard to each activity carried out in a company, ranging from the performer of the work to the resource that must approve it or receive certain notifications. In this paper, we propose the use of RACI matrices together with business process models to manage human resource responsibilities in processes. Focused on a concrete type of RACI matrices, called RASCI, we introduce a novel approach to automatically generate a BPMN model with RASCI information given a BPMN model that does not handle resources, and a RASCI matrix. The resulting model is BPMN-compliant and, thus, it is ready to be executed in existing business process management systems. With this approach, the assignment of responsibilities and the management of processes can be designed separately, while being executed together.','',2,'Cristina CabanillasManuel ResinasAntonio Ruiz-Cortés','springer/bpel security.csv','springer','\0'),(1593,'A privacy preserving method using privacy enhancing techniques for location based services','2013','6','location tracking; privacy enhancing methods; security','The move towards service-oriented architectures and the increasing usage of mobile devices to access such services are two of the major changes in modern computing. Information about the user, their location and their trajectory can provide additional context information to a service, leading to useful applications such as directing a user to the nearest bus stop and displaying which buses are due to arrive in the next minutes. While this type of information can be useful, when the offered services are trusted, it also introduces privacy issues relating to gathering of location information for non-trusted applications like location-based marketing or user behaviour profiling. Users can limit their location information provided to a service but these controls are simple, making it important for the user to understand how their location information is being used by services. This paper reviews some of the methods currently being proposed to reduce the impact of location tracking on user privacy, and presents a novel encryption method for preserving the location and trajectory path of a user using Privacy-Enhancing Technologies. © 2012 Springer Science+Business Media, LLC.','',1,'Buchanan W.J., Kwecka Z., Ekonomou E.','scopus/service oriented architecture security.csv','scopus','\0'),(1594,'Aligning Service-Oriented Architectures with Security Requirements','2012','1',' SOA alignment evolution security requirements','Abstract Aligning requirements and architectures is a long-standing concern in software engineering. Alignment is crucial in the area of systems evolution, wherein requirements and system architectures keep changing after system deployment. We address a specific alignment problem, namely, checking the compliance of a service-oriented architecture—representing a composite service—with security requirements. Service-oriented architectures are dynamic (services can be replaced on-the-fly), and assessing compliance with security requirements is key, since non-compliance may lead to sanctions as well as privacy violation. After motivating and describing the problem, we propose algorithms to check two specific security requirements: non-disclosure and non-repudiation. We illustrate the approach using an e-government scenario.','',2,'Mattia SalnitriFabiano DalpiazPaolo Giorgini','springer/bpel security.csv','springer','\0'),(1595,'Operationalizing Data Governance via Multi-level Metadata Management','2015','0',' Data warehouses Data governance Metadata Business rule enforcement','Abstract Today’s rapidly changing and highly regulated business environments demand that organizations are agile in their decision making and data handling. At the same time, transparency in the decision making processes and in how they are adjusted is of critical importance as well. Our research focusses on obtaining transparency by not only documenting but also enforcing data governance policies and their resultant business and data rules by using a multi-level metadata approach. The multi-level approach makes a separation between different concerns: policy formulation, rule specification and enforcement. This separation does not only give more agility but also allows many different implementation architectures. The main types are described and evaluated.','',1,'Stefhan van HelvoirtHans Weigand','springer/service oriented architecture security.csv','springer',''),(1596,'Riding Out the Storm: How to Deal with the Complexity of Grid and Cloud Management','2012','4',' Grid computing Cloud computing Autonomic computing Theoretical models','Abstract Over the last decade, Grid computing paved the way for a new level of large scale distributed systems. This infrastructure made it possible to securely and reliably take advantage of widely separated computational resources that are part of several different organizations. Resources can be incorporated to the Grid, building a theoretical virtual supercomputer. In time, cloud computing emerged as a new type of large scale distributed system, inheriting and expanding the expertise and knowledge that have been obtained so far. Some of the main characteristics of Grids naturally evolved into clouds, others were modified and adapted and others were simply discarded or postponed. Regardless of these technical specifics, both Grids and clouds together can be considered as one of the most important advances in large scale distributed computing of the past ten years; however, this step in distributed computing has came along with a completely new level of complexity. Grid and cloud management mechanisms play a key role, and correct analysis and understanding of the system behavior are needed. Large scale distributed systems must be able to self-manage, incorporating autonomic features capable of controlling and optimizing all resources and services. Traditional distributed computing management mechanisms analyze each resource separately and adjust specific parameters of each one of them. When trying to adapt the same procedures to Grid and cloud computing, the vast complexity of these systems can make this task extremely complicated. But large scale distributed systems complexity could only be a matter of perspective. It could be possible to understand the Grid or cloud behavior as a single entity, instead of a set of resources. This abstraction could provide a different understanding of the system, describing large scale behavior and global events that probably would not be detected analyzing each resource separately. In this work we define a theoretical framework that combines both ideas, multiple resources and single entity, to develop large scale distributed systems management techniques aimed at system performance optimization, increased dependability and Quality of Service (QoS). The resulting synergy could be the key to address the most important difficulties of Grid and cloud management.','Journal of Grid Computing',1,'Jesús MontesAlberto SánchezMaría S. Pérez','springer/soa security.csv','springer','\0'),(1597,'A Decade of Business Process Management Conferences: Personal Reflections on a Developing Discipline','2012','4','','Abstract The Business Process Management (BPM) conference series celebrates its tenth anniversary. This is a nice opportunity to reflect on a decade of BPM research. This paper describes the history of the conference series, enumerates twenty typical BPM use cases, and identifies six key BPM concerns: process modeling languages, process enactment infrastructures, process model analysis, process mining, process flexibility, and process reuse. Although BPM matured as a research discipline, there are still various important open problems. Moreover, despite the broad interest in BPM, the adoption of state-of-the-art results by software vendors, consultants, and end-users leaves much to be desired. Hence, the BPM discipline should not shy away from the key challenges and set clear targets for the next decade.','',2,'Wil M. P. van der Aalst','springer/bpel security.csv','springer','\0'),(1598,'Top-K Graph Pattern Matching: A Twig Query Approach','2012','2','','Abstract There exist many graph-based applications including bioinformatics, social science, link analysis, citation analysis, and collaborative work. All need to deal with a large data graph. Given a large data graph, in this paper, we study finding top- k answers for a graph query, and in particular, we focus on top- k cyclic graph queries where a graph query is cyclic and can be complex. The capability of supporting top- k cyclic graph queries over a data graph provides much more flexibility for a user to search graphs. And the problem itself is challenging. After investigating a direct yet infeasible solution, we propose a new twig query approach. In our approach, we first identify a spanning tree of the cyclic graph query, which is used to generate a list of ranked twig answers on-demand. Then we identify the top- k answers for the graph query based on the twig answer list. In order to find the best twig query in solving a given cyclic graph query, cost-based optimization for twig query selection is studied. We conducted extensive performance studies using a real dataset, and we report our findings in this paper.','',2,'Xianggang ZengJiefeng ChengJeffrey Xu YuShengzhong Feng','springer/bpel security.csv','springer','\0'),(1599,'Genericity for model management operations','2013','3',' Model management Genericity Reusability Epsilon Eclipse Modelling Framework','Abstract Models are the core assets in model-driven engineering, and are therefore subject to all kind of manipulations, such as refactorings, animations, transformations into other languages, comparisons and merging. This set of model-related activities is known as model management . Even though many languages and approaches have been proposed for model management, most of them are type-centric, specific to concrete meta-models, and hence leading to specifications with a low level of abstraction and difficult to be reused in practice. In this paper, we introduce ideas from generic programming into model management to raise the level of abstraction of the specifications of model manipulations and facilitate their reuse. In particular we adopt generic meta-model concepts as an intermediate, abstract meta-model over which model management specifications are defined. Such meta-model concepts are mapped to concrete meta-models, so that specifications can be applied to families of meta-models satisfying the concept requirements. As a proof of concept, we show the implementation of these ideas using the Eclipse Modeling Framework and the Epsilon family of languages for model management.','Software & Systems Modeling',2,'Louis RoseEsther GuerraJuan de LaraAnne EtienDimitris KolovosRichard Paige','springer/bpmn security.csv','springer','\0'),(1600,'Contractual proximity of business services','2015','','Goal modeling; Outsourcing; Quality of service; Service composition; Service contract; Service engineering; Serviceability','Business services arguably play a central role in service-based information systems as they would fill in the gap between the technicality of Service-Oriented Architecture and the business aspects captured in Enterprise Architecture. Business services have distinctive features that are not typically observed in Web services, e.g. significant portions of the functionality of business services might be executed in a humanmediated fashion. The representation of business services requires that we view human activity and human-mediated functionality through the lens of computing and systems engineering. Given the specification of a relatively complex business service, practitioners can deal with its complexity either by breaking it down into constituent services through common practices such as outsourcing or delegation, or by picking up an existing group of services (e.g. from a service catalog) that best realize that functionality. To address these challenges, we devise a formal machinery to (averify if a group of services contractually match the specification of the larger service in question; (b) to assess the contractual proximity of service groups relative to a contractual service specification to help decide which combination of services from a catalog best realize the desired functionality. Keywords: © Springer International Publishing Switzerland 2015.','',1,'Lê L.-S.','scopus/service oriented architecture security.csv','scopus','\0'),(1601,'BPMN security extensions for healthcare process','2015','','BPMN; Healthcare; Internet of things; Security requirement','The modelling of healthcare process is inherently complicated due to its multi-disciplinary character. Business Process Model and Notation (BPMN) has been considered and applied to model and demonstrate the flexibility and variability of the activities that involved in healthcare process. However, with the growing usage of digital information and IoT technology in the healthcare system, the issue of information security and privacy becomes the main concern in term of both store and management of electronic health record (EHR). Therefore, it is very important to capture the security requirements at conceptual level in order to identify the security needs in the first place. BPMN is lacking of the ability to model and present security concepts such as confidentiality, integrity, and availability in a suitable way. This will increase the vulnerability of the system and make the future development of security for the system more difficult. In this paper we provide a solution to model the security concepts in BPMN by extending it with new designed security elements, which can be integrated with the BPMN diagram smoothly. © 2015 IEEE.','',2,'Sang K.S., Zhou B.','scopus/bpmn security.csv','scopus','\0'),(1602,'Towards a Built-In Digital Forensics-Aware Framework for Web Services','2015','','Admissibility;Digital forensics;Evidence;SABSA;Web services','In this paper, we consider digital forensics in the context of Web services based infrastructures. We propose a built in forensics aware framework called (Fi4SOA). Fi4SOA uses Sherwood Applied Business Security (SABSA) methodology to merge forensics properties with business requirements at service design phase, and a reasoning machine over a new proposed ontology to define forensics properties and monitor forensics events at run time phase.','2015 11th International Conference on Computational Intelligence and Security (CIS)',1,'A. Akremi; H. Sallay; M. Rouached; M. F. Sriti; M. Abid; R. Bouaziz','ieee/service oriented architecture security.csv','ieee',''),(1603,'A Stateful Web Service Firewall for BPEL','2007','4','','Today, the Business Process Execution Language (BPEL) is the most emerging specification for Web Service Composition, which is an important part of the SOA paradigm. Defining a stateful communication protocol, BPEL enables potential for new security vulnerabilities. In this paper, we present a severe Denial-of-Service attack on a leading BPEL engine, illustrating new threats on availability in the context of BPEL. Derived from our observations, we developed a protection concept and implemented an application level firewall fending these types of attacks.','IEEE International Conference on Web Services (ICWS 2007)',2,'N. Gruschka; M. Jensen; N. Luttenberger','ieee/bpel security.csv','ieee','\0'),(1604,'Business Processes and Standard Operating Procedures: Two Coins with Similar Sides','2013','0',' Process Management Business Processes Standard Operating Procedures Emergency Management','Abstract Concepts and tools for process management have often been transferred to emergency management projects. The driving objective has been to bring assistance to planning procedures and quality assurance. This seems rather natural, since idea and concept of business processes and standard operating procedures appear like siblings. In this paper we discuss whether the concepts of process modelling are adequate for managing standard operating procedures and whether emergency management organisations can capitalize on off-the-shelf business process modelling tools to prepare for disasters more effectively. This paper presents ample evidence that prevailing business process means are inappropriate for emergency management in light of organisational as well as technology issues. In a nutshell, business process concepts are utilized as a “golden hammer” in many emergency management projects, a suitable tool for all purposes. Yet, the question rises whether emergency management issues are always fitting nails.','',2,'Gertraud PeinelThomas Rose','springer/bpmn security.csv','springer','\0'),(1605,'Web Stream Reasoning: From Data Streams to Actionable Knowledge','2015','1',' Stream reasoning Continuous query processing Quality of information Logic programming Semantic web Inductive logic reasoning','Abstract A fast growing torrent of data is being created by companies, social networks, mobile phones, smart homes, public transport vehicles, healthcare devices, and other modern infrastructures. Being able to unlock the potential hidden in this torrent of data would open unprecedented opportunities to improve our daily lives that were not possible before. Advances in the Internet of Things (IoT), Semantic Web and Linked Data research and standardization have already established formats and technologies for representing, sharing and re-using (dynamic) knowledge on the Web. However, transforming data into actionable knowledge requires to cater for (i) automatic mechanisms to discover and integrate heterogeneous data streams on the fly and extract patterns for applications to use, (ii) concepts and algorithms for context and quality-aware integration of semantic data streams, and (iii) the ability to synthesize domain-driven commonsense knowledge (and answers derived from it) with expressive inference that can capture decision analytics in a scalable way. In the first part of this lecture we will characterize the main approaches to stream processing for the Web of Data, showing how data quality and context can guide semantic integration. In the second part of this lecture we will focus on rule-based Web Stream Reasoning and illustrate how scalability and uncertainty issues can be addressed in a rule-based approach. We will discuss new challenges and opportunities in Web Stream Reasoning, briefly considering economical and societal impact in real application scenarios in a smart city context, and we will conclude by providing a brief overview of ongoing research and standardization activities in this area.','',1,'Alessandra Mileo','springer/service oriented architecture security.csv','springer',''),(1606,'On the realizability of collaborative services','2013','1',' Service composition Compositional specification of collaborations Realizability of distributed implementations Distributed system design Design guidelines Deriving component behavior from global specifications Workflow for collaborations UML activity diagrams Service oriented architecture','Abstract This paper considers compositional specifications of services using UML 2 collaborations, activity and interaction diagrams, and addresses the realizability problem for such specifications: given a global specification, can we construct a set of communicating system components whose joint behavior is precisely the specified global behavior? We approach the problem by looking at how the sequencing of collaborations and local actions may be described using UML activity diagrams. We identify the realizability problems for each of the sequencing operators, such as strong and weak sequence, choice of alternatives, loops, and concurrency. The nature of these realizability problems and possible solutions are discussed. This brings a new look at already known problems: we show that given some conditions, certain problems can already be detected at an abstract level, without looking at the detailed interactions of the collaborations, provided that we know the components that initiate and terminate the different collaborations.','Software & Systems Modeling',2,'Humberto Nicolás CastejónGregor von BochmannRolv Bræk','springer/bpel security.csv','springer','\0'),(1607,'Contract RBAC in cloud computing','2013','4',' RBAC Datacenter Cloud computing Contract Contract RBAC','Abstract Cloud computing is a fast growing field, which is arguably a new computing paradigm. In cloud computing, computing resources are provided as services over the Internet and users can access resources based on their payments. The issue of access control is an important security scheme in the cloud computing. In this paper, a Contract RBAC model with continuous services for user to access various source services provided by different providers is proposed. The Contract RBAC model extending from the well-known RBAC model in cloud computing is shown. The extending definitions in the model could increase the ability to meet new challenges. The Contract RBAC model can provide continuous services with more flexible management in security to meet the application requirements including Intra-cross cloud service and Inter-cross cloud service. Finally, the performance analyses between the traditional manner and the scheme are given. Therefore, the proposed Contract RBAC model can achieve more efficient management for cloud computing environments.','The Journal of Supercomputing',1,'Hsing-Chung (Jack) ChenMarsha Anjanette ViolettaCheng-Ying Yang','springer/soa security.csv','springer','\0'),(1608,'Multi-layer Architecture For Storing Visual Data Based on WCF and Microsoft SQL Server Database','2015','0',' WCF Microsoft SQL server Dependency injection Inversion of control Entity framework Multi-layer architecture k -means SURF Content-based image retrieval','Abstract In this paper we present a novel architecture for storing visual data. Effective storing, browsing and searching collections of images is one of the most important challenges of computer science. The design of architecture for storing such data requires a set of tools and frameworks such as SQL database management systems and service-oriented frameworks. The proposed solution is based on a multi-layer architecture, which allows to replace any component without recompilation of other components. The approach contains five components, i.e. Model, Base Engine, Concrete Engine, CBIR service and Presentation. They were based on two well-known design patterns: Dependency Injection and Inverse of Control. For experimental purposes we implemented the SURF local interest point detector as a feature extractor and K -means clustering as indexer. The presented architecture is intended for content-based retrieval systems simulation purposes as well as for real-world CBIR tasks.','',1,'Rafał GrycukMarcin GabryelRafał SchererSviatoslav Voloshynovskiy','springer/service oriented architecture security.csv','springer',''),(1609,'A Study of Security Requirements Negotiation','2014','0','game theory;service computing;service level agreement;system security','In service computing, a system is integrated by using the services of many service providers. The security of the services that constitutes the system affects the security of the integrated system. This paper studied the issues relating to security requirements of an integrated system using a game theoretical approach. It modeled a class of service computing applications as a security game. Using the game, the service providers and the system owners can analyse the security level and the security investment of the system. Using the results of the analysis, the system owners and the service providers can be more objective in their service level agreement negotiation.','Dependable, Autonomic and Secure Computing (DASC), 2014 IEEE 12th International Conference on',1,'X. Ye','ieee/service oriented architecture security.csv','ieee','\0'),(1610,'Deployment of Service-Based Processes in the Cloud Using Petri Net Decomposition','2014','0',' Service deployment Business processes Cloud Computing Petri Net','Abstract Cloud Computing is a new distributed computing paradigm that consist in provisioning of infrastructure, software and platform resources as services. Platform services are limited to proprietary or specific programming frameworks and APIs. This issue is not adequate for the deployment of service-based processes which are likely to be composed of a diverse and heterogeneous set of services. In this paper, we propose a new approach to provision appropriate platform resources in order to deploy service-based processes in existing Cloud platforms. Our approach consists in slicing a given process to deploy into a set of elementary services through a Petri net decomposition approach. Source codes of obtained services are generated. After that, the services are packaged in our already developed service micro-containers and deployed in any target PaaS. For the slicing, we defined algorithms to slice their correspondent Petri net into a set of dependent WF-nets and to determine the orchestration to follow for their execution. We also provided the proof of preservation of initial business process semantics when executing the WF-nets. To illustrate and show the feasibility of our proposition, we provide a realistic use case scenario, i.e. Shop process deployment in Cloud Foundry PaaS.','',2,'Sami YanguiKais KlaiSamir Tata','springer/bpel security.csv','springer',''),(1611,'Balanced multi-perspective checking of process conformance','2016','3',' Process mining Data Petri nets Multi-perspective conformance checking Log-process alignment Mathematics Subject Classification 68U35','Abstract Organizations maintain process models that describe or prescribe how cases (e.g., orders) are handled. However, reality may not agree with what is modeled. Conformance checking techniques reveal and diagnose differences between the behavior that is modeled and what is observed. Existing conformance checking approaches tend to focus on the control-flow in a process, while abstracting from data dependencies, resource assignments, and time constraints. Even in those situations when other perspectives are considered, the control-flow is aligned first, i.e., priority is given to this perspective. Data dependencies, resource assignments, and time constraints are only considered as “second-class citizens”, which may lead to misleading conformance diagnostics. For example, a data attribute may provide strong evidence that the wrong activity was executed. Existing techniques will still diagnose the data-flow as deviating, whereas our approach will indeed point out that the control-flow is deviating. In this paper, a novel algorithm is proposed that balances the deviations with respect to all these perspectives based on a customizable cost function. Evaluations using both synthetic and real data sets show that a multi-perspective approach is indeed feasible and may help to circumvent misleading results as generated by classical single-perspective or staged approaches.','Computing',2,'Felix MannhardtMassimiliano de LeoniHajo A. ReijersWil M. P. van der Aalst','springer/bpmn security.csv','springer',''),(1612,'Remote display solution for video surveillance in multimedia cloud','2015','1',' Remote display Video encoding Multimedia cloud Real-time system','Abstract Cloud computing offers sufficient computing and storage resources that can be used to provide multimedia services. Migrating the existing multimedia service to cloud brings a new challenging issue, i.e., remote display of video contents. To reduce the bandwidth consumption especially for mobile users, it is desired to encode video before sending to client. Existing encoding methods have unique advantages and disadvantages, differing their performance under varying situations. Thus, we propose to use multi-encoder method to solve the real-time remote display problem for remote multimedia cloud. To select the most appropriate encoder, factors including cost, application requirement, network, client device and codec implementation are considered. In this paper, we form a non-linear programming model, and provide an example to illustrate how to apply the proposed model for getting desired optimization.','Multimedia Tools and Applications',1,'Biao SongMohammad Mehedi HassanYuan TianM. Shamim HossainAtif Alamri','springer/service oriented architecture security.csv','springer',''),(1613,'Cyber-physical-social-thinking space based science and technology framework for the Internet of Things','2015','0',' Internet of Things (IoT) cyber-physical-social-thinking science technology discipline 关键词 物联网 信息-物理-社会-思维融合空间 科学 技术 学科 031102','Abstract The Internet of Things (IoT) as an emerging network paradigm is bringing the next scientific and technological revolution for ubiquitous things’ interactions in cyber-physical-social spaces. The IoT influences the current science and technology system by enabling its relatively stable interrelations for an inevitable architecture reconfiguration. In this paper, we aim to explore an updated science and technology framework for the IoT. Particularly, a novel cyber-physical-social-thinking (CPST) space is established by involving an attractive concept of the Internet of Thinking (IoTk), and a science and technology framework is accordingly proposed referring to both scientific aspect (i.e., cyber-physical, social, and noetic sciences) and technological aspect (i.e., fundamental, physical, cyber, and social technologies). According to the perspective of the traditional Chinese culture, we explain the established science and technology framework, in which the “Five Elements” (i.e., wood, fire, earth, metal, and water) have common properties with the restructured cyber-physical science in the IoT. Moreover, we introduce a scenario of smart city to identify the technological aspect in the IoT, and discuss the key enabling technologies, including resource management, energy management, data management, session management, security and privacy, loop control, space-time consistency, nanotechnology, and quantum technology. It turns out that the established science and technology framework will launch an innovation for academia and industry communities.','Science China Information Sciences',1,'HuanSheng NingHong Liu','springer/soa security.csv','springer',''),(1614,'A situational method for semi-automated Enterprise Architecture Documentation','2016','3',' Enterprise Architecture Documentation Maintenance Model Automation Situational method','Abstract The business capabilities of modern enterprises crucially rely on the enterprises’ information systems and underlying IT infrastructure. Hence, optimization of the business-IT alignment is a key objective of Enterprise Architecture Management (EAM). To achieve this objective, EAM creates, maintains and analyzes a model of the current state of the Enterprise Architecture. This model covers different concepts reflecting both the business and the IT perspective and has to be constantly maintained in response to ongoing transformations of the enterprise. In practice, EA models grow large and are difficult to maintain, since many stakeholders from various backgrounds have to contribute architecture-relevant information. EAM literature and two practitioner surveys conducted by the authors indicate that EA model maintenance, in particular the manual documentation activities, poses one of the biggest challenges to EAM in practice. Current research approaches target the automation of the EA documentation based on specific data sources. These approaches, as our systematic literature review showed, do not consider enterprise specificity of the documentation context or the variability of the data sources from organization to organization. The approach presented in this article specifically accounts for these factors and presents a situational method for EA documentation. It builds on four process-supported documentation techniques which can be selected, composed and applied to design an organization-specific documentation process. The techniques build on a meta-model for EA documentation, which is implemented in an EA-repository prototype that supports the configuration and execution of the documentation techniques. We applied our documentation method assembly process at a German insurance company and report the findings from this case study in particular regarding practical applicability and usability of our approach.','Software & Systems Modeling',2,'Matthias FarwickChristian M. SchwedaRuth BreuInge Hanschke','springer/bpmn security.csv','springer',''),(1615,'Using model transformation to refactor use case models based on antipatterns','2016','0',' Use cases Antipatterns Model transformation Refactoring UML Use case modeling quality attributes','Abstract Use Case modeling is a popular technique for documenting functional requirements of software systems. Refactoring is the process of enhancing the structure of a software artifact without changing its intended behavior. Refactoring, which was first introduced for source code, has been extended for use case models. Antipatterns are low quality solutions to commonly occurring design problems. The presence of antipatterns in a use case model is likely to propagate defects to other software artifacts. Therefore, detection and refactoring of antipatterns in use case models is crucial for ensuring the overall quality of a software system. Model transformation can greatly ease several software development activities including model refactoring. In this paper, a model transformation approach is proposed for improving the quality of use case models. Model transformations which can detect antipattern instances in a given use case model, and refactor them appropriately are defined and implemented. The practicability of the approach is demonstrated by applying it on a case study that pertains to biodiversity database system. The results show that model transformations can efficiently improve quality of use case models by saving time and effort.','Information Systems Frontiers',1,'Yasser A. KhanMohamed El-Attar','springer/service oriented architecture security.csv','springer',''),(1616,'Web platforms for scientific research','2016','0','','Abstract This paper considers current trends in creating systems for convenient and secure remote submission (by authorized users) of jobs to computing resources of different types, including supercomputers, clusters, cloud resources, storages, databases, and grid infrastructures. Presently, large computing and storage resources are capable of solving, on their own, the majority of practical problems in the field of science and technology. Therefore, the focus in developing next-generation middleware shifts from global grid systems towards creating convenient and efficient means of access to large individual resources. A web platform for remote access to computing resources is a set of special web services and application-oriented web interfaces. Such web platforms, on a centralized basis, provide users with a number of services interrelated by a specific application area, principle of access, and interface. In this paper, general principles of creating such platforms are considered and some particular implementations of web platforms are briefly described.','Programming and Computer Software',1,'A. P. KryukovA. P. DemichevS. P. Polyakov','springer/soa security.csv','springer',''),(1617,'Challenges and assessment in migrating IT legacy applications to the cloud','2015','','Cloud computing; cloud migration; cloud modeling; interoperability; portability; service-centric engineering; service-oriented architecture; service-oriented computing; vendor Lock-in','The incessant trend where software engineers need to redesign legacy systems adopting a service-centric engineering approach brings new challenges for software architects and developers. Today, engineering and deploying software as a service requires specific Internet protocols, middleware and languages that often complicate the interoperability of software at all levels. Moreover, cloud computing demands stringent quality requirements, such as security, scalability, and interoperability among others, to provide services and data across networks more efficiently. As software engineers must face the problem to redesign and redeploy systems as services, we explore in this paper the challenges found during the migration of an existing system to a cloud solution and based on a set of quality requirements that includes the vendor Lock-in factor. We also present a set of assessment activities and guidelines to support migration to the Cloud by adopting SOA and Cloud modeling standards and tools. © 2015 IEEE.','',1,'Scandurra P., Psaila G., Capilla R., Mirandola R.','scopus/service oriented architecture security.csv','scopus',''),(1618,'Framework Design of Natural Disasters and Emergency Management System Oriented to Region','2013','0','Disaster emergency;SOA;System integration;Web service','Currently, spatial information technology and emergency management technology are widely used in the 10th Division of the Xinjiang Production and Construction Corps (XPCC), China. In this paper, emergency management system architecture based on Web services and service-oriented architecture (SOA), which is oriented to several kinds of natural disasters and emergent public security events are proposed. By analyzing data characteristics and functional requirements of several kinds of disaster monitoring and evaluation system, we design the logical structure and architecture of emergency response platform oriented to natural disasters and emergent public safety events, and present the system operating mode and emergency resources scheduling mechanism based on service-oriented architecture. Based on the development framework of ESRI products, we provide all kinds of business systems integration solutions, which validated the model system and gave one region-oriented instance of multi-disaster emergency management system design and implementation.','Geo-Information Technologies for Natural Disaster Management (GiT4NDM), 2013 Fifth International Conference on',1,'Q. Z. Zhao; X. R. Zheng; W. Li; C. J. Wang; X. F. Zhang','ieee/service oriented architecture security.csv','ieee','\0'),(1619,'Technology research of publish service with reliable property','2014','','Reliable properties; Service publish; Trustworthy normal formats; Web service','In order to guarantee the reliability of services composition, the author puts forward a few Trustworthy Normal Formats, through the model specification SOA reliability design. This article focuses on the core algorithm to implement these Trustworthy Normal Formats and the validation method of the reliability attributes of service. Finally, release verified service. So that the publishing service has reliable property, provides the security services. © 2014 WIT Press.','',1,'Sun J., Luo N.N., Shen N.','scopus/soa security.csv','scopus','\0'),(1620,'A Framework to Monitor Cloud Infrastructure in Service Oriented Approach','2013','1','Cloud;Intrusion Detection;Monitoring;Services','Cloud computing processes and stores the organization\'s sensitive data in the third party infrastructure. Monitoring these activities within the cloud environment is a major task for the security analysts and the cloud consumer. The cloud service providers may voluntarily suppress the security threats detected in their Infrastructure from the consumers. The goal is to decouple Intrusion Detection System (IDS) related logic from individual application business logic and adhere to the Service Oriented Architecture Standards. This paper provides a framework for Intrusion Detection and reporting service to the cloud consumers based on the type of applications and their necessary security needs. Cloud consumers can choose the desired signatures from this framework to protect their applications. The proposed technique is deployed in existing open source cloud environment with minimum changes. A proof-of-concept prototype has been implemented based on Eucalyptus open source packages to show the feasibility of this approach. Our results show that this framework provides effective way to monitor the cloud infrastructure in service oriented approach.','Advances in Computing and Communications (ICACC), 2013 Third International Conference on',1,'J. P. Veigas; K. C. Sekaran','ieee/service oriented architecture security.csv','ieee','\0'),(1621,'The Converged Service Oriented Architecture in Smart Home Service','2012','1','converged service oriented architecture (CSOA);smart grid;smart home service','Smart home has become a popular application all over the world. However, the service to interact with smart grid, and the service to guide residents utilize power, are ignored. In this paper, we propose an effective converged service oriented architecture (CSOA) to give a solution for supplying a converged service in smart homes. This architecture not only supports diversified service integrated with smart power consumption service and bi-directional interaction service but supports converged communication service. The architecture is evaluated in practice, and the initial result shows that converged service makes life more comfortable, healthy and energy efficient.','Cyber-Enabled Distributed Computing and Knowledge Discovery (CyberC), 2012 International Conference on',1,'S. Ma; X. Chen; G. Song; J. Wang; L. Sun; J. Yan','ieee/service oriented architecture security.csv','ieee','\0'),(1622,'Understanding the Cloud: The Social Implications of Cloud Computing and the Need for Accountability','2015','0',' Cloud computing Accountability Public understanding','Abstract Five years ago, cloud computing was one of the top emerging new technologies, nowadays it is almost common place. This rapid introduction of cloud business models in our society coincides with critical questions on the cloud’s risks, such as security and privacy. Moreover, there seems to be an increased demand for accountable behaviour in the cloud. This paper explores how society understands the cloud, its related risks and the need for accountability in the cloud. This exploration provides insight in the social implications of cloud and future Internet services and the way cloud and accountability tools will be adopted in society.','',1,'Maartje G. H. NiezenWouter M. P. Steijn','springer/service oriented architecture security.csv','springer',''),(1623,'Persuasive software design patterns for social influence','2014','8',' Software patterns Persuasive systems design Social influence Behavior change support systems Persuasive technology','Abstract This article describes software design techniques for social influence as software design patterns, instantiating social influence features defined in the persuasive systems design (PSD) model. The article draws on literature from PSD, social psychology and software patterns to derive the social influence patterns, which are then implemented in a conceptual system. This paves the way for an important research track within persuasive systems research. The ultimate aim of these persuasive software patterns was to develop generalizable techniques that could aid the development of social support features in any persuasive system.','Personal and Ubiquitous Computing',1,'Michael OduorTuomas AlahäiväläHarri Oinas-Kukkonen','springer/soa security.csv','springer','\0'),(1624,'Realization of a data traceability and recovery service for a trusted authority service co-ordination within a Cloud environment','2015','0','','Abstract Data traceability and recovery are very important concerns when moving data to the Cloud. The Enhanced Watermarking Approach for Data Integrity and Non-repudiation in Rational Databases (EWRDN) provides data security means as integrity, secrecy, non-repudiation and privacy using data watermarking and compression techniques. These capabilities may enhance the whole security and trust of service providers. It gives the data owners the ability to monitor and recover data, if required. Co-ordinations between different services for data storage, manipulation and retrieval over the Cloud represents the milestone in composing the Database as a Service. Until now and to the best of our knowledge, such a service is not yet realized in a real Cloud environment. In this article, a realization for a proposed EWRDN service with data traceability capabilities is elaborated with the required performance analysis which is the main contribution of this work. A Trusted Authority service co-ordination to operate the proposed service is introduced as well. The results have shown that, the proposed service co-ordination can provide the data traceability features and stands against most of the experienced data security threats through the experiments. Moreover, EWRDN service as a differentiated quality service has been proven to provide two different data compression qualities. It has been shown that within an EWRDN co-ordination, a fixed recovery ratio of compression has been achieved.','Soft Computing',1,'Nour ZawawiMohamed HamdyR. GharyM. F. Tolba','springer/service oriented architecture security.csv','springer',''),(1625,'A systematic process for obtaining the behavior of context-sensitive systems','2016','0',' Context-sensitive systems Behavior Statechart Goal models Requirements Derivation GO2S','Abstract Background Context-sensitive systems use contextual information in order to adapt to the user’s current needs or requirements failure. Therefore, they need to dynamically adapt their behavior. It is of paramount importance to specify and analyze the intended behavior of these systems before they are fully implemented. The behavioral specification can be used for requirements validation in order to check if these systems will be able to achieve their goals. Moreover, the reasoning about properties of these systems, such as deadlocks, reachability, completeness and correctness of the system, can be supported. Therefore, it is of paramount importance to have an approach to specify the dynamic behavior of the context-sensitive systems. In this work, we propose the GO2S (GOals to Statecharts) process to systematically derive the behavior of context-sensitive systems, expressed as statecharts, from requirements models, described as goal models. Results The GO2S process addresses the specification of the tasks required for monitoring of requirements satisfaction as well as the system adaptation according to the context, the operationalization of non-functional requirements and prioritization of alternatives to be used at runtime (variants). It is an iterative process centered on the incremental refinement of a goal model, obtaining different views of the system (design, contextual, behavioral). Furthermore, we conducted a controlled experiment to evaluate the statecharts produced following GO2S process (experimental group) in relation to the ones elaborated in ad-hoc fashion (control group). Conclusions The experiment results showed that the structural complexity of the statecharts of the experimental group was lower in relation to the control group. Moreover, the average of functionalities whose behavior was modeled according to the specification and the time spent to produce the models of the experimental group were higher in relation to the control group. Besides, the subjects agreed that the GO2S process is easy to use.','Journal of Software Engineering Research and Development',2,'Jéssyka VilelaJaelson CastroJoão Pimentel','springer/bpmn security.csv','springer',''),(1626,'A Tool to Support the Collection of User Preferences and Device Characteristics to Enable UI Adaptability in Web 2.0 Applications','2014','0','','Abstract We present in this paper a tool that supports the collection of user preferences within the set of components developed in the i2web project to enable UI adaptability of web 2.0 applications. The tool (called Model Management System, MMS) is based upon a semantic web modelling framework to describe user preferences and device capabilities, combined with state-of-the-art models of web applications. This work builds upon previous efforts of the authors [1] leveraged with the use of the semantic framework Composite Capability/Preference Profiles (CC/PP [2]). The MMS gathers information on user preferences and supports user and application providers in discovering the characteristics of the device utilized by the user when accessing the application.','',1,'Philip AckermannCarlos A. VelascoEvangelos Vlachogiannis','springer/service oriented architecture security.csv','springer','\0'),(1627,'Design of a Domain-Specific Language Based on a Technology-Independent Web Service Framework','2015','0',' Domain-specific languages Code generation Service-oriented architectures Web services','Abstract Nowadays web services gain more and more importance in allowing a standardized access to remote information without being tied to a specific form of presentation. The majority of such data interfaces is either based on the architectural REST style following World Wide Web specifications or the more protocol-oriented SOAP, which allows the definition of XML transfer structures. In this paper we introduce an extensible framework for the abstraction of technological differences between service technologies like REST and SOAP. It provides the basis for the design of a domain-specific language (DSL), which allows the technology-independent declaration of web services. A code generator derived from the DSL grammar translates the service declarations into corresponding framework elements and creates stub methods for the implementation of the services’ business logic.','',1,'Florian RademacherMartin PetersSabine Sachweh','springer/service oriented architecture security.csv','springer',''),(1628,'An architecture for data security in cloud computing','2014','4','Cloud computing; data privacy; data security; symmetric cryptography; virtualization','Cloud computing is a more flexible, cost effective and proven delivery platform for providing business or consumer services over the Internet. Cloud computing supports distributed service oriented architecture, multi-user and multi-domain administrative infrastructure. So, it is more prone to security threats and vulnerabilities. At present, a major concern in cloud adoption is towards its security and privacy. Security and privacy issues are of great concern to cloud service providers who are actually hosting the services. In most cases, the provider must guarantee that their infrastructure is secure and clients\' data and applications are safe, by implementing security policies and mechanisms. The security issues are organized into several general categories: trust, identity management, software isolation, data protection, availability reliability, ownership, data backup, data portability and conversion, multi platform support and intellectual property. In this paper, it is discuss about some of the techniques that were implemented to protect data and propose architecture to protect data in cloud. This architecture was developed to store data in cloud in encrypted data format using cryptography technique which is based on block cipher. © 2014 IEEE.','',1,'Sugumaran M., Murugan B.B., Kamalraj D.','scopus/service oriented architecture security.csv','scopus','\0'),(1629,'A formal model for the interoperability of service clouds','2012','4',' Service cloud Abstract state service Service-oriented computing Service mediation Service ontology','Abstract Large-scale service-oriented computing is based on the idea that services from various servers are combined into one distributed application. Referring to a collection of services on one server as a “service cloud”, the problem investigated in this paper is to define formal high-level specifications of such distributed applications and to enable the location of suitable services for them. Based on the language-independent model of Abstract State Services (AS 2 s), which serves as a universal integrated model for data and software as services, we extend AS 2 s by high-level action schemes called “plots” as a means to specify permitted sequences of service operations. On these grounds, we develop a model for service mediators, that is, specifications of composed services in which service slots have to be filled by actual services, and investigate matching conditions for slots of mediators and services. For a services to match a slot in a mediator, a (generalised) projection of the mediator must comply with the plot of the service. Furthermore, the service must be semantically adequate, which requires the use of a service ontology.','Service Oriented Computing and Applications',1,'Hui MaKlaus-Dieter ScheweBernhard ThalheimQing Wang','springer/soa security.csv','springer','\0'),(1630,'Choice-Based Authentication: A Usable-Security Approach','2014','0','','Abstract Authentication is an important security component of almost any software application. It serves as the application’s security front door by controlling access with the goal of protecting the confidentiality and integrity of the system. However, with the large variety of software applications that an end user interacts with daily, authentication is becoming a usability issue that has the potential to weaken a system’s overall security. The increasing complexity of dealing with a variety of authentication mechanisms often causes end users to develop negative security behaviours, such as writing down passwords. Moreover, some of the currently available authentication mechanisms, such as alphanumeric passwords, raise universal access issues due to both the issue of remembering a complex sequence of characters and the difficulty some individuals may have in entering that exact sequence on a keyboard or mobile device. This article proposes an authentication approach that seeks to address these usability, universal access, and security issues.','',1,'Yasser M. HausawiWilliam H. AllenGisela Susanne Bahr','springer/service oriented architecture security.csv','springer','\0'),(1631,'Security Policy Monitoring of Composite Services','2014','0',' monitoring secure service composition security policy complex event processing SOA BPMN','Abstract One important challenge the Aniketos platform has to address is the effective monitoring of services at runtime to ensure that services behave as promised. A service developer plays the role that is responsible for constructing service compositions and the service provider is responsible for offering them to consumers of the Aniketos platform. Typically, service consumers will have different needs and requirements; they have varying business goals and different expectations from a service, for example in terms of functionality, quality of service and security needs. Given this, it is important to ensure that a service should deliver for which it has been selected and should match the consumer’s expectations. If it fails, the system should take appropriate subsequent reactions, e.g., notifications to the service consumer or service designer. In this chapter, we present the policy-driven monitoring framework which is developed as part of the Aniketos project. The monitoring framework allows different user-specified policies to be monitored simultaneously. The monitoring is performed at the business level, as well as at the implementation level, which allows for checking the policies of composite services as well as atomic ones. The framework sends an alarm in case of policy violation to notify the interested parties and triggers re-composition or re-configuration of the service.','',2,'Muhammad AsimArtsiom YautsiukhinAchim D. BruckerBrett LempereurQi Shi','springer/bpmn security.csv','springer',''),(1632,'Penetration Testing Tool for Web Services Security','2012','10','Penetration Testing Tool;SOAP-based Web services;SOAPAction spoofing;WS-Addressing spoofing;WS-Security','XML-based SOAP Web Services are a widely used technology, which allows the users to execute remote operations and transport arbitrary data. It is currently adapted in Service Oriented Architectures, cloud interfaces, management of federated identities, eGovernment, or millitary services. The wide adoption of this technology has resulted in an emergence of numerous - mostly complex - extension specifications. Naturally, this has been followed by a rise in large number of Web Services attacks. They range from specific Denial of Service attacks to attacks breaking interfaces of cloud providers [1], [2] or confidentiality of encrypted messages [3]. By implementing common web applications, the developers evaluate the security of their systems by applying different penetration testing tools. However, in comparison to the wellknown attacks as SQL injection or Cross Site Scripting, there exist no penetration testing tools for Web Services specific attacks. This was the motivation for developing the first automated penetration testing tool for Web Services called WS-Attacker. In this paper we give an overview of our design decisions and provide evaluation of four Web Services frameworks and their resistance against WS-Addressing spoofing and SOAPAction spoofing attacks.','2012 IEEE Eighth World Congress on Services',1,'C. Mainka; J. Somorovsky; J. Schwenk','ieee/service oriented architecture security.csv','ieee',''),(1633,'Dynamic composition of web services based on event driven approach in SOA','2014','','B2B; Composition; Ontology; OWL; OWL-S; QoS; SOA','Dynamic Composition of Web services is a Key research in the arena of E-commerce. Enterprise applications are developed as a service provider in the web, some of the challenges we are faced by web services are most likely related to composition of services, security and Quality of Services (QoS). Within these challenges, composition of web service turns out to be a big arena of research, because it supports the integration and Interoperability of B2B applications or enterprise application or E-commerce application. Pragmatically dynamic composition of semantic web services specifies better results compared to the traditional method of discovering candidate services for composition. In this study we present the degree of matching and selection of web services are considered as a salient feature to the dynamic composition of web services. © Maxwell Scientific Organization, 2014.','',1,'Ashok Kumar P.S., Kaarthick B., Gopal Krishna C.','scopus/soa security.csv','scopus','\0'),(1634,'On selective-opening attacks against encryption schemes','2014','2','','At FOCS’99, Dwork et al. put forth the notion of ‘selective- -opening attacks’ (SOAs, for short). In the literature, security against such attacks has been formalized via indistinguishability-based and simulation-based notions, respectively called IND-SO-CPA security and SIM-SO-CPA security. Furthermore, the IND-SO-CPA notion has been studied under two flavors – weak-IND-SO-CPA and full-IND-SO-CPA security. At Eurocrypt’09, Bellare et al. showed the first positive results on SOA security of encryption schemes: 1) any lossy encryption scheme is weak-IND-SO-CPA secure; 2) any lossy encryption scheme with efficient openability is SIM-SO--CPA secure. Despite rich further work on SOA security, the (un)feasibility of full--IND-SO-CPA remains a major open problem in the area of SOA security. The elusive nature of the full-IND-SO-CPA notion of security is attributed to a specific aspect of the security game, namely, the challenger requiring to perform a super-polynomial time task. Not only do we not know whether there exists a scheme that is full-IND-SO-CPA secure, but we also do not know concrete attacks against popular schemes such as the ElGamal and Cramer-Shoup schemes in the full-IND-SO-CPA model. The contribution of our work is three-fold. 1. Motivated by the difficulty in understanding (un)feasibility of the full-IND-SO-CPA notion, we study a variant of this notion that is closer in spirit to the IND-CPA notion but still embodies the security captured by the full-IND-SO-CPA notion. We observe that the weak form of our variation does not introduce any significant change to the weak-IND-SO-CPA notion; that is, the weak form of our notion is equivalent to the weak-IND-SO-CPA notion. 2. Interestingly, we can show that a large class of encryption schemes can be proven insecure for the full form of our notion. The large class includes most known constructions of weak-IND-SO-CPA secure schemes and SIM-SO-CPA secure schemes and also popular schemes like the ElGamal and Cramer-Shoup schemes. 3. Our third contribution studies the complexity of SIM-SO-CPA security. Complementing the result of Bellare et al., we show that lossiness is not necessary to achieve SIM-SO-CPA security. More specifically, we present a SIM-SO-CPA scheme that is not a lossy encryption scheme (regardless of efficient open ability). Since SIM-SO-CPA security implies weak-IND-SO-CPA security, it follows as a corollary that the converses of both the implications proved by Bellare et al. do not hold. Furthermore, as a corollary of our techniques, on a slightly unrelated but useful note, we obtain that lossiness is not required to obtain non-committing encryption. Previously, at Eurocrypt’09, Fehr et al. showed a construction of a non-committing encryption scheme from trapdoor permutations and this scheme was, as noted by the authors, possibly not lossy. Our scheme amounts to the first construction of a non-committing encryption scheme that is provably not lossy. © Springer International Publishing Switzerland 2014.','',1,'Ostrovsky R., Rao V., Visconti I.','scopus/soa security.csv','scopus','\0'),(1635,'Context-aware dissemination of information and services in heterogeneous network environments','2014','4',' Context-awareness Context similarity Data dissemination Fuzzy MADM pervasive computing Service platform Quality of Information','Abstract The Internet of Things and the advent of cloud computing promotes a global scale Machine-to-Machine (M2M) communication. Dissemination of information and advertising services to the targeted nodes is an important aspect in the performance of the future large scale network systems. With the contextual information inferred from available information, delivery of services can be performed in a more efficient way. Context-awareness is a key ingredient in any ubiquitous and pervasive system and provides intelligence to the system, allowing computing devices make appropriate and timely decisions on behalf of users. Semantic support for M2M communication can be enhanced if it leverages the available information and contextual data. In this paper we present a methodology for a context-aware publish-subscribe based approach to dissemination of information and services and a service selection method which is based on the idea of utilizing network information as services that is delivered via application programming interfaces. We propose a fuzzy MADM method and a context similarity measure. The proposed method of information dissemination is based on mining the value of a node based on information inferred from the contextual information of the node and contextually similar nodes. We take into account the quality of contextual information in aggregating contextual information from different sources.','Journal of Ambient Intelligence and Humanized Computing',1,'Peyman TalebiFardVictor C. M. Leung','springer/soa security.csv','springer','\0'),(1636,'Bluetooth in Intelligent Transportation Systems: A Survey','2015','2',' Bluetooth sensing Traffic monitoring Intelligent transportation systems','Abstract The rise of Bluetooth-equipped devices in personal consumer electronics and in in-car systems has revealed the potential to develop Bluetooth sensor systems for applications in intelligent transportation systems. These applications may include measurements of traffic presence, density, and flow, as well as longitudinal and comparative traffic analysis. A basic Bluetooth sensor system for traffic monitoring consists of a Bluetooth probe device (s) that scans for other Bluetooth-enabled device (s) within its radio proximity, and then stores the data for future analysis and use. The scanned devices are typically on-board vehicular electronics and consumer devices carried by the driver and/or passengers which use Bluetooth communications, and which then reasonably proxy for the vehicle itself. This paper surveys the scope and evolution of these systems, with system attributes and design decisions illustrated via a reference design. The work provides motivation for continued development of non-invasive systems that leverage the existing communication infrastructure and consumer devices that incorporate short range communication technology like Bluetooth.','International Journal of Intelligent Transportation Systems Research',1,'M. R. FriesenR. D. McLeod','springer/service oriented architecture security.csv','springer',''),(1637,'Platform-level Support for Authorization in Cloud Services with OAuth 2','2014','1','Authorization;Cloud;OAuth 2;Platform as a Service;Security','The OAuth 2 web authorization framework allows services to act on behalf of users when interacting with other services. It avoids sharing username and passwords across services, thus, in principle protecting users from several threats. However, it is known that the implementation of this kind of authorization protocol is tricky, and potentially leads to vulnerable web services. In this paper we present a toolkit for Java-based Cloud platforms which facilitates the deployment of the OAuth 2 authorization framework into existing web services. We developed a set of interceptors, using aspect-oriented programming techniques for SOA, to handle the main OAuth flow. Secondly, we created an Eclipse plug-in to integrate OAuth into cloud services with minimum effort.','Cloud Engineering (IC2E), 2014 IEEE International Conference on',1,'J. Sendor; Y. Lehmann; G. Serme; A. Santana de Oliveira','ieee/soa security.csv','ieee','\0'),(1638,'Managing license compliance in free and open source software development','2012','1',' License compliance Free and open source software Compliance management Rights expression languages Compatibility analysis','Abstract License compliance in Free and Open Source Software development is a significant issue today and organizations using free and open source software are predominately focusing on this issue. The non-compliance to licenses in free and open source software development leads to the loss of reputation and the high costs of litigation for organizations. Towards an automated compliance management, we use the Open Digital Rights Language to implement the clauses of open source software licenses in a machine interpretable way and propose a novel algorithm that analyzes compatibility between free and open source software licenses. Also, we describe a framework that inductively manages compliance of license clauses in a free and open source software development. We simulate and evaluate the formalized license compliance management by analyzing a real-time open source software project GRASS.','Information Systems Frontiers',1,'G. R. GangadharanVincenzo D’AndreaStefano De PaoliMichael Weiss','springer/service oriented architecture security.csv','springer','\0'),(1639,'SOA-enabled compliance management: instrumenting, assessing, and analyzing service-based business processes','2013','3',' Service-based compliance governance Compliance assessment Signaling instrumentation Key indicators Root cause analysis Reporting dashboard','Abstract Facilitating compliance management, that is, assisting a company’s management in conforming to laws, regulations, standards, contracts, and policies, is a hot but non-trivial task. The service-oriented architecture (SOA) has evolved traditional, manual business practices into modern, service-based IT practices that ease part of the problem: the systematic definition and execution of business processes. This, in turn, facilitates the online monitoring of system behaviors and the enforcement of allowed behaviors—all ingredients that can be used to assist compliance management on the fly during process execution. In this paper, instead of focusing on monitoring and runtime enforcement of rules or constraints, we strive for an alternative approach to compliance management in SOAs that aims at assessing and improving compliance. We propose two ingredients: (i) a model and tool to design compliant service-based processes and to instrument them in order to generate evidence of how they are executed and (ii) a reporting and analysis suite to create awareness of a company’s compliance state and to enable understanding why and where compliance violations have occurred. Together, these ingredients result in an approach that is close to how the real stakeholders—compliance experts and auditors—actually assess the state of compliance in practice and that is less intrusive than enforcing compliance.','Service Oriented Computing and Applications',1,'Carlos RodríguezDaniel SchleicherFlorian DanielFabio CasatiFrank LeymannSebastian Wagner','springer/soa security.csv','springer','\0'),(1640,'Wireless Sensor Networks and Service-oriented Architecture, As Suitable Approaches to Be Applied into ITS','2012','0','ITS, SOA, WSN, intelligent transportation systems, navigation, parking systems, service-oriented architecture, web services, wireless sensors networks','In this paper, Wireless Sensor Networks (WSN) and Service-Oriented Architecture (SOA) approaches are analyzed given that represent both emerging and key role for Intelligent Transportations Systems (ITS). However, It is worth noting that WSN and SOA approaches have begun to be applied into ITS separately and day by day these approaches tend to be combined to get the best outcomes for both safety and security for ITS applications. For this reason, a discussion of the principals ITS applications of these two approaches and a case study, that has been designed and implemented to illustrate their advantages, are presented. The case study is focused on support a very useful ITS service associated with the localization of parking spaces.','',1,'Luis Felipe Herrera-Quintero and Francisco Maciá-Pérez and Diego Marcos-Jorquera and Virgilio Gilart-Iglesias','acm/service oriented architecture security.csv','acm','\0'),(1641,'Problems of Data Protection in Industrial Corporations Enterprise Architecture','2015','0','architectural model of management, enterprise architecture, industrial corporation, information infrastructure, information security architecture, service-oriented architecture','The paper investigates and analyzes problems of data protection in industrial corporations at all stages of the life cycle of its architecture. The basic risks and threats of information security are shown up, covering all layers of the enterprise architecture, which must be taken into account when building the security architecture. Also those threats of information security are investigated which are difficult to prevent through a variety of means and methods of special protection.','',1,'V. V. Glukhov and I. V. Ilin and A. B. Anisiforov','acm/service oriented architecture security.csv','acm','\0'),(1642,'The Internet of Things—A survey of topics and trends','2015','23',' Internet of Things IoT Survey Machine to machine Ubiquitous Ambient Context-aware','Abstract The Internet of Things is a paradigm where everyday objects can be equipped with identifying, sensing, networking and processing capabilities that will allow them to communicate with one another and with other devices and services over the Internet to accomplish some objective. Ultimately, IoT devices will be ubiquitous, context-aware and will enable ambient intelligence. This article reports on the current state of research on the Internet of Things by examining the literature, identifying current trends, describing challenges that threaten IoT diffusion, presenting open research questions and future directions and compiling a comprehensive reference list to assist researchers.','Information Systems Frontiers',1,'Andrew WhitmoreAnurag AgarwalLi Da Xu','springer/service oriented architecture security.csv','springer',''),(1643,'Service Creation and Self-management Mechanisms for Mobile Cloud Computing','2013','2',' service components ubiquitous services self-management','Abstract Today, service providers need to develop competitive applications for a quick time-to-market to attract and retain end users. To facilitate the task of developers, we introduce a reference Service Creation Environment based on service component and self-management mechanisms. This environment uses a fairly high integration level using meta-modeling techniques and exchange formats: Meta-Object Facility (MOF), Extensible Markup Language (XML), OVF ++ (Open Virtualization Format). Our approach allows developers to design the basic service components based on Quality of Service (QoS), to build the service by composition, and to manage a mobile session by ubiquitous services and the Virtual Service Community.','',1,'Tatiana AubonnetNoëmie Simoni','springer/service oriented architecture security.csv','springer','\0'),(1644,'A BPMN based secure workflow model','2009','','Authorization; BPMN; Secure workflow; Secure workflow model','Secure workflow has become an important topic in both academia and industry. A secure workflow model can be used to analyze workflow systems according to specific security policies. This model is needed to allow controlled access of data objects, secure execution of tasks, and efficient management and administration of security. In this paper, I propose a BPMN-based secure workflow model to manage specific processes such as authorizations in executing tasks and accessing documents. The secure workflow model is constructed using BPMN-elements. The model is hierarchical and describes a secure workflow system at workflow layer, task layer and data layer. This model ensures the security properties of workflows: integrity, authorization and availability. Moreover, the model is easily readable and understandable.','',2,'Li P.','scopus/bpmn security.csv','scopus','\0'),(1645,'Contextualised Security Operation Deployment Through MDS@run.time Architecture','2015','0','','Abstract The fast development of Cloud-based services and applications have a significant impact on Service Oriented Computing as it provides an efficient support to share data and processes. The de-perimeterised vision involved by these Intelligent Service Clouds lead to new security challenges: providing a consistent protection depending on the business environment conditions and on the deployment platform specific threats and vulnerabilities. To fit this context aware protection deployment challenge, we propose a MDS@run.time architecture, coupling Model Driven Security (MDS) and Models@run.time approaches. By this way, security policies (that can be generated via a MDS process) are interpreted at runtime by a security mediator depending on the context. This proposition is illustrated thanks to a proof of concept prototype plugged on top of the FraSCAti middleware.','',2,'Wendpanga Francis OuedraogoFrédérique BiennierPhilippe Merle','springer/bpmn security.csv','springer',''),(1646,'CIRUS: an elastic cloud-based framework for Ubilytics','2016','0',' Big data analytics Cloud computing Elasticity Internet of Things Middleware Ubilytics','Abstract The Internet of Things (IoT) has become a reality with the availability of chatty embedded devices. The huge amount of data generated by things must be analysed with models and technologies of the “Big Data Analytics”, deployed on cloud platforms. The CIRUS project aims to deliver a generic and elastic cloud-based framework for Ubilytics (ubiquitous big data analytics). The CIRUS framework collects and analyses IoT data for Machine to Machine services using Component-off-the-Shelves (COTS) such as IoT gateways, Message brokers or Message-as-a-Service providers and big data analytics platforms deployed and reconfigured dynamically with Roboconf. In this paper, we demonstrate and evaluate the genericity and elasticity of CIRUS with the deployment of a Ubilytics use case using a real dataset based on records originating from a practical source.','Annals of Telecommunications',1,'Linh Manh PhamAhmed El-RheddaneDidier DonsezNoel de Palma','springer/soa security.csv','springer',''),(1647,'An analysis of security issues for cloud computing','2013','42',' Cloud computing Security SPI model Vulnerabilities Threats Countermeasures','Abstract Cloud Computing is a flexible, cost-effective, and proven delivery platform for providing business or consumer IT services over the Internet. However, cloud Computing presents an added level of risk because essential services are often outsourced to a third party, which makes it harder to maintain data security and privacy, support data and service availability, and demonstrate compliance. Cloud Computing leverages many technologies (SOA, virtualization, Web 2.0); it also inherits their security issues, which we discuss here, identifying the main vulnerabilities in this kind of systems and the most important threats found in the literature related to Cloud Computing and its environment as well as to identify and relate vulnerabilities and threats with possible solutions.','Journal of Internet Services and Applications',1,'Keiko HashizumeDavid G RosadoEduardo Fernández-MedinaEduardo B Fernandez','springer/service oriented architecture security.csv','springer',''),(1648,'Formal Analysis of a Privacy-Preserving Billing Protocol','2013','0',' Privacy Smart Meters Billing Protocol Formal Analysis','Abstract We provide a formal model and a security analysis of the Private Billing Protocol. This formal analysis allowed us to spell out precisely the details of the protocol, the security assumptions as well as the expected security goals. For the formal analysis we used SATMC, a model checker for security protocol analysis that supports the specification of security assumptions and goals as LTL formulae. Further analysis that we conducted manually revealed that the protocol allows for implementations that fail to meet the expected privacy goal. We describe the implications of our findings and discuss how the problem can be avoided.','',1,'Alessandro ArmandoRoberto CarboneAlessio Merlo','springer/service oriented architecture security.csv','springer','\0'),(1649,'A novel, algorithm metadata-aware architecture for biometric systems','2012','0','biometrics architecture;fusion;metadata','Biometric systems have gained tremendous ground over the past years formulating an advancing market and a wide range of challenging technological research fields. Among the main drivers of this context are the promising capabilities of biometric systems for identification and identity verification purposes through a multitude of means (such as iris, face, gait, etc) as well as their profiling potential. From the technological perspective, a wide range of sensors and a wealth of algorithms for feature extraction, pattern recognition and multilevel fusion have been developed, with the evaluation of biometric systems, however, still indicating that required reliability levels and large scale deployment still remain challenging. The main objective of this paper is to present a novel process flow and a resulting advanced architecture for biometric systems which follows the key principles of Service Oriented Architectures (SOA) and allows for system adaptability and scalability; two major requirements for large-scale deployment of such systems. Within this context, a set of new and enhanced components required for the realization of this approach is presented.','Biometric Measurements and Systems for Security and Medical Applications (BIOMS), 2012 IEEE Workshop on',1,'V. Andronikou; S. Xefteris; T. Varvarigou','ieee/service oriented architecture security.csv','ieee','\0'),(1650,'Servitization of manufacturing industries based on cloud-based business model and the down-to-earth implementary path','2014','1',' Servitization of manufacturing industries Cloud-based manufacturing business model Service-oriented manufacturing Cloud manufacturing Down-to-earth path Enabling technologies','Abstract Servitization of manufacturing industries (SMI) is emerging as a new trend all around the world, especially in major manufacturing nations, e.g., USA, Germany, and China, which is believed to be able to upgrade the industry chains and improve the economy. Almost simultaneously, cloud manufacturing (CM) is being generally debated within the academic field as a new manufacturing paradigm. However, little attention was paid to implementing SMI based on cloud-based business model. This paper aims to discuss the ways to make SMI possible through cloud-based manufacturing business model (CMBM) and relevant enabling technologies including CM. Specifically, this paper (1) presents the key elements that motivate SMI and the full definition of SMI; (2) proposes a description of CMBM matching up with the execution of SMI; (3) provides some constructive advices, namely the down-to-earth path, with technology aspects included for the government and enterprises to carry out SMI based on CMBM; and (4) offers a case study related to successful SMI based on CMBM.','The International Journal of Advanced Manufacturing Technology',1,'Xianhe WenXiaojun Zhou','springer/soa security.csv','springer','\0'),(1651,'Blocking probability in optical interconnects in data center networks','2015','1',' Blocking probability Optical interconnects Data center networks','Abstract Cloud computing and Web-based applications are creating a need for powerful data centers. Data centers have a great need for high bandwidth, low latency, low blocking probability, and low bit-error rate to sustain the interaction between different applications. Current data center networks (DCNs) suffer from several problems such as high-energy consumption, high latency, fixed throughput of links, and limited reconfigurability. Electronic switches are low radix and have high latency due to a large hop count since each hop employs a store-and-forward mechanism. Optical interconnects, on the other hand, offer several advantages such as low-energy consumption, high bandwidth, reconfigurability, malleability to changing traffic, high-radix switch design, fast switching transition times, and wavelength multiplexing. These benefits provide the incentive to shift from electrical interconnects to optical interconnects in DCNs. Despite several advantages over their electrical counterparts, the performance of optical interconnects can be further improved by considering some performance parameters of optical interconnects. One such important parameter for the performance of any communication network is the blocking probability. This paper makes a comprehensive investigation of the performance of optical interconnects in different DCN architectures on the basis of blocking probability and concludes by suggesting ways to reduce the blocking.','Photonic Network Communications',1,'Mohsin FayyazKhurram AzizGhulam Mujtaba','springer/soa security.csv','springer',''),(1652,'Acoustic environment identification using unsupervised learning','2014','1','','Abstract Acoustic environment leaves its characteristic signature in the audio recording captured in it. The acoustic environment signature can be modeled using acoustic reverberations and background noise. Acoustic reverberation depends on the geometry and composition of the recording location. The proposed scheme uses similarity in the estimated acoustic signature for acoustic environment identification (AEI). We describe a parametric model to realize acoustic reverberation, and a statistical framework based on maximum likelihood estimation is used to estimate the model parameters. The density-based clustering is used for automatic AEI using estimated acoustic parameters. Performance of the proposed framework is evaluated for two data sets consisting of hand-clapping and speech recordings made in a diverse set of acoustic environments using three microphones. Impact of the microphone type variation, frequency, and clustering accuracy and efficiency on the performance of the proposed method is investigated. Performance of the proposed method is also compared with the existing state-of-the-art (SoA) for AEI.','Security Informatics',1,'Hafiz MalikHasan Mahmood','springer/soa security.csv','springer','\0'),(1653,'Harnessing heterogeneous computational infrastructures for studying metallurgical rolling processes','2014','0','','The paper describes the application of heterogeneous computational infrastructures to study complex metallurgical processes. This goal is achieved by integration of a domain-oriented system (VirtRoll) with a platform for massive parameter studies (Scalarm) on the basis of Service Oriented Architecture (SOA). In particular, technological and security aspects of the integration and permissions delegation are discussed. We describe: a workflow of studying metallurgical processes with the parameter study approach, the domain-oriented system for conducting metallurgical experiments, its integration with the platform for parameter studies along with its enhancements, a sample use of the developed solution and its potential business benefits.','eChallenges e-2014 Conference Proceedings',1,'D. Król; R. SłOta; Ł Rauch; J. Kitowski; M. Pietrzyk','ieee/service oriented architecture security.csv','ieee','\0'),(1654,'Dioptase: a distributed data streaming middleware for the future web of things','2014','0',' Data stream management system Internet of things Streaming Middleware','Abstract The Internet of Things (IoT) is a promising concept toward pervasive computing as it may radically change the way people interact with the physical world, by connecting sensors to the Internet and, at a higher level, to the Web, thereby enacting a Web of Things (WoT). One of the challenges raised by the WoT is the in-network continuous processing of data streams presented by Things, which must be investigated urgently because it affects the future data models of the IoT, and is critical regarding the scalability and the sustainability required by the IoT. This cross-cutting concern has been previously studied in the context of Wireless Sensor Networks (WSN) given the focus on the acquisition and in-network processing of sensed data. However, proposed solutions feature various proprietary and highly specialized technologies that are difficult to integrate and complex to use, which represents a hurdle to their wide deployment. At the other end of the spectrum, cloud-based solutions introduce a too high energy cost for the envisioned IoT scale, considering the energy cost of communication over computation. There is thus a need for a distributed middleware solution for data stream management that leverages existing WSN work, while integrating it with today’s Web technologies in order to support the required flexibility and the interoperability of the IoT. Toward that goal, this paper introduces Dioptase , a lightweight Data Stream Management System for the WoT, which aims to integrate the Things and their streams into today’s Web by presenting sensors and actuators as Web services. The middleware specifically provides a way to describe complex fully-distributed stream-based mashups and to deploy them dynamically, at any time, as task graphs, over available Things of the network, including resource-constrained ones.','Journal of Internet Services and Applications',1,'Benjamin BilletValérie Issarny','springer/service oriented architecture security.csv','springer','\0'),(1655,'Evolution and Revolution in Knowledge-Driven Health IT: A 50-Year Perspective and a Look Ahead','2015','0','','Abstract In this keynote presentation, my intent is to explore the evolution of the field of computer-based clinical decision support (CDS) – and its associated tasks of knowledge acquisition, knowledge modeling, knowledge representation, knowledge management, and knowledge integration into care processes – over the past five decades. I believe that we are now in a period of significant disruption – both in the health care system itself and in the technology to support it. As a result of these disruptors, I am convinced that we will need to not only continue the efforts that have proved useful in the past but also to develop some new strategies to meet the new challenges.','',1,'Robert A. Greenes','springer/service oriented architecture security.csv','springer',''),(1656,'MockAPI: An Agile Approach Supporting API-first Web Application Development','2013','0',' API Model-Driven Development Agile Development Prototyping','Abstract In the last years, agile development methodologies have been widely adopted. However, they still lack support for API requirements while, at the same time, public RESTful APIs are fueling a rapid growth of web applications providing services built on other services. On the other hand, whereas Model-Driven Development techniques successfully increase the productivity in the development of data-intensive web applications, they lack the agility required when developing heterogeneous web applications with frequent requirement changes. In this paper we introduce MockAPI, an approach based on annotating user interface mockups that combines the advantages of agile approaches and Model-Driven Development. We introduce a metamodel for annotations and demonstrate how to derive running API prototypes as starting point for agile development. RESTful API best practices and API-first development are introduced into the agile process. The MockAPI approach defines a set of constraints to accelerate the development of web applications. We also show the results of a brief validation applying MockAPI to popular web sites.','',1,'José Matías RiveroSebastian HeilJulián GrigeraMartin GaedkeGustavo Rossi','springer/service oriented architecture security.csv','springer','\0'),(1657,'BTW 2013 – Zwischen wissenschaftlicher Geschichte und moderner Herausforderung','2013','0','','','Datenbank-Spektrum',1,'Veit KöppenMartin SchälerAlexander GrebhahnGunter Saake','springer/soa security.csv','springer','\0'),(1658,'Problems of data protection in industrial corporations enterprise architecture','2015','','Architectural model of management; Enterprise architecture; Industrial corporation; Information infrastructure; Information security architecture; Service-oriented architecture','The paper investigates and analyzes problems of data protection in industrial corporations at all stages of the life cycle of its ar-chitecture. The basic risks and threats of information security are shown up, covering all layers of the enterprise architecture, which must be taken into account when building the security architecture. Also those threats of information security are inves-tigated which are difficult to prevent through a variety of means and methods of special protection. © 2015 ACM.','',1,'Glukhov V.V., Ilin I.V., Anisiforov A.B.','scopus/service oriented architecture security.csv','scopus',''),(1659,'A generic model decomposition technique and its application to the Eclipse modeling framework','2015','0',' MDE EMF Model decomposition Model comprehension Linear-time algorithm Sub-model lattice OCL EssentialOCL BPMN fUML','Abstract Model-driven software development aims at easing the process of software development by using models as primary artifacts. Although less complex than the real systems, they are based on models tend to be complex nevertheless, thus making the task of handling them non-trivial in many cases. In this paper, we propose a generic model decomposition technique to facilitate model management by decomposing complex models into smaller sub-models that conform to the same metamodel as the original model. The technique is based upon a formal foundation that consists of a formal capturing of the concepts of models, metamodels, and model conformance; a formal constraint language based on EssentialOCL; and a set of formally proved properties of the technique. We organize the decomposed sub-models in a mathematical structure as a lattice, and design a linear-time algorithm for constructing this decomposition. The generic model decomposition technique is applied to the Eclipse modeling framework, and the result is used to build a solution to a specific model comprehension problem of Ecore models based upon model pruning. We report two case studies of the model comprehension method: one in BPMN and the other in fUML.','Software & Systems Modeling',2,'Qin MaPierre KelsenChristian Glodt','springer/bpmn security.csv','springer',''),(1660,'QRA: A Quality Requirements Analysis Approach for Service Systems','2013','0','qualitative reasoning;quality of service;quality requirements;quantitative reasoning;service-oriented systems','Although quality requirements (QRs) are considered as being of crucial importance in today\'s service-oriented systems, existing approaches almost exclusively deal with QRs from the service providers\' perspective (namely late QRs). The motivation for this paper is to address the analysis of QRs from the service customers\' perspective (namely early QRs). The work presented in this paper focuses on the way that early QRs may be modeled and evaluated and demonstrates this approach on a stock trading service system - a real-world practice taken from an international firm in the financial sector. We focus on three QRs that are critical to service systems and especially that of stock trading, namely performance, availability and security. We introduce a modeling paradigm that extends the well-known UML Activity Diagram by explicitly representing these three QRs as an integral part of business process modeling and augments this modeling with quantitative and qualitative reasoning that together provide the means for enhanced decision making by service customers.','Services Computing (SCC), 2013 IEEE International Conference on',1,'J. Sun; L. Zhao; P. Loucopoulos; B. Zhou','ieee/service oriented architecture security.csv','ieee','\0'),(1661,'43--50','2015','0','communications middleware, disaster recovery, network proxy, qos, tactical networks','Many important public services, such as security and public health, as well as the modern tactical military scenarios, rely on Service-oriented Architectures (SoAs) and commercial off-the-shelf (COTS) components to enable the quick development and deployment of distributed services to respond quickly, reduce costs, and ease system integration. However, SoAs make use of verbose networking technologies and require reliable and relatively high bandwidth communications. Tactical scenarios normally cannot rely on such infrastructure and events like natural disasters can severely damage the network infrastructure in rural and urban environments. Thus, there is a need to develop solutions that provide SoA-based application and services running on heterogeneous and often constrained devices that compose tactical and mobile ad-hoc networks with Quality of Service (QoS) levels that meet their requirements. This paper presents the QoS-enabling features and the gateway operational mode (GM) of ACM NetProxy, the network proxy component of a communications middleware specifically developed to support applications in challenged networks. GM allows nodes in an ad-hoc wireless network to be quickly organized and to shape outbound communications to reduce bandwidth consumption and provide QoS. Experimental results obtained during a test in a field demonstration event show its efficiency.','',1,'','acm/soa security.csv','acm',''),(1662,'A System Architecture for Heterogeneous Moving-Object Trajectory Metamodel Using Generic Sensors: Tracking Airport Security Case Study','2015','0','Moving-object database;space–time ontology;space–time path;space???time ontology;space???time path;spatial data engineering;trajectory data modeling;trajectory framework;trajectory metamodel;trajectory metamodel instantiation','This paper proposes a system architecture and case study for a heterogeneous moving-object trajectory metamodel using generic sensors. In order to provide a unified metamodel and powerful framework for trajectory\'s services and queries, the proposed trajectory\'s data model has benefited from advantages of both conceptual and ontological space-time. However, it extends the basic data model of trajectory with new patterns as the space-time path to describe activities of the moving object and the composite region of interest. Additionally, the proposed system is distinguished by providing a framework for dealing with moving-object trajectory in an interoperable way, using heterogonous sensors that traditional data model incapable for this purpose. The proposed system architecture for the moving-object trajectory\'s data model is focused on service composability and data interoperability combining Open Geospatial Consortium (OGC) standards, Service-Oriented Architecture, and streaming technology, to allow applications built using the framework to be scalable and have better performance. The case study presented for tracking travelers at the airport means that passenger locations can be determined with a higher degree of accuracy and precision. Indeed, this system makes it easy to answer complex queries, such as seeing closely where passengers congregate, how much time they spend in stores and restaurants, and where there may be bottlenecks. It will also enable airport retailers to communicate with travelers directly.','IEEE Systems Journal',1,'A. Boulmakoul; L. Karim; A. Elbouziri; A. Lbath','ieee/service oriented architecture security.csv','ieee',''),(1663,'Designing secure service workflows in BPEL','2014','','','This paper presents an approach that we have developed to support the design of secure service based applications in BPEL. The approach is based on the use of secure service composition patterns, which are proven to preserve composition level security properties if the services that are composed according to the pattern satisfy other properties individually. The secure service composition patterns are used for two purposes: (a) to analyse whether a given workflow fragment satisfies a given security property, and (b) to generate compositions of services that could substitute for individual services within the workflow that cause the violation of the security properties. Our approach has been implemented in a tool that is based on Eclipse BPEL Designer. © Springer-Verlag Berlin Heidelberg 2014.','',2,'Pino L., Mahbub K., Spanoudakis G.','scopus/bpel security.csv','scopus',''),(1664,'Is the cloud the future of computing?','2014','','','Cloud computing as a technology is difficult to define because it is evolving without a clear start point and no clear prediction of its future course. Even though this is the case, one can say that it is a continuous evolution of a computer network technology. It extends client-server technology that offers scalability, better utilization of hardware, on-demand applications and storage, and lower costs over the long run. It is done through the creation of virtual servers cloned from existing instances. The cloud technology seems to be in flux; hence, it may be one of the foundations of the next generation of computing. A grid of a few cloud infrastructures may provide computing for millions of users. Cloud computing technology consists of and rests on a number of sound, fundamental, and proven technologies. This includes virtualization, service-oriented architectures, distributed computing, and grid computing. Based on these fundamental and sound computing principles, one wonders whether cloud computing is the next trajectory of computing. This chapter discusses this in depth and also looks at the security issues involved. © 2015 by IGI Global. All rights reserved.','',1,'Kizza J.M., Yang L.','scopus/service oriented architecture security.csv','scopus','\0'),(1665,'Service oriented architecture - Collaborative educational framework','2013','','Modeler; Process choreography; Service oriented architecture','The Service orientation with the educational institutions is a boon to the existing conventional model. There are many advantages which can be measured under the parameters like reusability, resource sharing, time, cost etc. The implementation of SOA may also arise various security issues like privacy, availability etc. The study in this paper analyses and highlights the dynamics of SOA implementation. It is an empirical analysis which adopts a case study method to understand the implication issues of Service Oriented Architecture with the Educational Information system. © 2013 IEEE.','',1,'Kamatchi R.','scopus/service oriented architecture security.csv','scopus','\0'),(1666,'Energy Efficient Sleep Schedule with Service Coverage Guarantee in Wireless Sensor Networks','2016','0',' Wireless sensor network Service oriented architecture Energy efficiency Service coverage Sleep schedule','Abstract Service oriented architecture has been proposed to support collaborations among distributed wireless sensor network (WSN) applications in an open dynamic environment. However, WSN s are resource constraint, and have limited computation abilities, limited communication bandwidth and especially limited energy. Fortunately, sensor nodes in WSN s are usually deployed redundantly, which brings the opportunity to adopt a sleep schedule for balanced energy consumption to extend the network lifetime. Due to miniaturization and energy efficiency, one sensor node can integrate several sense units and support a variety of services. Traditional sleep schedule considers only the constraints from the sensor nodes, can be categorized to a one-layer (i.e., node layer) issue. The service oriented WSN s should resolve the energy optimization issue considering the two-layer constraints, i.e., the sensor nodes layer and service layer. Then, the one-layer energy optimization scheme in previous work is not applicable for service oriented WSN s. Hence, in this paper we propose a sleep schedule with a service coverage guarantee in WSN s. Firstly, by considering the redundancy degree on both the service level and the node level, we can get an accurate redundancy degree of one sensor node. Then, we can adopt fuzzy logic to integrate the redundancy degree, reliability and energy to get a sleep factor. Based on the sleep factor, we furthermore propose the sleep mechanism. The case study and simulation evaluations illustrate the capability of our proposed approach.','Journal of Network and Systems Management',1,'Bo ZhangEndong TongJie HaoWenjia NiuGang Li','springer/soa security.csv','springer',''),(1667,'Virtual machine introspection: towards bridging the semantic gap','2014','0',' Virtual machine introspection','Abstract Virtual machine introspection is a technique used to inspect and analyse the code running on a given virtual machine. Virtual machine introspection has gained considerable attention in the field of computer security research. In recent years, it has been applied in various areas, ranging from intrusion detection and malware analysis to complete cloud monitoring platforms. A survey of existing virtual machine introspection tools is necessary to address various possible research gaps and to focus on key features required for wide application of virtual machine introspection techniques. In this paper, we focus on the evolution of virtual machine introspection tools and their ability to address the semantic gap problem.','Journal of Cloud Computing',1,'Asit MoreShashikala Tapaswi','springer/service oriented architecture security.csv','springer','\0'),(1668,'Everything-as-a-service platform for on-demand virtual enterprises','2014','4',' Web based services Service oriented computing Virtual enterprises Dynamic collaborations Service oriented architectures Cloud computing','Abstract While constructing virtual enterprises, it is crucial to flexibly integrate heterogeneous business resources and processes of different business partners and make them collaborate dynamically. Keeping involved IT systems or components as autonomous and loose-coupled services, the “Everything as a Service” concept supports flexible integration of heterogeneous applications. We adopt this concept and analyze the challenges in virtual enterprise construction, then propose a service platform for on-demand virtual enterprises. The platform supports flexible integration of networked resources, and facilitates virtual enterprise construction with business process utility, trusted service composition and data service centric business collaborations. At the end of the paper, together with a case study, experimental evaluations in contexts of concurrent multi-users are presented, showing the effectiveness and performance of the platform.','Information Systems Frontiers',2,'Gang LiMingchuan Wei','springer/bpel security.csv','springer',''),(1669,'A Service-Oriented Architecture for Scientific Computing on Cloud Infrastructures','2013','0','','Abstract This paper describes a service-oriented architecture that eases the process of scientific application deployment and execution in IaaS Clouds, with a focus on High Throughput Computing applications. The system integrates i) a catalogue and repository of Virtual Machine Images, ii) an application deployment and configuration tool, iii) a meta-scheduler for job execution management and monitoring. The developed system significantly reduces the time required to port a scientific application to these computational environments. This is exemplified by a case study with a computationally intensive protein design application on both a private Cloud and a hybrid three-level infrastructure (Grid, private and public Cloud). Topics. Parallel and Distributed Computing.','',1,'Germán MoltóAmanda CalatravaVicente Hernández','springer/service oriented architecture security.csv','springer','\0'),(1670,'Designing Workflows for Grid Enabled Internet Instruments','2008','1','BPEL;Client Honey Pot;GEII;Workflow','To analyse malicious activity on the Internet, instruments such as network telescopes and honeypots are effective tools that can be deployed. Such tools can be deployed in large scale using Grid computing. Manual deployment of instruments wastes resources because common tasks and solutions are reinvented by different deployers and the resulting architectures are often not interoperable or sufficiently scalable. Research is underway to develop a framework for scalable and automated deployment, with Grid technologies providing a promising basis. The integration of Grid technology with instrumentation has two initiatives. These are CIMA and GRIDCC, with GRIDCC being available as open source. A key area is workflow within the framework, for which BPEL (Business Process Execution Language) is used in GRIDCC and considered for initial use for Grid Enabled Internet Instruments. We have found BPEL has limitations when implementing such as framework, particularly in the areas of concurrency and statefullness. We propose implementation independent workflows and identify extensions to BPEL in order to realise them. We believe that BPEL with modification can be used to implement a framework for Internet instruments-Grid computing integration.','Cluster Computing and the Grid, 2008. CCGRID \'08. 8th IEEE International Symposium on',2,'D. Stirling; I. Welch; P. Komisarczuk','ieee/bpel security.csv','ieee','\0'),(1671,'Security certification of composite services: A test-based approach','2013','2','BPEL; Model-based testing; Security certification; Service composition; Web services','Accurate and lightweight evaluation of web service security properties is a key problem, especially when business processes are dynamically built by composing atomic services provided by different suppliers at runtime. In this paper, we tackle this problem by proposing a security certification approach that virtually certifies a composite service for a set of security properties, starting from certificates awarded to the component services. © 2013 IEEE.','',2,'Anisetti M., Ardagna C.A., Damiani E.','scopus/bpel security.csv','scopus','\0'),(1672,'Monitoring Service Choreographies from Multiple Sources','2012','2',' Monitoring Choreographies Complex Event Processing SOA SLA QoS','Abstract Modern software applications are more and more conceived as distributed service compositions deployed over Grid and Cloud technologies. Choreographies provide abstract specifications of such compositions, by modeling message-based multi-party interactions without assuming any central coordination. To enable the management and dynamic adaptation of choreographies, it is essential to keep track of events and exchanged messages and to monitor the status of the underlying platform, and combine these different levels of information into complex events meaningful at the application level. Towards this goal, we propose a Multi-source Monitoring Framework that we are developing within the EU Project CHOReOS, which can correlate the messages passed at business-service level with observations relative to the infrastructure resources. We present the monitor architecture and illustrate it on a use-case excerpted from the CHOReOS project.','',2,'Amira Ben HamidaAntonia BertolinoAntonello CalabròGuglielmo De AngelisNelson LagoJulien Lesbegueries','springer/bpel security.csv','springer','\0'),(1673,'A Domain Specific Language and Workflow Execution Engine to Enable Dynamic Workflows','2009','0','DSL;Dynamic Workflows;Modularization;Workflow Execution Engine','Workflow engines often being based on WS-BPEL, currently rely on a mix of recovery/modification strategies that are either part of the workflow description, part of the workflow engine, or realized as plugins to the workflow engine. To foster the development of distributed cloud-based workflow engines and novel repair algorithms, workflow engines have to be modularized in order to overcome the static and inflexible APIs provided by these workflow engines. Dynamic features gained by a modularization include the creation of external modules to monitor as well as modify a workflow to provide error handling in conjunction with service level agreement (SLA) constraints. The aim of this paper is to present a flexible workflow execution engine to facilitate the development of a new dynamic infrastructure to realize dynamic workflow engines with a focus on cloud-based environments.','2009 IEEE International Symposium on Parallel and Distributed Processing with Applications',2,'G. Sturmer; J. Mangler; E. Schikuta','ieee/bpel security.csv','ieee','\0'),(1674,'A proposed security service set for VANET SOA','2015','','','In Vehicular Ad Hoc Networks (VANETs), nodes are represented by Vehicles. Communication in VANETs can take place either between vehicles Vehicle-to-Vehicle (V2V), or between Vehicle and Infrastructure (V2I). Securing exchanged messages between Vehicles is of great importance, especially when they are life critical messages. Some of the Previous security researches discussed how to enable secure communication depending on the support of Infrastructure. In this work, security supported by infrastructure is defined by Services Oriented. Service Oriented Architecture (SOA) can be a novel alternative to satisfy all security requirements. We show the completeness of the proposed system by comparing it with previous security researches.','2015 IEEE Seventh International Conference on Intelligent Computing and Information Systems (ICICIS)',1,'S. Ibrahim; M. Hamdy; E. Shaaban','ieee/service oriented architecture security.csv','ieee',''),(1675,'Middleware-Enabled Mobile Framework in mHealth','2013','0','Electronic Health Record;Mobile Cloud Computing;REST;mHealth;middleware;publish/subscribe','The recent advancement in mobile technology has established smartphones and tablet devices as the consumer device nodes to access the Electronic Health Records (EHR). Mobile devices further aid the healthcare professionals to access the EHR on the go and outside a centralized health facility. However, the over reliance on wireless communication mediums (e.g., Wi-FI, and 3.5G/4G) by mobile devices hampers the reliable flow of disseminating the EHR. For instance, there is no guarantee that the medical data from the main Health Information System (HIS) can be consumed on the mobile device of a healthcare professional when there is no connectivity. While a secure caching technique of the medical data on the mobile can be a solution to facilitate offline accessibility, the same technique can lead to challenges of data conflict. Specifically, when the cached data is updated in an offline mode and that information has to be synchronized with the HIS. We investigate efficient means of disseminating the EHR in unreliable networks. Our mobile architectural design consists of mobile nodes, a cloud-hosted middleware and the HIS. The proposal of the middleware is to enforce provenance, services composition, and reliable synchronization of the medical data for faster dissemination. The preliminary evaluations of the proposed approaches show high performance boost in terms of latency optimization and reliability.','Utility and Cloud Computing (UCC), 2013 IEEE/ACM 6th International Conference on',1,'R. K. Lomotey; R. Deters','ieee/service oriented architecture security.csv','ieee','\0'),(1676,'The Language Application Grid','2016','0',' NLP frameworks Web services Service grids Open advancement Resource licensing','Abstract The Language Application (LAPPS) Grid project is establishing a framework that enables language service discovery, composition, and reuse and promotes sustainability, manageability, usability, and interoperability of natural language Processing (NLP) components. It is based on the service-oriented architecture (SOA), a more recent, web-oriented version of the “pipeline” architecture that has long been used in NLP for sequencing loosely-coupled linguistic analyses. The LAPPS Grid provides access to basic NLP processing tools and resources and enables pipelining such tools to create custom NLP applications, as well as composite services such as question answering and machine translation together with language resources such as mono- and multi-lingual corpora and lexicons that support NLP. The transformative aspect of the LAPPS Grid is that it orchestrates access to and deployment of language resources and processing functions available from servers around the globe and enables users to add their own language resources, services, and even service grids to satisfy their particular needs.','',1,'Nancy IdeJames PustejovskyChristopher CieriEric NybergDenise DiPersioChunqi ShiKeith SudermanMarc VerhagenDi WangJonathan Wright','springer/service oriented architecture security.csv','springer',''),(1677,'Architectural Decision-Making in Enterprises: Preliminary Findings from an Exploratory Study in Norwegian Electricity Industry','2013','3',' Architectural decision making enterprise applications empirical study software ecosystem electricity industry','Abstract Motivation: The current literature in the architectural knowledge domain has made a significant contribution related to documenting software architectural decisions. However, not many studies have been conducted to assess the architectural decision-making and decision reuse processes through empirical investigations. Besides, the effect of the relationships among the actors in a software ecosystem on the architectural decisions-making process of each actor is not well studied. Goal: The objective of this paper is to identify the main processes and issues on the architectural decision-making in largescale enterprises by considering the relationships among the enterprises and other actors of the ecosystem. Method: We conducted semi-structured interviews with six Norwegian companies in the software ecosystem of electricity industry. Results: Regarding the architectural decision-making process, the findings are in line with previous empirical studies, showing that most of the companies are not using well-known academic approaches such as ATAM, they are rather using their own procedures. The study also shows that the relationships among the actors of a software ecosystem could significantly affect the architectural-decision making process in each of the actors, for example, by limiting their alternative solutions. Finally, the results confirm that it is advantageous for the enterprises to reuse the architectural decisions across their various projects or for cooperative companies to reuse the decisions across their similar projects. Conclusion: Improving the reusable architectural decision frameworks by considering the relationships among the actors in a software ecosystem would be beneficial for the industry.','',1,'Mohsen AnvaariReidar ConradiLetizia Jaccheri','springer/service oriented architecture security.csv','springer','\0'),(1678,'An intelligent clustering scheme for distributed intrusion detection in vehicular cloud computing','2015','2',' Vehicular cloud Clustering Multimedia healthcare applications Intrusion detection Learning','Abstract In recent years, vehicular cloud computing (VCC) has emerged as a new technology which is being used in wide range of applications in the area of multimedia-based healthcare applications. In VCC, vehicles act as the intelligent machines which can be used to collect and transfer the healthcare data to the local, or global sites for storage, and computation purposes, as vehicles are having comparatively limited storage and computation power for handling the multimedia files. However, due to the dynamic changes in topology, and lack of centralized monitoring points, this information can be altered, or misused. These security breaches can result in disastrous consequences such as-loss of life or financial frauds. Therefore, to address these issues, a learning automata-assisted distributive intrusion detection system is designed based on clustering. Although there exist a number of applications where the proposed scheme can be applied but, we have taken multimedia-based healthcare application for illustration of the proposed scheme. In the proposed scheme, learning automata (LA) are assumed to be stationed on the vehicles which take clustering decisions intelligently and select one of the members of the group as a cluster-head. The cluster-heads then assist in efficient storage and dissemination of information through a cloud-based infrastructure. To secure the proposed scheme from malicious activities, standard cryptographic technique is used in which the auotmaton learns from the environment and takes adaptive decisions for identification of any malicious activity in the network. A reward and penalty is given by the stochastic environment where an automaton performs its actions so that it updates its action probability vector after getting the reinforcement signal from the environment. The proposed scheme was evaluated using extensive simulations on ns-2 with SUMO. The results obtained indicate that the proposed scheme yields an improvement of 10  % in detection rate of malicious nodes when compared with the existing schemes.','Cluster Computing',1,'Neeraj KumarJaskaran Preet SinghRasmeet S. BaliSudip MisraSana Ullah','springer/soa security.csv','springer',''),(1679,'Emerging Techniques for the Engineering of Self-Adaptive High-Integrity Software','2013','1','','Abstract The demand for cost effectiveness and increased flexibility has driven the fast-paced adoption of software systems in areas where requirement violations may lead to financial loss or loss of life. Many of these software systems need to deliver not only high integrity but also self adaptation to the continual changes that characterise such application areas. A challenge long solved by control theory for continuous-behaviour systems was thus reopened in the realm of software systems. Software engineering needs to embark on a quest for self-adaptive high-integrity software . This paper explains the growing need for software capable of both self-adaptation and high integrity, and explores the starting point for the quest to make it a reality. We overview emerging techniques for the engineering of self-adaptive high-integrity software, propose a service-based architecture that aims to integrate these techniques, and discuss opportunities for future research.','',1,'Radu Calinescu','springer/service oriented architecture security.csv','springer','\0'),(1680,'Image-based styling','2016','0',' Styling Image-based representation Visualization model Domain-specific language Taxonomy Optimization Interoperability Service-oriented computing','Abstract The same data can be visualized using various visual styles that each is suitable for specific requirements, e.g., 3D geodata visualized using photorealistic, cartographic, or illustrative styles. In contrast to feature-based styling, image-based styling performed in image space at image resolution allows decoupling styling from image generation and output-sensitive, expressive styling. However, leveraging image-based styling is still impeded. No previous approach allows specifying image-based styling expressively with an extensive inventory of composable operators, while providing styling functionality in a service-oriented, interoperable manner. In this article, we present an interactive system for specifying and providing the functionality of image-based styling. As key characteristics, it separates concerns of styling from image generation and facilitates specifying styling as algebraic compositions of high-level operators using a unified 3D model representation. We propose a generalized visualization model, an image-based styling algebra, two declarative DSLs, an operator taxonomy, an operational model, and a standards-based service interface. The approach facilitates expressive specifications of image-based styling for design, description, and analysis and leveraging the functionality of image-based styling in a service-oriented, interoperable, reusable, and composable manner.','The Visual Computer',1,'Dieter Hildebrandt','springer/service oriented architecture security.csv','springer',''),(1681,'Engineering Trust-Awareness and Self-adaptability in Services and Systems','2014','0','','Abstract The Future Internet (FI) comprises scenarios where many heterogeneous and dynamic entities must interact to provide services (e.g., sensors, mobile devices and information systems in smart city scenarios). The dynamic conditions under which FI applications must execute call for self-adaptive software to cope with unforeseeable changes in the application environment. Models@run.time is a promising model-driven approach that supports the runtime adaptation of distributed, heterogeneous systems. Yet frameworks that accommodate this paradigm have limited support to address security concerns, hindering their usage in real scenarios. We address this challenge by enhancing models@run.time with the concepts of trust and reputation. Trust improves decision-making processes under risk and uncertainty and constitutes a distributed and flexible mechanism that does not entail heavyweight administration. This chapter introduces a trust and reputation framework that is integrated into a distributed component model that implements the models@run.time paradigm, thus allowing software components to include trust in their reasoning process. The framework is illustrated in a smart grid scenario.','',1,'Francisco MoyanoCarmen Fernandez-GagoBenoit BaudryJavier Lopez','springer/service oriented architecture security.csv','springer','\0'),(1682,'An Access Control Model for Service Composite','2007','0','Access Control;BPEL;CSCW','Business Process Execution Language for Web Services is a language, which can be used to define abstract and executable processes. It has became to be the defacto standard of Web Service composition. However, the security aspect of access control is explicitly mentioned to be outside the scope of BPEL. This paper focuses on the implementation of access controls in the BPEL-based process. The existing Task-Based Access Control model was extended. The definition of authorization unit was modified and new types of authorization units were added. Moreover the mapping from the process defined by BPEL to TBAC model was implemented and an approach of using TBAC in BPEL was put forward. The future work was pointed out in the end of the paper.','2007 11th International Conference on Computer Supported Cooperative Work in Design',2,'G. Ji; Y. Tang; F. Huang; P. Wang; G. Wu','ieee/bpel security.csv','ieee','\0'),(1683,'Collaborative privacy framework for minimizing privacy risks in an IPTV social recommender service','2014','0',' Privacy Clustering IPTV network Recommendation systems','Abstract In our connected world, recommender systems have become widely known for their ability to provide expert and personalized referrals to end-users in different domains. The rapid growth of social networks has given a rise to a new kind of systems, which have been termed “social recommender service”. In this context, a software as a service recommender system can be utilized to extract a set of suitable referrals for certain users based on the data collected from the personal profiles of other end-users within a social structure. However, preserving end-users privacy in social recommender services is a very challenging problem that might prevent privacy concerned users from releasing their own profiles’ data or to be forced to release an erroneous data. Thus, both cases can detain the accuracy of extracted referrals. So in order to gain accurate referrals, the social recommender service should have the ability to preserve the privacy of end-users registered in their system. In this paper, we present a middleware that runs on the end-users’ side in order to conceal their profiles data when being released for the recommendation purposes. The computation of recommendation proceeds over this concealed data. The proposed middleware is equipped with a distributed data collection protocol along with two stage concealment process to give the end-users complete control over the privacy of their profiles. We will present an IPTV network scenario along with the proposed middleware. A number of different experiments were performed on real data which was concealed using our two stage concealment process to evaluate the achieved privacy and accuracy of the extracted referrals. As supported by the experiments, the proposed framework maintains the recommendations accuracy with a reasonable privacy level.','Multimedia Tools and Applications',1,'Ahmed M. ElmiserySeungmin RhoDmitri Botvich','springer/service oriented architecture security.csv','springer','\0'),(1684,'Internet of Services','2013','0',' Internet of Services Service Science Service Engineering Web-based Service Industries Global Service Delivery Framework Service Mash-up Service Composition Service Orchestration Service Pricing FIWARE','Abstract As the relentless march towards an Internet of Services (IoS) continues, it is of utmost importance for the telecoms industry to understand what the IoS is and upon what foundations and methodologies the IoS is based and built on. Further, how the telecom industry can leverage IoS research and push IoS capabilities on and beyond through innovation and how those services within the IoS should be designed and implemented need to be understood. Not only are these questions answered but also so as not to remain stationary in the world of IoS, the telecoms industry must comprehend the upcoming challenges and opportunities that the IoS will present. Within this chapter there are two perspectives taken on the more specific aspects of engineering services for the IoS. The first takes a first principles approach whereas the second takes one from the basis of an innovative methodology. This chapter will provide information and insights that seek to answer the former questions, starting with a discussion on what exactly a service is, moving through the innovation, design and implementation of IoS and its services, and finally arriving at a demonstrator of IoS that points towards its own future.','',2,'Javier SorianoChristoph HeitzHans-Peter HutterRafael FernándezJuan J. HierroJuergen VogelAndy EdmondsThomas Michael Bohnert','springer/bpel security.csv','springer','\0'),(1685,'A market-oriented hierarchical scheduling strategy in cloud workflow systems','2013','56',' Cloud workflow system Cloud computing Workflow scheduling Hierarchical scheduling Metaheuristics','Abstract A cloud workflow system is a type of platform service which facilitates the automation of distributed applications based on the novel cloud infrastructure. One of the most important aspects which differentiate a cloud workflow system from its other counterparts is the market-oriented business model. This is a significant innovation which brings many challenges to conventional workflow scheduling strategies. To investigate such an issue, this paper proposes a market-oriented hierarchical scheduling strategy in cloud workflow systems. Specifically, the service-level scheduling deals with the Task-to-Service assignment where tasks of individual workflow instances are mapped to cloud services in the global cloud markets based on their functional and non-functional QoS requirements; the task-level scheduling deals with the optimisation of the Task-to-VM (virtual machine) assignment in local cloud data centres where the overall running cost of cloud workflow systems will be minimised given the satisfaction of QoS constraints for individual tasks. Based on our hierarchical scheduling strategy, a package based random scheduling algorithm is presented as the candidate service-level scheduling algorithm and three representative metaheuristic based scheduling algorithms including genetic algorithm (GA), ant colony optimisation (ACO), and particle swarm optimisation (PSO) are adapted, implemented and analysed as the candidate task-level scheduling algorithms. The hierarchical scheduling strategy is being implemented in our SwinDeW-C cloud workflow system and demonstrating satisfactory performance. Meanwhile, the experimental results show that the overall performance of ACO based scheduling algorithm is better than others on three basic measurements: the optimisation rate on makespan, the optimisation rate on cost and the CPU time.','The Journal of Supercomputing',1,'Zhangjun WuXiao LiuZhiwei NiDong YuanYun Yang','springer/soa security.csv','springer',''),(1686,'Building sustainable parking lots with the Web of Things','2014','3',' Smart parking Sensor networks Web of Things Web services Semantic Web','Abstract Peak-time traffic woes create considerable amount of stress and environmental pollution resulting in an economic loss. Research innovations in areas such as the Web of Things are able to curtail some of these issues by creating scalable and sustainable environments like parking lots, which provide motorists with access to convenient parking spots. We present a scalable parking lot network infrastructure that exposes parking management operations through a judicious mashup of physical things’ services within a parking lot. Our system uses service-oriented architecture, allowing motorists to reserve parking spots in advance. In doing so, our proposed system leverages the use of HTTP and Wi-Fi for the Web enablement and interoperability of things within a parking spot and elevates it as a Smart Parking Spot on the Web. Our suggested semantic Web-based structure for representing things makes it possible to query physical things’ states and services depending on their capabilities and other relevant parking-related parameters. Our performance evaluation reveals that a maximum of 40 % time is saved to find parking spots and also 40 % reduction in air pollution is observed.','Personal and Ubiquitous Computing',1,'Sujith Samuel MathewYacine AtifQuan Z. ShengZakaria Maamar','springer/soa security.csv','springer','\0'),(1687,'Web service platform for automatic generation of O/D matrix','2014','0',' Intelligent transportation system O/D matrix Web services SOA Transportation planning Bluetooth sensors','Abstract Transportation planning is an important process to support the mobility of the cities, which is a growing problem in several Latin American countries. To face this problem, a normal transportation tool has been used, even until now, and it is known as the origin/destination (O/D) matrix. This matrix allows estimation of the movement of users and future demand on the transportation system and helps improve the planning, travel allocation, and routes of transportation. The novelty of this paper is focused on the design and implementation of a web service platform that can construct automatically the O/D matrix. This platform takes advantage of the service-oriented architecture (SOA) approach and web and mobile applications for the construction of this matrix. In addition, the system is used for public transportation system and takes advantage of Bluetooth technology as a very good approach to construct this matrix.','EURASIP Journal on Wireless Communications and Networking',1,'Luis Felipe Herrera-QuinteroKlaus BanseYeimmy Cañon-LozanoAngie Melo-CastilloCesar Augusto Gomez-Perilla','springer/service oriented architecture security.csv','springer','\0'),(1688,'A Risk management model for service-oriented architecture: An application in the implementation of SOA services','2015','','IT risk for service oriented architecture; IT risk management; IT risks systems architecture; Methodology for IT Risk Management for SOA; Service oriented architecture','The risk may be approached through two perspectives: a threat that, should it happen, will cause a negative effect on at least one project objective; and an opportunity, when it causes a positive effect on the project. Managing risks aims to increase the likelihood and impact of positive events and decrease the likelihood and impact of adverse events. In this article, an IT risk management model for service-oriented architecture is presented, formed from the use of the NIST 800-30, FAIR and OCTAVE Allegro. With this model is expected to ensure that any failure in the implementation of service-oriented architecture does not endanger the strategic objectives of the corporation. It is important to consider a related risk to operations-failures and security vulnerabilities or even design and development-may have an impact on the success of the corporation in a campaign or specific initiative or in your image. To demonstrate its use, an application is shown, so the main ideas and contributions of a model of IT risk management will applied in the implementation of service-oriented architecture.','',1,'Da Silva P.C., Monteiro E.L.','scopus/service oriented architecture security.csv','scopus',''),(1689,'An automatic clinical document importance estimator for an existing electronic patient record - Architecture and implementation','2013','','','The goal of the OPTIM project is to optimize the graphical user interface of an electronic health record (EHR) by predicting clinical documents\' relevance and provide a ranked list of relevant documents for the given user at a certain time. This paper describes the architecture of the relevance assignment and ranking prototype and some implementation issues. The prototype\'s design is based on two components: OPTIM Core, with logical representation, estimation server\'s integration and the webservice layer, and the OPTIM WebUI, with the user interface for presenting the results. The prototype was tested in integration with an EHR using a simulated environment. The results were encouraging but yet they revealed a certain lack of security (confidentiality). It has now the capacity of rating 10 documents per second. Nonetheless, the integration of features such as rating clinical relevance based on mathematical models can be included in existing EHR potentially improving their usability. © 2013 IEEE.','',1,'Santos B., Rodrigues P., Cruz-Correia R.','scopus/webservice security.csv','scopus','\0'),(1690,'Enabling Cloud Connectivity for Mobile Internet of Things Applications','2013','12','Bluetooth;Cloud;CoAP;Internet of Things;Low power;Mobile;PAN;Platform;SOA','The number of small embedded devices connected to the Internet is increasing. This growth is mostly due to the large number of Internet of Things (IoT) deployments, with applications such as: industrial monitoring, home automation, and others. One common aspect with the majority of application areas is the lack of mobility. Most IoT devices are stationary and often use IEEE 802.15.4/6LoWPAN solutions. When a high level of mobility is required, the use of IEEE 802.15.4 is not possible without adding additional hardware for the user to carry. In this article, a holistic network architecture consisting of heterogeneous devices is presented. The architecture is composed of Embedded Internet Systems (EIS) and uses standard communication protocols. One important feature is the use of the Service-oriented architecture (SOA) paradigm. The use of SOA, by utilization of the CoAP protocol and standard services, enables the proposed architecture to exchange sensor- and actuator data with an Internet-based cloud as well as a user\'s local cloud consisting of sensor IoT devices, smart phones and laptops. Another component of the architecture is a web-based human-machine interface for configuration, monitoring and visualization of sensor and actuator data using emerging web technologies for structured data processing. Results from experiments and real-world tests show that the proposed architecture can support sample rates of up to several kHz while enabling sensor data to be transmitted to SOA services in real time. This proves that the use of SOA, and Restful web services in particular, is feasible on resource-constrained platforms while supporting true mobility.','Service Oriented System Engineering (SOSE), 2013 IEEE 7th International Symposium on',1,'P. P. Pereira; J. Eliasson; R. Kyusakov; J. Delsing; A. Raayatinezhad; M. Johansson','ieee/service oriented architecture security.csv','ieee',''),(1691,'Service-Oriented Distributed Applications in the Future Internet: The Case for Interaction Paradigm Interoperability','2013','3',' Interoperability interaction paradigms interaction abstractions service oriented architecture enterprise service bus','Abstract The essential issue of interoperability in distributed systems is becoming even more pressing in the Future Internet, where complex applications will be composed from extremely heterogeneous systems. Open system integration paradigms, such as service oriented architecture (SOA) and enterprise service bus (ESB), have provided answers to the interoperability requirement. However, when it comes to integrating systems featuring heterogeneous interaction paradigms, such as client-service, publish-subscribe and tuple space, existing solutions are typically ad hoc and partial, applying to specific interaction protocol technologies. In this paper, we introduce an interoperability solution based on abstraction and merging of the common high-level semantics of interaction paradigms, which is sufficiently general and extensible to accommodate many different protocol technologies. We apply this solution to revisit the SOA- and ESB-based integration of heterogeneous distributed systems.','',2,'Nikolaos GeorgantasGeorgios BouloukakisSandrine BeaucheValérie Issarny','springer/bpel security.csv','springer','\0'),(1692,'Semantic Service Composition Framework for Multidomain Ubiquitous Computing Applications','2012','0',' Collaborative Provisioning Process Service Composition Constructive Description Logics Theorem Proving','Abstract In this paper we propose a semantic framework based on constructive description logic. The main innovative aspect of our work consists in the formalization of a composition in the form of e-contract semantic statements where the semantic and logic correctness/soundness are formally checked. The e-contract model is based on cooperation ontology and includes control rules. This model improves on the one hand the common understanding between heterogeneous domains, and on the other hand, it ensures an efficient control of each service from remote requester and preserves the confidentiality of the know-how and the privacy of the local domains. In the conclusion of this paper we present a health care scenario that demonstrates the feasibility of our framework and the demonstration statements of the e-contract in \\(\\mathcal{BCDL}_0\\) .','',2,'Mohamed HililaAbdelghani ChibaniKarim DjouaniYacine Amirat','springer/bpel security.csv','springer','\0'),(1693,'The Human Side of Software As a Service: Building a Tighter Fit Between Human Experiences and SOA Design Practices','2015','0','SaaS, experience, service design patterns, service design principles, service-oriented architecture','Software as a Service (SaaS) is now recognized as an effective model for the development, deployment, and customization of software. It has been reported that it reduces the costs as well as ensures the long-term sustainability of software systems. Monolithic software systems are seen as a set of interrelated and geographically distributed services over the Internet. Developers and providers can easily customize services while being able to accommodate a large range of stakeholders. At the core of this service orientation of the whole field of software development are the Service-Oriented Architecture (SOA) design principles. These principles detail what we should do, but not how and by whom it has to be done. From a human perspective -- all stakeholders -- we argue that the current SOA design principles can be linked and benefit from the user experience/user-centric design. Such combination can lead to a user experience-centric and SOA-based design approach that guarantees that SaaS is secure, yet trustable, useful, usable and accessible. In this position paper, we reviewed SOA/SaaS from the human dimension with the goal to bridging the gaps between SOA design principles and the User Experience (UX) design communities including Human-Computer Interaction (HCI) and service design. One practical goal is to enhance the SOA, as a technological platform with elements of UX including the social aspects of their interactions within the organizational structure and processes.','',1,'Victoria Karaseva and Ahmed Seffah','acm/service oriented architecture security.csv','acm',''),(1694,'A novel QoS model and computation framework in web service selection','2012','6',' web service QoS','Abstract With the rapid development of e-commerce over Internet, web services have attracted much attention in recent years. Nowadays, enterprises are able to outsource their internal business processes as services and make them accessible via the Web. Then they can dynamically combine individual services to provide new value-added services. With the increasing number of web services having equivalent functionality, the binding procedure is driven by some non-functional, Quality of Service (QoS) criteria, such as the money cost, response time, reputation, reliability or a trade-off between them. Thus, an important problem is, given QoS constraints, how to aggregate and leverage individual service’s QoS information to derive the optimal QoS of the composite service. In this paper, we propose a novel QoS model for performing flexible service selection. The key idea of the model is to relax users’ QoS constraints and try to find the most possible services satisfying users’ QoS requirements. Based on the proposed QoS framework, we develop various algorithms for making service selection on individual and composite services. We also introduce a top- k ranking strategy to reflect a user’s personalized requirements. Experimental evaluation shows the proposed QoS model is efficient and practical.','World Wide Web',1,'Yanan HaoYanchun ZhangJinli Cao','springer/service oriented architecture security.csv','springer','\0'),(1695,'Dynamic carpooling mobility services based on secure multi-agent platform','2012','','Carpooling; Dynamic carpooling; Mobile authentication; Mobility services; Multi-Agent System; Service Oriented Architecture','Carpooling consists in sharing one\'s personal vehicles with one or several passengers in order to share the related costs but also reduce traffic and CO2 emissions. One of the main issues with such a service is that it requires a prior agreement between the driver and the potential passengers. Dynamic carpooling uses an IT system to remove this limitation and provide ways to react to events such as a traffic jam or to provide a precise evaluation of the cost of the trip for each of the involved actors. But it requires accessing potentially sensitive information such as the real time users\' position or their identity. As such, an efficient security mechanism should be implemented to protect data exchanged to provide the service but also to increase the users\' confidence in the tool. This article presents a technological IT solution for dynamic carpooling mobility service based on a secure multi-agent platform in the context of the WiSafeCar (Wireless Traffic Safety Network between Cars) project. It mainly focuses on the security services allowing both the mutual authentication of the users and of the application components with the system. © 2012 IEEE.','',1,'Bonhomme C., Arnould G., Khadraoui D.','scopus/service oriented architecture security.csv','scopus','\0'),(1696,'GARUDA: Pan-Indian distributed e-infrastructure for compute-data intensive collaborative science','2013','0',' Grid computing e-Infrastructure e-Science Virtual communities Networking Grid enable','Abstract GARUDA is a nation-wide grid of computational nodes, mass storage and scientific instruments with an aim to provide technological advancements required to enable compute-data intensive, collaborative applications for the twenty-first century. From a Proof-of-Concept, the GARUDA has evolved to an operational grid, aggregating nearly 70TF-15TB compute–storage power, via high-speed National Knowledge Network and hosts a stack of middleware and tools to enable hundreds of users from diverse communities like life science, earth science, computer aided engineering, material science, etc. Evolution and confluence of research and technologies has led to the maturity of GARUDA grid: there have been addition of several hundred CPUs, large data stores, standardization of grid middleware, research on interoperability between grids and participation from varied application communities that have made significant impact to GARUDA. The GARUDA partner institutes are using this e-infrastructure to grid enable applications of societal and national importance. The authors in this paper present the manner of building a nation-wide operational grid and its evolution, its deliverables, architecture and applications.','CSI Transactions on ICT',1,'N. MangalaB. B. Prahlada RaoSubrata ChattopadhyayR. SridharanN. Sarat Chandra Babu','springer/service oriented architecture security.csv','springer','\0'),(1697,'Toward high efficiency for content-based multi-attribute event matching via hybrid methods','2016','0',' event matching publish/subscribe data dissemination end-to-end communications interval search combinatorial optimization 关键词 事件匹配 发布/订阅 数据分发 端到端通信 区间搜索 组合优化 022315','Abstract Event matching is a core in decoupled end-to-end communications, which are extensively applied to various areas. Event matching seeks the subscriptions that match a given event from a subscription set, however, this work becomes increasingly complicated in content-based multi-attribute scenarios, where events and subscriptions are formed in content, and described by multiple attributes. In addition, large-scale systems are easier to suffer from severe degradation in event matching performance. To this end, this paper presents a high-efficiency content-based multi-attribute event matching algorithm, called HEM (hybrid event matching), which is hybridized by 2 different methods. In HEM, the matching on each single attribute (called single-attribute matching) is processed by a triangle-based matching method or a direct matching method dynamically. All single-attribute matchings are sorted via a fast near-optimal algorithm, and each of them is carried out sequentially. In this manner, the searching space of event matching shrinks gradually, so that the searching performance is boosted along with the process of event matching. Experiments are conducted to evaluate HEM comprehensively, where it is observed that HEM outperforms 3 state-of-the-art counterparts (TAMA, H-TREE and REIN) in main criteria, such as event matching time, insertion time and deletion time. Moreover, the gap of performance between HEM and the counterparts enlarges with the increase of system scale.','Science China Information Sciences',1,'Wenhao FanYuanan LiuBihua Tang','springer/soa security.csv','springer',''),(1698,'Advances in security and multimodality for pervasive computing environments','2013','0','','','Telecommunication Systems',1,'Jong Hyuk ParkChing-Hsien HsuNaveen ChilamkurtiMieso Denko','springer/service oriented architecture security.csv','springer','\0'),(1699,'Migration of an On-Premise Application to the Cloud: Experience Report','2013','1','','Abstract As of today it is still not clear how and when cloud computing should be used. Developers very often write applications in a way that does not really fit a cloud environment, and in some cases without taking into account how quality attributes (like performance, security or portability) are affected. In this paper we share our experience and observations from adopting cloud computing for an on-premise enterprise application in a context of a small software company. We present experimental results concerning a comparative evaluation (w.r.t. performance and cost) of the behavior of the original system both on-premise and on the Cloud, considering different scenarios in the Cloud.','',1,'Pavel RabetskiGerardo Schneider','springer/service oriented architecture security.csv','springer','\0'),(1700,'Coalition Networks for Secure Information Sharing (CoNSIS) (Invited Paper)','2013','2','Communications;Disadvantaged Grids;Management;NNEC;Security;Tactical SOA','The multilateral CONSIS project is related to the migration towards Network Enabled Capabilities (NEC) in the participating countries. As such, CoNSIS aligns with the overarching objective of the NATO NEC (NNEC) to enhance the Alliance\'s ability to federate various capabilities at all levels, military (strategic to tactical) and civilian through networking and information infrastructure. Providing security and efficient network management have been important aspects of this work. The work has been a combination of theoretical studies and field experiments in order to get hands-on experience with the involved technologies. This possibility of addressing radios, networks, SOA, security and management together, has given us knowledge on how the different technologies affect each other and how they may be combined. A follow up project (CoNSIS phase II) is being planned with startup in 2014.','MILCOM 2013 - 2013 IEEE Military Communications Conference',1,'A. Eggen; M. Hauge; O. E. Hedenstad; K. Lund; A. Legaspi; H. Seifert; P. Sevenich; P. Simon','ieee/soa security.csv','ieee','\0'),(1701,'A pluggable service platform architecture for e-commerce','2015','0',' E-commerce platform SOA Cloud integration Reference architecture Pluggability','Abstract In the beginning of the e-commerce era, retailers mostly adopted vertically integrated solutions to control the entire e-commerce value chain. However, they began to realize that to achieve agility, a better approach would be to focus on certain core capabilities and then create a partner ecosystem around them. From a technical point of view, this means it is advised to have a lightweight platform architecture with small core e-commerce functionality which can be extended by additional services from third party providers. In a typical e-commerce ecosystem with diverse information systems of network partners, integration and interoperability become critical factors to enable seamless coordination among the partners. Furthermore an increasing adoption of cloud computing technology could be observed resulting in more challenging integration scenarios involving cloud services. Thus, an e-commerce platform is required that suites the advanced needs for flexible and agile service integration. Therefore, this paper aims to present a reference architecture of a novel pluggable service platform for e-commerce. We investigate on currently available online shop platform solutions and integration platforms in the market. Based on the findings and motivated by literature on service-oriented design, we develop an architecture of a service-based pluggable platform for online retailers. This design is then instantiated by means of a prototype for an e-commerce returns handling scenario to demonstrate the feasibility of our architecture design.','Information Systems and e-Business Management',1,'Fabian AulkemeierMohammad Anggasta ParamarthaMaria-Eugenia IacobJos van Hillegersberg','springer/service oriented architecture security.csv','springer',''),(1702,'Timed Conformance Testing for Orchestrated Service Discovery','2012','0',' Web service discovery orchestrations conformance testing timed testing symbolic execution','Abstract Orchestrations are systems deployed on the Internet where there is a central component (called orchestrator) coordinating other components (called Web services), pre-existing to the orchestration design phase. Web services are made available through repositories on the Internet to orchestration designers. Service discovery refers to the activity of identifying Web services offered by third parties. We propose an approach to discover Web services by taking into account the intended behaviors of Web services as they can be inferred from the orchestrator specifications. Web services are tested with respect to those behaviors to decide whether or not they can be selected. Specifications of orchestrators are Timed Input/Output Symbolic Transition Systems. Web service intended behaviors are elicited by means of symbolic execution and projection techniques. Those behaviors can be used as test purposes for our timed symbolic conformance testing algorithm.','',2,'Jose Pablo EscobedoChristophe GastonPascale Le Gall','springer/bpel security.csv','springer','\0'),(1703,'Abstract Privacy Policy Framework: Addressing Privacy Problems in SOA','2012','0','','Abstract This paper argues that privacy policies in SOA needs a lifecycle model. We formalize the lifecycle of personal data and associated privacy policies in Service Oriented Architectures (SOA), thus generalizing privacy-friendly data handling in cross-domain service compositions. First, we summarize our learning in two research projects (PrimeLife and SecPAL for Privacy) by proposing generic patterns to enable privacy policies in SOA. Second, we map existing privacy policy technologies and ongoing research work to the proposed abstraction. This highlights advantages and shortcomings of existing privacy policy technologies when applied to SOA.','',1,'Laurent BussardUlrich Pinsdorf','springer/service oriented architecture security.csv','springer','\0'),(1704,'Priority-oriented architecture service management on OSGi home-service platform','2013','1','Management system; OSGi; QoS; Smart home','Open Service Gateway initiative (OSGi) platforms integrate a variety of reusable applications and resources, packing them into bundles. These deployed services, which are offered by service providers, can expediently manage home appliances. However, in the user\'s daily life, various services or bundles access to other services directly or indirectly, creating a situation that is likely to generate problems involving non-supportable applications or insufficient hardware resources. OSGi platforms are no way to deal with these situations. Although much research has proposed methods to resolve specific issues, almost all of these methods are incomplete or are unsuitable for the limited resources in households. This paper addresses the wide range of such common home-network applications as those involving health care, home automation, and home security; and both our proposed priority-based principles of a management decision-making mechanism and our framework architecture help ensure the quality of service and or emergency responses. © 2012 Springer Science+Business Media, LLC.','',1,'Cheng S.-T., Chou C.-L., Horng G.-J.','scopus/service oriented architecture security.csv','scopus','\0'),(1705,'Software architecture-based analysis and testing: a look into achievements and future challenges','2013','6','','','Computing',1,'Antonia BertolinoPaola InverardiHenry Muccini','springer/soa security.csv','springer','\0'),(1706,'Towards Business Application Product Lines','2012','1',' software product lines model driven engineering','Abstract With continued increase in business dynamics, it is becoming increasingly harder to deliver purpose-specific business systems in the ever-shrinking window of opportunity. Code-centric software product line engineering (SPLE) techniques show unacceptable responsiveness as business applications are subjected to changes along multiple dimensions that continue to evolve simultaneously. Through clear separation of functional concerns from technology, model-driven approaches enable easy delivery of the same functionality into multiple technology platforms. However, business systems for same functional intent tend to have similar but non-identical functionality. This makes a strong case for bringing in SPLE ideas i.e., what can change where and when , to models. We propose an abstraction that aims to address composition, variability and resolution in a unified manner; describe its model-based realization; and outline the key enablers necessary for raising business application product lines. Early experience of our approach and issues that remain to be addressed for industry acceptance are highlighted.','',2,'Vinay KulkarniSouvik BaratSuman Roychoudhury','springer/bpmn security.csv','springer','\0'),(1707,'A scalable and dynamic application-level secure communication framework for inter-cloud services','2015','1','Cloud computing; Secure communication; Virtual private networks','Most of the current cloud computing platforms offer Infrastructure as a Service (IaaS) model, which aims to provision basic virtualized computing resources as on-demand and dynamic services. Nevertheless, a single cloud does not have limitless resources to offer to its users, hence the notion of an Inter-Cloud environment where a cloud can use the infrastructure resources of other clouds. However, there is no common framework in existence that allows the service owners to seamlessly provision even some basic services across multiple cloud service providers, albeit not due to any inherent incompatibility or proprietary nature of the foundation technologies on which these cloud platforms is built. In this paper we present a novel solution which aims to cover a gap in a subsection of this problem domain. Our solution offers a security architecture that enables service owners to provision a dynamic and service-oriented secure virtual private network on top of multiple cloud IaaS providers. It does this by leveraging the scalability, robustness and flexibility of peer-to-peer overlay techniques to eliminate the manual configuration, key management and peer churn problems encountered in setting up the secure communication channels dynamically, between different components of a typical service that is deployed on multiple clouds. We present the implementation details of our solution as well as experimental results carried out on two commercial clouds. © 2015 Elsevier B.V. All rights reserved.','',1,'Sajjad A., Rajarajan M., Zisman A., Dimitrakos T.','scopus/service oriented architecture security.csv','scopus',''),(1708,'Towards Inherent Privacy Awareness in Workflows','2015','0',' Privacy compliance Workflow modelling Verification Ontologies','Abstract This paper presents a holistic approach to the realisation of Privacy by Design in workflow environments, ensuring that workflow models are rendered privacy-aware already at their specification phase. In this direction, the proposed framework, considering the particular technical requirements stemming from data protection principles, is centred around the following features: a novel, ontology-based approach to workflow modelling, which manages, unlike all other existing technologies, to adequately capture privacy aspects pertaining to workflow execution; the appropriate codification of privacy requirements into compliance rules and directives; an automated procedure for the verification of workflow models and their subsequent transformation, if needed, so that they become inherently privacy-aware before being deployed for execution.','',2,'Maria N. KoukoviniEugenia I. PapagiannakopoulouGeorgios V. LioudakisNikolaos DellasDimitra I. KaklamaniIakovos S. Venieris','springer/bpel security.csv','springer',''),(1709,'An implementation of a process-oriented cross-system compliance monitoring approach in a SAP ERP and BI environment','2010','','Business process management; IS security; IT compliance; IT risk management; SAP R/3','Compliance to regulatory demands has become a crucial matter for organizations. Non-observance may lead to far-reaching consequences, e.g. damage to reputation, decline of credit rating or market value, fraud and fines. The success of compliance management correlates with the frequency of monitoring and reporting and is affected by complex and often time-consuming manual validation tasks. To address this problem, organizations implement corresponding IT solutions. However, the often heterogeneous system landscapes, the different information sources and their integration represent major challenges. This paper presents an implementation of a novel process-oriented and cross-system compliance monitoring approach. The approach is based on a model which provides for the annotation of business processes with internal controls, critical permissions and roles as well as an architecture which provides for the automatic detection, timely communication and deep analysis of control exceptions. It solely relies on established standards (i.e. XACML, BPMN, COSO and SWRL) and existing technologies. The implementation has been deployed in a productive SAP ERP and BI environment. It automatically converts access control data from the proprietary SAP model and publishes control exceptions to the BI system. The effects and causes of these control exception can be appropriately analyzed using BI queries and reports.','',2,'Sandner T., Kehlenbeck M., Breitner M.H.','scopus/bpmn security.csv','scopus','\0'),(1710,'Normative requirements for regulatory compliance: An abstract formal framework','2015','2',' Norms Normative requirements Norms compliance Business process regulatory compliance Compliance frameworks','Abstract By definition, regulatory rules (in legal context called norms ) intend to achieve specific behaviour from business processes, and might be relevant to the whole or part of a business process. They can impose conditions on different aspects of process models, e.g., control-flow, data and resources etc. Based on the rules sets, norms can be classified into various classes and sub-classes according to their effects. This paper presents an abstract framework consisting of a list of norms and a generic compliance checking approach on the idea of (possible) execution of processes. The proposed framework is independent of any existing formalism, and provides a conceptually rich and exhaustive ontology and semantics of norms needed for business process compliance checking. Apart from the other uses, the proposed framework can be used to compare different compliance management frameworks (CMFs).','Information Systems Frontiers',2,'Mustafa HashmiGuido GovernatoriMoe Thandar Wynn','springer/bpmn security.csv','springer',''),(1711,'Towards Addressing CPU-Intensive Seismological Applications in Europe','2013','0','','Abstract Advanced application environments for seismic analysis help geoscientists to execute complex simulations to predict the behaviour of a geophysical system and potential surface observations. At the same time data collected from seismic stations must be processed comparing recorded signals with predictions. The EU-funded project VERCE ( http://verce.eu/ ) aims to enable specific seismological use-cases and, on the basis of requirements elicited from the seismology community, provide a service-oriented infrastructure to deal with such challenges. In this paper we present VERCE’s architecture, in particular relating to forward and inverse modelling of Earth models and how the, largely file-based, HPC model can be combined with data streaming operations to enhance the scalability of experiments. We posit that the integration of services and HPC resources in an open, collaborative environment is an essential medium for the advancement of sciences of critical importance, such as seismology.','',1,'Michele CarpenéIraklis A. KlampanosSiew Hoon LeongEmanuele CasarottiPeter DanecekGraziella FeriniAndré GemündAmrey KrauseLion KrischerFederica MagnoniMarek SimonAlessandro SpinusoLuca TraniMalcolm AtkinsonGiovanni ErbacciAnton Frank','springer/service oriented architecture security.csv','springer','\0'),(1712,'Soap header extensions for service oriented architecture security','2012','','Security; Service oriented architecture; Soap header; Web service','Service Oriented Architecture is popular for heterogeneous enterprise systems integration for its character of loosely coupling and open standard. Web service is a main technology to develop SOA application and has some security problems in cross domain system communication. In this article we proposed a SOA security solution for authorization cross domain web service invoking and its execution process. We used two layers management method to meet the cross domain invoking requirement. In order to ensure authorized user can access the security web service, we described the web service running principle and extended the soap header to transmit user identification token. At last, we implement the soap header extension encryption way in.NET environment. We successfully used this solution in some group enterprise systems integration.','',1,'Zhu Y., Zhang J.','scopus/service oriented architecture security.csv','scopus','\0'),(1713,'VRank: A context-aware approach to vulnerability scoring and ranking in SOA','2012','2','Context; Ranking and scoring; Service-oriented architecture; Vulnerabilities','With the rapid adoption of the concepts of Service Oriented Architecture (SOA), sophisticated business processes and tasks are increasingly realized through composing distributed software components offered by different providers. Though such practices offer advantages in terms of cost-effectiveness and flexibility, those components are not immune to vulnerabilities. It is therefore important for the administrator of some composed service to evaluate the threats of such vulnerabilities accordingly within limited available information. Since almost all the existing efforts (e.g., CVSS) fail to consider specific context-aware information which is the specific character of SOA, they could not be adopted into SOA for scoring vulnerabilities. In this paper, we present VRank, a novel framework for the scoring and ranking of vulnerabilities in SOA. Different from existing efforts, for a given vulnerability, VRank not only considers its intrinsic properties (e.g., exploitability), but also takes into account the contexts of the services having this vulnerability, e.g., what roles they play in the composed service and how critical it is to the security objective of the service. The resulting scoring and ranking of vulnerabilities are thus highly relevant and meaningful to the composed service. We present the detailed design of VRank, and compare it with CVSS. Our experiments indicate VRank is able to provide much more useful ranking lists of vulnerabilities for complex composed services. © 2012 IEEE.','',1,'Jiang J., Ding L., Zhai E., Yu T.','scopus/service oriented architecture security.csv','scopus','\0'),(1714,'Multi-agent peer-to-peer intrusion detection','2013','','','Ever increasing use of heterogeneous networks including mobile devices and ad-hoc sensor networks signifies the role of such information systems\' properties as openness, autonomy, cooperation, coordination, etc. Agent-based service-oriented Peer-to-Peer (P2P) architecture provides attractive (if not unique) design and implementation paradigm for such systems. This trend implies coherent evolution of security systems, that put in use the notions of distributed security policy, distributed intrusion detection systems, etc. 1, requiring novel ideas. The paper proposes new architecture for such security systems. This architecture provides cooperative performance of distributed security means (agents) supported by distributed meta-knowledge base implemented as an overlay network of instances of P2P agent platform set up on top of P2P networking provider. The paper also analyzes new issues of P2P security systems with the main emphasis on P2P training of security agents to correlation of alerts produced by other relevant agents. An artificially built case study is used to highlight the essence of P2P security agent training to P2P decision combining and to exhibit new problems. © Springer-Verlag Berlin Heidelberg 2007.','',1,'Gorodetsky V., Karsaev O., Samoylov V., Serebryakov S.','scopus/service oriented architecture security.csv','scopus','\0'),(1715,'Research on supply chain management security under Windows Communication Foundation','2012','0','SCM (Supply Chain Management);SOA (Service Oriented Architecture);WCF security framework;WS-Security;Web-Services','The enterprise alliance is consistently leading to the construction of cross-enterprise information system. The research of SOA (Service Oriented Architecture)- based SCM (Supply Chain Management) and modern information technology has become a hot topic. Especially, the secure design and deployment related to SCM brings attention from industrial world and is becoming to research focus. This paper starts from the security of SCM, analyzes the business characteristic and security demands of SCM system by taking the most typical purchase model as an example, and then designs Web-service based security application model of SCM, combining with WS-Security specification and the latest WCF (Windows Communication Foundation) technical platform. As a result it achieves the goal of message level security and access control.','ICSSSM12',1,'G. c. Xiong; Z. f. Wang; X. j. Zhang; G. j. Ji','ieee/service oriented architecture security.csv','ieee','\0'),(1716,'Analysing the Suitability of Multiagent Methodologies for e-Health Systems','2013','1',' Health systems Normative environments Organisational Agent Architectures Contracts System of Systems','Abstract Online e-health systems are being proposed and developed at an ever increasing rate. However, the progress relies on the interoperability of local healthcare software, and is often hampered by ad hoc methods leading to closed systems with a multitude of protocols, terminologies, and design approaches. Agent-oriented software engineering (AOSE) seems intuitively a good approach for developing more open systems. While agent-based e-health systems have been developed, the general hypothesis of the suitability of AOSE has not been evaluated. In this paper, we test that hypothesis, including a case study of applying a normative agent methodology to a particular real-world e-health system, and present an analysis of the strengths and weaknesses of AOSE for e-health.','',1,'Emilia GarciaGareth TysonSimon MilesMichael LuckAdel TaweelTjeerd Van StaaBrendan Delaney','springer/service oriented architecture security.csv','springer','\0'),(1717,'Approaches for the combined use of risk analysis and testing: a systematic literature review','2014','4',' Risk-based testing Test-based risk analysis Literature survey','Abstract Risk analysis and testing are conducted for different purposes. Risk analysis and testing nevertheless involve processes that may be combined to the benefit of both. We may use testing to support risk analysis and risk analysis to support testing. This paper surveys literature on the combined use of risk analysis and testing. First, the existing approaches are identified through a systematic literature review. The identified approaches are then classified and discussed with respect to main goal, context of use and maturity level. The survey highlights the need for more structure and rigor in the definition and presentation of approaches. Evaluations are missing in most cases. The paper may serve as a basis for examining approaches for the combined use of risk analysis and testing, or as a resource for identifying the adequate approach to use.','International Journal on Software Tools for Technology Transfer',1,'Gencer ErdoganYan LiRagnhild Kobro RundeFredrik SeehusenKetil Stølen','springer/service oriented architecture security.csv','springer','\0'),(1718,'Performance assessment of XACML authorizations for Supply Chain Traceability Web Services','2012','1','Authorization;Performance;Supply Chain Traceability;Web Services;XACML','Service-Oriented Architecture (SOA) and Web Services (WS) offer advanced flexibility and interoperability capabilities. However they imply significant performance overheads that need to be carefully considered. Supply Chain Management (SCM) and Traceability systems are an interesting domain for the use of WS technologies that are usually deemed to be too complex and unnecessary in practical applications, especially regarding security. This paper presents an externalized security architecture that uses the eXtensible Access Control Markup Language (XACML) authorization standard to enforce visibility restrictions on trace-ability data in a supply chain where multiple companies collaborate; the performance overheads are assessed by comparing `raw\' authorization implementations - Access Control Lists, Tokens, and RDF Assertions - with their XACML-equivalents.','Computational Aspects of Social Networks (CASoN), 2012 Fourth International Conference on',1,'M. L. Pardal; M. Harrison; S. Sarma; J. A. Marques','ieee/service oriented architecture security.csv','ieee','\0'),(1719,'Automatic fuzz testing of web service vulnerability','2014','1','fuzz testing;vulnerability analysis;web services','With the wide application of service-oriented architecture and web service technology, the security requirements for web services is increasing. This paper presents a web services vulnerability identification and analysis method based on fuzz testing, including identifying inputs, generating fuzz testing data, performing fuzz testing, monitoring and identification of abnormal fragility, etc., thereby automatically identifies Web services architecture and performs fuzz testing. The low efficiency of abnormal data generation in web services fuzz testing is solved by using optimized grouping method, and the heavy work and inefficiency brought from manual testing can be avoided and the vulnerability of web services can be tested in depth. A web services vulnerability testing tool called WSFuzzer is implemented based on the proposed fuzz testing method, which implements the detection and analysis of web services vulnerabilities through the generation and execution of web services fuzz testing cases. Several vulnerabilities including SQL injection, information leakage, XPath injection are discovered by using WSFuzzer to carry out web services vulnerability fuzz testing, which shows that the proposed method can test web service vulnerabilities with high efficiency and accuracy.','Information and Communications Technologies (ICT 2014), 2014 International Conference on',1,'Wang Chunlei; Liu Li; Liu Qiang','ieee/service oriented architecture security.csv','ieee','\0'),(1720,'A pattern-based method for establishing a cloud-specific information security management system','2013','4',' ISO 27001 Security policies Control selection Threat analysis Information security management system Asset identification privacy Legal compliance Cloud computing security','Abstract Assembling an information security management system (ISMS) according to the ISO 27001 standard is difficult, because the standard provides only very sparse support for system development and documentation. Assembling an ISMS consists of several difficult tasks, e.g., asset identification, threat and risk analysis and security reasoning. Moreover, the standard demands consideration of laws and regulations, as well as privacy concerns. These demands present multi-disciplinary challenges for security engineers. Cloud computing provides scalable IT resources and the challenges of establishing an ISMS increases, because of the significant number of stakeholders and technologies involved and the distribution of clouds among many countries. We analyzed the ISO 27001 demands for these multi-disciplinary challenges and cloud computing systems. Based on these insights, we provide a method that relies upon existing requirements engineering methods and patterns for several security tasks, e.g., context descriptions, threat analysis and policy definition. These can ease the effort of establishing an ISMS and can produce the necessary documentation for an ISO 27001 compliant ISMS. We illustrate our approach using the example of an online bank.','Requirements Engineering',1,'Kristian BeckersIsabelle CôtéStephan FaßbenderMaritta HeiselStefan Hofbauer','springer/soa security.csv','springer','\0'),(1721,'Goal-oriented modeling and verification of feature-oriented product lines','2016','1',' Software engineering Feature oriented software families Goal-oriented requirements engineering Description Logic Feature Models Verification','Abstract Goal models represent requirements and intentions of a software system. They play an important role in the development life cycle of software product lines (SPLs). In the domain engineering phase, goal models guide the development of variability in SPLs by providing the rationale for the variability, while they are used for the configuration of SPLs in the application engineering phase. However, variability in SPLs, which is represented by feature models, usually has design and implementation-induced constraints. When those constraints are not aligned with variability in goal models, the configuration with goal models becomes error prone. To remedy this problem, we propose a description logic (DL)-based approach to represent both models and their relations in a common DL knowledge base. Moreover, we apply reasoning to detect inconsistencies in the variability of goal and feature models. A formal proof is provided to demonstrate the correctness of the reasoning approach. An empirical evaluation shows computational tractability of the inconsistency detection.','Software & Systems Modeling',2,'Mohsen AsadiGerd GrönerBardia MohabbatiDragan Gašević','springer/bpel security.csv','springer',''),(1722,'A lightweight active service migration framework for computational offloading in mobile cloud computing','2014','12',' Mobile cloud computing Mobile application Distributed system Application offloading Lightweight','Abstract Cloud computing enables access to the widespread services and resources in cloud datacenters for mitigating resource limitations in low-potential client devices. Computational cloud is an attractive platform for computational offloading due to the attributes of scalability and availability of resources. Therefore, mobile cloud computing (MCC) leverages the application processing services of computational clouds for enabling computational-intensive and ubiquitous mobile applications on smart mobile devices (SMDs). Computational offloading frameworks focus on offloading intensive mobile applications at different granularity levels which involve resource-intensive mechanism of application profiling and partitioning at runtime. As a result, the energy consumption cost (ECC) and turnaround time of the application is increased. This paper proposes an active service migration (ASM) framework for computational offloading to cloud datacenters, which employs lightweight procedure for the deployment of runtime distributed platform. The proposed framework employs coarse granularity level and simple developmental and deployment procedures for computational offloading in MCC. ASM is evaluated by benchmarking prototype application on the Android devices in the real MCC environment. It is found that the turnaround time of the application reduces up to 45 % and ECC of the application reduces up to 33 % in ASM-based computational offloading as compared to traditional offloading techniques which shows the lightweight nature of the proposed framework for computational offloading.','The Journal of Supercomputing',1,'Muhammad ShirazAbdullah Gani','springer/soa security.csv','springer',''),(1723,'Towards a flexible and secure runtime for embedded devices','2014','','Embedded systems; Security; Service oriented architecture','Advancing towards the Internet of Things, a need for bigger connectivity between every time smaller embedded devices is foreseen. In the near future, heterogeneous resource-restricted devices will probably have a set of services with a strong need for connection. Two needs are envisioned as mandatory: flexibility and security. There is firstly a need for some degree of isolation between services but there is also a need for services to be able to have their runtime altered without having to stop the whole platform. This generates a clash of interests and needs, since achieving both flexibility and security balanced is apparently incompatible. The purpose of this article is to explain the needs and requirements that such systems will most surely have, as well as inspiring technologies and related works, in order to advance towards a platform with flexible and secure services that will add bigger capabilities to the devices.','',1,'Manjón A.R., Simon E., Jean S.','scopus/service oriented architecture security.csv','scopus','\0'),(1724,'Positron: Composing Commitment-Based Protocols','2015','0',' Commitments Commitment protocols Agent communication Communication protocols Protocol composition Verification of multiagent systems Model checking','Abstract We understand a sociotechnical system (STS) as a microsociety in which social entities interact about and via technical entities. A protocol specifies an STS by describing how its members collaborate by giving meaning to their interactions. We restrict ourselves to protocols that specify messages between roles in terms of how they create and affect commitments among the roles. A key idea of our approach, Positron, is that a protocol specifies the accountability of one role to another in addition to the requirements from each role. Specifically, Positron incorporates role accountability and role requirements as two integral aspects of protocol composition. In this way, it seeks to promote collaboration in STSs through natural requirements elicitation; flexibility enactment; and compliance and validation (ascribing accountability for each requirement to a specific role). Positron maps composite protocols to the representations of a well-known model checker as a way to verify protocols to assist in their correct formulation. We evaluate Positron by demonstrating it on real-life protocols.','',2,'Scott N. GerardPankaj R. TelangAnup K. KaliaMunindar P. Singh','springer/bpmn security.csv','springer',''),(1725,'Ontology-Based Context-Aware SLA Management for Cloud Computing','2014','1',' Cloud Computing Service Level Agreement Quality of service Ontology Context','Abstract Cloud Computing represents a new on-demand computing approach that tries to provide resources responding to some pre-set non-functional proprieties specified and negotiated by means of Service Level Agreement (SLAs). In order to avoid costly SLA violations and to duly react to failures and environmental changes, it is necessary to implement some advanced SLA enactment strategies. However, contextual information of the cloud consumer, which has not been deeply elaborated yet, may change at any time, which would significantly affect the Quality of Service (QoS). Therefore, in this paper, our aim is to ameliorate SLA by considering the semantic meaning of SLA concepts and contextual information from cloud consumers. In this regard, we propose a new ontology-based context-aware SLA management for cloud computing. Our approach aims to dynamically adapt cloud services to different variations of consumer’s context while meeting their needs using the benefits of inference in ontology. This maintains a reliable QoS and respects the SLA parameters. The efficiency and effectiveness of the proposed approach is demonstrated in this paper through a simulation.','',1,'Taher LabidiAchraf MtibaaFaiez Gargouri','springer/service oriented architecture security.csv','springer','\0'),(1726,'2013 8th International Workshop on Automation of Software Test, AST 2013 - Proceedings','2013','','','The proceedings contain 24 papers. The topics discussed include: automated scalability testing of software as a service; test algebra for combinatorial testing; functional SOA testing based on constraints; automatic generation of parallel unit tests; profile directed systematic testing of concurrent programs; which compiler optimization options should I use for detecting data races in multithreaded programs?; security testing of the communication among android applications; access control enforcement testing; XSS pattern for attack modeling in testing; automated generation of state abstraction functions using data invariant inference; towards automatic scenario generation from coverage information; test-duo: a framework for generating and executing automated acceptance tests from use cases; and did we test our changes? assessing alignment between tests and development in practice.','',1,'[No author name available]','scopus/soa security.csv','scopus','\0'),(1727,'Serviceorientierte Architekturen für Smart Grids','2013','0','','Zusammenfassung Die Energiewende ist gesellschaftlicher und politischer Konsens. Damit sie gelingen kann, ist eine Modernisierung der Energienetze notwendig, die die Einspeisung dezentraler Erzeuger ermöglicht. Dazu sind detaillierte Informationen zum aktuellen Netzzustand erforderlich. Die Informations- und Kommunikationstechnologie (IKT) bietet die Methoden, über die diese Informationen in Smart Grids zur Verfügung gestellt werden können. Das reibungslose Zusammenspiel dieser Methoden bedingt eine geeignete Architektur, die auch orthogonale Anforderungen wie Datenschutz und -sicherheit realisiert. Wir stellen eine serviceorientierte IKT-Architektur vor, die neben der Integration der notwendigen Datenquellen und -senken bewährte Design-Patterns, auch im Bereich Datenschutz und -sicherheit, einsetzt. Der praktische Nutzen dieser Architektur zeigt sich in realen Anwendungsfällen der Smart-Grids-Modellregion Salzburg.','HMD Praxis der Wirtschaftsinformatik',1,'René Blaschke B.Sc.Dr. Stefan SuhrerProf. (FH) Dr. Dominik Engel','springer/soa security.csv','springer','\0'),(1728,'ULMS: An accelerator for the applications by shifting writing log from local','2010','','Log; Log analysis; Performance; SaaS','Log data is critical to applications and the management and analysis of log data is a hot research topic. Existing log managements are normally tightly integrated with applications themselves, which may lead to problems including performance, local storage efficiency, security and non real-Time functionality. To solve these problems, we present a SaaS method which shifts writing log data from local disk to clouds, at the same time the log management and analysis functionalities are also done by a cloud. We analyze two architectures to implement this method which are Shift-Log-by-WebService and Shift-Log-by- ActiveMQ. Initial experiments show the efficiency of later one. In the future, we can apply this tool to application systems which are based on web and database systems to improve their performances. (Abstract) © 2010 IEEE.','',1,'Zhou L., Zhang Y., Xing C.','scopus/webservice security.csv','scopus','\0'),(1729,'Towards SecureBPMN - Aligning BPMN with the information assurance and security domain','2012','','BPMN; extension; information security & assurance','The participation of business experts in the elicitation and formulation of Information Assurance & Security (IAS) requirements is crucial. Although business experts have security-related knowledge, there is still no formalised business process modelling notation allowing them to express this knowledge in a clear, unambiguous manner. In this paper we outline the foundational basis for SecureBPMN - a graphical security modelling extension for the BPMN 2.0. We also align the BPMN with the IAS domain in order to identify points for the extension. SecureBPMN adopts a holistic approach to IAS and is designed to serve as a \"communication bridge\" between business and security experts. © 2012 Springer-Verlag.','',2,'Cherdantseva Y., Hilton J., Rana O.','scopus/bpmn security.csv','scopus','\0'),(1730,'E-learning ecosystem based on service-oriented cloud computing architecture','2013','1','Cloud Computing; E-learning; E-learning ecosystem; E-learning services; Scalability','Cloud computing refers to internet software as a service, hardware and servers in data centers, which run the applications. Cloud computing is highly scalable and provides virtualized resources as a subscription to users. Use of clouds in education provides great opportunity for students to improve achieved learning outcomes, and learners can gain significant advantages in the new learning environment. Cloud adaption can also help to significantly reduce cost of infrastructure, software and human resources. In this article service oriented cloud computing architecture is used to transfer E-learning into the cloud. These architectures cover challenges of e-learning such as scalability, application development, efficient use of resources, saving expense, and security. © 2013 IEEE.','',1,'Lohmosavi V., Nejad A.F., Hosseini E.M.','scopus/service oriented architecture security.csv','scopus','\0'),(1731,'Intelligent Database for the SOA Using BPEL','2011','0','BPEL, SOA, WS-BPEL, XML, choreography, service orchestration, web services','Proceedings of the 2011 International Conference on Communication, Computing & Security','',2,'Aarti M. Karande and V. N. Chunekar and B. B. Meshram','acm/bpel security.csv','acm','\0'),(1732,'Visions Towards 5G: Technical Requirements and Potential Enablers','2016','0',' 5G mmWave Massive MIMO D2D communication NFV/SDN C-RAN','Abstract Compared to the previous generations of mobile networks, 5G will provide a significant paradigm shift by including beyond state of the art technical solutions, like very high carrier frequencies with massive bandwidths, extreme base station and device densities, and very high number of transceiver antennas. However, unlike the previous generations, it will also be highly integrative and backward compatible: combining the novel 5G air interface and spectrum together with legacy wireless systems like LTE/LTE-A and WiFi, in order to facilitate an umbrella of high-rate coverage and a seamless user experience. In order to support this advances in the radio interface, the core network will also have to reach unprecedented levels of elasticity and intelligence. Spectrum regulation will need to be rethought and significantly improved, whereas energy and cost efficiencies will become one of the key parameters that will steer the 5G design and development. This paper elaborates on the 5G related topics, identifying the key challenges for future research and preliminary 5G standardization activities, as well as providing a comprehensive survey of the current literature.','Wireless Personal Communications',1,'Liljana GavrilovskaValentin RakovicVladimir Atanasovski','springer/soa security.csv','springer',''),(1733,'Business Process Fragments Behavioral Merge','2014','1',' Business process fragment merge behavior adjacency matrix','Abstract In the present work, we propose an approach to merge business process fragments in order to facilitate the reuse of fragments in business process designs. The approach relies on the so-called adjacency matrices. Typically used to handle graphs, this concept represents a new way to systematically merge fragments through their corresponding matrices. At the same time, fragments merging must keep the behavior of the original fragments consisting of their execution scenarios and rule out undesirable ones that may be generated during the merge task. Indeed, such behaviors probably lead to process execution blocking. The proposed approach has been implemented and tested on a collection of fragments and experimental results are provided.','',2,'Mohamed Anis ZemniNejib Ben Hadj-AlouaneAmel Mammar','springer/bpel security.csv','springer',''),(1734,'Control as a means towards accountable services in the cloud','2013','','Accountability; Aspects; Cloud; Control; Service-oriented architecture','Accountability provides the necessary assurance to different stakeholders (customers, auditors, regulators) about the correct execution of the obligations of each party involved in a cloud service. It requires rigorous orchestration of several security mechanisms across services, such as authentication, authorisation, logging, etc. In this paper we advocate that providing control to cloud consumers mitigates a series of risks related to the correct data handling in the cloud. We focus on the specific case of privacy enforcement in cloud platform as a service, to illustrate how a future and more general approach for policy enforcement can provide better accountability in the cloud. © 2013 CRL Publishing Ltd.','',1,'Lotz V., De Oliveira A.S., Sendor J.','scopus/service oriented architecture security.csv','scopus','\0'),(1735,'Steganography using two sided, three sided, and four sided side match methods','2013','7',' Steganography Side match Pixel value differencing Fall off boundary problem Fall in error problem','Abstract In this paper the two sided, three sided and four sided side match steganography methods are proposed. In two sided side match method the two neighboring pixels such as upper and upper-right corner are exploited to take embedding decision. In three sided side match method the three neighboring pixels such as upper, upper-right corner and upper-left corner are exploited to take embedding decision. In four sided side match method the four neighboring pixels such as upper, left, upper-right corner and upper-left corner are exploited to take embedding decision. In each of these methods the fall off boundary problem (FOBP) and fall in error problem (FIEP) are addressed. The FOBP and FIEP conditions are checked while embedding at the sender and while extracting at the receiver. These methods possess large hiding capacity, better imperceptibility and high security.','CSI Transactions on ICT',1,'Gandharba SwainSaroj Kumar Lenka','springer/soa security.csv','springer','\0'),(1736,'Transactional BPEL Processes with AO4BPEL Aspects','2007','0','','Recently, OASIS approved two standards respectively for Web Service composition and for Web Service transactions. Nevertheless, it is still unclear how WS-BPEL and the WS-TX family of specifications interoperate, i.e., how to use atomic transactions and business activities in the context of BPEL processes. In this paper, we present several transactional requirements in BPEL processes and argue that BPEL\'s compensation mechanism provides only limited support for a few of these requirements, e.g., it cannot cope with atomic transactions with the ACID properties. To support transactional BPEL processes, we use the AO4BPEL process container framework. In this framework, the transaction requirements of the process activities are specified declaratively in a deployment descriptor and an aspectbased container is generated automatically to integrate the process execution with the transaction middleware, which is provided as a transaction Web Service based on Apache Kandula.','Web Services, 2007. ECOWS \'07. Fifth European Conference on',2,'A. Charfi; B. Schmeling; M. Mezini','ieee/bpel security.csv','ieee','\0'),(1737,'Business Process Management (BPM) in a Day','2013','0','','Proceedings of the 2013 Conference of the Center for Advanced Studies on Collaborative Research','',2,'Gary Bist and Kenneth K. Cheung','acm/bpel security.csv','acm','\0'),(1738,'The Method of Emergency Rescue Program Generation in Civil Aviation Airport of China','2013','1',' Civil Aviation Airport Emergency Rescue Program SWRL semantic reasoning SQWRL','Abstract Although, at present, a rather complete emergency rescue system of airport has been formed in civil aviation of China, most of the emergency rescue programs for disposing emergency are still formed manually by means of experiences of decision-makers. The paper presents an auto-generated method of emergency rescue program for airport based on contingency plans of airport and airport emergency business process management notation ontology (AE_BPMNO) which makes the programs generated automatically come true via the construction of SWRL semantic rules and semantic queries based on SQWRL and provides auxiliary emergency command and disposal of airport with methodological support.','',2,'Wang HongZhou Wen-taoWang Jing','springer/bpmn security.csv','springer','\0'),(1739,'Efficient Security Implementations in eGovernment Workflows: a Practical Application','2010','0','','Cross-domain, electronic business processes with eGovernment webservices involved are highly sensitive in terms of security. Existing technologies for electronic business processes do not offer satisfying methods for the efficient implementation of security requirements. The existence of lots of different standards in the field of webservice security makes it difficult for software developers to incorporate security requirements into their service landscape. With a new approach to minimize the risk of security vulnerabilities in highly sensitive business processes and to enable a faster deployment, this paper presents a research project in which model-driven architecture paradigms are applied to the implementation of IT security requirements in a practical eGovernment usecase.','Telecommunications: The Infrastructure for the 21st Century (WTC), 2010',1,'T. Bleier; A. Bonitz; C. Wagner','ieee/webservice security.csv','ieee','\0'),(1740,'Unifying and targeting cultural activities via events modelling and profiling','2012','1',' Event modelling Profiling Recommendation','Abstract Today, people have only limited, valuable spare time at their hands which they want to fill in as good as possible according to their interests. At the same time, cultural institutions are trying to attract interested communities to their carefully planned cultural programs. To distribute these cultural events to the right people, we developed a framework that will aggregate, enrich, recommend and distribute these events as targeted as possible. The aggregated events are published as Linked Open Data using an RDF/OWL representation of the EventsML-G2 standard. These event items are categorised and enriched via smart indexing and linked open datasets available on the Web of data. For recommending the events to the end-user, a global profile of the end-user is automatically constructed by aggregating his profile information from all user communities the user trusts and is registered to. This way, the recommendations take profile information into account from different communities, which has a detrimental effect on the recommendations. As such, the ultimate goal is to provide an open, user-friendly recommendation platform that harnesses the end-user with a tool to access useful event information that goes beyond basic information retrieval. At the same time, we provide the (inter)national cultural community with standardised mechanisms to describe/distribute event and profile information.','Multimedia Tools and Applications',2,'Sam CoppensErik MannensToon De PessemierKristof GeebelenHendrik DacquinDavy Van DeursenRik Van de Walle','springer/bpel security.csv','springer','\0'),(1741,'A Declarative Framework for Specifying and Enforcing Purpose-Aware Policies','2015','0','','Abstract Purpose is crucial for privacy protection as it makes users confident that their personal data are processed as intended. Available proposals for the specification and enforcement of purpose-aware policies are unsatisfactory for their ambiguous semantics of purposes and/or lack of support to the run-time enforcement of policies. In this paper, we propose a declarative framework based on a first-order temporal logic that allows us to give a precise semantics to purpose-aware policies and to reuse algorithms for the design of a run-time monitor enforcing purpose-aware policies. We also show the complexity of the generation and use of the monitor which, to the best of our knowledge, is the first such a result in literature on purpose-aware policies.','',2,'Riccardo De MasellisChiara GhidiniSilvio Ranise','springer/bpmn security.csv','springer',''),(1742,'Design rationale capture for process improvement in the globalised enterprise: an industrial study','2013','0',' Design rationale Process improvement Problem oriented engineering Assurance-driven design','Abstract Design rationale fills in the gaps between the original requirements of a system and the finished product encompassing decisions, constraints and other information that influenced the outcome. Existing research in Software Engineering corroborates the importance of design rationale to capture knowledge assets, particularly in the context of the global enterprise, with its increased reliance on IT systems, and risk of knowledge loss through staff movement and attrition. Despite this, the practice of design rationale capture is not as extensive as could be expected due to reasons which include time and budget constraints, the lack of standards and tools, and some uncertainty as to its actual added value. In this paper, we address the viability and benefits of capturing design rationale as a by-product of design in the context of a real-world global organisational setting. This was achieved through a study in which an emerging design approach—Problem Oriented Engineering—was applied in the context of a global financial institution to address a critical IT problem as part of its software supplier’s client resolution process. The study provides some positive evidence that the approach-guided knowledge capture of key design rationale elements and that it combined well with existing practices within the organisation and even led to improvement to one of their key processes.','Software & Systems Modeling',2,'A. NkwochaJ. G. HallL. Rapanotti','springer/bpmn security.csv','springer','\0'),(1743,'HLA-Based SaaS-Oriented Simulation Frameworks','2014','0','HLA;SaaS (Software-as-a-Service);service-oriented design;simulation frameworks','SaaS (Software-as-a-Service) as a part of cloud computing is a new approach for software construction, evolution, and delivery. This paper proposes HLA-based SaaS-oriented simulation frameworks where simulation services will be organized into a SaaS framework running in a cloud environment. This SaaS-oriented frameworks can be applied to multiple application domains but illustrated by using HLA (High-Level Architecture). The framework will allow integration of a variety of modules, service-oriented design, flexible customization, multi-granularity simulation, high-performance computing, and system security. It has the potential to reduce system development time, and allows simulation to be run in a cloud environment taking advantages of resources offered by the cloud.','Service Oriented System Engineering (SOSE), 2014 IEEE 8th International Symposium on',1,'W. Xiong; W. T. Tsai','ieee/service oriented architecture security.csv','ieee','\0'),(1744,'Distributed ECA Rules for Data Management Policies','2013','0','','Abstract Data management policies for a distributed system that handles “big data” usually require a core feature set provided by a rule framework. In this paper, we describe a viable core feature set, partially extending the event-condition-action framework, based on our experience in developing and applying the integrated Rule-Oriented Data-management System [1,2,3]. We attempt to formalize some aspects of this feature set, focusing on location-aware and asynchronous execution of rules, based on the Calculus of Concurrent Systems [4].','',1,'Hao XuArcot RajasekarReagan W. MooreMike Wan','springer/microservice security.CSV','springer',''),(1745,'Improving the security level of the FUSION@ multi-agent architecture','2012','3','Case-based reasoning; Multi-agent systems; Security; Service-oriented architectures','The use of architectures based on services and multi-agent systems has become an increasingly important part of the solution set used for the development of distributed systems. Nevertheless, these models pose a variety of problems with regards to security. This article presents the Adaptive Intrusion Detection Multi-agent System (AIDeMaS), a mechanism that has been designed to detect and block malicious SOAP messages within distributed systems built by service based architectures. AIDeMaS has been implemented as part of FUSION@ a multi-agent architecture that facilitates the integration of distributed services and applications to optimize the construction of highly-dynamic multi-agent systems. One of the main features of AIDeMaS is that is employs case-based reasoning mechanisms, which provide it with great learning and adaptation capabilities that can be used for classifying SOAP messages. This research presents a case study that uses the ALZ-MAS system, a multi-agent system built around FUSION@ in order to confirm the effectiveness of AIDeMaS. The preliminary results are presented in this paper. © 2011 Elsevier Ltd. All rights reserved.','',1,'Pinzón C.I., De Paz J.F., Tapia D.I., Bajo J., Corchado J.M.','scopus/service oriented architecture security.csv','scopus','\0'),(1746,'Profitability and Cost Management of Trustworthy Composite Services','2012','0','','Abstract Building business solutions may require combining multiple existing services. In SOA paradigm this can be achieved using composite services. Composite services may be in turn recursively composed with other services into higher level solutions. The number of component services that need to be aggregated may be large and dynamically changing. Additionally, the component services may vary in their trustworthiness and cost and in their importance to the value of the composite service. Therefore, determining and maintaining the optimal composition in terms of its short-term and long-term profitability and building and expanding consumer base for composite service providers are challenging goals especially in the competitive business service environments. This paper addresses how to create profitable, consumer-focused and trustworthy composite services through optimising pricing and managing the cost and the trustworthiness of those services. The techniques described support consumer differentiation, prioritisation of offered services and dynamic capacity-dependent component charging.','',1,'Hisain ElshaafiJimmy McGibneyDmitri Botvich','springer/service oriented architecture security.csv','springer','\0'),(1747,'A study on cloud based SOA suite for electronic healthcare records integration','2016','','Cloud; EHR; Healthcare; Networks; SOA','In order to exchange healthcare information reliability, security and cost-effectiveness are three important factors where healthcare industry has to focus upon. Versatile platforms for enterprise-wide information sharing are needed for payers and providers. To provide quality care to patient’s accurate information through networks should be required for clinicians and integrated information for the business operation is needed for administrators. Information access from various systems like innovation, performance improvement, demand, monetary and many such other systems is required from both the sides of organization. These organizations must share data externally from application data, medical records of all patients, medicinal data, chemistry reports and symptomatic information from various mediator bodies and strictly following the policies and procedures for storing, modifying, disseminating the electronic health records (EHR). In this era most of the Health care industries are moving to cloud services for processing and storing the healthcare data. There is a need to build cloud based SOA suite for EHR integration. This SOA suite will help healthcare organizations with widespread integrated capabilities and a fused middleware platform. In this paper we study a cloud based SOA suite for EHR integration by empowering the transparent, extensible, protected methods for distributing real and secured information only for intended recipients. © Springer India 2016.','',1,'Rallapalli S., Gondkar R.R.','scopus/soa security.csv','scopus',''),(1748,'Scalability patterns for platform-as-a-service','2012','7','Cloud; Platform-as-a-Service; Scalability','Platform-as-a-Service is a cloud-based approach that provides enterprises with all the functionalities for developing, deploying, and administering services, without the burden of installing, configuring, and managing the underlying middleware, operating system, and hardware. In this context, scalability becomes a fundamental requirement, and appropriate solutions need to be studied and evaluated. In this paper, we present different scalability patterns for a Platform-as-a-Service infrastructure and a two-level approach to performance monitoring allowing automatic scalability management. We also provide a performance evaluation of the scalability patterns on a Service-Oriented Architecture (SOA) PaaS, which considers the impact on performance of SOA security standards. © 2012 IEEE.','',1,'Ardagna C.A., Damiani E., Frati F., Rebeccani D., Ughetti M.','scopus/service oriented architecture security.csv','scopus','\0'),(1749,'A federated architecture approach for Internet of Things security','2014','1','Cyber attacks;IoT;REST;SOAP;Web Services;federated networks;security','Internet of Things (IoT) refers to the capability to connect, communicate and remotely manage a large number of networked, automated devices via the Internet. IoT is becoming as part of daily life and aims to extend pervasive communication and networking anytime, anywhere with any device. In this context security requirements and architectures must be properly formulated, implemented in order to enforce the security policies during their life-cycle. This paper provides a survey and analysis of security in the area of IoT introducing an approach addressed to overcome the conventional security solutions and deploy a federated architecture for dynamic prevention, detection, diagnosis, isolation, and countermeasures against cyber attacks. Based on the analysis of the most common web services, the paper defines the security needs proposing a federated model to design an architecture for secure exchange of services in IoT paradigm.','Euro Med Telco Conference (EMTC), 2014',1,'M. Leo; F. Battisti; M. Carli; A. Neri','ieee/service oriented architecture security.csv','ieee','\0'),(1750,'Editorial','2013','0','','','Computer Science - Research and Development',1,'Gregor EngelsMarkus Luckey','springer/service oriented architecture security.csv','springer','\0'),(1751,'Automatic Detection and Semantic Formalisation of Business Rules','2014','0',' #eswcphd2014Emani','Abstract Experts in construction engineering are overwhelmed by regulatory texts. It is a heavy task to go through these texts and get an unambiguous list of requirements they contain. Moreover, with regard to the number of texts and the diversity of their writers, we cannot neglect the possibility of getting inconsistencies. Finally, these requirements are to be put close to digital representation of buildings to detect potential non-conformities. This paper examines these problems and envisions solutions to help experts. We thus envisage to automate detection and extraction of business rules in regulatory texts. Next, we propose to formalise identified requirements as SPARQL queries. These queries will serve for conformity checking on OWL -representation of buildings. Moreover, we plan to leverage these queries to detect inconsistencies in regulatory texts.','',1,'Cheikh Kacfah Emani','springer/service oriented architecture security.csv','springer','\0'),(1752,'Anomaly detection system based on service oriented architecture','2012','','','The problem of the network security has been taken up since eighties and has been developed up to present day. A major problem of an automatic intrusion detection is that, it is difficult to make a difference between a normal and an abnormal user behaviour. We propose the framework of a distributed anomaly detection system based on Service Oriented Architecture (SOA). The main idea of SOA is to treat applications, systems and processes as encapsulated components, which are called services. These services are represented by input and output parameters and the semantic description of their functionalities. We assume that all the functionalities of our system are delivered by the Web services. © 2012 Springer-Verlag.','',1,'Kołaczek G., Prusiewicz A.','scopus/service oriented architecture security.csv','scopus','\0'),(1753,'Discerning flooding attack from flash crowd based on traffic patterns using entropy detection method','2015','','Entropy; Flash Crowd; Flooding Attack','Computing Industry is moving towards Service Oriented Architecture at a fast pace. This brings network security to the forefront of major concerns to an organization. Ensuring round the clock uninterrupted service to the clients becomes a top priority to any organization. Flooding Attack is one of the costliest attacks that use a host to overwhelm a server, causing complete system crash. Flash Crowd is an unexpected rise in traffic caused by legitimate users. Both flooding which is one of the types of DoS attack and Flash crowd creates abnormal traffic condition, but in order to improve good put, the server must be deployed with the mechanism that should classify legitimate and malicious call requests. The on-going attacks usually similar to each other compared to the flows of flash crowd so the provocation is to recognize flooding attacks from flash crowd. The recognition of flooding attack is done by, using the Entropy based detection method. © 2015 IEEE.','',1,'Rani T.S., Sindhura V., Rao G.R., Pranathi K.','scopus/service oriented architecture security.csv','scopus','\0'),(1754,'A model for verification of web service maneuvering: A survey','2012','','Buchi Automata and Web Service Maneuvering; Muller Automata','The Internet is going through several major changes. It has become a vehicle of Web services rather than just a repository of information. Web Services are heterogeneously developed software components invoked over the network viz. the Internet, Web Services are the most famous implementation of service-oriented architectures (SOA) that has brought some challenging research issues related to security, Quality of service. Among all the challenges Web Service Composition turns out to be a major research, because it supports business-business enterprise application integration. Web services Maneuvering is the ability to create a new value-added service by integrating related Web services together. After Composing the Web Services, Only limited number verification techniques are available. The Correctness properties of the composed service will be effective if Muller Automata and Buchi Automata is used, because these automata are suitable both for deterministic and non-deterministic system. In this paper we have taken a survey report for verification of web service maneuvering, existing techniques are suitable only for deterministic system rather than non-deterministic system © 2012 IEEE.','',1,'Danapaquiame N., Ilavarasan E.','scopus/service oriented architecture security.csv','scopus','\0'),(1755,'A top-down event-driven approach for concurrent activity recognition','2014','3',' Concurrent activity recognition Event detection Top-down Region of interest (ROI) Workflow','Abstract In this paper a framework for automatic online workflow recognition in industrial environments where the issue of concurrent activities rises, is presented. The framework consists of three main parts: The first part is devoted to detecting activity in specific Regions of Interest (ROIs) of the video sequence. This is effected by separating each frame into ROIs and representing the resulting subimages through feature vectors. By observing these vectors we can determine when there is action in a particular ROI. The second part of the framework lies in examining whether the detected activity corresponds to a workflow related event. This is accomplished by HMM modeling. Finally, the third part employs a string matching based technique to confirm the validity of the observed sequence of events or correct any detection or classification errors. This last step also addresses a top down approach by informing lower system levels (such as image representation or object tracking) about the errors committed. The performance of the proposed approach is thoroughly evaluated under real-life complex visual workflow understanding scenarios, in an industrial plant. The obtained results are compared and discussed.','Multimedia Tools and Applications',1,'Athanasios S. VoulodimosDimitrios I. KosmopoulosNikolaos D. DoulamisTheodora A. Varvarigou','springer/service oriented architecture security.csv','springer','\0'),(1756,'Cloud integration — Strategy to connect applications to cloud','2013','1','Business to Business (B2B);Cloud Computing;Cloud Integration;Cloud to Cloud;On-Premise to Cloud','Cloud Computing is being widely hailed path by enterprises to realize benefits without compromising control. However, enterprises concern is the integration of applications hosted both on premise, Cloud and partner environments. In spite of enterprise\'s strategic imperatives to meet their business goals by building integration services between these environments, new integration challenges are posed with the advent of areas like Cloud, Social, and Mobile that are augmenting to the existing complexity. The key challenges being Performance and Usability of these services which cut across Legacy, On Premise, Cloud applications and SaaS applications. Enterprises are spending highly on these integrations as these are crucial for their business process to be executed seamlessly. Key Patterns w.r.t Enterprises Integration considering the widely adopted Cloud scenario are: On-Premise Application to Cloud Application Integration: Cloud Application to On-Premise Application Integration: Cloud to Cloud Application Integration: B2B Integration: Web API Publishing This paper helps in adoption of an efficient integration strategy to connect applications on cloud with effective cost benefits and lowered total cost of ownership (TCO).','2013 Annual IEEE India Conference (INDICON)',1,'N. V. S. Kolluru; N. Mantha','ieee/service oriented architecture security.csv','ieee','\0'),(1757,'Mathoid: Robust, Scalable, Fast and Accessible Math Rendering for Wikipedia','2014','0','','Abstract Wikipedia is the first address for scientists who want to recap basic mathematical and physical laws and concepts. Today, formulae in those pages are displayed as Portable Network Graphics images. Those images do not integrate well into the text, can not be edited after copying, are inaccessible to screen readers for people with special needs, do not support line breaks for small screens and do not scale for high resolution devices. Mathoid improves this situation and converts formulae specified by Wikipedia editors in a like input format to MathML, with Scalable Vector Graphics images as a fallback solution.','',1,'Moritz SchubotzGabriel Wicke','springer/webservice security.csv','springer','\0'),(1758,'Active protection of patient data by reverse cloud approach','2013','1','Network/Communications Infrastructures and Architectures for Healthcare;Security and privacy on eHealth;eHealth information and network Infrastructure','Experiments to move sensitive patient data into cloud based solutions, and their usage in mobile applications, were seen skeptically by users and authorities, as concerns about long-term safe storage as well as protected communication could not been addressed convincingly in these initial approaches. This paper introduces a new approach of a “hybrid” or “reverse” cloud, which combines the advantage of centralised distribution and maintenance of application-oriented software, while at the same time sensitive data remain in already certified, protected areas. The approach also uses an innovative modular software concept based on “Generic Enablers”, and is being tested currently in seven clinical field trials in seven European countries.','e-Health Networking, Applications & Services (Healthcom), 2013 IEEE 15th International Conference on',1,'T. Pfeifer; S. Covaci','ieee/service oriented architecture security.csv','ieee','\0'),(1759,'The design of an ontology-based service-oriented architecture framework for traditional chinese medicine healthcare','2012','0','ontology;service-oriented architecture (SOA);traditional Chinese medicine (TCM)','In order to promote the modernization of traditional Chinese medicine (TCM), a platform that allows different legacy TCM information systems to interact, intercommunicate, and interoperate with each other by using standard scientific format and systematical information management is necessary. In this study, a design of an ontology-based service-oriented architecture (SOA) framework is proposed to boost the scientific standardization and systematical management of TCM information. By utilizing the information and communication technologies (ICT), this latitudinal framework is designed to have four layers, including a presentation layer for services discovery and selection, a business layer for services operation, a data access layer for database synchronization management, and a technology layer. A longitudinal information technology layer that allows data integration, access, and exchange under the privacy and security policy is charging of monitoring and managing information activities in the four layers.','e-Health Networking, Applications and Services (Healthcom), 2012 IEEE 14th International Conference on',1,'Shih-Wei Chen; Yu-Ting Tseng; Tsai-Ya Lai','ieee/service oriented architecture security.csv','ieee','\0'),(1760,'Collaborative learning in the clouds','2013','6',' Cloud computing Virtualization Private clouds','Abstract Cloud computing has emerged as one of the most highly discussed topics both in the academic community and in the computing industry. While most of the work that has been conducted to explore this field focuses either on establishing the basis for cloud computing or almost exclusively on the issues surrounding security and data privacy, this paper takes the first exploratory step into exploring the actual internal working of cloud computing and demonstrates its viability for organizations, more specifically educational establishments . The paper starts by introducing the most important key clouds computing concepts, including virtualization technologies, Web services and Service Oriented Architectures (SOA), and distributed computing. Light will be then shed on the impact and potential benefits of cloud computing on teaching and learning in educational institutions. The paper closes by describing building a private cloud inside educational institution and highlights its offerings for students, staff and lecturers.','Information Systems Frontiers',1,'Hajar MousannifIsmail KhalilGabriele Kotsis','springer/service oriented architecture security.csv','springer','\0'),(1761,'Identifying Business Rules to Legacy Systems Reengineering Based on BPM and SOA','2012','1',' business rules legacy systems reengineering BPM SOA','Abstract Legacy systems include information and procedures which are fundamental to the organization. However, to maintain a legacy system is a complex and expensive task. Currently, researches propose the legacy systems reengineering using BPM and SOA. The benefits of the reengineering using BPM and SOA are software reuse and documentation of the business processes. However, practical experiences demonstrate that reengineering using BPM and SOA are not easy to apply, because there are no tools that help the developers understand the legacy system behavior. This paper presents a tool to extract the legacy system behavior. Based on the business rules concept, we propose a tool to identify the business rules contained legacy source code. In addition, our technique also enables the discovery of the partial order execution of the business rules during the runtime legacy system.','',1,'Gleison S. do NascimentoCirano IochpeLucinéia ThomAndré C. KalsingÁlvaro Moreira','springer/service oriented architecture security.csv','springer','\0'),(1762,'Software Performance Modeling','2012','1','','Abstract Ideally, a software development methodology should include both the ability to specify non-functional requirements and to analyze them starting early in the lifecycle; the goal is to verify whether the system under development would be able to meet such requirements. This chapter considers quantitative performance analysis of UML software models annotated with performance attributes according to the standard “UML Profile for Modeling and Analysis of Real-Time and Embedded Systems” (MARTE). The chapter describes a model transformation chain named PUMA (Performance by Unified Model Analysis) that enables the integration of performance analysis in a UML-based software development process, by automating the derivation of performance models from UML+MARTE software models, and by facilitating the interoperability of UML tools and performance tools. PUMA uses an intermediate model called “Core Scenario Model” (CSM) to bridge the gap between different kinds of software models accepted as input and different kinds of performance models generated as output. Transformation principles are described for transforming two kinds of UML behaviour representation (sequence and activity diagrams) into two kinds of performance models (Layered Queueing Networks and stochastic Petri nets). Next, PUMA extensions are described for two classes of software systems: service-oriented architecture (SOA) and software product lines (SPL).','',1,'Dorina C. PetriuMohammad AlhajRasha Tawhid','springer/service oriented architecture security.csv','springer','\0'),(1763,'11th International Symposium on Distributed Computing and Artificial Intelligence 2014, DCAI 2014','2014','','','The proceedings contain 64 papers. The special focus in this conference is on Distributed Computing and Artificial Intelligence. The topics include: Reachability modeling for multimodal networks prototyping; hybrid solution framework for supply chain problems; scheduling of mobile robots with preemptive tasks; multimodal processes approach to supply chain modeling; behavioral macroeconomics and agent-based macroeconomics; designing a homo psychologicus more psychologicus; differences between entrepreneurs and managers in large organizations; the empirical microstructure of agent-based models; households debt behavior and financial instability; firm size distribution in oblivious equilibrium model with quality ladder; modeling uncertainty in banking networks; from design to production exploiting workflow patterns; distributed and guided genetic algorithm for humanitarian relief planning in disaster case; software fault prediction based on improved fuzzy clustering; SOA modeling based on MDA; intelligent lighting control system; multimodal conversational agents for E-learning; a multi-agent mechanism for human resources allocation in a distributed software development environment; multi-agent web recommendations; designing strategies for improving the performance of groups in collective environments; multiagent application in mobile environments to data collection in park zones; exploring the role of macroeconomic mechanisms in voluntary resource provisioning in community network clouds; mobile access to sensor network; building scalable view module of object-oriented database; modelling an orientation system based on speculative computation; stable learning for neural network tomography by using back projected image; security considerations for patient telemonitoring schemes through wireless networks; development of an ontology for supporting diagnosis in psychiatry; augmented reality sign language teaching model for deaf children; the case of physical activity and childhood obesity; the absorptive capacity-based view of training; LIWC-based sentiment analysis in Spanish product reviews; data extraction tool to analyse, transform and store real data from electricity markets; a review of the security in social networks and internet; extracting sentences describing biomolecular events from the biomedical literature; a graph-based approach to extract keywords from tweets; a threshold scheme for 3D objects based on cellular automata; 2-scene comic creating system based on the distribution of picture state transition; a brief approach to the ear recognition process; integration of mobile robot navigation on a control kernel middleware based system; shared map convolutional neural networks for real-time mobile image recognition; learning Bayesian networks using probability vectors; a constraint programming approach to the Zahn\'s decision problem; neural-based method of measuring exchange-rate impact on international companies\' revenue; parallel batch pattern training algorithm for MLP with two hidden layers on many-core system; a bee-inspired data clustering approach to design RBF neural network classifiers and an item influence-centric algorithm for recommender systems.','',1,'[No author name available]','scopus/soa security.csv','scopus','\0'),(1764,'Recovering Role-Based Access Control Security Models from Dynamic Web Applications','2012','3','','Abstract Security of dynamic web applications is a serious issue. While Model Driven Architecture (MDA) techniques can be used to generate applications with given access control security properties, analysis of existing web applications is more problematic. In this paper we present a model transformation technique to automatically construct a role-based access control (RBAC) security model of dynamic web applications from previously recovered structural and behavioral models. The SecureUML model generated by this technique can be used to check for security properties of the original application. We demonstrate our approach by constructing an RBAC security model of PhpBB, a popular internet bulletin board system.','',2,'Manar H. AlalfiJames R. CordyThomas R. Dean','springer/bpel security.csv','springer','\0'),(1765,'TMR: Towards a Trusted MapReduce Infrastructure','2012','4','MapReduce Security;Remote Attestation;Trusted Cloud;Trusted Computing','MapReduce systems deployed over an open infrastructure such as a cloud have attracted much attention, due to the significant reductions in the costs entailed in satisfying both the computation and storage demands. However, in these systems, the integrity of MapReduce applications is subject to significant threats. Recent research mainly focuses on replication-based integrity verification schemes. However, inevitable critical deficiencies restrict its usage. In this paper, we propose a Trusted MapReduce (TMR) framework to integrate MapReduce systems with the TCG Trusted Computing infrastructure. TMR effectively uses remote attestations to achieve efficient and deterministic integrity verification. We propose a split and parallel attestation schema to reduce latency and eliminate scalability limitations when employing the Trusted Computing mechanisms. We implemented TMR on the Hadoop MapReduce system. Experiments showed that a high strength integrity assurance has been achieved, and the overheads can easily be managed to less than 1% for an industry-strength implementation.','2012 IEEE Eighth World Congress on Services',1,'A. Ruan; A. Martin','ieee/service oriented architecture security.csv','ieee','\0'),(1766,'Towards CIM to PIM transformation: From secure business processes defined in BPMN to use-cases','2007','23','BPMN; Business processes; MDA; QVT; Security requirement','The software community is currently paying attention to model transformation. The MDA approach is particularly orientated towards solving the problems of time, cost and quality associated with software creation. Enterprises are, moreover, aware of the importance that business processes and security have in relation to their competitive position and performance. In our previous work, we have proposed a BPMN extension which can be used to define security requirement in business process specifications. A Secure Business Process description is that of computation independent models in an MDA context. In this paper we propose a CIM to PIM transformation composed of QVT rules. Various UML use cases, which will be part of an information system, are obtained from the secure business process description. © Springer-Verlag Berlin Heidelberg 2007.','',2,'Rodríguez A., Fernández-Medina E., Piattini M.','scopus/bpmn security.csv','scopus',''),(1767,'Worst-input mutation approach to web services vulnerability testing based on SOAP messages','2014','0','SOAP message;Web service vulnerability;mutation operator;security testing;test case generation','The growing popularity and application of Web services have led to increased attention regarding the vulnerability of software based on these services. Vulnerability testing examines the trustworthiness and reduces the security risks of software systems. This paper proposes a worst-input mutation approach for testing Web service vulnerability based on Simple Object Access Protocol (SOAP) messages. Based on characteristics of SOAP messages, the proposed approach uses the farthest neighbor concept to guide generation of the test suite. The corresponding automatic test case generation algorithm, namely, the Test Case generation based on the Farthest Neighbor (TCFN), is also presented. The method involves partitioning the input domain into sub-domains according to the number and type of SOAP message parameters in the TCFN, selecting the candidate test case whose distance is the farthest from all executed test cases, and applying it to test the Web service. We also implement and describe a prototype Web service vulnerability testing tool. The tool was applied to the testing of Web services on the Internet. The experimental results show that the proposed approach can find more vulnerability faults than other related approaches.','Tsinghua Science and Technology',1,'J. Chen; H. Wang; D. Towey; C. Mao; R. Huang; Y. Zhan','ieee/service oriented architecture security.csv','ieee','\0'),(1768,'On-line Service for Teaching Parallel Programming','2015','0',' Parallel computing Partitioned global address space PCJ On-line tools Java C','Abstract With the wide adoption of the multicore and multiprocessor systems, parallel programming becomes very important element of the computer science education. However, the number of students exposed to the parallel programming is still limited and it is difficult to increase this number using traditional approach to teaching. The difficulties are caused, amongst others, by the parallel tools, libraries and programming models. The parallel programming using the message passing model is difficult, the shared memory model is easier to learn but writing codes which scales well is not easy. There is quite potential in the PGAS languages but they are not widely popularized. Finally, the teaching of scalable parallel programming requires access to the large computational systems which is not easy to obtain and even then, the operating systems and its specific features like operating and queueing systems provide students with additional challenges. In this paper we present extension of the developed by us ZawodyWeb system for on-line validation of the programs sent by the students. The ZawodyWeb system has been extended to support parallel programs written in different programming paradigms. With the help of UNICORE middleware, it allows to run students problems on the large scale production facilities. The added value is simple web interface which reduces all peculiarities of the large multiprocessor computers. The developed by us system has been verified during the parallel programming course for the undergraduate students from the computer science program.','',1,'Marek NowickiMaciej MarchwianyMaciej SzpindlerPiotr Bała','springer/service oriented architecture security.csv','springer',''),(1769,'Cloud Service Localisation','2012','0',' Cloud services Service localisation Service internationalisation Language governance localisation','Abstract The essence of cloud computing is the provision of software and hardware services to a range of users in different locations. The aim of cloud service localisation is to facilitate the internationalisation and localisation of cloud services by allowing their adaption to different locales. We address the lingual localisation by providing service-level language translation techniques to adopt services to different languages and regulatory localisation by providing standards-based mappings to achieve regulatory compliance with regionally varying laws, standards and regulations. The aim is to support and enforce the explicit modelling of aspects particularly relevant to localisation and runtime support consisting of tools and middleware services to automating the deployment based on models of locales, driven by the two localisation dimensions. We focus here on an ontology-based conceptual information model that integrates locale specification in a coherent way.','',2,'Claus Pahl','springer/bpel security.csv','springer','\0'),(1770,'Web service selection on the basis of QoS parameter','2014','0','MCDM;QoS;RA;SOA;UDDI;URL','In the present day situation, web service plays an important role in companies for sharing information. But due to the availability of large amount of web services that offer identical functionality, it is very difficult for the users to select the best service. This paper provides a model for efficiently selecting the web services among the set of existing web services. A web service negotiator has been used to verify the QoS information published by the publisher. A stability analyzer has been used to assign the stability score to the web service if it consistently provides a good service otherwise assign a low stability score to that web service. The ranking of the web service has been done using the AHP and TOPSIS. The highest ranked web services then given to the user to fulfill his requirements.','Contemporary Computing (IC3), 2014 Seventh International Conference on',1,'N. Negi; S. Chandra','ieee/soa security.csv','ieee','\0'),(1771,'An efficient algorithm for partially matched services in internet of services','2016','0',' Emergency service selection Quality of Service (QoS) Internet of Things (IoS) Emergency service ranking Partial matching','Abstract Internet of Things (IoT) connects billions of devices in an Internet-like structure. Each device encapsulated as a real-world service which provides functionality and exchanges information with other devices. This large-scale information exchange results in new interactions between things and people. Unlike traditional web services, internet of services is highly dynamic and continuously changing due to constant degrade, vanish and possibly reappear of the devices, this opens a new challenge in the process of resource discovery and selection. In response to increasing numbers of services in the discovery and selection process, there is a corresponding increase in number of service consumers and consequent diversity of quality of service (QoS) available. Increase in both sides’ leads to the diversity in the demand and supply of services, which would result in the partial match of the requirements and offers. This paper proposed an IoT service ranking and selection algorithm by considering multiple QoS requirements and allowing partially matched services to be counted as a candidate for the selection process. One of the applications of IoT sensory data that attracts many researchers is transportation especially emergency and accident services which is used as a case study in this paper. Experimental results from real-world services showed that the proposed method achieved significant improvement in the accuracy and performance in the selection process.','Personal and Ubiquitous Computing',1,'Mariwan AhmedLu LiuJames HardyBo YuanNick Antonopoulos','springer/service oriented architecture security.csv','springer',''),(1772,'Protecting Software as a Service in the Clouds by Validation','2013','0',' SaaS Cloud Computing Security Checking Rule Specification','Abstract The cloud computing has provided customers with various services at its SaaS layer though, few work has been done on the security checking of messages exchanged between a customer and a service provider at SaaS so as to protect SaaS. In this paper we propose a validation model to investigate the SaaS security issue. Rather than installing a set of probes as we have done for the testing web services, in this model we introduce a validation service that plays the role of a firewall and protects our SaaS by verifying the correctness of messages with respect to a set of predefined security rules and forwarding them to their real destinations if they pass the verification or rejecting them otherwise. We develop a prototype model based on the tool known as RV4WS which was developed in our early study on web service runtime verification, as well as a checking engine RVEngine to verify our checking algorithm for the model. A survey on how to use this model for the services deployed on Google App Engine, Window Azure and Oracle Java Cloud Service is also presented.','',1,'Tien-Dung CaoKevin Chiew','springer/service oriented architecture security.csv','springer','\0'),(1773,'Self-adaptable media service architecture for guaranteeing reliable multimedia services','2012','2',' Adaptive multimedia service Dynamic multimedia service composition Reliability SAMSA Self-Adaptable architecture Video-on-demand','Abstract The main objective of this paper is to design and develop a Self-Adaptable Media Service Architecture (SAMSA) for providing reliable dynamic composite multimedia service through policy-based actions. The multimedia services such as media retrieval, transcoding, scaling and display services are combined based on the preferences of the user to create a dynamic composite multimedia service called as Video-on-Demand service. Such distributed multimedia services deployed using Service Oriented Architecture (SOA) can be accessed in heterogeneous environments that are prone to changes during run-time. To provide reliable and adaptive multimedia services, a powerful self-adaptable architecture with dynamic compositions of multimedia services is necessary to adapt during run-time and react to the environment. The adaptability in this proposed architecture is achieved by enabling the service providers to Monitor, Analyze and Act on the defined policies that support customization of compositions of multimedia services and guarantee the Quality of Service (QoS) provisioning. The Media Service Monitor (MSM) observes the business and quality metrics associated with the multimedia services during run-time. The monitored results are analyzed by Monitored Results Analyzer (MRA) which identifies the type and location of the fault. The Adaptive Media Service Manager (AMSM) takes corrective actions based on the monitored results, through the policies defined as an extension of WS-Policy (Web Service—Policy framework). The effectiveness of the proposed Self-Adaptable Media Service Architecture (SAMSA) has been evaluated on Dynamic Composite Real-time Video-on-Demand Web Service (DCRVoDWS) for a maximum of 200 simultaneous client’s requests. The analysis of results shows that the proposed architecture provides better improvement on reliability, response time and user satisfaction.','Multimedia Tools and Applications',2,'G. Maria KalavathyN. Edison RathinamP. Seethalakshmi','springer/bpel security.csv','springer','\0'),(1774,'Applying model-driven engineering to the development of Rich Internet Applications for Business Intelligence','2013','3',' Rich Internet Applications Knowledge management Sm4RIA Model-driven Web engineering','Abstract Business Intelligence (BI) applications have been gradually ported to the Web in search of a global platform for the consumption and publication of data and services. On the Internet, apart from techniques for data/knowledge management, BI Web applications need interfaces with a high level of interoperability (similar to the traditional desktop interfaces) for the visualisation of data/knowledge. In some cases, this has been provided by Rich Internet Applications (RIA). The development of these BI RIAs is a process traditionally performed manually and, given the complexity of the final application, it is a process which might be prone to errors. The application of model-driven engineering techniques can reduce the cost of development and maintenance (in terms of time and resources) of these applications, as they demonstrated by other types of Web applications. In the light of these issues, the paper introduces the S m 4RIA-B methodology, i.e., a model-driven methodology for the development of RIA as BI Web applications. In order to overcome the limitations of RIA regarding knowledge management from the Web, this paper also presents a new RIA platform for BI, called RI@BI, which extends the functionalities of traditional RIAs by means of Semantic Web technologies and B2B techniques. Finally, we evaluate the whole approach on a case study—the development of a social network site for an enterprise project manager.','Information Systems Frontiers',1,'Jesús M. HermidaSantiago MeliáAndrés MontoyoJaime Gómez','springer/service oriented architecture security.csv','springer','\0'),(1775,'Achieving High-Performance Video Analytics with Lightweight Cores and a Sea of Hardware Accelerators','2014','1','','High performance and energy efficient video analytics systems that can extract rich metadata from voluminous visual content, will enable a variety of high-value surveillance, driver assistance, video tagging, and first person analytics systems. These big-data applications are pervasive across retail, automotive, medical, agriculture and security domains. However, current trends in general purpose and multicore architectures will not keep pace with the growing computational demands of cutting edge visual perception algorithms. Hardware acceleration is crucial to surpassing what is realizable on modern multicore and GPGPU architectures. In this paper we detail a Sea-of-Accelerators, SoA, platform that combines a mix of macro-accelerators, microaccelerators, and lightweight processors to achieve high performance and energy efficiency in video analytics applications. In this paper, we describe a framework for video and image analytics and highlight its benefits with a case study of a customized visual saliency accelerator. We describe the architecture of a full custom macro-accelerator that is suitable when raw performance is of critical importance. As an alternative, we illustrate the composition of an accelerator from a constituent of loosely coupled microaccelerators and evaluate the performance achievable when performance and flexibility are competing objectives.','2014 IEEE Computer Society Annual Symposium on VLSI',1,'K. M. Irick; N. Chandramoorthy','ieee/soa security.csv','ieee','\0'),(1776,'Design of Distributed Traceability System for Wheat Products Quality','2012','0',' wheat products traceability system EPC coding scheme ONS','Abstract The circulation of wheat products involves a number of different types of food-related enterprises, including planting bases, grain trading companies, warehousing enterprises, food processing plants, sales companies and so on. The centralized traceability architecture cannot meet the requirements such as transaction data security. While, the distributed traceability architecture faces the difficulty and complexity of information processing for the traceability data stored and managed by different enterprises. In order to meet the requirements imposed on distributed data management and diversity of deployment requirements, an EPC (Electronic Product Code) coding scheme is proposed, in addition, based on which we design and implement a distributed wheat products quality traceability system in this paper. The test indicates that the distributed quality traceability system can track the wheat products quality information in the whole supply chain of wheat products effectively.','',1,'Xingye ZhangJianqin WangJianye CuiJie ZhengJing PanManlin Chen','springer/service oriented architecture security.csv','springer','\0'),(1777,'Mobile Collaborative Experiential Learning (MCEL): Personalized Formative Assessment','2013','1','','We propose a mobile collaborative experiential learning system that students can access via mobile devices or any interactive devices connected to the Internet. The approach departs from conventional summative assessment approaches, such as reports submitted at the end of their learning sessions. Students interact with the learning system via mobile devices in order to change the state of a simulated learning lab to a desired state over time anywhere anytime to solve problems or achieve their goals. Students acquire set competency levels during their journey to achieving their goals interacting with the learning environment via mobile devices. The main objectives are to provide ownership of their journey, experiential, contextualized and formative assessment at low cost. The system features SMS/MMS biding of WSDL, SOA 2.0, and Event- Condition-Action (ECA) process modeling for easy integration with existing systems.','IT Convergence and Security (ICITCS), 2013 International Conference on',1,'I. Song; J. Vong','ieee/service oriented architecture security.csv','ieee','\0'),(1778,'An Adaptive Mediation Framework for Mobile P2P Social Content Sharing','2012','7','','Abstract Mobile Social Network in Proximity (MSNP) represents a new form of social network in which users are capable of interacting with their surroundings via their mobile devices in public mobile peer-to-peer (MP2P) environments. MSNP brings opportunity to people to meet new friends, share device content, and perform various social activities. However, as the fundamental topology of MSNP is based on public MP2P network, many challenges have arisen. Existing related works restrict the MP2P social network to operate in specific platforms and protocols. Enabling MSNP in a dynamic public MP2P requires a more flexible solution, which can adapt its behaviour to comply with environment. Hence, we propose a mobile device-hosted service-oriented workflow-based mediation framework for MSNP. The fundamental portion of the framework is based on the Enterprise Service Bus architecture which supports changes in runtime resources without the need to re-launch the application. In order to adapt to different situations, our workflow tasks adjust the execution behaviour at runtime. The workflow engine dynamically selects the best approach to complete the mobile user’s request based on the cost and performance, calculated by combining fuzzy set and cost performance index. The developed prototype is discussed along with detailed performance.','',2,'Chii ChangSatish Narayana SriramaSea Ling','springer/bpel security.csv','springer','\0'),(1779,'Adaptive content caching simulation with visualization capabilities','2015','0',' Caching Overlay Content replacement algorithm Simulation Visualization','Abstract Current Internet architecture is being challenged by the overwhelming multiplication of available content and the increasing requirements of the content delivery applications. Content Delivery Networks have been playing a catalytic role in content delivery solutions, replicating (caching) content at the edges of the network. In this paper, we have investigated the potential benefits offered by adaptability in overlay content replication, considering changing conditions such as the popularity and the size of the content objects and a system of collaborating content caches. Pursuing the understanding of the influence of these parameters we have designed and implemented a simulation framework, with enhanced visualization and parameterization capabilities, and performed a series of experiments, under varying conditions.','Telecommunication Systems',1,'Andreas PapadakisTheodore ZahariadisNikolaos Nikolaou','springer/soa security.csv','springer',''),(1780,'Analysis of Timing Constraints in Heterogeneous Middleware Interactions','2015','0',' Heterogeneous services Middleware interoperability Interaction paradigms Timed automata Uppaal Statistical analysis','Abstract With the emergence of Future Internet applications that connect web services, sensor-actuator networks and service feeds, scalability and heterogeneity support of interaction paradigms are of critical importance. Heterogeneous interactions can be abstractly represented by client-service , publish-subscribe and tuple space middleware connectors that are interconnected via bridging mechanisms providing interoperability among the services. In this paper, we make use of the eXtensible Service Bus (XSB), proposed in the CHOReOS project as the connector enabling interoperability among heterogeneous choreography participants. XSB models transactions among peers through generic post and get operations that represent peer behavior with varying time/space coupling. Nevertheless, the heterogeneous lease and timeout constraints of these operations severely affect latency and success rates of transactions. By precisely studying the related timing thresholds using timed automata models, we verify conditions for successful transactions with XSB connectors. Furthermore, we statistically analyze through simulations, the effect of varying lease and timeout periods to ensure higher probabilities of successful transactions. Simulation experiments are compared with experiments run on the XSB implementation testbed to evaluate the accuracy of results. This work can provide application developers with precise design time information when setting these timing thresholds in order to ensure accurate runtime behavior.','',1,'Ajay KattepurNikolaos GeorgantasGeorgios BouloukakisValérie Issarny','springer/service oriented architecture security.csv','springer',''),(1781,'Prototype for design-time secure and trustworthy service composition','2013','2','Security Policy; Security Verification; Service Composition; Service Oriented Architectures','Service-oriented environments provide the opportunity for services from different providers to work together, forming new composite services via composition of existing services. However, in addition to the intended outcomes, composition also introduces the potential for unexpected or emergent behaviour, resulting in new uncertainties, especially in the area of security. Funded by the European FP7 programme, our research focusses on providing a service composition platform that is secure and trustworthy. We will demonstrate the design-time prototype that show how to create service compositions, verify them against security policies and make sensible recommendations based on a user\'s security preferences. © 2013 IEEE.','',1,'Zhou B., Llewellyn-Jones D., Shi Q., Asim M., Merabti M.','scopus/service oriented architecture security.csv','scopus','\0'),(1782,'A service composition oriented framework for configuring SMeet multiparty collaboration environments','2014','0',' Service composition oriented framework Cyber infrastructure for collaboration Distributed smart spaces Multiparty collaboration environments','Abstract To enable remote collaboration among knowledge workers, there has been extensive research about prototyping network-based multiparty collaboration environments. Particularly, it is necessary to solve the configuration difficulties that arise from different settings of various tools in traditional room-based collaboration systems. To ease these difficulties, in this paper, we design a service composition oriented framework for the SMeet (Smart Meeting Space) multiparty collaboration environments by following the SOA (service oriented architecture) design principles. The proposed framework aims to facilitate the flexible configuration of diverse networked devices and associated application tools for successful multiparty collaboration. According to a pre-defined template, it helps the operators and users to compose services that are dispersed across remote sites. By leveraging open-source agent middleware, we also develop a SMeet toolkit with GUIs (graphical user interfaces) to assist the easily-configurable realization of SMeet multiparty collaboration environments. The developed SMeet toolkit is utilized to realize a remote collaboration scenario between two SMeet prototype sites, by enabling the network-based interactive sharing of HD-quality media on networked tiled displays (NeTDs).','Multimedia Tools and Applications',1,'Sang Woo HanJongWon Kim','springer/service oriented architecture security.csv','springer','\0'),(1783,'Request Distribution Toolkit for Virtual Resources Allocation','2012','1',' Service Oriented Architecture request distribution virtualization management','Abstract The Service Oriented Architecture (SOA) concept facilitates building flexible services that can be deployed in distributed environment, and executed on different hardware and software platforms. On the other hand SOA paradigm rises many challenges in the area of Quality of Service and resources utilization. In the paper Resources Distribution Manager (RDM) that manages resources and service delivery in order to satisfy user requirements and service provider’s needs is presented. Requests for services are distributed to selected virtualized instances of services or optionally new instances are created for handling the requests. The allocation decisions are based on the knowledge about the communication resources and the current load of computational resources which are dynamically monitored by special RDM module. The decision on the resources allocation is then compared with its utilization during service execution and causes changes in allocation strategy.','',1,'Jan KwiatkowskiMariusz Fras','springer/service oriented architecture security.csv','springer','\0'),(1784,'Relating software validation to technology trends','2012','0',' Model-based development Abstraction Refinement Model transformation Verification Tool support','Abstract Large scale software engineering is undergoing substantial shifts due to a combination of technological and economic developments. These include the prevalence of software for embedded systems, global software development across geographically distributed teams, the technological shift towards multi-core platforms, and the inevitable shift towards software being used as a service. In this overview article, we discuss some of the challenges that lie ahead for software validation, due to such technological developments. In particular, we provide a brief introduction to the papers appearing in this special issue, many of which specifically focus on validation of software running on real-time embedded systems.','International Journal on Software Tools for Technology Transfer',2,'Zhiming LiuAbhik Roychoudhury','springer/bpel security.csv','springer','\0'),(1785,'Formal Modeling and Analysis of the REST Architecture Using CSP','2013','0',' Modeling Analysis the REST Architecture CSP','Abstract As one of the most promising architectural styles, Representational State Transfer (REST) was first proposed to support the enablement of scalable and reliable design for largescale distributed hypermedia systems such as the World Wide Web (WWW). Rapidly development of the RESTful systems brings the misunderstanding and misapplied of the REST architecture. In this paper, we present a formal model to capture the essential features for the REST architecture, in which components of RESTful systems are modeled as CSP processes. Thus all the REST constraints can be completely described and validated in our framework. Furthermore, REST constraints are verified using the model checker PAT. The proposed framework for REST architecture is not only confined to HTTP but can also be applied to other REST-compliant protocols. Finally a case study about an application scenario for environment monitoring is illustrated to show the feasibility of our approach. Consequently, better understanding of REST can be achieved and implementations of RESTful systems can benefit from it.','',2,'Xi WuYue ZhangHuibiao ZhuYongxin ZhaoZailiang SunPeng Liu','springer/bpel security.csv','springer','\0'),(1786,'Secure Workflow Execution in Grid Environments','2009','1','','This paper presents a complete workflow security system for Grid Environments. It offers a high level of security, including access control for complex workflows, for various types of operations. This novel architecture also performs complex analyses for incompatible roles and policies at the workflow level. It also keeps track of previous actions and computes a security level for each enlisted user. Workflows are received in a slightly modified BPEL format, which ensures a certain degree of compatibility with a normal BPEL engine, but at the same time offers a simple description regarding the security information which must be transmitted. The novel format, derived from BPEL, represents the secure workflow model, a new standard capable of securely describing a workflow. The result of this work is a fast, modifiable and easy to integrate security system.','2009 3rd International Conference on New Technologies, Mobility and Security',2,'A. L. Petrescu; C. Leordeanu; V. Cristea','ieee/bpel security.csv','ieee','\0'),(1787,'Assisting sensor-based application design and instantiation using activity recommendation','2015','','Activity recommendation; Business process; Neighbourhood context; Sensor-based applications; Service adaptation; Service composition','Recently, Sensor/Actuator Networks have become an emergent technology for various application areas such as security and surveillance applications, traffic control, logistics, energy control in public and private buildings, etc. Designing and constructing new applications using these technologies remain, however, a challenging task. Indeed, finding the relevant sensors and actuators, and combining them in a proper way in order to achieve a specific goal is not an easy task and requires several skills from different stakeholders. Moreover, sensor environments are inherently highly dynamic. Furthermore, current applications are in general tightly coupled to the underlying infrastructure which hampers their reuse and flexibility to changes. In this paper, we present a process-oriented and service-based approach for supporting the development of adaptive sensorbased applications. Our approach decouples application logic from its implementation. A designtime model is first specified, as a flow of activities, which is then deployed in a particular environment. Decoupling the application logic from its implementation enables, on one hand, to foster the reuse at the application level and, on the other hand, to adapt the same application to different environments and situations. We propose also an activity recommendation technique to provide assistance to application designers by recommending to them activities that have been used in a similar compositional context. Our approach has been prototyped using service standards such as BPMN within the context of the VITRO European project and validated by several use cases. © The British Computer Society 2014. All rights reserved.','',2,'Movahedi Z., Gaaloul W., Bhiri S., Defude B.','scopus/bpmn security.csv','scopus',''),(1788,'Proposal of an interoperability model for social security information systems','2013','','Interoperability; Soa; Social security','The paper presents the most important concepts of interoperability and analyse the problems to apply interoperability in Social Security information systems. A model for apply interoperability between Social Security Institutions is presented and is proved in some scenarios. The goal is to develop standardize specifications promoting reusability and enabling to address the issues of cost and complexity in social security systems implementation. The main contributions of this paper are the proposition of an interoperability model based on the EIF\'s model and taking into account characteristics and application scenarios of the Social Security domain.','',1,'Delgado F., Otón S., Ruggia R., Hilera J.R., Gutiérrez J.M.','scopus/soa security.csv','scopus','\0'),(1789,'Maximizing the use of EO products: How to leverage the potential of open geospatial service architectures','2012','','Earth Observation; Heterogeneous Missions Accessibility; HMA; Open geospatial consortium; Service-oriented architecture; Service-oriented-analysis and design; SERVUS; Web services','The demand for the rapid provision of EO products with well-defined characteristics in terms of temporal, spatial, image-specific and thematic criteria is increasing. Examples are products to support near real-time damage assessment after a natural disaster event, e.g. an earthquake. However, beyond the organizational and economic questions, there are technological and systemic barriers to enable a comfortable search, order, delivery or even combination of EO products. Most portals of space agencies and EO product providers require sophisticated satellite and product knowledge and, even worse, are all different and not interoperable. This paper gives an overview about the use cases and the architectural solutions that aim at an open and flexible EO mission infrastructure with application-oriented user interfaces and well-defined service interfaces based upon open standards. It presents corresponding international initiatives such as INSPIRE (Infrastructure for Spatial Information in the European Community), GMES (Global Monitoring for Environment and Security), GEOSS (Global Earth Observation System of Systems) and HMA (Heterogeneous Missions Accessibility) and their associated infrastructure approaches. The paper presents a corresponding analysis and design methodology and two examples how such architectures are already successfully used in early warning systems for geo-hazards and toolsets for environmentally-induced health risks. Finally, the paper concludes with an outlook how these ideas relate to the vision of the Future Internet. © 2012 SPIE.','',1,'Usländer T.','scopus/service oriented architecture security.csv','scopus','\0'),(1790,'How to Design a Global SOA Infrastructure: Coping with Challenges in a Global Context','2012','1','Enterprise Service Bus;Global SOA infrastructure;SOA Governance;SOA Management;SOA Repository;SOA Rgistry','This article demonstrates how to build a globalSOA infrastructure, using a step by step approach and Design Patterns. The proposed architecture results in a minimalistic use of the SOA concepts and a novel solution for SOA management and governance which goes beyond current vendor products.','Web Services (ICWS), 2012 IEEE 19th International Conference on',1,'A. Hsiung; G. Rivelli; G. Hüttenegger','ieee/service oriented architecture security.csv','ieee','\0'),(1791,'Evidence-driven decision support in critical infrastructure management through enhanced domain knowledge modeling','2014','1',' Infrastructure management Remote Sensing Visual analytics Ontological engineering Service-oriented architecture','Abstract Effective critical infrastructure management in dynamically changing service environments requires understanding and inferring unknown knowledge from complex heterogeneous dataset to reason about multi-dimensional complex problem solving activities by aggregating supporting evidences. While the attributes of the database table only describe data and certain notions from the database relational schema, they do not describe the higher-level concepts or the knowledge from the domain that are commonly thought of and referred by engineers who need to inspect and manage the infrastructure with a holistic viewpoint. Thus, engineers have to work with rudimentary data-level attributes that, further, complicates the critical infrastructure management, which essentially needs efficient, effective, and informed decision making. Ontology enables to solve a complex problem where the underlying domain concept provides collective understanding of the data based on the domain knowledge from multi-dimensional resources. Enhanced domain knowledge modeling is applied for transportation infrastructure asset management that requires bridge inspectors to make decisions based on complex multi-layered heterogeneous data, such as, infrared image data, aerial photo data, ground-mounted LIDAR data, etc. The ontological concepts represent the process knowledge and assessment knowledge and it will be further used to support the bridge inspectors and their inspection process, whereas data are the ground facts. This process knowledge plays an important role to bridge the ground facts and the high-level concept space and provides the mapping of the complex data space to the easily comprehensible conceptual space. In making critical decisions, these become crucial evidences in justifying decisions made as well as in making uniform decisions among different subject matter experts through the common understanding.','Multimedia Tools and Applications',1,'Seok-Won Lee','springer/service oriented architecture security.csv','springer','\0'),(1792,'Applications of Coloured Petri Nets for Functional Validation of Protocol Designs','2013','2','','Abstract Communication protocols constitute central building blocks in most modern IT systems as they define components, rules, and languages that make data communication possible. The development of correct protocols is a challenging engineering discipline, making modelling and validation of protocol design an important application domain for Coloured Petri Nets (CPNs). We illustrate the practical application of CPNs for protocol validation by focusing on selected aspects of four recent projects involving industrial-sized protocols. These projects demonstrate how CPNs can be used to model protocol elements and improve protocol specifications, how state space exploration can be used to verify protocol properties, and how behavioural visualisation in combination with a CPN model provides an effective way of rapidly constructing an executable prototype of a protocol design.','',1,'Lars M. KristensenKent Inge Fagerland Simonsen','springer/service oriented architecture security.csv','springer','\0'),(1793,'Improving Web Service Composition with User Requirement Transformation and Capability Model','2013','0',' Web services requirement transformation service capability','Abstract In order to discover and compose relevant Web services, most Web service composition approaches require users to describe composition requirements and constraints in formal expressions. However, requirements still focus on the technical level as they require domain-specific knowledge on functional and non-functional properties. As a matter of fact, the gap between users’ high-level requirements describing business objectives and composition requirements remains a challenge in Web service composition. In this paper, we propose an end-to-end transformation approach to build a set of technical composition requirements from user high-level requirements, which are specified by an English-structured language to capture business objectives, and to specify actions that Web services can achieve.','',1,'Wenbin LiYouakim BadrFrédérique Biennier','springer/service oriented architecture security.csv','springer','\0'),(1794,'A QoS-based fuzzy model for evaluation service quality parameters in service-oriented architecture','2014','','fuzzy logic; quality of service; quality parameters; Service Oriented Architecture','Nowadays, service-oriented architecture is developed as a flexible architecture for developing dynamic systems. In consider to the importance of quality of service (QoS), measured parameters in this architectural services such as security, reliability and... has a special place. Uncertainty of parameters affect service quality is considered as a key challenge in such environments. This requiring measurement of these parameters reveals a consistent and efficient manner. Since fuzzy logic is able to express the relative value of the credit in real-world concepts, this article proposes an approach on fuzzy logic to deal with these challenges and evaluation of quality of service. © 2014 IEEE.','',1,'Musavi M., Pasha M.R., Hamzehnia M., Hoseini M.','scopus/service oriented architecture security.csv','scopus','\0'),(1795,'Information security risk management in a world of services','2013','','Cloud; Controllability; Information security; ISO/IEC 27005; Risk management; SOA; Web services','Service Oriented Architectures (SOA) offer new opportunities for the interconnection of systems. However, for a company, opening its Information System to the \"world\" is not insignificant in terms of security. Whether to use available services or provide its own services, new technologies have introduced new vulnerabilities and therefore new risks. Our work aims to propose an approach for risk management which is based on the ISO/IEC 27005:2011 standard: we propose a development of this standard (by an extension of Annex D) so that it can fully take into account the type \"service\" as web services and cloud services. Indeed, a world of services is not limited to link interconnected systems, it is more a relationship between customer and supplier, where notions of trust, accountability, traceability and governance are developed. Following this study we introduce a new security criterion, controllability, to ensure that a company keeps control of its information even if it uses such outsourced services. © 2013 IEEE.','',1,'Lalanne V., Munier M., Gabillon A.','scopus/service oriented architecture security.csv','scopus','\0'),(1796,'Querying a Service from Repository of SMaps','2013','0',' webservice RDBMS Service Search','Abstract Recent advances in Internet technologies have populated web with large number of services. For effective retrieval of services we have proposed SMap [10] specification that enables service provider to describe a service concealing its business logic. The details of a service includes its constituents, promotion and associated conditions. Here we propose a scheme to store SMaps in a relational database. For service retrieval a query processing system is also proposed. Retrieved services are ranked based on a score computed from structural characteristics of services.','',1,'Supriya VaddiHrushikesha Mohanty','springer/webservice security.csv','springer','\0'),(1797,'A loan management system as web services: A case study on a microfinance institution','2014','','Case studies; E-finance; Security of web services; Tools and applications; Unified modelling language; Web services','Despite the determination of small microfinance institutions to expand into rural areas, they are limited by geographical isolation and high transaction costs. To set those institutions and their customers free from geographical constraints, we suggest isolated populations access some features of the enterprise application via Smartphone. This solution is based on a service-oriented architecture in which the main features are developed as web services. The invocation of the methods is performed from a Smartphone or a personal computer (PC), while the execution will be done on a server that returns an understandable result through web service description language (WSDL) generated by web services, where the transport is provided by simple object access protocol (SOAP). Copyright © 2014 Inderscience Enterprises Ltd.','',1,'Dagba T.K., Lohounmè E., Nambila A., Boco C.Y.','scopus/service oriented architecture security.csv','scopus','\0'),(1798,'Service feature modeling: modeling and participatory ranking of service design alternatives','2016','2',' Software service engineering Participatory design Service variation modeling Multi-criteria feature configuration decisions','Abstract The design of software-intensive service systems involves and affects numerous stakeholders including software engineers, legal and business experts as well as a potentially large number of consumers. In consequence, the challenge arises to adequately represent the interests of these groups with respect to service design decisions. Specifically, shared service design artifacts and participatory methods for influencing their development in consensus are required, which are not yet state of the art in software service engineering. To this end, we present service feature modeling. Using a modeling notation based on feature-oriented analysis, our approach can represent and interrelate diverse service design concerns and capture their potential combinations as service design alternatives. We further present a method that allows stakeholders to rank service design alternatives based on their preferences. The ranking can support service engineers in selecting viable alternatives for implementation. To exploit this potential, we have implemented a toolkit to enable both modeling and participative ranking of service design alternatives. It has been used to apply service feature modeling in the context of public service design and evaluate the approach in this context.','Software & Systems Modeling',2,'Erik WitternChristian Zirpins','springer/bpmn security.csv','springer',''),(1799,'301--308','2012','0','ITS, SOA, WSN, intelligent transportation systems, navigation, parking systems, service-oriented architecture, web services, wireless sensors networks','In this paper, Wireless Sensor Networks (WSN) and Service-Oriented Architecture (SOA) approaches are analyzed given that represent both emerging and key role for Intelligent Transportations Systems (ITS). However, It is worth noting that WSN and SOA approaches have begun to be applied into ITS separately and day by day these approaches tend to be combined to get the best outcomes for both safety and security for ITS applications. For this reason, a discussion of the principals ITS applications of these two approaches and a case study, that has been designed and implemented to illustrate their advantages, are presented. The case study is focused on support a very useful ITS service associated with the localization of parking spaces.','',1,'','acm/soa security.csv','acm','\0'),(1800,'Knowledge-based clinical pathway for medical quality improvement','2012','4',' Clinical pathway Quality improvement Knowledge-based system Decision support for pathway management Medical service quality','Abstract Clinical pathways have been adopted for various diseases in clinical departments for quality improvement as a result of standardization of medical activities in treatment process. Using knowledge-based decision support on the basis of clinical pathways is a promising strategy to improve medical quality effectively. However, the clinical pathway knowledge has not been fully integrated into treatment process and thus cannot provide comprehensive support to the actual work practice. Therefore this paper proposes a knowledge-based clinical pathway management method which contributes to make use of clinical knowledge to support and optimize medical practice. We have developed a knowledge-based clinical pathway management system to demonstrate how the clinical pathway knowledge comprehensively supports the treatment process. The experiences from the use of this system show that the treatment quality can be effectively improved by the extracted and classified clinical pathway knowledge, seamless integration of patient-specific clinical pathway recommendations with medical tasks and the evaluating pathway deviations for optimization.','Information Systems Frontiers',1,'Hongqiao YangWeizi LiKecheng LiuJunping Zhang','springer/soa security.csv','springer','\0'),(1801,'Measure Method and Metrics for Network Characteristics in Service Systems','2013','0',' service systems network characteristic measure service cooperation relationship','Abstract As the development of Service-oriented architecture and service engineering, they have been generally adopted as the architecture and engineering method of software. More and more service applications and systems are constituted by distributed resources and web services which means more challenges in dynamic, varied and complex network environment. At the same time, the dependence and interactivity between the elements of networked service systems result in faults and difficulties in understanding and upgrading system and making the systems much more weakness. In this paper, according to the dynamic characteristics of the networked service system, we propose a network characteristics measure method and metrics for service system (MSS). Service system is defined by the descriptions of six important parameters at system level, which include service complexity, service cooperation relationship factor, service node factor, service cooperation factor, and service composition factor. Then the corresponding simulation is introduced by using the characteristics measure method and the analysis of the simulation results is also given. At last, a dynamic on-demand service composition algorithm based on MSS is designed and its feasibility and effectiveness are verified.','',1,'Haihong EXiaojia JinJunjie TongMeina SongXianzhong Zhu','springer/service oriented architecture security.csv','springer','\0'),(1802,'An Aspect-based Process Container for BPEL','2005','10','AOP, BPEL, aspects, middleware, web service composition','Proceedings of the 1st Workshop on Aspect Oriented Middleware Development','',2,'Anis Charfi and Mira Mezini','acm/bpel security.csv','acm',''),(1803,'Model-Based Analysis of Wireless System Architectures for Real-Time Applications','2013','5','Architecture analysis and description language (AADL);model-based analysis;wireless system architecture','We propose a model-based description and analysis framework for the design of wireless system architectures. Its aim is to address the shortcomings of existing approaches to system verification and the tracking of anomalies in safety-critical wireless systems. We use Architecture Analysis and Description Language (AADL) to describe an analysis-oriented architecture model with highly modular components. We also develop the cooperative tool chains required to analyze the performance of a wireless system by simulation. We show how this framework can support a detailed and largely automated analysis of a complicated, networked wireless system using examples from wireless healthcare and video broadcasting.','IEEE Transactions on Mobile Computing',1,'K. Kang; M. Y. Nam; L. Sha','ieee/service oriented architecture security.csv','ieee','\0'),(1804,'Advances in infrastructures and tools for multiagent systems','2014','1','','','Information Systems Frontiers',1,'Juan M. AlberolaVicent BottiJose M. Such','springer/service oriented architecture security.csv','springer','\0'),(1805,'QoS-adaptive service configuration framework for cloud-assisted video surveillance systems','2015','0',' Adaptive QoS Cloud-assisted video surveillance Service configuration Transcoding service','Abstract Quality of service (QoS)-adaptive service configuration is crucial for seamless access to video services in cloud-assisted video surveillance systems. To maintain seamless access to video on a user’s preferred device, suitable video transcoding services are needed. It is a challenging task to choose and configure these services for various devices to ensure QoS-adaptive user experiences. To configure these services for the desired user devices, a suitable configuration algorithm is needed. Therefore, this paper describes a QoS-adaptive service configuration approach to choose the optimal configuration for the preferred user devices in varied contexts so that the user can access the services ubiquitously. We implemented a cloud-assisted video surveillance prototype to show how the proposed method can handle ubiquitous access to target video for possible QoS-adaptive and video processing requirements in terms of bandwidth, delay, and frame rates. The results show that the proposed configuration method outperforms the other comparable approaches.','Multimedia Tools and Applications',1,'Atif AlamriM. Shamim HossainAhmad AlmogrenMohammad Mehedi HassanKhalid AlnafjanMohammed ZakariahLee SeyamAbdullah Alghamdi','springer/service oriented architecture security.csv','springer',''),(1806,'A Language-Based Approach to Autonomic Computing','2013','7','','Abstract SCEL is a new language specifically designed to model autonomic components and their interaction. It brings together various programming abstractions that permit to directly represent knowledge, behaviors and aggregations according to specific policies. It also supports naturally programming self-awareness, context-awareness, and adaptation. In this paper, we first present design principles, syntax and operational semantics of SCEL. Then, we show how a dialect can be defined by appropriately instantiating the features of the language we left open to deal with different application domains and use this dialect to model a simple, yet illustrative, example application. Finally, we demonstrate that adaptation can be naturally expressed in SCEL.','',1,'Rocco De NicolaGianluigi FerrariMichele LoretiRosario Pugliese','springer/service oriented architecture security.csv','springer','\0'),(1807,'Compliance Checking of Data-Aware and Resource-Aware Compliance Requirements','2014','1',' compliance checking auditing data-aware and resource-aware compliance requirements conformance checking','Abstract Compliance checking is gaining importance as today’s organizations need to show that their business practices are in accordance with predefined (legal) requirements. Current compliance checking techniques are mostly focused on checking the control-flow perspective of business processes. This paper presents an approach for checking the compliance of observed process executions taking into account data, resources, and control-flow. Unlike the majority of conformance checking approaches we do not restrict the focus to the ordering of activities (i.e., control-flow). We show a collection of typical data and resource-aware compliance rules together with some domain specific rules. Moreover providing diagnostics and insight about the deviations is often neglected in current compliance checking techniques. We use control-flow and data-flow alignment to check compliance of processes and combine diagnostics obtained from both techniques to show deviations from prescribed behavior. Furthermore we also indicate the severity of observed deviations. This approach integrates with two existing approaches for control-flow and temporal compliance checking, allowing for multi-perspective diagnostic information in case of compliance violations. We have implemented our techniques and show their feasibility by checking compliance of synthetic and real life event logs with resource and data-aware compliance rules.','',2,'Elham Ramezani TaghiabadiVladimir GromovDirk FahlandWilM. P. van der Aalst','springer/bpmn security.csv','springer',''),(1808,'Network management for multi-network terminals','2012','0','Multi-Network Terminal;Network Architecture;Network Management','There is increasing interest in using terminal architectures capable of supporting multiple networks. A terminal that is episodically present on a network is a new situation for most Network Managers and for computer network defense needs. Likewise, having to accommodate interaction with multiple network managers is a different paradigm for the terminal. This paper discusses the kinds of node architecture features that would support this kind of interaction. It looks at the extension of traditional control plane architectures to support the use of Cognitive engines to simplify interactions with network managers and network security functions. It also discusses the use of a Service Oriented Architecture for alerting user networks when a terminal becomes part of the backhaul path.','MILCOM 2012 - 2012 IEEE Military Communications Conference',1,'S. Dudley; M. Klingler','ieee/service oriented architecture security.csv','ieee','\0'),(1809,'Architecture of automated communication and data processing system for forensic medicine','2015','','ESB; Forensic medicine software; Information extraction; Information retrieval; Process modelling; SOA','The paper introduces a blueprint for system that automates and facilitates the process of medico-legal exams and inquests. The system responsibilities are to mediate the communication between institutions and forensic doctors and to organize, store and archive tasks and data based on the legal regulations. Currently in Bulgaria and the Balkans there is no fully computerized solution which is the main reason for this paper. The system would allow examiners to focus on the actual medical work and not on the paper work. Key advantages of the system are the automation in the process, the communication with external systems and participants, the dynamic modelling of the processes and the security model that would keep patient privacy and data integrity. Copyright © 2015 ACM.','',1,'Banchev B., Georgiev T.','scopus/soa security.csv','scopus',''),(1810,'Privacy-aware access control for video data in intelligent surveillance systems','2012','','Access Control; privacy; security; Surveillance','Surveillance systems became powerful. Objects can be identified and intelligent surveillance services can generate events when a specific situation occurs. Such surveillance services can be organized in a Service Oriented Architecture (SOA) to fulfill surveillance tasks for specific purposes. Therefore the services process information on a high level, e.g., just the position of an object. Video data is still required to visualize a situation to an operator and is required as evidence in court. Processing of personal related and sensitive information threatens privacy. To protect the user and to be compliant with legal requirements it must be ensured that sensitive information can only be processed for a defined propose by specific users or services. This work proposes an architecture for Access Control that enforces the separation of data between different surveillance tasks. Access controls are enforced at different levels: for the users starting the tasks, for the services within the tasks processing data stored in central store or calculated by other services and for sensor related services that extract information out of the raw data and provide them. © 2012 SPIE.','',1,'Vagts H., Jakoby A.','scopus/service oriented architecture security.csv','scopus','\0'),(1811,'REST-based Web Services','2014','0','','Abstract Web services are an important development in making data available to clients in a programmatic manner. Rather than displaying results for humans to view on the Web, we can make requests to a Web service in order to get the resulting data directly and then consume it in our applications immediately. An increasingly common architecture for Web services is termed REST and exploits the concept of URLs as resources. We can make general HTTP requests to retrieve, update, modify, and even create resources. The results (and sometimes the inputs) are often formatted as JSON or XML . In this chapter, we look at how we can access REST services from within R , mapping the documentation for the services into requests, converting the results, and developing R functions to provide higher-level interfaces that hide the details of the HTTP and conversion. REST is becoming the dominant mechanism used for Web services which are also becoming very common. REST is not just used for Web services, but is also increasingly used to communicate with regular applications such as NoSQL databases and text search engines and we explore these also in this chapter.','',1,'Deborah NolanDuncan Temple Lang','springer/webservice security.csv','springer','\0'),(1812,'Structured Communication—Approaching S-BPM with Microsoft Technologies','2015','1','','Abstract Many enacted business processes in the field use (more or less intense) communication to forward work to the next participant in an activity chain. Communication can be oral (personal, phone) or technically supported (e-mail, phone). It can be unstructured using natural language—typically text or spoken word—or structured using formal language (business objects) typically stored in systems. Based on decades of research in the domain of the social sciences, we know that an understanding of how organizations work are based on communication and language. Therefore any technology to support the execution of business processes should support communication between process participants. This is the concept of S-BPM. Here, we present the results of work in the field to develop a platform to model and execute business processes as interaction between actors. As process models predefine work we call this way of interaction structured communication (using standard e-mail exchange). To enable also cross-company communication (process orchestrations) we technically implemented the platform as a so-called multi - enterprise business process platform (ME-BPP) using cloud technology. The contribution uses a real-world case to demonstrate the need for a communication-based view on business processes. The case reflects the situation typically for large-scale international companies with world-wide activities and with focus on processes related to order fulfillment, including manufacturing. Further on, an IT architecture to support the enactment of such distributed processes is discussed. The contribution is intended for practitioners with some IT background and/or interests.','',2,'Robert SingerStefan Raß','springer/bpmn security.csv','springer',''),(1813,'Modeling and Mining of Learnflows','2012','1','','Abstract This article transfers concepts and methods from business process modeling and workflow management to the field of learnflows, i.e. learning and teaching processes. It is first shown that these two areas have a lot of commonalities and similarities. On the other hand, there are also crucial specifics of learning processes that have to be taken into account additionally. We then introduce and discuss modeling languages for learnflows which are based on ideas from workflow modeling. Finally, we develop an approach to automatically generate learnflow models from log files of learning systems by adapting workflow mining methods.','',2,'Robin BergenthumJörg DeselAndreas HarrerSebastian Mauser','springer/bpel security.csv','springer','\0'),(1814,'Service-oriented trust and reputation management system for multi-tier cloud','2013','0','','Cloud based applications demand a higher level of security, privacy, and reliability toward a more cost effective solution. One of the challenges for the users of cloud-based services and applications is finding the most trusted provider for the minimum cost. The trusted providers from each customer can have different interpretation, or with different priority of the meaning. Furthermore, a tier-1 cloud service provider that delivers a service can receive the service, partially or fully, from tier-2 cloud service providers. In this paper, we propose a system to evaluate the trust, per delivered service by each provider and per each subject of the trust. Then, we propose an application of our trust system in choosing the best provider by a customer through minimizing the cost and maximizing the service-oriented trust. Our analysis shows the security, efficiency and applicability of our system in a multi-tier cloud environment.','Cloud Networking (CloudNet), 2013 IEEE 2nd International Conference on',1,'H. Nicanfar; S. Mohsen Amiri; Chunsheng Zhu; P. TalebiFard; V. C. M. Leung; P. Nasiopoulos','ieee/service oriented architecture security.csv','ieee','\0'),(1815,'rCOS: Defining Meanings of Component-Based Software Architectures','2013','2',' Component-Based Architecture Object-Oriented Design Model Model Refinement Model Transformation Verification','Abstract Model-Driven Software Development is nowadays taken as a mainstream methodology. In the software engineering community, it is a synonym of the OMG Model-Driven Architecture (MDA). However, in the formal method community, model-driven development is broadly seen as model-based techniques for software design and verification. Because of the difference between the nature of research and practical model-driven software engineering, there is a gap between formal techniques, together with their tools, and their potential support to practical software development. In order to bridge this gap, we define the meanings of component-based software architectures in this chapter, and show how software architectures are formally modeled in the formal model-driven engineering method rCOS. With the semantics of software architecture components, their compositions and refinements, we demonstrate how appropriate formal techniques and their tools can be applied in an MDA development process.','',1,'Ruzhen DongJohannes FaberWei KeZhiming Liu','springer/service oriented architecture security.csv','springer','\0'),(1816,'An Actor Based Software Framework for Scalable Applications','2014','0',' Actor model software framework concurrent systems distributed systems scalable applications Java','Abstract The development of scalable and efficient applications requires the use of appropriate models and software infrastructures. This paper presents a software framework that enables the development of scalable and efficient actor-based applications. Each application can be configured with different implementations of the components that drive the execution of its actors. In particular, the paper describes the experimentation of such a software framework for the development of agent-based modelling and simulation applications that involve a massive number of individuals.','',1,'Federico BergentiAgostino PoggiMichele Tomaiuolo','springer/service oriented architecture security.csv','springer','\0'),(1817,'Enhancing privacy and dynamic federation in IdM for consumer cloud computing','2012','9','','Consumer cloud computing paradigm has emerged as the natural evolution and integration of advances in several areas including distributed computing, service oriented architecture and consumer electronics. In this complex ecosystem, security and identity management challenges have cropped up, given their dynamism and heterogeneity. As a direct consequence, dynamic federated identity management with privacy improvements has arisen as an indispensable mechanism to enable the global scalability and usability that are required for the successful implantation of Cloud technologies. With these requirements in mind, we present an IdM architecture based on privacy and reputation extensions compliance with the SAMLv2/ID-FF standards1.','IEEE Transactions on Consumer Electronics',1,'R. Sanchez; F. Almenares; P. Arias; D. Diaz-Sanchez; A. Marin','ieee/service oriented architecture security.csv','ieee','\0'),(1818,'Achieving Flexible and Compliant Processes in Disaster Management','2013','1','compliance;disaster management;flexibility;worfklow management systems','Workflow management systems are becoming increasingly flexible and thus open up new areas of application, such as the coordination of activities in disaster response management. However, for managing disaster events effectively, flexibility is seen as a necessary but not sufficient condition. Moreover, effective disaster management processes require comprehensive access to and the processing of public as well as private information. Since extensive data usage without adequate controls will not be accepted in any open and free society, validating compliance for flexible disaster management processes is becoming crucial for realizing the enormous options of new information and communication technologies. In this contribution, we present a novel approach for realizing adaptive controls in flexible disaster management processes.','System Sciences (HICSS), 2013 46th Hawaii International Conference on',1,'K. Kittel; S. Sackmann; H. Betke; M. Hofmann','ieee/service oriented architecture security.csv','ieee','\0'),(1819,'Influences on regression testing strategies in agile software development environments','2014','1',' Regression testing strategy Exploratory case study Survey Agile software development','Abstract Regression testing is a well-established practice in software development, but in recent years it has seen a change of status and emphasis with the increasing popularity of agile methods, which stress the central role of regression testing in maintaining software quality. The objectives of this article are to investigate regression testing strategies in agile development teams and identify the factors that can influence the adoption and implementation of this practice. We have used a mixed methods approach to our research, beginning with an analysis of the literature to identify research themes related to the adoption of regression testing techniques under agile methodologies, from which we developed an analytical framework for the study. This was followed by three exploratory case studies that we used to exercise the main elements of the framework, develop some key themes of interest, and devise a questionnaire for the final stage of the study, an on-line survey to explore the main issues identified in the case studies across different contexts. Within our specific sample, our results suggest that organizational maturity is a key factor in effective regression testing practices and that the adoption of such practices is helped by a coherent testing philosophy and change management processes. We also found that the return on investment in automated regression testing was positive for our respondents and that adopting these practices in the context of agile methods had been a relatively painless process for the organizations in our survey. We conclude that investing in regression testing tools and processes is likely to be beneficial for organizations. However, further work is needed in assessing how organizational culture impacts on the quality process and the financial outcomes for commercial software development organizations.','Software Quality Journal',1,'David ParsonsTeo SusnjakManfred Lange','springer/service oriented architecture security.csv','springer','\0'),(1820,'Service Automata','2012','1','','Abstract We propose a novel framework for reliably enforcing security in distributed systems. Service automata monitor the execution of a distributed program and enforce countermeasures before a violation of a security policy can occur. A key novelty of our proposal is that security is enforced in a decentralized though coordinated fashion. This provides the basis for reliably enforcing global security requirements without introducing unnecessary latencies or communication overhead. The novel contributions of this article include the concept of service automata and a generic formalization of service automata in CSP. We also illustrate how the generic model can be tailored to given security requirements by instantiating its parameters in a stepwise and modular manner.','',1,'Richard GayHeiko MantelBarbara Sprick','springer/service oriented architecture security.csv','springer','\0'),(1821,'Local Controlled Vocabulary for Modern Web Service Description','2012','0',' federated local controlled vocabularies Web service description functionality description knowledge engineering knowledge representation Information Retrieval','Abstract This works contains a proposition for a modern Web service description, where functionality of Web service operations is defined with a set of federated Local Controlled Vocabularies (LCV). The LCVs serve as a referral platform for functionality definition with a phrase schema. This schema allows for describing every Web service operation in terms of main action associated with some object extended with an arbitrary number of supplements and marked with desired non functional properties. The proposed description argues for federated LCV instead of centralised fully fledged ontology based effort due to the cost, scalability and performance issues simultaneously maintaining the high level of expressivity unreachable for standard Information Retrieval systems used in Web service retrieval. This work concludes in presentation of mechanism that allows for query matching on envisioned structure along with experiment results and discussion on possible enhancements.','',1,'Konstanty Haniewicz','springer/service oriented architecture security.csv','springer','\0'),(1822,'Derivation of trust federation for collaborative business processes','2011','4','Business processes; Security; Trust','Service Oriented Architecture (SOA) is considered to be an important enabler of Internet of Services. By adopting SOA in development, business services can be offered, mediated, and traded as web services, so as to support agile and dynamic business collaborations on the Internet. Business collaboration is often implemented as cross-enterprise processes and involves more than one business entity which agrees to join the collaboration. To enable trustworthy and secure provision of services and service composition across enterprise boundaries, trust between business participants must be established, that is, user identities and access rights must be federated, to support business functions defined in the business processes. This paper proposes an approach which derives trust federation from formally described business process models, such as BPMN and WS-CDL processes, to automate security configuration of business collaborations. The result of the derivation is trust policies which identify trust relationships between business participants and can be enforced in enterprises\' service runtimes with support of a policy deployment infrastructure. © 2010 Springer Science+Business Media, LLC.','',2,'Hu J.','scopus/bpmn security.csv','scopus','\0'),(1823,'Next generation emergency management common operating picture software/systems (COPSS)','2012','','common operating picture; emergency response; fourDscape; situational awareness; telepresence; virtual reality','In the state-of-the-art Command Center at the Morrelly Homeland Security Center in Bethpage NY, VCORE Solutions has integrated, demonstrated, tested, deployed, and is operating powerful Emergency Management Common Operating Picture Software/Systems (COPSS). This Regional COPSS demonstrates in an operational environment the next generation of emergency management situational awareness, command & control, and information sharing in a natural, easy to use and understand four-dimensional (4D) common operating picture. This Regional COPSS is based on patented fourDscape software technology, developed over the past decade by Long Island, NY-based Balfour Technologies. This powerful fourDscape augmented virtual reality technology has been effectively applied to local and regional emergency management operations and can be deployed nationally to deliver comprehensive situational awareness in support of safety, security and emergency preparedness, prevention, mitigation, response and recovery operations at all levels. A fourDscape browser/server-based COPSS is designed as an open, multi-layered service/resource oriented networked architecture (SOA/ROA, i.e. cloud) capable of (1) integrating and managing a multitude of disparate data sources of all types (including live and static data feeds); (2) interoperability with numerous other vendors information systems, COPs, information sharing frameworks, notification and alerting systems, analytics, etc.; and (3) sharing and passing information and comprehensive, timely situational awareness between first responders at the incident site, incident commanders, and emergency managers and decision makers at local, regional and national emergency operations centers across the country. And consistent with the recent Presidential Policy Directive on National Preparedness (PPD-8), this fourDscape COPSS capabilities and framework represents currently operational technology that can achieve an integrated, layered, and all-of-Nation [capabilities-based] preparedness approach that optimizes the use of available resources. Next Generation COPSS such as fourDscape need to be open and scalable to facilitate global information sharing; deliver information in an easy-to-understand augmented virtual reality common operating picture; be easy-to-use walk-up technology with a full complement of embedded training/simulation capability; provide for effective information assurance; and be compliant and effective in executing national preparedness goals. All this can and will be achieved by next generation COPSS. © 2012 IEEE.','',1,'Balfour R.E.','scopus/soa security.csv','scopus','\0'),(1824,'On understanding the economics and elasticity challenges of deploying business applications on public cloud infrastructure','2012','19',' Cloud computing Cost Elasticity Scaling Economics Business applications SLA Cloud infrastructure service offerings IaaS','Abstract The exposure of business applications to the web has considerably increased the variability of its workload patterns and volumes as the number of users/customers often grows and shrinks at various rates and times. Such application characteristics have increasingly demanded the need for flexible yet inexpensive computing infrastructure to accommodate variable workloads. The on-demand and per-use cloud computing model, specifically that of public Cloud Infrastructure Service Offerings (CISOs), has quickly evolved and adopted by majority of hardware and software computing companies with the promise of provisioning utility-like computing resources at massive economies of scale. However, deploying business applications on public cloud infrastructure does not lead to achieving desired economics and elasticity gains, and some challenges block the way for realizing its real benefits. These challenges are due to multiple differences between CISOs and application’s requirements and characteristics. This article introduces a detailed analysis and discussion of the economics and elasticity challenges of business applications to be deployed and operate on public cloud infrastructure. This includes analysis of various aspects of public CISOs, modeling and measuring CISOs’ economics and elasticity, application workload patterns and its impact on achieving elasticity and economics, economics-driven elasticity decisions and policies, and SLA-driven monitoring and elasticity of cloud-based business applications. The analysis and discussion are supported with motivating scenarios for cloud-based business applications. The paper provides a multi-lenses overview that can help cloud consumers and potential business application’s owners to understand, analyze, and evaluate important economics and elasticity capabilities of different CISOs and its suitability for meeting their business application’s requirements.','Journal of Internet Services and Applications',1,'Basem SuleimanSherif SakrRoss JefferyAnna Liu','springer/service oriented architecture security.csv','springer',''),(1825,'Data-intensive architecture for scientific knowledge discovery','2012','4',' Knowledge discovery Workflow management system','Abstract This paper presents a data-intensive architecture that demonstrates the ability to support applications from a wide range of application domains, and support the different types of users involved in defining, designing and executing data-intensive processing tasks. The prototype architecture is introduced, and the pivotal role of DISPEL as a canonical language is explained. The architecture promotes the exploration and exploitation of distributed and heterogeneous data and spans the complete knowledge discovery process, from data preparation, to analysis, to evaluation and reiteration. The architecture evaluation included large-scale applications from astronomy, cosmology, hydrology, functional genetics, imaging processing and seismology.','Distributed and Parallel Databases',2,'Malcolm AtkinsonChee Sun LiewMichelle GaleaPaul MartinAmrey KrauseAdrian MouatOscar CorchoDavid Snelling','springer/bpel security.csv','springer','\0'),(1826,'Trustworthy Self-Integrating Systems','2016','0','','Abstract Patients in intensive care often have a dozen or more medical devices and sensors attached to them. Each is a self-contained system that operates in ignorance of the others, and their integrated operation as a system of systems that delivers coherent therapy is performed by doctors and nurses. But we can easily imagine a scenario where the devices recognize each other and self-integrate (perhaps under the guidance of a master “therapy app”) into a unified system. Similar scenarios can be (and are) envisaged for vehicles and roads, and for the devices and services in a home. These self-integrating systems have the potential for significant harm as well as benefit, so as they integrate they should adapt and configure themselves appropriately and should construct an “assurance case” for the utility and safety of the resulting system. Thus, trustworthy self-integration requires autonomous adaptation, synthesis, and verification at integration time, and this means that embedded automated deduction (i.e., theorem provers) will be the engine of integration.','',1,'John Rushby','springer/service oriented architecture security.csv','springer',''),(1827,'A Requirements-Led Approach for Specifying QoS-Aware Service Choreographies: An Experience Report','2014','0',' service choreographies requirements monitors user task models adaptive systems quality properties requirements-led life-cycle','Abstract [Context and motivation] Choreographies are a form of service composition in which partner services interact in a global scenario without a single point of control. The absence of an explicitly specified orchestration requires changes to requirements practices to recognize the need to optimize software services choreography and monitoring for satisfaction with system requirements. [Question/problem] We developed a requirements-led approach that aims to provide tools and processes to transform requirements expressed on service-based systems to QoS-aware choreography specifications. [Principal ideas/results] The approach is used by domain experts to specify natural language requirements on a service-based system, and by choreography designers to adapt their models to satisfy requirements more effectively. Non-functional requirements are mapped to BPMN choreography diagrams as quality properties, using the Q4BPMN notation, that support analysis and monitoring facilities. [Contribution] We report the new integrated approach and provide lessons learned from applying it to a real-world example of dynamic taxi management.','',2,'Neil MaidenJames LockerbieKonstantinos ZachosAntonia BertolinoGuglielmo De AngelisFrancesca Lonetti','springer/bpel security.csv','springer',''),(1828,'Integrated model of service-oriented architecture and web-oriented architecture for financial software','2012','2','Complexity analysis; Financial software; Function point analysis; Service-oriented architecture; Web-oriented architecture','Service-Oriented Architecture (SOA), which supports various features such as the interoperability and reusability of IT resources, comes into the spotlight as an effective approach for adapting new business environmental changes. SOA, however, has some problems including the high realization complexity and low Return on Investment (ROI). As a solution for these problems, Web-Oriented Architecture (WOA) has been gained attentions and expected the flexibility and reduction of complexity to be indeed achieved with simple implementations using RESTful services and mashups. However, it also has some drawbacks related to security concerns and unstable message transmissions. In this paper, we propose a novel integrated model that combines the advantages of both SOA and WOA seamlessly. According to the characteristics of a service, the proposed model applies SOA or WOA approach selectively to provide an appropriate way to implement the service. We employ the proposed model to design an actual financial software suite and validate its effectiveness using the well-known function point analysis. Estimation results have shown that our model can reduce the function point of the financial software up to 38%, compared with the legacy SOA based software, while satisfying diverse customer\'s requirements.','',1,'Park S., Choi J., Yoo H.','scopus/service oriented architecture security.csv','scopus','\0'),(1829,'Equivalence Transformations for the Design of Interorganizational Data-Flow','2015','0','','Abstract Distributed interorganizational processes can be designed by first creating a global process, which is then split into processes or views for each participant. Existing methods for automating this transformation concentrate on the control flow and neglect either the data flow or address it only partially. Even for small interorganizational processes, there is a considerably large number of potential realizations of the data flow. We analyze the problem of generating message exchanges to realize the dataflow in depth and present a solution for constructing data flows which are optimal with respect to some design objectives. The approach is based on a definition of the correctness of data flow and a complete set of transformations which preserve correctness and allow to search for an optimal solution from a generated correct solution.','',2,'Julius KöpkeJohann Eder','springer/bpel security.csv','springer',''),(1830,'Partial materialization for online analytical processing over multi-tagged document collections','2016','0',' Document warehouse Document tags Text analytics Selective materialization OLAP Faceted browsing','Abstract The New York Times Annotated Corpus, the ACM Digital Library, and PubMed are three prototypical examples of document collections in which each document is tagged with keywords or phrases. Such collections can be viewed as high-dimensional document cubes against which browsers and search systems can be applied in a manner similar to online analytical processing against data cubes. After examining the tagging patterns in these collections, a partial materialization strategy is developed to provide efficient storage and access to centroids for document subsets that are defined through queries over tags. By adopting this strategy, summary measures dependent on centroids (including measures involving medoids, sets of representative documents, or sets of representative terms) can be efficiently computed. The proposed design is evaluated on the three collections and on several synthetically generated collections to validate that it outperforms alternative storage strategies.','Knowledge and Information Systems',1,'Grzegorz DrzadzewskiFrank Wm. Tompa','springer/service oriented architecture security.csv','springer',''),(1831,'Detecting common subexpressions for multiple query optimization over loosely-coupled heterogeneous data sources','2016','1',' Distributed databases Common subexpressions LINQ SQL XQuery Event and stream processing Heuristic rules','Abstract The research presented in this paper supports the identification of common subexpressions as candidates for potential materialized views that form the basis of multiple query optimization in a loosely-coupled distributed system where query expressions access heterogeneous data sources, including relations and data-centric XML. This paper introduces a unifying mixed multigraph formalism to represent SQL, XQuery, and LINQ queries in a common query graph model and a heuristics-based algorithm to detect common subexpressions. The identified common subexpressions represent an opportunity for defining a materialized view to avoid repeating computation. The common subexpressions may access only relations, only XML, or a combination of relations and XML. The mixed multigraph model and the heuristic rules presented in this paper have distinguished advantages over the existing approaches that consider only relational or XML data sources individually. The mixed multigraph model can present SQL, XQuery, and LINQ queries in a single graph model and the heuristic rules are designed to consider the identical and subsumed conditions at the same time. A prototype implementation of the algorithm illustrates the applicability of the approach using various examples from the research literature as well as scenarios over a Criminal Justice enterprise that include common subexpressions across relational and XML data sources.','Distributed and Parallel Databases',1,'Mahesh B. ChaudhariSuzanne W. Dietrich','springer/service oriented architecture security.csv','springer',''),(1832,'Synthesis of Real-Time Applications for Internet of Things','2013','0',' Internet of things real-time system system synthesis embedded systems','Abstract This paper presents the methodology for synthesis of real-time applications working in the Internet of things environment. We propose the client-server architecture, where smart embedded systems act as clients, while the Internet application is a server of the system. Since centralized systems are prone to contain bottlenecks, caused by accumulation of transmissions or computations, we propose the distributed architecture of the server and the methodology which constructs this architecture using available Internet resources. We assume that the function of the server is specified as a set of distributed algorithms, then our methodology schedules all tasks on existing network infrastructure. It takes into account limited bandwidth of communication channels as well as limited computation power of server nodes. If available network resources are not able to execute all tasks in real-time then the methodology extends the network by adding necessary computation nodes and network components, minimizing the cost of required reconstruction. We also present a sample application for adaptive control of traffic in a smart city, which shows benefits of using our methodology.','',1,'Sławomir BąkRadosław CzarneckiStanisław Deniziak','springer/service oriented architecture security.csv','springer','\0'),(1833,'Towards Multi-level Aware Model Transformations','2012','2',' multi-level transformation orthogonal classification architecture ontological classification linguistic classification','Abstract As practical tools for disciplined multi-level modeling have begun to emerge, the problem of supporting simple and efficient transformations to-and-from multi-level model content has started to assume growing importance. The problem is not only to support efficient transformations between multi-level models, but also between multi-level and traditional two-level model content represented in traditional modeling infrastructures such as the UML and programming languages. This is not only important to facilitate interoperability between multi-level modeling tools and traditional tools, but also to extend the benefits of multi-level modeling to transformations. Multi-level model content can already be accessed by traditional transformation languages such as ATL and QVT, but in a way that is blind to the ontological classification information they contain. In this paper we present an approach for making rule-based transformation languages “multi-level aware” so that the semantics of ontological instantiation can be exploited when writing transformations.','',2,'Colin AtkinsonRalph GerbigChristian Tunjic','springer/bpmn security.csv','springer','\0'),(1834,'Partitioning of web applications for hybrid cloud deployment','2014','1',' Cloud computing Hybrid cloud Middleware Application partitioning Optimization','Abstract Hybrid cloud deployment offers flexibility in trade-offs between the cost-savings/scalability of the public cloud and control over data resources provided at a private premise. However, this flexibility comes at the expense of complexity in distributing a system over these two locations. For multi-tier web applications, this challenge manifests itself primarily in the partitioning of application- and database-tiers. While there is existing research that focuses on either application-tier or data-tier partitioning, we show that optimized partitioning of web applications benefits from both tiers being considered simultaneously. We present our research on a new cross-tier partitioning approach to help developers make effective trade-offs between performance and cost in a hybrid cloud deployment. The general approach primarily benefits from two technical improvements to integer-programming based application partitioning. First, an asymmetric cost-model for optimizing data transfer in environments where ingress and egress data-transfer have differing costs, such as in many infrastructure as a service platforms. Second, a new encoding of database query plans as integer programs, to enable simultaneous optimization of code and data placement in a hybrid cloud environment. In two case studies the approach results in up to 54% reduction in monetary costs compared to a premise only deployment and 56% improvement in response time compared to a naive partitioning where the application-tier is deployed in the public cloud and the data-tier is on private infrastructure.','Journal of Internet Services and Applications',1,'Nima KavianiEric WohlstadterRodger Lea','springer/service oriented architecture security.csv','springer','\0'),(1835,'HDGPortal: A Grid portal application for pervasive access to process-based healthcare systems','2008','2','BPEL Engine;Grid Database Services;Grid Portal;Personal Digital Assistant (PDA);Pervasive Access;Web Services;Wireless Client','Healthcare is an increasingly collaborative enterprise, involving many individuals and organizations. The ability to provide readily access to integrated healthcare services remotely is now essential. Although Grid technology can support the integration of healthcare services across settings of care and among providers of care, it doesnpsilat make these services available to authorized users at the point of care when needed. The integration of mobile and wireless devices with Grid technology can provide ubiquitous and pervasive access to Grid services. This paper presents HDGPortal, a Grid portal application which provides access to workflow-based healthcare processes using wireless Personal Digital Assistants (PDAs). HDGPortalpsilas architecture is based on wrapping the workflow applications as web services and web service resources. These services are available to users through a number of Grid portal components that can be used for workflow enactment. HDGPortal has been implemented with a multi-layered security infrastructure in order to ensure secure access to healthcare processes.','2008 Second International Conference on Pervasive Computing Technologies for Healthcare',2,'V. Koufi; G. Vassilacopoulos','ieee/bpel security.csv','ieee','\0'),(1836,'Service Component Architecture Extensions for Dynamic Systems','2012','3',' SCA Software Engineering Service-Oriented Architectures Component-Based Design Dynamic Adaptability','Abstract The Service Component Architecture (SCA) is a set of specifications which defines a model in which components may interact by means of services. SCA is supported by major software vendors due to its several advantages, such as technology independence and portability. However, SCA in its current form does not address components substitutability, one of the goals of the Service-Oriented Architectures style. This paper discusses this limitation and proposes a set of extensions to SCA in order to manage dynamic substitutability of services and their life cycle, which allows components to change service providers at run-time whenever they need to. These extensions are validated by NaSCAr, an iPOJO-based tool which enables the dynamic deployment and adaptation of SCA composites on the OSGi service platform.','',2,'João Claudio AméricoDidier Donsez','springer/bpel security.csv','springer','\0'),(1837,'Event-Driven Actors for Supporting Flexibility and Scalability in Service-Based Integration Architecture','2012','3',' Event-driven architecture event actors services service-based integration architecture flexibility scalability substitutability','Abstract Service-based software systems are often built by incorporating functionalities from other software systems or platforms. A widely used approach in practice is to introduce an intermediate integration layer for hiding the complexity and heterogeneity of the integrated systems or platforms. However, existing approaches introduce limited support for the flexibility of the integration architecture. It is challenging to alter the integration architecture, e.g., due to some exceptions or unanticipated situations such as peak loads or emergencies, because of rigid dependency structures in the integration architecture defined at design or deployment time. In this paper, we propose DERA as a novel approach that exploits event-driven architecture concepts for enhancing the flexibility and scalability of service-based integration architectures. Our approach provides primitive concepts that can easily be analyzed with tools or be used to depict a current snapshot of the integration architecture using graphical notations close to the intuitive perception of stakeholders. We show the applicability of DERA through an industrial case study in the field of software platform integration and evaluate the scalability of our approach.','',2,'Huy TranUwe Zdun','springer/bpel security.csv','springer','\0'),(1838,'From a Simple Flow to Social Applications','2013','1',' Social Applications Design Tools and Techniques Component-based development','Abstract Currently, there are a lot of people trying to leverage on the success of social networks by implementing social applications. However, implementing social applications is complex, due to the requirements and constraints put by the social networks to protect their data. In this work we present Simple Flow, a tool that simplifies the creation of social applications. Simple Flow proposes a processes-based approach to the design and execution of social applications. Simple Flow targets end-users and programmers with no experience in programming for social networks, giving them the possibility to design processes by concatenating social network actions (like post a message or comment a photo). For the execution of the designed processes Simple Flow interconnects, at runtime, template web pages (one page per action) according to the process design defined previously. These templates abstract the complexities of the interactions with social networks.','',2,'Juan JaraFlorian DanielFabio CasatiMaurizio Marchese','springer/bpmn security.csv','springer','\0'),(1839,'TEEI - A Mobile Security Infrastructure for TEE Integration','2014','1','ITS;Mobile Payment;Mobile Security;TEE;TEEI;TVM;Virtual Network','Mobile security becomes a hot topic recently, especially in mobile payment and privacy data fields. Traditional solution can\'t keep a good balance between convenience and security. Against this background, a dual OS security solution named Trusted Execution Environment (TEE) is proposed and implemented by many institutions and companies. However, it raised TEE fragmentation and control problem. Addressing this issue, a mobile security infrastructure named Trusted Execution Environment Integration (TEEI) is presented to integrate multiple different TEEs. By using Trusted Virtual Machine (TVM) tech-nology, TEEI allows multiple TEEs running on one secure world on one mobile device at the same time and isolates them safely. Furthermore, a Virtual Network protocol is proposed to enable communication and cooperation among TEEs which includes TEE on TVM and TEE on SE. At last, a SOA-like Internal Trusted Service (ITS) framework is given to facilitate the development and maintenance of TEEs.','2014 IEEE 13th International Conference on Trust, Security and Privacy in Computing and Communications',1,'H. Chai; Z. Lu; Q. Meng; J. Wang; X. Zhang; Z. Zhang','ieee/service oriented architecture security.csv','ieee',''),(1840,'Data Integration for Clinical Decision Support Based on openEHR Archetypes and HL7 Virtual Medical Record','2013','4',' CDSS PHR interoperability archetypes openEHR vMR','Abstract Clinical Decision Support Systems (CDSS) have gained relevance due to their potential to support patient-centric care, but their deployment still has to overcome barriers to become successful. One of these barriers is the integration of patient data with the CDSS engine, a tough challenge given the need to address interoperability with many different existing systems and medical devices. The MobiGuide project aims to build such a CDSS, providing guideline- based clinical decision support through a Personal Health Record (PHR). This PHR is the main component through which the CDSS could access patient data originating from hospital EMRs and wearable sensors, but it also contains the log of the recommendations provided by the CDSS. Using a case study, we compare data-representation standards through which the PHR could be developed, while considering expressiveness and usability requirements. We propose to develop the PHR by combining openEHR archetypes and the HL7 Virtual Medical Record standard, supported by a service oriented framework for data exchange. This proposal aims to close the gap between the HL7 and the ISO/CEN 13606 by using an openEHR-based approach.','',1,'Arturo González-FerrerMor PelegBert VerheesJan-Marc VerlindenCarlos Marcos','springer/service oriented architecture security.csv','springer','\0'),(1841,'Discovering BPMN Models with Sub-processes and Multi-instance Markers','2015','0','','Abstract Massive event logs are produced in information systems, which record executions of business processes in organizations. Various techniques are proposed to discover process models reflecting real-life behaviors from these logs. However, the discovered models are mostly in Petri nets rather than BPMN models, the current industrial process modeling standard. Conforti et al. and Weber et al. propose techniques that discover BPMN models with sub-processes, multi-instance, etc. However, these techniques are made for event logs with special attributes, e.g., containing attributes about primary and foreign keys, which may not commonly appear in event logs. For example, logs from the OA (office automation) systems of CMCC (China Mobile Communications Corporation) do not contain such data. To solve this issue, this paper proposes two techniques that can discover BPMN models with sub-processes and multi-instance markers with event logs containing less event attributes. One of our techniques only requires four event attributes: case id, task name, start time and end time. Experimental evaluations with both real-life logs and synthetic logs show that our techniques can indeed discover process models with sub-process and multi-instance markers from logs with less event attributes, and are more accurate and less complex than those derived with flat process model discovery techniques.','',2,'Yuquan WangLijie WenZhiqiang YanBo SunJianmin Wang','springer/bpmn security.csv','springer',''),(1842,'Successful CyberInfrastructures for E-Health','2014','','Agile Processes; CyberInfrastructure; Design Methodology; Distributed Systems; E-Health; Large-scale Systems; Security; Service-oriented Architecture; System Architecture','The health-care sector has stringent needs for CyberInfrastructures (CIs) to improve both its patient-care capabilities and its potential for advanced clinical research. Large-scale projects reveal that economics, technology, science, and people need a careful balance to be successful. In this chapter, we detail our value-based methodology for architecting and implementing CIs for multiple projects in this field. We highlight the requirements and challenges presented by this field, the process for value-cost analysis, proper stakeholder involvement, and architecture evaluation to match a system\'s timeline and budget. We also discuss lessons learned and typical CI aspects, including data ingestion and sharing, privacy and security, life-cycle management, rapid prototyping and user adoption, performance, and scalability, and their impact on project economics. We conclude with strategic factors for overall project success. © 2014 Elsevier Inc. All rights reserved.','',1,'Farcas E., Farcas C., Krüger I.','scopus/service oriented architecture security.csv','scopus','\0'),(1843,'An Access Control Model for Organisational Management in Enterprise Architecture','2013','3','Access control;ArchiMate;Authorisation;Enterprise architecture;RBAC;Task','Enterprise architecture (EA) aims to provide management with appropriate indicators and controls to steer and model service-oriented enterprises. EA offers a suitable operating platform to support an organisation\'s future goals and the roadmap for moving towards this vision. Despite significant research interest in the domain, common enterprises architecture frameworks lack of access control mechanisms supporting security requirements within organisations. Security has become a matter of paramount concern when managing organisations resources such as stakeholders\' authorisation or sensitive data. In this paper, we propose an innovative approach for managing organisational resources in enterprise architecture. In doing so, we reason about task-based resources in the EA language ArchiMate. The idea is to build a conceptual model supporting access control when modelling a business process (set of tasks) in ArchiMate. We then map the common concepts with the role-based access control model (RBAC) to specify the required authorisation policies as part of the security specifications and guidelines in EA. Finally, a case study illustration will be used for the evaluation as part of the research approach.','Semantics, Knowledge and Grids (SKG), 2013 Ninth International Conference on',1,'K. Gaaloul; H. A. Proper','ieee/service oriented architecture security.csv','ieee','\0'),(1844,'Accountability in internet transactions revisited','2015','','Accountability; Internet Transactions; Liability; Non-repudiation; Responsiveness','Accountability has been widely used in different perspectives and has many different terms and definitions. Accountability in management focuses on how organizations and persons effectively make use of their individual controls: external control (reward and punishment) and internal control (felt responsibility). Accountability in SOA (Service-Oriented Architecture) focuses on how to disclose the message with security, privacy and liability and how to track evidence of the rendered services. In health care, accountability focuses on how to reveal patient\'s health record with privacy and security controls. For Internet transaction, accountability is to ensure how each party involves in performing a transaction that satisfies necessary security properties. In this paper, we conduct a survey of different perspectives of accountability to indicate that the definition of accountability for Internet transactions is limited. We study a number of research works which focus on accountability in several aspects and determine their advantages about accountability in Internet transactions. © 2014 IEEE.','',1,'Techapanupreeda C., Chokngamwong R., Thammarat C., Kungpisdan S.','scopus/service oriented architecture security.csv','scopus',''),(1845,'PROPhESY: A PRObabilistic ParamEter SYnthesis Tool','2015','1','','Abstract We present PROPhESY, a tool for analyzing parametric Markov chains (MCs). It can compute a rational function (i.e., a fraction of two polynomials in the model parameters) for reachability and expected reward objectives. Our tool outperforms state-of-the-art tools and supports the novel feature of conditional probabilities. PROPhESY supports incremental automatic parameter synthesis (using SMT techniques) to determine “safe” and “unsafe” regions of the parameter space. All values in these regions give rise to instantiated MCs satisfying or violating the (conditional) probability or expected reward objective. PROPhESY features a web front-end supporting visualization and user-guided parameter synthesis. Experimental results show that PROPhESY scales to MCs with millions of states and several parameters.','',1,'Christian DehnertSebastian JungesNils JansenFlorian CorziliusMatthias VolkHarold BruintjesJoost-Pieter KatoenErika Ábrahám','springer/service oriented architecture security.csv','springer',''),(1846,'Novel Energy Saving Opportunities in Smart Grids Using a Secure Social Networking Layer','2012','2','community-driven energy sharing;smart grid','The Smart Grid initiative aims at transforming the public power grid to a flexible and intelligent energy utility. With this advancement, numerous applications can be implemented which are hard - if not impossible - to realize with today\'s technologies. For instance, in case of rolling blackouts, the power supply of critical infrastructures such as hospitals or traffic lights, can be prioritized immediately over private households and the grid\'s structure reshaped accordingly. Moreover, the energy grid becomes participative by enabling traditional consumers to feed back energy generated by their private solar panels and wind turbines. We argue that when coupling smart grid stakeholders with a social network, even more advanced use cases provide unmatched energy saving opportunities. Online platforms enable a plethora of novel application use cases, such as energy saving campaigns and competitions, utilization of friends\' solar power, and coordination and sharing of energy consumption plans. In this paper, we introduce a social overlay model for smart grids, present its implementation using service-oriented architectures, and evaluate scalability and applicability.','2012 IEEE 36th Annual Computer Software and Applications Conference',1,'F. Skopik; C. Wagner','ieee/service oriented architecture security.csv','ieee','\0'),(1847,'Towards BPEL in the Cloud: Exploiting Different Delivery Models for the Execution of Business Processes','2009','23','BPEL;Cloud Computing;IaaS;PaaS;SaaS;Security;Trust','More and more companies are outsourcing parts of their business processes to third party providers to exploit the expertise and economies of scale of these third party providers. In the IT field, emerging delivery models for software such as Software as a Service and cloud computing offer the possibility to outsource applications and computing infrastructure and thus enable enterprises to focus on their core competences. In this paper we investigate how the new delivery models affect the outsourcing of business processes modeled in WS-BPEL. WS-BPEL is the standard to model and execute business processes in Web service-based IT landscapes. We describe how security and trust issues affect the execution of BPEL processes in the cloud and show the requirements on the middleware supporting the execution of BPEL processes.','2009 Congress on Services - I',2,'T. Anstett; F. Leymann; R. Mietzner; S. Strauch','ieee/bpel security.csv','ieee',''),(1848,'Attribute based access control (ABAC)-based cross-domain access control in service-oriented architecture (SOA)','2012','3','access control; Attribute-Based Access Control (ABAC); SOA','The traditional role-based access control model (RBAC) can not meet the requirements of Service Oriented Architectures (SOA) on the distribution and openness, Attribute-Based Access Control (ABAC), which is more fine-grained in access control, is more fit into the SOA open environment. This paper presents an ABAC-based cross-domain access control system, together with the security domain as a attribute with the subject, object, authority, environment attributes as the basis for access to the decision-making, eliminating integration constraints for the SOA framework based on the RBAC, somehow improves the scalability and alterability of the system, solved the problem of cross-domain access control. © 2012 IEEE.','',1,'Ni D., Shi H.-J., Chen Y., Guo J.-H.','scopus/service oriented architecture security.csv','scopus','\0'),(1849,'Measuring Impact on Missions and Processes: Assessment of Cyber Breaches','2012','0','BPMN;Information Security;Risk Assessment','Although the importance of securing Information and Communication Technology (ICT) resources is widely recognized, very little work has been reported on measuring the impact of breaches of security on processes that use these resources. More specifically, the research question explored in this paper is measuring the impact on activities of a mission given the risk to ICT resources employed in the mission. Using BPMN as a process modeling notation and in the context of and through a military convoy movement example, we present formulas to compute this impact. In addition to its novelty, the contribution of this work includes its generalizability to all security issues and not necessarily limited to cyber security.','System Science (HICSS), 2012 45th Hawaii International Conference on',2,'J. Choobineh; E. E. Anderson; M. R. Grimaila','ieee/bpmn security.csv','ieee','\0'),(1850,'An Empirical Study on Design Diversity of Functionally Equivalent Web Services','2012','0','Empirical studies;Fault-tolerant systems;Service-oriented applications;Software reliability','A number of approaches based on design diversity moderate the communication between clients and functionally equivalent services, i.e., variant services, to tolerate software faults in service-oriented applications. Nevertheless, it is unclear whether variant services are actually diverse and fail on disjoint subsets of the input space. In a previous work, we proposed an experimental setup to assess design diversity of variant services that realize a requirements specification. In this work, we utilize the proposed experimental setup to assess the design diversity of a number of third-party Web services adhering to seven different requirements specifications. In this paper, we describe in detail the main findings and lessons learnt from this empirical study. Firstly, we investigate whether variant services are in fact diverse. Secondly, we investigate the effectiveness of service diversity for tolerating faults. The results suggest that there is diversity in the implementation of variant services. However, in some cases, this diversity might not be sufficient to improve system reliability. Our findings provide an important knowledge basis for engineering effective fault-tolerant service applications.','Availability, Reliability and Security (ARES), 2012 Seventh International Conference on',1,'A. S. Nascimento; F. Castor; C. M. F. Rubira; R. Burrows','ieee/service oriented architecture security.csv','ieee','\0'),(1851,'Entscheidungsunterstützung für Cloud Computing — ITIL Service Lifecycle','2012','0','','Zusammenfassungen Es kann festgehalten werden, dass das ITIL-Framework geeignet ist, die notwendigen Entscheidungen zur Einführung und Nutzung von Cloud Computing zu unterstützen. ITIL (IT Infrastructure Library) stellt damit eine relevante Entscheidungsprämisse dar. Es wird deutlich, dass trotz Auslagerung von Aufgaben an den Cloud-Provider auch Prozesse der ITIL-Phasen Service Transition und Service Operation weiterhin eine Relevanz für interne IT-Provider haben. Eine Kundenorganisation kann durch explizite Planungsentscheidungen die bisherigen IT-Servicemanagementprozesse an die Herausforderungen des Cloud Computing anpassen und somit die Einführung und Nutzung von Cloud Computing vorbereiten.','HMD Praxis der Wirtschaftsinformatik',1,'Alexander Robrecht B.Sc.Dipl.-Kfm. Carsten MöllerDipl.-Math. Regine DörbeckerProf. Dr. Tilo Böhmann','springer/soa security.csv','springer','\0'),(1852,'Service Oriented Requirements Engineering: Practitioner’s Perspective','2013','2',' Service Oriented Software Engineering Requirements Engineering issues and challenges','Abstract Over a decade ago Service Oriented Architecture (SOA) was introduced to provide better alignment between business requirements and IT solutions. During this period a great deal of research interest has emerged from academia and industry alike, to promote this new style of software development. The promise was that SOA based development will improve reusability, agility, platform independence and dynamic discovery, reconfiguration and change management. In spite of all the promises and enhancement in tools and technologies, the service oriented software development continues to face various challenges especially in Requirements Engineering. In this paper we present a qualitative study of Service Oriented Requirements Engineering. Data was collected by conducting interviews with practitioners from IT companies in Sydney, who are experienced in working on SOA based projects. The objective was to explore the issues and challenges faced during requirements analysis in service oriented software development. The results show that Service-Oriented software development has not only inherited existing issues of traditional Requirements Engineering but has also introduced new challenges. The technology has become advanced in SOA but the issues related to the organizational and business aspect of service oriented development need more attention for achieving true benefits of this technology.','',1,'Muneera Bano SahibzadaDidar Zowghi','springer/service oriented architecture security.csv','springer','\0'),(1853,'Reputation in Communities of Agent-Based Web Services Through Data Mining','2015','0',' Communities of web services Reputation Clustering Anomaly detection','Abstract We present in this paper a reputation model for agent-based web services grouped into communities by their equivalent functionalities. The reputation of each web service is based on the non-functional properties of its interactions with other web services from the same community. We exploit various clustering and anomaly detection techniques to analyze and identify the quality patterns provided by each service. This enables the master of each community to allocate the requests it receives to the web service that best fulfill the quality requirements of the service consumers. Our experiments present realistic scenarios based on synthetic data that characterizes the reputation feedback of the quality provided by a web service at different times. The results showcase the capability of our reputation model in portraying the quality of web services that reside in a community and characterizing their fair and unfair feedback reports.','',1,'Mohamad MehdiNizar BouguilaJamal Bentahar','springer/service oriented architecture security.csv','springer',''),(1854,'Dynamic Weaving in Aspect Oriented Business Process Management','2013','1',' Business Process Management Aspect Oriented Weaving Service Oriented Architecture Reusability Coloured Petri Nets','Abstract Reducing complexity in Information Systems is an important topic in both research and industry. One strategy to deal with complexity is separation of concerns, which results in less complex, easily maintainable and more reusable systems. Separation of concerns can be addressed through the Aspect Oriented paradigm. Although this paradigm has been well researched in programming, it is still at the preliminary stage in the area of Business Process Management. While some efforts have been made to extend business process modelling with aspect oriented capability, it has not yet been investigated how aspect oriented business process models should be executed at runtime. In this paper, we propose a generic solution to support execution of aspect oriented business process models based on the principle behind dynamic weaving of aspects. This solution is formally specified using Coloured Petri Nets. The resulting formal specification serves as the blueprint to the implementation of a service module in the framework of a state-of-the-art Business Process Management System. Using this developed artefact, a case study is performed in which two simplified processes from real business in the domain of banking are modelled and executed in an aspect oriented manner. Through this case study, we also demonstrate that adoption of aspect oriented modularization increases the reusability while reducing the complexity of business process models in practice.','',2,'Amin JalaliPetia WohedChun OuyangPaul Johannesson','springer/bpel security.csv','springer','\0'),(1855,'A Formal Dynamic Verification of Choreographed Web Services Conversations','2015','0',' Monitoring Choreography Formal verification Web service composition Security policy enforcement Runtime verification','Abstract Performing runtime verification of composite web services is one of the actual main research challenges. This paper presents a formal approach for dynamically enforcing security policies on web services choreographies. We define a security framework for monitoring choreographed web services by inlining a monitor that checks whether a choreography adheres to some constraints dictated by a security policy. Therefore, this monitor prohibits the execution of undesirable behaviors during runtime and does not change the original behavior of the choreography until an action is about to violate the security policy.','',2,'Karim DahmaniMahjoub LangarRiadh Robbana','springer/bpel security.csv','springer',''),(1856,'A Novel Heuristic Scheme for Modeling and Managing Time Bound Constraints in Data-Intensive Grid and Cloud Infrastructures','2014','0','','Abstract Inspired by the emerging Cloud Computing challenge, in this paper we provide a comprehensive framework for modeling and managing time bound constraints in data-intensive Grid and Cloud infrastructures , along with its experimental assessment and analysis. We provide both conceptual and theoretical contributions of the proposed framework, along with a heuristic scheme , called RGDTExec , that solves all possible instances of the problem underlying the proposed framework by exploiting a suitable greedy algorithm , called RGDTExecRun . As we demonstrate throughout the paper, the framework keeps several aspects of research innovations that are beneficial in a wide range of application scenarios.','',1,'Alfredo CuzzocreaGuandong Xu','springer/service oriented architecture security.csv','springer','\0'),(1857,'CloudExplorer: A User-Centered Cloud Browser for Cloud Services','2012','1','Cloud Browser;Cloud Computing;Composite Search;Composition-based Development;Interaction-Based Security;Semantic User Modeling','A user-centered cloud browser, i.e., Cloud Explorer, is proposed to discover, process and execute emerging cloud services, as Web browsers are used to search and display Web information. Cloud Explorer is the first attempt for end users to explore cloud services to meet with users\' behaviors and concerns in the coming cloud society. The browser is devoted to end users and has made great differences in that (i) Cloud Explorer is personalized and each people can be provided with a private Cloud Explorer, (ii) Cloud Explorer discovers services based on user models and using semantic & composite service search techniques, (iii) Cloud Explorer support service package customization and execution with users\' interaction, (iv) Cloud Explorer is located and associated with a person, and keeps the person\'s individual information, (v) Cloud Explorer provides an interaction-based security mechanism for cloud society. Other applications can interact with the browser to get certification and authorization to avoid releasing personal information. The principle and technical issues of Cloud Explorer are discussed. Based on the previous work, the browser has been prototyped to address several service-oriented application issues.','e-Business Engineering (ICEBE), 2012 IEEE Ninth International Conference on',1,'Y. Li; J. Li; F. Zhou; Y. Fang; H. Chen','ieee/service oriented architecture security.csv','ieee','\0'),(1858,'BP-XACML an Authorisation Policy Language for Business Processes','2015','0',' XACML BPM Workflow Authorisation management Authorisation policy language','Abstract XACML has become the defacto standard for enterprise-wide, policy-based access control. It is a structured, extensible language that can express and enforce complex access control policies. There have been several efforts to extend XACML to support specific authorisation models, such as the OASIS RBAC profile to support Role Based Access Control. A number of proposals for authorisation models that support business processes and workflow systems have also appeared in the literature. However, there is no published work describing an extension to allow XACML to be used as a policy language with these models. This paper analyses the specific requirements of a policy language to express and enforce business process authorisation policies. It then introduces BP-XACML, a new profile that extends the RBAC profile for XACML so it can support business process authorisation policies. In particular, BP-XACML supports the notion of tasks, and constraints at the level of a task instance, which are important requirements in enforcing business process authorisation policies.','',2,'Khalid AlissaJason ReidEd DawsonFarzad Salim','springer/bpel security.csv','springer',''),(1859,'Quality Evaluation within Service-Oriented Software: A Multi-perspective Approach','2012','0','quality of service;service quality;service-level agreement;service-oriented software;software as a service','In the original service-oriented view of software provision, loosely-coupled services are brought together at the time of need and unbound immediately following execution, allowing service procurers to focus on selecting services that best correspond to their evolving requirements. This just-in-time approach requires the assessment of quality properties of both the software and the service provision activity in order to judge candidate services. In this paper, we propose and evaluate a multi-perspective quality evaluation model tuned to the needs of this \"just-in-time\" service provision vision. The proposed model uses a hierarchal structure of the quality features that characterize both the software and its provision arrangements from the perspectives of different stakeholders in the service provisioning and consumption process. The development and evaluation reported here took place in two phases: a \"role playing\" user study involving 15 participants to elicit the suitability, applicability and measurability of quality characteristics; and a contextual interview involving 24 users (12 software professionals and 12 general users) to uncover their mental models towards quality and evaluate the resultant characteristics identified from the first study. Our findings were twofold. Firstly, we show that a broader range of considerations encompassing both service quality and quality of service must be accounted for when dealing with software services (e.g. service functionality and service responsiveness). Secondly, we identify and explore the users\' mental model of quality within the service-oriented paradigm.','Services Computing (SCC), 2012 IEEE Ninth International Conference on',1,'A. Owrak; A. Namoun; N. Mehandjiev','ieee/service oriented architecture security.csv','ieee','\0'),(1860,'The design and implementation of Neuma, a collaborative Digital Scores Library','2012','0',' Musicological information management On-line score publishing Annotation Time series processing Collaborative platforms Watermarking','Abstract This paper presents the design and implementation of the Neuma platform, a digital library devoted to the preservation and dissemination of symbolic music content (scores). Neuma is open to musicologists, musicians, and music publishers. It consists of a repository dedicated to the storage of large collections of digital scores, where users/applications can upload their documents. It also proposes services to publish, annotate, query, transform, and analyze scores. The long-term goal of the project is to enable an open and collaborative space where musician communities will be able to share music in symbolic notation. The project is organized around the French IRPMF institute (BnF–CNRS) which chooses and produces collections (or corpora ), collects and organizes user requirements, and validates new publications. We describe the architecture of Neuma and develop some of its salient features: score modeling annotations, search and transformation language, collaborative and community tools, and digital rights preservation. We illustrate these features with two collections published by Neuma , and discuss the impact of such on-line score collections from a musicological perspective.','International Journal on Digital Libraries',1,'P. RigauxL. AbroukH. AudéonN. CullotC. Davy-RigauxZ. FagetE. GavignetD. Gross-AmblardA. TacailleV. Thion-Goasdoué','springer/service oriented architecture security.csv','springer','\0'),(1861,'Advanced Approach to Future Service Development','2013','0',' service development OSS/BSS non-functional requirements workflow design and transformation Dia editor','Abstract Modern companies, including telecommunication ones and mobile operators, working in the global environment, need to guarantee technological effectiveness and innovation, renewing their technologies and services. Communication technologies and variety of services are to be improved and developed extremely fast. This results in the need for constant adaptation and reconfiguration of complex software systems, used in global environment to provide and monitor deployed services. For instance, OSS/BSS is used in the domain of telecommunication companies. Reconfiguration of complex software systems covers application development for service provisioning, their dynamic monitoring and reconfiguration. Currently, system adaptation and service design strategies are poorly formalized and validated. In current state-of-the-art approaches, several iterations involving analysts and system architects are necessary, resulting in time and money consuming service development. The approach proposed in this paper fills this gap. It employs a well-defined workflow and analysis model for developing and adapting complex software systems. The applicability of this novel approach is confirmed by an implemented software tool. The proposed approach and tool provide automation of service development, focusing on planning and design stages, considering both functional and non-functional requirements and realizing computational independent workflow transformation into its execution model.','',2,'Tetiana KotLarisa GlobaAlexander Schill','springer/bpel security.csv','springer','\0'),(1862,'A Trust Management Model for QoS-Based Service Selection','2012','3',' Service Oriented Architecture trust management service selection Quality of Service (QoS)','Abstract As the number of available services increases on the Web, it becomes greatly vital in service-oriented computing to discover a trustworthy service that best fits users’ requirements. Once a set of services fulfilling user’s functional requirements are founded, one of these services invoked by the users depends mostly on the Quality of Services (QoS), particularly security, trust, and reputation. This paper proposes a trust management model to support service discovery and selection based on trust and QoS. We propose a novel trustworthy service discovery and selection mechanism to make service consumers get trustworthy services possible. The mechanism uses consumers’ feedback to describe service’s and service provider’s trustworthy level. The service selection using the quantitative measurement rather than consumers’ intuitive selection allows selecting a high reliable service accomplishing their quality requirements well. Finally, we give experimental results by implementing the prototype for verifying the trust evaluation method.','',1,'Yukyong KimKyung-Goo Doh','springer/service oriented architecture security.csv','springer','\0'),(1863,'Dispelling myths about rare disease registry system development','2013','9',' Rare disease Disease registry Software development','Abstract Rare disease registries (RDRs) are an essential tool to improve knowledge and monitor interventions for rare diseases. If designed appropriately, patient and disease related information captured within them can become the cornerstone for effective diagnosis and new therapies. Surprisingly however, registries possess a diverse range of functionality, operate in different, often-times incompatible, software environments and serve various, and sometimes incongruous, purposes. Given the ambitious goals of the International Rare Diseases Research Consortium (IRDiRC) by 2020 and beyond, RDRs must be designed with the agility to evolve and efficiently interoperate in an ever changing rare disease landscape, as well as to cater for rapid changes in Information Communication Technologies. In this paper, we contend that RDR requirements will also evolve in response to a number of factors such as changing disease definitions and diagnostic criteria, the requirement to integrate patient/disease information from advances in either biotechnology and/or phenotypying approaches, as well as the need to adapt dynamically to security and privacy concerns. We dispel a number of myths in RDR development, outline key criteria for robust and sustainable RDR implementation and introduce the concept of a RDR Checklist to guide future RDR development.','Source Code for Biology and Medicine',1,'Matthew BellgardChristophe BeroudKay ParkinsonTess HarrisSegolene AymeGareth BaynamTarun WeeramanthriHugh DawkinsAdam Hunter','springer/webservice security.csv','springer','\0'),(1864,'Content Based Service Discovery in Semantic Web Services Using WordNet','2012','0',' Semantic Web Services Discovery Ontology Discovery WordNet','Abstract The main aspect of Service Oriented Architecture (SOA) is the ability to automatically discover and invoke web services. In web services the syntactic nature of the WSDL forced UDDI to feature only keyword-based matches that often leads to the discovery of more irrelevant services, which ultimately reduce the precision and recall of the search. Semantic web services had been proposed to overcome the issues such as interface heterogeneity and keyword-based syntactic search. The service discovery methods in semantic web services generally require a user query which is used to match the Inputs, Outputs, Precondition and Effect (IOPE) present in the service profile of the OWL-S. This type of matching restricts the users to use the queries that must be of the same context as that of the IOPEs present in the OWL-S. In this work a content-based semantic discovery architecture is proposed, in which the users can use their desired text document as input. The text document after passing through several refinement processes, the nouns are separated. This approach uses the WordNet lexical database, to find the meaning of the extracted nouns which are used for the discovery.','',1,'D. PaulrajS. Swamynathan','springer/service oriented architecture security.csv','springer','\0'),(1865,'A Concept for the Control, Monitoring and Visualization Center in Energy Lab 2.0','2015','0',' Energy lab Energy system Microgrid Simulation Visualization Web technology','Abstract Energy Lab 2.0 is designed as a large experimental test and simulation field for multi-scale and multi-mode energy system facilities at KIT. A Smart Energy System Simulation and Control Center (SEnSSiCC) is the core component in terms of information and communication technology. The present article introduces basic concepts for the Control, Monitoring and Visualization Center (CMVC) of SEnSSiCC. The CMVC bundles all communication channels and real facilities, simulation environments, and data repositories into an integrated research environment for planning, control, monitoring, analyzing and visualization of smart grids and their components, and furthermore for evaluating future concepts for smart grid utility operation. Special emphasis is placed on the distributed computing operating system environment setup for the CMVC, the intended use of Big Data technologies, the polyglot approach for data management and analysis, and first concepts for implementing a hybrid agent based simulation environment. Also, the usage of web technologies and microservices are considered as key aspects of the overall architecture.','',1,'Clemens DüpmeierKarl-Uwe StuckyRalf MikutVeit Hagenmeyer','springer/microservice security.CSV','springer',''),(1866,'Information Classification Issues','2014','0',' information classification systematic literature review information security management systems','Abstract This paper presents an extensive systematic literature review with the aim of identifying and classifying issues in the information classification process. The classification selected uses human and organizational factors for grouping the identified issues. The results reveal that policy-related issues are most commonly described, but not necessarily the most crucial ones. Furthermore, gaps in the research field are identified in order to outline paths for further research.','',1,'Erik BergströmRose-Mharie Åhlfeldt','springer/service oriented architecture security.csv','springer','\0'),(1867,'Self-Adaptivity from Different Application Perspectives','2013','0',' self-adaptive system run-time adaptation software engineering model-driven development evaluation framework','Abstract Self-adaptivity can be beneficial in many application domains. In recent years we have researched the engineering of self-adaptive software systems in three rather diverse domains: ubiquitous computing applications, teams of autonomous mobile robots, and management of service-oriented software systems. While all of them perform dynamic adaptation at run-time following a specified control loop, they differ fundamentally in their specific objectives, requirements, properties, and constraints. Consequently, their design and realization focus on different domain aspects and require different modeling and engineering techniques. In this paper we elaborate on synergies and discrepancies in developing the three case studies. We evaluate these self-adaptive systems using a recently published framework for evaluating self-adaptive software systems. The main contributions of this paper are a reflection on the design space of self-adaptive systems and a critique of the proposed evaluation framework.','',2,'Kurt Geihs','springer/bpel security.csv','springer','\0'),(1868,'MindYourPrivacy: Design and implementation of a visualization system for third-party Web tracking','2014','1','Data and Knowledge Visualization; Network Monitoring; Security; Web Mining','Third-party Web tracking is a serious privacy issue. Advertisement sites and social networking sites stealthily collect users\' Web browsing history for purposes such as targeted advertising or predicting trends. Unfortunately, very few Internet users realize this, and their privacy has been infringed upon because they have no means of recognizing the situation. In this paper we present the design and implementation of a system called MindYourPrivacy that visualizes third-party Web tracking and clarifies the entities threatening users\' privacy. The implementation adopts deep packet inspection, DNS-SOA-record-based categorization, and HTTP-referred graphical analysis to visualize collectors of Web browsing histories without device dependency. To demonstrate the effectiveness of our proof-of-concept implementation, we conducted an experiment in an IT technology camp, where 129 attendees discussed IT technologies for four days, The experiment\'s results revealed that visualizing Web tracking effectively influences users\' perception of privacy. Analysis of the user data we collected at the camp also revealed that MCODE clustering and some features derived from graph theory are useful for detecting advertising sites that potentially collect user information by Web tracking for their own purposes. © 2014 IEEE.','',1,'Takano Y., Ohta S., Takahashi T., Ando R., Inoue T.','scopus/soa security.csv','scopus','\0'),(1869,'User-Oriented Provisioning of Secure Virtualized Infrastructure','2012','1',' virtualization virtual appliances virtual networks security provisioning VM Set Cell-as-a-Service','Abstract The chapter presents a system for effective provisioning of VM Sets and supporting the dialog between providers and end users. VM Sets are networks of interconnected virtual appliances. Requirements for user-oriented provisioning of VM Sets are presented and an infrastructure supporting this activity is described. Stages of the VM Set provisioning process are defined and their functionality is described. Subsequently, manageability aspects are presented with special focus on runtime aspects. The implementation status of the VM Set provisioning environment within the PL-Grid Project is also reported.','',1,'Marcin JarząbJacek KosińskiKrzysztof ZielińskiSławomir Zieliński','springer/service oriented architecture security.csv','springer','\0'),(1870,'Survivability analysis of SOA based on attack tree models','2012','','attack tree; SOA; survivability; web service','Survivability is the ability of a system to continue offering services in the presence of an accident or malicious attacks. The goal of survivability analysis is to identify the system components that are susceptible to attacks and to quantify their capabilities to survive the attacks. In systems based on Service Oriented Architectures, the survivability analysis is fundamentally different from the traditional security centric approaches that have been developed for traditional systems. This paper presents an initial study in adopting the attack tree analysis with formalization for survivability study. From the attack tree analysis, we defined attack tree as a tuple, and then gave an equation for calculating the potential damage. We augmented the attack tree with values signifying the residual damage, and then calculated the survivability of the system. © 2012 IEEE.','',1,'Xiao Y., Wang Y.J., Huang Z.G.','scopus/service oriented architecture security.csv','scopus','\0'),(1871,'Web Service Composition Approaches: From Industrial Standards to Formal Methods','2007','25','','Composition of Web services is much studied to support business-to-business and enterprise application integration in e-commerce. Current Web service composition approaches range from practical languages aspiring to become standards (like BPEL, WS-CDL, OWL-S and WSMO) to theoretical models (like automata, Petri nets and process algebras). In this paper we compare these approaches w.r.t. a selected set of characteristics (like trust, security and performance) and we advocate the use of formal models, and their tool support, to increase one\'s confidence in web service compositions. This paper can assist web service composition designers and developers to deliver lasting solutions, in concordance with the technology\'s critical needs.','Internet and Web Applications and Services, 2007. ICIW \'07. Second International Conference on',2,'M. ter Beek; A. Bucchiarone; S. Gnesi','ieee/bpel security.csv','ieee',''),(1872,'A Secure Cloud Computing','2010','1','Spyware;Trojan;Webservice;hashing technique','If we minutely analyze our day to day life then we shall find that it consists of utilization of some resources that are needed for our survival. Cloud computing plays a major role in this orientation by providing different resources in the form of web services like tax calculation web service, stock information web service, e-banking web service etc; for the smooth running of our daily lives. But we can only rely on cloud computing if these useful web services are really secure enough to use. In this paper we have proposed a new framework for secured use of cloud computing.','Recent Trends in Information, Telecommunication and Computing (ITC), 2010 International Conference on',1,'K. Mukherjee; G. Sahoo','ieee/webservice security.csv','ieee','\0'),(1873,'Study on networking and monitoring service platform of vehicle security detection line','2011','','Information technology; Service platform; Vehicle security detection line; WebService','This study proposes the overall technology rotes of networking and monitoring service platform for vehicle security detection line based on WebService technology methods, aiming at resolving some serious problems existing in vehicle security detection line, such as various equipments, data sharing, standard operation, and so on. This study describes the structure design and main function of the service platform, proposes the standardized process control and process monitoring, designs some interface specifications to access of vehicle registration information of local government, and ultimately establishes a national technical standard for this area. The results are expected to conduct local governments to set up the service platform, regulate the application, service for social citizens, and improve the capability of local governments in the supervision of vehicle security detection.','',1,'Sun Z.-L.','scopus/webservice security.csv','scopus','\0'),(1874,'T\n □: A Domain Specific Language for Rapid Workflow Development','2012','2',' Workflow Management System Model Driven Engineering Ontology Domain Specific Language','Abstract In MDE, software systems are always synchronized with their models since changes are made first to the model whenever there are changes in the requirement specifications. While MDE has a lot of potential, it requires maturity and tool support. In this research we present a framework for a workflow management system based on the MDE approach. We propose a domain specific language, T □ (T-Square) for rapidly specifying details of (workflow) tasks and their associated user interfaces which may be used with the NOVA Workflow, an executable workflow management system. T □ includes syntax for writing procedural statements, for querying an ontology, for declaring user interfaces, for applying access control policy, and for scheduling tasks, using Xtext to write the grammar. We apply transformation methods, based on Xtend, to generate executable software from the abstract task specifications. A running example from health services delivery illustrates the usefulness of this approach.','',2,'Fazle RabbiWendy MacCaull','springer/bpmn security.csv','springer','\0'),(1875,'Optical stateful security filtering approach based on code words','2013','','code words; optical logic gates; optical networks; optical stateful filtering; optical traffic identifier; SOA','In this paper, we propose a stateful optical filtering approach that allows session establishment and traffic flow filtering in the optical layer. Each traffic flow is identified by a unique identifier composed of a set of code words built on values of appropriately selected fields in the stream. In the firewall core node, a security policy is applied to the optical flow based on its identifier in order to accept or reject the session establishment or the traffic data. The optical security policy is formed by a set of filtering rules which filters optical data units based on their traffic identifiers and implemented optically based on the optical logic gates. The proposed approach is based on two main components. The first component is an encoder used in the edge node, which generates traffic flow identifiers. And, the second component allows the stateful optical filtering implemented in the firewall node and divided into two modules: a stateful and a stateless filtering modules. © 2013 IEEE.','',1,'Sliti M., Boudriga N.','scopus/soa security.csv','scopus','\0'),(1876,'SCEPYLT: An Information System for Fighting Terrorism','2013','0','SCEPYLT;cooperative system;critical software engineering;distributed system;eGovernment;explosives control;public security;safety-critical;service-oriented architecture;terrorism','A safety-critical software system called SCEPYLT provides an information solution for a field traditionally not computerized: explosives and their associated risks in handling, storage, transport, and use. SCEPYLT is a model for cooperative distributed systems engineering projects, synchronized over multiple databases.','IEEE Software',1,'J. Cano; R. Hernández','ieee/service oriented architecture security.csv','ieee','\0'),(1877,'Efficient querying and SOAP based streaming of multimedia content using WEB Services','2014','','multimedia streaming; SOA; web service','Web service standards provides a standard support for interoperability and reusability among various platforms, but in case of streaming multimedia data the current web service standards in terms of data transfer is not well supported. At present mostly Universal Description Discovery and Integration (UDDI) is used for publishing and discovery of multimedia web services providing a key word based search for the user. The web service standards used for delivering the multimedia streaming objects is also not sufficient due to very large object size and also the processing and delivering continuous stream of large scale data is difficult and time consuming to variety of client devices. This paper describes about the Service Oriented Architecture, in using an efficient querying mechanism which is specified in an extension of WSDL using the multimedia content metadata and its descriptions for querying the best service. Transmission of streaming data requires a message exchange protocol (MEP) to be defined and then implement the MEP in their SOAP HTTP bindings of the web service. Processing the demand for non functional requirements such as efficiency and security in streaming increases and the performance of SOAP is impacted by XML processing and communication overheads. To overcome these we go for various compression schemes for SOAP messages, so that the transfer overhead is reduced. By the new querying mechanism the efficiency of finding services can be improved as irrelevant data can be eliminated and by creating the MEP, efficiency is increased in terms of resource consumption. © 2014 IEEE.','',1,'Gerald Christopher Isaac S., Uma Devi V.','scopus/service oriented architecture security.csv','scopus','\0'),(1878,'Modeling Business Capabilities and Context Dependent Delivery by Cloud Services','2013','2',' Model-Driven Development Capability Context Cloud Computing Enterprise Modeling','Abstract Contemporary business environments are changing rapidly, organizations are global, and cloud-based services have become a norm. Enterprises operating in these conditions need to have the capability to deliver their business in a variety of business contexts. Capability delivery thus has to be monitored and adjusted. Current Enterprise Modeling approaches do not address context-dependent capability design and do not explicitly support runtime adjustments. To address this challenge, a capability-driven approach is proposed to model business capabilities by using EM techniques, and to use model-based patterns to describe how software applications can adhere to changes in the execution context. A meta-model for capability design and delivery is presented with the consideration to delivering solutions as cloud services. The proposal is illustrated with an example case from an energy efficiency project. A supporting architecture for the capability development and the delivery in the cloud is also presented.','',1,'Jelena ZdravkovicJanis StirnaMartin HenkelJānis Grabis','springer/service oriented architecture security.csv','springer','\0'),(1879,'Employing service orientation to enable Training as a Service in the U.S. Army','2013','','Cloud computing; Distributed computing; Mobile computing; Modeling and simulation; Service oriented architecture; Training; Web services','Currently many training systems acquired, fielded and sustained by the U.S. Army are unable to seamlessly comply with a continuously evolving and often complex computational environment. The current state of such training systems must advance to a Training as a Service (TaaS) future state in order to adapt to a volatile defense budget, conform to policy updates, and enhance the training capabilities afforded to the Warfighter. TaaS will transform current Army training applications into distributed webbased services, allowing them to be accessible across any location via thin client workstations and wireless mobile devices. The motivation behind this migration is coming from the Common Operating Environment (COE) Architecture Guidance published by the U.S. Army Chief Information Officer and the Assistant Secretary of the Army for Acquisition, Logistics, and Technology. In order to achieve the COE objectives, the Army recently launched a pilot study on the Common Training Instrumentation Architecture (CTIA). CTIA is the foundation architecture of the Army\'s Live Training Transformation (LT2) Product Line that provides software infrastructure and services to live training product applications. This paper describes the migration of CTIA to TaaS using a specific set of modern computing technologies that will enable rapid delivery of training capabilities across servers, mobile devices, and heterogeneous platforms. Specifically service-oriented architecture (SOA) and cloud computing are considered which can satisfy the requirements of the TaaS and COE, and meet user demands for an enhanced training experience. Furthermore, this paper discusses the approach taken to elicit the future needs of the Army\'s live training community, and how cloud computing and SOA are leveraged to meet required capabilities. Lastly, this paper discusses some unique considerations on SOA-related security issues. © 2013 IEEE.','',1,'Lanman J.T., Linos P.K.','scopus/service oriented architecture security.csv','scopus','\0'),(1880,'Engineering of web services for internet of things applications','2016','1',' Machine-to-Machine communications Application programming interfaces Database abstraction Mobile monitoring Device management Application server utilization evaluation','Abstract This paper addresses web services for Internet of Things (IoT) applications. The research focus is on IoT applications for mobile monitoring and third party’s database access. Both web services design aspects and deployment issues are studied. By synthesis of functional abstraction for configuration management and performance monitoring, an approach to design RESTful web services for mobile monitoring is suggested. In addition to traditional operations supported by Database Management Systems, web services’ operations for subscription management and notifications about occurrences of specific data-related events, as well as operations for trust and security management are proposed in the context of third party’s database access. Web services deployment issues concern the access control aimed to prevent from overloading. A formal method for a model-based load evaluation of SOA (Service Oriented Architecture) application server is suggested. The method takes into account the distributed server architecture and the processing of heterogeneous traffic. The SOA application server’s utilization is evaluated by simulation.','Information Systems Frontiers',1,'Evelina PenchevaIvaylo Atanasov','springer/service oriented architecture security.csv','springer',''),(1881,'A Service Composition Framework Based on Goal-Oriented Requirements Engineering, Model Checking, and Qualitative Preference Analysis','2012','4','','Abstract To provide an effective service-oriented solution for a business problem by composing existing services, it is necessary to explore all available options for providing the required functionality while considering both the users’ preferences between various non-functional properties (NFPs) and any low-level constraints. Existing service composition frameworks often fall short of this ideal, as functional requirements, low-level behavioral constraints, and preferences between non-functional properties are often not considered in one unified framework. We propose a new service composition framework that addresses all three of these aspects by integrating existing techniques in requirements engineering, preference reasoning, and model checking. We prove that any composition produced by our framework provides the required high-level functionality, satisfies all low-level constraints, and is at least as preferred (w.r.t. NFPs) as any other possible composition that fulfills the same requirements. We also apply our framework to examples adapted from the existing service composition literature.','',1,'Zachary J. OsterSyed Adeel AliGanesh Ram SanthanamSamik BasuPartha S. Roop','springer/service oriented architecture security.csv','springer','\0'),(1882,'Modellgetriebene Entwicklung sicherer Softwaresysteme für das österreichische E-Government','2013','0','Schlüsselwörter Model-Driven Security Metamodell Case Study E-Government model-driven security meta model case study e-government','Zusammenfassung E-Government-Systeme verwalten sensible Daten von Bürgern, Unternehmen und Behörden. Diese Informationssysteme müssen daher unbedingt gewährleisten, dass einerseits nur Berechtigte auf Daten zugreifen und andererseits diese Daten nicht verfälscht werden. Anhand der Entwicklung einer Applikation im Bereich des Katastrophenschutzmanagements wird gezeigt, wie die Sicherheit von E-Government-Systemen mittels Model-Driven Security erhöht werden kann.','e & i Elektrotechnik und Informationstechnik',1,'Christian WagnerZhendong MaAndrea Nowak','springer/soa security.csv','springer','\0'),(1883,'Model-Based Security Engineering: Managed Co-evolution of Security Knowledge and Software Models','2014','0','','Abstract We explain UMLsec and associated techniques to incorporate security aspects in model-based development. Additionally, we show how UMLsec can be used in the context of software evolution. More precisely, we present the SecVolution approach which supports monitoring changes in external security knowledge sources (such as compliance regulations or security databases) in order to react to security related modification and to support the associated co-evolution of the UMLsec models.','',2,'Jens BürgerJan JürjensThomas RuhrothStefan GärtnerKurt Schneider','springer/bpmn security.csv','springer',''),(1884,'Service-oriented middleware for smart grid: Principle, infrastructure, and application','2013','8','','The current smart grid is undergoing a drastic change in order to deal with increasingly diversified and various service requests from the huge number of users. The next-generation smart grid, characterized by service-oriented middleware, will be upgraded by jointly employing the technologies in the areas of communications, control, and computing. To design a general middleware, an efficient design principle plays a fundamental role, while reliable communication infrastructure and heterogeneous applications lead to sustainability and stability. In this article, we propose an integrated and efficient middleware for heterogeneous services in a smart grid. Specifically, we first develop a mutual application access control principle that keeps users obtaining a satisfying assignment. Next, a collaborative and dynamic information exchange infrastructure is proposed for different smart meters, and a local information collector is designed to implement the communication and computing through power management messages. Finally, we present four steps to design a flexible service-oriented middleware for heterogeneous applications. Numerical simulation results are provided to demonstrate the efficiency of the proposed middleware.','IEEE Communications Magazine',1,'L. Zhou; J. J. P. C. Rodrigues','ieee/service oriented architecture security.csv','ieee','\0'),(1885,'Policy-Based Access Control for Body Sensor Networks','2014','0',' body sensor networks policy-based access control XACML DPWS web services security','Abstract Sensor nodes and actuators are becoming ubiquitous and research efforts focus on addressing the various issues stemming from resources constraints and other intrinsic characteristics typically associated with such devices and their applications. In the case of wearable nodes, and especially in the context of e-Health applications, the security issues are exacerbated by the direct interaction with the human body and the associated safety and privacy concerns. This work presents a policy-based, unified, cross-platform and flexible access control framework. It adopts a web services-compliant approach to enable secure and authorized fine-grained access control to body sensor network resources and services. The proposed scheme specifically considers the very limited resources of so-called nano nodes that are anticipated to be used in such an environment. A proof-of-concept implementation is developed and a preliminary performance evaluation is presented.','',1,'Charalampos ManifavasKonstantinos FysarakisKonstantinos RantosKonstantinos KagiambakisIoannis Papaefstathiou','springer/service oriented architecture security.csv','springer','\0'),(1886,'QoS-aware service composition for distributed video surveillance','2014','4',' Service composition Distributed video surveillance QoS Transcoding service Ant-based algorithm','Abstract Quality of Service (QoS) is essential for the ubiquitous access of media services in real-time distributed video surveillance applications. To have ubiquitous access of desired media with emergency officials’ handheld devices, appropriate media transcoding services are required. Currently, it is challenging to select and compose these services for each of the devices to satisfy the desired QoS demand. To compose these media services so that video stream is available for target pervasive and smart devices, a composition algorithm is required. Thus, this paper presents a QoS-aware service composition algorithm to select the best composition for the target ubiquitous client so that it can optimally provide QoS to heterogeneous users. We have implemented a video surveillance prototype to demonstrate the performance of the proposed QoS-aware composition algorithm. Results from this prototype reveal that the approach is suitable for real-time video surveillance.','Multimedia Tools and Applications',1,'M. Shamim Hossain','springer/soa security.csv','springer','\0'),(1887,'BHP flooding vulnerability and countermeasure','2015','0',' OBS networks Denial of service attacks Optical codewords Tunable decoder Virtual optical memory','Abstract Optical burst switching (OBS) is a switching technology that can efficiently operate in the optical core network using WDM technology and can also develop the future optical internet. The OBS switching technology presents a trade-off between the two switching technologies: optical circuit switching (OCS) and optical packet switching (OPS). This switching approach increases resource utilization compared with OCS technology and avoids the technological barriers of OPS networks. In OBS networks, many packets are assembled into one data burst at the edge node and a burst header packet (BHP) is sent before the burst transmission by an offset time in order to reserve the required resources in core nodes. This can cause security issues in the network and more specifically denial of service attacks that can occur if a source node is compromised. In this paper, we study a specific denial of service attack which we refer to as “BHP flooding attack”, which prevents legitimate traffics from reserving the required resources at intermediate core nodes. We also propose the design of a reconfigurable BHP flooding countermeasure module that allows to counter against this type of attacks in an OBS network.','Photonic Network Communications',1,'Maha SlitiNoureddine Boudriga','springer/soa security.csv','springer',''),(1888,'Airport Context Analytics','2014','0',' airport information systems context-awareness real-time analytics personalisation rule-based reasoning system implementation','Abstract Airports today can constitute a perfect environment for developing novel digital marketplaces offering location-specific and semantically rich context-aware services, such as personalized marketing campaigns, last minute, discounted airline tickets while helping users access the airport and speed through the airport process. Underpinning the above vision is the ability to target service content to users’ current context, e.g., their location, intent, environment, in real time. The contribution of this work is that it uses a pervasive computing system with three key ingredients: (a) a data model, comprising user and service content entities, (b) a user context model and (c) rules for simple pattern matching on service content and user context event streams . This modus operandi is encapsulated inside a SOA architecture, the Common Airport Portal - CAP and it is illustrated through the description of a real application, Offers and Coupons Services that was deployed recently at Athens International Airport (AIA) (http://airpoint.gr).','',1,'Eli KatsiriGeorge PapastefanatosManolis TerrovitisTimos Sellis','springer/service oriented architecture security.csv','springer','\0'),(1889,'Lessons learned from building model-driven development tools','2012','4',' Model-driven development Model management MDD tools Model tansformation','Abstract Tools to support modelling in system and software engineering are widespread, and have reached a degree of maturity where their use and availability are accepted. Tools to support model-driven development (MDD) —where models are manipulated and managed throughout the system/software engineering lifecycle—have, over the last 10 years, seen much research and development attention. Over the last 10 years, we have had significant experience in the design, development and deployment of MDD tools in practical settings. In this paper, we distill some of the important lessons we have learned in developing and deploying two MDD tools: Epsilon and VIATRA. In doing so, we aim to identify some of the key principles of developing successful MDD tools, as well as some hints of the pitfalls and risks.','Software & Systems Modeling',2,'Richard F. PaigeDániel Varró','springer/bpel security.csv','springer','\0'),(1890,'WSANRep, WSAN Reputation-Based Selection in Open Environments','2013','1',' Wireless sensor and actuator networks Reputation management Mobile users Web services Internet of things','Abstract Wireless Sensor and Actuator Networks (WSAN) are becoming more and more relevant and are likely to spread everywhere, due to their numerous applications and benefits. In fact, they are a key element in the vision of the so called Internet of Things . Nevertheless, the lack of central control and the existence of incentives for cheating lead to the necessity of defining mechanisms for identifying well-behaving WSANs. Reputation based solutions have been suggested in the literature in order to cope with these situations, but most of them were focused on finding a specific most trustworthy sensor, capable of provisioning a requested service. Our work, however, is oriented to provide a mobile user with an accurate reputation-based mechanism allowing her to select, amongst a set of available WSANs, the most reputable one, according to the recommendations given by other users. Thus, the mobile user can build her own opinion and consequently decide which is the best WSAN to interact with. This decision will be based in her own criteria, which might be different from other users of the same service. In order to prevent the abuse of the proposed reputation system, we suggest a mechanism avoiding multiple recommendations from the same user in a specific time frame. Additionally, we handle certain privacy issues by hiding the real identity of a user behind a group. The experiments performed show the accuracy, scalability and robustness of our proposal, called WSANRep, within several scenarios, considering the existence of malicious recommenders and malicious service providers.','Wireless Personal Communications',1,'Félix Gómez MármolChristoph SorgeOsman UgusGregorio Martínez Pérez','springer/soa security.csv','springer','\0'),(1891,'Research and application on cloud simulation','2013','','Cloud computing; Cloud simulation; Modeling and simulation; Virtualization','This paper expounds comprehensively research results of our team on cloud simulation since authors have published the paper [1]. These results consist of the evolved technology connotation and features of cloud simulation, its expansion and development versus the cloud computing, the architecture of the cloud simulation system, 4 kinds of service patterns of cloud simulation, body of technological knowledge on cloud simulation, 9 key technologies broken through recently by our team, including unified management technology for simulation resources, individuation virtual desktop technology, multi-users oriented dynamic building technology of virtual simulation environment, automatic composition technology of simulation models, fault tolerance technology for resources in cloud simulation, multi-core cluster oriented hierarchical parallel simulation engine, high efficient and collaborative running supporting technologies, monitoring and evaluation technology for cloud simulation, and cloud simulation system security technology. In addition, a typical application demonstration system and the application prospect are given. The primary research and practice show that our research results can further strengthen the abilities of cloud simulation. Finally, the paper gives the prospect of the next work of cloud simulation.','',1,'Li B.H., Chai X., Hou B., Yang C., Li T., Lin T., Zhang Z., Zhang Y., Zhu W., Zhao Z.','scopus/service oriented architecture security.csv','scopus','\0'),(1892,'Design and Evaluation of a Services Interface for the Internet of Things','2016','0',' Internet of things (IoT) IoT application programming interface (IoT API) IoT middleware REST services SOAP services UPnP devices','Abstract This paper proposes an application programming interface (API) for accessing services within the internet of things (IoT) through both REST and SOAP protocols. This API provides methods and procedures to allow its usage for performing IoT control and event monitoring operations. In order to encompass devices diversity, the proposed API introduces a uniform abstraction model that constitutes a common standard view to manage objects. An abstract device services interface is then available instead of device commands, thus providing transparent access to devices capabilities and hiding the physical aspects of provider devices. The API has been designed to ease the remote management of IoT smart objects and was implemented as a module of an existing IoT middleware (UIoT). Experimental evaluation of both protocol implementations yields results showing the REST services with faster response time and lower resources usage than similar SOAP services.','Wireless Personal Communications',1,'Caio César de Melo SilvaHiro Gabriel Cerqueira FerreiraRafael Timóteo de Sousa JúniorFábio BuiatiLuis Javier García Villalba','springer/service oriented architecture security.csv','springer',''),(1893,'Information security management model for integration platforms','2015','','electronic services; information security; integration platforms; lattice theory; service oriented architectured; SOA','This paper presents requirements and main characteristics of the new information security management model for integration platforms. It also defines integration platforms as service oriented systems and indicates its requirements for security. The lattice theory is used in the presented model to allow automatic integration of electronic services originating from different information systems. © 2015 IEEE.','',1,'Wilk J.','scopus/soa security.csv','scopus',''),(1894,'[Title page]','2012','0','','The following topics are dealt with: intelligent service management; dynamic service composition; cloud-based service-oriented services; mobile-based service-oriented services; QoS; cyber-physical systems; M2M systems; service-oriented application management; service-oriented architecture; information and communication technology; and disaster management.','2012 Fifth IEEE International Conference on Service-Oriented Computing and Applications (SOCA)',1,'','ieee/service oriented architecture security.csv','ieee','\0'),(1895,'Metadata in SDN API for WSN','2015','','Parlay;REST;SDN;WSDL;WSN;metadata;northbound API','This paper discusses the system aspects of the development of applied programming interfaces in Software-Defined Networking (SDN). SDN is a prospect software enablement for Wireless Sensor Networks (WSN). So, application layer SDN API will be the main application API for WSN. Almost all existing SDN interfaces use so-called Representational State Transfer (REST) services as a basic model. This model is simple and straightforward for developers, but often does not support the information (metadata) necessary for programming automation. In this article, we cover the issues of representation of metadata in the SDN API.','2015 7th International Conference on New Technologies, Mobility and Security (NTMS)',1,'M. Sneps-Sneppe; D. Namiot','ieee/service oriented architecture security.csv','ieee',''),(1896,'5:1--5:41','2013','5','Model-based testing, security certification, service-oriented architecture, symbolic transition systems, web services','The Service-Oriented Architecture (SOA) paradigm is giving rise to a new generation of applications built by dynamically composing loosely coupled autonomous services. Clients (i.e., software agents acting on behalf of human users or service providers) implementing such complex applications typically search and integrate services on the basis of their functional requirements and of their trust in the service suppliers. A major issue in this scenario relates to the definition of an assurance technique allowing clients to select services on the basis of their nonfunctional requirements and increasing their confidence that the selected services will satisfy such requirements. In this article, we first present an assurance solution that focuses on security and supports a test-based security certification scheme for Web services. The certification scheme is driven by the security properties to be certified and relies upon a formal definition of the service model. The evidence supporting a certified property is computed using a model-based testing approach that, starting from the service model, automatically generates the test cases to be used in the service certification. We also define a set of indexes and metrics that evaluate the assurance level and the quality of the certification process. Finally, we present our evaluation toolkit and experimental results obtained applying our certification solution to a financial service implementing the Interactive Financial eXchange (IFX) standard.','',1,'','acm/soa security.csv','acm','\0'),(1897,'Quantitative Reduction in Communication Load for Energy Efficiency in WSN','2015','0',' Wireless sensor network (WSN) Query optimization In-network optimization Base-station optimization Epoch','Abstract WSN is a dynamic network of randomly deployed tiny sensor nodes to monitor the physical ambient conditions, healthcare services, military surveillance, movements and tracking of vehicles or other targets etc. Sensing generates continuous streams of data which are distributed throughout the network. This distributed data is retrieved by various applications through numerous appropriate means.\n Query based retrieval method is the most popular general purpose method for data extraction. In response to queries injected into the network nodes communicate data among themselves or to the base-station. Communication traffic thus generated is highly energy consuming activity. It drains out limited energy available with a node thereby rendering it useless as replenishment of energy is not possible in most of the deployments therefore efficient use of energy is the main focus to prolong the life of a WSN. Reduction of communication traffic is the most effective mean to achieve energy efficiency. \n In this paper we have proposed an approach towards this end which employs optimization of multiple queries at the base station and data compression at individual nodes resulting in quantitative reduction in communication traffic. Quality of data is not compromised in the process.','Wireless Personal Communications',1,'Vandana JindalA. K. VermaSeema Bawa','springer/soa security.csv','springer',''),(1898,'Web Application Architecture Security Evaluation Method Based on AADL','2015','','AADL;AHP;architecture;component;security eveluation','In this paper, we propose an architecture security evaluation method to identify potential risks of architecture. We model security features of web applications from two different but complementary points of view using AADL, build an AADL security model which contribute to detect risks of architecture. With the help of a tool, we can automatically convert the AADL security model to an architecture security model. Then, an integration process applies analytic hierarchy process (AHP) and fuzzy evaluation analysis to the architecture security model. In the end, we can get security conclusions of the architecture and improve security measures based on security conclusions. The experiment demonstrates that the method not only improves efficiency of the evaluation, but also makes security evaluation process more objective and accurate.','Engineering of Complex Computer Systems (ICECCS), 2015 20th International Conference on',1,'S. Geng; X. Li; Z. Feng; D. Sun','ieee/service oriented architecture security.csv','ieee',''),(1899,'An adaptive framework for monitoring agent organizations','2014','1',' Monitoring Organization Adaptation Events','Abstract Multiagent technologies are usually considered to be suitable for constructing agent organizations that are capable of running in dynamic and distributed environments and that are able to adapt to changes as the system runs. The necessary condition for this adaptation ability is to make agents aware of significant changes in both the environment and the organization. This paper presents mechanism, which helps agents detecting adaptation requirements dynamically at run time, and an Trace&Trigger, which is an adaptation framework for agent organizations. It consists of an event-tracing-based monitoring mechanism that provides organizational agents with information related to the costs and benefits of carrying out an adaptation process at each moment of the execution. This framework intends to overcome some of the problems that are present in other approaches by allowing the dynamic specification of the information that has to be retrieved by each agent at each moment for adaptation deliberation, avoiding the transference of useless information for adaptation deliberation. This framework has been integrated in the Magentix2 multiagent platform. In order to test its performance benefits for any agent organization, an example based on a market scenario is also presented.','Information Systems Frontiers',1,'Juan M. AlberolaLuis BúrdaloVicente JuliánAndrés TerrasaAna García-Fornes','springer/service oriented architecture security.csv','springer','\0'),(1900,'A new quantitative model for web service security','2012','','Risk Analysis; Security; SOA; Web Service','Security is one of important QoS properties of web services that need to be quantified. Quantifying Security can help both in selecting among published web services and also in assessing security weaknesses of services by service providers. In this paper we propose a three level hierarchical architecture for web service security. In this architecture we consider all of important aspects of security that they are: Authentication, integrity, authorization, confidentiality, availability and non-repudiation. For each aspect is considered the most important web service threats. Furthermore we consider likelihood and impact factor for each threat. Then we compute weight of each impact with using AHP and finally total security index is computed with weighted averaging. © 2012 IEEE.','',1,'Banaei O., Khorsandi S.','scopus/soa security.csv','scopus','\0'),(1901,'12th Biannual conference of the German cognitive science society (Gesellschaft für Kognitionswissenschaft)','2014','0','','','Cognitive Processing',1,'Martin V. Butz','springer/soa security.csv','springer','\0'),(1902,'Membrane Computing Inspired Approach for Executing Scientific Workflow in the Cloud','2014','0',' Scientific Workflows Service Oriented Architecture Membrane Computing','Abstract The continuous expansion and appreciation of the service oriented architecture is due to the standards of loose-coupling and platform independence. Service-Oriented Architecture is the most commonly and effectively realized through web services, and their temporal collaboration commonly referred to as web service composition. In the present scenario, the most popular variant of composition is service orchestration. Orchestration is achieved through a centralized ‘ heavyweight ’ engine, the orchestrating agent, that makes the  deployment configuration a massive ‘ choke-point ’. The issue achieves significance when data and compute intensive scientific applications rely on such a centralized scheme. Lately, a lot of research efforts are put in to deploy a scientific application on the cloud, thereby provisioning resources elastically at runtime. In this paper, we aim at eliminating this central ‘choke’ point by presenting a model inspired from ‘ Membrane Computing ’ that executes a scientific workflow in a decentralized manner. The benefit of this paradigm comes from the natural process of autonomy, where each cell provision resources and execute process-steps on its own. The approach is devised keeping in mind, the feasibility of deployment on a cloud based infrastructure. To validate the model, a prototype is developed and real scientific workflows are executed in-house (with-in the Intranet). Moreover, the entire prototype is also deployed on a virtualized platform with software defined networking, thereby studying the effects of a low bandwidth environment, and dynamic provisioning of resources.','',2,'Tanveer AhmedRohit VermaMiroojin BakshiAbhishek Srivastava','springer/bpmn security.csv','springer',''),(1903,'Design Management: A Collaborative Design Solution','2013','0',' Design Architecture Linked Data Design Management UML','Abstract Design is more important than ever as software systems continue to increase in complexity, become more distributed, expose multiple interfaces and have more integration points. Design process has also become more complex, involving dispersed teams, third-party components, outsourcing providers and business partners. Nevertheless, design tools have not sufficiently been coping with these growing challenges. In this paper, we discuss design challenges and highlight features of design tools that should help address them. We also describe a new application; Rational Design Management (DM) developed to boost the quality of design and streamline the design process. DM enables a collaborative approach that broadens the understanding of design, improves design quality and shrinks design time. DM leverages semantic web technologies and implements the Open Services for Lifecycle Collaboration (OSLC) specification to deliver a linked data approach for managing design. Such an approach facilitates design extensibility, reuse and integration across the development lifecycle.','',2,'Maged ElaasarJames Conallen','springer/bpmn security.csv','springer','\0'),(1904,'Systematic Mapping of Architectures for Telemedicine Systems','2013','0',' telemedicine mapping study software architecture','Abstract The use of telemedicine systems is becoming increasingly common these days. Telemedicine systems exist for the purposes of education, improving the accuracy of medical diagnoses through the provision of a second opinion, and remote patient monitoring. Accordingly, the number of software solutions is increasing. Software Architecture is a subarea of Software Engineering whose goal is to study the system components, their external properties, and their relationships with other software. A good architecture can allow a system meets the mainly requirements of a project, such as performance, reliability, portability, easy maintenance, interoperability, etc. Aiming to find out what architectural styles that proposes a better performance in systems for telemedicine, a systematic mapping was done. With this mapping, it was possible to find taxonomies related to telemedicine systems, architectural styles commonly used in these systems and technologies relevant to the area.','',1,'Glauco de Sousa e SilvaAna Paula Nunes GuimarãesHugo Neves de OliveiraTatiana Aires TavaresEudisley Gomes dos Anjos','springer/service oriented architecture security.csv','springer','\0'),(1905,'Content-Based Protection and Release Architecture for Future NATO Networks','2013','6','Attribute-based access control;labelling','Future mission networks will require agility and flexibility in sharing information between heterogeneous users and terminals. We introduce the Content-based Protection and Release (CPR) model and present its applicability to current and future information sharing use cases in NATO. We present a service-oriented CPR architecture, which was developed at the NATO Communications and Information (NCI) Agency in order to address the evolving information sharing requirements in NATO operations. The paper highlights a number of important security services, which together comprise the CPR architecture. The central component is the CPR Enforcement Separation Service (CPRESS). CPRESS is supported by several other security services, such as the NATO Metadata Binding Service and the Content Inspection Policy Enforcement service. We describe these services and the interfaces between them. We also include recommendations based on experimentation with a CPR demonstrator developed at the NCI Agency, discuss related work, and identify possible future directions for research and development activities.','MILCOM 2013 - 2013 IEEE Military Communications Conference',1,'K. Wrona; S. Oudkerk','ieee/service oriented architecture security.csv','ieee','\0'),(1906,'Automatic Generation of Optimized Workflow for Distributed Computations on Large-Scale Matrices','2014','0',' location-aware optimization distributed computations BPEL workflows large-scale matrices','Abstract Efficient evaluation of distributed computation on large-scale data is prominent in modern scientific computation; especially analysis of big data, image processing and data mining applications. This problem is particularly challenging in distributed environments such as campus clusters, grids or clouds on which the basic computation routines are offered as web/cloud services. In this paper, we propose a locality-aware workflow-based solution for evaluation of large-scale matrix expressions in a distributed environment. Our solution is based on automatic generation of BPEL workflows in order to coordinate long running, asynchronous and parallel invocation of services. We optimize the input expression in order to maximize parallel execution of independent operations while reducing the matrix transfer cost to a minimum. Our approach frees the end-user of the system from the burden of writing and debugging lengthy BPEL workflows. We evaluated our solution on realistic mathematical expressions executed on large-scale matrices distributed on multiple clouds.','',2,'Farida SabryAbdelkarim ErradiMohamed NassarQutaibah M. Malluhi','springer/bpel security.csv','springer',''),(1907,'Beyond Anecdotal Thinking: Deepening Our Understanding for Achieving Quality Goals','2014','0','anecdotal evidence;best practices;empirical;quality goals','Quality goals for security, business agility, maintainability and other such attributes are often achieved through implementing best practices. To know which stakeholder goals are attainable and how they can best be achieved, we must empirically evaluate software development beliefs and practices. The Web extra at http://youtu.be/gLHkN_5wVCc is an audio podcast in which author Jane Cleland-Huang speaks with coauthor Mamoun Hirzalla from the Requirements column about the importance of challenging ideas, questioning beliefs, and understanding how various development practices and technical decisions can help or hinder the achievement of development goals.','IEEE Software',1,'M. Hirzalla; P. Bahrs; J. Cleland-Huang','ieee/service oriented architecture security.csv','ieee','\0'),(1908,'Managing Provenance in iRODS','2009','0','','Abstract Nowadays provenance is an important issue. Provenance data does not only give a history of events, it also provides enough information to allow the opportunity to verify the authenticity of the data, as well as, determine the quality of the data. The data grid management system, iRODS, comes with metadata which can be used as provenance data. Currently, iRODS’s metadata is not sufficient for tracking and reconstructing procedures applied to data. In this paper, we describe the provenance needs of iRODS and we survey briefly current provenance and provenance enabled workflow systems. We describe an architecture that can be used to manage provenance in iRODS (and other systems) in a fault-tolerant way.','',1,'Andrea WeiseAdil HasanMark HedgesJens Jensen','springer/microservice security.CSV','springer',''),(1909,'A model-driven method for enacting the design-time QoS analysis of business processes','2014','1',' Business process MDA BPMN Performance QoS LQN','Abstract Business Process Management (BPM) is a holistic approach for describing, analyzing, executing, managing, and improving large enterprise business processes. A business process can be seen as a flow of tasks that are orchestrated to accomplish well-defined goals such as goods production or services delivery. From an IT perspective, BPM is closely related to a business process automation approach carried out by use of IT standards and technologies, such as service-oriented architectures (SOAs) and Web Services. This paper specifically focuses on fully automated business processes that are defined and executed as orchestrations of software services. In a BPM context, the ability to predict at design time the business process behavior assumes a strategic relevance, both to early assess whether or not the business goals are achieved and to gain a competitive advantage. A business process is typically specified by use of Business Process Modeling Notation (BPMN), the standard language for the high-level description of business processes. Unfortunately, BPMN does not support the characterization of the business process in terms of nonfunctional or QoS properties, such as performance and reliability. To overcome such a limitation, this paper introduces Performability-enabled BPMN (PyBPMN), a lightweight BPMN extension for the specification of performance and reliability properties. PyBPMN enables the design time prediction of the business processes behavior, in terms of performance and reliability properties. Such prediction activity requires the use of models that are to be first built and then evaluated. In this respect, this work introduces a model-driven method that exploits PyBPMN to predict, at design time, the performance and the reliability of a business process, either to select the process configuration that provides the best behavior or to check if a given configuration satisfies the overall requirements. The proposed model-driven method that enacts the automated analysis of a business process behavior embraces the complete business process development cycle, from the specification phase down to the implementation phase. The paper also describes how the proposed model-driven method is implemented. The several model transformations at the core of the method have been implemented by use of QVT, and the standard language for specifying model transformations provided by OMG’s MDA. The availability of such automated model transformations allows business analysts to predict the process behavior with no extra effort and without being required to own specific skills of performance or reliability theory, as shown by use of an example application.','Software & Systems Modeling',2,'Paolo BocciarelliAndrea D’Ambrogio','springer/bpel security.csv','springer',''),(1910,'Case study: From legacy to connectivity migrating industrial devices into the world of smart services','2014','5','','Europa has launched multiple initiatives and research projects to remain competitive in a globalized world and keep industry and manufacturing on-shore. Funded by EU and member countries, project ARROWHEAD[1] focuses research and innovation for collaborative automation using interoperable services for smart production, to improve quality, efficiency, flexibility and cost competiveness. This includes an important new aspect called “Smart Services”, which aims to apply SOA (service oriented architecture) to maintenance and service of production systems and its parts, which still carry a huge potential for further gains in cost and energy savings. However, there will be no “big bang”. How can we turn present-day variety of diverse, specialized, and legacy loaded embedded systems into connected, SOA based cooperating participants of the Internet of Things (IoT)? This case study portrays the solution followed in ARROWHEAD WP1.1, for devices used in end-of-line (EoL) test systems in automotive powertrain production.','Proceedings of the 2014 IEEE Emerging Technology and Factory Automation (ETFA)',1,'P. Priller; A. Aldrian; T. Ebner','ieee/service oriented architecture security.csv','ieee','\0'),(1911,'Efficient Behavioral-Difference Detection between Business Process Models','2014','1','','Abstract Recently, business process management plays a more and more important role on the management of organizations. Business process models are used to enhance the efficiency of management and gain the control of (co)operations both within an organization and between business partners. Organizations, especially big enterprises, maintain thousands of process models and process models of the same category are with high similarity. For example, China Mobile Communication Corporation (CMCC) have more than 8000 processes in their office automation systems and the processes of the same business in different subsidiaries are with some variations. Therefore, to analyze and manage these similar process models, techniques are required to detect the differences between them. This paper focuses on detecting behavioral differences between process models. The current technique takes hours to compare the behaviors of two models in worst cases. Therefore, in this paper, an efficient technique is proposed by comparing dependency sets and trace sets of features in process models. Experiments show that the technique can detect behavioral differences between two models within seconds in worst cases, at least four orders of magnitude faster than existing techniques.','',2,'Zhiqiang YanYuquan WangLijie WenJianmin Wang','springer/bpmn security.csv','springer',''),(1912,'Multi-tenant web application framework architecture pattern','2015','','PaaS;SaaS;application framework;cloud computing;design pattern;multi-tenancy;software architecture;software design;web application;web application framework','Multi-tenancy is a key to successful and sustainable cloud-based systems. Creating a web application framework for multiple tenants from scratch is challenging. To create an extensible, stable and robust multi-tenant web application framework developers have to understand how a web application framework is structured and how a web request is handled for each user of a specific tenant. This knowledge often takes software architects and developers a lot of effort to obtain. In this paper, we present a novel object-oriented architecture pattern for developing multi-tenant web application frameworks in which maximum reuse and modularity can be achieved and application concerns can be separated. We evaluate the modularity, the extensibility, the reusability, the maintainability and the efficiency of our pattern by qualitative analysis based on well-known patterns used in our pattern. We validate the applicability, the correctness, the security and the performance of our pattern by testing real world systems that were built using our pattern. We believe that our pattern would reduce time and cost when developing multi-tenancy systems as well as understanding, evaluating and modifying existing web application frameworks.','Information and Computer Science (NICS), 2015 2nd National Foundation for Science and Technology Development Conference on',1,'N. H. Bien; T. Dan Thu','ieee/service oriented architecture security.csv','ieee',''),(1913,'Bootstrapping an Online News Knowledge Base','2016','0',' News retrieval Fact extraction Event mining Semantic news','Abstract News retrieval systems facilitate the process of quickly learning about events or stories reported in various online news providers. The traditional approach involves clustering articles that report about the same event using bag-of-words or concept based similarity measures, and offering personalized recommendations using various user modeling approaches. Knowledge bases have been extensively used in the recent years for powering search engines on entity based searches. The success of this approach, demonstrated by a now de-facto way of searching and browsing offered by commercial search engines and mobile applications, has created the need to incorporate semantic capabilities to news retrieval systems. In this paper we present a proposal for creating a knowledge base of entities, events and facts reported in Albanian online news providers. We aim to provide a news stream processing pipeline based in generally available open source toolkits and state-of-the-art research works about event and fact oriented knowledge bases.','',1,'Klesti HoxhaArtur BaxhakuIlia Ninka','springer/service oriented architecture security.csv','springer',''),(1914,'C-Grid: Enabling iRODS-based Grid Technology for Community Health Research','2013','1',' iRODS cyberinfrastructure data grid XSEDE community health grid computing data integration portal virtual obesity mobile technology','Abstract A Community Grid web portal, C-Grid, has been developed in this study for storing, managing and sharing large amounts of distributed community health related data in a data grid, thus facilitating further analysis of these datasets by health researchers in a collaborative environment. Remote management of this data grid is performed using the middleware iRODS, the Integrated Rule-Oriented Data System. A PHP-based wrapper, ez-iRODS, has been created as a component of C-Grid to interact with this middleware through PRODS, a client application programming interface (API). C-Grid serves as a gateway for the XSEDE resources, and also helps the users via ez-iRODS to create and manage ‘virtual data collection’ that can be stored in heterogeneous data resources across the distributed network. This web-based system has been developed with an objective of long-term data preservation, unified data access and sharing domain specific data amongst the scientific research collaborators of myCHOIS project.','',1,'Nitin SukhijaArun K. Datta','springer/microservice security.CSV','springer',''),(1915,'Identity-based encryption secure against selective opening chosen-ciphertext attack','2014','1','chosen ciphertext security; identity-based encryption; selective opening security','Security against selective opening attack (SOA) requires that in a multi-user setting, even if an adversary has access to all ciphertexts from users, and adaptively corrupts some fraction of the users by exposing not only their messages but also the random coins, the remaining unopened messages retain their privacy. Recently, Bellare, Waters and Yilek considered SOA-security in the identity-based setting, and presented the first identity-based encryption (IBE) schemes that are proven secure against selective opening chosen plaintext attack (SO-CPA). However, how to achieve SO-CCA security for IBE is still open. In this paper, we introduce a new primitive called extractable IBE and define its IND-ID-CCA security notion. We present a generic construction of SO-CCA secure IBE from an IND-ID-CCA secure extractable IBE with \"One-Sided Public Openability\"(1SPO), a collision-resistant hash function and a strengthened cross-authentication code. Finally, we propose two concrete constructions of extractable 1SPO-IBE schemes, resulting in the first simulation-based SO-CCA secure IBE schemes without random oracles. © 2014 International Association for Cryptologic Research.','',1,'Lai J., Deng R.H., Liu S., Weng J., Zhao Y.','scopus/soa security.csv','scopus','\0'),(1916,'An automated real-time integration and interoperability framework for bioinformatics','2015','0',' Data integration Interoperability Publish/subscribe Integration-as-a-service Intelligent ETL Workflow Cloud Service-oriented architecture Event-driven','Abstract Background In recent years data integration has become an everyday undertaking for life sciences researchers. Aggregating and processing data from disparate sources, whether through specific developed software or via manual processes, is a common task for scientists. However, the scope and usability of the majority of current integration tools fail to deal with the fast growing and highly dynamic nature of biomedical data. Results In this work we introduce a reactive and event-driven framework that simplifies real-time data integration and interoperability. This platform facilitates otherwise difficult tasks, such as connecting heterogeneous services, indexing, linking and transferring data from distinct resources, or subscribing to notifications regarding the timeliness of dynamic data. For developers, the framework automates the deployment of integrative and interoperable bioinformatics applications, using atomic data storage for content change detection, and enabling agent-based intelligent extract, transform and load tasks. Conclusions This work bridges the gap between the growing number of services, accessing specific data sources or algorithms, and the growing number of users, performing simple integration tasks on a recurring basis, through a streamlined workspace available to researchers and developers alike.','BMC Bioinformatics',1,'Pedro LopesJosé Luís Oliveira','springer/service oriented architecture security.csv','springer',''),(1917,'A bibliometric study of China’s science and technology policies: 1949–2010','2015','1',' S&T policy China Bibliometric analysis Co-word analysis Policy-making agency Network analysis','Abstract This paper uses a bibliometric analysis method to probe into the evolution of China’s science and technology policies from 1949 to 2010, and the roles of core government agencies in policy-making. We obtained 4,707 Chinese S&T policies from GDIS, a Chinese public policy database provided by Tsinghua University. Co-word analysis and network analysis were applied in mapping the topics of S&T policies and collaboration among the agencies, while citation analysis was applied to assess the influence of S&T policies. Findings include: first, the focus of Chinese S&T policies is mainly on applied research and industrialization, rather than basic research; second, more and more government agencies are involved in making S&T policies, but collaboration efforts are not significantly increasing; last but not least, the influence of different S&T policies is determined by the administrative ranking of the policy-making agencies responsible for drafting those policies.','Scientometrics',1,'Cui HuangJun SuXiang XieXuanting YeZhang LiAlan PorterJiang Li','springer/soa security.csv','springer',''),(1918,'Table of content','2014','0','','The following topics are dealt with: database intrusion detection; word sense disambiguation; machine translation; QoS-based fuzzy model; service-oriented architecture; wireless sensor networks; ontology situation awareness; robotic war; data mining; SAR image segmentation; role-based knowledge mapping; adaptive joint radio resource management algorithm; heterogeneous wireless networks; fuzzy intrusion detection system; human action content-based image retrieval; user online purchasing behavior; linear programming-based model; image hiding; feature selection; data fusion; fraud detection; MapReduce; nonlinear sliding mode block control; fractional order systems; trust-aware recommender systems; clustering based genetic algorithm; depth image compression; link analysis based ranking algorithm; semantic Web documents; adaptive e-learning system; RGB-D scene segmentation; view-invariant action recognition; social networks; gossip-based fuzzy C-means algorithm; semantic GeoLocation friend recommendation system; LinkedIn; multiradio multichannel wireless mesh networks; and license plate recognition system.','Information and Knowledge Technology (IKT), 2014 6th Conference on',1,'','ieee/service oriented architecture security.csv','ieee','\0'),(1919,'Application engines in VMVC-based tsunami modeling environment','2014','','Integration of heterogeneous software components; Service-oriented architectures; Tsunami modeling; Virtual mvcdesign patterns','Currently, Service-Oriented Architecture (SOA) may be considered as a state of the art approach for the complex software design and implementation because of high-level of operability and reusability of system components. Accordingly, we are applying the SOA-patterns to the creating the Tsunami Wave Propagation Modeling Environment because of complexity and versatility of tsunami modeling methods and tools. Our approach is followed an original Virtual Model- View-Controller pattern (VMVC) that is an adaptation of the traditional MVC to SOA. It is demarcating a Functional (View) and an Implementation (Model) task by inducing an Integrator (Controller) that encapsulates non-functional activities such as security, reliability, scalability, and routing. The presented paper is devoted to developing the Tsunami Modeling System components named Application Engines that are functioning at the Model layer. Accordingly, we are distinguishing the following main application engines: Tsunami Wave Propagation/Inundation, and Impaction Engines each of which reflects a corresponding stage of modeling process (tsunami wave propagation, inundation and impaction). We are also focusing on the developing the Tsunami Visualizing Engine (TVE) allowing to transform the digital results of modeling to the human-centered data representation. © 2014 The authors and IOS Press. All rights reserved.','',1,'Hayashi K., Vazhenin A., Marchuk A.','scopus/service oriented architecture security.csv','scopus','\0'),(1920,'Derivation of domain-specific architectural knowledge views from governance and security compliance metadata','2013','1','Architectural design decision; Architectural knowledge; Compliance; Domain-specific; Process-driven SOA; View','In the area of software architecture, in recent years, modeling design decisions is becoming more and more popular as a means to record architectural knowledge (AK) and capture the rationale of a design. Unfortunately, decision modeling is rather time-consuming and hence often forgotten in practice. In this paper, we propose that this problem can be avoided by utilizing domain-specific information that contains AK. We focus on domain-specific AK in the domain of business governance and security compliance. A novel approach is presented for recording the compliance concerns and extracting the corresponding AK. For this purpose we introduce a compliance meta-model and propose a mapping to the AK. Model-driven techniques are used as a supporting tool for generating AK documentation. Copyright 2013 ACM.','',1,'Tran H., Lytra I., Zdun U.','scopus/soa security.csv','scopus','\0'),(1921,'Tools and Algorithms for the Construction and Analysis of Systems - 18th International Conference, TACAS 2012, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2012, Proceedings','2012','','','The proceedings contain 48 papers. The topics discussed include: history-aware data structure repair using SAT; numeric bounds analysis with conflict-driven learning; Ramsey-based analysis of parity automata; VATA: a library for efficient manipulation of non-deterministic tree automata; pushdown model checking for malware detection; aspect-oriented runtime monitor certification; partial model checking using networks of labelled transition systems and Boolean equation systems; modeling and verification of a dual chamber implantable pacemaker; counter-example guided fence insertion under TSO; compositional termination proofs for multi-threaded programs; the AVANTSSAR platform for the automated validation of trust and security of service-oriented architectures; minimal critical subsystems for discrete-time Markov models; coupling and importance sampling for statistical model checking; and QuteRTL: towards an open source framework for RTL design synthesis and verification.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus','\0'),(1922,'Analyzing and mining a code search engine usage log','2012','13',' Code search engine Usage log analysis Mining topics','Abstract This paper presents an analysis of a year long usage log of Koders, the first commercially available Internet-Scale code search engine ( http://​www.​koders.​com ). The usage log comprises about ten million activities from more than three million users. Analysis of the usage data shows that despite of attracting a large number of visitors, Koders has a very sparse usage and that it lacks regular usage from many of its users. When compared to Web search, search behavior in Koders showed many similar patterns. A topic modeling analysis of the usage data shows what topics users of Koders are looking for. Observations on the prevalence of these topics among the users, and observations on how search and download activities vary across topics, lead to the conclusion that users who find code search engines usable are those who already know to a high level of specificity what to look for. This paper also presents a general categorization of these topics that provides insights on the different ways code search engine users express their queries. It identifies various forms of queries in Koders’s log and the kinds of results addressed by the queries. It also provides several suggestions for improvements in code search engines based on the analysis of usage, topics, and query forms. The work presented in this paper is the first of its kind that reveals several insights on the usage of an Internet-Scale code search engine.','Empirical Software Engineering',1,'Sushil Krishna BajracharyaCristina Videira Lopes','springer/webservice security.csv','springer',''),(1923,'A Policy-Based Architecture for Web Services Security Processing','2012','1','PBA4WSSP;Security;Security Policy;Web Services','With the development of the Internet, Web Services technology has gradually become the development direction of the e-business, e-government and other fields, and the corresponding security mechanism has received unprecedented attention, while how to design an integrated architecture to enhance web services security remains a problem very difficult to tackle with, and there are no good solutions to support individualized security requirements. As a result of our study we present in this paper a policy-based architecture termed PBA4WSSP for web services security processing. In PBA4WSSP, the processes of all security problems are based on security policy in service stage to enable system security and flexibility. Moreover, this architecture provides the five security services including as integrity, confidentiality, non-repudiation, authentication and authorization. In PBA4WSSP, a web service security module have been designed and implemented.','e-Business Engineering (ICEBE), 2012 IEEE Ninth International Conference on',1,'H. Zeng; D. Ma; Z. Li; Y. Zhao','ieee/service oriented architecture security.csv','ieee','\0'),(1924,'The Evolution of Cloud Service Governance','2015','','Cloud; Cloud service governance; Security; service-oriented architecture','We leverage cloud governance for the simple reason that, once we get to a certain number of cloud services, we won\'t be able to keep track of them all and provide the control they\'ll require. Those who leverage many services provided by public and private clouds call this the tipping point, or the point where the number of services being managed becomes so high that\'s it\'s impossible to manage them properly without a governance model, approach, and service governance technology. So, how do you implement service governance for the cloud? This article looks at both the concept of cloud governance, including why it\'s needed, and how to do it. It breaks down governance into its component parts, explains each part, and examines how to implement service governance for your cloud implementation. © 2015 IEEE.','',1,'Linthicum D.S.','scopus/service oriented architecture security.csv','scopus',''),(1925,'Analysis and Mitigation of NoSQL Injections','2016','','Browsers; Computer security; Data models; Data protection; Data storage systems; Distributed databases; Forgery; Scalability; Service-oriented architecture','NoSQL data storage systems have become very popular due to their scalability and ease of use. Unfortunately, they lack the security measures and awareness that are required for data protection. Although the new data models and query formats of NoSQL data stores make old attacks such as SQL injections irrelevant, they give attackers new opportunities for injecting their malicious code into the statements passed to the database. Analysis of the techniques for injecting malicious code into NoSQL data stores provides examples of new NoSQL injections as well as Cross-Site Request Forgery attacks, allowing attackers to bypass perimeter defenses such as firewalls. Analysis of the source of these vulnerabilities and present methodologies can mitigate such attacks. Because code analysis alone is insufficient to prevent attacks in today\'s typical large-scale deployment, certain mitigations should be done throughout the entire software life cycle. © 2003-2012 IEEE.','',1,'Ron A., Shulman-Peleg A., Puzanov A.','scopus/service oriented architecture security.csv','scopus',''),(1926,'Fault-tolerant timestamp-based two-phase commit protocol for RESTful services','2013','','architectural style; concurrency control; distributed system; fault tolerance; reliability; REST; timestamp; transaction; Web services','Service-oriented architecture provides interoperability and weak coupling features for software development. Representational state transfer (REST) is an architectural style that has attracted attention in the SOA domain as it allows the development of Web services based on original principles of the World Wide Web. Unlike Web service specifications, which are based on Simple Object Access Protocol and Web Services Description Language, REST does not provide \'official\' standards to address non-functional requirements of services, such as security, reliability, and transaction control. The timestamp-based two-phase commit protocol for RESTful service (TS2PC4RS) algorithm specifies concurrency control of RESTful services during a transaction. An extension of the TS2PC4RS specifies the concurrency control of the Web services considering the update operation to meet some business rules. However, neither algorithm addresses transaction control when failures occur. In long-term transactions, failures can occur and compromise the success of Web service applications. Two common failures traditionally considered in the analysis of protocols are host and connection failures. The aim of this paper is to address fault tolerance for TS2PC4RS and its extension. A fault-tolerant protocol based on timeout and log records is proposed. The fault-tolerant protocol provides support for the host and connection failures that may occur during a transaction execution. The fault-tolerant mechanisms are used to meet the application domain business rules that guide the behavior of RESTful services. We describe the protocol using scenarios when failures occur. Copyright © 2012 John Wiley & Sons, Ltd. Copyright © 2012 John Wiley & Sons, Ltd.','',1,'Maciel L.A.H.D.S., Hirata C.M.','scopus/service oriented architecture security.csv','scopus','\0'),(1927,'Solving the Interoperability Problem by Means of a Bus','2014','0',' Grid computing Cloud computing Interoperability problem Heterogeneous computing infrastructures','Abstract In the last years, many institutions have provided themselves with cluster and Grid infrastructures either for intensive computation or research objectives. Each infrastructure having its own and different management operating software, the integration of different platforms becomes a hard and complicated task. Solving the interoperability problem for a set of different computing infrastructures belonging to our institution in order to solve a computation intensive problem was our objective. The paper describes the solution that was applied and the experimental results obtained. The solution uses a platform based on a central bus shared by the involved system components for information exchange. In order to ensure that all computations will succeed, the solution includes cloud infrastructures to deal with situations in which the local computing resources pose some problems. Also a cloud based solution for the bus deployment is explored and empirically compared with a local deployment.','Journal of Grid Computing',1,'Javier FabraSergio HernándezJoaquín EzpeletaPedro Álvarez','springer/soa security.csv','springer','\0'),(1928,'Content architecture applications in healthcare','2014','0',' Content architectures Service oriented architecture Intelligent content Knowledge management e-Health Electronic health records','Abstract Healthcare delivery is undergoing significant transformation in the United States. Many hospitals and clinics are utilizing electronic means for maintaining patient records. Implementation of electronic health records is now a prevalent activity at many healthcare organizations. Despite the use of electronic health records by many healthcare organizations, it is still difficult to obtain meaningful information from electronic data pertaining to healthcare. Intelligent content applications organize the data within a company make all the data in the organization searchable and retrievable for faster access. This paper therefore explores SOA (Service oriented architecture) and intelligent content architecture in an attempt to suggest better structures that enable retrieval of related data from myriad sources within a company. While intelligent content applications are being slowly developed for areas such as electronic publishing, its use in healthcare organizations has been limited. This paper discusses applications of intelligent content architecture for the healthcare domain.','Health and Technology',1,'Suresh ChalasaniPradeep JainParag DhumalHoda MoghimiNilmini Wickramasinghe','springer/soa security.csv','springer','\0'),(1929,'Remote SoC/FPGA platform configuration for cloud applications','2014','1','','The growing development of Cloud Computing raised the need of making hardware available “as a Service”. Reconfigurable hardware - like FPGA (Field Programmable Gate Arrays) - makes the ideal candidate for being integrated into Cloud systems due to their high flexibility and scalability. This work describes the design and implementation of a remote reconfigurable FPGA-based SoC (System on Chip) with a Service-oriented configuration interface over the Internet, and underlines several solutions in order to meet the specific challenges raised by this type of integration. The FPGA board (that can be at a remote location) is configured by a Web Service linked to a JSP (JavaServer Pages) Web-page where the user can provide a bitstream configuration file for the Programmable Logic (PL). On the SoC/FPGA board, dedicated software has been developed to run on the embedded Processing System (PS), managing the downloaded bitstreams and configuring the PL.','2014 International Conference on Optimization of Electrical and Electronic Equipment (OPTIM)',1,'O. Machidon; F. Sandu; C. Zaharia; P. Cotfas; D. Cotfas','ieee/service oriented architecture security.csv','ieee','\0'),(1930,'A Problem-Value-Constraint Framework for Minimizing Under Design and Over Design in Web Service Based System Development','2015','','Knowledge;Over Design;SOA;Software Development;Value Engineering;Web Service','With the increasing of the popularity of Service oriented Software Development, we have identified there is a need to systemically reduce the complexity and increase the robustness of developed Service systems through a guided development process. We choose under design (UD) and over design (OD) as core value assets to uniformly represent the target of managing the human errors and deficiencies during a development process. In the study of a Web Service architectural selection case, based on the ideology of Value Driven Design, we proposed the Problem-Value-Constraint (PVC) approach as the framework of minimizing under design and over design covering both IT concerns including functionalities and qualities and Business concerns including value, cost, price and usage. Our PVC solution connects the characteristics including knowledge management, information transformation and business value. Partially through service design patterns, our study showed that PVC is able to outline both business and technical characteristics at the same time keep the simplicity of model structures.','2015 International Conference on Service Science (ICSS)',1,'Y. Duan; C. Ren; N. Zhou; X. Sun; M. Tang; H. Gao','ieee/service oriented architecture security.csv','ieee',''),(1931,'SOAP processing performance and enhancement','2012','13','and protection; integrity; performance evaluation; performance measures; security; Web-based Services; XML/XSL/RDF','The web services (WS) technology provides a comprehensive solution for representing, discovering, and invoking services in a wide variety of environments, including Service Oriented Architectures (SOA ) and grid computing systems. At the core of WS technology lie a number of XML-based standards, such as the Simple Object Access Protocol (SOAP), that have successfully ensured WS extensibility, transparency, and interoperability. Nonetheless, there is an increasing demand to enhance WS performance, which is severely impaired by XML\'s verbosity. SOAP communications produce considerable network traffic, making them unfit for distributed, loosely coupled, and heterogeneous computing environments such as the open Internet. Also, they introduce higher latency and processing delays than other technologies, like Java RMI and CORBA. WS research has recently focused on SOAP performance enhancement. Many approaches build on the observation that SOAP message exchange usually involves highly similar messages (those created by the same implementation usually have the same structure, and those sent from a server to multiple clients tend to show similarities in structure and content). Similarity evaluation and differential encoding have thus emerged as SOAP performance enhancement techniques. The main idea is to identify the common parts of SOAP messages, to be processed only once, avoiding a large amount of overhead. Other approaches investigate nontraditional processor architectures, including micro- and macrolevel parallel processing solutions, so as to further increase the processing rates of SOAP/XML software toolkits. This survey paper provides a concise, yet comprehensive review of the research efforts aimed at SOAP performance enhancement. A unified view of the problem is provided, covering almost every phase of SOAP processing, ranging over message parsing, serialization, deserialization, compression, multicasting, security evaluation, and data/instruction-level processing. © 2012 IEEE.','',1,'Tekli J.M., Damiani E., Chbeir R., Gianini G.','scopus/service oriented architecture security.csv','scopus','\0'),(1932,'Improving agile requirements: the Quality User Story framework and tool','2016','0',' User stories Requirements quality AQUSA QUS framework Natural language processing Multi-case study','Abstract User stories are a widely adopted requirements notation in agile development. Yet, user stories are too often poorly written in practice and exhibit inherent quality defects. Triggered by this observation, we propose the Quality User Story (QUS) framework, a set of 13 quality criteria that user story writers should strive to conform to. Based on QUS, we present the Automatic Quality User Story Artisan (AQUSA) software tool. Relying on natural language processing (NLP) techniques, AQUSA detects quality defects and suggest possible remedies. We describe the architecture of AQUSA, its implementation, and we report on an evaluation that analyzes 1023 user stories obtained from 18 software companies. Our tool does not yet reach the ambitious 100 % recall that Daniel Berry and colleagues require NLP tools for RE to achieve. However, we obtain promising results and we identify some improvements that will substantially improve recall and precision.','Requirements Engineering',2,'Garm LucassenFabiano DalpiazJan Martijn E. M. van der WerfSjaak Brinkkemper','springer/bpmn security.csv','springer',''),(1933,'Turnaround Time Minimization-Based Static Scheduling Model Using Task Duplication for Fine-Grained Parallel Applications onto Hybrid Cloud Environment','2015','','Directed acyclic graph (DAG); hybrid cloud computing; scheduling; task duplication; turnaround time (TAT)','Cloud computing is a multifarious computing paradigm incorporating the benefits of service-oriented architecture and utility computing through virtualization. Hybrid cloud, an amalgamation of two or more public and/or private clouds, is gaining high popularity between users due to various reasons involving improved performance, flexible business operations, capacity expansion, optimized costs, and enhanced security. The efficient execution of fine-grained parallel applications onto hybrid cloud system becomes limited due to a number of factors. From the application point of view, it ranges from the dynamicity of the applications to their precedence and communication constraints while for the computational resources, it includes heterogeneity of processors and participating clouds with their interconnection topology. This work proposes a compile time hybrid cloud-based task duplication strategy to execute the fine-grained applications represented as directed acyclic graph (DAG) onto the hybrid cloud environment. The proposed strategy schedules the tasks based on a degree relative to the critical path in the DAG and tries to achieve lower bound of the DAG. Furthermore, it makes an effort to avoid redundant duplication by duplicating only the required parent tasks considering the available idle slots to minimize the execution time of the application. The experimental study reveals that the proposed strategy performs better than its peers in terms of achieving the lower bound more efficiently with lesser degree of duplication for fine-grained jobs. The strategy is highly useful for cloud environment as it results in lower cost of usage of resources with enhanced system utilization. Copyright © 2015 by the IETE','',1,'Sajid M., Raza Z.','scopus/service oriented architecture security.csv','scopus',''),(1934,'Measurements and Measurement Tools in OpenLab: Use Cases with Measurement Data Ontologies','2013','0',' OpenLab measurement in testbeds ontology network measurement data integration','Abstract In this chapter we review the network measurement tools and instruments that are in place in the FP7 OpenLab project, which provides a set of different network testbeds. We also focus on the problem of data heterogeneity, which comes from the fact that different measurement tools will provide data in different formats and structured in different ways. Therefore, a common information model becomes necessary and the OpenLab ontology-based solution is presented. Such ontology is being standardized by an Industry Specification Group at ETSI, resulting in the first ever standard on network measurement data ontologies.','',1,'J. E. López de VergaraJ. Aracil','springer/service oriented architecture security.csv','springer','\0'),(1935,'Exception handling patterns for process modeling','2010','33','Exception handling patterns; Process modeling; Process modeling languages','Process modeling allows for analysis and improvement of processes that coordinate multiple people and tools working together to carry out a task. Process modeling typically focuses on the normative process, that is, how the collaboration transpires when everything goes as desired. Unfortunately, real-world processes rarely proceed that smoothly. A more complete analysis of a process requires that the process model also include details about what to do when exceptional situations arise. We have found that, in many cases, there are abstract patterns that capture the relationship between exception handling tasks and the normative process. Just as object-oriented design patterns facilitate the development, documentation, and maintenance of object-oriented programs, we believe that process patterns can facilitate the development, documentation, and maintenance of process models. In this paper, we focus on the exception handling patterns that we have observed over many years of process modeling. We describe these patterns using three process modeling notations: UML 2.0 Activity Diagrams, BPMN, and Little-JIL. We present both the abstract structure of the pattern as well as examples of the pattern in use. We also provide some preliminary statistical survey data to support the claim that these patterns are found commonly in actual use and discuss the relative merits of the three notations with respect to their ability to represent these patterns. © 2010 IEEE.','',2,'Lerner B.S., Christov S., Osterweil L.J., Bendraou R., Kannengiesser U., Wise A.','scopus/bpmn security.csv','scopus',''),(1936,'Putting the Customer Back in the Center of SOA with Service Design and User-Centered Design','2013','1',' Service Design User-Centered Design Service Oriented Architecture','Abstract This article introduces a methodology used for designing the online presence of a Swiss SME providing Cloud Services. The Web application used for the purchasing and administration, backed by a Service-Oriented Architecture (SOA), has been designed to be customer-centric using a combination of different techniques borrowed from the fields of ethnomethodology, service design and user-centered design. The tools employed include service blueprint design and affinity diagram analysis followed by prototyping and subsequent usability evaluation. This collaborative methodology explained with the help of the applied research project use case is seen to yield excellent results in terms of customer-orientation.','',1,'Arnita SainiBenjamin NanchenFlorian Evequoz','springer/service oriented architecture security.csv','springer','\0'),(1937,'Improving resilience of SOA services along space-time dimensions','2012','','Intrusion Tolerance; MTTR; MTTSF; SCIT; Semi-Markov; SOA','In Service-Oriented Architecture, a service contains a set of operations with openly defined input and output parameters. In addition to these operations and traditional QoS, offered services need to implement different levels of intrusion tolerance. Indeed, intrusion tolerance has been recently presented as part of the defense-in-depth solution in order to enhance security resilience for services, as a complement to the traditional intrusion prevention and detection. While satisfying functional requirements, a service also exposes its attack surface via published operations, protocols, and accessible data as an adverse side effect, which makes it susceptible to exploitation by malicious actors. The resulting question is - how can services fulfill and maintain their intrusion tolerance QoS (IT-QoS) for security resilience and rapid recovery in the face of hostile attacks. In this paper, we propose an approach to tune a service so that its attackability can be controlled and the IT-QoS guaranteed despite the exposed attack surface. Our approach relies on Self-Cleansing Intrusion Tolerance (SCIT), a recovery-based intrusion tolerance architecture combined with service-oriented programming constructs. A quantitative analysis using Semi-Markov Process modeling provides a mathematical foundation for compensating the expansion of a service\'s attack surface by tuning SCIT system parameters. © 2012 IEEE.','',1,'Nguyen Q.L., Sood A.','scopus/service oriented architecture security.csv','scopus','\0'),(1938,'The SERIES Virtual Database: Architecture and Implementation','2015','0','','Abstract The European scientific community is currently highly fragmented, with each laboratory holding experimental data, stored in some cases in a non-structured way. As a consequence, dissemination and use of experimental results outside the laboratory where they are produced can be problematic. This leads to wasteful duplication of tests and ultimately limits the impact of earthquake engineering research on practice, innovation and earthquake risk mitigation. One part of the SERIES Networking Activities aims at facilitating the exchange of data and data communication among research infrastructures in Europe by providing access to data through a distributed database. The scope was not to build a central database where local databases would either migrate or merge, but instead to provide centralised access to database nodes that are distributed over a network and are able to dialog with a central portal in a uniform manner. To this end, database nodes use Web Services to cast their data into a uniform standard format. The paper concentrates on the architecture and the implementation of the Distributed Database.','',1,'Ignacio Lamata MartínezIoannid IoannidisChristos FidasMartin S. WilliamsPierre Pegon','springer/service oriented architecture security.csv','springer',''),(1939,'The MIDAS cloud platform for testing SOA applications','2015','','','While Service Oriented Architectures (SOAs) are for many parts deployed online, and today often in a cloud, the testing of the systems still happens mostly locally. In this paper, we want to present the MIDAS Testing as a Service (TaaS), a cloud platform for the testing of SOAs. We focus on the testing of whole SOA orchestrations, a complex task due to the number of potential service interactions and the increasing complexity with each service that joins an orchestration. Since traditional testing does not scale well with such a complex setup, we employ a Model-based Testing (MBT) approach based on the Unified Modeling Language (UML) and the UML Testing Profile (UTP) within MIDAS. Through this, we provide methods for functional testing, security testing, and usage-based testing of service orchestrations. Through harnessing the computational power of the cloud, MIDAS is able to generate and execute complex test scenarios which would be infeasible to run in a local environment. © 2015 IEEE.','',1,'Herbold S., De Francesco A., Grabowski J., Harms P., Hillah L.M., Kordon F., Maesano A.-P., Maesano L., Di Napoli C., De Rosa F., Schneider M.A., Tonellotto N., Wendland M.-F., Wuillemin P.-H.','scopus/service oriented architecture security.csv','scopus',''),(1940,'Using Models at Runtime to Address Assurance for Self-Adaptive Systems','2014','1','','Abstract A self-adaptive software system modifies its behavior at runtime in response to changes within the system or in its execution environment. The fulfillment of the system requirements needs to be guaranteed even in the presence of adverse conditions and adaptations. Thus, a key challenge for self-adaptive software systems is assurance. Traditionally, confidence in the correctness of a system is gained through a variety of activities and processes performed at development time, such as design analysis and testing. In the presence of self-adaptation, however, some of the assurance tasks may need to be performed at runtime. This need calls for the development of techniques that enable continuous assurance throughout the software life cycle. Fundamental to the development of runtime assurance techniques is research into the use of models at runtime (M@RT). This chapter explores the state of the art for using M@RT to address the assurance of self-adaptive software systems. It defines what information can be captured by M@RT, specifically for the purpose of assurance, and puts this definition into the context of existing work. We then outline key research challenges for assurance at runtime and characterize assurance methods. The chapter concludes with an exploration of selected application areas where M@RT could provide significant benefits beyond existing assurance techniques for adaptive systems.','',1,'Betty H. C. ChengKerstin I. EderMartin GogollaLars GrunskeMarin LitoiuHausi A. MüllerPatrizio PelliccioneAnna PeriniNauman A. QureshiBernhard RumpeDaniel SchneiderFrank TrollmannNorha M. Villegas','springer/service oriented architecture security.csv','springer','\0'),(1941,'Toward the automation of a QoS-driven SLA establishment in the Cloud','2015','0',' Composite SaaS SOA QoS SLA Cloud and Model-driven architecture','Abstract Composite software as a service (SaaS)-based SOA offers opportunities for enterprises to offer value-added services. The cornerstone for such a business is service level agreements between Cloud customers and Cloud providers. In spite of the hype surrounding composite SaaS, standardized methods that enable a reliable management of service level agreements starting from the SLA derivation from the customer requirements to the SLA establishment between the two stockholders are still missing. To overcome such a drawback, we propose a method for SLA establishment guided by QoS for composite SaaS. Our method provides: (1) a requirement specification language for the Cloud customer to define the composition schemas of the requested services along with its QoS constraints; (2) a Cloud provider offer specification language and method to help in identifying the services and resources that satisfy the customer requirements; and (3) an SLA document definition language and method to specify a deployable composite SaaS on the Cloud. Our approach for SLA establishment embraces model-driven architecture principles to automate the SLA document generation from the customer requirements document. The automation is handled through model transformations along with enrichment algorithms to ensure the generation of complete SLA documents.','Service Oriented Computing and Applications',1,'Khouloud BoukadiRima GratiHanêne Ben-Abdallah','springer/soa security.csv','springer',''),(1942,'SDE-Driven Service Provision Control','2012','0',' Service Provision Control Stochastic differential equation Differential Evolution','Abstract The service-oriented architecture (SOA) allows distributed resources to be provided through standard service interfaces, resulting in easy and flexible access to domain-specific functionality. Depending on resource availability and the demand for services, a service-providing host may choose to provide one or several services in the direction of maximizing its service-providing utility. This is known as the service provision control (SPC) problem. With the help of stochastic differential equations (SDEs), this problem will be tackled in this paper within a stochastic optimization framework. Differential evolution (DE) algorithm will be further utilized to identify near-optimal service-providing policies. Experimental study has been conducted based on an example inspired by Cyber security. The experiment results show that our approach is effective in tackling the SPC problem and may be therefore suitable for many practical applications.','',1,'Gang ChenShaoning PangAbdolhossein SarrafzadehTao BanDaisuke Inoue','springer/service oriented architecture security.csv','springer','\0'),(1943,'Modelling and Analysing Cloud Application Management','2015','0','','Abstract Managing complex applications over heterogeneous clouds is one of the emerging problems in the cloud era. The OASIS Topology and Orchestration Specification for Cloud Applications (TOSCA) aims at solving this problem by providing a language to describe and manage complex cloud applications in a portable and vendor-agnostic way. TOSCA permits to define an application as an orchestration of components, whose types can specify states, requirements, capabilities and management operations — but not how they interact with each other. In this paper we propose a simple extension of TOSCA that permits to specify the behaviour of management operations and their relations with states, requirements, and capabilities. We show how such an extension permits to automate various useful analyses, like determining the validity of a management plan, which are its effects, or which plans reach certain system configurations. Finally, we illustrate a proof-of-concept graphical interface that permits to edit and analyse management protocols in TOSCA applications.','',2,'Antonio BrogiAndrea CancianiJacopo Soldani','springer/bpmn security.csv','springer',''),(1944,'Discerning Flooding Attack from Flash Crowd based on traffic patterns using entropy detection method','2015','','Entropy; Flash Crowd; Flooding Attack','Computing Industry is moving towards Service Oriented Architecture at a fast pace. This brings network security to the forefront of major concerns to an organization. Ensuring round the clock uninterrupted service to the clients becomes a top priority to any organization. Flooding Attack is one of the costliest attacks that use a host to overwhelm a server, causing complete system crash. Flash Crowd is an unexpected rise in traffic caused by legitimate users. Both flooding which is one of the types of DoS attack and Flash crowd creates abnormal traffic condition, but in order to improve good put, the server must be deployed with the mechanism that should classify legitimate and malicious call requests. The on-going attacks usually similar to each other compared to the flows of flash crowd so the provocation is to recognize flooding attacks from flash crowd. The recognition of flooding attack is done by, using the Entropy based detection method. © 2015 IEEE.','',1,'Rani T.S., Sindhura V., Rao G.R., Pranathi K.','scopus/service oriented architecture security.csv','scopus',''),(1945,'International Standard Conference on Trustworthy Computing and Services, ISCTCS 2013','2014','','','The proceedings contain 49 papers. The special focus in this conference is on Trustworthy Computing and Services. The topics include: Security memory system for mobile device or computer against memory attacks; research on technologies of software requirements prioritization; when malware analysis meets the hardware assisted virtualization; imbalanced Chinese text classification based on weighted sampling; hijacking activity technology analysis and research in android system; a mobile botnet model based on android system; an improved common vulnerability scoring system based on k-means; a design of linkage security defense system based on honeypot; flexible mechanism research of workflow system based on SOA; effective rate control algorithm for H.264 based on scene change detection; a new approach to decrease invalidate rate of weak consistency methods in web proxy caching; an anomaly detection model based on cloud model and danger theory; generation and distribution of decoy document system; detecting the DGA-based malicious domain names; improving the efficiency of storing SNS small files in HDFS; a highly efficient indoor localization scheme based only on mobile terminal; a zones-based metadata management method for distributed file system; survey on data recovery for cloud storage; the evaluation of service trustworthiness based on BP-neural network; research on trustworthy sensor network based on zigbee technology; research of digital campus construction based on cloud computing; multi-layer CAPTCHA based on Chinese character deformation; security risk assessment of mobile internet under cloud computing mode; business impact analysis model based on the analytic hierarchy process; a black-box approach for detecting the failure traces; an effective resource management architecture in HSE system; a covert channel bases on CPU load in cloud computing; adaptive synchronization of complex networks with time-varying delay nodes and delay coupling; gigabit Ethernet data transfer based on FPGA; research on efficient dynamic cloud storage ciphertext access control; research on the inverted index based on compression and perception; term committee based event identification and dependency discovery; a semantics enabled intelligent semi-structured document processor; trustworthiness in the patient centred health care system; android-based remote-control with real-time video surveillance for Wi-Fi robot; characterizing and comparing user location preference in an urban mobile network and security testing approaches - for research, industry and standardization.','',1,'[No author name available]','scopus/soa security.csv','scopus','\0'),(1946,'Harnessing and securing cloud in patient health monitoring','2012','','Cloud computing; HL7; open source health care; Security; tele monitoring','A first proposal to use a secure open cloud architecture (OpenCloudCare) for remote patient health monitoring defines the front end and back end architecture that would integrate healthcare devices into the enterprise cloud. This service oriented architecture (SOA) uses existing open source resources for easy implementation, migration and rapid deployment. The introduction of the atlas middleware in the cloud environment enables scalable integration of devices as software services without worrying on hardware details. OpenCloudCare has the potential to enable the independent living for the aged people with minimal cost. Like Amazon EC2, OpenCloudCare can emerge as the de-facto platform, on which different vendors and developers can offer wider range of services using existing devices and enterprise applications. The benefits of migrating existing patient monitoring systems into cloud and the migrating process are also discussed. The major components required for securing the cloud infrastructure are also identified. Complying with the federal requirements on electronic health record (EHR) protection is the major challenge. © 2012 IEEE.','',1,'Mouleeswaran S.K., Rangaswamy A., Rauf H.A.','scopus/service oriented architecture security.csv','scopus','\0'),(1947,'CDCGM track: Summary report','2013','','Cloud Computing; Distributed Intelligent Managed Element Networks; Distributed Services Management; grid computing; Many-core Servers; Parallel Computing; Services Virtualization','The Convergence of distributed clouds, grids and their management conference track focuses on virtualization and cloud computing as they enjoy wider acceptance. A recent IDC report predicts that by 2016, 1 of every 5 will be spent on cloud-based software and infrastructure. Three papers address key issues in cloud computing such as resource optimization and scaling to address changing workloads and energy management. In addition, the DIME network architecture proposed in WETICE2010 is discussed in two papers in this conference, both showing its usefulness in addressing fault, configuration, accounting, performance and security of service transactions with in the service oriented architecture implementation and also spanning across multiple clouds. While virtualization has brought resource elasticity and application agility to the services infrastructure management, the resulting layers of orchestration and the lack of end-to-end service visibility and control spanning across multiple service provider infrastructure have added an alarming degree of complexity. Hopefully, reducing the complexity in the next generation datacenters will be a major research topic in this conference. © 2013 IEEE.','',1,'Mikkilineni R., Morana G.','scopus/service oriented architecture security.csv','scopus','\0'),(1948,'A Context-Aware User Interface for Wireless Personal-Area Network Assistive Environments','2013','2',' Context-aware control interface Wireless assistive environments Service discovery Motor system impairments Tongue-controlled interface','Abstract The daily life of people with severe motor system impairments is challenging and thus often subordinated to extensive external help; increasing their level of self-support is thus highly desirable. Recent advances in wireless communications, in particular in wireless personal-area networks, serve as technological enablers well suited for implementing smart and convenient assistive environments which can increase self-support. This paper presents the design and prototyping of a versatile interface for such wireless assistive environments. We propose a modular framework that can accommodate several wireless personal-area network standards. The interface is built upon this framework and is designed in such a way that it can be controlled by various types of input devices such as a touch screen or a tongue-control unit. The interface can automatically discover consumer appliances (e.g. Zigbee and Bluetooth enabled lights and computers) in the user’s environment and display the services supported by these devices on a user-friendly graphical user interface. A demonstrator is prototyped and experimental results show that the proposed interface is context-aware, i.e. it successfully detects available appliances, adapts itself to the changes that occur in the user’s environment, and automatically informs the user about these changes. The results also show that the proposed interface is versatile and easy to use, i.e. the user can easily control multiple devices by means of a browser menu. Hence, the proposed work illustrates how assistive technology based on wireless personal-area networks can contribute to improving the quality of life of motor system impaired persons.','Wireless Personal Communications',1,'Bastien PaulSéverin MarcombesAlexandre DavidLotte N. S. Andreasen StruijkYannick Le Moullec','springer/service oriented architecture security.csv','springer','\0'),(1949,'Proceedings - 14th IEEE International Symposium on Web Systems Evolution, WSE 2012','2012','','','The proceedings contain 15 papers. The topics discussed include: automated verification of role-based access control security models recovered from dynamic web applications; visual testing of graphical user interfaces: an exploratory study towards systematic definitions and approaches; security evolution of the Webkit browser engine; an exploratory survey on SOA knowledge, adoption and trend in the Italian industry; a case study of the use of open source CMS in public administrations; evaluation of java-based open source web frameworks with Ajax support; towards a lightweight model driven method for developing SOA systems using existing assets; model-driven and metrics-driven user experience re-modeling for rich internet applications; development of flexible process-centric web applications: an integrated model driven approach; and educating tomorrows web systems developers.','',1,'[No author name available]','scopus/soa security.csv','scopus','\0'),(1950,'Semantic Integration via Enterprise Service Bus in Virtual Organization Breeding Environments','2016','0',' Matching process Ontology Semantic mapper Virtual breeding environment','Abstract To attend demands faster and with lower cost, small and medium sized enterprises (SME) act in a collaboratively way in organization breeding environments through resource sharing and integration of systems. This integration is easier by the use of service oriented architecture and enterprise service bus (ESBs). However is still complex due the heterogeneity of existing data. To solve this compatibility problem among data, the ESBs could be enabled to mediate divergences with semantic support. But how to add semantic support into the ESBs to facilitate data mapping of SME in order to integrate its systems? This paper proposes the creation of an ontology as a method of semantic data analysis with the objective of solving incompatibilities among data that should be exchanged between SME. To validate the proposal some metrics are applied, they evaluate the coverage of the search terms, the wealth of knowledge representation and ontology detail level, as well as the prototype of semantic mapper developed was executed and analyzed.','',2,'Wilcilene Maria Kowal SchratzenstallerFabiano BaldoRicardo José Rabelo','springer/bpmn security.csv','springer',''),(1951,'A Service-Oriented Architecture Implementation in the Digital Factory of the University','2015','0',' Service-Oriented architecture SOA in automation DPWS Control systems','Abstract In reaction to the changing requirements for modern manufacturing systems, which lead to an increasing demand for flexibility and reconfigurability, different technologies had been developed in the past to meet these requirements. In today’s competitive dynamic market, the successful integration of new architectures and technologies in manufacturing processes is inevitable for all organizations. One promising approach is to map the concepts of “Service-Oriented Architecture” into the automation area. In order to test and evaluate the capabilities of this architecture and its related technologies, the University of Applied Sciences Emden/Leer has been building its “Digital Factory” following this approach. This paper will provide an overview about how the SOA concept has been implemented at the “Digital Factory” and what is going to be realized in the future.','',1,'Jeffrey WermannEduardo Cardoso MoraesArmando Walter Colombo','springer/service oriented architecture security.csv','springer',''),(1952,'ITS Architecture for Provision of Advanced Information Services for Public Transport by Road','2015','0',' Intelligent transport systems Public transport management','Abstract In this work a system architecture model for the provision of advanced information services in the context of public transport of passengers by road is presented. The main aim of this model is to provide a frame for systematic development of ubiquitous services integrated in transport infrastructures. The proposed architecture is based on standard specification about ITS architectures and ubiquitous paradigm. To illustrate the utility of the proposed model, a case of use is presented, specifically an intelligent surveillance system for on route public transport vehicles that has been developed using the proposed model.','',1,'Carmelo R. GarcíaAlexis Quesada-ArencibiaTeresa CristóbalGabino PadrónFrancisco Alayón','springer/service oriented architecture security.csv','springer',''),(1953,'Service Orientation and the Smart Grid state and trends','2012','10',' Smart Grid Electricity distribution Service-oriented architectures Web services','Abstract The energy market is undergoing major changes, the most notable of which is the transition from a hierarchical closed system toward a more open one highly based on a “smart” information-rich infrastructure. This transition calls for new information and communication technologies infrastructures and standards to support it. In this paper, we review the current state of affairs and the actual technologies with respect to such transition. Additionally, we highlight the contact points between the needs of the future grid and the advantages brought by service-oriented architectures.','Service Oriented Computing and Applications',1,'Giuliano Andrea PaganiMarco Aiello','springer/soa security.csv','springer',''),(1954,'Perceptual rate-distortion optimization for H.264/AVC video coding from both signal and vision perspectives','2016','0',' Perceptual quality Rate-distortion optimization Lagrange multiplier adjustment H.264/AVC','Abstract Recent researches have shown that the Structural SIMilariy (SSIM)-based Rate-Distortion Optimization (RDO) can obtain more structural information than the traditional SSE-based RDO for video coding. Correspondingly, the perceptual video quality is improved at certain degree for the video stream encoded by the SSIM-based RDO. However, for the MB with significant luminance change (due to the flashlight or sunshine change, etc.) but little structure change compared to the co-located MB in the referred frame, the SSIM-based RDO may select improper encoding mode (SKIP) which leads to uncomfortable visual experience. In this paper, involving the surrounding pixels of the current coding MB into the measurement of spacial texture quality degradation, the RDO which jointly considers the SSIM-based distortion and SSE-based distortion is proposed to improve H.264/AVC perceptual coding performance. The Lagrange multiplier in the proposed RDO is firstly derived at the frame level. Then, to make the Lagrange multiplier more adaptive to the specific video content, the Lagrange multiplier for each individual MB is refined based on the visual information theory. Experimental results show that the proposed perceptual RDO can select the optimal encoding mode which preserves as much structural information as possible with as little SSE-based distortion as possible, and that the perceptual quality of the encoded video is improved.','Multimedia Tools and Applications',1,'Pinghua ZhaoYanwei LiuJinxia LiuRuixiao YaoSong Ci','springer/service oriented architecture security.csv','springer',''),(1955,'Design and implementation of a massively parallel ESB','2013','','distributed and delay insensitive applications; Enterprise Service Bus (ESB); massively parallel processing; multithreading','Enterprise Service Bus (ESB) is an SOA-based software architecture for business application integration in distributed and heterogeneous environments. The proposed solutions so commercial as open source offer the same set of basic services such as message transformation, message routing, security. However, none of them take advantage of the multicore/multiprocessor technologies which make plausible the massively parallel processing. In this paper, we describe a new ESB architecture denoted Massively Parallel Application Bus (MPAB) which meets this challenge. © 2013 IEEE.','',1,'Benosman R., Barkaoui K., Albrieux Y.','scopus/soa security.csv','scopus','\0'),(1956,'An Adaptive Personal Learning Environment Architecture','2014','2',' Service-oriented architecture (SOA) University Service Bus (USB) Personal Learning Environment (PLE)','Abstract Institutions are facing the challenge to integrate legacy systems with steadily growing new ones, using different technologies and interaction patterns. With the demand of offering the best potential of all systems, several not matching systems including their functions have to be aggregated and offered in a useable way. This paper presents an adaptive, generalizable and self-organized Personal Learning Environment (PLE) framework with the potential to integrate several heterogeneous services using a service-oriented architecture. First, a general overview over the field is given, followed by the description of the core components of the PLE framework. A prototypical implementation is presented. Finally, it’s shown how the PLE framework can be dynamically adapted to a changing system environment, reflecting experiences from first user studies.','',2,'Alexander KiyUlrike LuckeDietmar Zoerner','springer/bpmn security.csv','springer',''),(1957,'The study on a convergence security service for manufacturing industries','2013','3',' IT convergence security service Manufacturing industry Technology leakage','Abstract In the current global economic recession, the manufacturing industry, a backbone of national economy, is in danger of collapse. For manufacturing business, which has a large effect on national production and employment, to contribute to the growth of national economy, we should, among others, prepare a plan to prevent the leakage of high technology. However, since manufacturing businesses have different business processes, it is hard to work out a security measure. Accordingly, the present thesis has developed a convergence security service for business process of manufacturing industries. The new service answering the prayer of each business was developed as a security measure by building ontology in application of Semantic technology after analyzing the business process of manufacturing industries.','Telecommunication Systems',1,'Jonggu KangJaepil LeeChungtae HwangHangbae Chang','springer/service oriented architecture security.csv','springer','\0'),(1958,'Cloud-assisted body area networks: state-of-the-art and future challenges','2014','13',' Body area networks Cloud computing Mobile computing Workflow Data analysis','Abstract Body area networks (BANs) are emerging as enabling technology for many human-centered application domains such as health-care, sport, fitness, wellness, ergonomics, emergency, safety, security, and sociality. A BAN, which basically consists of wireless wearable sensor nodes usually coordinated by a static or mobile device, is mainly exploited to monitor single assisted livings. Data generated by a BAN can be processed in real-time by the BAN coordinator and/or transmitted to a server-side for online/offline processing and long-term storing. A network of BANs worn by a community of people produces large amount of contextual data that require a scalable and efficient approach for elaboration and storage. Cloud computing can provide a flexible storage and processing infrastructure to perform both online and offline analysis of body sensor data streams. In this paper, we motivate the introduction of Cloud-assisted BANs along with the main challenges that need to be addressed for their development and management. The current state-of-the-art is overviewed and framed according to the main requirements for effective Cloud-assisted BAN architectures. Finally, relevant open research issues in terms of efficiency, scalability, security, interoperability, prototyping, dynamic deployment and management, are discussed.','Wireless Networks',1,'Giancarlo FortinoGiuseppe Di FattaMukaddim PathanAthanasios V. Vasilakos','springer/soa security.csv','springer',''),(1959,'The Service Meta Modeling Editor – Bottom-Up Integration of Service Models','2013','1',' logistics service modeling metamodeling service editor','Abstract The logistics service industry is characterized by a high level of collaboration between logistics customers and providers. In fact, sophisticated, knowledge-intense business models such as fourth party and lead logistics evolved in recent years that are responsible for planning, coordination, and monitoring entire supply chains across logistics companies. The Logistics Service Engineering and Management (LSEM) platform is a service-oriented infrastructure for the development and management of collaborative contract logistics enabling fourth party and lead logistics. The service modeling framework (SMF) is a central element of the LSEM-platform. It allows users of the platform to define, manage and combine logistics services from different providers and allows for an integrated view on complex services setups. In this paper, the Service Meta Modeling Editor is presented as an essential part of the SMF. It allows connecting and integrating various types of service models and avoids the need to define and maintain a complex, global service model. Instead a comprehensive service model is built bottom-up in that elements from different models are linked on a metamodel level.','',2,'Christoph AugensteinAndré Ludwig','springer/bpel security.csv','springer','\0'),(1960,'SOAP Processing Performance and Enhancement','2012','7','Web-based Services;XML/XSL/RDF;and protection.;integrity;performance evaluation;performance measures;security','The web services (WS) technology provides a comprehensive solution for representing, discovering, and invoking services in a wide variety of environments, including Service Oriented Architectures (SOA ) and grid computing systems. At the core of WS technology lie a number of XML-based standards, such as the Simple Object Access Protocol (SOAP), that have successfully ensured WS extensibility, transparency, and interoperability. Nonetheless, there is an increasing demand to enhance WS performance, which is severely impaired by XML\'s verbosity. SOAP communications produce considerable network traffic, making them unfit for distributed, loosely coupled, and heterogeneous computing environments such as the open Internet. Also, they introduce higher latency and processing delays than other technologies, like Java RMI and CORBA. WS research has recently focused on SOAP performance enhancement. Many approaches build on the observation that SOAP message exchange usually involves highly similar messages (those created by the same implementation usually have the same structure, and those sent from a server to multiple clients tend to show similarities in structure and content). Similarity evaluation and differential encoding have thus emerged as SOAP performance enhancement techniques. The main idea is to identify the common parts of SOAP messages, to be processed only once, avoiding a large amount of overhead. Other approaches investigate nontraditional processor architectures, including micro- and macrolevel parallel processing solutions, so as to further increase the processing rates of SOAP/XML software toolkits. This survey paper provides a concise, yet comprehensive review of the research efforts aimed at SOAP performance enhancement. A unified view of the problem is provided, covering almost every phase of SOAP processing, ranging over message parsing, serialization, deserialization, compression, multicasting, security evaluation, and data/instruction-level processin- .','IEEE Transactions on Services Computing',1,'J. M. Tekli; E. Damiani; R. Chbeir; G. Gianini','ieee/service oriented architecture security.csv','ieee',''),(1961,'Enhancing the OPEN Process Framework with service-oriented method fragments','2014','1',' Service-oriented software development OPEN Process Framework OPF repository Method fragment Situational method engineering','Abstract Service orientation is a promising paradigm that enables the engineering of large-scale distributed software systems using rigorous software development processes. The existing problem is that every service-oriented software development project often requires a customized development process that provides specific service-oriented software engineering tasks in support of requirements unique to that project. To resolve this problem and allow situational method engineering, we have defined a set of method fragments in support of the engineering of the project-specific service-oriented software development processes. We have derived the proposed method fragments from the recurring features of 11 prominent service-oriented software development methodologies using a systematic mining approach. We have added these new fragments to the repository of OPEN Process Framework to make them available to software engineers as reusable fragments using this well-known method repository.','Software & Systems Modeling',2,'Mahdi Fahmideh GholamiMohsen SharifiPooyan Jamshidi','springer/bpel security.csv','springer',''),(1962,'Trust-compensation-based access control model for web services','2012','','Access control; Feedback; Trust compensation; Web service','For most current Web Service access control methods, Web Service providers create a series of access control rules based on specified attributes. Only by meeting all the rules can a subject obtain the access to necessary operations and resources. However, because of the dynamic and open traits of Web Services, it is difficult for Web Service providers to work out an access control policy with moderate intensity and to realize a satisfactory balance between protecting the security of resources and maintaining the service reachable rate. To provide a solution to the above problem, this paper proposed a trust compensation access control method based on the Attribute-Based Access Control model. Our main contributions include a formal description of the access control method, a method to calculate the attribute trust degree based on time decay, and the trust compensation value of the attribute trust degree, as well as a new Service Oriented Architecture (SOA) architecture and its procedures based on a detailed trust compensation access control method.','',1,'Yan D., Sun J., Zhang L., Yang F.','scopus/service oriented architecture security.csv','scopus','\0'),(1963,'Model-Based QoS-Enabled Self-Healing Web Services','2008','2','Self-healingness;enhanced BPEL;ontology for quality','Failures during Web service execution may depend on a wide variety of causes, such as network faults, server crashes, or application-related errors, such as unavailability of a requested web service, errors in the orchestration of choreography of applications, missing data or parameters in an execution flow, or low quality of service (QoS). In this paper, we propose a healing architecture able to handle web service faults in a self- healing way, discussing infrastructural faults and web service and Web application faults. The self-healing architecture manages repair actions, such as substitution of a faulty service or duplication of overloaded services. Implemented prototypes involving QoS in coordinated web services are illustrated and discussed.','2008 19th International Workshop on Database and Expert Systems Applications',2,'O. Nabuco; R. B. Halima; K. Drira; M. G. Fugini; S. Modafferi; E. Mussi','ieee/bpel security.csv','ieee','\0'),(1964,'Towards a Two-Way Participatory Process','2012','0',' VGI PPGIS Government Social Media','Abstract In less than a decade, several millions of articles have been written in Wikipedia and several million roads have been traced out on Open Street Map (OSM). In the meantime, the authorities have still not been able to understand and use the power of crowd sourcing. In this paper, we present the design principles of a new Public Participation Geographic Information System (PPGIS). We aim to eliminate the typical limitations of previous unsuccessful platforms, that have mostly failed due to conceptual design issues. We argue that two fundamental changes must exist in new PPGIS platforms: there is a shift from hierarchies to increased equal rights platforms; improved communication, more transparency, and bi-directionality. The role of the authority in former platforms was really an authoritarian role: having all the power and only partly knowing and controlling the entire platform. This is completely different from the crowd source platforms we know to be successful. So, one fundamental change is to diminish hierarchies and prevent people from hiding themselves behind the institution. The second major conceptual design issue is related to transparency and communication. While former platforms use mechanisms to prevent citizens from seeing each other’s participation, we aim to enable people to see the participation of others. That’s a fundamental feature in social networks. We will also design it to be a two-way communication platform. If citizens are requested to participate, the administration must use the same platform to communicate with them. Not only to provide feedback, but also to publish useful information for the citizen. In this paper we describe how social media meets our design principles. We decide to implement our case study, the “Fix my Street” application, on top of a social engine, to take advantage of all social media features. Two necessary extensions to the social engine are briefly described, to capture the core logic of our application.','',1,'António SilvaJorge Gustavo Rocha','springer/service oriented architecture security.csv','springer','\0'),(1965,'Discovering Services','2013','0','','Abstract This tutorial paper presents an overview of existing approaches for service discovery and describes a service discovery framework that can support both static and dynamic service discovery. The framework and its extensions have been developed within the EU 6 th Framework projects SeCSE and Gredia and the EU 7 th Framework Network of Excellence S-Cube.','',2,'Andrea Zisman','springer/bpel security.csv','springer','\0'),(1966,'21st Australasian Conference on Information Systems, ACIS 2010','2010','','','The proceedings contain 105 papers. The special focus in this conference is on information systems. The topics include: user perceived requirements for a mobile accounting information system; exploring interorganisational systems (IOS) adoption in Bahrain; credibility-based social network recommendation; UTAUT application & cultural implication; e-Supply chain capability; vendor transition and the impact on in-flight projects; IBA performance and usability for mobile phones; assessing the quality and knowledge contribution of MIS quarterly; a social ecological model of ICT cooption; Business Process Management (BPM) education in Australia; past, present and future of m-banking research; enabling information security culture; perceived risk and risk relievers associated with online shopping; extent of adoption as opposed to adoption; Business Intelligence (BI) critical success factors; living systems, complexity & information systems science; return on IT investments in Two-Sided markets; co-creation in business service lifecycle management; ontological services using crowdsourcing; redesigning communication models; performance analysis of business process models with advanced constructs; cultural influences on IS service quality perceptions; process improvement based on external knowledge context; a preliminary taxonomy of crowdsourcing; effective coordination of vertical IS standardisation initiatives; towards an understanding of business intelligence; adding context to social tagging systems; controls for managing risks across different stages of ERP projects; modelling exploratory analysis processes for eResearch and design guidelines and architecture for BPMN models.','',2,'[No author name available]','scopus/bpmn security.csv','scopus','\0'),(1967,'CloudDSF – The Cloud Decision Support Framework for Application Migration','2014','1','','Abstract Migrating existing applications to cloud solutions is a multi-dimensional problem that spans beyond technical issues and into the financial, security and organizational domains. The existing works in the field form a picture of a maturing but still incomplete research area, requiring the introduction of comprehensive solutions for the migration of enterprise systems and applications to cloud solutions. As part of this effort, in this work we focus on supporting decision makers in evaluating the need for migration, and guiding them along the decisions that need to be made before the actual migration process. For this purpose we build on existing work to provide an elaborated decision support framework that is available as a Web application. We discuss the evaluation of the framework by experts, identify its deficiencies and outline our future steps. {keywordsApplication migration, decision support, decision visualization.','',1,'Vasilios AndrikopoulosAlexander DarsowDimka KarastoyanovaFrank Leymann','springer/service oriented architecture security.csv','springer','\0'),(1968,'A Design of Solution to Database Security Based on Multi-Layer Intrusion Tolerance','2012','1','Database security;Intrusion;tolerance','The traditional solution to database security has a drawback that it can not deal with malicious attacks by persons with legal identity, and that, it is in general not cost-effective to users who have different security requirements for it only offers fixed security level. By adopting multi-layer security model, namely \"user +OS +DBMS +transaction-level intrusion tolerance\", it integrates redundancy and variety technology; by adopting integral security strategy and server-oriented intrusion tolerance technology, it realizes the survivability and availability of database, and the confidentiality and integrity of sensitive data. In this way, it can effectively resist malicious attacks by persons with legal identity and reduce the cost of security.','Industrial Control and Electronics Engineering (ICICEE), 2012 International Conference on',1,'J. Lu; Y. Sun; Q. Shen; Y. Li','ieee/service oriented architecture security.csv','ieee','\0'),(1969,'Design and performance testing of an integrated detection and assessment perimeter system','2012','1','NAR;SEIWG;SOA;VMD;detection;machine learning;perimeter security;sensor fusion','Kontek Industries (Kannapolis, NC) and their subsidiary, Stonewater Control Systems (Kannapolis, NC), have entered into a cooperative research and development agreement with Sandia National Laboratories (Albuquerque, NM) to jointly develop and evaluate an integrated perimeter security solution, one that couples access delay with detection and assessment. This novel perimeter solution is designed to be sufficiently flexible for implementation at a wide range of facility types, from high security military or government installations to commercial power plants, to industrial facilities of various kinds. A prototype section of barrier has been produced and installed at the Sandia Exterior Intrusion Sensor Testing Facility in Albuquerque, NM. The prototype was implemented with a robust vehicle barrier and coupled with a variety of detection and assessment solutions to demonstrate both the effectiveness of such a solution, as well as the flexibility of the system. In this implementation, infrared sensors and fence disturbance sensors are coupled with a video motion detection sensor and ground sensors. The ability of the system to properly detect pedestrian or vehicle attempts to bypass, breach, or otherwise defeat the system will be characterized, as well as the Nuisance Alarm Rate.','Security Technology (ICCST), 2012 IEEE International Carnahan Conference on',1,'J. G. Dabling; J. O. McLaughlin; J. J. Andersen','ieee/soa security.csv','ieee','\0'),(1970,'Strategic business modeling: representation and reasoning','2014','14',' Business intelligence Business model Conceptual modeling languages Influence diagrams Goal Situation Key performance indicators Strategic planning','Abstract Business intelligence (BI) offers tremendous potential for business organizations to gain insights into their day-to-day operations, as well as longer term opportunities and threats. However, most of today’s BI tools are based on models that are too much data-oriented from the point of view of business decision makers. We propose an enterprise modeling approach to bridge the business-level understanding of the enterprise with its representations in databases and data warehouses. The business intelligence model (BIM) offers concepts familiar to business decision making—such as goals, strategies, processes, situations, influences, and indicators. Unlike many enterprise models which are meant to be used to derive, manage, or align with IT system implementations, BIM aims to help business users organize and make sense of the vast amounts of data about the enterprise and its external environment. In this paper, we present core BIM concepts, focusing especially on reasoning about situations, influences, and indicators. Such reasoning supports strategic analysis of business objectives in light of current enterprise data, allowing analysts to explore scenarios and find alternative strategies. We describe how goal reasoning techniques from conceptual modeling and requirements engineering have been applied to BIM. Techniques are also provided to support reasoning with indicators linked to business metrics, including cases where specifications of indicators are incomplete. Evaluation of the proposed modeling and reasoning framework includes an on-going prototype implementation, as well as case studies.','Software & Systems Modeling',2,'Jennifer HorkoffDaniele BaroneLei JiangEric YuDaniel AmyotAlex BorgidaJohn Mylopoulos','springer/bpmn security.csv','springer',''),(1971,'SAPDS: self-healing attribute-based privacy aware data sharing in cloud','2012','3',' Cloud storage Data privacy Remote storage','Abstract This paper addresses the issue of data governance in a cloud-based storage system. To achieve fine-grained access control over the outsourced data, we propose Self-Healing Attribute-based Privacy Aware Data Sharing in Cloud (SAPDS). The proposed system delegates the key distribution and management process to a cloud server without seeping out any confidential information. It facilitates data owner to restrain access of the user with whom data has been shared. User revocation is achieved by merely changing one attribute associated with the decryption policy, instead of modifying the entire access control policy. It enables authorized users to update their decryption keys followed by each user revocation, making it self-healing, without ever interacting with the data owner. Computation analysis of the proposed system shows that data owner can revoke n ′ users with the complexity of O ( n ′). Besides this, legitimate users can update their decryption keys with the complexity of O (1).','The Journal of Supercomputing',1,'Zeeshan PervezAsad Masood KhattakSungyoung LeeYoung-Koo Lee','springer/soa security.csv','springer','\0'),(1972,'SOA in practice – a study of governance aspects','2015','1',' Service-oriented architecture IT governance SOA governance Governance framework SOA aspect','Abstract The academic literature on Service Oriented Architecture (SOA) governance is based on theories and assumptions rather than practices, whereas the SOA governance frameworks proposed by Information Technology (IT) vendors are made to suit their products. Research shows that the problems with SOA governance in practice are among the major reasons of SOA failures. An extensive literature review that covers SOA, IT governance and SOA governance has been carried out part of this research. The purpose of this research paper is to increase our understanding of SOA governance and to show which SOA aspects organizations should consider when adopting a SOA governance framework. Based on a literature review, this study first proposes a list of SOA aspects to be considered when implementing SOA governance. By adopting an interpretive research methodology – based on interviews with professionals and practitioners in the fields of IT governance and SOA governance – this research paper examines the importance of these aspects. The results provide a theoretical conceptualization of SOA aspects that can be used to assess SOA governance practices and provide guidance to improve them.','Information Systems Frontiers',1,'George JoukhadarFethi Rabhi','springer/service oriented architecture security.csv','springer',''),(1973,'Innovation and evolution in integrated web application testing with TTCN-3','2014','1',' TTCN-3 Web applications Test specification language Unit test framework Service-oriented architecture Security Penetration testing','Abstract Over the last 10 years there has been continuous innovation and evolution in the technology of web applications. While originally designed as a telecom testing platform, TTCN-3 has proven to be a flexible and powerful platform for web application testing throughout this period. Major challenges to testing have been integration with unit test frameworks, service-oriented architecture, rich client interfaces, and security vulnerabilities. Through careful analysis and practical experience in industrial projects we have developed mechanisms to address each of these aspects of web application testing in TCN-3. These mechanisms are summarized here with examples drawn from our industrial experience to show how TTCN-3 provides significant advantages for testing web applications in comparison to other tools typically used in industry. We also present a significant extension to the model architecture for TTCN-3 which greatly facilitates web application testing that has been implemented by a major vendor and is now under consideration by the ETSI standards committee.','International Journal on Software Tools for Technology Transfer',1,'Bernard StepienLiam Peyton','springer/service oriented architecture security.csv','springer','\0'),(1974,'A Web services vulnerability testing approach based on combinatorial mutation and SOAP message mutation','2014','4',' Web services testing SOAP message mutation Combinatorial testing Mutation operator Vulnerability testing','Abstract The testing of Web services is an essential aspect of their quality assurance, however, because this testing often involves injecting only one mutant at one time, some vulnerability faults cannot be detected. To address this, the current paper presents a set of mutation operators that can be combined and defines the corresponding combinatorial strategies based on data perturbation and combinatorial testing. Based on this, multiple mutants can be injected at one time to help uncover interactive faults. To improve testing efficiency and effectiveness, a combinatorial testing approach focusing on Web service vulnerability is proposed: Firstly, initial test data are generated with perturbation techniques based on Web Services Description Language documents and Simple Object Access Protocol messages. Then, a combinatorial testing cases generation (CTCG) algorithm is used to generate the final combinatorial test data according to the proposed strategies. Furthermore, for some special Web services in which there is only one parameter or one method in service interface, a fuzzy mutation approach algorithm, as a complementary approach to CTCG, is also proposed. Finally, some testing experiments are conducted to verify the effectiveness of the proposed approaches in an integrated testing platform. The experiments show that proposed approaches are both feasible and effective: They can find more vulnerability faults than the traditional approaches.','Service Oriented Computing and Applications',1,'Jinfu ChenQing LiChengying MaoDave ToweyYongzhao ZhanHuanhuan Wang','springer/soa security.csv','springer','\0'),(1975,'WALK: A Modular Testbed for Crowd Evacuation Simulation','2014','0',' Crowd simulation Multi-agent system Pedestrian evacuation','Abstract When large numbers of people gather in public spaces such as stadiums, railway stations, shopping centers and concert halls there is an increased risk of mass emergence and disasters. Critical situations could possibly be prevented with appropriate tools to anticipate them. WALK is a modular designed crowd evacuation simulation system using a multi-agent approach. One major goal of WALK is to provide a framework for the simulation and comparison of different socio-psychological theories to gain essential insights about the emergence of crowd behavior. Moreover, the framework is supposed to allow the simulation of many diverse scenarios. In order to achieve these goals, the system has to offer a maximum level of flexibility by following software engineering best practices. In this paper, we will explain the customizable architecture of WALK, which enables scientists from different fields, e.g. psychology and computer science, to use it as a testbed for their studies.','',1,'Stefan MünchowIa EnukidzeStefan SarstedtThomas Thiel-Clemen','springer/service oriented architecture security.csv','springer','\0'),(1976,'More applicable environmental scanning systems leveraging “modern” information systems','2013','1',' Corporate management Balanced threat and opportunity management “Modern” information system technology Information systems (IS) design','Abstract With Ansoff’s article about weak signals as a flagship example, a substantial body of knowledge about environmental scanning systems exists. However, these concepts often go unused in practice. The 2008/2009 economic crisis provided a strong, ongoing impulse for redesigning such information systems (IS). This article develops six guidelines for the conceptual design of environmental scanning systems that are more applicable than those specified by previous research. We start with literature research, which reveals three gaps in existing approaches. Then we develop design guidelines to fill these gaps with the help of “modern” IS. To address the lack of sound requirements analysis, our first design principle proposes 360-degree environmental scanning systems for executives and suggests how to select the most important scanning areas. Three further findings cover weaknesses in the IS model perspective, focusing on more effective implications of weak signals. In terms of method, we propose incorporating scanning results more closely into executives’ decision-making processes. Applying the design guidelines at a raw materials and engineering company, we arrive at a prototype we call the “corporate radar.” It includes an IS-based tree with economic value added at risk on top. The resulting lessons learned help to evaluate our findings and the research method presented here, as well provide concrete starting points for future research.','Information Systems and e-Business Management',1,'Jörg H. MayerNeon SteineckeReiner QuickTimm Weitzel','springer/service oriented architecture security.csv','springer','\0'),(1977,'Management of Time Requirements in Component-Based Systems','2014','2',' Time requirements component-based system service selection monitoring error recovery','Abstract In component-based systems, a number of existing software components are combined in order to achieve business goals. Some of such goals may include system-level (global) timing requirements (GTR). It is essential to refine GTR into a set of component-level (local) timing requirements (LTRs) so that if a set of candidate components collectively meets them, then the corresponding GTR is also satisfied. Existing techniques for computing LTRs produce monolithic representations, that have dependencies over multiple components. Such representations do not allow for effective component selection and repair. In this paper, we propose an approach for building under-approximated LTRs ( u LTR) consisting of independent constraints over components. We then show how u LTR can be used to improve the design, monitoring and repair of component-based systems under time requirements. We also report on the implementation of this approach and its evaluation using real-world case studies in Web service composition. The results demonstrate its practical value and advantages over existing techniques.','',2,'Yi LiTian Huat TanMarsha Chechik','springer/bpel security.csv','springer',''),(1978,'Orchestration of secure Web Services within an E-government Interoperability Platform','2014','','e-government; esb; interoperability; saml; service orchestration; soa; web services; ws-bpel; ws-security; ws-trust','The Uruguayan e-government agency has made available an Interoperability Platform (InP) with the purpose of facilitating the implementation of e-government services. By leveraging the Web Services technology, public agencies have implemented various atomic services which are usually hosted at the agencies but have to be accessed through proxy services in the InP. Given that the implementation of e-government processes involves invoking multiple services, the mechanisms to implement service orchestrations are increasingly required. Although there are well-known solutions for orchestrating Web Services, their application within the InP presents challenges, in particular, regarding the integration with its Security System. This paper proposes alternatives for implementing orchestrations of secure Web Services within the InP. The proposal consists of a base architecture that can be configured to implement different solution alternatives, enabling its application in other similar scenarios. The proposal was completely prototyped which allowed evaluating some operational aspects of the solution. © 2014 IEEE.','',2,'Penna E., Steffen M., González L., Llambías G.','scopus/bpel security.csv','scopus',''),(1979,'Data Leak Aware Crowdsourcing in Social Network','2013','0',' Social network outsourcing human-computation privacy','Abstract Harnessing human computation for solving complex problems call spawns the issue of finding the unknown competitive group of solvers. In this paper, we propose an approach called Friendlysourcing to build up teams from social network answering a business call, all the while avoiding partial solution disclosure to competitive groups. The contributions of this paper include (i) a clustering based approach for discovering collaborative and competitive team in social network (ii) a Markov-chain based algorithm for discovering implicit interactions in the social network.','',1,'Iheb Ben AmorSalima BenbernouMourad OuziriMohamed NadifAthman Bouguettaya','springer/service oriented architecture security.csv','springer','\0'),(1980,'A domain-specific language for modelling security objectives in a business process models of SOA applications','2012','17','Business process modelling; Domain specific language; Model driven security; Security goals; Service oriented architecture','Business process modelling is very crucial for enterprises because it give an idea how the business would be operated in the real world and it is important for every stakeholder. SOA is one of the most popular architecture for building Web Information Systems. In current SOA system development practices, security is not defined at the early phases of software development and left on the developer. Properly configuring security requirements in SOA applications is quite difficult for developers because they are not security experts, furthermore SOA security is cross-domain and all required information are not available at downstream phases. The post-hoc, low-level integration of security has a negative impact on resulting SOA applications. Business process modelling is normally performed by the Business Process expert who is not a security expert. Furthermore current business process modelling languages like UML or BPMN do not support the specification of security requirements along the business process modelling. We have presented a DSL, to model the security requirements along the business process model. We are facilitating the Business Process expert to model the security in business process diagram. This security annotated business process model will facilitate the security expert in specifying concrete security implementation. As a proof of work the proposed DSL is applied to the modeling of a typical business process of \"on-line student information system\".','',2,'Saleem M.Q., Jaafar J.B., Hassan M.F.','scopus/bpmn security.csv','scopus',''),(1981,'Design and Evaluation of Collaborative Learning Management System (CLMS) Framework for Teaching Technical Subject','2014','0',' Learning Management System Computer-Supported Collaborative Learning Technical Subject Teaching Rasch Model Measurement Usability testing','Abstract This paper discuss the design and usability testing of a proposed Collaborative Learning Management System (CLMS) framework for technical subject teaching. The design and development of the system are based on ADDIE model. The web based learning platform was assembled using an Open Source Learning Management System (LMS). Sixty five student teachers in Bachelor of Teaching and Design Technology programme participated in the study. The results show that the system is usable to assist collaborative learning activities for teaching technical subject, support classroom learning, support communication with peers and instructors, increases motivation to discuss course work, coordinates learning materials and able to recall prior knowledge. Technical (Distributed Denial of Service attack (DDoS attack)), low graphic editing skill and netiqutte issues were encountered during the usability testing.','',1,'Siti Rosni Mohamad YusoffNor Azan Mat Zin','springer/service oriented architecture security.csv','springer','\0'),(1982,'Secure business process modelling of SOA applications using \"UML-SOA-Sec\"','2012','6','Business process modelling; Domain specific language; Model driven architecture; Security goals; Service oriented architecture; Unified modelling language','Nowadays enterprises are implementing their WIS through SOA using Web services. They are using MDA principles for design and development of WIS and using UML as a modelling language for business process modelling. Along with the increased connectivity in SOA applications, security risks rise exponentially. Security is not defined during the early phases of system development and left onto the developer. Properly configuring security requirements in SOA applications is quite difficult for developers because they are not security experts. Furthermore, SOA security is cross-domain and all required information is not available at downstream phases. Moreover, focus of the currently available security standards and protocols is technology; they do not provide high level of abstraction. Furthermore, a business process expert, who is the actual stakeholder of the business process model is unable to specify security objectives due to lake of security modelling elements in general purpose modelling languages like UML. As a result, he/she either ignores the security intents in his/her model or indicates them, in textual way. We are fostering the specification of security intents at high level of abstraction by presenting a security intents DSL containing the essential SOA security objective. It is a UML profile where security intents can be modeled as stereotypes on UML modelling elements during the business process modelling. Aim is to facilitate the business process expert in modelling the security requirements along with the business process modelling. This security annotated business process model will facilitate the security expert in specifying the concrete security implementation. As a proof of work vie apply our approach to a typical business process of \"on-line flight booking system\". © 2012 ICIC International.','',1,'Saleem M.Q., Jaafar J., Hassan M.F.','scopus/service oriented architecture security.csv','scopus','\0'),(1983,'Obtaining secure BPEL from secure business process specified with BPMN','2014','','BPEL; Business Process; Secure Business Process','Business Processes are an important resource for performance on business competitiveness. The Business Process descriptions made; with BPMN (Business Process Modelling Notation), the de facto standard in the market, can be translated into execution languages; such as BPEL (Business Process Execution Language). Originally, BPMN specification does not include the representation of security aspects. However, there are proposals that incorporate security specifications of Business Processes using BPMN. Among these we have considered for describing a SBP (Secure Business Process), incorporating the business analyst\'s perspective in relation to security. However, until now, there are no translations of the SBP to execution languages. In this paper we propose a translation of the security requirements, including access control, defined in a SBP to secure Web services using BPEL language. © 2003-2012 IEEE.','',2,'Márquez G., Rodríguez A., Medina E.F.','scopus/bpel security.csv','scopus',''),(1984,'Secure android application in SOA-based mobile government and mobile banking systems','2014','','Android based mobile phone application; M-banking; M-government; SAML; SOAP protocol; Timestamp; Web Service; WS-Security; XKMS protocol; XML-Security','In this paper, we consider an overview of a possible secure model for m-government and m-banking systems. The proposed model is based on secure mobile application and SOA-Based central platform. The model additionally consists of external entities, such as: PKI, XKMS, Authentication Server and Time Stamping server. The proposed model could be used in different local and/or cross-border m-government scenarios. Besides, specifics of m-banking systems based on the same or similar secure model are also presented. As a possible example of described secure mobile application we considered and experimentally evaluated a secure Android based Web services application. © Springer International Publishing Switzerland 2014.','',1,'Marković M., Đjorđjević G.','scopus/soa security.csv','scopus','\0'),(1985,'Mechanism and architecture for the migration of service implementation during traffic peaks','2015','1',' Service Migration Load balancing Monitoring QoS Traffic peaks Hybrid cloud','Abstract Service-Oriented Architecture has been widely applied in enterprise computing systems for software-enabled services. However, cost efficiency and scalability requirements have moved the execution environment towards the cloud domain. Hybrid approaches have emerged, which utilise both enterprise and cloud domains in order to balance between the cost of service execution and the provided Quality of Service (QoS) for end users. This paper presents a migration, monitoring and load-balancing mechanism and architecture for scaling services between the enterprise and cloud domains during traffic peaks. The argued benefit of the proposal is the automation of the service-migration process and improvement of the QoS. A prototype system is presented as a proof of the conceptual architecture. The performance results in a hybrid cloud environment indicate that service implementation can be migrated and load can be balanced within 200 ms. Furthermore, the mechanism can improve the QoS for end users during traffic peaks. Our approach differs from existing proposals by focusing on the migration of service implementation, instead of the migration of service as part of a virtual machine.','Service Oriented Computing and Applications',1,'Pekka PääkkönenDaniel Pakkala','springer/service oriented architecture security.csv','springer',''),(1986,'Strong Non-leak Guarantees for Workflow Models','2011','9','business process management, information flow analysis, workflow certification','Proceedings of the 2011 ACM Symposium on Applied Computing','',2,'Rafael Accorsi and Claus Wonnemann','acm/bpel security.csv','acm','\0'),(1987,'Context Aware Computing for Ambient Assisted Living','2016','0',' Internet of Things Context aware computing Ambient computing Assistive technologies eHealth Smart home SOA','Abstract With the prevalence of wireless technologies, cloud computing and the rapid growth of deployed smart sensors in the past few years, we live in an increasingly interconnected world. These technologies have fostered the dissemination of the Internet of Things (IoT). They form the foundation for smart homes and smart cities. Context aware devices and ambient computing techniques have expanded the application of the IoT into new areas such as assisted living, eHealth, and elderly care. However, there are challenges to analyze the large volumes of sensor and context data generated by these devices. Also, there are serious security and privacy concerns especially in the area of health care that need to be addressed. This paper gives an overview of the state-of-the-art technologies for ambient assisted living (AAL) and proposes an architecture based on SOA.','',1,'Peter WlodarczakJeffrey SoarMustafa Ally','springer/service oriented architecture security.csv','springer',''),(1988,'Artifact-Centric Modeling Using BPMN','2012','0','','Abstract BPMN offers a rich pool of language constructs to model different aspects of choreographies, interorganizational business processes and service compositions. With collaborations and choreographies, BPMN enables the modeler concentrate on the control flow and the message flow, respectively. At the same time, data flow is only treated as a subordinate extension. In contrast, recent artifact-centric approaches model processes from the point of view of the data objects that are manipulated during the process. This paper investigates to what extend BPMN is suitable to model artifact-centric processes and which extensions are required to comfortably support this modeling approach.','',2,'Niels LohmannMartin Nyolt','springer/bpel security.csv','springer','\0'),(1989,'Service Lifecycle Management in Distributed JBI Environment','2012','1',' Service Lifecycle Java Business Integration Register Repository','Abstract Enterprise Service Bus is widely-used, flexible, SOA-based infrastructure. Lifecycle management is a necessity for component reusing, maintenance, monitoring, as well as service governance. But existing approaches of service lifecycle model and management tools are not suitable for ESB environment, especially for distributed ESB environment. In this paper, we present a lifecycle model for ESB services with the consideration of both JBI components and service assemblies. A web based tool is also introduced to assist administrators to manage and monitor each phase of ESB services lifecycle.','',1,'Ben WangXingshe ZhouGang YangYunfeng Lou','springer/service oriented architecture security.csv','springer','\0'),(1990,'Incorporating Big Data Analytics into Enterprise Information Systems','2015','0',' Big data Big data analytics Enterprise information systems Business intelligence Intelligent agents','Abstract Big data analytics has received widespread attention for enterprise development and enterprise information systems (EIS). However, how can it enhance the development of EIS? How can it be incorporated into EIS? Both are still big issues. This paper addresses these two issues by proposing an ontology of a big data analytics. This paper also examines incorporation of big data analytics into EIS through proposing BABES: a model for incorporating big data analytics services into EIS. The proposed approach in this paper might facilitate the research and development of EIS, business analytics, big data analytics, and business intelligence as well as intelligent agents.','',1,'Zhaohao SunFrancisca PambelFangwei Wang','springer/service oriented architecture security.csv','springer',''),(1991,'Provisioning Quality of Service of Wireless Telemedicine for E-Health Services: A Review','2014','7',' Quality of service Wireless telemedicine E-health services IEEE 802.11','Abstract In general, on-line medical consultation reduces time required for medical consultation and induces improvement in the quality and efficiency of healthcare services. The scope of study includes several key features of present day e-health applications such as X-ray, ECG, video, diagnosis images and other common applications. Moreover, the provision of Quality of Service (QoS) in terms of specific medical care services in e-health, the priority set for e-health services and the support of QoS in wireless networks and techniques or methods aimed at IEEE 802.11 to secure the provision of QoS has been assessed as well. In e-health, medical services in remote places which include rustic healthcare centres, ships, ambulances and home healthcare services can be supported through the applications of e-health services such as medical databases, electronic health data and the transferring of text, video, sound and images. Given this, a proposal has been made for a multiple service wireless networking with multiple sets of priorities. In relation to the terms of an acceptable QoS level by the customers of e-health services, prioritization is an important criterion in a multi-traffic network. The requirement for QoS in medical networking of wireless broadband has paved the way for bandwidth prerequisites and the live transmission or real-time medical applications. The proposed wireless network is capable of handling medical applications for both normal and life-threatening conditions as characterized by the level of emergencies. In addition, the allocation of bandwidth and the system that controls admittance designed based on IEEE 802.16 especially for e-health services or wireless telemedicine will be discussed in this study. It has been concluded that under busy traffic conditions, the proposed architecture can used as a feasible and reliable infrastructure network for telemedicine.','Wireless Personal Communications',1,'Mustafa Almahdi AlgaetZul Azri Bin Muhamad NohAbdul Samad ShibghatullahAli Ahmad MiladAouache Mustapha','springer/service oriented architecture security.csv','springer','\0'),(1992,'2012 10th Annual International Conference on Privacy, Security and Trust, PST 2012','2012','','','The proceedings contain 41 papers. The topics discussed include: single-party private web search; an implementation of secure two-party computation for smartphones with application to privacy-preserving interest-cast; towards privacy-preserving access control with hidden policies, hidden credentials and hidden decisions; exploring re-identification risks in public domains; privacy-preserving resource evaluation in social networks; limiting data collection in application forms: a real-case application of a founding privacy principle; a secure data deduplication framework for cloud environments; an integrated key management and secure routing framework for mobile ad-hoc networks; automated detection of session management vulnerabilities in web applications; towards a BPEL model-driven approach for web services security; out of sight, out of mind: effects of displaying access-control information near the item it controls; and a provenance-based access control model.','',2,'[No author name available]','scopus/bpel security.csv','scopus','\0'),(1993,'Design and Implementation of a Unified Network Information Service','2013','2','networks;web services','A holistic view of the network is key to the successful operation of many distributed, cloud-based, and service-oriented computing architectures. Supporting network-aware applications and application-driven networks requires a detailed representation of network resources, including multi-layer topologies, associated measurement data, and in-the-network service location and availability information. The rapid development of increasingly configurable and dynamic networks has increased the demand for information services that can accurately and efficiently store and expose the state of the network. This work introduces our Unified Network Information Service (UNIS), designed to represent physical and virtual networks and services. We describe the UNIS network data model and its RESTful interface, which provide a common interface to topology, service, and measurement resources. In addition, we describe the security mechanisms built into the UNIS framework. Our analysis of the UNIS implementation shows significant performance and scalability gains over an existing and widely-deployed topology, service registration, and lookup information service architecture.','Services Computing (SCC), 2013 IEEE International Conference on',1,'A. El-Hassany; E. Kissel; D. Gunter; M. Swany','ieee/service oriented architecture security.csv','ieee','\0'),(1994,'A novel autonomic design pattern for invocation of services','2011','6','Autonomic Computing; Design Patterns; JXTA; Peer-to-peer computing; WebService','According to a definition rolled out from the Workshop on Adaptable and Adaptive Software [1] \"A program is called adaptive if it changes its behaviour automatically according to its context.\"Within this context, we restrict our research domain to the automatic runtime adaptation of existing behaviours. In this paper, we propose an Autonomic Design Pattern which is an amalgamation of chain of responsibility and visitor patterns that can be used to analyze or design self-adaptive systems.We harvested this pattern and applied it on unstructured peer to peer networks and Webservices environments. Representation of an operation to be performed on the elements of an object structure is taken from the Visitor pattern and to reduce the coupling between the sender of a request to its receiver by giving more than one object a chance to handle the request is adopted from Chain of responsibility. © 2011 Springer-Verlag.','',1,'Prasad Vasireddy V.S., Mannava V., Ramesh T.','scopus/webservice security.csv','scopus','\0'),(1995,'A Test-based Security Certification Scheme for Web Services','2013','5','Model-based testing, security certification, service-oriented architecture, symbolic transition systems, web services','The Service-Oriented Architecture (SOA) paradigm is giving rise to a new generation of applications built by dynamically composing loosely coupled autonomous services. Clients (i.e., software agents acting on behalf of human users or service providers) implementing such complex applications typically search and integrate services on the basis of their functional requirements and of their trust in the service suppliers. A major issue in this scenario relates to the definition of an assurance technique allowing clients to select services on the basis of their nonfunctional requirements and increasing their confidence that the selected services will satisfy such requirements. In this article, we first present an assurance solution that focuses on security and supports a test-based security certification scheme for Web services. The certification scheme is driven by the security properties to be certified and relies upon a formal definition of the service model. The evidence supporting a certified property is computed using a model-based testing approach that, starting from the service model, automatically generates the test cases to be used in the service certification. We also define a set of indexes and metrics that evaluate the assurance level and the quality of the certification process. Finally, we present our evaluation toolkit and experimental results obtained applying our certification solution to a financial service implementing the Interactive Financial eXchange (IFX) standard.','',1,'Marco Anisetti and Claudio A. Ardagna and Ernesto Damiani and Francesco Saonara','acm/service oriented architecture security.csv','acm',''),(1996,'Collaborative recommendations with content-based filters for cultural activities via a scalable event distribution platform','2012','4',' Recommender system Personalization Event modeling Distributing event information','Abstract Nowadays, most people have limited leisure time and the offer of (cultural) activities to spend this time is enormous. Consequently, picking the most appropriate events becomes increasingly difficult for end-users. This complexity of choice reinforces the necessity of filtering systems that assist users in finding and selecting relevant events. Whereas traditional filtering tools enable e.g. the use of keyword-based or filtered searches, innovative recommender systems draw on user ratings, preferences, and metadata describing the events. Existing collaborative recommendation techniques, developed for suggesting web-shop products or audio-visual content, have difficulties with sparse rating data and can not cope at all with event-specific restrictions like availability, time, and location. Moreover, aggregating, enriching, and distributing these events are additional requisites for an optimal communication channel. In this paper, we propose a highly-scalable event recommendation platform which considers event-specific characteristics. Personal suggestions are generated by an advanced collaborative filtering algorithm, which is more robust on sparse data by extending user profiles with presumable future consumptions. The events, which are described using an RDF/OWL representation of the EventsML-G2 standard, are categorized and enriched via smart indexing and open linked data sets. This metadata model enables additional content-based filters, which consider event-specific characteristics, on the recommendation list. The integration of these different functionalities is realized by a scalable and extendable bus architecture. Finally, focus group conversations were organized with external experts, cultural mediators, and potential end-users to evaluate the event distribution platform and investigate the possible added value of recommendations for cultural participation.','Multimedia Tools and Applications',2,'Toon De PessemierSam CoppensKristof GeebelenChris VleugelsStijn BannierErik MannensKris VanheckeLuc Martens','springer/bpel security.csv','springer','\0'),(1997,'Autonomic intelligent cyber-sensor to support industrial control network awareness','2014','4','Autonomic computing; control systems; industrial ecosystems; Network security; service-oriented architecture','The proliferation of digital devices in a networked industrial ecosystem, along with an exponential growth in complexity and scope, has resulted in elevated security concerns and management complexity issues. This paper describes a novel architecture utilizing concepts of autonomic computing and a simple object access protocol (SOAP)-based interface to metadata access points (IF-MAP) external communication layer to create a network security sensor. This approach simplifies integration of legacy software and supports a secure, scalable, and self-managed framework. The contribution of this paper is twofold: 1) A flexible two-level communication layer based on autonomic computing and service oriented architecture is detailed and 2) three complementary modules that dynamically reconfigure in response to a changing environment are presented. One module utilizes clustering and fuzzy logic to monitor traffic for abnormal behavior. Another module passively monitors network traffic and deploys deceptive virtual network hosts. These components of the sensor system were implemented in C++ and PERL and utilize a common internal D-Bus communication mechanism. A proof of concept prototype was deployed on a mixed-use test network showing the possible real-world applicability. In testing, 45 of the 46 network attached devices were recognized and 10 of the 12 emulated devices were created with specific operating system and port configurations. In addition, the anomaly detection algorithm achieved a 99.9% recognition rate. All output from the modules were correctly distributed using the common communication structure. © 2012 IEEE.','',1,'Vollmer T., Manic M., Linda O.','scopus/service oriented architecture security.csv','scopus','\0'),(1998,'A K-BPEL Semantics','2015','0','BPEL, Business Process, K-Framework, Maude','Proceedings of the International Conference on Intelligent Information Processing, Security and Advanced Communication','',2,'Khadhir Bekki and Hafida Belbachir and Wafaa Kasri','acm/bpel security.csv','acm',''),(1999,'Enhanced hospital information system by cloud computing: SHEFA\'A','2014','','Cloud computing; Healthcare; Hl7; Patient medical records','Information Technology is an important part of the healthcare environment. Accuracy and integrity of the information in any hospital system is necessary. Then, this information has to be up-to-date as well to achieve continuous quality improvement in any organization and particularly in a complex area like healthcare. Therefore, diverse information systems must be integrated across the healthcare enterprise. The main objective of this research is to develop a framework for the exchange of patients records located in different hospitals in Saudi Arabia, adding insurance and prescriptions information along with the patient\'s record to facilitate the insurance process and to automate the medicine prescription process that is currently manual in most hospitals. The proposed framework aims to improve the regular ways of obtaining patients medical records separated in each hospital. For instance, if a particular patient has different medical records in different hospitals visited by that patient, our architecture focuses on the method by which data should be searched and retrieved efficiently from a database on the cloud from different hospitals by preprocessing the data in current hospital\'s and saving them in the database that resides on the cloud. Our system design is based on cloud computing service oriented architecture. Some of the information included in these medical records is: medical history, prescribed medications and allergies, immunization status, laboratory and test results, radiology images, personal stats like age and weight, diagnoses, order tests and appointments. All of these records are identified by the national ID of the patient. these systems will be utilized by web services asp.net based framework, the doctor will use his/her ID and password to enter the system for security and then enter the patient\'s ID to send a request for that patient\'s record that will be sent back to the doctor, the record will be up-to-date since the last visit of the patient to any hospital in Saudi Arabia. The main aim of this study is to provide a data exchange model of patients records, it is used to decrease the time and cost of patients, and help doctors to get up-to-date and accurate information of patients from the records from any hospital in Saudi Arabia. By using e-Patient medical records and Mirth Connect program which use HEALTH LEVEL 7 (HL7) protocol. HL7 protocol is a standard information format of healthcare for data exchange. We provide a single, complete automated patient medical record to give a better patient care that avoids medical mistakes due to lack of information and unavailability of medical records. © Springer International Publishing Switzerland 2014.','',1,'Ibrahim L.F., Sadek S., Hakeem S., Al-Sabban L., Ibrahim Mohammed Ahmed A., Hassan Al-Sayed A.','scopus/service oriented architecture security.csv','scopus','\0'),(2000,'Towards a TTCN-3 Test System for Runtime Testing of Adaptable and Distributed Systems','2012','4','','Abstract Today, adaptable and distributed component based systems need to be checked and validated in order to ensure their correctness and trustworthiness when dynamic changes occur. Traditional testing techniques can not be used since they are applied during the development phase. Therefore, runtime testing is emerging as a novel solution for the validation of highly dynamic systems at runtime. In this paper, we illustrate how a platform independent test system based on the TTCN-3 standard can be used to execute runtime tests. The proposed test system is called TT4RT: TTCN-3 test system for Runtime Testing. A case study in the telemedicine field is used as an illustration to show the relevance of the proposed test system.','',1,'Mariam LahamiFairouz FakhfakhMoez KrichenMohamed Jmaiel','springer/service oriented architecture security.csv','springer','\0'),(2001,'Efficient modular multiplication for programmable smart-cards','2014','0',' Cryptography Modular arithmetic Multiplication .NET RSA Smart-cards','Abstract In this paper, we deal with efficient modular multiplication algorithms working with large integers on programmable smart-cards. The current smart-cards don’t contain a library supporting modular arithmetic operations, which is needed in advanced cryptography schemes. Fortunately, the smart-cards contain a crypto co-processor providing a cryptographic support that can help with the acceleration of modular multiplication. The performance of three classical methods for modular multiplication with large integers and one method using a crypto co-processor is analyzed in this paper. The results of our implementation of modular arithmetic operations with the accelerated multiplication can be useful for the construction of advanced cryptographic schemes.','Telecommunication Systems',1,'Lukas MalinaJan Hajny','springer/service oriented architecture security.csv','springer','\0'),(2002,'Security framework for RESTful mobile cloud computing Web services','2015','0',' Mobile cloud Web services RESTful-based mobile Web services Secure mobile cloud Web service framework','Abstract Providing Web services from the mobile cloud is a current research topic. The mobile cloud provides the computing resources and infrastructure to support the seamless provision of Web services in a lightweight manner. Security has become a major concern with the emergence of mobile cloud Web services. In this paper, we investigate the security aspects of a system for complex mobile Web service provisioning. We characterize the security requirements of the individual components and present a security framework to provide authentication and confidentiality between clients and mobile hosts. Our solution is based on the use of existing security protocols between clients and the mobile hosts as well as a key management protocol between the individual mobile hosts implementing an out-of-band key exchange that is simple in practice, flexible and secure. We examine the performance of this approach by evaluating a prototype implementation of our security framework.','Journal of Ambient Intelligence and Humanized Computing',1,'Feda AlShahwanMaha FaisalGodwin Ansa','springer/soa security.csv','springer',''),(2003,'QoS management for dependable sensory environments','2015','2',' Quality of service Service component architecture Data distribution service Fault tolerance Safety','Abstract Sensory environments for healthcare are commonplace nowadays. A patient monitoring system in such an environment deals with sensor data capture, transmission and processing in order to provide on-the-spot support for monitoring the vulnerable and critical patients. A fault in such a system can be hazardous on the health of the patient. Therefore, such a system must be dependable and ensure reliability, fault-tolerance, safety and other critical aspects, in order to deploy it in real scenario. Also, the management of the infrastructure resources must be efficient and the eventual system reconfiguration must be reliably performed. This paper encounters some of these issues and proposes a component platform with specific support for several QoS aspects, namely fault tolerance, safe inter-component communication and resource management. The platform adopts the Service Component Architecture (SCA) model and defines a Data Distribution Service (DDS) binding, which provides the fault tolerance and the required safety-ensuring techniques and measures, as defined in the IEC 61784-3-3 standard. As a proof of concept, a distributed home care application that improves the medical assistance in case of fire detection is presented.','Multimedia Tools and Applications',2,'Aitor AgirreJorge ParraAintzane ArmentiaAhmed GhoneimElisabet EstévezMarga Marcos','springer/bpel security.csv','springer',''),(2004,'Simplifying Maintenance by Application of Architectural Services','2014','0',' service-oriented architecture software confederations maintenance simplification maintenance effort reduction','Abstract Software maintenance is the most difficult and extremely expensive activity of lifecycle of software systems. We show that maintenance cost estimation depends on many factors that are not taken into account by widely used maintenance cost estimation methods. The factors include variants of systems architecture, especially service- and component-oriented ones, variants of software development processes, communication means, and the software artifact maintenance duration and history. We present an analysis of reasons and sources of maintenance effort needs. We show that the maintenance issues and effort can be substantially reduced in systems having a special form of service-oriented architecture — software confederations.','',1,'Jaroslav KrálMichal Žemlička','springer/service oriented architecture security.csv','springer','\0'),(2005,'Towards an Architecture for Future Internet Applications','2013','1',' Internet Architecture Multi-Device Applications Device-Independent Applications Cross-Platform Applications UI Adaptation Internet of Things Internet of Services Internet Middleware','Abstract A growing number of connected devices and solutions, related to the concept of Internet of Things, makes our environment increasingly smart and capable. However, existing application development processes and tools, designed for single device applications, do not allow to fully address this opportunity and to efficiently create applications that employ multiple devices and use the context information provided by ubiquitous sensors. To address this situation we propose a concept of Device Independent Architecture, which can be used to separate applications from devices and to provide a uniform platform for building smart multi-device applications. The main ideas of the Device Independent Architecture is to move processing from end-devices to a server side (backend) and to introduce a middleware layer that separates applications from devices and supports development of multi-device applications.','',1,'Jacek Chmielewski','springer/service oriented architecture security.csv','springer','\0'),(2006,'IF-Net: A Meta-Model for Security-Oriented Process Specification','2013','0','','Abstract In this paper we propose a new Petri net-based meta-model for the specification of workflows. While existing approaches for workflow modeling typically address the consistency of process models, there is no de-facto standard for models which also comprise security-related aspects. Besides basic workflow properties such as executing subjects and transition guards, the proposed IF-Net approach allows net parts to be annotated with security levels in a way that information flow control mechanisms can be applied. By introducing distinguishable token types, IF-Net allows the modeling of both, the control- and data-flow of a workflow in an intuitive way. Altogether IF-Net allows the specification of workflows in a detailed way and provides a basis for the formal verification of security properties on these specifications.','',2,'Thomas StockerFrank Böhr','springer/bpmn security.csv','springer','\0'),(2007,'Finding Collective Decisions: Change Negotiation in Collaborative Business Processes','2015','0','','Abstract Change propagation has been identified as major concern for process collaborations during the last years. Although changes might become necessary for various reasons, they can often not be kept local, i.e., at one partner’s side, but must be partly or entirely propagated to one or several other partners. Due to the autonomy of partners in a collaboration, change effects cannot be imposed on the partners, but must be agreed upon in a consensual way. In our model of this collective decision process, we assume that each partner that becomes involved in a negotiation has different alternatives on how a change may be realized, and evaluates these alternatives according to his or her individual costs and benefits (utilities). This paper presents models from group decision making that can be applied for handling change negotiations in process collaborations in an efficient and fair way. The theoretical models are evaluated based on a proof-of-concept prototype that integrates an existing implementation for change propagation in process collaborations with change alternatives, utility functions, and group decision models. Based on simulating a realistic setting, the validity of the approach is shown. Our prototype supports the selection of change alternatives for each partner during negotiation that depending on the group decision model used, provides solutions emphasizing efficiency and/or fairness.','',2,'Walid FdhilaConrad IndionoStefanie Rinderle-MaRudolf Vetschera','springer/bpel security.csv','springer',''),(2008,'Service fault tolerance for highly reliable service-oriented systems: an overview','2015','1',' fault tolerance software reliability Web service SOA 关键词 容错 软件可靠性 网络服务 面向服务架构','Abstract Service-oriented systems are widely-employed in e-business, e-government, finance, management systems, and so on. Service fault tolerance is one of the most important techniques for building highly reliable service-oriented systems. In this paper, we provide an overview of various service fault tolerance techniques, including sections on fault tolerance strategy design, fault tolerance strategy selection, and Byzantine fault tolerance. In the first section, we introduce the design of static and dynamic fault tolerance strategies, as well as the major problems when designing fault tolerance strategies. After that, based on various fault tolerance strategies, in the second section, we identify significant components from a complex service-oriented system, and investigate algorithms for optimal fault tolerance strategy selection. Finally, in the third section, we discuss a special type of service fault tolerance techniques, i.e., the Byzantine fault tolerance.','Science China Information Sciences',1,'ZiBin ZhengMichael Rung Tsong LyuHuaiMin Wang','springer/soa security.csv','springer',''),(2009,'Towards a Holistic Information Security Governance Framework for SOA','2012','1','27001;27002;ISMS;SABSA;SOA;governance','Service Oriented Architecture (SOA) is a design paradigm that enables applications to be built from business processes to support enterprise architecture. This architecture introduces information security challenges that are not comprehensively addressed by current best-practices. This paper evaluates if an Information Security Management System (ISMS), defined by the international standard ISO/IEC 27001 and 27002 can be used to comprehensively support Information Security governance for SOA. As SOA governance, a separate and distinct governance framework, also addresses information security to a certain extent, managers are faced the difficult task of deciding whether their SOA sufficiently protected by the different frameworks. The conclusion is that information security for SOA needs to be addressed more holistically, following an Enterprise Information Security Architecture (EISA) approach where Enterprise Architecture (EA) is concerned with the design of the overall architectural vision of an organization. The framework chosen for this purpose is SABSA, a well-known enterprise security architecture. Using the example of access control to highlight challenges, it becomes clear that Information Security governance for SOA can benefit from an approach such as SABSA.','Availability, Reliability and Security (ARES), 2012 Seventh International Conference on',1,'M. Coetzee','ieee/service oriented architecture security.csv','ieee','\0'),(2010,'A Framework for Cryptography Based Accountability and Service Invocation Control for Service Composition in a Multicloud Architecture','2015','','Cloud Accountability;cloud trust;nonrepudiation;proof of violation;security','In this paper we address how to achieve cryptography based accountability and service invocation control in a multicloud architecture. The detection and prevention of failures for a composed service is complicated because service composition spans multiple service providers from different and independent clouds for inter-cloud collaborations. Our system supports strong accountability in which any failure or misbehavior can always be identified and associated with responsible (or guilty) entity(s) because cryptographic proofs are collected during dynamic service composing. These proofs can also be applied to service invocation control. Compared with previous work, the proposed framework does not rely on any on-line or in-line trust third party. Implementation and experimental results are presented that demonstrate the feasibility of the proposed scheme.','Trustcom/BigDataSE/ISPA, 2015 IEEE',1,'G. H. Hwang; K. Y. Huang; Y. C. Hsiao','ieee/service oriented architecture security.csv','ieee',''),(2011,'Modeling, run-time optimization and execution of distributed workflow applications in the JEE-based BeesyCluster environment','2013','11',' Workflow execution Just-in-time service selection Workflow management environment Workflow applications Scientific and business workflows','Abstract The paper presents a complete solution for modeling scientific and business workflow applications, static and just-in-time QoS selection of services and workflow execution in a real environment. The workflow application is modeled as an acyclic directed graph where nodes denote tasks and edges denote dependencies between the tasks. The BeesyCluster middleware is used to allow providers to publish services from sequential or parallel applications, from their servers or clusters. Optimization algorithms are proposed to select a capable service for each task so that a global criterion is optimized such as a product of workflow execution time and cost, a linear combination of those or minimization of the time with a cost constraint. The paper presents implementation details of the multithreaded workflow execution engine implemented in JEE. Several tests were performed for three different optimization goals for two business and scientific workflow applications. Finally, the overhead of the solution is presented.','The Journal of Supercomputing',2,'Pawel Czarnul','springer/bpel security.csv','springer',''),(2012,'A secure cloud-based payment model for m-Commerce','2013','','Cloud security; Mobile payment; Web services','Instead of paying by cash, check, or credit cards, consumers can also use their mobile devices to pay for a wide range of services and digital or material goods. However, consumers\' security concerns are a major barrier to broad adoption and use of mobile payments. In this paper, we design a secure operational model for mobile payment in which access control is based on service-oriented architecture. A consumer uses his/her mobile device to get authorization from cloud and generate a QR code as the payment certificate. 1 © 2013 IEEE.','',1,'Chang T.-K.','scopus/service oriented architecture security.csv','scopus','\0'),(2013,'Indexing Process Model Flow Dependencies for Similarity Search','2012','0',' semantic process models process similarity search process indexing','Abstract The importance gained by process models in modern information systems leaded to the proliferation of process model repositories. Retrieving process models within such repositories is a critical functionality. Recent works propose metrics that rank process models of a repository according to their similarity to a given query. However, these methods sequentially browse all the processes of the repository and compare each one against the query, which is computationally expensive. This paper presents a technique for quickly retrieving process models similar to a given query that relies on an index built on behavioral characteristics of process models.','',2,'Ahmed GaterDaniela GrigoriMokrane Bouzeghoub','springer/bpel security.csv','springer','\0'),(2014,'Domain-Specific Multi-modeling of Security Concerns in Service-Oriented Architectures','2012','0','','Abstract As a common reference for many in-development standards and execution frameworks, special attention is being paid to Service-Oriented Architectures. SOAs modeling, however, is an area in which a consensus has not being achieved. Currently, standardization organizations are defining proposals to offer a solution to this problem. Nevertheless, until very recently, non-functional aspects of services have not been considered for standardization processes. In particular, there exists a lack of a design solution that permits an independent development of the functional and non-functional concerns of SOAs, allowing that each concern be addressed in a convenient manner in early stages of the development, in a way that could guarantee the quality of this type of systems. This paper, leveraging on previous work, presents an approach to integrate security-related non-functional aspects (such as confidentiality, integrity, and access control) in the development of services.','',1,'Juan Pedro Silva GallinoMiguel de MiguelJavier F. BrionesAlejandro Alonso','springer/service oriented architecture security.csv','springer','\0'),(2015,'Dynamic Service Contract Enforcement in Service-Oriented Networks','2013','3','Service-oriented networks;appliance cluster;contract enforcement;credit-based algorithm;middleware appliances;service traffic shaping;web services','In recent years, service-oriented architectures (SOA) have emerged as the main solution for the integration of legacy systems with new technologies in the enterprise world. A service is usually governed by a client service contract (CSC) that specifies, among other requirements, the rate at which a service should be accessed, and limits it to no more than a number of service requests during an observation period. Several approaches, using both static and dynamic credit-based strategies, have been developed to enforce the rate specified in the CSC. Existing approaches have problems related to starvation, approximations used in calculations, and rapid credit consumption under certain conditions. In this paper, we propose and validate DoWSS, a doubly weighted algorithm for service traffic shaping. We show via simulation that DoWSS possesses several advantages: It eliminates the approximation issues, prevents starvation, and contains the rapid credit consumption issue in existing credit-based approaches.','IEEE Transactions on Services Computing',1,'Y. Jarma; K. Boloor; M. D. de Amorim; Y. Viniotis; R. D. Callaway','ieee/service oriented architecture security.csv','ieee','\0'),(2016,'SAMI: Service-based arbitrated multi-tier infrastructure for Mobile Cloud Computing','2012','21','','Mobile Cloud Computing (MCC) is the state-of-the-art mobile computing technology aims to alleviate resource poverty of mobile devices. Recently, several approaches and techniques have been proposed to augment mobile devices by leveraging cloud computing. However, long-WAN latency and trust are still two major issues in MCC that hinder its vision. In this paper, we analyze MCC and discuss its issues. We leverage Service Oriented Architecture (SOA) to propose an arbitrated multi-tier infrastructure model named SAMI for MCC. Our architecture consists of three major layers, namely SOA, arbitrator, and infrastructure. The main strength of this architecture is in its multi-tier infrastructure layer which leverages infrastructures from three main sources of Clouds, Mobile Network Operators (MNOs), and MNOs\' authorized dealers. On top of the infrastructure layer, an arbitrator layer is designed to classify Services and allocate them the suitable resources based on several metrics such as resource requirement, latency and security. Utilizing SAMI facilitate development and deployment of service-based platform-neutral mobile applications. © 2012 IEEE.','',1,'Sanaei Z., Abolfazli S., Gani A., Shiraz M.','scopus/service oriented architecture security.csv','scopus',''),(2017,'Reference Monitors for Security and Interoperability in OAuth 2.0','2014','0',' Aspect oriented programming Interoperability OAuth protocol Reference monitor Security Type system','Abstract OAuth 2.0 is a recent IETF standard devoted to providing authorization to clients requiring access to specific resources over HTTP. It has been pointed out that this framework is potentially subject to security issues, as well as difficulties concerning the interoperability between protocol participants and application evolution. As we show in this paper, there are indeed multiple reasons that make this protocol hard to implement and impede interoperability in the presence of different kinds of client. Our main contribution consists in a framework that harnesses a type-based policy language and aspect-based support for protocol adaptation through flexible reference monitors in order to handle security, interoperability and evolution issues of OAuth 2.0. We apply our framework in the context of three scenarios that make explicit variations in the protocol and show how to handle those issues.','',2,'Ronan-Alexandre CherrueauRémi DouenceJean-Claude RoyerMario SüdholtAnderson Santana de OliveiraYves RoudierMatteo Dell’Amico','springer/bpel security.csv','springer',''),(2018,'Loan System in Brazilian Financial Institution - A SOA Application','2012','0','Financial System;Framework;SOA;Software Architecture;Web Services','With the intention of offering financial products to its customers in a fast, secure and high technological value, the financial institutions has been highlighted by constant investment in the area of Information Technology. This article presents the technology by a Brazilian institution and developed by a software provider, using the Service Oriented Architecture, enabling customers to access the functionalities of a System of Financing and Loan. Through architecture are generated financial affairs with confidence, performance and security that customers expect from a financial institution. Its unique feature is to present the development of mainframe subprograms with the profile of componentization, but without losing original features such as robustness, high performance and information security. Its main contribution is to demonstrate that it is possible to unify completely different platforms in a Service Oriented Architecture, provided that it has focused on the fact that the most important features of each of these platforms are utilized. How was extracted lessons learned that should be followed important points of attention in the definition of the architecture such as not using SOA as hype or without sufficient technical knowledge.','Information Technology: New Generations (ITNG), 2012 Ninth International Conference on',1,'C. G. Bernardo','ieee/service oriented architecture security.csv','ieee','\0'),(2019,'An experimental study on the design and modeling of security concepts in business processes','2013','1','BPMN; Business processes; Empirical evaluation; Icons; Modeling; Security; Visualization','In recent years, business process models are used to define security properties for the corresponding business information systems. In this context, a number of approaches emerged that integrate security properties into standard process modeling languages. Often, these security properties are depicted as text annotations or graphical extensions. However, because the symbols of process-related security properties are not standardized, different issues concerning the comprehensibility and maintenance of the respective models arise. In this paper, we present the initial results of an experimental study on the design and modeling of 11 security concepts in a business process context. In particular, we center on the semantic transparency of the visual symbols that are intended to represent the different concepts (i.e. the one-to-one correspondence between the symbol and its meaning). Our evaluation showed that various symbols exist which are well-perceived. However, further studies are necessary to dissolve a number of remaining issues. © IFIP International Federation for Information Processing 2013.','',2,'Leitner M., Schefer-Wenzl S., Rinderle-Ma S., Strembeck M.','scopus/bpmn security.csv','scopus','\0'),(2020,'An efficient, robust, and secure SSO architecture for cloud computing implemented in a service oriented architecture','2013','2','','Implementing Single Sign-On (SSO) in a Cloud space for a spectrum of services and applications is an interesting research avenue for scientific communities in the field of secure identity and access management for Cloud Computing. Using an SSO implementation, in the backend, users can navigate any or all of the supported applications or resources without the need to repeatedly provide credentials. In this chapter, the authors present an efficient and robust Cloud Single Sign-On Architecture (CSSOA) model based on a token security mechanism. Service Oriented Architectures (SOAs) are one of the enabling technologies for solving complex service oriented real world challenges, and hence, CSSOA has been implemented using SOAs. In the authors\' CSSOA model, a CSSO SOAP authentication service is distributed among the Cloud servers while the CSSO database service is centralized. © 2013, IGI Global.','',1,'Ahmed K., Hussain A., Gregory M.A.','scopus/service oriented architecture security.csv','scopus','\0'),(2021,'Semantics-Based Approach for Dynamic Evolution of Trust Negotiation Protocols in Cloud Collaboration','2014','0',' Trust Negotiation Semantics Content Evolution Protocol','Abstract Many techniques for addressing trust negotiation issues is little concerned with managing the dynamic evolution of trust negotiation protocols (policies), particularly in cases where there exist ongoing negotiations when a protocol has been changed. We propose an approach that automatically determines how consequences of changing a protocol affect ongoing negotiations. In particular, our approach allows to capture the semantics and intention of protocol changes, memorize and apply them in effectively analyzing the impact of protocol changes on negotiations.','',1,'Seung Hwan RyuAbdelkarim ErradiKhaled M. KhanSaleh AlhazbiBoualem Benatallah','springer/service oriented architecture security.csv','springer','\0'),(2022,'EMF Views: A View Mechanism for Integrating Heterogeneous Models','2015','0',' Modeling Viewpoint View Heterogeneity Virtualization','Abstract Modeling complex systems involves dealing with several heterogeneous and interrelated models defined using a variety of languages (UML, ER, BPMN, DSLs, etc.). These models must be frequently combined in different cross-domain perspectives to provide stakeholders the view of the system they need to best perform their tasks. Several model composition approaches have already been proposed addressing this problem. Nevertheless, they present some important limitations concerning efficiency, interoperability and synchronization between the base models and the composed ones. As an alternative we introduce EMF Views, an approach coming with a dedicated language and tooling for defining views on potentially heterogeneous models. Similarly to views in databases, model views are not materialized but instead redirect all model access and manipulation requests to the base models from which they are obtained. This is realized in a transparent way for both the modeler and the other modeling tools using the concerned (meta)models.','',2,'Hugo BruneliereJokin Garcia PerezManuel WimmerJordi Cabot','springer/bpmn security.csv','springer',''),(2023,'Related Concepts','2012','0','','Abstract As mentioned before, Cooperating Objects is an emerging domain that can be identified by the key characteristics of the participating devices and systems, predominantly from the cooperation aspects of the constituted objects that depend both on the virtual as well as real world. Clearly they represent an evolutionary step of pre-existing approaches and built upon them. There are several concepts that share common ground with Cooperating Objects such as Cyber-Physical systems, Internet of Things, Internet of Services, M2M, robotics, system of systems, autonomic systems, etc. In this chapter we focus on the definition of each related area and show the similarities and differences with Cooperating Objects. Additionally we give some examples of domains where Cooperating Objectsplay a pivotal role in order to better make understandable the context they operate on.','',1,'Pedro José MarrónDaniel MinderStamatis Karnouskos','springer/service oriented architecture security.csv','springer','\0'),(2024,'WSSecSpaces: A Secure Data-driven Coordination Service for Web Services Applications','2004','7','Linda, Web Services, coordination languages, security','Proceedings of the 2004 ACM Symposium on Applied Computing','',2,'Roberto Lucchi and Gianluigi Zavattaro','acm/bpel security.csv','acm','\0'),(2025,'Identity Attribute-Based Role Provisioning for Human WS-BPEL Processes','2009','3','access control;identity attributes;privacy;role','The WS-BPEL specification focuses on business processes the activities of which are assumed to be interactions with Web services. However, WS-BPEL processes go beyond the orchestration of activities exposed as Web services. There are cases in which people must be considered as additional participants to the execution of a process. The inclusion of humans, in turn, requires solutions to support the specification and enforcement of authorizations to users for the execution of human activities while enforcing authorization constraints. In this paper, we extend RBAC-WS-BPEL, a role-based authorization framework for WS-BPEL processes with an identity attribute-based role provisioning approach that preserves the privacy of the users who claim the execution of human activities. Such approach is based on the notion of identity records and role provisioning policies, and uses Pedersen commitments, aggregated zero knowledge proof of knowledge, and Oblivious Commitment-Based Envelope protocols to achieve privacy of user identity information.','Web Services, 2009. ICWS 2009. IEEE International Conference on',2,'F. Paci; R. Ferrini; E. Bertino','ieee/bpel security.csv','ieee','\0'),(2026,'The research of a resource-aware cloud computing architecture based on web security','2012','0','Cloud computing architecture;Linear regression model;Resource-aware;Self-adaptive;Web security','Web hosting has a lot of problems, such as low security, waste of bandwidth resource or sudden lack of resource. A self-adaptive cloud computing architecture - RA-Cloud architecture (Resource-aware Cloud Computing Architecture) based on web security in resource-aware situation is proposed. This architecture uses cloud computing technology and self-adaptive linear regression model to estimate the dynamic migration threshold and to search the most suitable neighbor node for data migration. This platform and algorithm distributes the huge amount of computing resource to many server “end” according to the resource constrained self-adaptive policy. The new method increases the user access speed, enhances the anti-attack ability, blocks the attacks effectively and improves the web site security.','2012 IEEE 2nd International Conference on Cloud Computing and Intelligence Systems',1,'X. Wang; X. Gao','ieee/service oriented architecture security.csv','ieee','\0'),(2027,'Policy4TOSCA: A Policy-Aware Cloud Service Provisioning Approach to Enable Secure Cloud Computing','2013','2',' Cloud Computing TOSCA Cloud Service Cloud Management Policy-Framework Security Green-IT Sustainable Cloud Service','Abstract With the growing adoption of Cloud Computing, automated deployment and provisioning systems for Cloud applications are becoming more prevalent. They help to reduce the onboarding costs for new customers as well as the financial impact of managing Cloud Services by automating these previously manual tasks. With the widespread use of such systems, the adoption of a common standard for describing Cloud applications will provide a crucial advantage by enabling reusable and portable applications. TOSCA, a newly published standard by OASIS with broad industry participation provides this opportunity. Besides the technical requirements of running and managing applications in the cloud, non-functional requirements, like cost, security, and environmental issues, are of special importance when moving towards the automated provisioning and management of Cloud applications. In this paper we demonstrate how non-functional requirements are defined in TOSCA using policies. We propose a mechanism for automatic processing of these formal policy definitions in a TOSCA runtime environment that we have developed based on the proposed architecture of the TOSCA primer. In order to evaluate our approach, we present prototypical implementations of security policies for encrypting databases and for limiting the geographical location of the Cloud servers. We demonstrate how our runtime environment is ensuring these policies and show how they affect the deployment of the application.','',2,'Tim WaizeneggerMatthias WielandTobias BinzUwe BreitenbücherFlorian HauptOliver KoppFrank LeymannBernhard MitschangAlexander NowakSebastian Wagner','springer/bpel security.csv','springer','\0'),(2028,'Data mining for web-based support systems: A case study in e-custom systems','2015','','','This chapter provides an example of a Web-based support system (WSS) used to streamline trade procedures, prevent potential security threats, and reduce tax-related fraud in cross-border trade. The architecture is based on a service-oriented architecture that includes smart seals and Web services. We discuss the implications and suggest further enhancements to demonstrate how such systems can move toward a Web-based decision support system with the support of data mining methods. We provide a concrete example of how data mining can help to analyze the vast amount of data collected while monitoring the container movements along its supply chain. © Springer-Verlag London Limited 2010.','',1,'Razmerita L., Kirchner K.','scopus/service oriented architecture security.csv','scopus',''),(2029,'The arrowhead approach for SOA application development and documentation','2014','3','Documentation Templates;Service-Oriented Architectures;Services;System-of-Systems;Systems','The Arrowhead project aims to address the technical and applicative issues associated with cooperative automation based on Service Oriented Architectures. The problems of developing such kind of systems are mainly due to the lack of adequate development and service documentation methodologies, which would ease the burden of reusing services on different applications. The Arrowhead project proposes a technical framework to efficiently support the development of such systems, which includes several tools for documentation of services and to support the development of SOA-based installations. The work presented in this paper describes the approach which has been developed for the first generation pilots to support the documentation of their structural services. Each service, system and system-of-systems within the Arrowhead Framework must be documented and described in such way that it can be implemented, tested and deployed in an interoperable way. This paper presents the first steps of realizing the Arrowhead vision for interoperable services, systems and systems-of-systems.','IECON 2014 - 40th Annual Conference of the IEEE Industrial Electronics Society',1,'F. Blomstedt; L. L. Ferreira; M. Klisics; C. Chrysoulas; I. M. de Soria; B. Morin; A. Zabasta; J. Eliasson; M. Johansson; P. Varga','ieee/service oriented architecture security.csv','ieee','\0'),(2030,'Service Brokering in Cloud Governance','2012','2','Cloud governance;cloud computing;cloud ontology;semantic services;service brokering','The dawn of Cloud Computing has opened new opportunities for IT-based industries, enabling them to cut costs and extend their businesses to a level which was previously hard to attain. While Cloud adoption is an ongoing process, many enterprises are still reluctant to pursue it because its downside outweighs its benefits, especially due to problems related to security and privacy. Coming from Service Oriented Architecture (SOA) Governance, Cloud Governance aims to cover these issues by offering a set of complementary services to the already available Cloud Management ones. This paper covers one of the core aspects of Cloud Governance, its ability to provide service brokering. A semantic approach is proposed where related services and cloud ontologies as well as brokering mechanisms are discussed.','Symbolic and Numeric Algorithms for Scientific Computing (SYNASC), 2012 14th International Symposium on',1,'V. I. Munteanu; C. Mindruta; T. F. Fortis','ieee/service oriented architecture security.csv','ieee','\0'),(2031,'Security: A major threat for web services','2012','2','SAML; SOA; UDDI; WSDL; XML','In recent years, web services have become a new concept over the open, complex internet applications. Service Oriented Architecture (SOA) is a computing paradigm emphasizing dynamic service discovery, composition, and interoperability. Web services is a technology that can be used to implement Service Oriented Architecture. XML based Web services are becoming a more pervasive foundation technology for integrating applications and exchanging data in service oriented architectures. The security issues of Web Services in a distributed environment are a major concern of research. Web Services will never attain their tremendous potential unless we learn how to manage the associated risks. In this paper we present our complete study on the security concerns associated with web services. © 2012 IEEE.','',1,'Balasubramanian N., Ruba A.','scopus/service oriented architecture security.csv','scopus','\0'),(2032,'An Approach for Efficiently Combining Real-Time and Past Events for Ubiquitous Business Processing','2015','0',' Complex Event Processing Publish/Subscribe Resource Description Framework (RDF) SPARQL protocol and RDF query language (SPARQL)','Abstract Nowadays, datasets become larger and larger. As stated by Eric Schmidt, every two days now we create as much or more information as we did from the dawn of civilization up until 2003. Thus, the question is how to make good use of such big data. A solution is Complex Event Processing (CEP) engines that propose to correlate realtime, contextual and past information. In this paper we propose a new architecture that leverages existing research done in Publish/Subscribe systems and CEP engines with the idea to federate them in order to scale to the load that could be encountered in todays ubiquitous events workloads.','',1,'Laurent PellegrinoIyad AlshabaniFrançoise BaudeRoland StühmerNenad Stojanovic','springer/service oriented architecture security.csv','springer',''),(2033,'ADAGE: a framework for supporting user-driven ad-hoc data analysis processes','2012','4',' SOA applications Data-intensive science Business process modeling User-driven composition High-frequency data Financial market data Time series analysis Event processing systems Thomson Reuters ADAGE Mathematics Subject Classification 68M01','Abstract Data analysis is an important part of the scientific process carried out by domain experts in data-intensive science. Despite the availability of several software tools and systems, their use in combination with each other for conducting complex types of analyses is a very difficult task for non-IT experts. The main contribution of this paper is to introduce an open architectural framework based on service-oriented computing (SOC) principles called the Ad-hoc DAta Grid Environment (ADAGE) framework that can be used to guide the development of domain-specific problem-solving environments or systems to support data analysis activities. Through an application of the ADAGE framework and a prototype implementation that supports the analysis of financial news and market data, this paper demonstrates that systems developed based on the framework allow users to effectively express common analysis processes. This paper also outlines some limitations as well as avenues for future research.','Computing',2,'Fethi A. RabhiLawrence YaoAdnene Guabtni','springer/bpmn security.csv','springer','\0'),(2034,'Integrity and Confidentiality Annotations for Service Interfaces in SoaML Models','2011','1','Model-Driven Development;Security Engineering;Service-Oriented Architecture;SoaML;UML;Web Services','This paper presents an approach for incorporating data integrity and data confidentiality into the model-driven development (MDD) of process-driven service-oriented architectures (SOAs) based on the OMG SoaML. Specifications for service interfaces are extended by UML activities to model invocation protocols. An invocation protocol makes the control and the object flows between service invocations explicit. Integrity and confidentiality attributes are used to annotate the object flows. The annotations serve for generating security-aware execution artefacts (e.g., interface description documents, deployment descriptors, and middleware configurations). We applied the approach prototypically in a Web Services platform environment (WS-BPEL, WSDL, WS-Security Policy).','Availability, Reliability and Security (ARES), 2011 Sixth International Conference on',2,'B. Hoisl; S. Sobernig','ieee/bpel security.csv','ieee','\0'),(2035,'Introduction: ERCIM/EWICS/ARTEMIS Workshop on Dependable Embedded and Cyberphysical Systems and Systems-of-Systems (DECSoS’14) at SAFECOMP 2014','2014','0','','Abstract This workshop at SAFECOMP follows already its own tradition since 2006. In the past, it focussed on the conventional type of “embedded systems”, covering all dependability aspects (in the meaning of IFIP WG 10.4, defined by Avizienis, Lapries, Kopetz, Voges and others). To emphasize more the relationship to physics, mechatronics and the notion of interaction with an unpredictable environment, the terminology changed to “cyber-physical systems” (CPS). Collaboration and co-operation of these systems with each other and humans, and the interplay of safety and security are leading to new challenges in verification, validation and certification/qualification.','',1,'Erwin SchoitschAmund Skavhaug','springer/service oriented architecture security.csv','springer','\0'),(2036,'Enhancing service federation trustworthiness through online testing','2012','13','(role)CAST; Online compliance testing; Role-based access control; Service federations; Service-oriented architectures; Trustworthiness; ZXID','Security, data protection, trust management, authentication, and authorization are crucial assets in the Internet of Services. Online testing enhances trustworthiness among federated services that are often independently developed, deployed, and maintained. © 2012 IEEE.','',1,'Bertolino A., De Angelis G., Kellomäki S., Polini A.','scopus/service oriented architecture security.csv','scopus','\0'),(2037,'Policy on literature content based on software as service','2015','3',' Software as a service Literature content Integration management Metadata encoding and transmission specification Metadata object description schema','Abstract Applications based on the software as a service (SaaS) platform that integrate the content of libraries across the country for personal and enterprise users are needed in the future. SaaS–based literature content integration has not yet been done in Korea. Therefore, this paper presents a SaaS application that integrates and manages the content of public organizations or libraries. This paper outlines a SaaS method and content framework for a literature content service that utilizes the metadata encoding and transmission specification and the metadata object description schema as the standard formats.','Multimedia Tools and Applications',1,'Jung-Soo HanKyung-Yong ChungGui-Jung Kim','springer/soa security.csv','springer',''),(2038,'An autonomous middleware model for essential services in distributed mobile applications','2012','','Autonomic Computing; Mobile Middleware; SOA','The evolution and popularization of mobile devices and wireless networks give rise to the creation of a new interaction paradigm, where the devices cooperate to execute short tasks. In this scenario, the problem of how to handle environment changes, which may increase the complexity of distributed mobile applications management and maintenance, needs to be addressed. This paper presents an autonomous and evolutionary model to permit a prompt adaptation of essential services (i.e. message exchange, service description service discovery, service coordination, mobility support and security) to context changes. To validate it, a mathematical model describing the time complexity to diffuse an efficient implementation of an essential service (strategy) taking into account the number of devices is proposed. Finally, the diffusion approach is implemented in a simulator to reason about its impact on the overall efficiency of the essential services and, consequently, the performance of the application. © 2012 ICST Institute for Computer Science, Social Informatics and Telecommunications Engineering.','',1,'Maia M.E.F., Rocha L.S., Maia P.H.M., Andrade R.M.C.','scopus/soa security.csv','scopus','\0'),(2039,'Multi-agent Approach for Managing Workflows in an Inter-Cloud Environment','2014','0',' Cloud Computing Workflow Management Systems Workflow Petri Nets Reference Nets Multi-Agent Systems','Abstract Despite the several attractive features that offers the cloud technology, managing, controlling processes and resources are among the serious obstacles that cloud service providers need to overcome. These issues increase when cloud providers intend to exploit services from several distributed platforms to satisfy client’s requests and requirements. At this moment, they need to deal with some critical problems like heterogeneity, collaboration, coordination and communication between different types of participants. In another side, the most known properties of an agent are: autonomy, pro-activity, cooperation and mobility. These features are attractive and have a great importance to design and implement software systems that operate in distributed and open environments such like cloud and grid. Our main goal through this thesis is to propose an approach and architectures to permit the integration of cloud/grid and multi-agent systems concepts and technologies for managing workflows in distributed service-oriented environments. Explicitly, in an Inter-Cloud environment.','',2,'Sofiane Bendoukha','springer/bpel security.csv','springer',''),(2040,'Lightweight Information Flow Control for Web Services','2012','0','','Abstract This paper presents a concept of incorporating information flow control (IFC) mechanisms into service-oriented systems. As opposed to existing IFC proposals, commonly imposing requirements hard or impossible to achieve in service-oriented environments (such as analysis of the application code), our solution fully complies with the Service Oriented Architecture (SOA) model. We present how IFC can be managed in an SOA system by using ORCA security policy language. We also describe two possible implementations of such SOA-specific IFC mechanisms using cryptographic keys and poly-instantiated web services.','',1,'Bartosz BrodeckiMichał KalewskiPiotr SasakMichał Szychowiak','springer/service oriented architecture security.csv','springer','\0'),(2041,'Detecting repurposing and over-collection in multi-party privacy requirements specifications','2015','1','Data flow analysis; privacy principles; requirements validation','Mobile and web applications increasingly leverage service-oriented architectures in which developers integrate third-party services into end user applications. This includes identity management, mapping and navigation, cloud storage, and advertising services, among others. While service reuse reduces development time, it introduces new privacy and security risks due to data repurposing and over-collection as data is shared among multiple parties who lack transparency into third-party data practices. To address this challenge, we propose new techniques based on Description Logic (DL) for modeling multiparty data flow requirements and verifying the purpose specification and collection and use limitation principles, which are prominent privacy properties found in international standards and guidelines. We evaluate our techniques in an empirical case study that examines the data practices of the Waze mobile application and three of their service providers: Facebook Login, Amazon Web Services (a cloud storage provider), and Flurry.com (a popular mobile analytics and advertising platform). The study results include detected conflicts and violations of the principles as well as two patterns for balancing privacy and data use flexibility in requirements specifications. Analysis of automation reasoning over the DL models show that reasoning over complex compositions of multi-party systems is feasible within exponential asymptotic timeframes proportional to the policy size, the number of expressed data, and orthogonal to the number of conflicts found. © 2015 IEEE.','',1,'Breaux T.D., Smullen D., Hibshi H.','scopus/service oriented architecture security.csv','scopus',''),(2042,'The SemSPM approach: fine integration of WS-SecurityPolicy semantics to enhance matching security policies in SOA','2016','0',' WS-SecurityPolicy Semantic security policy matching Semantic comparison relations SWRL rules','Abstract The lack of semantics in WS-SecurityPolicy standard hampers the effectiveness of matching security policies. To resolve this problem, we present a semantic approach for matching Web service security policies. The approach consists in the transformation of WS-SP into an OWL-DL ontology and the definition of a set of rules which automatically generate semantic relations that can exist between the provider and requestor security requirements. We show how these relations lead to more correct and refined matching of security policies. We also describe the implementation details of our approach and its validation through a real-world use case.','Service Oriented Computing and Applications',1,'Monia Ben BrahimTarak ChaariMaher Ben JemaaMohamed Jmaiel','springer/soa security.csv','springer',''),(2043,'Formal Methods for Modeling, Refining and Verifying Autonomic Components of Computer Networks','2012','2',' Autonomics GANA Meta-Model Model-driven Methodology Formal Methods Hierarchical Controllers Design Protocol behavior modeling','Abstract The domain of autonomic and nature-inspired networking comes with its own set of design challenges and requirements for its architectures. This demands a tailored solution to model and design its components rather than a generic approach. In this paper, we provide a hybrid methodology consisting of formal methods to design, refine and verify the entities of autonomic networks. We focus our discussions on the methods for meta-modeling , structural modeling and behavior modeling and design of existing protocols and newly introduced autonomic components, that autonomically manage and adapt the behaviour of protocols to changing policy and network conditions. A case study, based on the recently introduced Hierarchical Autonomic Management and Control Architectural Framework called GANA, is used for highlighting the practical benefits and design choices available to modelers and autonomic components designers. The results of our case study are analyzed to explain the trade offs that future designers would be forced to make in order to achieve their design objectives for an autonomic network. A tool-chain to realize the methodology is also briefly discussed.','',2,'Arun PrakashZoltán TheiszRanganai Chaparadza','springer/bpel security.csv','springer','\0'),(2044,'All-optical signal processing technique for secure optical communication','2015','','All-optical signal processing; All-optical XOR gate; Secure optical communication','Secure optical communication technologies are important means to solve the physical layer security for optical network. We present a scheme of secure optical communication system by all-optical signal processing technique. The scheme consists of three parts, as all-optical signal processing unit, optical key sequence generator, and synchronous control unit. In the paper, all-optical signal processing method is key technology using all-optical exclusive disjunction (XOR) gate based on optical cross-gain modulation effect, has advantages of wide dynamic range of input optical signal, simple structure and so on. All-optical XOR gate composed of two semiconductor optical amplifiers (SOA) is a symmetrical structure. By controlling injection current, input signal power, delay and filter bandwidth, the extinction ratio of XOR can be greater than 8dB. Finally, some performance parameters are calculated and the results are analyzed. The simulation and experimental results show that the proposed method can be achieved over 10Gbps optical signal encryption and decryption, which is simple, easy to implement, and error-free diffusion. © 2015 SPIE.','',1,'Qian F.-C., Su B., Ye Y.-L., Zhang Q., Lin S.-F., Duan T., Duan J.','scopus/soa security.csv','scopus',''),(2045,'Security risks and their management in cloud computing','2012','7','cloud computing;risk assessment;security threats','Cloud computing provides outsourcing of resources bringing economic benefits. The outsourcing however does not allow data owners to outsource the responsibility of confidentiality, integrity and access control, as it still is the responsibility of the data owner. As cloud computing is transparent to both the programmers and the users, it induces challenges that were not present in previous forms of distributed computing. Furthermore, cloud computing enables its users to abstract away from low-level configuration such as configuring IP addresses and routers. It creates an illusion that this entire configuration is automated. This illusion is also true for security services, for instance automating security policies and access control in cloud, so that individuals or end-users using the cloud only perform very high-level (business oriented) configuration. This paper investigates the security challenges posed by the transparency of distribution, abstraction of configuration and automation of services by performing a detailed threat analysis of cloud computing across its different deployment scenarios (private, bursting, federation or multi-clouds). This paper also presents a risk inventory which documents the security threats identified in terms of availability, integrity and confidentiality for cloud infrastructures in detail for future security risks. We also propose a methodology for performing security risk assessment for cloud computing architectures presenting some of the initial results.','Cloud Computing Technology and Science (CloudCom), 2012 IEEE 4th International Conference on',1,'A. U. Khan; M. Oriol; M. Kiran; M. Jiang; K. Djemame','ieee/service oriented architecture security.csv','ieee','\0'),(2046,'Secured SOA for the safe interconnection of medical devices (Position paper)','2015','','','This position paper presents a concept on how the dynamic interconnection of medical devices in a service oriented architecture (SOA) can be secured based on formal interface descriptions. In the framework OpenSDC used in the research project OR.NET formal interface descriptions are already used to model medical devices. The new approach is to use this formal descriptions to ensure the correct usage of the interface at runtime and to support developers in implementing medical devices with OpenSDC at the same time.','',1,'Leucker M., Schmitz M.','scopus/service oriented architecture security.csv','scopus',''),(2047,'Compatibility-driven and adaptable service composition','2009','1','','Services participating in the composition are usually co-ordinated according to a workflow, composed by several activities, each of which carried out by a service. The binding of services to workflow activities may be affected by several parameters (e.g., QoS, price, reputation, etc.). In this paper, we propose a service binding driven by a further important requirement, that is, the incompatibilities among services participating into the composition. To achieve a compatibility-driven composition we propose a solution where services assignment is configured directly by the engine coordinating the composite service. Moreover, the composition is generated such to implement a failure recovery strategy, that is, in case of some service failure the engine dynamically replaces the unavailable service.','Services Computing Conference, 2009. APSCC 2009. IEEE Asia-Pacific',2,'B. Carminati; C. Chi-Hung; E. Ferrari; L. Yu','ieee/bpel security.csv','ieee','\0'),(2048,'IoT-enabled Web Warehouse Architecture: A Secure Approach','2015','0','Cryptography, Data warehouse, Internet of things (IoT), Secure query processing, Web service, Web warehouse','Web warehouse (WWh) has overcome the geographical dependencies of data warehouse. With the rapid development of WWh, decision makers (humans) and intelligent devices are able to remotely retrieve the information for supporting the effective decision-making process. This paper presents a secure Web service-oriented architecture of the WWh. The proposed architecture provides the better scalability, availability of WWh, and secure analytical service for human and Internet of Things for effective decision making. In addition, the service-oriented architecture of WWh integrates intelligent devices for the process of decision making. The proposed architecture uses XML-based Web services to provide authentication, authorization, and data confidentiality and integrity. Experiments show that the proposed architecture is more reliable, scalable, and secure.','',1,'Rashid Mehmood and Maqbool Uddin Shaikh and Rongfang Bie and Hussain Dawood and Hassan Dawood','acm/service oriented architecture security.csv','acm',''),(2049,'A Service-Oriented Mobile Cloud Middleware Framework for Provisioning Mobile Sensing as a Service','2015','','mobile Web service;mobile cloud;mobile sensing as a service;service-oriented;workflow management system','Emerging Mobile Phone Sensing (M-Sense) systems enable a flexible large scale wireless sensing capability and also reduce the need of establishing the infrastructure of Wireless Sensor Network for collecting sensory information in the Internet of Things applications. M-Sense has been applied in numerous scenarios including mobile-health systems, environmental monitoring, vehicle ad hoc network, mobile social network, and so on. The drawback of existing M-Sense systems in terms of privacy, trust, less efficiency of participating in multiple sensing networks, has motivated the next generation sensing service provisioning approach. This paper introduces a generic service-oriented Mobile Host Sensing as a Service provisioning framework that allows a mobile device to provide sensing data to multiple parties based on mobile Web services. The proposed framework consists of the hybrid workflow-based control system, the dynamic Utility Cloud service, and the service provisioning scheduling model to enhance the quality of service provisioning. The prototype has been tested on real mobile devices and the details of the performance evaluation are presented.','Parallel and Distributed Systems (ICPADS), 2015 IEEE 21st International Conference on',1,'C. Chang; S. N. Srirama; M. Liyanage','ieee/service oriented architecture security.csv','ieee',''),(2050,'An exception handling system for service component architectures','2012','0',' Exception handling Service-component architectures Fault tolerance Service-oriented computing Coordinated exception handling','Abstract The Service Component Architecture (SCA) makes it possible to combine existing and new services based on a variety of technologies with components built using a component-based development approach. However, when asynchronous service compositions are executed, one or more errors can occur, possibly at the same time, affecting the dependability of the composition. To guarantee that the composition succeeds or at least fails in a controlled manner, fault tolerance mechanisms must be employed. In this paper, we propose a novel exception handling model that targets the needs of dependable SCA applications. The model is applicable to service-oriented systems and allows the creation of fault-tolerant asynchronous service compositions. The EH-SCA framework instantiates the proposed model as an extension of the Apache Tuscany SCA infrastructure. Developers can apply this instantiation of the model to both new and existing applications by using a simple and flexible aspect-oriented programming model. Finally, a case study of the EH-SCA framework shows how it can be used to build dependable distributed applications.','Journal of the Brazilian Computer Society',2,'Fernando CastorDouglas Siqueira LeiteCecília Mary F. Rubira','springer/bpel security.csv','springer','\0'),(2051,'Lecture Notes in Informatics (LNI), Proceedings - Series of the Gesellschaft fur Informatik (GI)','2014','','','The proceedings contain 253 papers. The topics discussed include: towards quality-aware simulations on mobile devices; coupling of existing simulations using bottom-up modeling of choreographies; R as an integration tool in high performance computing - lessons learned; towards automated analysis of eye tracking studies using the workflow technology; enhancing cloud security with context-aware usage control policies; automatic topology completion of TOSCA-based cloud applications; towards uniform BPEL engine management in the cloud; on the measurement of data protection compliance of cloud services; towards gamification analytics - requirements for monitoring and adapting gamification designs; a game-based evaluation model for a successful cooperation in cloud computing; towards data supply chains in enterprise architecture management; SemwidgJS: a semantic widget library for the rapid development of user interfaces for linked open data; and semantic service manager - enabling semantic web technologies in multi-agent systems.','',2,'[No author name available]','scopus/bpel security.csv','scopus',''),(2052,'A literature survey on smart cities','2015','1',' smart city architecture data-centric data vitalization urban data 关键词 智慧城市 系统架构 数据活化 城市数据 100102','Abstract Rapid urbanization creates new challenges and issues, and the smart city concept offers opportunities to rise to these challenges, solve urban problems and provide citizens with a better living environment. This paper presents an exhaustive literature survey of smart cities. First, it introduces the origin and main issues facing the smart city concept, and then presents the fundamentals of a smart city by analyzing its definition and application domains. Second, a data-centric view of smart city architectures and key enabling technologies is provided. Finally, a survey of recent smart city research is presented. This paper provides a reference to researchers who intend to contribute to smart city research and implementation.','Science China Information Sciences',1,'ChuanTao YinZhang XiongHui ChenJingYuan WangDaven CooperBertrand David','springer/soa security.csv','springer',''),(2053,'Implementation of a Distributed Guideline-Based Decision Support Model Within a Patient-Guidance Framework','2015','0',' Clinical guidelines Decision support Distributed computing','Abstract We report on new projection engine which was developed in order to implement a distributed guideline-based decision support system (DSS) within the European project MobiGuide.In this model, small portions of the guideline knowledge are projected, i.e. ‘downloaded’, from a central DSS server to a local DSS in the patient’s mobile device, which then applies that knowledge using the mobile device’s local resources. Furthermore, the projection engine generates guideline projections which are adapted to the patient’s previously defined preferences and, implicitly, to the patient’s current context, which is embodied in the projected knowledge. We evaluated this distributed guideline application model for two complex guidelines: one for Gestational Diabetes Mellitus, and one for Atrial Fibrillation. We found that the initial specification of what we refer to as the customized guideline should be in the terms of the distributed DSS, i.e., include two levels: one for the central DSS, and one for the local DSS. In addition, we found significant differences between the customized, distributed versions of the two guidelines, indicating further research directions and possibly additional ways to analyze and characterize guidelines.','',1,'Erez ShalomYuval ShaharAyelet GoldsteinElior ArielMoshe SheinbergerNick FungVal JonesBoris van Schooten','springer/service oriented architecture security.csv','springer',''),(2054,'A Secure Cloud-Based Payment Model for M-Commerce','2013','0','Cloud Security;Mobile Payment;Web Services','Instead of paying by cash, check, or credit cards, consumers can also use their mobile devices to pay for a wide range of services and digital or material goods. However, consumers\' security concerns are a major barrier to broad adoption and use of mobile payments. In this paper, we design a secure operational model for mobile payment in which access control is based on service-oriented architecture. A consumer uses his/her mobile device to get authorization from cloud and generate a QR code as the payment certificate.','2013 42nd International Conference on Parallel Processing',1,'T. K. Chang','ieee/service oriented architecture security.csv','ieee','\0'),(2055,'Integrated Cloud Application Provisioning: Interconnecting Service-Centric and Script-Centric Management Technologies','2013','1',' Cloud Application Provisioning Integration Management Scripts Management Services','Abstract Modern Cloud applications employ a plethora of components and XaaS offerings that need to be configured during provisioning. Due to increased heterogeneity, complexity is growing and existing approaches reach their limits if multiple different provisioning and configuration technologies are involved. They are not able to integrate them in an automated, flexible, and customizable way. Especially combining proprietary management services with script-centric configuration management technologies is currently a major challenge. To enable automated provisioning of such applications, we introduce Generic Lifecycle Management Planlets that provide a means to combine custom provisioning logic with common provisioning tasks. We implemented planlets for provisioning and customization of components and XaaS offerings based on both SOAP and RESTful Web services as well as configuration management technologies such as Chef to show the feasibility of the approach. By using our approach, multiple technologies can be combined seamlessly.','',2,'Uwe BreitenbücherTobias BinzOliver KoppFrank LeymannJohannes Wettinger','springer/bpel security.csv','springer','\0'),(2056,'Agile requirements handling in a service-oriented taxonomy of capabilities','2016','0',' Requirements handling Service orientation Architecture Capability Taxonomy Agile management and development','Abstract To get to grips with information systems portfolio development, strategic decisions tend towards service orientation and cloud deployment. Functionality should be presented as services that can be consumed from secure clouds in a range of contexts, and service-oriented architectures should enable one to build and rebuild systems portfolios readily and rapidly. However, there is little practical guidance on how to organize and coordinate the multiple lines of work that developing, or modernizing to, a service-oriented portfolio entails. We outline a method framework that uses the structure of a service-oriented taxonomy of capabilities to organize requirements and development in terms of elaboration and refinement of requirements. The method compiles several best practices and supports independent, but integral, lines of work that can be organized in small-scale projects. We illustrate the framework on three cases that involve computer- and simulation-assisted business processes. We conclude that service-oriented capability taxonomies can be used to structure and discipline requirements handling at all levels, from enterprise strategy to technical systems. We suggest that our framework supports the development of capabilities and services that are persistent in the service-oriented sense relative to each other and to implementation. We suggest further that the framework supports collaborative work by facilitating shared conceptions across lines of work. We emphasize that empirical studies should be conducted to evaluate and refine the framework.','Requirements Engineering',2,'Jo Erskine HannayKarsten BrathenOle Martin Mevassvik','springer/bpmn security.csv','springer',''),(2057,'Combining horizontal and vertical composition of services','2012','9',' Composition Provisioning Enterprise service bus Cloud','Abstract Service composition is a well-established field of research in the service community. Services are commonly regarded as black boxes with well-defined interfaces that can be recursively aggregated into new services. The black-box nature of services does not only include the service implementation but also implies the use of middleware and hardware to run the services. Thus, service composition techniques are typically limited to choosing between a set of available services. In this paper, we keep the black-box nature and the principle of information hiding of services, but in addition we break up services vertically . By introducing vertical service composition , we allow services to be provisioned on demand using the middleware and runtime environment that specifically meets user-required quality of services. Therefore, a service is setup individually for services requestors instead of providing them with a pre-determined list of available services to choose from. We introduce the concept of vertical service composition and present an extension to an enterprise service bus that implements the concept of vertical service composition by combining concepts from provisioning with those of (dynamic) service binding.','Service Oriented Computing and Applications',1,'Ralph RetterChristoph FehlingDimka KarastoyanovaFrank LeymannDaniel Schleicher','springer/soa security.csv','springer','\0'),(2058,'2013 Military Communications and Information Systems Conference, MilCIS 2013 - Proceedings','2013','','','The proceedings contain 7 papers. The topics discussed include: a flexible cryptographic infrastructure for high-security SDR-based systems; fractal methods for the representation and analysis of polymorphism in malware; wide-band feeds for multi-band SA TCOM and EW antennas; combat management systems: predicting performance early in the design lifecycle; a new methodology for the identification of operational stress points and assessment of technology solutions; a rule-based platform for distributed real-time SOA with application in defense systems; and modeling scenarios for the performance prediction of distributed real-time embedded systems.','',1,'[No author name available]','scopus/soa security.csv','scopus','\0'),(2059,'The SCEL Language: Design, Implementation, Verification','2015','2',' Autonomic computing Programming languages Adaptation policies Formal methods Verification','Abstract SCEL (Service Component Ensemble Language) is a new language specifically designed to rigorously model and program autonomic components and their interaction, while supporting formal reasoning on their behaviors. SCEL brings together various programming abstractions that allow one to directly represent aggregations, behaviors and knowledge according to specific policies. It also naturally supports programming interaction, self-awareness, context-awareness, and adaptation. The solid semantic grounds of the language is exploited for developing logics, tools and methodologies for formal reasoning on system behavior to establish qualitative and quantitative properties of both the individual components and the overall systems.','',1,'Rocco De NicolaDiego LatellaAlberto Lluch LafuenteMichele LoretiAndrea MargheriMieke MassinkAndrea MorichettaRosario PuglieseFrancesco TiezziAndrea Vandin','springer/service oriented architecture security.csv','springer',''),(2060,'A low-cost security certification scheme for evolving services','2012','9','Evolving services; Model-based testing; Security certification; SOA','Security certification schemes for Service-Oriented Architecture (SOA) extend service specifications with the evidence that a service supports a set of security properties and provides a given level of assurance. However, services are subject to continuous refinements, and uncontrolled changes can easily invalidate existing certification results and require re-certification from scratch, with high costs and overheads on service providers. In this paper, we present an approach to manage the impact of service evolution on security certification. Our approach aims to support the incremental certification of evolving services and re-use, as much as possible, the certification evidence available from older certificates in the release of a new certificate. © 2012 IEEE.','',1,'Anisetti M., Ardagna C.A., Damiani E.','scopus/service oriented architecture security.csv','scopus','\0'),(2061,'Data communication control strategy based on availability calculation under the internet','2015','','Availability calculation;Communication control;SOA','In order to solve the problem of Internet heterogeneous data synchronization, we design a Web-level Data Synchronization System (WLDSS) of distributed heterogeneous data based on Service-Oriented Architecture (SOA) in this paper which uses availability to control heterogeneous data synchronization stability, and analyzes its performance. Data show that this strategy can proactively adapt to a variety of performance characteristics under WLDSS, effectively improving the efficiency of data synchronization.','2015 IEEE International Conference on Communication Problem-Solving (ICCP)',1,'Jinying Chen; Yu Lu','ieee/service oriented architecture security.csv','ieee',''),(2062,'BPMN Security Extensions for Healthcare Process','2015','','BPMN;Healthcare;Internet of Things;Security Requirement','The modelling of healthcare process is inherently complicated due to its multi-disciplinary character. Business Process Model and Notation (BPMN) has been considered and applied to model and demonstrate the flexibility and variability of the activities that involved in healthcare process. However, with the growing usage of digital information and IoT technology in the healthcare system, the issue of information security and privacy becomes the main concern in term of both store and management of electronic health record (EHR). Therefore, it is very important to capture the security requirements at conceptual level in order to identify the security needs in the first place. BPMN is lacking of the ability to model and present security concepts such as confidentiality, integrity, and availability in a suitable way. This will increase the vulnerability of the system and make the future development of security for the system more difficult. In this paper we provide a solution to model the security concepts in BPMN by extending it with new designed security elements, which can be integrated with the BPMN diagram smoothly.','Computer and Information Technology; Ubiquitous Computing and Communications; Dependable, Autonomic and Secure Computing; Pervasive Intelligence and Computing (CIT/IUCC/DASC/PICOM), 2015 IEEE International Conference on',2,'K. S. Sang; B. Zhou','ieee/bpmn security.csv','ieee',''),(2063,'Security filtering of optical data signals: an approach based on codewords','2015','0',' All-optical security filtering Optical codewords Optical traffic identifier Optical logic gates Virtual optical memory Optical burst switching networks Optical packet switching networks','Abstract In this paper, we propose an all-optical filtering architecture that filters session establishment and data traffic streams. The session establishment filtering concerns the connection-oriented protocols. Each traffic stream is identified by a traffic identifier composed of a set of optical codewords. Each codeword is formed by a sequence of optical pulses that represent the bit “1” positions. In the case when an information bit “0” is transmitted, the transmitter does not generate a pulse. In a core node that implements the security filtering module, an optical security policy will be applied to the received traffic stream (session establishment or data traffic stream) based on its traffic identifier. The decision after performing the filtering process can lead to accept or reject the traffic stream. The proposed security filtering architecture is mainly composed of two modules: a session and a traffic filtering modules.','Photonic Network Communications',1,'Maha SlitiNoureddine Boudriga','springer/soa security.csv','springer',''),(2064,'Interoperability for medical information systems: an overview','2014','0',' Medical information system Heterogeneity Semantic interoperability Cloud computing SOA Ontology','Abstract As it is known to all, there is an imperative need for electronic transfer of healthcare information (patients’ records, laboratory analyses, medical images…) between healthcare organizations to improve the quality level they are offering. However, medical information systems in each organization are different from each other. These different systems compose a heterogeneous, distributed system with high complexity: there are a large number of healthcare related applications that support specific needs effectively but are isolated or incompatible. Thus medical information systems’ interoperability constitutes one of the main challenges of the IT society. Semantic interoperability in healthcare is important especially when all the varying types of data need to interact. Presented in this paper are the most relevant works to our knowledge, dealing with interoperability in medical information systems and a comparative study between the new proposed approaches and research trends to resolve heterogeneity issues.','Health and Technology',1,'Randa HammamiHatem BellaajAhmed Hadj Kacem','springer/soa security.csv','springer','\0'),(2065,'Business Intelligence Security on the Clouds: Challenges, Solutions and Future Directions','2013','2','Application Layer Security;Business Intelligence;Cloud Computing;Data Mart Security;Data Warehouse Security;Distributed Security Controls;OLAP Security;Object Level Security;Online Analytical Processing;Unified Threat Management','Business intelligence (BI) is a critical software system employed by the higher management of organizations for presenting business performance reports through Online Analytical Processing (OLAP) functionalities. BI faces sophisticated security issues given its strategic importance for higher management of business entities. Scholars have emphasized on enhanced session, presentation and application layer security in BI, in addition to the usual network and transport layer security controls. This is because an unauthorized user can gain access to highly sensitive consolidated business information in a BI system. To protect a BI environment, a number of controls are needed at the level of database objects, application files, and the underlying servers. In a cloud environment, the controls will be needed at all the components employed in the service-oriented architecture for hosting BI on the cloud. Hence, a BI environment (whether self-hosted or cloud-hosted) is expected to face significant security overheads. In this context, two models for securing BI on a cloud have been simulated in this paper. The first model is based on securing BI using a Unified Threat Management (UTM) cloud and the second model is based on distributed security controls embedded within the BI server arrays deployed throughout the Cloud. The simulation results revealed that the UTM model is expected to cause more overheads and bottlenecks per OLAP user than the distributed security model. However, the distributed security model is expected to pose administrative control effectiveness challenges than the UTM model. Based on the simulation results, it is recommended that BI security model on a Cloud should comprise of network, transport, session and presentation layers of security controls through UTM, and application layer security through the distributed security components. A mixed environment of both the models will ensure technical soundness of security controls, better security processes, - learly defined roles and accountabilities, and effectiveness of controls.','Service Oriented System Engineering (SOSE), 2013 IEEE 7th International Symposium on',1,'H. Al-Aqrabi; L. Liu; R. Hill; Z. Ding; N. Antonopoulos','ieee/service oriented architecture security.csv','ieee','\0'),(2066,'An end-to-end security auditing approach for service oriented architectures','2012','','security auditing; Service Oriented Architecture; taint analysis; trust','Service-Oriented Architecture (SOA) is becoming a major paradigm for distributed application development in the recent explosion of Internet services and cloud computing. However, SOA introduces new security challenges not present in the single-hop client-server architectures due to the involvement of multiple service providers in a service request. The interactions of independent service domains in SOA could violate service policies or SLAs. In addition, users in SOA systems have no control on what happens in the chain of service invocations. Although the establishment of trust across all involved partners is required as a prerequisite to ensure secure interactions, still a new end-to-end security auditing mechanism is needed to verify the actual service invocations and its conformance to the expected service orchestration. In this paper, we provide an efficient solution for end-to-end security auditing in SOA. The proposed security architecture introduces two new components called taint analysis and trust broker in addition to taking advantages of WS-Security and WS-Trust standards. The interaction of these components maintains session auditing and dynamic trust among services. This solution is transparent to the services, which allows auditing of legacy services without modification. Moreover, we have implemented a prototype of the proposed approach and verified its effectiveness in a LAN setting and the Amazon EC2 cloud computing infrastructure. © 2012 IEEE.','',1,'Azarmi M., Bhargava B., Angin P., Ranchal R., Ahmed N., Sinclair A., Linderman M., Othmane L.B.','scopus/service oriented architecture security.csv','scopus','\0'),(2067,'Modeling access control transactions in enterprise architecture','2014','2','','Enterprise architecture (EA) aims to provide management with appropriate indicators and controls to steer and model service-oriented enterprises. However, the management of EA models change is a challenging task due to complex dependencies when dealing with security constraints such as access control. In this paper, we motivate the use of an access control model in EA. More specifically, we present the role-based access control (RBAC) standard as a mean to model access control transactions in EA. To that end, we present (i) how the concepts of RBAC can be modeled into the Archi Mate enterprise architecture modeling language, and (ii) how RBAC\'s enforcementis supported with the DEMO enterprise modeling methodology via the business transaction concept. These attempts will help us to identify the conceptual link between RBAC, Archi Mate, and DEMO meta models in order to create a consistent lightweight model for access control in EA. Finally, we illustrate the application of the proposed approach through the handling of an e-Government scenario. © 2014 IEEE.','',1,'Gaaloul K., Guerreiro S., Proper H.A.','scopus/service oriented architecture security.csv','scopus','\0'),(2068,'System of Systems to provide Quality of Service monitoring, management and response in cloud computing environments','2012','2','Cloud Computing;DDoS;Enterprise Systems;Information Assurance;Net-centric;Quality of Service(QoS);Security;Service Oriented Architecture;Systems of systems','As military, academic, and commercial computing systems evolve from autonomous entities that deliver computing products into network centric enterprise systems that deliver computing as a service, opportunities emerge to consolidate computing resources, software and information through cloud computing. Along with these opportunities come challenges, especially to service providers and operations centers that struggle to monitor and manage Quality of Service (QoS) for these services in order to meet customer service commitments. Traditional approaches fall short in addressing these challenges because they examine QoS from a limited perspective rather than from a System of Systems (SoS) perspective applicable to a net-centric enterprise system in which any user from any location can share computing resources at any time. This paper presents a SoS approach to provide QoS monitoring, management, and response for enterprise systems that delivers computing as a service through a cloud computing environment. Concrete examples are provided that identify the key components of this SoS and their application to real-world scenarios. Simulated results demonstrate the effectiveness of the approach for a representative scenario.','System of Systems Engineering (SoSE), 2012 7th International Conference on',1,'P. Hershey; S. Rao; C. B. Silio; A. Narayan','ieee/service oriented architecture security.csv','ieee','\0'),(2069,'Towards Dynamic Non-obtrusive Health Monitoring Based on SOA and Cloud','2013','0',' E-health Diseases Monitoring Prevention SOA Cloud','Abstract Despite the fact that new technologies and life style are continuously improving, many diseases have unfortunately extensively increased in today’s population. State-of-the-art studies are showing an exponential increase of these diseases, which present a heavy burden on governmental and private healthcare systems. Many industrial and academic works are trying to alleviate this burden using varying clinical solutions. For example, e-health monitoring and prevention have revealed to be among promising solutions. In fact, well-implemented monitoring and prevention schemes have resulted in a decent reduction of diseases risk and or have reduced their effects. In the same line, this paper proposes a Service-Oriented Architecture-based platform for health disease tracking and prevention with a focus on disease monitoring. A monitoring scheme based on Service-Oriented Architecture and Cloud technology has been designed and developed to proactively detect any risk of diseases prior to its development. Therefore a preventive plan is dynamically generated and customized according to the patient’s health profile and context while considering many impelling parameters. A mobile application has been developed to evaluate our monitoring scheme and preliminary data have been collected and analyzed.','',1,'Mohamed Adel SerhaniAbdelghani BenharrefElarbi Badidi','springer/service oriented architecture security.csv','springer','\0'),(2070,'Intentional Fragments: Bridging the Gap between Organizational and Intentional Levels in Business Processes','2012','1',' Process Modelling Business Process Management Goal-oriented Requirements Modelling KAOS BPMN 2.0','Abstract Business process models provide a natural way to describe real-world processes to be supported by software-intensive systems. These models can be used to analyze processes in the system-as-is and describe potential improvements for the system-to-be. There is however little support to analyze how well a given business process models satisfies its business goals. Our objective is to address these problems by relating business process models to goal models so that goal-oriented requirements engineering techniques can be used to analyze how well the business processes for the system-as-is satisfy the business goals. The paper establishes relationships between BPMN 2.0 and the KAOS goal-oriented requirements modelling framework. We present the notion of intentional fragment to bridge the gap between process models and goal models. We conducted an evaluation to analyze use of this concept in the context of a university process.','',2,'Mario Cortes-CornaxAlexandru MateiEmmanuel LetierSophie Dupuy-ChessaDominique Rieu','springer/bpel security.csv','springer','\0'),(2071,'Practical interruptible conversations: distributed dynamic verification with multiparty session types and Python','2015','3',' Session types Runtime monitoring Python Distributed systems','Abstract The rigorous and comprehensive verification of communication-based software is an important engineering challenge in distributed systems. Drawn from our industrial collaborations (Ocean Observatories Initative, http://​www.​oceanobservatori​es.​org/​ , JBoss Savara Project, http://​www.​jboss.​org/​savara ) on Scribble, a choreography description language based on multiparty session types, and its theoretical foundations (Honda et al., in POPL, pp 273–284, 2008 ), this article proposes a dynamic verification framework for structured interruptible conversation programming. We first present our extension of Scribble to support the specification of asynchronously interruptible conversations. We then implement a concise API for conversation programming with interrupts in Python that enables session types properties to be dynamically verified for distributed processes. Finally, we expose the underlying theory of our interrupt mechanism, studying its syntax and semantics, its integration in MPST theory and proving the correctness of our design. Our framework ensures the global safety of a system in the presence of asynchronous interrupts through independent runtime monitoring of each endpoint, checking the conformance of the local execution trace to the specified protocol. The usability of our framework for describing and verifying choreographic communications has been tested by integration into the large scientific cyberinfrastructure developed by the Ocean Observatories Initiative. Asynchronous interrupts have proven expressive enough to represent and verify their main classes of communication patterns, including asynchronous streaming and various timeout-based protocols, without introducing any implicit synchronisations. Benchmarks show conversation programming and monitoring can be realised with little overhead.','Formal Methods in System Design',2,'Romain DemangeonKohei HondaRaymond HuRumyana NeykovaNobuko Yoshida','springer/bpel security.csv','springer',''),(2072,'Multi levels semantic architecture for multimodal interaction','2013','3',' Knowledge representation language Description logic Ontologies Multi-agent systems Semantic memory Multimodal interaction','Abstract This paper presents a semantic architecture for solving multimodal interaction. Our architecture is based on multi agent systems where agents are purely semantic using ontologies and inference system. Multi levels concepts and behavioural models are taken into account to bring a fast high level reasoning on a big amount of percepts and low level actions. We apply this architecture to make a system aware of different situations in a network like tracking object behaviours of the environment. As a proof of concept, we apply our architecture to an assistant robot helping blind or disabled people to cross a road in a virtual reality environment.','Applied Intelligence',1,'Sébastien DourlensAmar Ramdane-CherifEric Monacelli','springer/soa security.csv','springer','\0'),(2073,'Towards a framework for monitoring cloud application platforms as sensor networks','2014','0',' Cloud application platforms Service-oriented computing Autonomic computing Monitoring Sensor network Sensor web','Abstract With the continued growth in software environments on cloud application platforms, self-management at the Platform-as-a-Service (PaaS) level has become a pressing concern, and the run-time monitoring, analysis and detection of critical situations are all fundamental requirements if we are to achieve autonomic behaviour in complex PaaS environments. In this paper we focus on cloud application platforms offering their customers a range of generic built-in re-usable services. By identifying key characteristics of these complex dynamic systems, we compare cloud application platforms to distributed sensor networks, and investigate the viability of exploiting these similarities with a case study. We treat cloud data storage services as “virtual” sensors constantly emitting monitoring data, such as numbers of connections and storage space availability, which are then analysed by the central component of a monitoring framework so as to detect and react to SLA violations. We discuss the potential benefits, as well as some shortcomings, of adopting this approach.','Cluster Computing',1,'Rustem DautovIraklis ParaskakisMike Stannett','springer/soa security.csv','springer','\0'),(2074,'On Integrating Social and Sensor Networks for Emergency Management','2015','0','','Abstract The 2010 earthquake in Haiti is often referred to as the turning point that changed the way social media can be used during disasters. The development of strategies, technologies and tools to enhance user collaboration around disasters has become an emergent field, and their integration with appropriate sensor networks presents itself as an effective solution to drive decision making in emergency management. In this paper, we present a review of existing disaster management systems and their underlying strategies and technologies, and identify the limitations of the tools in which they are implemented. We then propose an architecture for disaster management that integrates the mining of social networks and the use of sensor networks as two complementary technologies to overcome the limitations of the current emergency management tools.','',1,'Farshad ShamsAntonio CeroneRocco De Nicola','springer/service oriented architecture security.csv','springer',''),(2075,'Adaptive Production Management Using a Service-Based Platform','2015','0',' System architecture Adaptive manufacturing Enterprise service bus','Abstract This paper presents a platform for adaptive production management developed in the ARUM (Adaptive pRodUct Management, http://​arum-project.​eu/​ ) project. The design of ARUM platform started with applying a traditional enterprise Service-Oriented Architecture (SOA) paradigm to solving an integration problem for the production ramp-up of highly customized products such as aircrafts, ships, etc. The production of such articles is exceptionally challenging for planning and control, especially in small lot sizes. Often requests for changes at any stage of the production, immature products and processes bring serious additional risks for the producers and customers. To counter such issues requires new strategies, the core elements of most of them include early detection of unexpected situations followed by rapid mitigation actions. Furthermore, human beings cannot cope any longer with processing a massive volume of data that comes with a high velocity from various sources that is a requirement for any modern production shop floor. The traditional IT solutions also fall short when trying to satisfy all those requirements and this motivates the need for ARUM platform to help in effective decision making.','',1,'Usman WajidVadim ChepeginDespina T. MeridouMaria-Eleftheria Ch. PapadopoulouJosé Barbosa','springer/service oriented architecture security.csv','springer',''),(2076,'A new usage control protocol for data protection of cloud environment','2016','0',' Cloud computing Data protection UCON Rights transfer Fair using','Abstract With the rapid development of the cloud computing service, utilizing traditional access control models was difficult to meet the complex requirements of data protection in cloud environment. In cloud environment, the definition of data and its protection are gradually varied when contents shifting from one virtual machine to another; in these new scenarios, the multi-tenancy pattern has been taken as a core attribute. For this reason, many users need to change their roles according to different situations; certifications has impact much more complicated challenges in cloud environment while access control was suitable for the static status but no longer for the changing situation. In this paper, a new usage control protocol model—multi-UCON (MUCON) based on usage control (UCON), combined with encryption technology and the digital watermarking technology, is proposed with the characteristics of flexible accrediting, feature binding, and off-line controlling. The analysis and simulation experiments indicate that the proposed protocol model is secure, reliable, and easy to be implemented, which can be deployed in cloud computing environments for data protection.','EURASIP Journal on Information Security',1,'Kefeng FanXiangzhen YaoXiaohe FanYong WangMingjie Chen','springer/service oriented architecture security.csv','springer',''),(2077,'Business process auditing on an SOA foundation','2012','','Audit log; Business process; Computer audit; Service-oriented architecture (SOA); Web services','A traditional audit technique manually controls internal data and processes. However, with the increase of the informatics transactions between global organizations, auditors have to provide a rigorous audit process. Some of them, try to deal with software products in a complex environment by using service-oriented architecture (SOA) and web services (WS). These pose new challenges for management, reliability, change management, security and much more. In this paper, a comprehensive audit mechanism is proposed to provide a cross-platform solution in a heterogeneous software/hardware environment, satisfying interdepartmental and cross-organizational business demands. A prototype of the collaborative e-procurement system is developed to demonstrate how business activities can be properly audited in the SOA architecture. Some practical examples are also given to illustrate the control points designed for a successful audit process in the system. © 2012 ICIC International.','',1,'Li S.-H., Chen S.-C., Hu C.-C., Wu W.-S., Hwang M.','scopus/service oriented architecture security.csv','scopus','\0'),(2078,'BSense: A Flexible and Open-Source Broadband Mapping Framework','2012','1',' Broadband mapping performance measurement broadband quality index broadband access technologies','Abstract We present, BSense , a flexible broadband mapping system for broadband coverage and quality assessment of broadband connections in a given geographic region. For coverage related analysis, it relies on data that is either obtained from ISPs or generated based on technology models and information about infrastructure sites. Broadband quality assessment in BSense is via host-based measurements using our multi-platform and technology-adaptive software client which periodically runs as a background process on users’ computers. The host-based software measurement approach employed in BSense is not only cost-effective but is also flexible and reduces measurement bias. BSense also incorporates a flexible broadband quality index for summarizing the collective effect of various underlying attributes such as download/upload speeds and latency. BSense system has been implemented based on open-source software components. The usefulness of the BSense system is demonstrated using two real world case studies, one on identifying notspots in Scotland and the other on broadband quality assessment in a rural part of Scotland through pilot deployment.','',1,'Giacomo BernardiDamon FenacciMahesh K. MarinaDimitrios P. Pezaros','springer/webservice security.csv','springer','\0'),(2079,'Virtual Business Role-Play: Leveraging Familiar Environments to Prime Stakeholder Memory During Process Elicitation','2015','0',' Business process management Process elicitation Subject-oriented business process management 3D virtual worlds Human-computer interaction','Abstract Business process models have traditionally been an effective way of examining business practices to identify areas for improvement. While common information gathering approaches are generally efficacious, they can be quite time consuming and have the risk of developing inaccuracies when information is forgotten or incorrectly interpreted by analysts. In this study, the potential of a role-playing approach for process elicitation and specification has been examined. This method allows stakeholders to enter a virtual world and role-play actions as they would in reality. As actions are completed, a model is automatically developed, removing the need for stakeholders to learn and understand a modelling grammar. Empirical data obtained in this study suggests that this approach may not only improve both the number of individual process task steps remembered and the correctness of task ordering, but also provide a reduction in the time required for stakeholders to model a process view.','',2,'Joel HarmanRoss BrownDaniel JohnsonStefanie Rinderle-MaUdo Kannengiesser','springer/bpmn security.csv','springer',''),(2080,'An Integrated Conceptual Model to Incorporate Information Tasks in Workflow Models','2012','0',' workflow conceptual model information flow micro-behaviors information-rich environments healthcare','Abstract In information-rich environments, participants can, and often must, access and use diverse sources of data to support their decision-making tasks. Modeling such environments is important, but cannot be done without effective conceptual models. A problem in information-rich environments is a disconnect between the control-flow across tasks and the information flow that must accompany these tasks. This can pose a challenge for supporting workflows in such environments. Micro-level concerns such as information seeking, sharing, recording, interpreting and hand-offs are not captured in existing workflow models. Without these information-related tasks, the control flows depicted appear to occur magically. We propose an integrated conceptual modeling technique that allows modeling both, control-flows and information-flows. The technique overloads some constructs while retaining their semantic origins, obviating the need to learn new constructs. We elaborate on the model with authentic examples drawn from ethnographic studies of healthcare practices in intensive care units. The paper demonstrates how: the proposed overloading can model information-related tasks; and help bring together conceptual modeling of control and information-flows in information-rich environments. The technique is evaluated with the help of multiple real-world examples.','',2,'Sandeep PuraoWolfgang MaassVeda C. StoreyBernard J. JansenMadhu Reddy','springer/bpmn security.csv','springer','\0'),(2081,'WSACd - A Usable Access Control Framework for Smart Home Devices','2015','0',' Policy-based access control XACML Service architectures DPWS Smart home Ubiquitous computing','Abstract Computing devices already permeate working and living environments; a trend which is expected to intensify in the coming years. However, the direct interaction smart devices often have with the physical world, along with the processing, storage and communication of private sensitive data pertaining to users’ lives, bring security concerns into the limelight. This paper presents Web Service Access Control for devices (WSACd), a framework that combines access control provided by the eXtensible Access Control Markup Language (XACML) with the benefits of Service Oriented Architectures through the use of the Devices Profile for Web Services (DPWS). Based on standardized technologies, it enables fine-grained policy-based management of the heterogeneous embedded devices that may be found in a smart residential setting. The proposed framework is implemented in full and its performance is evaluated on a test-bed featuring devices expected to be found in a typical residential environment.','',1,'Konstantinos FysarakisCharalampos KonstantourakisKonstantinos RantosCharalampos ManifavasIoannis Papaefstathiou','springer/service oriented architecture security.csv','springer',''),(2082,'Enhancing Service Federation Trustworthiness through Online Testing','2012','4','(role)CAST;Online compliance testing;Role-based access control;Service federations;Service-oriented architectures;Trustworthiness;ZXID','Security, data protection, trust management, authentication, and authorization are crucial assets in the Internet of Services. Online testing enhances trustworthiness among federated services that are often independently developed, deployed, and maintained.','Computer',1,'A. Bertolino; G. De Angelis; S. Kellomaki; A. Polini','ieee/service oriented architecture security.csv','ieee',''),(2083,'Rule-Based Modeling and Static Analysis of Self-adaptive Systems by Graph Transformation','2015','1','','Abstract Software systems nowadays require continuous operation despite changes both in user needs and in their operational environments. Self-adaptive systems are typically instrumented with tools to autonomously perform adaptation to these changes while maintaining some desired properties. In this paper we model and analyze self-adaptive systems by means of typed, attributed graph grammars. The interplay of different grammars representing the application and the adaptation logic is realized by an adaption manager. Within this formal framework we define consistency and operational properties that are maintained despite adaptations and we give static conditions for their verification. The overall approach is supported by the AGG tool for modeling, simulating, and analyzing graph transformation systems. A case study modeling a business process that adapts to changing environment conditions is used to demonstrate and validate the formal framework.','',2,'Antonio BucchiaroneHartmut EhrigClaudia ErmelPatrizio PelliccioneOlga Runge','springer/bpel security.csv','springer',''),(2084,'Cloud Based Service Registry for Location Based Mobile Web Services System','2013','0','Cloud Computing;LBS;SOA;Scalability;Web Services','Location based services (LBS) are growing in popularity due to the growing number of smartphone users. The architectural design of LBS systems plays a major role in delivering location based services in ubiquitous environments. Service oriented architecture (SOA) which uses services as its basic constructs is the latest trend in designing and developing loosely coupled distributed applications even in heterogeneous environments. Cloud computing is another latest area which provides highly reliable and scalable infrastructure environment for resource intensive applications. This paper gives an overview of SOA based LBS system and explains how to move service registry to the cloud to utilize the best of both SOA and Cloud infrastructure.','2013 2nd International Conference on Advanced Computing, Networking and Security',1,'M. DSouza; V. S. Ananthanarayana','ieee/service oriented architecture security.csv','ieee','\0'),(2085,'Big Data Operations: Basis for Benchmarking a Data Grid','2014','0',' Benchmarking Data grid iRODS Data operations Optimization','Abstract Data Operations over the wide area network are very complex. The end-to-end implementations vary significantly in their efficiency, failure recovery and transactional management. Benchmarking for these operations is vital as we go forward given the exponential growth in data size. The critical evaluation of the types of data operations performed within large-scale data management systems and the comparison of the efficiency of the operations across implementations is an appropriate topic for benchmarking in a big data framework. In this paper, we identify the various operations that are important in large-scale data management and discuss a few of these in terms of data grid benchmarking. These operations form a set of core abstractions that can define interactions with big data systems by domain-centric scientific or business workflow applications. We chose these operational abstractions from our experience in dealing with large-scale distributed systems and with data-intensive computation.','',1,'Arcot RajasekarReagan MooreShu HuangYufeng Xin','springer/service oriented architecture security.csv','springer','\0'),(2086,'Using UML for Modeling Procedural Legal Rules: Approach and a Study of Luxembourg’s Tax Law','2014','1','','Abstract Many laws, e.g., those concerning taxes and social benefits, need to be operationalized and implemented into public administration procedures and eGovernment applications. Where such operationalization is warranted, the legal frameworks that interpret the underlying laws are typically prescriptive , providing procedural rules for ensuring legal compliance. We propose a UML-based approach for modeling procedural legal rules. With help from legal experts, we investigate actual legal texts, identifying both the information needs and sources of complexity in the formalization of procedural legal rules. Building on this study, we develop a UML profile that enables more precise modeling of such legal rules. To be able to use logic-based tools for compliance analysis, we automatically transform models of procedural legal rules into the Object Constraint Language (OCL). We report on an application of our approach to Luxembourg’s Income Tax Law providing initial evidence for the feasibility and usefulness of our approach.','',2,'Ghanem SoltanaElizabeta FourneretMorayo AdedjoumaMehrdad SabetzadehLionel Briand','springer/bpel security.csv','springer',''),(2087,'Platform for integrative simulation','2013','0','','Abstract The use of simulation tools in production process planning within industrial environments is already well established. However, this generally involves conducting individual simulations of specific sub-processes using default settings as the boundary parameters. This method does not take into account production history influences on the individual sub-processes. In order to improve planning quality using simulations, the individual simulations need to be linked to form a continuous simulation chain. The methodology for linking simulations described in this paper allows flexible extension of the overall system, allowing incorporation of a variety of heterogeneous simulation chains. In addition to linking distributed simulation resources on an infrastructural level, Internetbased access is also provided, which allows partners to collaborate in setting up simulation chains. There is a data integration component to ensure the correct syntactic, structural and semantic transformation of data between the individual heterogeneous simulations and to ensure all the required simulation data is integrated into a common database. To enable integrative analysis of the simulation data for a whole process, there is an interactive visualisation component which can be used on a variety of visualisation systems, from regular workstation computers through to dedicated virtual reality systems with numerous projection surfaces. Interactive modification of dataset timing within the context of analysis is a key aspect in this respect. In future, the system will be expanded so that interactive analyses can be conducted on the in-tegrated database and bidirectionally coupled with the visualisation component in real time. This will enable intuitive access to the integrated simulation data, even across process boundaries, thus providing optimal support for planning or modification of production processes.','',1,'Thomas BeerTobias MeisenRudolf ReinhardDaniel SchilbergTorsten KuhlenSabina JeschkeChristian Bischof','springer/service oriented architecture security.csv','springer','\0'),(2088,'Intelligent state-based XML firewall','2012','','firewall; rule-based learning systems; service-oriented architecture (SOA); XML','Service-oriented architecture (SOA) is an architectural style of software systems, in which a system is composed of isolated or independent services. XML has become the most common way for information exchange and data representation in SOA. Electronic bill presentment and payment (EBPP) is one of the most critical SOA applications for which security a major concern. State-based XML firewall systems have been introduced as one of the major means for SOA security. The work of this paper introduces a new learning mechanism to extend State-based XML Firewall to improve security level. The proposed extension is justified using a case study. © 2012 IEEE.','',1,'Thabet G., Khattab S., Hassan H.A., Omara F.A.','scopus/service oriented architecture security.csv','scopus','\0'),(2089,'Towards Real-Time Data Acquisition for Simulation of Logistics Service Systems','2013','1',' Fourth Party Logistics Provider Simulation CEP Data Acquisition','Abstract Driven by rising competition pressure companies began to outsource at least parts of their logistics functions to specialized logistics providers in order to concentrate on the core competences. Hence, new business models emerged like the fourth party logistics provider who acts like a coordinator of arising logistics networks. One of the main tasks of the provider is the planning of such logistics networks, which have a very collaborative and dynamic character. In this paper an efficient way to integrate process modeling and simulation as part of the planning phase is introduced. Furthermore, an integrated approach is introduced for supporting the planning by a better data acquisition in order to provide reliable results at an affordable effort using simulation techniques. Therefore, complex event processing is used to gather real-time data and provides the data as service profiles for simulation.','',2,'Stefan MutkeMartin RothAndré LudwigBogdan Franczyk','springer/bpmn security.csv','springer','\0'),(2090,'Towards an Ontology for Cloud Services','2012','6','cloud brokerage;cloud computing;cloud governance;cloud management;semantic cloud','The emergence of cloud computing has created a shift in the service lifecycle, a shift meant to meet the requirements of cloud environments. Anticipating this, cloud governance, a step forward from SOA governance, tries to consolidate an environment where collaboration between various enterprises can be easily achieved. Cloud governance lays the groundwork for enabling easy application development and deployment by providing critical services that range from service management to security, monitoring and audit. As means of support for cloud computing, several ontologies have tried to bridge gaps and provide interoperability. None, however, have taken the time to analyze and define aspects that relate to service lifecycle and cloud governance. In this regard, our article proposes an ontology that is meant to complement existing ones.','Complex, Intelligent and Software Intensive Systems (CISIS), 2012 Sixth International Conference on',1,'T. F. Fortis; V. I. Munteanu; V. Negru','ieee/service oriented architecture security.csv','ieee',''),(2091,'Model Transformations in Non-functional Analysis','2012','0',' Model-driven quality analyses performance reliability MARTE Palladio Component Model','Abstract The quality assessment of software design models in early development phases can prevent wrong design decisions on the architectural level. As such wrong decisions are usually very cost-intensive to revert in late testing phases, model-driven quality predictions offer early quality estimates to prevent such erroneous decisions. By model-driven quality predictions we refer to analyses which run fully automated based on model-driven methods and tools. In this paper, we give an overview on the process of model-driven quality analyses used today with a special focus on issues that arise in fully automated approaches.','',1,'Steffen Becker','springer/webservice security.csv','springer','\0'),(2092,'Container-Level Security Certification of Services','2012','0','','Abstract The increasing success of the Service-Oriented Architecture (SOA) paradigm has fostered the implementation of complex services, including business processes, via dynamic selection and composition of remote services providing single functionality. Run-time selection and composition of services require the deployment of high-level security standards for the SOA infrastructure, to increase the confidence of both service consumers and providers that the services satisfy their security requirements and behave as expected. In this context, certification can play a fundamental role and provide the evidence that a set of properties hold for a given service. Security certification of services can involve two different aspects: i) the evaluation of the container in which the service is deployed, in terms of compliance with web service security standards and policies; ii) the verification and validation of the service implementation. In this chapter, we focus on the first aspect and we propose an overview of container-level certification of services.','',2,'Marco AnisettiClaudio A. ArdagnaErnesto Damiani','springer/bpel security.csv','springer','\0'),(2093,'LARISSA: Layered architecture model for interconnection of systems in UAS','2014','1','Architectural model;IMA;UAS;UAV;certification;critical embedded systems','Architectural models have been used to enable the development of more appropriate and structured systems, from the simplest to the most complex. The use of models in embedded systems is important especially when it comes to critical embedded systems. In such systems, as unmanned aerial vehicles, these models are designed to allow compliance standards, reduction in production time, reduce and make easy the development and maintenance process. Critical embedded systems have specific requirements, such as high reliability and real-time response, security and performance. The definition of an architectural model that allows these aspects is taken into account, and that provide compliance with the standards and enables accurate and rapid development. This is innovative and allows the scientific community and the industry to have benefits. In this sense, the LARISSA aims at developing an architectural model for systems interconnection in unmanned aircraft systems (UASs), allowing features reuse and certification of these aircrafts.','Unmanned Aircraft Systems (ICUAS), 2014 International Conference on',1,'E. A. Marconato; D. F. Pigatto; K. R. L. J. C. Branco; L. H. C. Branco','ieee/service oriented architecture security.csv','ieee','\0'),(2094,'Investigation of security issues for service-oriented network architecture','2016','','Authentication; Authorisation; Availability; Confidentiality; Flexible network; Integrity; Security; Services; SONATE','The current Internet is facing unprecedented demands, and the challenges and protocols were designed and incorporated into the system as a patchwork for solving many issues. The patchwork approach of non-integrated security mechanisms does not appropriately address the problems, because the problem lies with the architecture itself and not of protocols. Flexible network architecture is being explored as a new approach to address the issues of technical and non-technical challenges of the present Internet. Many flexible network architectures were designed to address the infrastructural problems of the current Internet. Service-oriented network architecture is one that is based on service-oriented architecture supporting short-term and long-term demands that evolve. It offers various flexible services without considering the threats that are raised due to lack of security in the architecture. The paper discusses the security requirements for the proposed architecture in order to avoid and tolerate the attacks of the network. Security and Communication Networks. © 2015 John Wiley & Sons, Ltd.','',1,'Rudra B., Vyas O.P.','scopus/service oriented architecture security.csv','scopus',''),(2095,'A Service-Oriented Architecture for Virtualizing Robots in Robot-as-a-Service Clouds','2014','0',' Cloud Robotics Service-Oriented Architecture SOAP Web Services Robot Operating System (ROS) Remote Robotic Labs','Abstract Exposing software and hardware computing resources as services through a cloud is increasingly emerging in the recent years. This comes as a result of extending the service-oriented architecture (SOA) paradigm to virtualize computing resources. In this paper, we extend the paradigm of the SOA approach to virtualize robotic hardware and software resources to expose them as services through the Web. This allows non-technical users to access, interact and manipulate robots simply through a Web browser. The proposed RoboWeb system is based on a SOAP-based Web service middleware that binds robots computing resources as services and publish them to the end-users. We consider robots that operates with the Robotic Operating System (ROS), as it provides hardware abstraction that makes easier applications development. We describe the implementation of RoboWeb and demonstrate how researchers can use it to interact remotely with the robots. We believe that this work consistently contributes to enabling remote robotic labs using the cloud paradigm.','',1,'Anis Koubaa','springer/service oriented architecture security.csv','springer','\0'),(2096,'Role-Based Integrated Access Control and Data Provenance for SOA Based Net-Centric Systems','2015','0','Data consistency;data provenance;data quality;data reliability;data trustworthiness;information flow control;role mapping;role-based access control,','In multi-domain service-based systems, services from different domains are composed together to accomplish critical tasks. In these systems, data flow from one domain to another through the composed services. Thus, security and trustworthiness are the major concerns. Many access control models have been developed for service-based systems. Also, many data provenance schemes have been proposed in recent years to support data quality assessment and enhancement, data reproduction, etc. However, none of the existing mechanisms consider both access control and data provenance in a integrated model. In this paper, we propose an integrated role-based access control and data provenance model to secure the cross-domain interactions. We develop a role-based data provenance scheme which tracks the roles of originators/contributors of a data object and uses this information to help evaluate data trustworthiness. We also make use of the data provenance information and the derived data quality attributes to assist with cross domain access and information flow control. This integrated model mutually enhances data provenance and access control, providing better security and trustworthiness for many multi-domain service-based applications.','IEEE Transactions on Services Computing',1,'I. L. Yen; W. SHE; F. Bastani; B. Thuraisingam; W. Zhu','ieee/soa security.csv','ieee',''),(2097,'Modeling of task-based authorization constraints in BPMN','2007','38','Business process modeling and analysis; Security in business processes','Workflows model and control the execution of business processes in an organisation by defining a set of tasks to be done. The specification of workflows is well-elaborated and heavily tool supported. Task-based access control is tailored to specify authorization constraints for task allocation in workflows. Existing workflow modeling notations do not support the description of authorization constraints for task allocation commonly referred to as resource allocation patterns. In this paper we propose an extension for the Business Process Modeling Notation (BPMN) to express such authorizations within the workflow model, enabling the support of resource allocation pattern, such as Separation of Duty, Role-Based Allocation, Case Handling, or History-Based Allocation in BPMN. These pattern allow to specify authorization constraints, for instance role-task assignments, separation of duty, and binding of duty constraints. Based on a formal approach we develop an authorization constraint artifact for BPMN to describe such constraints. As a pragmatic demonstration of the feasibility of our proposed extension we model authorization constraints inspired by a real world banking workflow scenario. In the course of this paper we identify several aspects of future work related to verification and consistency analysis of modeled authorization constraints, tool-supported and pattern-driven authorization constraint description, and automatic derivation of authorization policies, such as defined by the extensible Access Control Markup Language (XACML). © Springer-Verlag Berlin Heidelberg 2007.','',2,'Wolter C., Schaad A.','scopus/bpmn security.csv','scopus',''),(2098,'Trustworthiness monitoring and prediction of composite services','2012','5','','This paper presents an approach to monitoring and predicting the trustworthiness of services that are assembled from component services. In service compositions the number of component services that need to be aggregated may be large and dynamically changing. Additionally, the component services may vary in their importance to the value of the composite service and in their trustworthiness and resource capacity. Service compositions require the capability to dynamically adapt to changes that may occur at runtime. Those changes can occur in supply and demand, in the environment or in the component services\' properties and behaviour. Service composers need to be able to respond swiftly to changed trustworthiness requirements and capabilities of service compositions, where those changes may not be easily predictable. With the availability of alternatives providing the same functionality as those already integrated in a composition, service composers can take advantage of this by replacing degrading or unsatisfactory components.','Computers and Communications (ISCC), 2012 IEEE Symposium on',1,'H. Elshaafi; J. McGibney; D. Botvich','ieee/service oriented architecture security.csv','ieee','\0'),(2099,'Composing Web Services in an Open World: QoS Issues','2008','0','','Summary form only given. Orchestrating Web services has become the method of choice for building new services on top of existing ones, e.g., for business processes. Languages and methods have been developed and are now getting widely used, BPEL being the typical instance. When exposing the profile of a Web service, QoS parameters are typically specified. Besides security aspects, QoS involves a variety of parameters related to performance as well as quality of the returned data. How QoS should be handled in this context is the subject of my talk. A number of novel and not so well identified issues occur that make this topic deviating from QoS for networks in a substantial way. Firstly, since Web services aim at hiding details for the external world, no information regarding the infrastructure or resources supporting a Web service are exposed. This prevents from using classical resource based performance models; so contracts are preferred instead. A second important feature is that, unlike in networks, the control in orchestrations may depend on the carried data. Consequently performance and data interfere. These and other features make the subject of QoS for composite Web services a novel area offering plenty of non standard issues that I shall discuss.','Quantitative Evaluation of Systems, 2008. QEST \'08. Fifth International Conference on',2,'A. Benveniste','ieee/bpel security.csv','ieee','\0'),(2100,'2015 International Conference on Military Communications and Information Systems, ICMCIS 2015','2015','','','The proceedings contain 52 papers. The topics discussed include: accumulated state densities and their use in decorrelated track-to-track fusion; an efficiency of broadcast mechanisms based on cluster heads in clusterized radio network; an open process for software development in classified environments as prerequisite for military app stores; advanced security gateways for heterogeneous tactical ad hoc networks; a tool for matching crowd-sourced and authoritative geospatial data; a high assurance cross-domain guard for use in service-oriented architectures; an attempt at defining cyberdefense situation awareness in the context of command & control; analysis of a CFAR correlation radiometer; cross-layer analysis of malware datasets for malicious campaigns identification; bridging semantic interoperability gaps with SILF; and consensus algorithms for distributed spectrum sensing based on goodness of fit test in cognitive radio networks; and challenges for network aspects of cognitive radio.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus',''),(2101,'Research on MDA and SOA integrated software craftsmanship','2015','','','Traditional hand workshop software development mode brings low software developing consistency, limited software size and uncontrollability of software cost. The reasonable and effective integration scheme is insufficient in the face of the more and more demanding of software platform integration. This paper gives a profound analysis of the very nature of software platform integration and craftsmanship, explores the invariant nature of craftsmanship model and puts forward the guiding architecture of software integration and craftsmanship. © 2015 Taylor & Francis Group, London.','',1,'Wang Q.H., Liu L.S., Chen J., Lian J., Pei Z.L.','scopus/soa security.csv','scopus',''),(2102,'Dynamic Data Processing Middleware for Sensor Networks','2012','1',' sensor networks middleware computational REST web of things','Abstract Heterogeneous and resource-constrained sensors, computational and communication latencies, variable geospatial deployment and diversity of applications set challenges for sensor network middleware. RESTful architecture principles have been widely applied in middleware design. The new Computational REST architecture offers additional set of principles. In Computational REST, computations are seen as resources and interactions are conducted as computational exchanges. In this PhD thesis work, these principles are studied and elaborated further in the context of sensor network middleware. Middleware and system component prototypes are developed, evaluated and utilized by field trials in real-world settings. As a result, new knowledge is generated of ubiquitous sensor network middleware design and dynamically distributing data processing computational load in resource-constrained sensor networks.','',1,'Teemu LeppänenJukka Riekki','springer/service oriented architecture security.csv','springer','\0'),(2103,'A novel aspect-oriented BPEL framework for the dynamic enforcement of web services security','2012','5','AOP; BPEL; RBAC; Security; Web services','In this paper, we propose a new framework for the dynamic enforcement of composite Web services security, which is based on a synergy between Aspect-Oriented Programming (AOP) and BPEL (Business Process Execution Language). This synergy is achieved through the elaboration of a new language called AspectBPEL, which is used to specify security policies Abstract: separate components, referred to as aspects, to be weaved systematically in a BPEL process. The injected aspects activate the security policies at runtime on specific join points. Our approach enjoys several additional features such as (1) separating the business and security concerns of composite Web services (2) allowing the update of security mechanisms of composite Web services at run time, (3) providing modularity for modeling cross-cutting concerns between Web services, (4) centralising some security measurements at the BPEL side and (5) providing a framework fully compatible with any BPEL engine regardless of the adopted development environment. Copyright © 2012 Inderscience Enterprises Ltd.','',2,'Mourad A., Ayoubi S., Yahyaoui H., Otrok H.','scopus/bpel security.csv','scopus','\0'),(2104,'Configurable Declare: Designing Customisable Flexible Process Models','2012','1',' business process modelling configurable process models declarative process models Declare','Abstract Declarative languages are becoming more popular for modelling business processes with a high degree of variability. Unlike procedural languages, where the models define what is to be done, a declarative model specifies what behaviour is not allowed, using constraints on process events. In this paper, we study how to support configurability in such a declarative setting. We take Declare as an example of a declarative process modelling language and introduce Configurable Declare . Configurability is achieved by using configuration options for event hiding and constraint omission. We illustrate our approach using a case study, based on process models of ten Dutch municipalities. A Configurable Declare model is constructed supporting the variations within these municipalities.','',2,'Dennis M. M. SchunselaarFabrizio Maria MaggiNatalia SidorovaWil M. P. van der Aalst','springer/bpel security.csv','springer','\0'),(2105,'A conceptual-driven survey on future internet requirements, technologies, and challenges','2013','4',' Future internet Future networks New generation Architecture Requirements Challenges Technologies Concepts','Abstract Nowadays, research initiatives to redesign the Internet are popping up around the world. Each of these projects has a particular focus and its own set of design requirements and key technologies. The panorama shows a wide diversity of pre-requirements and arguments, some very specific and superficial, others more general and deep. Despite this diversity, a conceptual-driven analysis of such scenario could reveal the current state-of-the-art on future Internet research, the common aspects that permeate all initiatives, and the open issues to be addressed in future work. This paper provides a comprehensive overview of the contemporary research from an abstract point of view, covering the design requirements and ingredients that are being adopted, interrelating, and analyzing them.','Journal of the Brazilian Computer Society',1,'Antonio Marcos Alberti','springer/service oriented architecture security.csv','springer','\0'),(2106,'A Web Services Composition Model and Its Verification Algorithm Based on Interface Automata','2011','0','cloud computing;interface automata;services composition;web service','Web service is a key distributed computing technology to achieve \"software as a service\" (SaaS) in cloud computing. How to integrate various web services according to business processes correctly and efficiently, realize the seamless integration of services, and form enterprise level service processes with abundant functions has become an important problem. In this paper, we presented a new web services composition model and its verification algorithm based on interface automata. By extending interface automata, this model supports semantic descriptions of web services. We proposed the transformation rules and transformation algorithm between BPEL and the semantic service interface automata model. Furthermore, an interface automata composition algorithm was designed to achieve the concurrent composition of interface automata. In order to judge whether the service process generated satisfies the business function requirements, a verification algorithm was designed to validate the execution sequence of the concurrent composite interface automaton, and the simulation experiment showed that verification algorithm could be used to validate the consistency of the service process and the business process correctly and effectively.','2011IEEE 10th International Conference on Trust, Security and Privacy in Computing and Communications',2,'J. Li; S. Chen; L. Jian; H. Zhang','ieee/bpel security.csv','ieee','\0'),(2107,'Trusted Service Discovery through Identity Management','2013','2','Authentication;Identity management;Integrity;Service Discovery','Service oriented environments face threats from unauthorized clients and fake or compromised services. The threats exist both during service discovery and service invocation, and should be mitigated through the same security framework. Through the use of a modern identity management system which offers a combination of key attestation and attributes for access control, more threats can be appropriately addressed. The combination of discovery and identity management results in a more comprehensive threat mitigation, scalable maintenance of security related information and easier federations of security domains. The architecture and protocols of this system combination are presented and discussed.','MILCOM 2013 - 2013 IEEE Military Communications Conference',1,'A. Fongen; T. H. Bloebaum','ieee/service oriented architecture security.csv','ieee','\0'),(2108,'Financial analysis based sectoral portfolio optimization under second order stochastic dominance','2016','0',' Portfolio optimization Financial ratios Second order stochastic dominance Almost second order stochastic dominance In-sample and out-of-sample analysis','Abstract The study proposes to include the financial analysis (FA) in optimal portfolio selection. The role of FA in investment decisions is well recognized. While comparing two stocks on FA of their companies it is important to have both drawn from the same sector of economy. This reason motivated us to propose a sectoral portfolio optimization (SPO) which, instead of looking to optimize among all stocks together, focuses on optimizing stocks within each sector on the basis of FA. These stocks are then pooled together and an optimal portfolio is formed from them with their FA weights and mean returns. In context of FA, the four financial ratios included in present study are return on asset (profitable ratio), debt-assets ratio (solvency ratio), current ratio (liquidity ratio), and price-to-earning ratio (valuation ratio). The risk in a portfolio is quantified using the second order stochastic dominance and to this effect constraints are added in the selection process to generate optimal portfolios for rational risk averse investors. The performance of the optimal portfolios from the proposed model is tested against the portfolios from the traditional second order stochastic dominance model [named (SSDP) in this work], the benchmark index and four 5-star rated mutual funds of India from diversified equity. The out-of-sample analysis is carried on mean returns, Sharpe ratio, Sortino ratio, and also their ability to dominate the benchmark index in almost second order stochastic dominance sense over the tolerable violation regions. The stock price data for the period April 2004 to November 2014 of S&P BSE 500 index is used for testing the models. The optimal portfolios generated from the SPO perform better than the portfolios generated from the (SSDP), the benchmark index and the MFs, indicating effectiveness of FA in SPO framework.','Annals of Operations Research',1,'Amita SharmaAparna Mehra','springer/soa security.csv','springer',''),(2109,'Data encryption framework model with watermark security for Data Storage in public cloud model','2014','1','Cloud Data Storage;Cloud Encryption;Data Confidency;Data Privacy;Encryption Model;Watermark Security','Cloud computing technology is a new concept of providing dramatically scalable and virtualized resources. It implies a SOA (Service Oriented Architecture) type, reduced information technology overhead for the end level user, greater flexibility model, reduced total cost of ownership and on-demand service providing structure. From the user point of view, one of the main concerns is cloud security from the unknown threats. The lack of physical access to servers constitutes a completely new and disruptive challenge for investigators. The Clients can store, transfer or exchange their data using public cloud model. This paper represents the encryption method for public cloud and also the cloud service provider\'s verification mechanism using the third party auditors with framework model. The Cloud Data Storage is one of the mandatory services which are acquiring in this rapid development business world.','Computing for Sustainable Global Development (INDIACom), 2014 International Conference on',1,'Boopathy D; M. Sundaresan','ieee/service oriented architecture security.csv','ieee','\0'),(2110,'A reliable user authentication and key agreement scheme for web-based hospital-Acquired infection surveillance information system','2012','3','Authentication; Hospital-Acquired infection; Illegal access; Infection control; Surveillance system','With the rapid development of the Internet, both digitization and electronic orientation are required on various applications in the daily life. For hospital-Acquired infection control, a Web-based Hospital-Acquired Infection Surveillance System was implemented. Clinical data from different hospitals and systems were collected and analyzed. The hospital-Acquired infection screening rules in this system utilized this information to detect different patterns of defined hospital-Acquired infection. Moreover, these data were integrated into the user interface of a signal entry point to assist physicians and healthcare providers in making decisions. Based on Service-Oriented Architecture, web-service techniques which were suitable for integrating heterogeneous platforms, protocols, and applications, were used. In summary, this system simplifies the workflow of hospital infection control and improves the healthcare quality. However, it is probable for attackers to intercept the process of data transmission or access to the user interface. To tackle the illegal access and to prevent the information from being stolen during transmission over the insecure Internet, a password-based user authentication scheme is proposed for information integrity. © 2011 oSpringer Science+Business Media, LLC.','',1,'Wu Z.-Y., Tseng Y.-J., Chung Y., Chen Y.-C., Lai F.','scopus/service oriented architecture security.csv','scopus','\0'),(2111,'Extra-Tree: A model to organize execution traces of Web services','2010','0','Audit Trail;BPEL;Execution Trace;Extra-Tree;Security;Web service','In this paper, a non-linear model called Extra-Tree is proposed to organize execution traces of orchestrate Web services. This proposed model provides us a secured logging system which records the history of all the suspicious or malicious activities from the initiation of the Web service to the completion of the Web service. The main focus of this paper is to organize execution traces of Web services in a distributed computing paradigm in the form of a tree. One of the special characteristics of the model is that the execution traces of Web services can be retrieved from the coarse-grained level to the fine-grained level of the tree as per requirement.','Computer Information Systems and Industrial Management Applications (CISIM), 2010 International Conference on',2,'S. Sinha; S. K. Sinha; B. S. Purkayastha','ieee/bpel security.csv','ieee','\0'),(2112,'Sometimes it\'s better to be STUCK! SAML transportation unit for cryptographic keys','2013','','Key Distribution; Key Transportation; SAML; SAML Extension; XML','Over the last decade the Security Assertion Markup Language (SAML) framework evolved to a versatile standard for exchanging security statements about subjects. Most notably, SAML facilitates the authentication of users, and is thus deployed in both Webservice (SOAP, WS-Security) and REST-based (SAML SSO webbrowser profile, SAML Bearer token in OAuth) services. This paper recommends an extension to the SAML framework which provides an easy way to transport cryptographic key material bound to assertions issued by particular subjects. The proposal fits into existing solutions and is fully compliant with the Security Assertion Markup Language, XML Digital Signature and XML Encryption standards. © 2013 Springer-Verlag.','',1,'Meyer C., Feldmann F., Schwenk J.','scopus/webservice security.csv','scopus','\0'),(2113,'Data Depedency Based Trust Evaluation for BPEL Processes','2012','1','XBFG;data dependency;dependency link;reduction rules;trust evaluation','Composite services implement value-added functionality by composing service components with smaller granularity. Trust is an important criterion to judge whether a composite service can behave as expected. A feasible trust evaluation method for composite services is needed, which can guide service selection for users and the trust-based optimization and evolution for composite services. In this paper, a data dependency based trust evaluation approach for composite services in Business Process Execution Language (BPEL) is proposed. Firstly, we derive define-use pairs of variables to describe data dependency between service components in BPEL processes modeled by extensible BPEL Flow Graph (XBFG), in addition, dependency links including both direct and indirect data dependencies are used to evaluate the trust values of these service components, furthermore, on the basis of BPEL structure and XBFG, reduction rules are proposed to evaluate the global trust values of BPEL processes. Experiment results demonstrate that the proposed approach is effective for the trust evaluation of BPEL composite services and stable enough with the growing number of service components in BPEL.','2012 19th Asia-Pacific Software Engineering Conference',2,'C. Liu; B. Li; S. Qi; X. Wu; R. Song','ieee/bpel security.csv','ieee','\0'),(2114,'A Document Centric Approach for Analysis and Design of E-government Systems','2015','0',' Document-centric Modelling Information systems Analysis Design','Abstract As the computer literacy spreads among public servants, the focus of communication between system analysts and users is moved on specification forms that appears formal and semi-formal documents, and spreadsheet like descriptions. The documents are going to be planned to serve both clients and officers of government, both external and internal processing. For system and business analyst, there is a new situation that requires the polishing and improving the readily available methods and methodologies. For accurate interpretations of valid requirements, the system analyst needs approaches that are grounded in formal methods. In e - government environment, the specification of requirements happens through calculation spreadsheet and/or office document. So that there is a need for a systematic and at least semi-formal approach that focuses on the ubiquitous documents . The models deduced from the document-centric point of view should be placed into an overall Information Systems Architecture. The linkage between the models provides the opportunity for cross validation and verification to keep up the integrity and consistency. The convoluted relationships among the models can be adequately represented by generalized hypergraphs that offer the chances a disciplined and correct systems analysis and design procedure.','',1,'Bálint MolnárAndrás Benczúr','springer/service oriented architecture security.csv','springer',''),(2115,'Dynamic DICOM configuration in a service-oriented medical device architecture','2015','','','A surgical intervention raises additional requirements to a medical device network, be it security concerns or the demand for just-in-time integration of an additional devices. The German national flagship project OR.NET aims to satisfy these requirements by defining, implementing and validating an integration solution for safe and dynamic networking. This work presents an approach to incorporate imaging related medical devices into a dynamic plug and play operating room (OR) network utilizing the existing Digital Imaging and Communications in Medicine (DICOM) protocol. The presented approach was created as part of the OR.NET project to realize the integration of DICOM devices into the developed infrastructure, both in regard to newly created DICOM devices with direct support of the OR.NET protocol and the integration of existing DICOM devices (e.g. image archives) employing a gateway. Preliminary evaluation results indicate that the approach is viable and that no critical transmission delays are introduced by the prototypical gateway implementation.','2015 37th Annual International Conference of the IEEE Engineering in Medicine and Biology Society (EMBC)',1,'J. Schlamelcher; M. Onken; M. Eichelberg; A. Hein','ieee/service oriented architecture security.csv','ieee',''),(2116,'On-the-fly algorithm for the service composition problem','2015','','','The behavioral service composition problem arises when no available service can achieve a target behavior. The composition problem consists in building a special service, an orchestrator, which schedules the actions of the services to produce a behavior equivalent to the target one. In this paper, services are modeled as nondeterministic transition systems and the behavior of the composition realizes the behavior of the target. We propose an algorithm that avoids the full computation of the product of services, and instead constructs the orchestrator incrementally. Unlike most algorithms where the whole state space, which is exponential in the number of services, is visited, the proposed algorithm can find a solution by visiting only the pertinent portion of the state space. We also show that this on-the-fly behavior can be paired with a heuristic to speed up the synthesis.','2015 7th International Conference on New Technologies, Mobility and Security (NTMS)',1,'H. Farhat; G. Feuillade','ieee/service oriented architecture security.csv','ieee',''),(2117,'A Recommend Service Based on Expert Knowledge Model in Agricultural Environments','2012','0',' recommend service expert knowledge agricultural environments','Abstract Many of works in fields of agriculture for a long time have been based on agricultural experiences. Recently, rapid and unpredictable global climate changes and environmental pollution have made stable agricultural works, difficult. So, for a precision and smart agriculture, agricultural works have to be based on more complicated information and data, but simple experimental know-how in agricultural environments. In this paper, we propose a recommend service based on an agricultural expert knowledge model to support a precision agriculture with Internet, Sensors, and IT. The proposed service can automatically fuse valuable knowledge and experience in the agricultural fields according to experimental changes in the growth of crops, and can recommend best services to farmers. Therefore, with the proposed service, a farmer can easily and stably do agricultural works, irrespective of changes of crops and environmental changes.','',1,'Yongyun ChoKyoungryong ChoChangsun ShinJangwoo ParkEun-Ser Lee','springer/webservice security.csv','springer','\0'),(2118,'Advanced management of data integrity: property-based testing for business rules','2015','0',' Software verification Model-based testing Business rules Data integrity QuickCheck','Abstract Software testing is a very delicate aspect of software development, since designing good test sets is a non-trivial task. In this article, we describe a testing technique for testing business rules using property-based testing and the property-based automatic testing tool QuickCheck. Systematic, effective, and efficient testing of business rules increases the confidence on the validation of business concepts and domain rules which are specifically critical to data consistency. The approach is presented on the basis of small but representative examples in order to facilitate the readers’ understanding, but it has been successfully evaluated in a number of different industrial examples, demonstrating that it generalises to much larger systems and is, thus, broadly applicable.','Journal of Intelligent Information Systems',1,'Laura M. Castro','springer/soa security.csv','springer',''),(2119,'Towards cloud computing: A literature review on cloud computing and its development trends','2012','9','Cloud computing; Clouds security; Development trends; Serivce governance; Service-oriented architecture','This article contains a review of technical literature relating the definitions, characteristics, operations, security management, service governance, and development trends of cloud computing. The advantages and disadvantages of cloud computing are respectively described to represent the impacts of cloud computing in various fields. The article also explains the structure of clouds in service-oriented architectures and summarizes six major development trends, which can be utilized as a reference for entrepreneurs and researchers. © 2012 IEEE.','',1,'Gai K., Li S.','scopus/service oriented architecture security.csv','scopus',''),(2120,'Building Platform as a Service for High Performance Computing over an Opportunistic Cloud Computing','2013','0',' IaaS PaaS Cloud Computing High Performance Computing Opportunistic Computing','Abstract Platform as a Service providers deliver development and runtime environments for applications that are hosted on the Cloud. In this paper, we present a Platform as a Service model constructed over a desktop-based Cloud infrastructure for developing high performance computing applications taking advantage of unused resources opportunistically. We highlight the key concepts and features of the platform, as well as its innovation on an opportunistic computing and we present the results of several tests showing the performance of the proposed model.','',1,'German A. SoteloCesar O. DiazMario VillamizarHarold CastroJohnatan E. PeceroPascal Bouvry','springer/service oriented architecture security.csv','springer','\0'),(2121,'Research on Job Security Scheduling Strategy in Cloud Computing Model','2015','','Cloud computing;Genetic algorithm;Security demand;Security scheduling;Trust level','This paper concentrates on the problem of job security scheduling problem under the cloud computing environment. The Architecture of the cloud computing platform is made up of four layers, including 1) SOA architecture, 2) Management Middleware, 3) Resource virtualization and 4) Physical Resources. Next, we formally describe the problem of the job security scheduling under cloud computing. To guarantee the security level of job scheduling, security demand and trust level are defined in our work. Afterwards, the proposed genetic algorithm based job security scheduling is proposed. The main innovation of our proposed algorithm lies in that we utilize each chromosome to represent a schedule of a set of jobs on several computers, and then each gene is represented as a pair to describe the relationships between jobs and computers. Finally, experimental results demonstrate that our algorithm can effectively schedule jobs with higher level security and lower processing time cost.','Intelligent Transportation, Big Data and Smart City (ICITBS), 2015 International Conference on',1,'H. Zhang','ieee/service oriented architecture security.csv','ieee',''),(2122,'Securing a space-based service architecture with coordination-driven access control','2013','10','Access control; Coordination middleware; Service-oriented architectures; Tuple spaces','In distributed applications, multiple autonomous processes need to collaborate in an efficient way. Space-based middleware enables data-driven coordination for these processes via shared tuple spaces that allow a decoupled form of communication. Complex coordination logic may be provided to clients via reusable service components that access such tuple spaces to fulfill their task. To enable the secure collaboration of different participants, a suitable security concept for space-based services is required. In this paper, we present a fine-grained access control model that targets permissions both for invoking specific coordination services and for the data that is accessed by them. Our space based policy language adopts the middleware\'s own coordination mechanisms for the specification of simple yet expressive access control policies, thus combining coordination logic and security mechanisms into a single, unified concept. We show how a lightweight service execution framework that enforces these policies can be bootstrapped with the middleware itself, which enables using the same mechanisms for the invocation of services, the access to data and the management of policies. The feasibility of the approach is demonstrated by a use case based on a management system for distributed firewalls.','',1,'Craß S., Dönz T., Joskowicz G., Kühn E., Marek A.','scopus/service oriented architecture security.csv','scopus',''),(2123,'A Context-Aware Framework for SaaS Service Dynamic Discovery in Clouds','2014','0',' Cloud computing Mobile Computing Domain QoS Spatial context-aware Ontology','Abstract As Cloud computing and Mobile Computing become more and more prevalent, most of service consumers expect discovery suitable SaaS service in mobile environment. At the same time, in order to economize SaaS service advertisement cost, service provider need recommend SaaS service accurately based on consumer’s behavior. Therefore, how to determine a suitable policy of service discovery in mobile environment has become a challenging issue. It is considered that service in mobile environment need involve such contexts: Domain, QoS and Spatial. In this paper, we propose a context-aware framework that benefit for SaaS service discovery and recommend based on service consumer’s behavior habit and their context environment. In order to reach this target, we also present a model to describe SaaS service based on context Ontology.','',2,'Shaochong LiHao-peng Chen','springer/bpel security.csv','springer',''),(2124,'Securing Public Data Storage in Cloud Environment','2014','','Cloud Decryption; Cloud Encryption; Cloud Service Provider; Public Cloud Service Provider; Secured Data Storage; Third Party Auditor','Cloud computing technology is a new concept of providing dramatically scalable and virtualized resources. It implies a service oriented architecture type (SOA), reduced information technology overhead for the end-user, great flexibility model, reduced total cost of ownership, on-demand service providing structure and many other things. One of the main concerns of customers is Cloud security and the threat of the unknown. The lack of physical access to servers constitutes a completely new and disruptive challenge for investigators. The Users are store, transfer or exchange their data using public cloud. This paper represents the encryption method for public cloud and also the cloud service provider\'s verification mechanism using the third party auditors.','',1,'Boopathy D., Sundaresan M.','scopus/service oriented architecture security.csv','scopus','\0'),(2125,'Intelligent Systems for Monitoring and Prevention in Healthcare Information Systems','2014','0',' Healthcare Information Systems Interoperability Availability Monitoring Systems Preventing Systems','Abstract Nowadays the interoperability in Healthcare Information Systems (HIS) is a fundamental requirement. The Agency for Integration, Diffusion and Archive of Medical Information (AIDA) is an interoperability healthcare platform that ensures these demands and it is implemented in Centro Hospitalar do Porto (CHP), a major healthcare unit in Portugal. Therefore, the overall performance of CHP HIS depends on the success of AIDA functioning. This paper presents monitoring and prevention systems implemented in the CHP, which aim to improve the system integrity and high availability. These systems allow the monitoring and the detection of situations conducive to failure in the AIDA main components: database, machines and intelligent agents. Through the monitoring systems, it was found that the database most critical period is between 11:00 and 12:00 and the resources are well balanced. The prevention systems detected abnormal situations that were reported to the administrators that took preventive actions, avoiding damage to AIDA workflow.','',1,'Fernando MarinsLuciana CardosoFilipe PortelaAntónio AbelhaJosé Machado','springer/service oriented architecture security.csv','springer','\0'),(2126,'Performance assessment of XACML authorizations for supply chain traceability web services','2012','','Authorization; Performance; Supply Chain Traceability; Web Services; XACML','Service-Oriented Architecture (SOA) and Web Services (WS) offer advanced flexibility and interoperability capabilities. However they imply significant performance overheads that need to be carefully considered. Supply Chain Management (SCM) and Traceability systems are an interesting domain for the use of WS technologies that are usually deemed to be too complex and unnecessary in practical applications, especially regarding security. This paper presents an externalized security architecture that uses the eXtensible Access Control Markup Language (XACML) authorization standard to enforce visibility restrictions on trace-ability data in a supply chain where multiple companies collaborate; the performance overheads are assessed by comparing \'raw\' authorization implementations - Access Control Lists, Tokens, and RDF Assertions - with their XACML-equivalents. © 2012 IEEE.','',1,'Pardal M.L., Harrison M., Sarma S., Marques J.A.','scopus/service oriented architecture security.csv','scopus','\0'),(2127,'An Architectural Model for System of Information Systems','2015','0',' System of Systems System of Information Systems Service Oriented Architecture Architectural model','Abstract One of the most important aspects when designing and constructing an Information System is its architecture. This also applies to complex systems such as System of Information Systems (SoIS). Thus, we aim to propose an architectural model of System of Information Systems (SoIS). Though Architecture-based approaches have been promoted as a means of controlling the complexity of systems construction and evolution, what we really look for in this paper is an architectural model to aggregate services from already constructed systems. Nevertheless, it would be a good practice to compare the presented architecture of SoIS to other architecture-based approaches such as Service Oriented Architecture (SOA). Also, it is beneficial to examine how we can use the well-established standards of SOA for the designing of SoIS. In this paper we present an architectural model for System of Information Systems, and highlight the standards of Service Oriented Architecture that might help us in this task.','',1,'Saleh MajdAbel Marie-HélèneMishra Alok','springer/service oriented architecture security.csv','springer',''),(2128,'Matchmaking semantic security policies in heterogeneous clouds','2016','1','Cloud computing; Ontology; Security policies; Semantic','The adoption of the cloud paradigm to access IT resources and services has posed many security issues which need to be cared of. Security becomes even a much bigger concern when services built on top of many commercial clouds have to interoperate. Among others, the value of the service delivered to end customers is strongly affected by the security of network which providers are able to build in typical SOA contexts. Currently, every provider advertises its own security strategy by means of proprietary policies, which are sometimes ambiguous and very often address the security problem from a non-uniform perspective. Even policies expressed in standardized languages do not appear to fit a dynamic scenario like the SOA\'s, where services need to be sought and composed on the fly in a way that is compatible with the end-to-end security requirements. We then propose an approach that leverages on the semantic technology to enrich standardized security policies with an ad-hoc content. The semantic annotation of policies enables machine reasoning which is then used for both the discovery and the composition of security-enabled services. In the presented approach the semantic enrichment of policies is enforced by an automatic procedure. We further developed a semantic framework capable of matchmaking in a smart way security capabilities of providers and security requirements of customers, and tested it on a use case scenario. © 2015 Elsevier Ltd. All rights reserved.','',1,'Di Modica G., Tomarchio O.','scopus/soa security.csv','scopus',''),(2129,'A service composition model based on user experience in Ubi-cloud comp','2016','0',' User experience Ubiquitous cloud computing SaaS Service based application Service composition','Abstract The ubiquitous cloud computing environment supports software as service that allows for an efficient usage by the developer, user, and manager. But within ubiquitous cloud computing, numerous services are being provided by various service providers, making it difficult for the developer to find the service needed for system development or to apply and adopt it during development. In this paper, we propose a service composition model based on user experience where the user can find the type of service that he needs, construct a composition and apply it to the overall system development. The proposed model has three factors: service characteristics, personal information, and user preference. The service characteristics to apply the most appropriate service that the user intends to apply was taken into consideration, personal information that takes into account individual characteristics of the user and a user preference that takes into account the preferred parts in the field that the user seeks to develop was applied. To evaluate the suggested method, 100 people were recruited and surveyed on user satisfaction. The result shows that the proposed method performed better than the existing methods.','Telecommunication Systems',1,'Hwa-Young JeongGangman YiJong Hyuk Park','springer/soa security.csv','springer',''),(2130,'The internet of things: a survey','2015','33',' Literature Review IoT Internet of Things RFID Wireless Sensors Network Service Oriented Architecture','Abstract In recent year, the Internet of Things (IoT) has drawn significant research attention. IoT is considered as a part of the Internet of the future and will comprise billions of intelligent communicating ‘things’. The future of the Internet will consist of heterogeneously connected devices that will further extend the borders of the world with physical entities and virtual components. The Internet of Things (IoT) will empower the connected things with new capabilities. In this survey, the definitions, architecture, fundamental technologies, and applications of IoT are systematically reviewed. Firstly, various definitions of IoT are introduced; secondly, emerging techniques for the implementation of IoT are discussed; thirdly, some open issues related to the IoT applications are explored; finally, the major challenges which need addressing by the research community and corresponding potential solutions are investigated.','Information Systems Frontiers',1,'Shancang LiLi Da XuShanshan Zhao','springer/service oriented architecture security.csv','springer',''),(2131,'A Comparison of Mobile Patient Monitoring Systems','2013','0','','Abstract A survey of Mobile Patient Monitoring Systems is presented in this paper. Mobile patient monitoring systems have shown progress in terms of basic core functionalities needed for monitoring and detection of biosignals. However, their deployment is restricted to a small segment of health care delivery. The objective of this survey is to identify causes behind low deployment. We have selected twelve mobile patient monitoring systems and compared them against a set of functional and non-functional requirements.','',1,'Gaurav PaliwalArvind W. Kiwelekar','springer/service oriented architecture security.csv','springer','\0'),(2132,'Geospatial Metadata','2012','1','','','',1,'David M. Danko','springer/service oriented architecture security.csv','springer','\0'),(2133,'Behavioral Polymorphism and Parametricity in Session-Based Communication','2013','5','','Abstract We investigate a notion of behavioral genericity in the context of session type disciplines. To this end, we develop a logically motivated theory of parametric polymorphism, reminiscent of the Girard-Reynolds polymorphic λ -calculus, but casted in the setting of concurrent processes. In our theory, polymorphism accounts for the exchange of abstract communication protocols and dynamic instantiation of heterogeneous interfaces, as opposed to the exchange of data types and dynamic instantiation of individual message types. Our polymorphic session-typed process language satisfies strong forms of type preservation and global progress, is strongly normalizing, and enjoys a relational parametricity principle. Combined, our results confer strong correctness guarantees for communicating systems. In particular, parametricity is key to derive non-trivial results about internal protocol independence, a concurrent analogous of representation independence, and non-interference properties of modular, distributed systems.','',1,'Luís CairesJorge A. PérezFrank PfenningBernardo Toninho','springer/service oriented architecture security.csv','springer','\0'),(2134,'Employing Service Orientation to Enable Training as a Service in the U.S. Army','2013','0','cloud computing;distributed computing;mobile computing;modeling and simulation;service oriented architecture;training;web services','Currently many training systems acquired, fielded and sustained by the U.S. Army are unable to seamlessly comply with a continuously evolving and often complex computational environment. The current state of such training systems must advance to a Training as a Service (TaaS) future state in order to adapt to a volatile defense budget, conform to policy updates, and enhance the training capabilities afforded to the War fighter. TaaS will transform current Army training applications into distributed web-based services, allowing them to be accessible across any location via thin client workstations and wireless mobile devices. The motivation behind this migration is coming from the Common Operating Environment (COE) Architecture Guidance published by the U.S. Army Chief Information Officer and the Assistant Secretary of the Army for Acquisition, Logistics, and Technology. In order to achieve the COE objectives, the Army recently launched a pilot study on the Common Training Instrumentation Architecture (CTIA). CTIA is the foundation architecture of the Army\'s Live Training Transformation (LT2) Product Line that provides software infrastructure and services to live training product applications. This paper describes the migration of CTIA to TaaS using a specific set of modern computing technologies that will enable rapid delivery of training capabilities across servers, mobile devices, and heterogeneous platforms. Specifically service-oriented architecture (SOA) and cloud computing are considered which can satisfy the requirements of the TaaS and COE, and meet user demands for an enhanced training experience. Furthermore, this paper discusses the approach taken to elicit the future needs of the Army\'s live training community, and how cloud computing and SOA are leveraged to meet required capabilities. Lastly, this paper discusses some unique considerations on SOA-related security issues.','Cloud Engineering (IC2E), 2013 IEEE International Conference on',1,'J. T. Lanman; P. K. Linos','ieee/service oriented architecture security.csv','ieee','\0'),(2135,'An aggregation composition compensation method based on paired net','2012','0',' Web services composition failure handling composition compensation execution semantic analysis paired net','Abstract With regard to the failure and cancellation of business logic of web services composition (WSC), this paper propose a novel web services transaction compensation mechanism based on paired net which can dynamically establish agile compensation-triggered process (CSCP-Nets), and satisfy prospective compensation requirements. The related execution semantics of five usual composition compensation patterns based on paired net are analyzed in the situations of successful execution, failure compensation and failure recovery. Paired net based application of trip reservation process (TRP) shows that it is feasible.','International Journal of Automation and Computing',1,'Xiao-Yong MeiYi-Yan FanChang-Qin HuangAi-Jun JiangShi-Xian Li','springer/soa security.csv','springer','\0'),(2136,'WSCMon: runtime monitoring of web service orchestration based on refinement checking','2012','7',' Runtime monitoring Web service Service orchestration Process algebra CSP Refinement checking Operational semantics System specification Requirement specification Runtime-monitorable','Abstract Service-oriented systems, especially web services, have been given strong attention as an important approach to integrate heterogeneous systems, in which complex services are composed of simpler services offered by various service providers. The correctness of service composition requires techniques to verify whether composite services behave properly. To this end, in this paper, we propose a novel method for runtime monitoring of composite services. In our method, system specifications, which are automatically generated from descriptions of service composition, and requirement specifications, which include safety properties, are constructed to detect Business Process Execution Language (BPEL) engine-related and BPEL process-related violations. We employ process algebra as the primary formalism to express specifications. To verify the correctness of composite services, we check the refinement relation between specifications and observed behaviors. Also, we formally discuss what kinds of specifications can be monitored at runtime.','Service Oriented Computing and Applications',1,'Mohsen KhaxarSaeed Jalili','springer/soa security.csv','springer','\0'),(2137,'Traffic pattern analysis for distributed anomaly detection','2012','1','Anomaly Detection; Security; Service Oriented Architecture','Network anomalies refer to situations when observed network traffic deviate from normal network behaviour. In this paper, we propose a general framework which assumes the use of many different attack detection methods and show a way to integrate their results. We checked our approach by the use of network topology analysis methods applied to communication graphs. Based on this evaluation, we have proposed a measure called the AttackScore, which assesses the risk of an on-going attack and distinguishes between the effectiveness of the analytic measures used to detect it. © 2012 Springer-Verlag.','',1,'Kolaczek G., Juszczyszyn K.','scopus/service oriented architecture security.csv','scopus','\0'),(2138,'Cross-Border Challenges in Financial Markets Monitoring and Surveillance: A Case Study of Customer-Driven Service Value Networks','2012','2','cross-border;cross-jurisdiction;customer driven services;financial markets;fraud detection;market abuse;market manipulation;monitoring;service value networks;social network;surveillance','In this paper cross border market surveillance activities are modeled as service systems which exist and interact in a service-oriented economy. Moreover, the market monitoring and surveillance activities are described as a user or customer-driven service value network. The paper expands the previously defined concepts and terminology by presenting a case study for a proposed cross-border detection engine. Details of its sub-systems and relationships between them are provided. In terms of the instantiation of the case as a service system, the case considers a configuration of value networks and value propositions in which the provider and the customer of the service are assumed to be the Regulator. Although the agents involved in this service configuration are namely the same entity, in reality it is possible to consider this a special case in which different departments or divisions within the regulating authority perform the detection and investigation of cases separately, thus representing different definitions of a costumer and a provider of market surveillance service activities.','2012 Annual SRII Global Conference',1,'D. Diaz; B. Theodoulidis; E. Abioye','ieee/service oriented architecture security.csv','ieee','\0'),(2139,'An integrated e-service model for electronic medical records','2013','1',' Electronic medical records Service-oriented architecture Web services Grid services','Abstract In this paper, we discuss the critical issues with the implementation of electronic medical records and argue that the emerging e-services will not fully resolve the issues if they do not work together. To meet the challenge, we propose an integrated e-service model consisting of both process- and data-oriented grids that glue together distributed electronic medical services, records, and application services. We also provide an implementation architecture and prototype that validates the model.','Information Systems and e-Business Management',2,'Liping LiuDan Zhu','springer/bpel security.csv','springer','\0'),(2140,'4th IEEE 2014 Services Workshop on Security and Privacy Engineering - Message from the SPE 2014 Workshop Chairs','2014','0','','Welcome to the 4th IEEE 2014 Services Workshop on Security and Privacy Engineering (SPE 2014), June 28, 2014, Anchorage, Alaska, USA. SPE 2014 is co-located with IEEE 10th World Congress on Services (IEEE SERVICES 2014).','2014 IEEE World Congress on Services',1,'C. A. Ardagna; M. Jensen; Z. Chen; E. Damiani','ieee/service oriented architecture security.csv','ieee','\0'),(2141,'Construction of cloud platform for personalized information services in digital library based on cloud computing data processing technology','2015','0',' cloud computing digital library cloud service platform','Abstract Digital library has begun to enter a new era of cloud computing after Internet era, Web era, Grid era and Web 2.0 era. Combined with cloud computing technology, this thesis constructed a cloud service platform of digital library and described the service process and operating mechanism of digital library cloud service platform.','Automatic Control and Computer Sciences',1,'Fujun ZhangZunsheng GaoQuanhui Ye','springer/soa security.csv','springer',''),(2142,'The impact of service system on the implementation of cluster supply chain','2012','2',' Cluster supply chain Small and medium enterprises Virtual alliance Service system','Abstract As a new management pattern, ‘cluster supply chain’ (CSC) can help small and medium enterprises (SMEs) in China to face the sharp global competitions through all kinds of collaboration. However, a major challenge in implementing CSC is the gap between the related theories and practices in the field. In order to bridge the gap, this paper presents the JingCheng Mechanical & Electrical Holding co., Ltd. (JCH) as a case study to explain the key problems in the practice of cluster supply chain: What are the specific conditions for the implementation of cluster supply chain? What are the advantages and challenges of implementing cluster supply chain? Furthermore, the role of service supporting system is emphasized, which has driven a process of transforming CSC theories into practices. Through the case study of JCH, we clarify the role of service system in the actual construction and operation of cluster supply chain, which can promote the rapid adoption of CSC and show successful results as it should be.','Service Oriented Computing and Applications',1,'Xiao XueZhe WeiZhizhogn Liu','springer/soa security.csv','springer','\0'),(2143,'A security-and quality-aware system architecture for Internet of Things','2014','5',' Internet of Things Security Privacy Data quality System architecture','Abstract Internet of Things (IoT) is characterized, at the system level, by high diversity with respect to enabling technologies and supported services. IoT also assumes to deal with a huge amount of heterogeneous data generated by devices, transmitted by the underpinning infrastructure and processed to support value-added services. In order to provide users with valuable output, the IoT architecture should guarantee the suitability and trustworthiness of the processed data. This is a major requirement of such systems in order to guarantee robustness and reliability at the service level. In this paper, we introduce a novel IoT architecture able to support security, privacy and data quality guarantees, thereby effectively boosting the diffusion of IoT services.','Information Systems Frontiers',1,'Sabrina SicariCinzia CappielloFrancesco De PellegriniDaniele MiorandiAlberto Coen-Porisini','springer/service oriented architecture security.csv','springer','\0'),(2144,'Incorporating security requirements into service composition: From modelling to execution','2009','7','','Despite an increasing need for considering security requirements in service composition, the incorporation of security requirements into service composition is still a challenge for many reasons: no clear identification of security requirements for composition, absence of notations to express them, difficulty in integrating them into the business processes, complexity of mapping them into security mechanisms, and the complexity inherent to specify and enforce complex security requirements. We identify security requirements for service composition and define notations to express them at different levels of abstraction. We present a novel approach consisting of a methodology, called Sec-MoSC, to incorporate security requirements into service composition, map security requirements into enforceable mechanisms, and support execution. We have implemented this approach in a prototype tool by extending BPMN notation and building on an existing BPMN editor, BPEL engine and Apache Rampart. We showcase an illustrative application of the Sec-MoSC toolset. © 2009 Springer-Verlag Berlin Heidelberg.','',2,'Souza A.R.R., Silva B.L.B., Lins F.A.A., Damasceno J.C., Rosa N.S., MacIel P.R.M., Medeiros R.W.A., Stephenson B., Motahari-Nezhad H.R., Li J., Northfleet C.','scopus/bpmn security.csv','scopus','\0'),(2145,'XrML-RBLicensing approach adapted to the BPEL process of composite web services','2013','3','AOP; BPEL; RBL; Security; Web services; XrML','Web service orchestration represents an open and standards-based approach for connecting web services together leading to higher level of business processes. Business Process Execution Language (BPEL) engines are designed to handle this orchestration. However, web service compositions into BPEL suffer from several non-functional requirements such as security. To address this problem, we propose in this paper a novel approach that is based on a harmony between the licensing concept offered by eXtensible rights Markup Language (XrML), aspect-oriented programming (AOP), and web service compositions in BPEL. Our proposed approach, based on XrML, offers the ability to associate security licenses with activities offered by the composite web services. It allows to automatically generate BPEL aspects depending on the developed licenses, to separate between crosscutting concerns of the composed web services, and provides an easy way to include and update the non-functional requirements (e.g., security) into a BPEL process. It offers also the ability to validate the licenses, at runtime and without affecting the business logic of this model. To evaluate our approach, we have developed an inventory control system (ICS) sample that is composed of several web services. Case study and performance analysis are presented to demonstrate its feasibility as well. © 2013 Springer-Verlag London.','',2,'Tout H., Mourad A., Otrok H.','scopus/bpel security.csv','scopus','\0'),(2146,'An inductive and semantic model of constraints for master data management under cloud computing','2014','','Cloud Computing; Constraints Model; Formularization; Master Data Management','Master Data Management (MDM) has been evaluated under the contexts of Enterprise Architecture (EA), Semantic Web, Service Oriented Architecture (SOA) and Business Process Integration (BPI). However, there have been very few studies on operations of MDM under a Cloud Computing environment. Accordingly, we have analyzed the operational issues caused by migrating the MDM operations into the Cloud Computing environment, in particular into Software as a Service. Furthermore, we have pointed out the insufficient policy of the security framework in regards to the disclosure, and also pointed out the necessity to define a constraints model for security policy that is available in designing the operations of MDM among multiple SaaS/ASP and BPaaS providers. In this paper, we define a more precise constraints model by applying the first order predicate logic and inductive approach. Furthermore, we give explanatory description about the contexts of this formularization. © 2014 Springer International Publishing.','',1,'Kikuchi S.','scopus/service oriented architecture security.csv','scopus','\0'),(2147,'Data Analysis and Visualization','2013','0','','Abstract The Earth’s climate—its average weather and frequency of extreme events—greatly affects the conditions of all living creatures. Human conditions, for example, are strongly influenced by the availability of fresh water, the ambient temperature and humidity, and extreme phenomena such as heat and cold waves, droughts and floods, and tornadoes and hurricanes. Dramatic changes in climatic phenomena (e.g. a Medieval warm period or the prehistoric Ice Ages) also have been recorded, either in human chronicles or in the natural history of the Earth itself.','',1,'D. N. WilliamsT. J. PhillipsS. C. HankinD. Middleton','springer/service oriented architecture security.csv','springer','\0'),(2148,'Dynamic authentication for cross-realm SOA-based business processes','2012','7','Authentication; interorganizational security; multiparty interactions; service-oriented architecture; web services','Modern distributed applications are embedding an increasing degree of dynamism, from dynamic supply-chain management, enterprise federations, and virtual collaborations to dynamic resource acquisitions and service interactions across organizations. Such dynamism leads to new challenges in security and dependability. Collaborating services in a system with a Service-Oriented Architecture (SOA) may belong to different security realms but often need to be engaged dynamically at runtime. If their security realms do not have a direct cross-realm authentication relationship, it is technically difficult to enable any secure collaboration between the services. A potential solution to this would be to locate intermediate realms at runtime, which serve as an authentication path between the two separate realms. However, the process of generating an authentication path for two distributed services can be highly complicated. It could involve a large number of extra operations for credential conversion and require a long chain of invocations to intermediate services. In this paper, we address this problem by designing and implementing a new cross-realm authentication protocol for dynamic service interactions, based on the notion of service-oriented multiparty business sessions. Our protocol requires neither credential conversion nor establishment of any authentication path between the participating services in a business session. The correctness of the protocol is formally analyzed and proven, and an empirical study is performed using two production-quality Grid systems, Globus 4 and CROWN. The experimental results indicate that the proposed protocol and its implementation have a sound level of scalability and impose only a limited degree of performance overhead, which is for example comparable with those security-related overheads in Globus 4. © 2008 IEEE.','',1,'Xu J., Zhang D., Liu L., Li X.','scopus/service oriented architecture security.csv','scopus','\0'),(2149,'Towards a Taxonomy Framework of Evolution for SOA Solution: From a Practical Point of View','2013','3',' Taxonomy Service Oriented Architecture (SOA) Change Management','Abstract Presently, the research on evolution of SOA solution is becoming more and more important in industry. It is necessary to extract a taxonomy framework for evolution of SOA solution because by using it, evolution of SOA-based systems can be analyzed and compared comprehensively and objectively. In this paper, a taxonomy framework for evolution of SOA solution is proposed that is illustrated from four perspectives: (a) motivations for evolutionary changes ( why ), (b) locations where evolutionary changes happen ( where ), (c) times when evolutionary changes happen ( when ), and (d) support mechanisms in the process of evolutionary changes ( how ). Furthermore, the taxonomy framework is applied on analyzing a SOA-based configurable system for urban logistics delivery management, as an application of taxonomy framework.','',2,'Zaiwen FengPatrick C. K. HungKeqing HeYutao MaMatthias FarwickBing LiRong Peng','springer/bpel security.csv','springer','\0'),(2150,'A Deep-Intelligence Framework for Online Video Processing','2016','','Hadoop;MapReduce;Storm;big data;cloud computing;deep learning;fault tolerance;software development;software engineering;video processing','Video data has become the largest source of big data. Owing to video data\'s complexities, velocity, and volume, public security and other surveillance applications require efficient, intelligent runtime video processing. To address these challenges, a proposed framework combines two cloud-computing technologies: Storm stream processing and Hadoop batch processing. It uses deep learning to realize deep intelligence that can help reveal knowledge hidden in video data. An implementation of this framework combines five architecture styles: service-oriented architecture, publish-subscribe, the Shared Data pattern, MapReduce, and a layered architecture. Evaluations of performance, scalability, and fault tolerance showed the framework\'s effectiveness. This article is part of a special issue on Software Engineering for Big Data Systems.','IEEE Software',1,'W. Zhang; L. Xu; Z. Li; Q. Lu; Y. Liu','ieee/service oriented architecture security.csv','ieee',''),(2151,'A service-oriented exception handling method based on exception classification','2013','1','Exception Classification; Exception Handling; Process Layer; Service Layer; Service-Oriented','Exception handling is a time-consuming and easy to make error task. Especially in service-oriented architecture, exception throw chain becomes complicated particularly, so it improves requirements of exception capture and exception handling. This paper analyzes service-oriented exception produce source and proposes service-oriented exception classification. The exception classification divides exception into service layer exception and process exception. The two kinds of exception are subdivided into system exception, resource exception and application exception. This paper presents a corresponding exception handling method for all kinds of exceptions. The method can enhance robustness of service layer and process layer for service-oriented system. © 2013 IEEE.','',1,'Ding Y.H., Xiang R.H.','scopus/service oriented architecture security.csv','scopus','\0'),(2152,'Service Standardization with Utility Computing and Service Oriented Architecture as a Tool for Public Protection and Disaster Relief','2013','1','','Information and Communication Technology (ICT) service of the Public Protection and Disaster Relief (PPDR) are currently delivered in heterogeneous and tailor made methods. Majority of PPDR actors prefers their own technology, contract and process implementation. Utility, cloud and service-oriented computing are cutting-edge technologies that standardize ICT services and solutions. This paper studies ICT services and argues technologies, contracts and processes should be standardized in PPDR. This research also explores leveraging benefits and challenges of cloud base utility and service-oriented computing.','Intelligence and Security Informatics Conference (EISIC), 2013 European',1,'J. Rajamäki; P. Rathod','ieee/service oriented architecture security.csv','ieee','\0'),(2153,'Transforming Collaboration Structures into Deployable Informal Processes','2015','1',' Informal process essentials Human architecture description language Wiki Collaboration configuration Transformation','Abstract Traditional workflow and activity-centric coordination offers limited process support to human collaborators when unanticipated situations predominate. Under such circumstances, informal processes focus on provisioning relevant resources for achieving collaboration goals. Resources include interaction mechanisms such as shared artifact, social networks, and publish/subscribe information dissemination as complex situations typically demand the close collaboration among multiple human process participants. Currently, however, there exists a gap between (i) selecting and configuring suitable interaction mechanisms (collaboration level) and (ii) deploying the respective collaboration platforms (IT level). In this paper, we present an approach and techniques for transforming collaboration structures into automatically deployable informal processes. We demonstrate how our tools support the specification of desirable collaboration capabilities subsequently deployed to multiple MediaWiki instances.','',2,'C. Timurhan SungurChristoph DornSchahram DustdarFrank Leymann','springer/bpel security.csv','springer',''),(2154,'Enterprise cloud service architectures','2012','23',' Cloud computing Enterprise applications Services architecture Architectural requirements Enterprise clouds Cloud computing platforms Enterprise cloud service architectures','Abstract As a new computing paradigm, cloud computing has received a lot of attention from enterprises and has being integrated or applied to enterprise architectures. This paper surveys the state of the art of enterprise cloud service architectures. Specifically, this paper discusses enterprise cloud service architectural requirements, design approaches, architectural styles, emerging cloud service platforms, applications and related challenges in an enterprise context. This paper also identifies research trends and opportunities for researchers and practitioners in this fast moving field.','Information Technology and Management',1,'Heyong WangWu HeFeng-Kwei Wang','springer/soa security.csv','springer',''),(2155,'Towards Trustworthy Health Platform Cloud','2012','2',' Health Platform as a Service trustworthy cloud architecture security resilience data protection','Abstract To address today’s major concerns of health service providers regarding security, resilience and data protection when moving on the cloud, we propose an approach to build a trustworthy healthcare platform cloud, based on a trustworthy cloud infrastructure. This paper first highlights the main security and privacy risks of market available commodity clouds, and outlines security and privacy requirements of a trustworthy health platform cloud, on top of which to deploy various health applications, in compliance with EU data protection legislation. Results from the recent EU TClouds project will be described as a possible solution towards trustworthy cloud architecture, based on a federated cloud-of-clouds, while enforcing security, resilience and data protection in various cloud layers for provisioning trustworthy IaaS, PaaS and SaaS healthcare services.','',2,'Mina DengMarco NalinMilan PetkovićIlaria BaroniAbitabile Marco','springer/bpel security.csv','springer','\0'),(2156,'Securing Data in Composite Web Services','2012','2','BPEL;SOA;security;service composition','Service-oriented architecture (SOA) provides a solution for building information systems with reusability, flexibility, and extensibility. In SOA, new services can be developed by using existing services. BPEL is considered as the main means for composing services. In service composition, a composite service may be built from element services which belong to different administrative domains. Therefore, in order to exploit the benefits of service composition, we must carefully consider security issues. One of them is to protect users\' information. In this paper, we describe an approach for securing BPEL composite Web services. We assume that some users\' data received by the composite services needs securing. The proposed approach makes sure that when the data is sent out from the composite service appropriate security policies will be applied.','Knowledge and Systems Engineering (KSE), 2012 Fourth International Conference on',2,'H. D. Vo; D. C. Phung; V. Q. Dung; V. H. Nguyen','ieee/bpel security.csv','ieee','\0'),(2157,'A comparison of soundness results obtained by different approaches','2010','','Business process models; formal semantics; OR-join','Business processes are often modelled using a language for which no semantics is standardized in a formal way. Examples for such languages are BPMN or Event-Driven Process Chains. The common way for reasoning about the soundness of such models is to define a formal semantics first by translating the model into a well-founded formalism (for example Petri-nets). Afterwards, formal reasoning methods can be applied on the obtained formal model. In the past years, several such semantics that give a formal meaning to BPMN or EPC models have been published. In this paper, we used a repository of almost 1,000 real-world EPC models and computed their soundness using three different tools. Those tools build on different semantics definitions: Kindler\'s fixed-point semantics, Mendling\'s state/context semantics and the YAWL semantics. While the soundness results for the majority of models were the same for all three tools, we identified a few interesting cases where the results differ. The results of our comparative study can lead to a better understanding of the differences between the semantics. © 2010 Springer-Verlag.','',2,'Gruhn V., Laue R.','scopus/bpmn security.csv','scopus','\0'),(2158,'Semantic Reasoning in Context-Aware Assistive Environments to Support Ageing with Dementia','2012','3',' Ambient Assisted Living Context Awareness Knowledge Modelling Semantic Web Inference Engine','Abstract Robust solutions for ambient assisted living are numerous, yet predominantly specific in their scope of usability. In this paper, we describe the potential contribution of semantic web technologies to building more versatile solutions — a step towards adaptable context-aware engines and simplified deployments. Our conception and deployment work in hindsight, we highlight some implementation challenges and requirements for semantic web tools that would help to ease the development of context-aware services and thus generalize real-life deployment of semantically driven assistive technologies. We also compare available tools with regard to these requirements and validate our choices by providing some results from a real-life deployment.','',1,'Thibaut TiberghienMounir MokhtariHamdi AloulouJit Biswas','springer/service oriented architecture security.csv','springer','\0'),(2159,'Identifying Fake Feedback for Effective Trust Management in Cloud Environments','2013','1',' Trust management cloud computing credentials credibility reputation security privacy','Abstract Managing trust in cloud environments is emerging as an important issue in recent years. The highly dynamic, distributed, and non-transparent nature of cloud services makes the trust management of these services difficult. Malicious users may collude to give multiple misleading trust feedback to disadvantage a cloud service, or create several accounts and then leave misleading trust feedback to trick users into trusting cloud services that are not actually trustworthy. In this paper, we propose techniques enabling the identification of fake trust feedbacks and thus provide significant improvement on trust management in cloud environments. In particular, we introduce a credibility model that not only identifies credible trust feedbacks from fake ones, but also preserves the privacy of cloud service consumers. The techniques have been validated by a prototype system implementation and experimental studies.','',1,'Talal H. NoorQuan Z. ShengAbdullah AlfaziJeriel LawAnne H. H. Ngu','springer/service oriented architecture security.csv','springer','\0'),(2160,'AdIDoS – Adaptive and Intelligent Fully-Automatic Detection of Denial-of-Service Weaknesses in Web Services','2016','0','','Abstract Denial-of-Service (DoS) attacks aim to affect availability of applications. They can be executed using several techniques. Most of them are based upon a huge computing power that is used to send a large amount of messages to attacked applications, e.g. web service. Web service apply parsing technologies to process incoming XML messages. This enlarges the amount of attack vectors since attackers get new possibilities to abuse specific parser features and complex parsing techniques. Therefore, web service applications apply various countermeasures, including message length or XML element restrictions. These countermeasures make validations of web service robustness against dos attacks complex and error prone. In this paper, we present a novel adaptive and intelligent approach for testing web services. Our algorithm systematically increases the attack strength and evaluates its impact on a given web serice, using a blackbox approach based on server response times. This allows one to automatically detect message size limits or element count restrictions. We prove the practicability of our approach by implementing a new WS-attacker plugin and detecting new DoS vulnerabilities in widely used web service implementations.','',1,'Christian AltmeierChristian MainkaJuraj SomorovskyJörg Schwenk','springer/service oriented architecture security.csv','springer',''),(2161,'THUNDER: helping underfunded NPO’s distribute electronic resources','2013','0','','Abstract As federal funding in many public non-profit organizations (NPO’s) seems to be dwindling, it is of the utmost importance that efforts are focused on reducing operating costs of needy organizations, such as public schools. Our approach for reducing organizational costs is through the combined benefits of a high performance cloud architecture and low-power, thin-client devices. However, general-purpose private cloud architectures are not easily deployable by average users, or even those with some computing knowledge. For this reason, we propose a new vertical cloud architecture, which is focused on ease of deployment and management, as well as providing organizations with cost-efficient virtualization and storage, and other organization-specific utilities. We postulate that if organizations are provided with on-demand access to electronic resources in a way that is cost-efficient, then the operating costs may be reduced, such that the user experience and organizational efficiency may be increased. In this paper we discuss our private vertical cloud architecture called THUNDER. Additionally, we introduce a number of methodologies that could enable needy non-profit organizations to decrease costs and also provide many additional benefits for the users. Specifically, this paper introduces our current implementation of THUNDER, details about the architecture, and the software system that we have designed to specifically target the needs of underfunded organizations.','Journal of Cloud Computing: Advances, Systems and Applications',1,'Gabriel LoewenJeffrey GallowayJeffrey RobinsonXiaoyan HongSusan Vrbsky','springer/service oriented architecture security.csv','springer','\0'),(2162,'Security-Based Adaptation of Multi-cloud Applications','2016','0','','Abstract Multi-cloud application management can optimize the provisioning of cloud-based applications by exploiting whole variety of services offered by cloud providers and avoiding vendor lock-in. To enable such management, model-driven approaches promise to partially automate the provisioning process. However, such approaches tend to neglect security aspects and focus only on low-level infrastructure details or quality of service aspects. As such, our previous work proposed a security meta-model, bridging the gap between high- and low-level security requirements and capabilities, able to express security models exploited by a planning algorithm to derive an optimal application deployment plan by considering both types of security requirements. This work goes one step further by focusing on runtime adaptation of multi-cloud applications based on security aspects. It advocates using adaptation rules, expressed in the event-condition-action form, which drive application adaptation behaviour and enable assuring a more-or-less stable security level. Firing such rules relies on deploying security metrics and adaptation code in the cloud to continuously monitor rule event conditions and fire adaptation actions for applications when the need arises.','',2,'Kyriakos KritikosPhilippe Massonet','springer/bpmn security.csv','springer',''),(2163,'Proceedings - 26th IEEE International Conference on Advanced Information Networking and Applications Workshops, WAINA 2012','2012','','','The proceedings contain 230 papers. The topics discussed include: an input method for high-resolution large 2D desktop environment using wireless device with joystick; measurement of active quantity of the subject movement and design of surveillance camera system using high active part; a reliable dynamic user-remote password authentication scheme over insecure network; security philosophy important for a sustainable smart grid system; source code publishing on world wide web; a successful implementation of service oriented architecture; workflow-based dynamic access control in a service-oriented architecture; middleware software for embedded systems; how to preserve privacy in services interaction; privacy protection on transfer system of automated teller machine from brute force attack; and confidential information poisoning methods by considering the information length in electronic portable devices.','',1,'[No author name available]','scopus/service oriented architecture security.csv','scopus','\0'),(2164,'Cloud computing system risk estimation and service selection approach based on cloud focus theory','2016','0',' SLA QoS Uncertainty computing Cloud focus theory Cloud computing','Abstract The main cloud computing service providers usually provide cross-regional and services of Crossing Multi-Internet Data Centers that supported with selection strategy of service level agreement risk constraint. But the traditional quality of service (QoS)-aware Web service selection approach cannot ensure the real-time and the reliability of services selection. We proposed a cloud computing system risk assessment method based on cloud theory, and generated the five property clouds by collecting the risk value and four risk indicators from each virtual machine. The cloud backward generator integrated these five clouds into one cloud, according to the weight matrix. So the risk prediction value is transferred to the risk level quantification. Then we tested the Web service selection experiments by using risk assessment level as QoS mainly constraint and comparing with LRU and MAIS methods. The result showed that the success rate and efficiency of risk assessment with cloud focus theory Web services selection approaches are more quickly and efficient.','Neural Computing and Applications',1,'Fan LinWenhua ZengLvqing YangYue WangShufu LinJiasong Zeng','springer/soa security.csv','springer',''),(2165,'Out-of-the-enterprise B2B gateway cloud service for emerging markets','2012','','','Traditionally, in a typical SOA environment, a B2B gateway is at the edge of an enterprise, and is responsible for performing business document exchanges with other enterprises. In the existing model often used in mature markets, the enterprise needs to incur the cost of hosting and maintaining the gateway. However, the scenario for emerging markets is different, since they are not totally reliant on exchanging business documents electronically. Specifically, the SMB enterprises in emerging markets may not be interested in hosting and maintaining the usually bulky gateway products. In this paper, we propose a novel approach wherein SMB enterprises would exchange secured business information to a B2B cloud service hosted outside of the enterprise. This service offers key B2B protocol capabilities and features such as packaging, security and partner on-boarding. In a typical document exchange flow, the SMB enterprise would send it\'s business information to this B2B cloud service which then packages it using the agreed upon B2B protocol and makes it available to the intended recipient enterprise. Using this model for B2B exchanges would work as an incentive to open up SMB enterprises for B2B business and will go a long way in reducing costs for SMB enterprises. © 2012 IEEE.','',1,'Visweswara U.M., Gohad A., Rao P.S.','scopus/soa security.csv','scopus','\0'),(2166,'Towards Achieving Data Security with the Cloud Computing Adoption Framework','2016','6','Business Process Modeling Notation (BPMN); Cloud Computing Adoption Framework (CCAF); Data security in the Data Center; multi-layered security protection; security framework','Offering real-time data security for petabytes of data is important for cloud computing. A recent survey on cloud security states that the security of users\' data has the highest priority as well as concern. We believe this can only be able to achieve with an approach that is systematic, adoptable and well-structured. Therefore, this paper has developed a framework known as Cloud Computing Adoption Framework (CCAF) which has been customized for securing cloud data. This paper explains the overview, rationale and components in the CCAF to protect data security. CCAF is illustrated by the system design based on the requirements and the implementation demonstrated by the CCAF multi-layered security. Since our Data Center has 10 petabytes of data, there is a huge task to provide real-time protection and quarantine. We use Business Process Modeling Notation (BPMN) to simulate how data is in use. The use of BPMN simulation allows us to evaluate the chosen security performances before actual implementation. Results show that the time to take control of security breach can take between 50 and 125 hours. This means that additional security is required to ensure all data is well-protected in the crucial 125 hours. This paper has also demonstrated that CCAF multi-layered security can protect data in real-time and it has three layers of security: 1) firewall and access control; 2) identity management and intrusion prevention and 3) convergent encryption. To validate CCAF, this paper has undertaken two sets of ethical-hacking experiments involved with penetration testing with 10,000 trojans and viruses. The CCAF multi-layered security can block 9,919 viruses and trojans which can be destroyed in seconds and the remaining ones can be quarantined or isolated. The experiments show although the percentage of blocking can decrease for continuous injection of viruses and trojans, 97.43 percent of them can be quarantined. Our CCAF multi-layered security has an average of 20 percent better performance than the single-layered approach which could only block 7,438 viruses and trojans. CCAF can be more effective when combined with BPMN simulation to evaluate security process and penetrating testing results. © 2016 IEEE.','',2,'Chang V., Ramachandran M.','scopus/bpmn security.csv','scopus',''),(2167,'FDI and the Industrial Internet of Things','2015','','field device integration;industrie 4.0;installed base migration;internet of things;security;semantics','The Field Device Integration (FDI) standard represents an industry-wide consensus on device integration for the process industry. Following the release of IEC 62769, first products have been released at Hannover Fair 2015. Backward-compatibility, interoperability between vendors, and vertical integration based on OPC UA ensure protection of investment and lower life-cycle costs already in today\'s automation pyramid. With Industrie 4.0, the fourth industrial revolution is set on merging automation and information domains into the industrial internet of things, services, and people. Self-configuring and -maintaining systems proclaim the dissolution of the automation pyramid. In this situation, FDI can be the bridge between the protection of past investment and the future of automation, moving from assetto service-oriented automation, and still keeping plant owners in control of their processes.','2015 IEEE 20th Conference on Emerging Technologies & Factory Automation (ETFA)',1,'D. Schulz','ieee/service oriented architecture security.csv','ieee',''),(2168,'Open Source versus Proprietary Software in Service-Orientation: The Case of BPEL Engines','2013','2',' open source SOA BPEL patterns conformance testing','Abstract It is a long-standing debate, whether software that is developed as open source is generally of higher quality than proprietary software. Although the open source community has grown immensely during the last decade, there is still no clear answer. Service-oriented software and middleware tends to rely on highly complex and interrelated standards and frameworks. Thus, it is questionable if small and loosely coupled teams, as typical in open source software development, can compete with major vendors. Here, we focus on a central part of service-oriented software systems, i.e., process engines for service orchestration, and compare open source and proprietary solutions. We use the Web Services Business Process Execution Language (BPEL) and compare standard conformance and its impact on language expressiveness in terms of workflow pattern support of eight engines. The results show that, although the top open source engines are on par with their proprietary counterparts, in general proprietary engines perform better.','',2,'Simon HarrerJörg LenhardGuido Wirtz','springer/bpel security.csv','springer','\0'),(2169,'Securing Web Applications, Services, and Servers','2013','','Authentication; Hacktivists; Internet compliance; Privacy; Servers; Services; Transport layer security; WS-Security; WWeb applications','The advance of Web applications, services, and server technologies promises to have far-reaching effects on the Internet and enterprise networks. Web applications, services, and servers based on the eXtensible Markup Language (XML), SOAP, related open standards, and deployed in Service Oriented Architectures (SOA) allow data and applications to interact without human intervention through dynamic and ad hoc connections. Web applications, services, and server technology can be implemented in a wide variety of architectures; they can coexist with other technologies and software design approaches; and, they can be adopted in an evolutionary manner without requiring major transformations to legacy applications and databases. The security challenges presented by the Web applications, services, and server approach are formidable and unavoidable. Many of the features that make Web applications, services, and servers attractive (including greater accessibility of data, dynamic application-to-application connections, and relative autonomy orlack of human intervention), are at odds with traditional security models and controls. The primary purpose of this chapter is to inform the reader about securing Web applications, services, and servers. © 2013 Copyright © 2013 Elsevier Inc. All rights reserved.','',1,'Beuchelt G.','scopus/service oriented architecture security.csv','scopus','\0'),(2170,'Adapter for Self-Learning Production Systems','2012','2',' Production Systems Context Awareness Service-Oriented Architecture Machine Learning Context Adaptation','Abstract To face globalization challenges, modern production companies need to integrate the monitoring and control of secondary processes into shop floor core system to remain competitive and improve system performance and throughput. The research currently being done under the scope of Self-Learning Production Systems tries to fill this gap. Current work introduces the domain and a generic architecture, while focus over the responsible element for executing system adaptations according to current context: the Adapter. The Adapter architecture and its components are introduced as well as the generic Adaptation process. Early prototype scenarios applied to concrete real-world scenarios are also presented.','',1,'Gonçalo CândidoGiovanni Di OrioJosé BarataSebastian Scholze','springer/service oriented architecture security.csv','springer','\0'),(2171,'Research on the Computer Aided Platform of the Passenger Dedicated Line’s Engineering Affairs','2015','0',' The passenger dedicated line Engineering affairs Mobile terminal Web service','Abstract Based on the characteristics of passenger dedicated line’s works maintenance operation, the system framework of passenger dedicated line’s project affairs operation auxiliary platform is put forward and the mobile terminal’s development technology on the basis of IOS system is studied. The heterogeneous services of the system using Web Service is implemented, which provide valuable data to improve the efficiency of passenger dedicated line’s project affairs operation.','',1,'Kun ZhangChen Dingfang','springer/service oriented architecture security.csv','springer',''),(2172,'Towards Autonomous Services for Smart Mobile Devices','2003','0','','Abstract In this paper a framework is presented which allows the discovery and execution of services on connected and partially autonomous mobile devices. Discovery and execution procedures are sensitive to the user’s context (current location, personal preferences, current network situation etc.). We present a description language for service offers which is used to provide the necessary information for a service registry running on the mobile device itself. Services are executed in an abstract manner (in the sense of a non-specific implementation) from the user’s point of view, getting an optimal result with respect to the current context out of a set of parallel invoked service implementations.','',1,'Thomas Strang','springer/microservice security.CSV','springer',''),(2173,'HOTDOL: HTML Obfuscation with Text Distribution to Overlapping Layers','2014','0','DOM;HTML;Information repositories;content security;web browser','The purpose of this paper is to propose a method for protecting HTML content from unauthorized reuse. A document protected using this method can still be viewed with a standard text editor, but it is virtually impossible to modify, and is therefore unattractive for redistribution. Existing obfuscation methods and restriction codes that limit certain activities in the web browser are less effective due to fundamental problems of circumvention. Not only does our method address these problems using internal reconstruction of obfuscated text, but it also maintains full accessibility to web content. We begin by specifying the HOTDOL (HTML Obfuscation with Text Distribution to Overlapping Layers) standard, under which a document maintains its general layout but has its internal representation of HTML transformed into illegible text. We then suggest three alternative service architectures through which HOTDOL can be applied to existing web services. We performed a quantitative evaluation in the form of an offline survey with 12 questions, confirming the protectiveness of our method relative to other methods currently in use. To assess the computational efficiency of our method, we also measured the processing and rendering times for obfuscated documents in real environments, and found them to be commercially viable.','Computer and Information Technology (CIT), 2014 IEEE International Conference on',1,'S. Han; M. Ryu; J. Cha; B. U. Choi','ieee/service oriented architecture security.csv','ieee','\0'),(2174,'Coordinating the Web of Services for a Smart Home','2013','2','Service-oriented architecture, internet of things, service composition','Domotics, concerned with the realization of intelligent home environments, is a novel field which can highly benefit from solutions inspired by service-oriented principles to enhance the convenience and security of modern home residents. In this work, we present an architecture for a smart home, starting from the lower device interconnectivity level up to the higher application layers that undertake the load of complex functionalities and provide a number of services to end-users. We claim that in order for smart homes to exhibit a genuinely intelligent behavior, the ability to compute compositions of individual devices automatically and dynamically is paramount. To this end, we incorporate into the architecture a composition component that employs artificial intelligence domain-independent planning to generate compositions at runtime, in a constantly evolving environment. We have implemented a fully working prototype that realizes such an architecture, and have evaluated it both in terms of performance as well as from the end-user point of view. The results of the evaluation show that the service-oriented architectural design and the support for dynamic compositions is quite efficient from the technical point of view, and that the system succeeds in satisfying the expectations and objectives of the users.','',1,'Eirini Kaldeli and Ehsan Ullah Warriach and Alexander Lazovik and Marco Aiello','acm/service oriented architecture security.csv','acm','\0'),(2175,'Grid-based framework for high-performance processing of scientific knowledge','2014','0',' Scientific-knowledge processing Grid computing Workflow Data mining framework Text mining','Abstract An essential matter in the knowledge-based information society is how to extract useful information quickly from a large volume of literature. Since most existing data mining frameworks deal with structured input data, many limitations are faced in analyzing unstructured scientific literature and extracting new information. This study proposes a scientific-knowledge processing framework, which offers high performance by using grid computing technology for extracting important entities and their relations from the scientific literature. Since the grid computing provides a large volume of data storage and high-speed computing, the proposed framework can efficiently analyze the massive body of scientific literature and process knowledge. The workflow tool that we have developed for the proposed framework enables users to easily design and execute complicated applications that consist of complicated scientific-knowledge processes. The experimental results showed that the proposed framework reduced working time by approximately 83 % when the number of running nodes was assigned in accordance with the workload ratio of each step in scientific-knowledge processes. As a result, it is possible to effectively process a large volume of scientific literature by flexibly adjusting the number of computing nodes that constitute the grid environment as the number of documents for processing increases.','Multimedia Tools and Applications',2,'Chang-Hoo JeongYun-Soo ChoiHong-Woo ChunSa-Kwang SongHanmin JungSangkwan LeeSung-Pil Choi','springer/bpel security.csv','springer',''),(2176,'Service Composition in Knowledge-based SOA Systems','2012','14',' SOA Service Retrieval Service Composition','Abstract In this paper, we present the solution of the problem of Service Composition in Knowledge-based SOA (Service Oriented Architecture) Systems. SOA based systems are built of services - atomic or complex ones. Each service may have a different functional and non-functional description. The methods how to retrieve atomic service and compose complex services according to the user’s needs are discussed here.','New Generation Computing',1,'Paweł Świa̧tekPaweł StelmachAgnieszka PrusiewiczKrzysztof Juszczyszyn','springer/service oriented architecture security.csv','springer',''),(2177,'Towards Fine-Grained Verification of Application Mobility','2014','0',' mobility verification model checking','Abstract Component mobility introduces additional complexity for software engineers along with the convenience it brings to the end-users. The provision of detailed formal analysis can help to reduce the potential risks for the application design. In the paper, we propose a novel approach to facilitate fine-grained verification for component mobility based on Bogor, in which the domain specific knowledge can be embedded and provided as the first class entity. The customization helps to reduce the generated state space compared with others based on general-purpose model checkers. The experiment demonstrates the efficiency and feasibility of our approach.','',1,'Yu ZhouYankai HuangJidong GeJun Hu','springer/service oriented architecture security.csv','springer','\0'),(2178,'Optimization of Multiple-Objective Web Service Selection Using Fractional Programming','2014','0',' Web service selection SOA QoS Multiple objective programming Linear fractional programming','Abstract The Service Oriented Approach (SOA) is based on the idea that distributed applications can be flexibly composed by integrating independently developed component services. Due to the fact that a large number of available services offer similar functionality, when choosing actual services to be included in the composition their non-functional (Quality of Service – QoS) properties must also be taken into account. On the other hand certain constraints regarding the required performances (i.e. the required QoS levels) may also be given. Therefore, web service selection presents a multiple-objective multiple constraint problem and in this paper we model it as a discrete multiple-objective linear fractional programming (MOLFP) problem. In order to solve this problem we use a previously published technique for generating strongly efficient solutions to a continuous MOLFP problem to the discrete case. We present a complete methodology for solving the multiple criteria web service selection problem and report the experimental results obtained by testing it on 50 random instances generated by varying the input parameters.','Annals of Data Science',1,'Milan StanojevićBogdana StanojevićNina Turajlić','springer/soa security.csv','springer','\0'),(2179,'A reference requirements set for public service provision enterprise architectures','2014','0',' E-government Public service provision Requirements engineering Enterprise architecture ArchiMate','Abstract Electronic Government (eGov) is a political priority worldwide. One of the core objectives of eGov is the online public services provision (PSP). However, many of eGov PSP systems fail in realizing their objectives. Enterprise Architectures (EA) could contribute to overcome some of the relevant obstacles. The objective of this paper is to derive a reference requirements set for eGov PSP that can be used in EA development. Aiming at capitalizing on existing knowledge, we conduct a systematic literature review on eGov PSP systems requirements. This results in identifying a unified requirements set, i.e. 186 requirements, and stakeholders set, i.e. 19 stakeholders, for eGov PSP systems. Based on these findings, we determine 16 overview use cases demonstrating the basic functionality of such systems. Our findings are modeled using ArchiMate 2.0 notation. The identified requirements set can be used by virtually any public organization providing public services for developing its own EA. As a result, it can lead to the reduction of eGov PSP project failures, the decrease of software development costs and the improvement of its effectiveness and quality. Furthermore, it can be used as a basis to develop a complete reference EA for the eGov PSP domain.','Software & Systems Modeling',1,'Efthimios TambourisEleni KalivaMichail LiarosKonstantinos Tarabanis','springer/service oriented architecture security.csv','springer','\0'),(2180,'Middleware requirements for collaborative unmanned aerial vehicles','2013','4','Ad Hoc Networks;Collaborative Systems;Middleware;Service-Oriented Architecture;Unmanned Aerial Vehicles','With the recent advances in the aircraft technologies, software, sensors, and communications; unmanned aerial vehicles (UAVs) can offer a wide range of applications. Some of these applications may involve multiple UAVs that cooperate and collaborate to achieve a common goal. This kind of applications is termed collaborative UAVs applications. One of the main research topics for multiple UAVs is developing an effective framework to enable the development of software systems for collaborative UAVs operations. One possible approach is to rely on middleware technologies to simplify the development and operations of such applications. This paper discusses the challenges of developing collaborative UAVs applications and how middleware can help resolve some of these challenges. In addition, the paper studies the utilization of service-oriented middleware infrastructures for implementing and operating collaborative UAVs applications. Finally, the paper investigates the collaborative aspect of multiple UAVs and lists the functions needed for service-oriented middleware to satisfy the development and operations of such applications.','Unmanned Aircraft Systems (ICUAS), 2013 International Conference on',1,'N. Mohamed; J. Al-Jaroodi; I. Jawhar; S. Lazarova-Molnar','ieee/service oriented architecture security.csv','ieee','\0'),(2181,'Smart-Grid-Architekturen in Österreich: Eine Bewertung der IKT-Sicherheitsaspekte relevanter Pilotprojekte','2013','0','Schlüsselwörter Smart Grid Architekturmodell IKT-Sicherheit Pilotprojekte Smart Grid architecture model ICT security pilot projects','Zusammenfassung Die Stromversorgung der Zukunft (Smart Grid) wird weit mehr auf IKT setzen als bisher, und damit werden Cyber Security-Risiken auch zu einer Gefahr für die Energieversorgung. Das Forschungsprojekt Smart Grid Security Guidance ( SG ) 2 hat das Ziel, solche Risiken zu untersuchen und entsprechende Sicherheitsmaßnahmen zu entwickeln. In einem ersten Schritt wurden die Sicherheitsaspekte von Smart-Grid-Pilotprojekten in Österreich untersucht, wozu ihre Systemarchitektur auf das Smart Grid Architecture Model abgebildet wurde, eine für den europäischen Kontext entwickelte Referenzarchitektur zur Darstellung von Smart-Grid-Anwendungsfällen. Auf diese Weise lässt sich ein IKT-Architekturmodell für Smart Grids in Österreich definieren, welches die Basis für weitere Sicherheitsanalysen im Projekt (SG) 2 bildet.','e & i Elektrotechnik und Informationstechnik',1,'Berthold HaberlerGeorg KienesbergerFriederich KupzogLucie Langer','springer/soa security.csv','springer','\0'),(2182,'Self-Reconfiguring Microservices','2016','0',' Microservices Service-Oriented Architecture Automatic deployment Optimal component allocation','Abstract Microservices is an emerging paradigm for the development of distributed systems that, originating from Service-Oriented Architecture, focuses on the small dimension, the loose coupling, and the dynamic topology of services. Microservices are particularly appropriate for the development of distributed systems in the Cloud. However, their dynamic nature calls for suitable techniques for their automatic deployment. In this paper we address this problem and we propose JRO (Jolie Redeployment Optimiser), a tool for the automatic and optimised deployment of microservices written in the Jolie language. The tool uses Zephyrus, a state of the art tool that automatically generates a fully detailed Service-Oriented Architecture configuration starting from a partial and abstract description of the target application.','',1,'Maurizio GabbrielliSaverio GiallorenzoClaudio GuidiJacopo MauroFabrizio Montesi','springer/microservice security.CSV','springer',''),(2183,'Reusable components for online reputation systems','2015','1',' Trust Reputation Reusability Trust pattern','Abstract Reputation systems have been extensively explored in various disciplines and application areas. A problem in this context is that the computation engines applied by most reputation systems available are designed from scratch and rarely consider well established concepts and achievements made by others. Thus, approved models and promising approaches may get lost in the shuffle. In this work, we aim to foster reuse in respect of trust and reputation systems by providing a hierarchical component taxonomy of computation engines which serves as a natural framework for the design of new reputation systems. In order to assist the design process we, furthermore, provide a component repository that contains design knowledge on both a conceptual and an implementation level. To evaluate our approach we conduct a descriptive scenario-based analysis which shows that it has an obvious utility from a practical point of view. Matching the identified components and the properties of trust introduced in literature, we finally show which properties of trust are widely covered by common models and which aspects have only rarely been considered so far.','Journal of Trust Management',1,'Johannes SängerChristian RichthammerGünther Pernul','springer/webservice security.csv','springer',''),(2184,'Developing highly complex distributed systems: a software engineering perspective','2012','2',' Future Internet Service-oriented computing Service-oriented middleware Cloud computing Middleware-based software process','Abstract What is a highly complex distributed system in the future era? What are the needs that may drive the development of such systems? And what is their life cycle? Is there any new challenge for Software Engineering (SE)? In this paper, we try to provide a partial answer to the above questions by characterizing few application domains that we consider of raising interest in the next years. Our thesis is that there is a need to rethink the whole software process for such systems. The traditional boundaries between static and dynamic activities disappear and development support mingles with run time support thus invading the middleware territory.','Journal of Internet Services and Applications',1,'Marco AutiliPaola InverardiPatrizio PelliccioneMassimo Tivoli','springer/service oriented architecture security.csv','springer','\0'),(2185,'Avoiding common security flaws in composed service-oriented systems','2012','','Information Assurance; Service Oriented Architecture; Survivability; Trustworthy system design','Network-centric information systems are increa-singly called upon to support complex tasks and missions that serve multiple communities of interest. As a result, existing capabilities are exposed as services in a service-oriented system, and newer capabilities are derived by discovering and composing available services. While service-orientation enables and facilitates such composition-based system construction, the evolving nature and variety of standards and the varying level of compliance of otherwise feature-rich vendor products has made achieving acceptable level of security and resilience in such systems a daunting and error-prone task. This paper presents a number of factors that contribute to the security of composed service-oriented systems, and outlines ways to avoid common pitfalls and mistakes that stem from these factors and weaken the resiliency and survivability of the composed system. © 2012 IEEE.','',1,'Atighetchi M., Pal P., Loyall J., Sinclair A.','scopus/service oriented architecture security.csv','scopus','\0'),(2186,'Wireless Sensor Networks and Service-Oriented Architecture, as suitable approaches to be applied into ITS','2012','','Intelligent Transportation Systems; ITS; Navigation; Parking Systems; Service-Oriented Architecture; SOA; Web Services; Wireless Sensors Networks; WSN','In this paper, Wireless Sensor Networks (WSN) and Service-Oriented Architecture (SOA) approaches are analyzed given that represent both emerging and key role for Intelligent Transportations Systems (ITS). However, It is worth noting that WSN and SOA approaches have begun to be applied into ITS separately and day by day these approaches tend to be combined to get the best outcomes for both safety and security for ITS applications. For this reason, a discussion of the principals ITS applications of these two approaches and a case study, that has been designed and implemented to illustrate their advantages, are presented. The case study is focused on support a very useful ITS service associated with the localization of parking spaces. © 2012 ACM.','',1,'Herrera-Quintero L.F., Maciá-Pérez F., Marcos-Jorquera D., Gilart-Iglesias V.','scopus/service oriented architecture security.csv','scopus','\0'),(2187,'A framework and language support for dynamic security policy in service-oriented architecture','2014','1','BPEL; Security policy; SOA; Web services; Workflow','In today\'s global network-based environment, where mission-critical applications typically run on highly distributed systems, customers expect reliable, available, and secure services. Supporting security becomes an important issue in service-oriented architecture (SOA). This paper describes how to simultaneously support both dynamic security policies and separation of concerns when developing an SOA application. We propose the DPSL (dynamic policy specification language) for managing and controlling the security according to the dynamic behavior of the workflow in SOA. The operation model is compatible with existing SOA standards, such as the WSDL, WS-Policy, WS-Security-Policy, WS-ReliableMessaging, and the BPEL. As a result, existing standard Web-services engines and BPEL engines can be employed directly to support dynamic policies in SOA. The implementation and experimental results demonstrate the feasibility of the proposed architecture. © 2014, Institute of Information Science. All rights reserved.','',2,'Chi W.U.-L., Hwang G.-H.','scopus/bpel security.csv','scopus',''),(2188,'A secure smart card authentication and authorization framework using in multimedia cloud','2016','0',' Cloud computing Diffie-Hellman key exchange User authentication Smart card RBAC','Abstract Through the rapid evolution of information technology, there are many innovative services and products bring a lot of convenience for people especially “Cloud Computing”. The cloud computing provides users more than personal computer’s storage resources and calculate ability. Nowadays the most consume hard drive space or calculate resources are belong to multimedia applications, such like HD videos, HD computer games and so on. Because of the reason of the requirement, the cloud computing technology also develop multimedia cloud. The multimedia cloud is evolved from media cloud and multimedia-aware cloud, combine with the highly calculate ability, high quality of service and virtually unlimited storage space. Users can put all the multimedia content or games into the multimedia cloud. But there is still a harassment, the “Information Security”. Before users can use multimedia cloud, they must go through an insecure network environment between cloud services and user’s equipment. Malicious attackers usually attack this insecure section to capture user’s information. Besides the privacy of the user’s data in the multimedia cloud is also a fatal reason that why users don’t use this convenience and powerful service. In this article, we provide a smart card based secure authentication mechanism and a protect user’s data authorization framework. We expect the framework can protect users’ privacy and their data.','Multimedia Tools and Applications',1,'Ta-Chih YangNai-Wei LoHorng-Twu LiawWei Chen Wu','springer/service oriented architecture security.csv','springer',''),(2189,'Summary and Future Work','2016','0','','Abstract We have come to the end of the book, which has investigated different aspects of anti-fragile information and communications technology (ICT) systems. This chapter summarizes the book’s main insights into the development and operation of anti-fragile ICT systems, discusses the design of future systems, and outlines the need for anti-fragile processes, especially to handle attacks on the confidentiality, integrity, and availability of ICT systems.','',1,'Kjell Jørgen Hole','springer/microservice security.CSV','springer',''),(2190,'Preventing data leakage in service orchestration','2011','0','','Web Services are currently the base of a lot a e-commerce applications. Nevertheless, clients often use these services without knowing anything about their internals. Moreover, they have no clue about the use of their personal data inside the global applications. In this paper, we offer the opportunity to the user to specify constraints on the use of its personal data. To ensure the privacy of data at runtime, we define a distributed security policy model. This policy is configured at runtime by the user of the BPEL program. This policy is enforced within a BPEL interpreter, and ensures that no information flow can be produced from the user data to unauthorized services. However, the dynamic aspects of web services lead to situations where the policy prohibits the nominal operation of orchestration (e.g., when using a service that is unknown by the user). To solve this problem, we propose to let user to dynamically permit exceptional unauthorized flows. In order to make decision, the user is provided with all information necessary for decision-making. We also present an implementation inside the Orchestra BPEL interpreter. As far as we know this implementation is the first information flow monitor for web services that is also end-user configurable.','Information Assurance and Security (IAS), 2011 7th International Conference on',2,'T. Demongeot; E. Totel; Y. Le Traon','ieee/bpel security.csv','ieee','\0'),(2191,'TransportML: A Middleware for Location-Based Services Collaboration','2009','0','','Location-Based Services (LBS) are information and entertainment services, accessible with mobile devices and making use of the position of the mobile device. Although LBS are now widely used, better results could be obtained by merging information issued by several services. Inter-LBS collaboration is still uncommon although a lot of work is done on service orchestration languages such as WS-BPEL 2.0. One of the obstacles is that LBS are created and updated on the fly. This dynamism makes manual composition scenario update difficult. To tackle this problem, we introduce TransportML, a middleware for inter-LBS collaboration, in an automatic fashion. TransportML relies on technologies such as Web services and semantic Web. In this platform, services are discovered and collaboration scenarios are elaborated on the fly. As a consequence, the platform is auto-adaptive and composition scenario maintenance is no longer required.','2009 3rd International Conference on New Technologies, Mobility and Security',2,'A. Roxin; C. Dumez; N. Cottin; J. Gaber; M. Wack','ieee/bpel security.csv','ieee','\0'),(2192,'Operational Semantics of Aspects in Business Process Management','2012','1',' Business Process Management Workflow Management Systems Aspect Oriented Coloured Petri Nets Weaving','Abstract Aspect orientation is an important approach to address complexity of cross-cutting concerns in Information Systems. This approach encapsulates these concerns separately and compose them to the main module when needed. Although there are different works which shows how this separation should be performed in process models, the composition of them is an open area. In this paper, we demonstrate the semantics of a service which enables this composition. The result can also be used as a blueprint to implement the service to support aspect orientation in Business Process Management area.','',2,'Amin JalaliPetia WohedChun Ouyang','springer/bpmn security.csv','springer','\0'),(2193,'Protocol Conformance Checking of Services with Exceptions','2012','0','','Abstract In our previous work we defined a conservative abstraction of the behaviour of service-oriented systems and a contract based on interactions (named service protocol) to be verified. We have achieved modeling unbound concurrency and unbound recursion within this abstraction. However, these works are based only on services that do not raise exceptions. In this paper, we extend our previous work such that service protocols can be verified even if the service interface may raise exceptions.','',2,'Christian HeikeWolf ZimmermannAndreas Both','springer/bpel security.csv','springer','\0'),(2194,'Prediction of Relevance between Requests and Web Services Using ANN and LR Models','2013','0',' Web service discovery Semantic Web service matchmaker Relevance prediction Logistic Regression Artificial Neural Network','Abstract An approach of Web service matching is proposed in this paper. It adopts semantic similarity measuring techniques to calculate the matching level between a pair of service descriptions. Their similarity is then specified by a numeric value. Determining a threshold for this value is a challenge in all similar matching approaches. To address this challenge, we propose the use of classification methods to predict the relevance of requests and Web services. In recent years, outcome prediction models using Logistic Regression and Artificial Neural Network have been developed in many research areas. We compare the performance of these methods on the OWLS-TC v3 service library. The classification accuracy is used to measure the performance of the methods. The experimental results show the efficiency of both methods in predicting the new cases. However, Artificial Neural Network with sensitivity analysis model outperforms Logistic Regression method.','',1,'Keyvan MohebbiSuhaimi IbrahimNorbik Bashah Idris','springer/service oriented architecture security.csv','springer','\0'),(2195,'Smarter environments: A compact service-oriented framework for context-awareness','2014','','Automata; Context-awareness; Security; Service oriented architecture; Smart environments','Context-awareness is an essential feature for establishing and sustaining a variety of specific as well as generic smarter environments. However, the acts of gleaning context information from different and distributed sources and interpreting it for real-time and actionable insights are not easy tasks. Having understood this requirement, we have conceptualized a new-generation context-awareness framework in order to simplify and streamlining context-awareness, which is the distinct need for next-generation smarter spaces. In this study, we have laid down all the right and relevant details of the approach and the framework solution through a host of renowned use cases. Further on, we have vividly illustrated the performance evaluations for the authenticity and strategic success of our approach and the solution incorporated. © 2014 Asian Network for Scientific Information.','',1,'Venkatesh V., Raj P., Vaithiyanathan V., Amirtharajan R.','scopus/service oriented architecture security.csv','scopus','\0'),(2196,'A Model-Driven Service Integrated Framework Based on Three-Layer Ontology','2013','0',' Three-layer Ontology Model-driven Business Process Management Standardization Automation Service Integration','Abstract The misunderstanding of business models and the inefficiency of service integration impede the business process management and cause inconvenience to enterprise operations, especially in the Internet era. In this paper, a model-driven service integrated framework based on three-layer ontology is proposed to manage the processes and web services in a comprehensive and semantically way. It covers four phases of business process management, including designing, management, execution and feedback. The proposed ontology consists of three layers: the general ontology for business process modeling, the domain ontology for a domain-specific modeling and the scene ontology for a certain business scene. With the ontology’s capability of finding correlations and automatic reasoning, the framework unifies the semantics of business process models, supports the transformation from models to services, promotes the service integration, facilitates the automation of process execution and ensures the sustainability.','',2,'Zijia LiuHongming CaiLihong Jiang','springer/bpel security.csv','springer','\0'),(2197,'Small-world based trust evaluation model for web service','2012','1','Small-world model; Subjective logic; Trust model; Web service','As popular web applications, web services can provide very flexible application integration taking advantage of existing Internet protocols and open standards. However, there are a few stubborn problems which exist in its architectures, for example, security. Especially in distributed services environment, trust which is a proved way to resolve security problem of web service is crucial to service providers and service customers for protecting service transactions and message delivering. In this paper, a web services trust evaluation model based on small world model is proposed. Firstly, an expanded subjective logic model is proposed. Secondly, a framework of SOA is built upon trust management module. Thirdly, the computing of subjective logic is improved based on small world, and the components in SOA are organized in small world. And then, the trust architecture of web service is presented. Finally, a simulation platform is used to study the evolution process of trust value in the model. The experiments and analysis show that the model can support evolving the web services trust. © 2012 IEEE.','',1,'Yu Z., Liu F.','scopus/soa security.csv','scopus','\0'),(2198,'Practical Interruptible Conversations','2013','8','','Abstract The rigorous and comprehensive verification of communication-based software is an important engineering challenge in distributed systems. Drawn from our industrial collaborations [33,28] on Scribble, a choreography description language based on multiparty session types, this paper proposes a dynamic verification framework for structured interruptible conversation programming. We first present our extension of Scribble to support the specification of asynchronously interruptible conversations. We then implement a concise API for conversation programming with interrupts in Python that enables session types properties to be dynamically verified for distributed processes. Our framework ensures the global safety of a system in the presence of asynchronous interrupts through independent runtime monitoring of each endpoint, checking the conformance of the local execution trace to the specified protocol. The usability of our framework for describing and verifying choreographic communications has been tested by integration into the large scientific cyberinfrastructure developed by the Ocean Observatories Initiative. Asynchronous interrupts have proven expressive enough to represent and verify their main classes of communication patterns, including asynchronous streaming and various timeout-based protocols, without requiring additional synchronisation mechanisms. Benchmarks show conversation programming and monitoring can be realised with little overhead.','',2,'Raymond HuRumyana NeykovaNobuko YoshidaRomain DemangeonKohei Honda','springer/bpel security.csv','springer','\0'),(2199,'Comparative Study of Service-Based Security-Aware Business Processes Automation Tools','2013','0','automation;business processes;service composition;web services','The use of business processes to model and design business activities is becoming a reality to a significant number of companies. Meanwhile, the Service-Oriented Architecture (SOA) is being a widely adopted strategy for business processes execution, which often demands communication between different (and remote) services. This fact leads to the need of incorporating security elements into business processes, because sensitive data can be targeted in the communication process. Existing tools currently focus both on the functional automation by translating high-level business processes in executable artifacts and/or on the security automation by translating security requirements into executable security configurations. In this work, we present a comparative study that evaluates these tools using relevant metrics. A solution named BPA-Sec Analyzer was also developed to automatically generate relevant statistics information related to the produced artifacts. An illustrative scenario is introduced to support the comparison/evaluation.','2013 IEEE International Conference on Systems, Man, and Cybernetics',1,'F. Lins; J. Damasceno; R. Medeiros; E. Sousa; N. Rosa','ieee/service oriented architecture security.csv','ieee','\0'),(2200,'Trust-Based Collaboration Service Framework: A Platform for Communication and Content Sharing','2012','0','','This article discusses a novel framework for trust-based multidevice collaboration services. This framework opens up significant scope for applications and collaboration opportunities among heterogeneous devices mimicking human interaction. We present a topology map middleware service and a distributed querying application service that run on top of this framework. We are currently working on addressing the key challenges presented and developing new middleware, application services, and optimization techniques that leverage heterogeneous multidevice collaboration such as colocation detection, determining colocation pattern, and task offloading.','IEEE Vehicular Technology Magazine',1,'S. Thota; R. Anantharangachar; S. Dixit; B. Mukherjee','ieee/service oriented architecture security.csv','ieee','\0'),(2201,'Information quality in healthcare social media – an architectural approach','2016','0',' Healthcare social networks Information quality Safety System architecture Policy','Abstract The evolution of the Internet has provided new and more efficient communication and collaboration channels between individuals, empowering them to share health information and to interact more and more using social media channels. Information quality is frequently identified as one of the main limitations of social media in healthcare. The objective of the paper is to discuss the social implications and limitations on information quality in healthcare social media, and particularly to contribute to the analysis and development of healthcare social networks (SN) and online healthcare social network services (SNS). For that reason, a formal architectural analysis of healthcare SN and SNS has been proposed, considering the complexity of both systems, but stressing on quality of Information aspects. Any social system - and its network of interrelations - can be analyzed as a real world system. Therefore, it is possible to model the structural components, interrelations and functionality (system architecture) of healthcare SN and SNS. The Generic Component Model (GCM) has demonstrated to be an ideal architectural framework for any real system’s analysis. Based on the GCM, the architecture of quality aware healthcare SNS is proposed. Information quality is addressed in the domain dimension of the GCM, supported by the definition of information quality policies. The practical implementation of quality-driven online SNS and information quality policies was demonstrated by the development of an online SNS supporting health promotion programs in a healthcare institution. In order to evaluate the relevance of the information quality policies proposed, a descriptive study was performed, in which the content published in the online SNS was selected strictly following the information quality policy. The study demonstrated that users’ perceived information quality was high. The paper addresses sociotechnical aspects of social media by providing a formal method for the management of information quality in online healthcare social networks.','Health and Technology',1,'D. M. LopezB. BlobelC. Gonzalez','springer/soa security.csv','springer',''),(2202,'Dynamic Authentication for Cross-Realm SOA-Based Business Processes','2012','3','Authentication;interorganizational security;multiparty interactions;service-oriented architecture;web services.','Modern distributed applications are embedding an increasing degree of dynamism, from dynamic supply-chain management, enterprise federations, and virtual collaborations to dynamic resource acquisitions and service interactions across organizations. Such dynamism leads to new challenges in security and dependability. Collaborating services in a system with a Service-Oriented Architecture (SOA) may belong to different security realms but often need to be engaged dynamically at runtime. If their security realms do not have a direct cross-realm authentication relationship, it is technically difficult to enable any secure collaboration between the services. A potential solution to this would be to locate intermediate realms at runtime, which serve as an authentication path between the two separate realms. However, the process of generating an authentication path for two distributed services can be highly complicated. It could involve a large number of extra operations for credential conversion and require a long chain of invocations to intermediate services. In this paper, we address this problem by designing and implementing a new cross-realm authentication protocol for dynamic service interactions, based on the notion of service-oriented multiparty business sessions. Our protocol requires neither credential conversion nor establishment of any authentication path between the participating services in a business session. The correctness of the protocol is formally analyzed and proven, and an empirical study is performed using two production-quality Grid systems, Globus 4 and CROWN. The experimental results indicate that the proposed protocol and its implementation have a sound level of scalability and impose only a limited degree of performance overhead, which is for example comparable with those security-related overheads in Globus 4.','IEEE Transactions on Services Computing',1,'J. Xu; D. Zhang; L. Liu; X. Li','ieee/service oriented architecture security.csv','ieee','\0'),(2203,'Service oriented evolutionary algorithms','2013','6',' Evolutionary algorithms Service oriented architecture Service oriented science Web services Interoperability Distributed computing','Abstract This work presents a service oriented architecture for evolutionary algorithms, and an implementation of this architecture using a specific technology (called OSGiLiath). Service oriented architecture is a computational paradigm where users interact using services to increase the integration between systems. The presented abstract architecture is formed by loosely coupled, highly configurable and language-independent services. As an example of an implementation of this architecture, a complete process development using a specific service oriented technology is explained. With this implementation, less effort than classical development in integration, distribution mechanisms and execution time management has been attained. In addition, steps, ideas, advantages and disadvantages, and guidelines to create service oriented evolutionary algorithms are presented. Using existing software, or from scratch, researchers can create services to increase the interoperability in this area.','Soft Computing',1,'P. García-SánchezJ. GonzálezP. A. CastilloM. G. ArenasJ. J. Merelo-Guervós','springer/service oriented architecture security.csv','springer','\0'),(2204,'Bücher','2013','0','','','HMD Praxis der Wirtschaftsinformatik',1,'Prof. Dr. Matthias Knoll','springer/soa security.csv','springer','\0'),(2205,'Contractual Proximity of Business Services','2015','0',' Service engineering Goal modeling Service contract Quality of service Service composition Serviceability Outsourcing','Abstract Business services arguably play a central role in service-based information systems as they would fill in the gap between the technicality of Service-Oriented Architecture and the business aspects captured in Enterprise Architecture. Business services have distinctive features that are not typically observed in Web services, e.g. significant portions of the functionality of business services might be executed in a human-mediated fashion. The representation of business services requires that we view human activity and human-mediated functionality through the lens of computing and systems engineering. Given the specification of a relatively complex business service, practitioners can deal with its complexity either by breaking it down into constituent services through common practices such as outsourcing or delegation, or by picking up an existing group of services (e.g. from a service catalog) that best realize that functionality. To address these challenges, we devise a formal machinery to (a) verify if a group of services contractually match the specification of the larger service in question; (b) to assess the contractual proximity of service groups relative to a contractual service specification to help decide which combination of services from a catalog best realize the desired functionality.','',1,'Lam-Son Lê','springer/service oriented architecture security.csv','springer',''),(2206,'Model-based specification and refinement of usage control policies','2013','4','','In existing usage control policy frameworks, policies consisting of authorizations and obligations are specified at a low level of abstraction. As a consequence, these policy specifications become long and complex since they reference many technical elements of the system such as operating system calls or web-service invocations. Due to this complexity, it is difficult for policy authors to assess if the policies they specify are complete and correct in order to achieve their high-level usage control goals. In this paper we describe our approach for specification and refinement of usage control policies that addresses this complexity problem. In our approach, high-level usage control policies are specified considering an abstract system model and automatically refined with the help of policy refinement rules to implementation-level policies. The input of our refinement rules is the abstract system model, the concrete system model, the system refinement steps from abstract to concrete, and the abstract usage control policies. We show the application of our approach in a case study of a supply chain scenario implemented using BPMN. In our case study high-level usage control policies are automatically refined to implementation-level policies that can be enforced in a BPMN engine.','Privacy, Security and Trust (PST), 2013 Eleventh Annual International Conference on',2,'R. Neisse; J. Doerr','ieee/bpmn security.csv','ieee','\0'),(2207,'A Standardized SOA for Clinical Data Interchange in a Cardiac Telemonitoring Environment','2014','1','Electronic health record (EHR);healthcare;healthcare services specification project (HSSP);interoperability;telemedicine solution','Care of chronic cardiac patients requires information interchange between patients\' homes, clinical environments, and the electronic health record. Standards are emerging to support clinical information collection, exchange and management and to overcome information fragmentation and actors delocalization. Heterogeneity of information sources at patients\' homes calls for open solutions to collect and accommodate multidomain information, including environmental data. Based on the experience gained in a European Research Program, this paper presents an integrated and open approach for clinical data interchange in cardiac telemonitoring applications. This interchange is supported by the use of standards following the indications provided by the national authorities of the countries involved. Taking into account the requirements provided by the medical staff involved in the project, the authors designed and implemented a prototypal middleware, based on a service-oriented architecture approach, to give a structured and robust tool to congestive heart failure patients for their personalized telemonitoring. The middleware is represented by a health record management service, whose interface is compliant to the healthcare services specification project Retrieve, Locate and Update Service standard (Level 0), which allows communication between the agents involved through the exchange of Clinical Document Architecture Release 2 documents. Three performance tests were carried out and showed that the prototype completely fulfilled all requirements indicated by the medical staff; however, certain aspects, such as authentication, security and scalability, should be deeply analyzed within a future engineering phase.','IEEE Journal of Biomedical and Health Informatics',1,'R. Gazzarata; F. Vergari; T. S. Cinotti; M. Giacomini','ieee/service oriented architecture security.csv','ieee','\0'),(2208,'Rethinking the ESB: Building a secure bus with an SOA gateway','2012','1','','For years the Enterprise Service Bus (ESB) has been seen as a corporate integration and messaging backbone upon which application architectures are built. However, this concept must evolve to meet the requirements of today\'s corporate landscape, where IT boundaries are blurring, driven by the need to securely integrate with partners, cloud and mobile applications. © 2012 Elsevier Ltd.','',1,'Ryan J.','scopus/soa security.csv','scopus','\0'),(2209,'Information systems security and security extension in Jersey RESTful framework','2012','1','Informacioni sistemi;Jersey;RESTful;servisi;sesije;sigurnost;tokeni','As information systems are becoming more distributed, with an emphasis on service oriented technologies, it is necessary to implement security on access and communication with them. On market vendors offer different software solutions in a form of frameworks in a domain of service application security, and different concepts post certain specific constraints on design of security subsystem of such systems. In this paper current methods in RESTful service security will be depicted, and extension elaborated in detail for Jersey RESTful framework for the purpose of efficiency enhancement.','Telecommunications Forum (TELFOR), 2012 20th',1,'D. Kosmajac; V. Vujović','ieee/service oriented architecture security.csv','ieee','\0'),(2210,'Team Situational Awareness and Architectural Decision Making with the Software Architecture Warehouse','2013','3','','Abstract The core of the design of software architecture is all about architectural decision making. A high-quality design outcome sets high requirements, not only on the skills and knowledge of the design team members, but also on the management of the decision making process. We claim that in order to deliver high quality decisions, the design team needs to obtain a high level of situational awareness. To address this, we present an analysis of the problem of team situational awareness in design workshops and propose a model on how stakeholder positions help to build consensus within the argumentation viewpoint of architectural decisions. We show how the Software Architecture Warehouse tool has been extended to support the argumentation viewpoint within its live design document metaphor to provide support for co-located and distributed design workshops.','',1,'Marcin NowakCesare Pautasso','springer/service oriented architecture security.csv','springer','\0'),(2211,'Learning Algorithms in the Detection of Unused Functionalities in SOA Systems','2013','0','','Abstract The objective of this paper is to present an application of learning algorithms to the detection of anomalies in SOA system. As it was not possible to inject errors into the “real” SOA system and to analyze the effect of these errors, a special model of SOA system was designed and implemented. In this system several anomalies were introduced and the effectiveness of algorithms in detecting them were measured. The results of experiments can be used to select efficient algorithm for anomaly detection. Two algorithms: K-means clustering and Kohonen networks were used to detect the unused functionalities and the results of this experiment are discussed.','',2,'Ilona BluemkeMarcin Tarka','springer/bpel security.csv','springer','\0'),(2212,'A reliable DICOM transfer grid service based on petri net workflows','2008','4','','Medical grid networks typically deal with extremely sensitive information and therefore require a special diligence in terms of security and reliability. This holds especially true in Medical Imaging, which is why the medical community long established DICOM (Digital Imaging and Communication in Medicine), a world-wide imaging and communication standard for secure and reliable data interchange. Most healthgrid projects today use DICOM with a combination of GridFTP and the Reliable-File-Transfer (RFT) webservice. Due to the multiple protocols and services involved, this solution is not ideally suited in terms of reliability or fault-tolerance. The proposed solution in this paper replaces the GridFTP combination by an end-to-end Grid-enhanced DICOM implementation and models the GridDICOM transfers as complex, Petri-Nets-based workflows. Based on these workflows, a respective workflow engine can autonomously and reliably control transfers including complex fault recovery and optimized routing strategies. A first prototype of the service, the components, and the respective workflows have been developed and successfully tested in MediGRID, the German grid network for life-sciences. © 2008 IEEE.','',1,'Vossberg M., Hoheisel A., Tolxdorff T., Krefting D.','scopus/webservice security.csv','scopus','\0'),(2213,'Making Data Meaningful: The Business Intelligence Model and Its Formal Semantics in Description Logics','2012','5',' Business Intelligence Business Model Goal Modeling Situation Analysis Model Reasoning Goal Reasoning Formal Semantics Description Logics','Abstract Business Intelligence (BI) offers great opportunities for strategic analysis of current and future business operations; however, existing BI tools typically provide data-oriented responses to queries, difficult to understand in terms of business objectives and strategies. To make BI data meaningful, we need a conceptual modeling language whose primitive concepts represent business objectives, processes, opportunities and threats. We have previously introduced such a language, the Business Intelligence Model (BIM). In this paper we consolidate and rationalize earlier work on BIM, giving a precise syntax, reducing the number of fundamental concepts by using meta-attributes , and introducing the novel notion of “pursuit”. Significantly, we also provide a formal semantics of BIM using a subset of the OWL Description Logic (DL). Using this semantics as a translation, DL reasoners can be exploited to (1) propagate evidence and goal pursuit in support of “what if?” reasoning, (2) allow extensions to the BIM language, (3) detect inconsistencies in specific BIM models, and (4) automatically classify defined concepts relative to existing concepts, organizing the model.','',2,'Jennifer HorkoffAlex BorgidaJohn MylopoulosDaniele BaroneLei JiangEric YuDaniel Amyot','springer/bpmn security.csv','springer','\0'),(2214,'PGSW-OS: a novel approach for resource management in a semantic web operating system based on a P2P grid architecture','2014','2',' Web operating systems (Web OS) Ontology P2P grid Cloud, resource management Semantic overlay network (SON)','Abstract A web operating system is an operating system that users can access from any hardware at any location. A peer-to-peer (P2P) grid uses P2P communication for resource management and communication between nodes in a grid and manages resources locally in each cluster, and this provides a proper architecture for a web operating system. Use of semantic technology in web operating systems is an emerging field that improves the management and discovery of resources and services. In this paper, we propose PGSW-OS (P2P grid semantic Web OS), a model based on a P2P grid architecture and semantic technology to improve resource management in a web operating system through resource discovery with the aid of semantic features. Our approach integrates distributed hash tables (DHTs) and semantic overlay networks to enable semantic-based resource management by advertising resources in the DHT based upon their annotations to enable semantic-based resource matchmaking. Our model includes ontologies and virtual organizations. Our technique decreases the computational complexity of searching in a web operating system environment. We perform a simulation study using the Gridsim simulator, and our experiments show that our model provides enhanced utilization of resources, better search expressiveness, scalability, and precision.','The Journal of Supercomputing',1,'Saeed JavanmardiMohammad ShojafarShahdad ShariatmadariJemal H. AbawajyMukesh Singhal','springer/soa security.csv','springer','\0'),(2215,'Secure cloud storage service and limited proxy re-encryption for enforcing access control in public cloud','2013','1','Access control; Cloud storage provider; Limited proxy re-encryption; Outsourcing; Secure cloud storage service','Cloud computing is a new computing paradigm wherein the resources of the computing infrastructure are provided as services over the internet. The benefits offered by the public cloud encourage the data owners/organisations to store their data on to the cloud storage provided by the cloud storage provider. Cloud computing poses new security challenges as the users outsource their data to public cloud. Building a secure cloud storage service on top of a public cloud infrastructure where the service provider is not completely trusted by the data owner is a security challenge. The existing popular storage services does not provide cryptographic guarantee for the security. They are often guided by service level agreements and policies. In this paper, we propose and implement a secure storage service providing a cryptographic guarantee for the security to store, access and share the user\'s data. We propose the notion of limited proxy re-encryption scheme to restrict the proxy from re-encrypting more than specified number of delegator\'s ciphertexts. We give the security model and analyse the scheme for security. We use the proposed limited proxy re-encryption scheme as the primitive and design an improved and efficient sharing method for the secure storage service. Copyright © 2013 Inderscience Enterprises Ltd.','',1,'Purushothama B.R., Shrinath B., Amberker B.B.','scopus/service oriented architecture security.csv','scopus','\0'),(2216,'Heuristics for composite Web service decentralization','2014','2',' Service composition Decentralized service execution Quality of service','Abstract A composite service is usually specified by means of a process model that captures control-flow and data-flow relations between activities that are bound to underlying component services. In mainstream service orchestration platforms, this process model is executed by a centralized orchestrator through which all interactions are channeled. This architecture is not optimal in terms of communication overhead and has the usual problems of a single point of failure. In previous work, we proposed a method for executing composite services in a decentralized manner. However, this and similar methods for decentralized composite service execution do not optimize the communication overhead between the services participating in the composition. This paper studies the problem of optimizing the selection of services assigned to activities in a decentralized composite service, both in terms of communication overhead and overall quality of service, and taking into account collocation and separation constraints that may exist between activities in the composite service. This optimization problem is formulated as a quadratic assignment problem. The paper puts forward a greedy algorithm to compute an initial solution as well as a tabu search heuristic to identify improved solutions. An experimental evaluation shows that the tabu search heuristic achieves significant improvements over the initial greedy solution. It is also shown that the greedy algorithm combined with the tabu search heuristic scale up to models of realistic size.','Software & Systems Modeling',2,'Walid FdhilaMarlon DumasClaude GodartLuciano García-Bañuelos','springer/bpel security.csv','springer',''),(2217,'State Machine Abstraction Layer','2014','0','','Abstract Smalldb uses a non-deterministic parametric finite automaton combined with Kripke structures to describe lifetime of an entity, usually stored in a traditional SQL database. It allows to formally prove some interesting properties of resulting application, like access control of users, and provides primary source of metadata for various parts of the application, for example automatically generated user interface and documentation.','',2,'Josef KufnerRadek Mařík','springer/bpel security.csv','springer',''),(2218,'Architectural Design of a Compensation Mechanism for Long Lived Transactions','2013','0',' Compensation Transaction Management SLA Management QoSAware Monitoring Composite Web Services Intelligent function on Workflow','Abstract Together with making Cloud computing reliable and dependable, there is a need to create mature definition of Service Level Agreements (SLA) for the quality assurances of services. Additionally, it is necessary to implement certain mechanisms in order to maintain the SLA further. In particular, the inter-Cloud environment with multiple entities of Cloud computing has evolved. In order to realize the inter-Cloud environment, the Composite Web Service (CWS) is a promising candidate. However, the CWS which consists of multiple elemental services has features of a transactional workflow adopting the notion of a long lived transaction (LLT). A compensation transaction is required for handling the occurrence of an exception. However its design methodology has remained immature. In particular, clarifying a concrete architecture for integrating Transaction-Aware together with the mechanism for maintaining SLA categorized as QoS-Aware has been ongoing. In this paper, we present our initial consideration on the architectural design and its principle for SLA management which carries out the compensations. The architectural aspects for an intelligent function which is required in the next scalable workflow will also be presented.','',2,'Shinji Kikuchi','springer/bpel security.csv','springer','\0'),(2219,'Energy Efficient Computational Offloading Framework for Mobile Cloud Computing','2015','5',' Mobile cloud computing Distributed systems Computational offloading Lightweight Energy efficient','Abstract The latest developments in mobile computing technology have changed user preferences for computing. However, in spite of all the advancements in the recent years, Smart Mobile Devices (SMDs) are still low potential computing devices which are limited in memory capacity, CPU speed and battery power lifetime. Therefore, Mobile Cloud Computing (MCC) employs computational offloading for enabling computationally intensive mobile applications on SMDs. However, state-of-the-art computational offloading frameworks lack of considering the additional overhead of components migration at runtime. Therefore resources intensive and energy consuming distributed application execution platform is established. This paper proposes a novel distributed Energy Efficient Computational Offloading Framework (EECOF) for the processing of intensive mobile applications in MCC. The framework focuses on leveraging application processing services of cloud datacenters with minimal instances of computationally intensive component migration at runtime. As a result, the size of data transmission and energy consumption cost is reduced in computational offloading for MCC. We evaluate the proposed framework by benchmarking prototype application in the real MCC environment. Analysis of the results show that by employing EECOF the size of data transmission over the wireless network medium is reduced by 84 % and energy consumption cost is reduced by 69.9 % in offloading different components of the prototype application. Hence, EECOF provides an energy efficient application layer solution for computational offloading in MCC.','Journal of Grid Computing',1,'Muhammad ShirazAbdullah GaniAzra ShamimSuleman KhanRaja Wasim Ahmad','springer/soa security.csv','springer',''),(2220,'Investigating the role of an enterprise architecture project in the business-IT alignment in Iran','2013','4',' Enterprise architecture (EA) Business-IT alignment (BITA) Luftman’s maturity model Iran','Abstract Ensuring that IT and business have a more mature alignment relationship is recognized as being critical to an organization’s success. To achieve alignment leveraging, enterprise architecture (EA) is considered fundamental as a comprehensive approach to planning and managing IT actions within the organization, based on its business requirements. This paper reports on a study to assess the effect of successful EA projects on the business-IT alignment in Iranian organizations, using the Luftman’s maturity model as the assessment tool. The implications of our findings in this study as well as its limitations are discussed to assist in detecting the flaws in the existing EA frameworks and to propose improvements.','Information Systems Frontiers',1,'Morteza AlaeddiniSepideh Salekfard','springer/service oriented architecture security.csv','springer','\0'),(2221,'On Analyzing Process Compliance in Skin Cancer Treatment: An Experience Report from the Evidence-Based Medical Compliance Cluster (EBMC2)','2012','3',' Data Quality Healthcare Processes Process Modeling Process Mining','Abstract Process mining has proven itself as a promising analysis technique for processes in the health care domain. The goal of the EBMC 2 project is to analyze skin cancer treatment processes regarding their compliance with relevant guidelines. For this, first of all, the actual treatment processes have to be discovered from the available data sources. In general, the L * life cycle model has been suggested as structured methodology for process mining projects. In this experience paper, we describe the challenges and lessons learned when realizing the L * life cycle model in the EBMC 2 context. Specifically, we provide and discuss different approaches to empower data of low maturity levels, i.e., data that is not already available in temporally ordered event logs, including a prototype for structured data acquisition. Further, first results on how process mining techniques can be utilized for data screening are presented.','',2,'Michael BinderWolfgang DordaGeorg DuftschmidReinhold DunklKarl Anton FröschlWalter GallWilfried GrossmannKaan HarmankayaMilan HronskyStefanie Rinderle-MaChristoph RinnerStefanie Weber','springer/bpmn security.csv','springer','\0'),(2222,'Information Governance Requirements for Architectural Solutions Supporting Dynamic Business Networking','2016','0','','Abstract The competition in the globalized markets highlights the need for the formation of dynamic business networks to provide mass-customized integrated solutions for customers. However, dynamic interoperations among parties within a business network results in emerging information governance (IG) requirements. In previous research different architectural solutions have been developed to support dynamic business networks. In this paper we investigate in the extent to which the emerging IG requirements in dynamic business networks are covered by developed architectural solutions. This investigation reflects required future developments to enrich architectural solutions in order to support IG requirements in dynamic business networks.','',1,'Mohammad R. RasouliRik EshuisJos J. M. TrienekensPaul W. P. J. Grefen','springer/service oriented architecture security.csv','springer',''),(2223,'HiPoLDS: A hierarchical security policy language for distributed systems','2013','3','Distributed systems; Security policies; Service-oriented architectures','Expressing security policies to govern distributed systems is a complex and error-prone task. Policies are hard to understand, often expressed with unfriendly syntax, making it difficult for security administrators and for business analysts to create intelligible specifications. We introduce the Hierarchical Policy Language for Distributed Systems (HiPoLDS), which has been designed to enable the specification of security policies in distributed systems in a concise, readable, and extensible way. HiPoLDS design focuses on decentralized execution environments under the control of multiple stakeholders. It represents policy enforcement through the use of distributed reference monitors, which control the flow of information between services. HiPoLDS allows the definition of both abstract and concrete policies, expressing respectively high-level properties required and concrete implementation details to be ultimately introduced into the service implementation. © 2012 Elsevier Ltd. All rights reserved.','',1,'Dell\'Amico M., Serme G., Idrees M.S., Santana De Oliveira A., Roudier Y.','scopus/service oriented architecture security.csv','scopus','\0'),(2224,'A Framework for Policy Similarity Evaluation and Migration Based on Change Detection','2015','0',' Access control Policy similarity Policy migration Change detection','Abstract Access control facilitates controlled sharing and protection of resources in an enterprise. However, given the ubiquity of collaborative applications and scenarios, enterprises no longer function in isolation. Being able to measure policy similarity and integrate heterogeneous policies appropriately is an essential step towards secure interoperation. Existing approaches for measuring policy similarity are based on computing similarity between different components of the access control policy. However, this does not provide a pathway for integrating policies, and may not sufficiently take the security context into account. In this paper, we propose a holistic change detection approach that enables policy similarity evaluation and policy migration. Our approach more comprehensively takes into account different access control semantics to compute policy similarity and finds the common organizational policy with the least cost.','',1,'Jaideep VaidyaBasit ShafiqVijayalakshmi AtluriDavid Lorenzi','springer/service oriented architecture security.csv','springer',''),(2225,'Risk-Based Auto-delegation for Probabilistic Availability','2012','1',' Auto-delegation Access control Risk Availability','Abstract Dynamic and evolving systems might require flexible access control mechanisms, in order to make sure that the unavailability of some users does not prevent the system to be functional, in particular for emergency-prone environments, such as healthcare, natural disaster response teams, or military systems. The auto-delegation mechanism, which combines the strengths of delegation systems and “break-the-glass” policies, was recently introduced to handle such situations, by stating that the most qualified available user for a resource can access this resource. In this work we extend this mechanism by considering availability as a quantitative measure, such that each user is associated with a probability of availability. The decision to allow or deny an access is based on the utility of each outcome and on a risk strategy. We describe a generic framework allowing a system designer to define these different concepts. We also illustrate our framework with two specific use cases inspired from healthcare systems and resource management systems.','',1,'Leanid KrautsevichFabio MartinelliCharles MorissetArtsiom Yautsiukhin','springer/service oriented architecture security.csv','springer','\0'),(2226,'Current developments and challenges in building automation','2012','3',' overview building automation systems BAS HVAC fieldbus optimization security demand response challenges Schlüsselwörter Überblick Gebäudeautomatisierung BAS HLK Feldbus Optimierung Security Demand Response Herausforderungen','Abstract The classical systems of building automation systems (BAS) have evolved from control of heating, ventilation and air-conditioning (HVAC). The wide use of fieldbus technology and powerful embedded systems has enabled new developments. Building automation is employed to integrate user requirements, system requirements and optimizations in order to maintain user comfort—with energy efficiency being a recently added optimization goal. The classic three-layer automation model is transferred into a service-oriented architecture (SOA) of objects. At the same time, the complexity increases as new services are added. Object-oriented solutions are an approach to cope with this. The basic design of controllers has become distributed and is adopting advanced methods. The resulting, highly integrated systems require a defense-in-depth strategy to ensure security. We take a look at the building services today and in the near future, highlight the strength of integrated building automation over different domains and industries and show the upcoming challenges for building automation systems.','e & i Elektrotechnik und Informationstechnik',1,'Stefan SoucekGerhard Zucker','springer/service oriented architecture security.csv','springer','\0'),(2227,'A new system based on web services and RFID for tracking people in a pervasive mining environment','2013','','mining; pervasive; RFID; Web services','This work present a solution for locating people inside of mines with a system designed with the service oriented architecture and RFID technology to help the security of workers. We propose a pervasive computing system designed with a UML process extension, to discover the rights web services to transmit and process data collected from RFID sensors. The data captured from nodes allow calculating the location of workers and machines by reference tags in conjunction with techniques of trilateration. The results were successful, since it achieves a design of pervasive system with web services and a database model to be used by localization algorithm that shown an improvement in its accuracy with an increasing the number of reference tags. © 2013 IEEE.','',1,'Iturralde D., Soto I., Fuentealba D., Bravo J., Becerra N.','scopus/service oriented architecture security.csv','scopus','\0'),(2228,'Discovery and Resolution of Anomalies in Web Access Control Policies','2013','1','Access control policies;XACML;conflict;discovery and resolution;redundancy','Emerging computing technologies such as web services, service-oriented architecture, and cloud computing has enabled us to perform business services more efficiently and effectively. However, we still suffer from unintended security leakages by unauthorized actions in business services while providing more convenient services to Internet users through such a cutting-edge technological growth. Furthermore, designing and managing web access control policies are often error-prone due to the lack of effective analysis mechanisms and tools. In this paper, we represent an innovative policy anomaly analysis approach for web access control policies, focusing on extensible access control markup language policy. We introduce a policy-based segmentation technique to accurately identify policy anomalies and derive effective anomaly resolutions, along with an intuitive visualization representation of analysis results. We also discuss a proof-of-concept implementation of our method called XAnalyzer and demonstrate how our approach can efficiently discover and resolve policy anomalies.','IEEE Transactions on Dependable and Secure Computing',1,'H. Hu; G. J. Ahn; K. Kulkarni','ieee/service oriented architecture security.csv','ieee','\0'),(2229,'Track Report of Capacity Driven Processes and Services for Cyber Physical Society (CPS 2014)','2014','0','','Cyber Physical Society (CPS) feature a tight integration between computation, communication, and control in their operation and interactions with the environment in which they are deployed. The concept of capability, which is the semantics of an action or specific functionality, is therefore a cornerstone in modern Cyber Physical Society, especially those service or process aware. In this track, we present dedicated techniques for capability management and engineering, which can be applied and reused in a large number of areas such as SOA, BPM, Cloud Computing and Internet of Things. These techniques will certainly boost several related research efforts in Cyber Physical Society. This track aims at shedding the light on the importance of capability engineering as well as at bringing together researchers and practitioners working in capability engineering to achieve the vision of cyber physical society by means of current techniques.','2014 IEEE 23rd International WETICE Conference',1,'M. Barhamgi; W. Gaaloul; J. Ezpeleta; Z. Zhou','ieee/service oriented architecture security.csv','ieee','\0'),(2230,'Interoperability-Related Architectural Problems and Solutions in Information Systems: A Scoping Study','2014','2',' Software interoperability software architecture information systems scoping study','Abstract [ Context ] With the increasing industrial demands for seamless exchange of data and services among information systems, architectural solutions are a promising research direction which supports high levels of interoperability at early development stages. [ Objectives ] This research aims at identifying the architectural problems and before-release solutions of interoperability on its different levels in information systems, and exploring the interoperability metrics and research methods used to evaluate identified solutions. [ Methods ] We performed a scoping study in five digital libraries and descriptively analyzed the results of the selected studies. [ Results ] From the 22 studies included, we extracted a number of architectural interoperability problems on the technical, syntactical, semantic, and pragmatic levels. Many problems are caused by systems’ heterogeneity on data representation, meaning or context. The identified solutions include standards, ontologies, wrappers, or mediators. Evaluation methods to validate solutions mostly included toy examples rather than empirical studies. [ Conclusions ] Progress has been made in the software architecture research area to solve interoperability problems. Nevertheless, more researches need to be spent on solutions for the higher levels of interoperability accompanied with proper empirical evaluation for their effectiveness and usefulness.','',1,'Hadil AbukwaikDavide TaibiDieter Rombach','springer/service oriented architecture security.csv','springer','\0'),(2231,'A cloud Computation Architecture for Unconventional Emergency Management','2013','0',' Unconventional emergency Cloud computing Emergency management','Abstract With the development of technologies and the deterioration of natural environment, unconventional emergencies outbreak more unexpectedly and diffuse more quickly and broadly. Secondary and derived disasters increase, and the impacts tend to be indirect and tremendous. Emergency management decisions are facing great challenges, and have attracted great concerns from government departments, academia and industries. In recent years, as a service-oriented computing mode, the cloud computing technology brings advantage in information sharing, resource allocating, and distributed high-performance computing, which makes it a feasible solution to unconventional emergency management, research, quick response and decision support. In this paper, we propose a cloud computation architecture for unconventional emergency management, which involves the key technologies including computation resource pooling, scalable extension of computation resource and services and user-centroid service management. The proposed architecture supports multilevel demand in computation and storage resource by providing services such as virtual machine, big data storage, web information detection and spatio-temporal data visualization. Three experimental scenarios are designed to validate the improvement of decision support capabilities and emergency response speed.','',1,'Jianhui LiYuanchun ZhouWei ShangCungen CaoZhihong ShenFenglei YangXiao XiaoDanhuai Guo','springer/service oriented architecture security.csv','springer','\0'),(2232,'FPGAs for trusted cloud computing','2012','8','','FPGA manufacturers have offered devices with bitstream protection for a number of years. This feature is currently primarily used to prevent IP piracy through cloning. However, in this paper we describe how protected bitstreams can also be used to create a root of trust for the clients of cloud computing services. Unlike related software-based solutions, this hardware-based approach solves a fundamental problem that currently impedes the greater adoption of cloud computing: how to secure client data and computation from both potential external attackers and an untrusted system administrator. We examine how this approach can be applied to the specific application of handling sensitive health data. This system maintains the advantages of the cloud with minimal additional hardware. We also describe how this system can be extended to provide a more generic secure cloud architecture.','22nd International Conference on Field Programmable Logic and Applications (FPL)',1,'K. Eguro; R. Venkatesan','ieee/service oriented architecture security.csv','ieee','\0'),(2233,'Applications of the Future Internet Engineering Project','2012','1','Future Internet;communication-enabled applications;content and context aware applications;pervasive computing;service centric architectures;service-oriented architecture','The paper gain is to present at the glance applications proposed, deployed and tested within Future Internet Engineering (FIE) project. The elaborated applications utilize the general concept of IP Multimedia Subsystem (IMS) according to which the IMS core servers (Parallel Internets) are treated as a docking station for any kind of application servers. It also means that the applications may be running as long as IMS provides standardized and extended interfaces. The mentioned applications have been selected as representative for process-oriented business organizations characterized by service- and process-oriented models and implementation (SOA, Web Services, Semantic Web, Web of data, content- and context aware applications, etc.) based on service-oriented architectures, pervasive computing and communication-enabled applications paradigms. In the applications\' architectures complex, \"autonomic\" self-organizing distributed systems/workflows with autonomous components are specified, realized, simulated and evaluated as a based on active component technologies. Application-driven content- and context-aware networks support process- and service-oriented processes. A combination of the above mentioned models (the push and pull model), architecture and approaches are possible and attractive from research, application and business perspectives. All the shortly presented applications may be considered as Over-The-Top (OTT) applications which effectively commoditize intelligent network services.','Software Engineering, Artificial Intelligence, Networking and Parallel & Distributed Computing (SNPD), 2012 13th ACIS International Conference on',1,'A. Grzech; K. Juszczyszyn; P. Swiatek; C. Mazurek; A. Sochan','ieee/service oriented architecture security.csv','ieee','\0'),(2234,'A Business Process-Driven Approach for Requirements Dependency Analysis','2012','0',' Business process modeling workflow pattern software development and maintenance requirements dependency','Abstract Dependencies among software artifacts are very useful for various software development and maintenance activities such as change impact analysis and effort estimation. In the past, the focus on artifact dependencies has been at the design and code level rather than at the requirements level. This is due to the difficulties in identifying dependencies in a text-based requirements specification. We observed that difficulties reside in the disconnection among itemized requirements and the lack of a more systematic approach to write text-based requirements. Business process models are an increasingly important part of a requirements specification. In this paper, we present a mapping between workflow patterns and dependency types to aid dependency identification and change impact analysis. Our real-world case study results show that some participants, with the help of the mapping, discovered more dependencies than other participants using text-based requirements only. Though many of these additional dependencies are highly difficult to spot from the text-based requirements, they are however very useful for change impact analysis.','',2,'Juan LiRoss JefferyKam Hay FungLiming ZhuQing WangHe ZhangXiwei Xu','springer/bpmn security.csv','springer','\0'),(2235,'Cerberus: Automated Synthesis of Enforcement Mechanisms for Security-Sensitive Business Processes','2016','0','','Abstract Cerberus is a tool to automatically synthesize run-time enforcement mechanisms for security-sensitive Business Processes (BPs). The tool is capable of guaranteeing that the execution constraints \\(EC \\) on the tasks together with the authorization policy \\(AP \\) and the authorization constraints \\(AC \\) are satisfied while ensuring that the process can successfully terminate. Cerberus can be easily integrated in many workflow management systems, it is transparent to process designers, and does not require any knowledge beyond usual BP modeling. The tool works in two phases. At design-time, the enforcement mechanism M , parametric in the authorization policy \\(AP \\) , is generated from \\(EC \\) and \\(AC \\) ; M can thus be used with any instance of the same BP provided that \\(EC \\) and \\(AC \\) are left unchanged. At run-time, a specific authorization policy is added to M , thereby obtaining an enforcement mechanism \\(M^*\\) dedicated to a particular instance of the security-sensitive business process. To validate our approach, we discuss the implementation and usage of Cerberus in the SAP HANA Operational Intelligence platform.','',2,'Luca CompagnaDaniel Ricardo dos SantosSerena Elisa PontaSilvio Ranise','springer/bpmn security.csv','springer',''),(2236,'Tamed Agility in Developing Mobile Business Systems','2013','0',' Mobile systems agile development modeling team interaction','Abstract Mobile systems are determined by requirements which tend to change over time. Agile approaches seem to address this, but fail to provide reliable project plans, budget estimations and capacity forecasts. Thus, mobile enterprise applications demand for tamed agility, reconciling advantages of agile development and plan-driven approaches. In this paper, this tradeoff is addressed. The Interaction Room method is introduced as a low-tech method to support value-oriented development of mobile applications.','',2,'Volker GruhnMatthias Book','springer/bpmn security.csv','springer','\0'),(2237,'A Generalized Algorithm for Publish/Subscribe Overlay Design and Its Fast Implementation','2012','2','','Abstract It is a challenging and fundamental problem to construct the underlying overlay network to support efficient and scalable information distribution in topic-based publish/subscribe systems. Existing overlay design algorithms aim to minimize the node fan-out while building topic-connected overlays, in which all nodes interested in the same topic are organized in a directly connected dissemination sub-overlay. However, most state-of-the-art algorithms suffer from high computational complexity, such as O (| V | 4 | T |), where V is the node set and T is the topic set. We devise a general indexing data structure that provides a significantly faster implementation, with O (| V | 2 | T |) running time, for different state-of-the-art algorithms. The generality of the indexing data structure is due to the fact that it enables edge lookup by both node degree and edge contribution , a central metric in all existing algorithms. When tested on typical pub/sub workloads, the speedup observed was by a factor of over 1 000, thereby rendering the algorithms more suitable for practical use. For example, under a typically Zipf distributed pub/sub workload, with 1 000 nodes and 100 topics, our new implementation completes in 3.823 seconds, while the previous alternative takes over 555 minutes.','',1,'Chen ChenRoman VitenbergHans-Arno Jacobsen','springer/service oriented architecture security.csv','springer','\0'),(2238,'SERVICES 2012: 2012 IEEE Eighth World Congress on Services [Cover art]','2012','0','','The following topics are dealt with: software fault tolerance; service-oriented software; data security; cloud computing; and Web services.','2012 IEEE Eighth World Congress on Services',1,'','ieee/service oriented architecture security.csv','ieee','\0'),(2239,'VxBPEL-ODE: A variability enhanced service composition engine','2014','','Service Compositions; Service Oriented Architecture; Variability Management; VxBPEL','Service compositions have become a powerful development paradigm to create distributed applications out of autonomous Web services. Since such applications are often deployed and executed in open and dynamic environments, variability management is a crucial enabling technique. To address the adaptation issue of service compositions, we proposed VxBPEL, an extension of BPEL for supporting variability, and a variability-based adaptive service composition approach which employs VxBPEL for variability implementation. In this paper, we present a VxBPEL engine for supporting the execution of VxBPEL service compositions. The engine is called VxBPEL-ODE and is implemented by extending a widely recognized open source BPEL engine, Apache ODE. We discuss key issues of developing VxBPEL-ODE, and three real-life service compositions are employed to evaluate and compare its performance with another VxBPEL engine we developed in our previous work. VxBPEL-ODE, together with analysis, design, and run-time management tools for VxBPEL, constitutes a comprehensive supporting platform for variability-based adaptive service compositions. © Springer International Publishing Switzerland 2014.','',2,'Sun C.-A., Wang P., Zhang X., Aiello M.','scopus/bpel security.csv','scopus',''),(2240,'Telecom Applications, APIs and Service Platforms','2013','0','','Abstract In the late 1980s, the open telecommunication services market was proclaimed in many vision statements and research papers, and regulative actions were taken to establish it. Today, due to the convergence of telecommunications, information technologies, Internet, World Wide Web and finally entertainment together with global markets and competition, we are living in an open multimedia services market and the information society is reality. As the competition between operators and service providers in the communications sector increases through, the actual value of networks and communications is decreasing. The remaining assets for future growth of the companies rely on the value of services, content and end systems that are increasing substantially within the new world of convergence and the much more complex multimedia services value chain that has emerged. The split of networks, service platforms, services and content requires on the one hand clear positioning of market players to face these challenges and on the other hand to establish a technological foundation for open business models. In this chapter, we want to trace the evolution of service and service platform concepts in telecommunications and outline technologies for converging networks and services and their latest developments.','',1,'Niklas BlumJulius MüllerFlorian SchreinerThomas Magedanz','springer/service oriented architecture security.csv','springer','\0'),(2241,'Opening web applications for third-party development: a service-oriented solution','2016','0',' Web application SOA Web service Service composition and application migration','Abstract Web applications are nowadays prevalent software systems in our everyday’s life. A lot of these applications have been developed for end users only. Thus, they are not designed by considering future extensions that would be developed by third parties. One possible and interesting solution for opening these applications for such kind of extension development is to create and deploy Web services starting from these applications. In this paper, we present a method and a tool for semiautomatically creating Web service implementations from applications having Web interfaces. The proposed method generates operations that are published in Web services for each functionality provided by a Web application. In addition, it generates new operations starting from Web interfaces. Our approach goes further in the creation of services by generating executable orchestrations, as BPEL processes, starting from navigations in the Web interfaces of these applications and by providing BPMN choreography specifications starting from the collaborations between the generated Web services. We implemented and experimented our solution in the migration of three real-world Web applications toward Web service-oriented systems.','Service Oriented Computing and Applications',1,'Mohamed Lamine KerdoudiChouki TibermacineSalah Sadou','springer/soa security.csv','springer',''),(2242,'Engineering Semantic Web Services for Government Business Processes Automation','2015','0',' E-government Web service Semantic web service Business process modeling Semantic annotation','Abstract Web Services (WS) technology does not allow automatic discovery and execution of services in the current distributed and complex business environments. Semantic Web Services (SWS) overcome this limitation by adding semantic descriptions to WS, enabling automatic discovery, selection, composition and execution of services for intelligent interoperable machine-to-machine interactions over the World Wide Web (WWW). These capabilities of SWS are useful in distributed environments such as that of e-government. On the other hand, existing SWS solutions assume the existence of dedicated service providers of WS to be semantically described. However, government operations and processes may require a certain amount of prior re-engineering (conceptualization, design, modeling, specification, etc.). This study proposed an infrastructure for Semantic Web Services-enabled e-government that integrates Business Process Modelling (BPM) and Semantic Annotation into existing SWS solutions as tools for the modeling and engineering of SWS for non-automated government operations and processes. The proposed infrastructure leverages SWS technology in e-government while enabling continuous re-engineering and automation of government processes. The study presents an example of the application of the proposed infrastructure with emphasis on the modeling and semantic annotation of business processes for SWS design.','',2,'Jean Vincent Fonou-DombeuMagda Huisman','springer/bpmn security.csv','springer',''),(2243,'IEEE Services Visionary Track on Security and Privacy Engineering (SPE 2015)','2015','0','','Message from the IEEE Services Visionary Track on Security and Privacy Engineering (SPE 2015) Program Chairs.','2015 IEEE World Congress on Services',1,'C. A. Ardagna; M. Jensen; M. V. Martin','ieee/service oriented architecture security.csv','ieee',''),(2244,'Open SOA health web platform for mobile medical apps: Connecting securely mobile devices with distributed electronic health records and medical systems','2014','','business process model and notation (BPMN); coordinated health delivery; distributed medical systems and services; health IT services; hybrid cloud; IEC Standard 80001; IHE; integrated care environments; integrated clinical environment (ICE); medical cyber-physical systems; medical device connectivity; medical device interoperability; medical enterprise applications; medical IT networks; medical IT networks; mHealth; openSDC; patient privacy; point of care services; private cloud; public cloud; regulated mobile medical apps; risk management; risk management; secure cloud solutions; secure service proxy; service-composed medical apps; system of systems integration; Web 2.0; Web services; wound management','Doctors and nurses have become amenable and increasingly keen of using smart mobile devices and applications for health delivery support to their patients. The main challenge is to securely connect to the patient\'s electronic health records in time when patient health data are needed and to access patient\'s vital data online for coordinated and individual healthcare delivery. Here, we report about a service-oriented open health Web platform that has been developed for distributed systems, devices and medical IT-services. The open SOA Web platform is suited to host mobile medical apps, which provide automated online access to the vital sign data of the patient and support guided procedures to treat the patients according to individual treatment regimes. A mobile medic app for wound management IT is described that connects to the electronic wound case record of the selected patient. The app supports the healthcare professional during treatment and facilitates the documentation process. © 2014 IEEE.','',2,'Meyer J.-U.','scopus/bpmn security.csv','scopus',''),(2245,'Transactional Correctness for Secure Nested Transactions','2012','0','','Abstract Secure Nested Transactions are an adaptation of traditional nested transactions to support the synergy of language-based security and multi-level database security. They have application in security for enterprise applications, where transactional semantics are a critical feature in middleware systems. This article considers correctness in terms of transactional properties for secure nested transactions. Correctness is expressed in terms of a labeled transition system, the TauZero calculus.','',1,'Dominic DugganYe Wu','springer/service oriented architecture security.csv','springer','\0'),(2246,'Towards the Orchestration of Secured Services under Non-disclosure Policies','2012','0',' Web services Orchestration security policy separation of duty deducibility constraints cryptographic protocols','Abstract The problem of finding a mediator to compose secured services has been reduced in our former work to the problem of solving deducibility constraints similar to those employed for cryptographic protocol analysis. We extend in this paper the mediator synthesis procedure by a construction for expressing that some data is not accessible to the mediator. Then we give a decision procedure for verifying that a mediator satisfying this non-disclosure policy can be effectively synthesized. This procedure has been implemented in CL-AtSe, our protocol analysis tool. The procedure extends constraint solving for cryptographic protocol analysis in a significative way as it is able to handle negative deducibility constraints without restriction. In particular it applies to all subterm convergent theories and therefore covers several interesting theories in formal security analysis including encryption, hashing, signature and pairing.','',1,'Tigran AvanesovYannick ChevalierMichaël RusinowitchMathieu Turuani','springer/service oriented architecture security.csv','springer','\0'),(2247,'Aspectual Interactions for Adaptive Behavioral Web-Services with Tailored Maude-Based Certification','2009','0','','Service technology proposes a loosely-coupled integration and composition of any service functionalities, exposed by XML-based interfaces and composed using standards such as BPEL. Nevertheless, as cross-organizations are swiftly competing, the rigid character as well as the ad-hoc deployment using these standards is still hindering the large-scale application of this service paradigm. This contribution aims at contributing towards overcoming these two serious limitations. First we put forward an intuitive event-driven architectural conceptualization that promotes behavioral rule centric transient interactions for any service composition. Towards non-intrusive and runtime adaptability of such exogenous service interactions, we then present how to abstractly endow them with aspect-oriented mechanizations. Finally a compliant service foundation with rapid-prototyping capabilities is proposed, by accordingly leveraging the distributed rewriting-logic based Maude language. In particular, capitalizing on Maude reflection, we dynamically intercept triggering events, perform inherent behavioural interactions as suitable advices and non-intrusively weave them on respective components using required interfaces.','2009 International Conference on E-Business and Information System Security',2,'A. Alqahtani; H. Zedan','ieee/bpel security.csv','ieee','\0'),(2248,'Case-Based Reasoning on E-Community Knowledge','2013','0',' case-based reasoning meta-knowledge reliability filtering ranking personalization','Abstract This paper presents MKM, a meta-knowledge model to manage knowledge reliability, in order to extend a CBR system so that it can reason on partially reliable, non expert, knowledge from the Web. Knowledge reliability is considered from the point of view of the decision maker using the CBR system. It is captured by the MKM model including notions such as belief, trust, reputation and quality, as well as their relationships and rules to evaluate knowledge reliability. We detail both the model and the associated approach to extend CBR. Given a problem to solve for a specific user, reliability estimation is used to filter knowledge with high reliability as well as to rank the results produced by the CBR system, ensuring the quality of results.','',1,'Emmanuelle GaillardJean LieberYannick NaudetEmmanuel Nauer','springer/service oriented architecture security.csv','springer','\0'),(2249,'A Service-Oriented Architecture (SOA) framework component for verification of choreography','2015','','Choreography; Framework for service choreography (FSC); Orchestration; SOA; Verification model (VM); Web services','Service-Oriented Architecture (SOA) is a paradigm that encourages organization to understand, how their information technology infrastructure capabilities can be organized to achieve business goals? SOA promises a challenging generation of information systems application based on a new set of standards for enabling self describing, interoperable web services. The web service composition supports choreography in SOA. The web service composition is mainly managed through orchestration and choreography of services. In this paper, we propose a Framework for Service Choreography (FSC) to control the business processes in SOA to reduce complexity in web service composition. To address choreography security issues while passing messages between the services choreographed in SOA, we also propose a Verification Model (VM) using Security Assertions Markup Language (SAML 2.0) to provide authentication and authorization. Then, we have implemented the proposed choreography model. © Springer India 2015.','',1,'Bhuyan P., Ray A., Mohapatra D.P.','scopus/service oriented architecture security.csv','scopus',''),(2250,'Formalization of secure service oriented product line','2015','','Map; Secure application engineering; Secure domain engineering; Secure service oriented product line; Software security','In this work, we focus on the SOPL approach (Service Oriented Product Line) which can be used in various domains where SOA based applications are needed such as e/m government, e-business, e-learning and so on. This approach is a combination of Service-Oriented Architecture (SOA) and Software Product Line (SPL). Ensure secure services are vital in order to establish trust between users and service providers. In this context, we aim to propose guidelines for using Secure SOPL which process leads to produce secure service-oriented applications. In fact, with the diversity of the means that allow us to perform security activities, the use of Secure SOPL is difficult especially for developers whose lack experience in the security software, SPL and SOA fields which are the basis the Secure SOPL. Thus, we choose the Map formalism which is a decision-oriented model to formalize the two phases of our Secure SOPL.','',1,'Achour I., Labed L., Ghezala H.B.','scopus/service oriented architecture security.csv','scopus',''),(2251,'PaaSHopper: Policy-driven middleware for multi-PaaS environments','2015','1',' Multi-cloud PaaS Policy-driven adaptation Middleware Portability','Abstract Offering Software-as-a-Service (SaaS) applications on top of a Platform-as-a-Service (PaaS) platform is a promising strategy as the SaaS provider does not need to acquire and maintain private cloud infrastructure, and it enables him/her to enjoy the benefits of cloud scalability and flexiblity as well. However, as this entails losing some control over the application and its data, SaaS providers are in practice reluctant to migrate to a PaaS platform entirely. To alleviate such concerns of vendor lock-in, the concept of a multi-cloud involves integrating and combining multiple cloud environments, private as well as public, but also involving multiple providers and different technologies. This has the added benefit that it further improves overall availability, flexibility and scalability. Current support for multi-cloud applications however is limited. This paper presents PaaSHopper, a middleware platform for developing and operating multi-tenant SaaS applications in a multi-PaaS environment. It enables the SaaS provider to have fine-grained control over the execution of applications and the storage of application data, while offering the tenant some degrees of customization and self-service as well. Driven by stakeholder-specific policies, the middleware dynamically decides which requests and tasks are executed in a particular part of the multi-PaaS environment. We validated this work in the context of four realistic SaaS application cases on top of a multi-cloud consisting of a local JBoss Application Server cluster, Google App Engine, and Red Hat OpenShift.','Journal of Internet Services and Applications',1,'Stefan WalravenDimitri Van LanduytAnsar RafiqueBert LagaisseWouter Joosen','springer/service oriented architecture security.csv','springer',''),(2252,'SATMC: A SAT-Based Model Checker for Security-Critical Systems','2014','3','','Abstract We present SATMC 3.0, a SAT-based bounded model checker for security-critical systems that stems from a successful combination of encoding techniques originally developed for planning with techniques developed for the analysis of reactive systems. SATMC has been successfully applied in a variety of application domains (security protocols, security-sensitive business processes, and cryptographic APIs) and for different purposes (design-time security analysis and security testing). SATMC strikes a balance between general purpose model checkers and security protocol analyzers as witnessed by a number of important success stories including the discovery of a serious man-in-the-middle attack on the SAML-based Single Sign-On (SSO) for Google Apps, an authentication flaw in the SAML 2.0 Web Browser SSO Profile, and a number of attacks on PKCS#11 Security Tokens. SATMC is integrated and used as back-end in a number of research prototypes (e.g., the AVISPA Tool, Tookan, the SPaCIoS Tool) and industrial-strength tools (e.g., the Security Validator plugin for SAP NetWeaver BPM).','',2,'Alessandro ArmandoRoberto CarboneLuca Compagna','springer/bpmn security.csv','springer',''),(2253,'Parallel Processing for Business Artifacts with Declarative Lifecycles','2012','2','','Abstract The business artifact (a.k.a. business entity) approach to modeling and implementing business operations and processes is based on a holistic marriage of data and process and enables a factoring of business operations based on key business-relevant conceptual entities. The recently introduced Guard-Stage- Milestone (GSM) artifact meta-model provides a hierarchical and declarative basis for specifying artifact lifecycles, and is substantially influencing OMG’s emerging Case Management Modeling Notation standard. In previous papers one characterization of the operational semantics for GSM is based on the incremental, strictly serial firing of Event-Condition-Action (ECA) like rules. This paper develops a parallel algorithm equivalent to the sequential one in terms of externally observable characteristics. Optimizations and analysis for the parallel algorithm are discussed. This paper also introduces a simplification of the GSM meta-model that provides more flexibility and makes checking for well-formedness of GSM models simpler and more intuitive than in the preceding works on GSM.','',1,'Yutian SunRichard HullRoman Vaculín','springer/service oriented architecture security.csv','springer','\0'),(2254,'A New Deliberation Mechanism for Service-Oriented Operating Systems','2012','0','multi-agent systems;operating systems;services','Cloud and Service-Oriented Computing have become successful paradigms to use all the power that the network has brought to Operating Systems. In particular, the multi-agent systems paradigm and service-oriented computing offers new ideas for the development of more intelligent and effective OS\'s, which would benefit the end-user due to the advantages of both technologies. The benefits that we present in this work are how to improve the security in transactions between clients and providers over the cloud and how these transactions can be done taking into account temporal constraints. This is done either to obtain a result before a deadline, or simply to improve the quality of the result. In this work we present a deliberation engine for an OS execution model based on goals with temporal and security considerations.','System Science (HICSS), 2012 45th Hawaii International Conference on',1,'J. Palanca; M. Navarro; A. Garcia-Fornes; V. J. Juli´n','ieee/service oriented architecture security.csv','ieee','\0'),(2255,'Assessing the Impact of Firewalls and Database Proxies on SQL Injection Testing','2014','0',' SQL injections Blackbox testing Web services','Abstract This paper examines the effects and potential benefits of utilising Web Application Firewalls (WAFs) and database proxies in SQL injection testing of web applications and services. We propose testing the WAF itself to refine and evaluate its security rules and prioritise fixing vulnerabilities that are not protected by the WAF. We also propose using database proxies as oracles for black-box security testing instead of relying only on the output of the application under test. The paper also presents a case study of our proposed approaches on two sets of web services. The results indicate that testing through WAFs can be used to prioritise vulnerabilities and that an oracle that uses a database proxy finds more vulnerabilities with fewer tries than an oracle that relies only on the output of the application.','',1,'Dennis AppeltNadia AlshahwanLionel Briand','springer/service oriented architecture security.csv','springer','\0'),(2256,'Federation and Security Aspects for the Management of the EHR in Italy','2012','0',' eHealth Electronic Health Record SOA Federation Security','Abstract The Electronic Health Record (EHR) or Electronic Patient Record is a collection of electronic health information about a patient, created to increase personal safety through more accurate evidence-based decision support. Healthcare organizations, especially in different regions/local governments, can have different architectural solutions and procedures, and thus different access control policies. The requirement of compliance with previously developed architectural solutions binds them to using a single Federated infrastructure model. Since data stored in the EHR Infrastructure concerns the health status of patients, they must be considered critical and their confidentiality and integrity must be protected by proper security support. In this paper we will present the analysis of federation and security aspects and issues for the management of the Electronic Health Record in Italy, suggesting a possible solution.','',1,'M. Claudia BuzziFrancesco DoniniAbraham GebrehiwotAlessio LunardelliCristian LucchesiPaolo Mori','springer/service oriented architecture security.csv','springer','\0'),(2257,'Challenges of Quality-Driven Resource Discovery','2012','0','','Abstract We report on the concluding panel of the Third International Workshop on Resource Discovery. The panel followed two invited presentations that addressed the problem of quality in the context of resource discovery. They are Assuring Quality of Service and Quality of Data: New Challenges for Service and Resource Discovery by Laure Berti-Equille and Optimization Techniques for QoS-Aware Workflow Realization in Web Services Context by Joyce El Haddad. The questions discussed by the panelists covered modeling issues, formats, languages, semantics, applications, and benchmarks.','',1,'Bernd AmannLaure Berti-EquilleZoé LacroixMaría-Esther Vidal','springer/service oriented architecture security.csv','springer','\0'),(2258,'Application of Soft Computing Technique for Web Service Selection','2015','0',' Web Service QoS BPN algorithm RBFN PNN Fuzzy logic','Abstract One of the main challenges in service oriented architecture is the optimal selection and ranking of web services. The process of selecting relevant services from a service repository in a heterogeneous environment is a difficult task. Use of different search engines help in selection process by efficiently searching the service repository (like UDDI), peer-to-peer networks, service portals etc. Fixing up appropriate services is necessary because composition of these services leads to the development of a particular application. In this paper, soft computing technique such as ANN and Fuzzy logic are employed for optimal selection of web service with the help of the requisite attributes related to quality of service. A comparative study of performance of both the techniques based on error parameter has been made in order to help in critical assessment.','',1,'Debendra Kumar NaikSmita KumariSantanu Kumar Rath','springer/service oriented architecture security.csv','springer',''),(2259,'On the security of international data exchange services for e-governance systems','2015','0','','Abstract The effects of globalisation and information welfare combined with the increasing mobility of individuals lead to a number of challenges to modern states. In order to guarantee a smooth, secure, uninterrupted organisational flow, governments and their subsidiaries need to cooperate and exchange data on individuals and organisations across national borders. However, insufficiently secured communication of such data imposes security threats which may endanger the individual’s privacy. Currently, several states within Europe develop and operate e-governance systems. These are primarily designed to allow the exchange of data within the institutions of one state. However, examples such as the Estonian e-governance backbone system X-Road strive towards an EU-wide expansion. Technical solutions for the transnational exchange of data between governmental institutions are an unavoidable part of the future of cyberspace. Despite the fact that EU specifications exist, the discrepancy between specification and implementation becomes immanent. This article explores some of the general aspects of the design of secure transnational data exchange frameworks. A comparative analysis of existing e-governance systems within Europe is given based on defined security aspects. It is explored how decisions made in the design may affect the security of the underlying network and its components. The challenges of transnational data exchange frameworks are discussed.','Datenschutz und Datensicherheit - DuD',1,'Kim HartmannChristoph Steup','springer/service oriented architecture security.csv','springer',''),(2260,'An approach to extract RBAC models from BPEL4WS processes','2004','16','','The Business Process Execution Language for Web services (BPEL) has become the defacto standard for Web service composition. Yet, it does not address security aspects. This paper is concerned with access control for BPEL based processes. We present an approach to integrate role-based access control (RBAC) and BPEL on the meta-model level. Moreover, we show that such integration can be used to automate steps of the role engineering process. In particular, we extract RBAC models from BPEL processes and present an XSLT converter that transforms BPEL code to the XML import format of the xoRBAC software component.','Enabling Technologies: Infrastructure for Collaborative Enterprises, 2004. WET ICE 2004. 13th IEEE International Workshops on',2,'J. Mendling; M. Strembeck; G. Stermsek; G. Neumann','ieee/bpel security.csv','ieee',''),(2261,'Business process compliance checking – applying and evaluating a generic pattern matching approach for conceptual models in the financial sector','2016','2',' Conceptual modeling Business process modeling Business process compliance management Model checking Model querying Pattern matching Compliance checking','Abstract Given the strong increase in regulatory requirements for business processes the management of business process compliance becomes a more and more regarded field in IS research. Several methods have been developed to support compliance checking of conceptual models. However, their focus on distinct modeling languages and mostly linear (i.e., predecessor-successor related) compliance rules may hinder widespread adoption and application in practice. Furthermore, hardly any of them has been evaluated in a real-world setting. We address this issue by applying a generic pattern matching approach for conceptual models to business process compliance checking in the financial sector. It consists of a model query language, a search algorithm and a corresponding modelling tool prototype. It is (1) applicable for all graph-based conceptual modeling languages and (2) for different kinds of compliance rules. Furthermore, based on an applicability check, we (3) evaluate the approach in a financial industry project setting against its relevance for decision support of audit and compliance management tasks.','Information Systems Frontiers',2,'Jörg BeckerPatrick DelfmannHanns-Alexander DietrichMatthias SteinhorstMathias Eggert','springer/bpel security.csv','springer',''),(2262,'Controllability of Time-Aware Processes at Run Time','2013','3',' Process-aware Information System Temporal Perspective Temporal Constraints Process Execution Controllability','Abstract Companies increasingly adopt process-aware information systems (PAISs) to analyze, coordinate, and monitor their business processes. Although the proper handling of temporal constraints (e.g., deadlines, minimum time lags between activities) is crucial for many applications, contemporary PAISs lack a sophisticated support of the temporal perspective of business processes. In previous work, we introduced Conditional Simple Temporal Networks with Uncertainty (CSTNU) for checking controllability of time constraint networks with decision points. In particular, controllability refers to the ability of executing a time constraint network independent of the actual duration of its activities, while satisfying all temporal constraints. In this paper, we demonstrate how CSTNUs can be applied to time-aware business processes in order verify their controllability at design as well as at run time. In particular, we present an algorithm for ensuring the controllability of time-aware process instances during run time. Overall, proper run-time support of time-aware business processes will broaden the use of PAIS significantly.','',2,'Andreas LanzRoberto PosenatoCarlo CombiManfred Reichert','springer/bpmn security.csv','springer','\0'),(2263,'Anomaly Detection System Based on Service Oriented Architecture','2012','0','','Abstract The problem of the network security has been taken up since eighties and has been developed up to present day. A major problem of an automatic intrusion detection is that, it is difficult to make a difference between a normal and an abnormal user behaviour. We propose the framework of a distributed anomaly detection system based on Service Oriented Architecture (SOA). The main idea of SOA is to treat applications, systems and processes as encapsulated components, which are called services. These services are represented by input and output parameters and the semantic description of their functionalities. We assume that all the functionalities of our system are delivered by the Web services.','',1,'Grzegorz KołaczekAgnieszka Prusiewicz','springer/service oriented architecture security.csv','springer','\0'),(2264,'Study on EAI Based on Web Services and SOA','2008','3','Enterprise Application Integration;business process;service bus;service oriented architecture;web service','With the advent of Web services and SOA (service-oriented architecture), it seems to be feasible to realize EAI (enterprise application integration) and automatic inter-enterprise interactions. This paper combines SOA and Web service technology which simplify the application integration into the development and using of services, solve the connectivity of the isomerous platform, security, and the loose coupling between systems, as well as the refactoring and optimization of the processes. It integrates the isomerous enterprise systems, applications, and business processes and composing application environment of the data sources as a whole system. In addition, the technique standards, such as SOAP, WSDL, BPEL, WDDI, etc., are studied. The various key components of SOA are integrated and implemented. By studying the service-oriented software analyzing and development characteristics, an EAI system with great interoperability, reusability, flexibility is to be realized.','Electronic Commerce and Security, 2008 International Symposium on',2,'W. Deng; X. Yang; H. Zhao; D. Lei; H. Li','ieee/bpel security.csv','ieee','\0'),(2265,'Making Business Processes Adaptive Through Semantically Enhanced Workflow Descriptions','2010','0','adaptive processes, semantic business process management, semantic web services, service-oriented architectures','Proceedings of the 6th International Conference on Semantic Systems','',2,'Herwig Zeiner and Wolfgang Halb and Harald Lernbeiß and Bernhard Jandl and Christian Derler','acm/bpel security.csv','acm','\0'),(2266,'An Analysis and Evaluation of Security Aspects in the Business Process Model and Notation','2013','1','BPMN;Business Processes;Modeling;Security','Enhancing existing business process modeling languages with security concepts has attracted increased attention in research and several graphical notations and symbols have been proposed. How these extensions can be comprehended by users has not been evaluated yet. However, the comprehensibility of security concepts integrated within business process models is of utmost importance for many purposes such as communication, training, and later automation within a process-aware information system. If users do not understand the security concepts, this might lead to restricted acceptance or even misinterpretation and possible security problems in the sequel. In this paper, we evaluate existing security extensions of Business Process Model and Notation (BPMN) as BPMN constitutes the de facto standard in business modeling languages nowadays. The evaluation is conducted along two lines, i.e., a literature study and a survey. The findings of both evaluations identify shortcomings and open questions of existing approaches. This will yield the basis to convey security-related information within business process models in a comprehensible way and consequently, unleash the full effects of security modeling in business processes.','Availability, Reliability and Security (ARES), 2013 Eighth International Conference on',2,'M. Leitner; M. Miller; S. Rinderle-Ma','ieee/bpmn security.csv','ieee','\0'),(2267,'Expressing Quality of Service and Protection Using Federation-Level Service Level Agreement','2014','0','','Abstract Frameworks for service level agreements (SLAs) have been developed to allow services to discover and negotiate SLAs dynamically, without direct human intervention. We give a description of the experiences of two projects which are building on existing work in SLAs: the main advantages being to obtain better overall services (including pricing) for the consumer, and the SLAs are useful as a component of, or extension to, cloud federations. We also argue that the “Quality of Protection” is an important part of SLAs.','',1,'Lorenzo BlasiJens JensenWolfgang Ziegler','springer/service oriented architecture security.csv','springer','\0'),(2268,'Secure and compliant implementation of business process-driven systems','2013','3','bpmn; business process security; secure service tasks; static program analysis','Today\'s businesses are inherently process-driven. Conseque- ntly, the use of business-process driven systems, usually implemented on top of service-oriented or cloud-based infrastructures, is increasing. At the same time, the demand on the security, privacy, and compliance of such systems is increasing as well. As a result, the costs - with respect to computational effort at runtime as well as financial costs - for operating business-process driven systems increase steadily. In this paper, we present a method for statically checking the security and conformance of the system implementation, e.g., on the source code level, to requirements specified on the business process level. As the compliance is statically guaranteed - already at design-time - this method reduces the number of run-time checks for ensuring the security and compliance and, thus, improves the runtime performances. Moreover, it reduces the costs of system audits, as there is no need for analyzing the generated log files for validating the compliance to the properties that are already statically guaranteed. © 2013 Springer-Verlag Berlin Heidelberg.','',2,'Brucker A.D., Hang I.','scopus/bpmn security.csv','scopus','\0'),(2269,'A framework of spatial co-location pattern mining for ubiquitous GIS','2014','0',' Ubiquitous GIS Ubiquitous data mining Co-location pattern mining Spatial data mining','Abstract A spatial co-location pattern represents relationships between spatial features that are frequently located in close proximity to one another. Such a pattern is one of the most important concepts for geographic context awareness of ubiquitous Geographic Information System (GIS). We constructed a framework for co-location pattern mining using the transaction-based approach, which employs maximal cliques as a transaction-type dataset; we first define transaction-type data and verify that the definition satisfies the requirements, and we also propose an efficient way to generate all transaction-type data. The constructed framework can play a role as a theoretical methodology of co-location pattern mining, which supports geographic context awareness of ubiquitous GIS.','Multimedia Tools and Applications',1,'Seung Kwan KimJee Hyung LeeKeun Ho RyuUngmo Kim','springer/microservice security.CSV','springer',''),(2270,'Model checking adaptive service compositions','2014','','Model-checking; Non-interference; Process algebra; Web services','We present a logic-based verification framework for multilevel security and transactional correctness of service oriented architectures. The framework is targeted at the analysis of data confidentiality, enforced by non-interference, and of service responsiveness, captured by a notion of compliance that implies dead lock and livelock freedom. We isolate a class of modalμ-calculus formulae, interpreted over service configurations, that characterise configurations satisfying the properties of interest. We then investigate an adaptation technique based on the use of coercion filters to block any action that might potentially break security or transactonal correctness. Based on the above, we devise a model checking algorithm for adaptive service compositions which automatically synthesises the maximal (mostexpressive/permissive) filter enforcing the desired security and correctness properties. © 2013 Elsevier B.V. All rights reserved.','',1,'Bugliesi M., Marin A., Rossi S.','scopus/service oriented architecture security.csv','scopus','\0'),(2271,'An Operational Approach to BPEL-like Programming','2007','4','','Web services have become more and more important during these years and BPEL4WS (BPEL) is to be a standard for the Web services composition and orchestration. It contains several distinct features, including the scope-based compensation and fault handling mechanism. In this paper, we formalize an operational semantics for BPEL, which provides the precise understanding of the language. In order to explore program equivalence, bisimulation is introduced for BPEL pro grams in the form of two-layer structure. A set of algebraic laws is studied, which includes several BPEL featured laws. These algebraic laws are verified via the two-layer bisimulation. This reflects that our bisimulation is a practical approach to explore program equivalence for Web services.','Software Engineering Workshop, 2007. SEW 2007. 31st IEEE',2,'H. Zhu; H. Zhu; H. Zhu; H. Zhu; J. He; J. He; J. He; J. He; G. Pu; G. Pu; G. Pu; G. Pu; J. Li; J. Li; J. Li; J. Li','ieee/bpel security.csv','ieee','\0'),(2272,'Integration of data and computing infrastructures for earth science: an image mosaicking use-case','2016','0',' Brokered architectures HPC GEOSS E-infrastructures Business process broker Earth science','Abstract This paper addresses the emerging issue of integrating data sharing and computing e-infrastructures for multidisciplinary applications. In the recent years several solutions have been proposed to implement digital infrastructures for sharing and processing scientific data and observations. Spatial data infrastructures currently enable effective and efficient geo-information data sharing in many disciplinary communities, and innovative solutions are under development to support new open data and linked data paradigms. In parallel, High Performance Computing systems, computing grids and more recently cloud services, enable fast processing of big data. However, the integration of data and computing e-infrastructures is a raising issue in multidisciplinary research. In the context of the Global Earth Observation System of Systems (GEOSS) initiative, an innovative approach has been proposed. Taking into account that the heterogeneity of data and computing e-infrastructures and related technologies cannot be reduced beyond a certain extent, since it is due to the need of supporting use cases and scenarios from different scientific communities, a brokering solution has been designed and developed. A Business Process Broker (BPB) is a component which takes a formal description of a scientific business process, and translates it in an executable process which can be run on multiple and remote processing and workflow services. In doing this it solves all the interoperability issues in a (semi-)automated way. It allows lowering the entry barrier for both computing service providers and users, decoupling the specification of the scientific process from the underlying enabling infrastructures. The paper presents and discusses a BPB use-case from the European project IASON, implementing an Earth Observation application involving satellite image mosaicking, HPC computing services and spatial data e-infrastructures.','Earth Science Informatics',1,'Paolo MazzettiRoberto RoncellaDanut MihonVictor BacuPierre LacroixYaniss GuigozNicolas RayGregory GiulianiDorian GorganStefano Nativi','springer/soa security.csv','springer',''),(2273,'DroidMiner: Automated Mining and Characterization of Fine-grained Malicious Behaviors in Android Applications','2014','5',' Mobile Security Android Malware Analysis and Detection','Abstract Most existing malicious Android app detection approaches rely on manually selected detection heuristics, features, and models. In this paper, we describe a new, complementary system, called DroidMiner , which uses static analysis to automatically mine malicious program logic from known Android malware, abstracts this logic into a sequence of threat modalities, and then seeks out these threat modality patterns in other unknown (or newly published) Android apps. We formalize a two-level behavioral graph representation used to capture Android app program logic, and design new techniques to identify and label elements of the graph that capture malicious behavioral patterns (or malicious modalities). After the automatic learning of these malicious behavioral models, DroidMiner can scan a new Android app to ( i ) determine whether it contains malicious modalities, ( ii ) diagnose the malware family to which it is most closely associated, ( iii ) and provide further evidence as to why the app is considered to be malicious by including a concise description of identified malicious behaviors. We evaluate DroidMiner using 2,466 malicious apps, identified from a corpus of over 67,000 third-party market Android apps, plus an additional set of over 10,000 official market Android apps. Using this set of real-world apps, we demonstrate that DroidMiner achieves a 95.3% detection rate, with only a 0.4% false positive rate. We further evaluate DroidMiner’s ability to classify malicious apps under their proper family labels, and measure its label accuracy at 92%.','',1,'Chao YangZhaoyan XuGuofei GuVinod YegneswaranPhillip Porras','springer/webservice security.csv','springer','\0'),(2274,'Dynamic Resource Management in a HPC and Cloud Hybrid Environment','2013','1','','Abstract Recently, the large-scale cluster of data center is usually constructed to support both HPC and Cloud computing. It can be explained from two aspects: (1) The data center is typically a sharing environment for all the users, users may submit different types of jobs (HPC and Cloud computing) for processing currently; (2) Some applications can be divided into two parts of subtasks which are suitable to HPC and Cloud computing respectively, e.g. the AMS (Alpha Magnetic Spectrometer) experiment is such a typical application. Thus in order to provide good service for both computing models, it is needed to construct a HPC and Cloud hybrid environment. An existing management mechanism is to allocate fixed proportions of resources for different application environments. However, this approach has a significant performance drawback that is the low resource utilization. In order to overcome this drawback, we propose a dynamic resource management framework and mechanism to satisfy the requirements of both HPC and Cloud computing. Firstly we present a prediction model that is used to predict the arrival rate of all kinds of jobs (HPC types and Cloud types). Based on the prediction results, we propose a dynamic resource allocation algorithm, which manages dynamic resources allocation by using queuing theory. Finally, we evaluate our mechanism by real data sets from AMS experiment and Cloud tasks running on the HPC center in Southeast University. The results show that the proposed mechanism can effectively improve resource utilization at least 30% in this hybrid environment.','',2,'Miao ChenFang DongJunzhou Luo','springer/bpel security.csv','springer','\0'),(2275,'Multicenter Data Sharing for Collaboration in Sleep Medicine','2015','0','Cloud;OpenStack;REST;XNAT;biosignal;polysomnography;sleep','Clinical Sleep Research is an inherent multidisciplinary field, as many health issues may affect a person\'s sleep conditions and sleep disorders may cause several health problems. Many patients with chronic sleep disorders suffer from different further medical conditions - called multimorbidity. Due to the high variety of the reasons and the courses of sleep disorders, individual cases are difficult to compare. Therefore there is a high demand for sleep researchers to collaborate with each other to reach necessary participant numbers and multidisciplinary expertise. To date, inter-institutional sleep research is poorly supported by IT systems. In particular the heterogeneity and the quality variations within the acquired bio signal data - caused by different bio signal recorders or different measurement procedures - are impeding common bio signal data processing. In this manuscript we introduce a virtual research platform supporting inter-institutional data sharing and processing. The infrastructure is based on XNAT - a free and open-source neuroimaging research platform - a loosely coupled service oriented architecture and scalable virtualization in the backend. The system is capable of local pseudonymization of bio signal data, mapping to a standardized set of parameters and automatic quality assessment. Terms and quality measures are derived from the \"Manual for the Scoring of Sleep and Associated Events\" of the American Academy of Sleep Medicine, the de-facto standard for diagnostic bio signal analysis in sleep medicine.','Cluster, Cloud and Grid Computing (CCGrid), 2015 15th IEEE/ACM International Symposium on',1,'M. Beier; C. Jansen; G. Mayer; T. Penzel; A. Rodenbeck; R. Siewert; J. Wu; D. Krefting','ieee/service oriented architecture security.csv','ieee',''),(2276,'Automatically Extracting Threats from Extended Data Flow Diagrams','2016','0',' Architectural risk analysis Threat modeling Automatic flaw detection','Abstract Architectural risk analysis is an important aspect of developing software that is free of security flaws. Knowledge on architectural flaws, however, is sparse, in particular in small or medium-sized enterprises. In this paper, we propose a practical approach to architectural risk analysis that leverages Microsoft’s threat modeling. Our technique decouples the creation of a system’s architecture from the process of detecting and collecting architectural flaws. This way, our approach allows an software architect to automatically detect vulnerabilities in software architectures by using a security knowledge base. We evaluated our approach with real-world case studies, focusing on logistics applications. The evaluation uncovered several flaws with a major impact on the security of the software.','',1,'Bernhard J. BergerKarsten SohrRainer Koschke','springer/service oriented architecture security.csv','springer',''),(2277,'Automated Synthesis and Ranking of Secure BPMN Orchestrators','2013','0','Business Process Modelling Notation;Partial Model Checking;Process Algebras;Quantitative security;Secure Service Composition;Synthesis of Functional and Secure Processes','We describe a formal methodology for the automatic synthesis of a secure orchestrator for a set of BPMN processes. The synthesized orchestrator is able to guarantee that all the processes that are started reach their end, and the resulting orchestrator process is secure, that is, it does not allow discloure of certain secret messages. In this work we present an implementation of a forth and back translation from BPMN to crypto-CCS, in such a way to exploit the PaMoChSA tool for synthesizing orchestrators. Furthermore, we study the problem of ranking orchestrators based on quantitative valuations of a process, and on the temporal evolution of such valuations and their security, as a function of the knowledge of the attacker.','Availability, Reliability and Security (ARES), 2013 Eighth International Conference on',2,'V. Ciancia; F. Martinelli; I. Matteucci; M. Petrocchi; J. A. Martín; E. Pimentel','ieee/bpmn security.csv','ieee','\0'),(2278,'Cyber security for service oriented architectures in a Web 2.0 world: An overview of SOA vulnerabilities in financial services','2013','1','Availability;Data security;Information security;Information systems;SOA;Service oriented architecture;Web services;cyber security;secure design;secure software development;security assessment;security awareness','Service oriented architecture is fast becoming ubiquitous enterprise software architecture standard in public and private sector alike. Study of literature and current attacks suggests that with the proliferation of Web API and RESTFul services, the attack vectors prioritized by OWASP top 10, including but not limited to cross site scripting (XSS), cross site request forgery (CSRF), injection, direct object reference, broken authentication and session management now equally apply to web services. In addition service oriented architecture relies heavily on XML/RESTFul web services which are vulnerable to XML Signature Wrapping Attack, Oversize Payload, Coercive parsing, SOAP Action Spoofing, XML Injection, WSDL Scanning, Metadata Spoofing, Oversized Cryptography, BPEL State Deviation, Instantiation Flooding, Indirect Flooding, WS-Addressing spoofing and Middleware Hijacking to name a few. In this paper, we review various such security issues pertaining to service oriented architecture. These and similar techniques, have been employed by Anonymous and other hacktivists, resulting in denial of service attacks on financial applications. While discussing the national security perils of hacktivism, there is an excessive focus on network layer security, and the application layer perspective is not always part of the discussion. In this research, we provide background information and rationale for securing application layer vulnerabilities to facilitate true defense in depth approach for cyber security.','Technologies for Homeland Security (HST), 2013 IEEE International Conference on',2,'A. Masood','ieee/bpel security.csv','ieee','\0'),(2279,'Service Development and Architecture Management for an Enterprise SOA','2014','0',' SOA service-based development enterprise architecture architecture management','Abstract We report on service development and architecture management practices for an enterprise SOA in the financial domain. First we describe how services are currently developed by one of the largest service providers for the financial domain in Austria. Then we show how we have introduced various practices and tools for architecture management over the last years. We have specifically implemented support for architecture extraction, architecture visualization, automatic architecture analysis, and architecture reviews as part of quality gates in the service development process. Finally, we report on lessons learned both in the area of service development and architecture management as well as on existing challenges and future work in this area.','',1,'Thomas KriechbaumGeorg BuchgeherRainer Weinreich','springer/service oriented architecture security.csv','springer','\0'),(2280,'A Security Modeling Approach for Web-Service-Based Business Processes','2009','8','SOA;Web Services;security;security model;views','The rising need for security in SOA applications requires better support for management of non-functional properties in Web-based business processes. Here, the model-driven approach may provide valuable benefits in terms of maintainability and deployment. Apart from modeling the pure functionality of a process, the consideration of security properties at the level of a process model is a promising approach. In this work-in-progress paper we present an extension to the ARIS SOA architect that is capable of modeling security requirements as a separate security model view. Further we provide a transformation that automatically derives WS-security policy-conformant security policies from the process model, which in conjunction with the generated WS-BPEL processes and WSDL documents provides the ability to deploy and run the complete security-enhanced process based on Web service technology.','Engineering of Computer Based Systems, 2009. ECBS 2009. 16th Annual IEEE International Conference and Workshop on the',2,'M. Jensen; S. Feja','ieee/bpel security.csv','ieee','\0'),(2281,'Research and implementation of security framework for small and medium sized E-commerce based on SOA','2015','1','Encrypted database; Legacy systems; Security attacks; Service oriented architectures; Web services','This research paper focuses on the technical considerations for evaluating the E-commerce platform and proposed a logical security framework for small and medium sized E-commerce. The proposed logical security framework is inherited the benefits of Service Oriented Architecture (SOA) and presents an analysis of the eminent security attacks which can be prevented. The proposed logical security framework is implemented and validated on Oscommerce, an open source E-commerce. This paper also presents an analysis on the comparison between the proposed security framework and the security framework of the existing E-commerce systems such as Flipkart and Rechargeitnow. On the basis of comparison with existing security standards and validation of all the major computing attacks on the proposed security framework concludes that the proposed logical security framework helps enterprise to organize an absolute suite of amalgamated security architecture which protects E-commerce system based on SOA. © 2005 - 2015 JATIT & LLS. All rights reserved.','',1,'Luhach A.K., Luhach R.','scopus/service oriented architecture security.csv','scopus',''),(2282,'Gesture Based Robot Control','2012','2','','Abstract The paper proposes a method of controlling robotic manipulators with use of human gestures and movement. Experiments were performed with the use of 4 degree-of-freedom AX-12 Robotic Arm manipulator with force gripper and ASUS Xtion depth sensor also called motion controller. Depth and video capture has been done via OpenNI library. The infrastructure is based on Windows Communication Foundation (WCF) for remote access, authorization, multimedia streaming and servo control. Control of robotic manipulator is implemented with use of human computer interaction algorithm basing on depth sensor information.','',1,'Tomasz GrzejszczakMichał MikulskiTadeusz SzkodnyKarol Jędrasiak','springer/service oriented architecture security.csv','springer','\0'),(2283,'Decomposing Alignment-Based Conformance Checking of Data-Aware Process Models','2014','1',' ProcessMining Conformance Checking Divide-and-Conquer Techniques Multi-Perspective Process Modelling','Abstract Process mining techniques relate observed behavior to modeled behavior, e.g., the automatic discovery of a Petri net based on an event log. Process mining is not limited to process discovery and also includes conformance checking. Conformance checking techniques are used for evaluating the quality of discovered process models and to diagnose deviations from some normative model (e.g., to check compliance). Existing conformance checking approaches typically focus on the control-flow, thus being unable to diagnose deviations concerning data. This paper proposes a technique to check the conformance of data-aware process models. We use so-called Petri nets with Data to model data variables, guards, and read/write actions. Data-aware conformance checking problem may be very time consuming and sometimes even intractable when there are many transitions and data variables. Therefore, we propose a technique to decompose large data-aware conformance checking problems into smaller problems that can be solved more efficiently. We provide a general correctness result showing that decomposition does not influence the outcome of conformance checking. The approach is supported through ProM plug-ins and experimental results show significant performance improvements. Experiments have also been conducted with a real-life case study, thus showing that the approach is also relevant in real business settings.','',2,'Massimiliano de LeoniJorge Munoz-GamaJosep CarmonaWil M. P. van der Aalst','springer/bpmn security.csv','springer',''),(2284,'On applying FMEA to SOAs: A proposal and open challenges','2014','','Business-critical; FMEA; Services; SOA; Validation; Verification','Service Oriented Architectures (SOAs) are being increasingly used to support business-critical systems, raising natural concerns regarding dependability and security attributes. In critical applications, Verification and Validation (V&V) practices are used during system development to achieve the desired level of quality. However, most V&V techniques suit a structured and documented development lifecycle, and assume that the system does not evolve after deployment, contrarily to what happens with SOA. Runtime V&V practices represent one possible solution for this problem, but they are not possible to implement without the adjustment of traditional V&V techniques.This paper studies the adaptation of Failure Mode and Effects Analysis (FMEA) to SOA environments. A preliminary technique named FMEA4SOA is proposed and a case study is used to illustrate its usage. This process raises many challenges that must be overcome for the FMEA4SOA to become usable and effective V&V in SOA environments. The paper discusses these challenges while proposing a research roadmap. © Springer International Publishing Switzerland 2014.','',1,'Areias C., Antunes N., Cunha J.C.','scopus/service oriented architecture security.csv','scopus','\0'),(2285,'Particle Swarm Optimization for Multi-Objective Web Service Location Allocation','2016','0',' Web service location allocation Particle swarm optimization Combinatorial optimization','Abstract Web service location allocation problem is an important problem in the modern IT industry. In this paper, the two major objectives, i.e. deployment cost and network latency, are considered simultaneously. In order to solve this new multi-objective problem effectively, we adopted the framework of binary Particle Swarm Optimization (PSO) due to its efficacy that has been demonstrated in many optimization problems. Specifically, we developed two PSO variants, one with weighted-sum fitness function (WSPSO) and the other with dominance-based fitness function. Concretely, it uses the fast Non-dominate Sorting scheme, and thus is called NSPSO. The experimental results showed that both PSO variants performed better than NSGA-II, which is the one of the most commonly used multi-objective genetic algorithms. Furthermore, we have found that NSPSO achieved a more diverse set of solutions than WSPSO, and thus covers the Pareto front better. This demonstrates the efficacy of using the dominance-based fitness function in solving multi-objective Web service location allocation problem.','',2,'Boxiong TanYi MeiHui MaMengjie Zhang','springer/bpel security.csv','springer',''),(2286,'Coevolution of variability models and related software artifacts','2015','7',' Variability Evolution Software product lines Patterns Linux','Abstract Variant-rich software systems offer a large degree of customization, allowing users to configure the target system according to their preferences and needs. Facing high degrees of variability, these systems often employ variability models to explicitly capture user-configurable features (e.g., systems options) and the constraints they impose. The explicit representation of features allows them to be referenced in different variation points across different artifacts, enabling the latter to vary according to specific feature selections. In such settings, the evolution of variability models interplays with the evolution of related artifacts, requiring the two to evolve together, or coevolve. Interestingly, little is known about how such coevolution occurs in real-world systems, as existing research has focused mostly on variability evolution as it happens in variability models only. Furthermore, existing techniques supporting variability evolution are usually validated with randomly-generated variability models or evolution scenarios that do not stem from practice. As the community lacks a deep understanding of how variability evolution occurs in real-world systems and how it relates to the evolution of different kinds of software artifacts, it is not surprising that industry reports existing tools and solutions ineffective, as they do not handle the complexity found in practice. Attempting to mitigate this overall lack of knowledge and to support tool builders with insights on how variability models coevolve with other artifact types, we study a large and complex real-world variant-rich software system: the Linux kernel. Specifically, we extract variability-coevolution patterns capturing changes in the variability model of the Linux kernel with subsequent changes in Makefiles and C source code. From the analysis of the patterns, we report on findings concerning evolution principles found in the kernel, and we reveal deficiencies in existing tools and theory when handling changes captured by our patterns.','Empirical Software Engineering',1,'Leonardo PassosLeopoldo TeixeiraNicolas DintznerSven ApelAndrzej WąsowskiKrzysztof CzarneckiPaulo BorbaJianmei Guo','springer/soa security.csv','springer',''),(2287,'Autonomic Intelligent Cyber-Sensor to Support Industrial Control Network Awareness','2014','4','Autonomic computing;control systems;industrial ecosystems;network security;service-oriented architecture','The proliferation of digital devices in a networked industrial ecosystem, along with an exponential growth in complexity and scope, has resulted in elevated security concerns and management complexity issues. This paper describes a novel architecture utilizing concepts of autonomic computing and a simple object access protocol (SOAP)-based interface to metadata access points (IF-MAP) external communication layer to create a network security sensor. This approach simplifies integration of legacy software and supports a secure, scalable, and self-managed framework. The contribution of this paper is twofold: 1) A flexible two-level communication layer based on autonomic computing and service oriented architecture is detailed and 2) three complementary modules that dynamically reconfigure in response to a changing environment are presented. One module utilizes clustering and fuzzy logic to monitor traffic for abnormal behavior. Another module passively monitors network traffic and deploys deceptive virtual network hosts. These components of the sensor system were implemented in C++ and PERL and utilize a common internal D-Bus communication mechanism. A proof of concept prototype was deployed on a mixed-use test network showing the possible real-world applicability. In testing, 45 of the 46 network attached devices were recognized and 10 of the 12 emulated devices were created with specific operating system and port configurations. In addition, the anomaly detection algorithm achieved a 99.9% recognition rate. All output from the modules were correctly distributed using the common communication structure.','IEEE Transactions on Industrial Informatics',1,'T. Vollmer; M. Manic; O. Linda','ieee/service oriented architecture security.csv','ieee','\0'),(2288,'Goal-Oriented Opportunistic Sensor Clouds','2012','0','','Abstract Activity- and context-aware systems, as they are known, established, and well evaluated in small-scale laboratory settings for years and decades, suffer from the fact, that they are limited concerning the underlying data delivering entities. The sensor systems are usually attached on the body, on objects, or in the environment, directly surrounding persons or groups whose activities or contextual information has to be detected. For sensors that are exploited in this kind of systems, it is essential that their modalities, positions and technical details are initially defined to ensure a stable and accurate system execution. In contrast to that, opportunistic sensing allows for selecting and utilizing sensors, as they happen to be accessible according to their spontaneous availability, without presumably defining the input modalities, on a goal-oriented principle. One major benefit thereby is the capability of utilizing sensors of different kinds and modalities, even immaterial sources of information like webservices, by abstracting low-level access details. This emerges the need to roll out the data federating entity as decentralized collecting point. Cloud-based technologies enable space- and time-free utilization of a vast amount of heterogeneous sensor devices reaching from simple physical devices (e.g., GPS, accelerometers, as they are conventionally included on today’s smart phones) to social media sensors, like Facebook, Twitter, or LinkedIn. This paper presents an opportunistic, cloud-based approach for large-scale activity- and context-recognition.','',1,'Marc KurzGerold HölzlAlois Ferscha','springer/service oriented architecture security.csv','springer','\0'),(2289,'Evaluating robustness of cloud-based systems','2015','0',' Systems architectures Cloud-based systems Robustness indicators Robustness metric Software deployment Sensitive components Failure sequences','Abstract Various services are now available in the Cloud, ranging from turnkey databases and application servers to high-level services such as continuous integration or source version control. To stand out of this diversity, robustness of service compositions is an important selling argument, but which remains difficult to understand and estimate as it does not only depend on services but also on the underlying platform and infrastructure. Yet, choosing a specific service composition may fail to deliver the expected robustness, but reverting early choices may jeopardise the success of any Cloud project. Inspired by existing models used in Biology to quantify the robustness of ecosystems, we show how to tailor them to obtain early indicators of robustness for cloud-based deployments. This technique helps identify weakest parts in the overall architecture and in turn mitigates the risk of having to revert key architectural choices. We illustrate our approach by comparing the robustness of four alternative deployments of the SensApp application, which includes a MongoDB database, four REST services and a graphical web-front end.','Journal of Cloud Computing',1,'Franck ChauvelHui SongNicolas FerryFranck Fleurey','springer/service oriented architecture security.csv','springer',''),(2290,'Wireless Sensor Networks in Next Generation Communication Infrastructure: Vision and Challenges','2014','0',' Wireless sensor network cyber physical system cloud computing next generation network seamless integration','Abstract Last decade saw the development of Wireless Sensor Networks with multitude of applications built around the sensors. Though most of the issues at protocol and device level remain solved for Wireless Sensor Networks, there is a growing trend in integration of sensors and sensor based systems with Cyber Physical Systems, Machine-to-Machine and Device-to-Device communication both in infrastructure and ad-hoc modes. The emergence of Cloud Computing, highly intelligent ’Smart’ devices and efforts towards 5th Generation telecom systems is expected to lead the revolution of a networked world with increased demand for situational awareness leading proliferation of sensors at the edge of physical world. Mounting intelligence built in ’smart’ devices, scarcity of frequency spectrum, disruptive technologies and limitations on further reduction in base station size may render base station centric-architecture of today’s wireless networks old-fashioned. Due to low data rate bursty nature of sensor data, massive-MIMO antennas, device-centric architectures, smarter devices and native support for Machine-to-Machine and Device-to-Device communication, sensor data originating from these systems and disruptive technologies is expected to grow manifold through passing years. Communication and network engineers face an emerging challenge of designing communication and network protocols that can efficiently get integrated with the emerging wireless cellular and computing paradigms. In this paper, we list down these communication and networking challenges and provide our vision for Wireless Sensor Networks related platforms and enabling technologies of next decade.','',1,'Saad Bin QaisarSalman AliEmad A. Felemban','springer/service oriented architecture security.csv','springer','\0'),(2291,'Simulation of cloud data security processes and performance','2015','','Bonnita soft; Cloud computing; Performance; Security','In the world of cloud computing, millions of people are using cloud computing for the purpose of business, education and socialization. Examples of cloud applications are: Google Drive for storage, Facebook for social networks, etc. Cloud users use the cloud computing infrastructure thinking that these services are easy and safe to use. However, there are security and performance issues to be addressed. This paper discusses how cloud users and cloud providers address performance and security issues. In this research, we have used business process modelling and simulation to explore the performance characteristics and security concerns in the service development life cycle. The results show that Business Process Modelling Notations (BPMN) simulation is effective for the study of cloud security process in detail before actual implementation. The total simulation duration time was 51 days and 9 h 40 min but the results are displayed in 7 s only. © Springer International Publishing Switzerland 2015.','',2,'Chand K., Ramachandran M., Kor A.-L.','scopus/bpmn security.csv','scopus',''),(2292,'VCU: The Three Dimensions of Reuse','2016','0',' Reuse Interfaces Variability Customization Configuration Extension Usage Concern-oriented reuse','Abstract Reuse, enabled by modularity and interfaces, is one of the most important concepts in software engineering. This is evidenced by an increasingly large number of reusable artifacts, ranging from small units such as classes to larger, more sophisticated units such as components, services, frameworks, software product lines, and concerns. This paper presents evidence that a canonical set of reuse interfaces has emerged over time: the variation, customization, and usage interfaces (VCU). A reusable artifact that provides all three interfaces reaches the highest potential of reuse, as it explicitly exposes how the artifact can be manipulated during the reuse process along these three dimensions. We demonstrate the wide applicability of the VCU interfaces along two axes: across abstraction layers of a system specification and across existing reuse techniques. The former is shown with the help of a comprehensive case study including reusable requirements, software, and hardware models for the authorization domain. The latter is shown with a discussion on how the VCU interfaces relate to existing reuse techniques.','',2,'Jörg KienzleGunter MussbacherOmar AlamMatthias SchöttleNicolas BelloirPhilippe ColletBenoit CombemaleJulien DeAntoniJacques KleinBernhard Rumpe','springer/bpmn security.csv','springer',''),(2293,'Towards Compliance Verification Between Global and Local Process Models','2015','0','','Abstract This paper addresses the question how to verify that the local workflow of an organisation participating in a cross-organisational collaboration is in compliance with the globally specified rules of that collaboration. We assume that the collaborative workflow is specified as a BPMN Collaboration Diagram and the local workflows as BPMN Process Diagrams. We then employ existing LTL semantics of the former and token semantics of the latter to verify conformance. We use the graph transformation tool GROOVE to automate the verification, and exemplify our approach with a case study from the financial markets domain.','',2,'Pieter M. KwantesPieter Van GorpJetty KleijnArend Rensink','springer/bpel security.csv','springer',''),(2294,'The Impact of Consistency on System Latency in Fault Tolerant Internet Computing','2015','0',' Internet computing Fault-tolerance Consistency Latency Response time Modelling','Abstract The paper discusses our practical experience and theoretical results in investigating the impact of consistency on latency in distributed fault tolerant systems built over the Internet. Trade-offs between consistency, availability and latency are examined, as well as the role of the application timeout as the main determinant of the interplay between system availability and performance. The paper presents experimental results of measuring response time for replicated service-oriented systems that provide different consistency levels: ONE, ALL and QUORUM. These results clearly show that improvements in system consistency increase system latency. A set of novel analytical models is proposed that would enable quantified response time prediction depending on the level of consistency provided by a replicated system.','',1,'Olga TarasyukAnatoliy GorbenkoAlexander RomanovskyVyacheslav KharchenkoVitalii Ruban','springer/service oriented architecture security.csv','springer',''),(2295,'Event Driven Monitoring of Composite Services','2013','1','BPMN;SOA;complex event processing;composite services;monitoring;security policy;trust','The Future Internet will be populated by not just data and devices, but also services. Service-Oriented Architecture (SOA) approaches are allowing new ways for users and developers to manage, control and benefit from the services that are being made available. However, SOA-based applications are highly dynamic and liable to change significantly at runtime. This justifies the need for monitoring composed services throughout the lifetime of service execution. In this paper we present a novel framework for monitoring services at runtime and ensuring that services behave as they have promised. The framework enables monitoring of both atomic and composite services and offers high flexibility through the use of Complex Event Processing (CEP). Services are defined as Business Process Modeling Notation (BPMN) processes which can then be monitored during execution. The use of CEP and monitoring points that are inserted automatically between services allows the method to be more flexible and accurate than existing techniques.','Social Computing (SocialCom), 2013 International Conference on',2,'M. Asim; D. Llewellyn-Jones; B. Lempereur; B. Zhou; Q. Shi; M. Merabti','ieee/bpmn security.csv','ieee','\0'),(2296,'Technologies for Web and cloud service interaction: a survey','2016','1',' Web technology Web services Cloud services Service architecture Communication protocols Languages Service interaction patterns','Abstract The evolution of Web and service technologies has led to a wide landscape of standards and protocols for interaction between loosely coupled software components. Examples range from Web applications, mashups, apps, and mobile devices to enterprise-grade services. Cloud computing is the industrialization of service provision and delivery, where Web and enterprise services are converging on a technological level. The article discusses this technological landscape and, in particular, current trends with respect to cloud computing. The survey focuses on the communication aspect of interaction by reviewing languages, protocols, and architectures that drive today’s standards and software implementations applicable in clouds. Technological advances will affect both client side and service side. There is a trend toward multiplexing, multihoming, and encryption in upcoming transport mechanisms, especially for architectures, where a client simultaneously sends a large number of requests to some service. Furthermore, there are emerging client-to-client communication capabilities in Web clients that could establish a foundation for upcoming Web-based messaging architectures.','Service Oriented Computing and Applications',1,'Harald Lampesberger','springer/soa security.csv','springer',''),(2297,'Simulation Modeling and Analysis of Business Process','2009','0','Business Process;Simulation;WS-BPEL','Web services composition technology is promising technology to efficiently integrate heterogeneous, distributed and legacy software system. Performance becomes the key issue when Web services composition model complex and mission-critical application. The defect of design can result in the performance bottleneck problem in the running time. In this paper, we propose a simulation-based model for the business process defined by WS-BPEL. Our model takes advantage of general stochastic Petri Net to simulate the control flow and the transaction behavior of WS-BPEL through constructing the state transition space of composite Web service. Therefore, our simulation model can accurately obtain the performance prosperities with the smaller cost in contrast to building experimental system.','Electronic Commerce and Security, 2009. ISECS \'09. Second International Symposium on',2,'Y. He; L. Zhao; Z. Wu; F. Li','ieee/bpel security.csv','ieee','\0'),(2298,'Webservice based vulnerability testing framework','2014','','framework; real time; security testing; Vulnerability Orchestration framework; VulnerabilityTracker; webservice','Software security is no longer just a problem for software designers, developers and testers. Almost all the white-collar crimes are based on computer security. Many research papers are published on static code analysis, dynamic code analysis and software development design time security issues. This paper proposes a framework for testing security vulnerabilities based on publicly known security vulnerabilities database. After vulnerabilities are found in application, the security tester uses Penetration testing tools to test the security flow. The Vulnerability Orchestration framework gets the vulnerability priority from the VulnerabilityTracker webservice. The Webservice collects the vulnerability attacks from the security Vulnerabilities database and update test case priority signature in the web service. The framework runs the test cases based on VulnerabilityTracker web service as part of the build process and execute security test suites for every build. The security tester adds the new test cases whenever they find a new vulnerability. © 2014 IEEE.','',1,'Selvam R., Senthilkumar A.','scopus/webservice security.csv','scopus','\0'),(2299,'A Framework for Secure Service Composition','2013','3','BPMN;secure service composition;service availability;service modelling','Modern applications are inherently heterogeneous: they are built by composing loosely coupled services that are, usually, offered and operated by different service providers. While this approach increases the flexibility of the composed applications, it makes the implementation of security and trustworthiness requirements difficult. As the number of security requirements is increasing dramatically, there is a need for new approaches that integrate security requirements right from the beginning while composing service-based applications. In this paper, we present a framework for secure service composition using a model-based approach for specifying, building, and executing composed services. As a unique feature, this framework integrates security requirements as a first class citizen and, thus, avoids the ``security as an afterthought\'\' paradigm.','Social Computing (SocialCom), 2013 International Conference on',2,'A. D. Brucker; F. Malmignati; M. Merabti; Q. Shi; B. Zhou','ieee/bpmn security.csv','ieee','\0'),(2300,'Performance Characterisation and Evaluation of WRF Model on Cloud and HPC Architectures','2014','0','','Weather forecasting is a computationally intensiveproblem to handle as well as an important application problemwhere Cloud Computing can play a key transformational role.Traditionally the problem of handling such workloads havebeen considered mainly on High Performance Computing (HPC)architectures owing to their tightly-coupled nature and promisingspeed-up gains. However, with modern day Cloud platforms offeringa scalable service infrastructure, current HPC domain expertscontinue to deliberate on the usage of Cloud Computing platformsas an alternate cost effective and efficient way of procuring justin time computing. At the same time, there are a variety offactors to be considered before HPC workloads such as weatherforecasting can be moved to a Cloud infrastructure. In this paper,we have studied the performance characteristics of WeatherResearch and Forecasting (WRF) algorithm on three differentcomputing architectures. The architectures include two publicdomain Cloud service providers and a virtual machine (VM)based setup. Through detailed experiments, we have performeda rigorous comparative analysis of the performance of WRF ineach of these architectures and in that process we have identifiedthe strengths and weaknesses of each architecture for such HPCworkloads. We believe our work of comparing across 3 differentarchitectures is the first of its kind and could be seen as a pilotreference useful to domain experts and system administratorswho are considering to employ Cloud Computing for specificHPC problems.','High Performance Computing and Communications, 2014 IEEE 6th Intl Symp on Cyberspace Safety and Security, 2014 IEEE 11th Intl Conf on Embedded Software and Syst (HPCC,CSS,ICESS), 2014 IEEE Intl Conf on',1,'S. P. T. Krishnan; S. P. T. Krishnan; B. Veeravalli; V. H. Krishna; W. C. Sheng','ieee/service oriented architecture security.csv','ieee','\0'); +INSERT INTO `articles` VALUES (2301,'An analysis of technologies for building information security infrastructure of global distributed computing systems','2015','','Distributed computing systems; Security framework; Security infrastructure','The implementation of global distributed information systems based on cloud and grid approaches. There are many problems of ensuring a high level of information security of these systems because they operate critical or confidential data, and the elements of these systems found in different physical locations to communicate with that uses open standards and protocols of the Internet. The existing distributed information systems implemented using a variety of architectural and technology platforms, which usually do not meet the current challenges in the field of ensuring a high level of information security. In addition, the actual question of the integration of these systems with corporate information systems, and providing a high level of security used integration solutions. The aim of this work was the systematization and analysis of proven technologies for building high reliable information security infrastructure of global distributed computing systems. As part of the work identified approaches to implementation of information security infrastructure based on technical standards Globus Toolkit, OGSA, UNICORE, gLite. The features of the implementation of security infrastructure based on these standards, as well as the possibility to interact with external systems based on industry standards such as SOA, Web Services. © 2005 - 2015 JATIT & LLS. All rights reserved.','',1,'Ptitsyn P.S., Radko D.V.','scopus/soa security.csv','scopus',''),(2302,'409--412','2012','0','locator, service oriented architecture, web service','The Service Oriented model is developed and adopted by different organizations. The services are open and can be developed and consumed independently. The service life cycle needs to be consumed and updated dynamically in order to maintain the availability and the appropriateness of the services. The Second section of this paper describes the fundamentals of the SOA and the requirements of the security parameters with the same. The third section deals with the service life cycle model related to Educational Information System. The fourth section elaborates the functions of secured service lifecycle information model. The fifth section summarizes the results and the findings of the design and implementation. The conclusion indicates the main advantages of this model.','',1,'','acm/soa security.csv','acm','\0'),(2303,'Domain Objects for Dynamic and Incremental Service Composition','2014','0','','Abstract A key feature of service-based applications (SBAs) is the capacity to dynamically define the composition of services independently available, which is required to achieve user goals. For this reason, to effectively deal with the obstacles due to continuous context changes, an incremental refinement of provided services is needed. We propose a new model that allows service functionalities to be defined partially, through the use of abstract activities. The refinement of these activities is postponed and performed incrementally at runtime, using the actual context as a guide. Our approach lets a service provider avoid the hard-coding of all service functionalities and their possible compositions at design time, delaying their refinement until the execution phase. Consequently the whole SBA’s design becomes modular and flexible to better meet the typical dynamism of SBA. We illustrate the approach through an example scenario from the urban mobility domain.','',2,'Antonio BucchiaroneMartina De SanctisMarco Pistore','springer/bpel security.csv','springer',''),(2304,'Security for mobile low power nodes in a personal area network by means of trusted platform modules','2007','3','Platform integrity of resource constrained device; Remote controlled infusion pump; Teletherapy of pain','The growing field of ubiquitous applications and the use of resource constrained mobile devices strongly demands for mechanisms to provide the security and privacy of such mobile devices. In this paper we show that especially new teletherapeutic applications are not feasible without strong cryptographic protection of data and platform. Based on the analysis of security requirements, we introduce a mobile low power node that is secured by means of a Trusted Platform Module (TPM). For privacy and security of the communication between the mobile device and a webserver, which is part of the distributed network, we propose a security protocol based on webservice technology that uses the mechanisms of the TPM. Finally, measurements that were done with the secured mobile node are presented. We show that TPMs are well suited for resource constrained mobile devices and are a step towards trusted ubiquitous computing. © Springer-Verlag Berlin Heidelberg 2007.','',1,'Grossmann U., Berkhan E., Jatoba L.C., Ottenbacher J., Stork W., Mueller-Glaser K.D.','scopus/webservice security.csv','scopus','\0'),(2305,'Towards the Derivation of Secure Business Process Designs','2015','0',' Business process modelling Business process security Secure tropos BPMN Process derivation Goal-to-process transformation','Abstract Security is a critical aspect of business processes that organisations utilise to achieve their goals. Current works on secure business process design mainly focus on annotating existing process models with security related concepts. Meanwhile, little attention is given to the rationale and the alignment of such security choices to high-level organisational security goals. To that end, a goal-to-process transformation approach, with a clear security orientation, is introduced, as part of a wider framework. This transformation process, presented through an illustrative example, uses Secure Tropos goal models as an input to create intermediate, security-annotated process skeletons. These can be then refined, through a series of manual tasks, to create secure BPMN process models.','',2,'Nikolaos ArgyropoulosHaralambos MouratidisAndrew Fish','springer/bpmn security.csv','springer',''),(2306,'Towards a Compliance-Aware Inter-organizational Service Integration Platform','2014','1',' regulatory compliance enterprise service bus complex event processing service-oriented computing enterprise integration middleware','Abstract Organizations are increasingly required to collaborate with each other in order to achieve their business goals. The service oriented paradigm is currently the preferred approach to carry out this collaboration as facilitates interconnecting the software systems of different organizations. More concretely, such integration is supported by integration platforms which are specialized middleware-based infrastructures enabling the provision, discovery and invocation of interoperable software services. On another hand, these integrated and collaborative environments (e.g. e-government, e-health, e-science, e-commerce and e-business) must comply with regulations originating in laws, sectorial regulations, service level agreements and standards, among others. This research aims at proposing solutions to monitor and enforce compliance requirements in inter-organizational service integration platforms. Particularly, this work addresses compliance requirements on services, information exchanged and the flow of interactions between organizations. The solutions, which are based on well-known enterprise integration patterns and other capabilities (e.g. adaptability and context-awareness), are then refined into specific middleware technologies, notably Enterprise Service Bus and Complex Event Processing engines.','',1,'Laura GonzálezRaúl Ruggia','springer/service oriented architecture security.csv','springer','\0'),(2307,'Semantic Annotation of Service Choreographies','2014','0',' semantic annotation ontology service choreography business process similarity measure recommender system','Abstract In a previous paper, we discussed a methodology for the extension of the service choreography model based on ontologies. The main purpose was to extract syntactically and semantically correct recommendations (model annotations) for the process modeler in view of model analysis and improvement. This paper presents ongoing work with a focus on the ontology used for recommendation retrieval and the way the semantic recommender captures and analyses the modeler’s intentions. We discuss similarity computation (which is at the basis of semantic model annotation) at several levels and illustrate it with examples.','',2,'Vinh Thinh LuuIoana Ciuciu','springer/bpel security.csv','springer',''),(2308,'Bidirectional 10 Gb/s/λ, channel-reuse, long-reach DWDM-PON employing tunable optical transceiver with optical intensity detection-based wavelength management','2015','0',' Tunable optical transceiver Wavelength management Channel-reuse Colorless ONU DWDM-PON','Abstract We experimentally demonstrate a channel-reuse, bidirectional 10 Gb/s/λ, long-reach dense wavelength-division-multiplexing passive optical network (DWDM-PON) and an optical intensity detection-based wavelength management method for tunable optical transceiver used in colorless optical network unit. A channel-reuse, full-duplex, 42 km/87 km reach without/with optical amplification, 10 Gb/s transmission on a 50 GHz DWDM grid is achieved. Transmission performance is also measured with different optical-signal-to-Rayleigh-backscattering-noise ratios (OSRBNRs) and different central wavelength shifts between upstream signal and downstream signal in the channel-reuse system. Optimal operating wavelength for the uplink optical signal and effective OSRBNR configurations taking into account AWG pass-band, wavelength instability of the downlink optical transmitter and the distance of the feeder fiber are proposed.','Optical and Quantum Electronics',1,'Zhiguo ZhangXu JiangJiahe WangXue ChenLiqian Wang','springer/soa security.csv','springer',''),(2309,'Security requirements engineering for secure business processes','2012','7','BPMN; business process; Security requirements; social commitments','Traditional approaches to business process modelling deal with security only after the business process has been defined, namely without considering security needs as input for the definition. This may require very costly corrections if new security issues are discovered. Moreover, security concerns are mainly considered at the system level without providing the rationale for their existence, that is, without taking into account the social or organizational perspective, which is essential for business processes related to considerably large organizations. In this paper, we introduce a framework for engineering secure business processes. We propose a security requirements engineering approach to model and analyze participants\' objectives and interactions, and then derive from them a set of security requirements that are used to annotate business processes. We capture security requirements through the notion of social commitment, that is a promise with contractual validity between participants. We illustrate the framework by means of an Air Traffic Management scenario. © 2012 Springer-Verlag Berlin Heidelberg.','',2,'Paja E., Giorgini P., Paul S., Meland P.H.','scopus/bpmn security.csv','scopus','\0'),(2310,'Deployment of Collaborative Softwares as a Service in a Private Cloud to a Software Factory','2015','0',' Cloud computing Deployment Private cloud Software factory Owncloud','Abstract This paper presents a proposal of deploying secure communication services in the cloud for software factory university UNB (University of Brasília - Brazil). The deployment of these services will be conducted in a private cloud, allocated in the CESPE (Centro de Seleção e de Promoção de Eventos) servers. The main service that will be available is the Expresso, which is a system maintained by SERPRO (Serviço Federal de Processamento de Dados). These services increase the productivity of the factory members and increase their collaboration in projects developed internally','',1,'Guilherme Fay VergaraEdna Dias CanedoSergio Antônio Andrade de Freitas','springer/service oriented architecture security.csv','springer',''),(2311,'Quality attributes and design decisions in Service-Oriented Computing','2012','0','','Recently, Service-Oriented Computing is growing rapidly. With new emergences of technologies, software engineers have been facing more and more challenges in this area. Particularly, quality attributes and design decisions in Service-Oriented Computing are seldom discussed. According to the problems, our paper focuses on how to examine the design decisions based on quality attributes and how design decisions impact on the architecture of service in SOA-based system. In order to resolve these design issues, we develop an approach to SOA-based system in high level design based on functional requirements and quality attributes. Finally, a case study is shown by using our approach.','Innovations in Information Technology (IIT), 2012 International Conference on',1,'H. Mcheick; Y. Qi','ieee/service oriented architecture security.csv','ieee','\0'),(2312,'A reliable wavelength division multiplexing metro-access network realizing crosstalk-free transmission between uplink and downlink','2013','0',' Wavelength division multiplexing Network structure Ring topology Reconfiguration Survivability','Abstract A novel wavelength division multiplexing metro-access network based on dual-fiber ring of remote nodes and star topology of optical network units is designed to realize the reliable network in case of either single or dual fiber failure. In the design, the survivability of the network is largely enhanced by three work modes. Simultaneously, this network structure can also avoid the crosstalk between uplink and downlink. The simulation results demonstrated with 2.5-Gb/s up/downstream signals show this approach could work very well.','Optical and Quantum Electronics',1,'Chenwei WuChaoqin GanXuejiao Ma','springer/soa security.csv','springer','\0'),(2313,'A Connection Oriented Framework for Effectively Using Multicore in the Enterprise','2011','1','','Enterprise applications are built for client server architectures and rebuilt using service-oriented principles. When such web service based applications are hosted on multicore there are specific performance issues due to spatial and temporal characteristics of the multicore. Existing literature addresses the spatial case where inherent parallelism is exploited and the temporal case, where data is not available on main memory. We address a second temporal case, where the data is available in memory, but thread local data is of dissimilar sizes. We present a connection oriented framework and a testbed implementation of an enterprise application. We modeled this enterprise applications for both client-server as well as webservice configurations. We used Cache miss as a key metric for measuring spatial and temporal performance and then demonstrate how an \"compute infrastructure awareness\" using feedback can improve the performance on a hybrid multicore without modifying the application.','New Technologies, Mobility and Security (NTMS), 2011 4th IFIP International Conference on',1,'S. Venugopal; S. K. Desikan','ieee/webservice security.csv','ieee','\0'),(2314,'A service oriented architecture for substation fault analytics','2012','','Fault Analytics; IEC 61850; Model Driven Design; Service Oriented Architecture; Tele-Management Forum','Reliability and security in power supply is a measure of how well an electrical load meets the needs of a consumer at a given point in time. Achieving high levels of reliability requires large capital expenditure. Power systems are required to operate at optimal capacity in order to meet its return on large capital investments. In order to attain a high level of reliability in these operating conditions, protection processes are implemented in power systems to reduce failures and protect components that are be connected to the grid. In South Africa, the power grid has aged and traditional infrastructure that has historically supported consumers is unable to support future requirements. To ensure the continued growth and refresh of grid technologies, industry bodies and committees have established standards and guidelines that challenge the traditional approach to substation systems architecture. Standards leverage off modern technologies providing configuration and deployment alternatives. Standards like the IEC 61850 device communication standard is one that has gained support by technology vendors over the last decade. A growth in the number of implementations of this standard is proving that interoperability of functions, processes and information is possible. This paper focuses on the use of standards, approaches and emerging frameworks to establish a service based analytics architecture. © 2012 IEEE.','',1,'Said E.Y., Nixon K.J.','scopus/service oriented architecture security.csv','scopus','\0'),(2315,'A Unified Approach for Static and Runtime Verification: Framework and Applications','2012','0','','Abstract Static verification of software is becoming ever more effective and efficient. Still, static techniques either have high precision, in which case powerful judgements are hard to achieve automatically, or they use abstractions supporting increased automation, but possibly losing important aspects of the concrete system in the process. Runtime verification has complementary strengths and weaknesses. It combines full precision of the model (including the real deployment environment) with full automation, but cannot judge future and alternative runs. Another drawback of runtime verification can be the computational overhead of monitoring the running system which, although typically not very high, can still be prohibitive in certain settings. In this paper we propose a framework to combine static analysis techniques and runtime verification with the aim of getting the best of both techniques. In particular, we discuss an instantiation of our framework for the deductive theorem prover KeY, and the runtime verification tool Larva . Apart from combining static and dynamic verification, this approach also combines the data centric analysis of KeY with the control centric analysis of Larva . An advantage of the approach is that, through the use of a single specification which can be used by both analysis techniques, expensive parts of the analysis could be moved to the static phase, allowing the runtime monitor to make significant assumptions, dropping parts of expensive checks at runtime. We also discuss specific applications of our approach.','',1,'Wolfgang AhrendtGordon J. PaceGerardo Schneider','springer/service oriented architecture security.csv','springer','\0'),(2316,'Spectro-temporal directional derivative based automatic speech recognition for a serious game scenario','2015','5',' Spectro-temporal directional derivative (STDD) Voice disorder Automatic speech recognition Serious games','Abstract Speech is one of the important modalities in a serious game platform. Serious game can be very useful for the rehabilitation of individuals with voice disorders. Therefore, we need an efficient and high-performance automatic speech recognition (ASR) system. In this paper, we propose a spectro-temporal directional derivative (STDD) feature that requires less number of computations in the modeling and yet gives high recognition accuracy in the ASR system. The proposed STDD feature is achieved by applying different directional derivative filters in the spectro-temporal domain. The feature dimension is then compressed by discrete cosine transform. The experiments are performed with voice samples of Arabic numerals spoken by persons with and without voice pathology. The experimental results show that the STDD feature outperforms the conventional mel-frequency cepstral coefficients both in clean and noisy environments.','Multimedia Tools and Applications',1,'Ghulam MuhammadMehedi MasudAbdulhameed AlelaiwiMd. Abdur RahmanAli KarimeAtif AlamriM. Shamim Hossain','springer/service oriented architecture security.csv','springer',''),(2317,'Network and Storage Latency Attacks to Online Trading Protocols in the Cloud','2014','1',' Cloud Multi-party online trading protocol Network latency attack Storage latency attack','Abstract Online trading protocols enable participants to trade, barter, or sell goods and services over a private network or the global Net. Due to diversity of network and computational resources at their disposal, participants communicate and carry out their trading with different latencies. This scenario may give rise to latency attacks , where malicious parties (a.k.a. fast traders ) exploit lower latency to attack trading protocols’ fairness and increase their income. With the advent of the cloud, the problem of identifying and preventing latency attacks is exacerbated by the fact that cloud providers and privileged users could collude to make latency attacks simpler and more effective. In this paper, we give an overview of network and storage latency attacks in multi-party trading protocols, focusing on cloud peculiarities and providing some empirical recommendations for protocol design.','',1,'Claudio A. ArdagnaErnesto Damiani','springer/service oriented architecture security.csv','springer','\0'),(2318,'Alert-response for distributed surveillance: DODAF-based services and systems','2014','0','DODAF 2.0;Multimedia surveilhnce;alert;enterprise architecture;response','Over decades of research and development in surveillance domain, multimedia surveillance systems have achieved a great maturity level. However, due to the distribution of surveillance capabilities in current surveillance systems, new challenges on how to manage and coordinate alerts and responses among the distributed parties becomes a challenge. These alerts and responses are the two very important information items in establishing effective collaboration among the distributed smart surveillance systems. This research aims to develop a enterprise-scale alert-response management framework based on DODAF 2.0 services and systems model. The proposed framework may be considered as generic information assimilation and coordination framework for different surveillance scenarios.','16th International Conference on Advanced Communication Technology',1,'A. Y. Shahrah; M. A. Hossain; A. S. Alghamdi','ieee/service oriented architecture security.csv','ieee','\0'),(2319,'Model-driven risk analysis of evolving critical infrastructures','2014','6',' Risk analysis Security Interdependencies Evolution Critical infrastructures Incident preparedness ATM','Abstract The protection and security of critical infrastructures are important parts of Homeland Defense. Adequate means for analyzing the security risks of such infrastructures is a prerequisite for properly understanding the security needs and for maintaining appropriate incident preparedness. Risk management is coordinated activities to direct and control an organization with regard to risk, and includes the identification, analysis and mitigation of unacceptable risks. For critical infrastructures consisting of interdependent systems, risk analysis and mitigation is challenging because the overall risk picture may be strongly affected by changes in only a few of the systems. In order to continuously manage risks and maintain an adequate level of protection, there is a need to continuously maintain the validity of risk models while systems change and evolve. This paper addresses these challenges by presenting an approach to model-driven security risk analysis of changing and evolving systems. The approach is a tool-supported method with techniques and modeling support for traceability of system changes to risk models, as well as the explicit modeling of the impact of changes on the current risk picture. The presented artifacts are exemplified and validated in the domain of air traffic management.','Journal of Ambient Intelligence and Humanized Computing',1,'Bjørnar SolhaugFredrik Seehusen','springer/soa security.csv','springer','\0'),(2320,'search GenBank: interactive orchestration and ad-hoc choreography of Web services in the exploration of the biomedical resources of the National Center For Biotechnology Information','2013','1',' NCBI entrez Entrez databases Entrez search engine Entrez programming utilities Data exploration Data searching Data querying Web services Orchestration Choreography','Abstract Background Due to the growing number of biomedical entries in data repositories of the National Center for Biotechnology Information (NCBI), it is difficult to collect, manage and process all of these entries in one place by third-party software developers without significant investment in hardware and software infrastructure, its maintenance and administration. Web services allow development of software applications that integrate in one place the functionality and processing logic of distributed software components, without integrating the components themselves and without integrating the resources to which they have access. This is achieved by appropriate orchestration or choreography of available Web services and their shared functions. After the successful application of Web services in the business sector, this technology can now be used to build composite software tools that are oriented towards biomedical data processing. Results We have developed a new tool for efficient and dynamic data exploration in GenBank and other NCBI databases. A dedicated search GenBank system makes use of NCBI Web services and a package of Entrez Programming Utilities (eUtils) in order to provide extended searching capabilities in NCBI data repositories. In search GenBank users can use one of the three exploration paths: simple data searching based on the specified user’s query, advanced data searching based on the specified user’s query, and advanced data exploration with the use of macros. search GenBank orchestrates calls of particular tools available through the NCBI Web service providing requested functionality, while users interactively browse selected records in search GenBank and traverse between NCBI databases using available links. On the other hand, by building macros in the advanced data exploration mode, users create choreographies of eUtils calls, which can lead to the automatic discovery of related data in the specified databases. Conclusions search GenBank extends standard capabilities of the NCBI Entrez search engine in querying biomedical databases. The possibility of creating and saving macros in the search GenBank is a unique feature and has a great potential. The potential will further grow in the future with the increasing density of networks of relationships between data stored in particular databases. search GenBank is available for public use at http://​sgb.​biotools.​pl/​ .','BMC Bioinformatics',1,'Dariusz MrozekBożena Małysiak-MrozekArtur Siążnik','springer/service oriented architecture security.csv','springer','\0'),(2321,'Design and implementation of multilevel security subsystem based on XACML and WEB services','2015','','C4I Systems; Common Operating Picture; Information sharing; Multi Level Security; SOA; WEB Services; XACML','Controlled sharing of confidential information in military environment, especially as a part of joint and coalition forces, is an important mean to achieve the network-centricity goals. During last few years a technology for building the Service-Oriented Architecture has been developed. The Service-Oriented Architecture maps the concept of distributed service-oriented processing. It is a good application framework for integration of heterogeneous military systems. However, these systems could process the confidential data divided onto hierarchical classification levels. We can rise up the question: can Service-Oriented Architecture serve as a middleware layer to integrate such systems? The paper presents selected cases of information systems cooperation in systems federation. We developed the functional mechanisms according to XACML architecture and we proposed necessary attributes for users and data, what enabled to control information exchange and to authorize users to access sensitive information resources. The developed MLS implementations were tested in terms of interoperability in the consortium and domestic test environment. In June 2012, both the implementations services were successfully tested in an international test environment during testing of interoperability with foreign partners (Germany) and NC3A agency in the NATO Secret network during CWIX 2012 exercises. © 2015 Military University of Technology.','',1,'Jarmakiewicz J., Podlasek T.','scopus/service oriented architecture security.csv','scopus',''),(2322,'Der Standard ISO/IEC 27001:2013','2014','0','','Zusammenfassung Nach acht Jahren wurde 2013 der ISMS-Standard ISO/IEC 27001 überarbeitet. In diese überarbeitung sind viele Erfahrungen aus der Praxis eingeflossen, die ein Arbeiten nach dem neuen Standard vereinfachen sollen. In diesem Beitrag werden die wesentlichen Änderungen im Standard und im Anhang A vorgestellt. Um es vorweg zu nehmen: Die Änderungen sind weder belanglos noch revolutionär, sondern überwiegend praxisrelevante Verbesserungen.','Datenschutz und Datensicherheit - DuD',1,'Kai Jendrian','springer/soa security.csv','springer','\0'),(2323,'Designing secure business processes with SecBPMN','2015','0',' Information systems Security policies BPMN Compliance','Abstract Modern information systems are increasingly large and consist of an interplay of technical components and social actors (humans and organizations). Such interplay threatens the security of the overall system and calls for verification techniques that enable determining compliance with security policies. Existing verification frameworks either have a limited expressiveness that inhibits the specification of real-world requirements or rely on formal languages that are difficult to use for most analysts. In this paper, we overcome the limitations of existing approaches by presenting the SecBPMN framework. Our proposal includes: (1) the SecBPMN-ml modeling language, a security-oriented extension of BPMN for specifying composite information systems; (2) the SecBPMN-Q query language for representing security policies; and (3) a query engine that enables checking SecBPMN-Q policies against SecBPMN-ml specifications. We evaluate our approach by studying its understandability and perceived complexity with experts, running scalability analysis of the query engine, and through an application to a large case study concerning air traffic management.','Software & Systems Modeling',2,'Mattia SalnitriFabiano DalpiazPaolo Giorgini','springer/bpel security.csv','springer',''),(2324,'Safety Assurance of Open Adaptive Systems – A Survey','2014','1','','Abstract Open adaptive systems are the basis for a promising new generation of embedded systems with huge economic potential. In many application domains, however, the systems are safety-critical and an appropriate safety assurance approach is still missing. In recent years, models at runtime have emerged as a promising way to systematically engineer adaptive systems. This approach seems to provide the indispensable leverage for applying safety assurance techniques in adaptive systems. Therefore, this survey analyzes the state-of-the-art of models at runtime from a safety engineering point of view in order to assess the potential of this approach and to identify open gaps that have to be closed in future research to yield a safety assurance approach for open adaptive systems.','',1,'Mario TrappDaniel Schneider','springer/service oriented architecture security.csv','springer','\0'),(2325,'A study on the development of one source multi use cross-platform based on zero coding','2015','1',' Cross-platform Osmu(one source multi use) Zero coding Mobile app Native app','Abstract This study is to research and develop a native application based development tool which can perfectly satisfy both OSMU and cross-platform, and secure stable H/W control and execution speed. Additionally, this study is to enable developers in beginner or intermediate level to develop an application with the ‘zero coding methodology’ reflected tool developed by this study and not using the conventional program coding methods, eventually providing the environment that anyone, who can use MS office programs, can easily develop an application. The explosively increasing demand for the development of mobile apps is due to all works on typical PCs that should be converted to the smart basis. Although functions to be implemented are the same, different apps should be developed for each platform to result in cost, period and task forces increased a few times. The web-based application platform emerging as a solution for cross platforms is not capable of embodying the desired One Source Multi Use due to speed, UI, and technical incompleteness. Therefore if a “native-based OSMU development platform” is implemented which can develop native apps operating in various mobile operating systems, their high development productivity will contribute to remarkably reduced task forces, costs and time for development and maintenance. Also it will be possible to preoccupy the market of a potential as great as the exiting operating systems, for example, Android, iOS, Windows 8, etc. In order to develop and makes fullest use of smart app authoring tool different approaches should be appropriately employed. Firstly, it is required to have a close relation with legacy systems. Secondly, developers are fully qualified to use office programs. Thirdly, different programs should be also differently developed for business uses. This study aims to commercialize the authoring tool technology of the GUI method without coding and the source technology for driving apps in the cross platform environment. The high development productivity of one source multi use cross-platform based on Zero Coding will contribute to remarkably reduced task forces, costs and time for development and maintenance. The final goal of this paper is to establish operating platform specialized for business under predominant operating systems such as Google’s Android or Apple’s iOS, and to create making tools for application programs based on GUI, in which anyone can easily learn and implement by this platform.','Multimedia Tools and Applications',1,'YoungHyun ChangSangYeob Oh','springer/service oriented architecture security.csv','springer',''),(2326,'Event-based run-time adaptation in communication-centric systems','2016','0',' Concurrency Behavioral types Session types Run-time adaptation Process calculi','Abstract Communication-centric systems are software systems built as assemblies of distributed artifacts that interact following predefined communication protocols. Session-based concurrency is a type-based approach to ensure the conformance of communication-centric systems to such protocols. This paper presents a model of session-based concurrency with mechanisms for run-time adaptation . Our model allows us to specify communication-centric systems whose session behavior can be dynamically updated at run-time. We improve on previous work by proposing an event-based approach: adaptation requests, issued by the system itself or by its context, are assimilated to events which may trigger adaptation routines. These routines exploit type-directed checks to enable the reconfiguration of processes with active protocols. We equip our model with a type system that ensures communication safety and consistency properties: while safety guarantees absence of run-time communication errors, consistency ensures that update actions do not disrupt already established session protocols. We provide soundness results for binary and multiparty protocols.','Formal Aspects of Computing',2,'Cinzia Di GiustoJorge A. Pérez','springer/bpmn security.csv','springer',''),(2327,'A transformation approach for security enhanced business processes','2008','','Human computer interaction; Model-driven; Security; Software architecture; Visualization','The Business Process Modeling Notation (BPMN) has become the defacto standard for describing processes in an accessible graphical notation. The eXtensible Access Control Markup Language (XACML) and WS-Security are both OASIS standards used to specify and enforce platform independent access control and security policies suitable for service-oriented architectures. In this document we propose a transformation approach based on a security modeling framework for business process management to support access control and security policies for business processes. To deploy and enforce such security policies in an enterprise environment, a model-driven transformation between security annotated process models and a security specification language is used. We argue that specific types of organisational control and compliance policies may be expressed in a graphical fashion at the business process modeling level. These can then be transformed into corresponding access control and security policies for business process-driven information systems based on serviceoriented architectures. This approach acts as an enabler for better collaboration between security and business process domain experts to define consistent and valid security policies that can be easily communicated. We discuss the benefits of our modeling approach and outline how our framework can support security and compliance in business processes.','',2,'Wolter C., Schaad A., Meinel C.','scopus/bpmn security.csv','scopus','\0'),(2328,'Automated Analysis of Infinite State Workflows with Access Control Policies','2012','0','','Abstract Business processes are usually specified by workflows extended with access control policies. In previous works, automated techniques have been developed for the analysis of authorization constraints of workflows. One of main drawback of available approaches is that only a bounded number of workflow instances is considered and analyses are limited to consider intra-instance authorization constraints. Instead, in applications, several workflow instances execute concurrently, may synchronize, and be required to ensure inter-instance constraints. Performing an analysis by considering a finite but arbitrary number of workflow instances can give designers a higher confidence about the quality of their business process. In this paper, we propose an automated technique for the analysis of both intra- and inter-instance authorization constraints in workflow systems. We reduce the analysis problem to a model checking problem, parametric in the number of workflow instances, and identify a sub-class of workflow systems with a decidable analysis problem.','',2,'Alessandro ArmandoSilvio Ranise','springer/bpel security.csv','springer','\0'),(2329,'SOA\n \n \n \n $$^\\mathrm{+d}$$\n \n \n \n \n \n +\n d\n \n \n \n \n : a new way to design the decision in SOA—based on the new standard Decision Model and Notation (DMN)','2016','0',' SOA (Service Oriented Architecture) Decision-making process SoaML (Service oriented architecture Modeling BPMN (Business Process Modeling Notation) Pharmacy Inventory Management Decision Model and Notation (DMN)','Abstract In recent years, Service Oriented Architecture (SOA) technologies are emerging as a powerful vehicle for organizations that need to integrate their applications within and across organizational boundaries. In addition, organizations need to make better decisions more quickly. Moreover, they need to change those decisions immediately to adapt to this increasingly dynamic business environment. It is primarily a question in ensuring the decisional aspect by adopting the SOA as a support architecture. In this paper, we describe a new approach called SOA \\(^\\mathrm{+d}\\) based on a certain number of standards. It is going to be studied on three dimensions: The first is related to the definition of the information system implied in the SOA based on the use case model. The second develops the business dimension which is based on the BPMN (Business Process Modeling Notation). The last dimension addresses the need of decision; we use the new standard decision model and notation (DMN) which is recently approved by Object Management Group (OMG) and considered as a simple notation to specify the decision. Finally, Service Oriented Architecture Modeling Language (SoaML) will be used for design of several services. We also present our meta-model Decisional Model of Service (DMS) to define a new set of concepts necessary for modeling the three levels. Some of them are already known, whereas others are new and are proposed as an element of this work. we illustrate our proposal with a real case study in the Pharmacy Inventory Management.','Service Oriented Computing and Applications',1,'Fatima BoumahdiRachid ChalalAmina GuendouzKhalida Gasmia','springer/soa security.csv','springer',''),(2330,'Service Security Revisited','2014','1','REST;SOA;SOAP;Security;Services','Developing contemporary software architectures requires the consideration and adoption of the Service-oriented Architecture (SOA) principles. Distributed applications are a very common domain in which SOA guides design decisions in particular. For a long time, SOAP and its related stack of standards have been the only technological choice for implementing SOA-based systems. With the increased adoption of the REST concept, an alternative to SOAP is gaining traction. Security considerations have been part of the SOAP-based standardization work since the very beginning. As a result, a mature and comprehensive set of security-related standards is available for building SOAP-based service systems. REST-ful service systems, however, cannot take advantage of such a fully developed security framework yet. This paper therefore revisits the SOAP-based web services security stack in order to identify commonalities, differences and gaps in the security available for REST-ful services. From these findings a desired REST-ful web services security stack is proposed together with related research, development and standardization challenges.','Services Computing (SCC), 2014 IEEE International Conference on',1,'P. L. Gorski; L. L. Iacono; H. V. Nguyen; D. B. Torkian','ieee/service oriented architecture security.csv','ieee','\0'),(2331,'Efficacy-Aware Business Process Modeling','2012','2',' Business Process Modeling and Analysis Business Process Design Business Objectives and Goals','Abstract In business process design, business objective models can fulfill the role of formal requirement definitions. Matching process models against objective models would, for instance, enable sound comparison of implementation alternatives. For that purpose, objective models should be available independently of their concrete implementation in a business process. This issue is not addressed by common business process management concepts yet. Moreover, process models are currently not sufficiently expressive to determine business process efficacy in the sense of fulfilling a business objective. Therefore, this paper develops and integrates constructs required for efficacy-aware process modeling and apt to extend common modeling approaches. The concept is illustrated with a sample scenario. Overall, it serves as an enabler for progressive applications like automated process optimization.','',2,'Matthias LohrmannManfred Reichert','springer/bpmn security.csv','springer','\0'),(2332,'Evaluation of Influencing Factors in an Impact Analysis Methodology for the Adoption of Cloud-Based Services','2015','0','Cloud Computing;Cloud Services;Impact Analysis','Technical advancements in virtualization and Service-oriented Architectures, the technology backbone of Cloud Computing (CC), along with the availability of high speed Internet has escalated the performance of CC in terms of elasticity, throughput, agility, or response time. However, according to the Gartner\'s Hype cycle of 2014, CC is at the \"Trough of Disillusionment\", which hints at \"waning of interest as the implementations fail to deliver\" [7]. The reason for this situation is the lack of a methodological impact analysis for adopting cloud-based services in an organization. In the context of CC an impact analysis is complicated due to the complex architecture of services and presence of influencing factors from multiple dimensions (technical, economical, and organizational). This paper, therefore, extends and evaluates the methodology \"Impact Analysis Methodology for Cloud-based Services (IAMCIS)\" that quantifies the impact of cloud-based services before they are adopted in an organization [6]. The methodology is illustrated in combination with a use-case obtained from a survey conducted with 17 organizations (with varied domain of expertise, size, and geographical scope), who plan to adopt or have adopted cloud-based services for fulfilling their IT requirements.','2015 IEEE 8th International Conference on Cloud Computing',1,'R. Garg; B. Stiller','ieee/service oriented architecture security.csv','ieee',''),(2333,'Systems and Virtualization Management: Standards and the Cloud (A report on SVM 2011)','2012','0','','','Journal of Network and Systems Management',1,'Mark Carlson','springer/soa security.csv','springer','\0'),(2334,'SA4WSs: A Security Architecture for Web Services','2013','0',' Web service Security Architecture','Abstract With the rapid development and wide application of the Web services, its security flaws and vulnerabilities are increasing. Security has become one of the key issues to constrain the development of Web services technology. In this paper, we focus on how to build a security architecture for Web services to meet the security requirements of Web service applications. On the basis of analyzing the existing methods, a new security implementation approach for Web services is proposed to meet both the common security requirements of Web services platform and the specific security requirements of Web service applications. Then a security architecture for Web services is proposed. The architecture supports separating the functional implementations of Web service from the non-functional implementation of Web service, and ensures the portability of the platform.','',1,'Lingxia LiuDongxia WangJinjing ZhaoMinhuan Huang','springer/service oriented architecture security.csv','springer','\0'),(2335,'A web-based two-layered integration framework for smart devices','2012','1',' integration smart device Web of Things REST SOAP SOA service composition business process management.','Abstract The explosions of Internet of Things industry have been bringing more and more smart devices (SDs) into business and people\'s daily life. This creates new opportunities to build applications that better integrate real-time state of the physical world and requires agility for the software to accommodate customers\' requirements. Nevertheless, devices are usually provided by different manufacturers, and applications are independently constructed based on their own infrastructures with little interoperability. Web of Things concept has enabled the interoperability between devices by RESTful web service in a light-weight way; however, it make less efforts to discuss how to integrate devices into complex business environment. Service-Oriented Architecture and Business Process Management approach are becoming applicable to embedded real-world devices and provide flexible service composition. However, it is based on WS-* web service specification which is too heavy and complex for devices and not compatible to RESTful style. In such situation, integrating device into business application with simplicity and providing agility composition of service based on device are significant challenges. We propose a web-based two-layered integration framework that enables SD to integrate with each other via light-weight interface and other back-end applications into agile business process. A real-life use case on elderly care is studied in detail based on the framework.','EURASIP Journal on Wireless Communications and Networking',2,'Zhenyu WuTimo ItäläTingan TangChunhong ZhangYang JiMatti HämäläinenYunjie Liu','springer/bpel security.csv','springer','\0'),(2336,'A novel polarimetric SAR ship detection filter','2013','0','Synthetic aperture radar (SAR);polarimetric characteristics;scattering;ship detection','Synthetic aperture radar (SAR) ship detection is an important application in the context of environment and security monitoring. Many ship detection algorithms have been developed by image-based techniques. However, speckle and natural physical phenomenon, e.g., fronts, internal waves, etc., can cause false alarms and reduce their detection performances. In this paper, a new physical approach which considers ship having dominant double-bounced scattering contribution and therefore, predicting a completely different scattering mechanism for ship targets and sea surface, is here proposed. Based on this rationale, a new simple and very effective filtering technique has been conceived and implemented. Experiments, accomplished over fully polarimetric L-band Uninhabited Aerial Vehicle (UAV) SAR data, show the effectiveness of the proposed approach.','Radar Conference 2013, IET International',1,'Xi Zhang; Jie Zhang; Jun-min Meng; Li-min Chen','ieee/soa security.csv','ieee','\0'),(2337,'The Application Research of Data Exchange Technology in Digital Campus','2012','0',' Data exchange Data sharing Extract Transform and Load (ETL) Enterprise Service Bus (ESB) Privilege','Abstract To meet the needs of data exchange in the information system of Tsinghua University, In this paper, the authors designed and realized a data exchange platform to be implemented in digital campus with improvements in multiple aspects: application of Extract, Transform, and Load (ETL) technology to accomplish data exchange in large quantities of heterogeneous databases, utilization of Enterprise Service Bus (ESB) technology to accomplish real-time data exchange in small quantities of heterogeneous databases, and implementation of authorized management to accomplish data exchange in homogeneous databases. The developed data exchange platform has been operating steadily and produced little impact on the server and business system, exhibiting great potential in digital campus applications.','',1,'Qian WangNaiJia LiuZhiRui Cheng','springer/service oriented architecture security.csv','springer','\0'),(2338,'Web of Services Security','2015','0','','Zusammenfassung Die Bezeichnung „Web of Services“ bezieht sich nach einer Definition des W3C auf ein nachrichtenbasiertes Designprinzip, das häufig zum Entwurf von Internet-Anwendungen oder Unternehmenssoftware zum Einsatz kommt. Die beiden dominierenden Ansätze sind hier derzeit SOAP und REST. Für REST existiert jedoch keine der SOAP-Security entsprechende Sicherheitsarchitektur. Mit den zunehmenden Einsatzmöglichkeiten in verteilten Anwendungen wird eine solche „REST-Security“ jedoch immer dringender benötigt. Diese muss abstrakte Sicherheitsmethoden definieren, deren konkrete Umsetzung über die bei Webanwendungen gebräuchlichen Sicherheitsmechanismen hinausgeht. Der Beitrag gibt einen Überblick über den aktuellen Stand der Technik und formuliert offene Forschungs- und Entwicklungsaufgaben in Form von Anforderungen an REST-Security.','Datenschutz und Datensicherheit - DuD',1,'Peter Leo GorskiLuigi Lo IaconoHoai Viet NguyenDaniel Behnam Torkian','springer/soa security.csv','springer',''),(2339,'Practical Use of Formal Concept Analysis in Service-Oriented Computing','2012','3',' Service-Oriented Computing Pervasive environment Service classification','Abstract Pervasive applications are encountered in a number of settings, including smart houses, intelligent buildings or connected plants. Service-Oriented Computing is today the technology of choice for implementing and exposing resources in such environments. The selection of appropriate services at the right moment in order to compose meaningful applications is however a real issue. In this paper, we propose a FCA-based solution to this problem. We have integrated FCA algorithms in our pervasive gateways and adapted them in order to allow efficient runtime selection of heterogeneous and dynamic services. This work has been applied to realistic use cases in the scope of a European project.','',1,'Stéphanie CholletVincent LestideauYoann MaurelEtienne GandrillePhilippe LalandaOlivier Raynaud','springer/service oriented architecture security.csv','springer','\0'),(2340,'A design pattern for dependable web services using design diversity techniques and WS-BPEL','2009','1','','As the use of web services is growing, there is an increasing demand for dependability. In this paper we intend to introduce various offered solutions for dependable web services. The existing solutions are divided into two categories: fault tolerance techniques, such as active and passive replications, and the use of design diversity. The main contribution of this paper is the use of design diversity techniques and WS-BPEL, which would result in proposing a useful and flexible architecture for dependable web services. The proposed architecture has been used as the basis of a design pattern for dependable web services, called D3WS. We have implemented the proposed architecture in a prototype application using N-version programming (NVP). We have also modeled the architecture using stochastic reward nets (SRNs) for further evaluation of dependability measures.','Innovations in Information Technology, 2009. IIT \'09. International Conference on',2,'E. Nourani; M. A. Azgomi','ieee/bpel security.csv','ieee','\0'),(2341,'Security-as-a-Service for Microservices-Based Cloud Applications','2015','','microservices;network monitoring;security','Microservice architecture allows different parts of an application to be developed, deployed and scaled independently, therefore becoming a trend for developing cloud applications. However, it comes with challenging security issues. First, the network complexity introduced by the large number of microservices greatly increases the difficulty in monitoring the security of the entire application. Second, microservices are often designed to completely trust each other, therefore compromise of a single microservice may bring down the entire application. The problems are only exacerbated by the cloud, since applications no longer have complete control over their networks. In this paper, we propose a design for security-as-a-service for microservices-based cloud applications. By adding a new API primitive FlowTap for the network hypervisor, we build a flexible monitoring and policy enforcement infrastructure for network traffic to secure cloud applications. We demonstrate the effectiveness of our solution by deploying the Bro network monitor using FlowTap. Results show that our solution is flexible enough to support various kinds of monitoring scenarios and policies and it incurs minimal overhead (~6%) for real world usage. As a result, cloud applications can leverage our solution to deploy network security monitors to flexibly detect and block threats both external and internal to their network.','2015 IEEE 7th International Conference on Cloud Computing Technology and Science (CloudCom)',1,'Y. Sun; S. Nanda; T. Jaeger','ieee/microservice security.CSV','ieee',''),(2342,'Performance assessment of a closed-loop system for diabetes management','2015','4',' mHealth SOA Diabetes Sensors Telemonitoring Performance KPI','Abstract Telemedicine systems can play an important role in the management of diabetes, a chronic condition that is increasing worldwide. Evaluations on the consistency of information across these systems and on their performance in a real situation are still missing. This paper presents a remote monitoring system for diabetes management based on physiological sensors, mobile technologies and patient/doctor applications over a service-oriented architecture that has been evaluated in an international trial (83,905 operation records). The proposed system integrates three types of running environments and data engines in a single service-oriented architecture. This feature is used to assess key performance indicators comparing them with other type of architectures. Data sustainability across the applications has been evaluated showing better outcomes for full integrated sensors. At the same time, runtime performance of clients has been assessed spotting no differences regarding the operative environment.','Medical & Biological Engineering & Computing',1,'A. Martinez-MillanaG. FicoC. Fernández-LlatasV. Traver','springer/service oriented architecture security.csv','springer',''),(2343,'Modeling and verifying security policies in business processes','2014','5','BPMN; Compliance; Information systems; Security policies','Modern information systems are large-sized and comprise multiple heterogeneous and autonomous components. Autonomy enables decentralization, but it also implies that components providers are free to change, retire, or introduce new components. This is a threat to security, and calls for a continuous verification process to ensure compliance with security policies. Existing verification frameworks either have limited expressiveness-thereby inhibiting the specification of real-world requirements-, or rely on formal languages that are hardly employable for modeling and verifying large systems. In this paper, we overcome the limitations of existing approaches by proposing a framework that enables: (1) specifying information systems in SecBPMN, a security-oriented extension of BPMN; (2) expressing security policies through SecBPMN-Q, a query language for representing security policies; and (3) verifying SecBPMN-Q against SecBPMN specifications via an implemented query engine. We report on the applicability of our approach via a case study about air traffic management. © Springer-Verlag Berlin Heidelberg 2014.','',2,'Salnitri M., Dalpiaz F., Giorgini P.','scopus/bpmn security.csv','scopus',''),(2344,'Intelligent Data Acquisition and Processing of Remote Monitoring System Based on Internet of Things','2015','0',' SOA architecture Multi thread transmission Cache combined with database','Abstract In this paper, we study how the computational framework underpinned by the Internet of Things (IoT) paradigm can be utilized in remote monitoring industrial reaction kettle. We analyze a wide variety of reaction kettle monitoring parameters and their characteristics to scope of work. Sensor technologies are used for intelligent data acquisition. Such data are then transferred to a host computer with high frequency signal using ZigBee wireless communication technology. We use multi-thread technology to regular polling access to monitored data. We improve overall system performance by employing a cache module for the most recently used (MRU) data. The development of middleware realizes the communication between the host computer and client application systems. Principles of Service Oriented Architecture are adopted in the design of our system to reduce the coupling of the system components. Preliminary evaluation and integration test were also conducted, showing positive outcomes, and are reported in this paper.','',1,'Qiaohong ZuXiaoxue WuXingyu XuWenling Xie','springer/service oriented architecture security.csv','springer',''),(2345,'Eliciting security requirements for business processes using patterns','2012','2','','Business process modelling and security engineering are two important concerns when developing information system (IS). However current practices report that security is addressed rather at the later development stages (i.e., design and implementation). This raises a question whether the business processes are performed securely. In this paper, we propose a method to align business process modelling and security engineering. We develop a set of security risk-oriented patterns. Such patterns help to understand security risks that potentially arise within business processes, and to introduce security solutions. To ease the applicability the security risk-oriented patterns are defined using BPMN notations. The proposal is tested in an industrial business model and the findings indicate a positive usefulness to identify important business assets, their security risks and countermeasures.','',2,'Ahmed N., Matulevičius R., Khan N.H.','scopus/bpmn security.csv','scopus','\0'),(2346,'OData for service-oriented business applications: Comparative analysis of communication technologies for flexible Service-Oriented IT architectures','2015','0','DCOM;Java RMI;OData;REST;SOA','This document examines the OData protocol as a new service oriented approach for distributed IT architectures. The main features of OData were compared with properties of well-established solutions like: REST, DCOM and Java RMI. OData\'s protocol is presented in the context of its application in Service-Oriented Architectures.','Industrial Technology (ICIT), 2015 IEEE International Conference on',1,'R. Cupek; L. Huczala','ieee/service oriented architecture security.csv','ieee',''),(2347,'Evaluating REST architectures-Approach, tooling and guidelines','2015','','REST; Scenario-based evaluation guidelines; Software architecture evaluation','Architectural decisions determine the ability of the implemented system to satisfy functional and quality attribute requirements. The Representational State Transfer (REST) architectural style has been extensively used recently for integrating services and applications. Its adoption to build SOA-based distributed systems brings several benefits, but also poses new challenges and risks. Particularly important among those risks are failures to effectively address quality attribute requirements such as security, reliability, and performance. A proved efficient technique to identify and help mitigate those risks is the architecture evaluation. In this paper we propose an approach, tooling, and guidelines to aid architecture evaluation activities in REST-based systems. These guidelines can be systematically used along with evaluation methods to reason about design considerations and tradeoffs. To demonstrate how the guidelines can help architecture evaluators, we present a proof of concept describing how to use the guidelines in an ATAM (Architecture Tradeoff Analysis Method) evaluation. We also present the results of a survey conducted with industry specialists who have performed architecture evaluations in real world REST-based systems in order to gauge the suitability and utility of the proposed guidelines. Finally, the paper describes a Web tool developed to facilitate the use of the evaluation guidelines. © 2015 Elsevier Inc.','',1,'Costa B., Pires P.F., Delicato F.C., Merson P.','scopus/soa security.csv','scopus',''),(2348,'Self-Managed Micro-containers for Service-Based Applications in the Cloud','2013','0','Cloud Computing;FCAPS;Mobility;Monitoring;Self-Management;Service Containers','Cloud computing enables an economic model for virtual resources provisioning based on Internet protocols. For this paradigm, service oriented Architecture (SOA) is a pillar block to build applications. For service-based applications in the cloud, management becomes a challenging task since it involves an increasing number of layers and a huge number of parameters to take into account. In this paper, we propose a framework that generates self-managed and scalable micro-containers. These micro-containers are enhanced with the resiliency of cellular organisms assuring the fault, configuration, accounting, performance and security constraints (FCAPS) described for each service. The proposed intelligent managed micro-container (IMMC) has a self-monitoring service that allows it to take decisions to enhance its scalability based on migration and replication transactions. These transactions are performed using a Mobility service offered by our IMMC. The primary evaluation that we conducted using our framework are encouraging.','Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE), 2013 IEEE 22nd International Workshop on',1,'M. Mohamed; D. Belaïd; S. Tata','ieee/service oriented architecture security.csv','ieee','\0'),(2349,'ULMS: An Accelerator for the Applications by Shifting Writing Log from Local Disk to Clouds','2010','0','Log;Log Analysis;Performance;SaaS','Log data is critical to applications and the management and analysis of log data is a hot research topic. Existing log managements are normally tightly integrated with applications themselves, which may lead to problems including performance, local storage efficiency, security and non realtime functionality. To solve these problems, we present a SaaS method which shifts writing log data from local disk to clouds, at the same time the log management and analysis functionalities are also done by a cloud. We analyze two architectures to implement this method which are Shift-Log-by-WebService and Shift-Log-by-ActiveMQ. Initial experiments show the efficiency of later one. In the future, we can apply this tool to application systems which are based on web and database systems to improve their performances.','Computer Software and Applications Conference Workshops (COMPSACW), 2010 IEEE 34th Annual',1,'L. Zhou; Y. Zhang; C. Xing','ieee/webservice security.csv','ieee','\0'),(2350,'Network and Control Platforms','2013','0','','Abstract The Internet as the largest global recognized communication system is in constant change and evolves in dimensions of technology, capacity, availability and size continuously since its beginnings in the late 1960’s. The openness and its continuous change became characteristics of the Internet nowadays, but were no available in its origins. This chapter presents an overview about the telecommunication network and control platform evolution from classic fixed Circuit-Switched (CS) on to current fixed and mobile Next-Generation-Networks (NGN) towards future networks trends. Furthermore the Fixed-Mobile-Covergence (FMC) is presented and technology specific details are presented exemplarily.','',1,'Marius CoriciJulius MüllerDragos VingarzanThomas Magedanz','springer/service oriented architecture security.csv','springer','\0'),(2351,'Dynamic monitoring of composed services','2014','','BPMN; Complex event processing; Monitoring; Secure service composition; Security policy; SOA','Service-Oriented Architectures (SOAs) are becoming a dominant paradigm for the integration of heterogeneous systems. However, SOA-based applications are highly dynamic and liable to change significantly at runtime. This justifies the need for monitoring composed services throughout the lifetime of the service execution. In this chapter we present a novel approach to monitor services at runtime and to ensure that services behave as they have promised. Services are defined as BPMN (Business Process Modelling Notation) processes which can then be monitored during execution. © 2014 Springer International Publishing Switzerland. All rights are reserved.','',2,'Asim M., Zhou B., Llewellyn-Jones D., Shi Q., Merabti M.','scopus/bpmn security.csv','scopus',''),(2352,'Autonomous configuration of spatially aware sensor services in service oriented WSNs','2013','2','','Service-oriented Architectures (SOA) for Wireless Sensor Networks (WSNs) are an active research topic. Yet, autonomous configuration of services for real life constraints (spatio-temporal, input/output interoperability, policies, security etc.) is still a challenging problem. In this demonstration we describe the results of our research into the automated and intelligent configuration and composition of services for complex tasks.We present a service-oriented system capable of performing service configuration under spatial and relevancy constraints. It can configure services in one of the three following modes: distributed, centralized and hybrid. It also supports automatic reconfiguration in the event of service failures. This system uses a generic cost representation for services that may include spatial coverage of the services in an area of interest along with other service configuration cost metrics. We demonstrate our system using state-of-the-art emulation frameworks with a real life scenario. © 2013 IEEE.','',1,'Shah S.Y., Szymanski B., Zerfos P., Bisdikian C., Gibson C., Harries D.','scopus/service oriented architecture security.csv','scopus','\0'),(2353,'Modeling and Simulation of Web-of-Things Systems as Multi-Agent Systems','2015','0',' Web of things Sensor-actuator systems Agent-based modeling Simulation','Abstract In the Web of Things (WoT), special communication networks composed of sensor nodes, actuator nodes and service nodes form the basis for new types of web application systems, which are directly connected to the real world via sensors and actuators. We propose a conceptual framework for simulating WoT systems as multi-agent systems where both sensor nodes, actuator nodes and service nodes, as well as other systems in their environment interacting with them (such as other web applications, web services and human users), are modeled and simulated as agents. Our conceptual framework includes an ontology of WoT systems as sensor/actuator systems, and a meta-model for defining an agent-based WoT system simulation language.','',1,'Ion Mircea DiaconescuGerd Wagner','springer/service oriented architecture security.csv','springer',''),(2354,'The New Era of Web Data Warehousing: XML Warehousing Issues and Challenges','2008','0','','Proceedings of the 10th International Conference on Information Integration and Web-based Applications & Services','',2,'J. Wenny Rahayu and Eric Pardede and David Taniar','acm/bpel security.csv','acm','\0'); +/*!40000 ALTER TABLE `articles` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary view structure for view `articles_view` +-- + +DROP TABLE IF EXISTS `articles_view`; +/*!50001 DROP VIEW IF EXISTS `articles_view`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE VIEW `articles_view` AS SELECT + 1 AS `ArticleId`, + 1 AS `Title`, + 1 AS `year`, + 1 AS `cited_by`, + 1 AS `Keywords`, + 1 AS `Abstract`, + 1 AS `Journal`, + 1 AS `ResearchId`, + 1 AS `Authors`, + 1 AS `File`, + 1 AS `Source`*/; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `attribute` +-- + +DROP TABLE IF EXISTS `attribute`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `attribute` ( + `id_attribute` int(11) unsigned NOT NULL AUTO_INCREMENT, + `text` varchar(500) NOT NULL, + `x` varchar(50) DEFAULT '', + `y` varchar(50) DEFAULT '', + `xMajor` varchar(50) DEFAULT '', + `yMajor` varchar(50) DEFAULT '', + `x3D` varchar(50) DEFAULT '', + `y3D` varchar(50) DEFAULT '', + `z3D` varchar(50) DEFAULT '', + `xMajor3D` varchar(50) DEFAULT '', + `yMajor3D` varchar(50) DEFAULT '', + `zMajor3D` varchar(50) DEFAULT '', + `major` tinyint(1) DEFAULT '0', + `id_taxonomy` int(11) unsigned NOT NULL, + `synonyms` varchar(500) DEFAULT '', + PRIMARY KEY (`id_attribute`), + UNIQUE KEY `id_attribute_UNIQUE` (`id_attribute`), + UNIQUE KEY `attribute_text_UNIQUE` (`text`,`id_taxonomy`), + KEY `attribute_id_taxonomy_foreign` (`id_taxonomy`), + CONSTRAINT `attribute_id_taxonomy_foreign` FOREIGN KEY (`id_taxonomy`) REFERENCES `taxonomy` (`id_taxonomy`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=96 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `attribute` +-- + +LOCK TABLES `attribute` WRITE; +/*!40000 ALTER TABLE `attribute` DISABLE KEYS */; +INSERT INTO `attribute` VALUES (1,'Integrity Protection Assets','588','269','','','','','','','','',0,1,''),(2,'Behavior','588','269','','','','','','','','',0,1,''),(3,'Data','588','269','','','','','','','','',0,1,''),(4,'Data and behavior','588','269','','','','','','','','',0,1,''),(5,'Representation','588','269','','','','','','','','',1,1,''),(6,'Static','588','269','','','','','','','','',0,1,''),(7,'In memory','588','269','','','','','','','','',0,1,''),(8,'In execution','828','171','','','','','','','','',0,1,''),(9,'Code invariants','278','409','','','','','','','','',0,1,''),(10,'Data invariants','333','377','','','','','','','','',0,1,''),(11,'Trace','1372','356','','','','','','','','',0,1,''),(12,'Timed trace','1259','160','','','','','','','','',0,1,''),(13,'HW counters','250','350','','','','','','','','',0,1,''),(14,'Granularity','291','375','','','','','','','','',1,1,''),(15,'Instructions','164','412','','','','','','','','',0,1,''),(16,'BB','317','385','','','','','','','','',0,1,''),(17,'Function','473','415','','','','','','','','',0,1,''),(18,'Slice','568','473','','','','','','','','',0,1,''),(19,'Application','630','492','','','','','','','','',0,1,''),(20,'Lifecycle activity','577','502','','','','','','','','',1,1,''),(21,'Pre-compile','144','433','','','','','','','','',0,1,''),(22,'Compile','395','126','','','','','','','','',0,1,''),(23,'Post-compile','533','91','','','','','','','','',0,1,''),(24,'Load','234','240','','','','','','','','',0,1,''),(25,'Run','323','159','','','','','','','','',0,1,''),(26,'Not root','','','','','','','','','','',0,1,''),(27,'Attack','','','','','','','','','','',1,1,''),(28,'Binary ','','','','','','','','','','',0,1,''),(29,'Process memory','','','','','','','','','','',0,1,''),(30,'Runtime data','','','','','','','','','','',0,1,''),(31,'Control flow','','','','','','','','','','',0,1,''),(32,'Measure','','','','','','','','','','',1,1,''),(33,'Local','','','','','','','','','','',0,1,''),(34,'Remote','','','','','','','','','','',0,1,''),(35,'Monitor','','','','','','','','','','',0,1,''),(36,'State inspection','','','','','','','','','','',0,1,''),(37,'Introspection','','','','','','','','','','',0,1,''),(38,'Response','','','','','','','','','','',0,1,''),(39,'Proactive','','','','','','','','','','',0,1,''),(40,'Postmortem','','','','','','','','','','',0,1,''),(41,'Transformation','','','','','','','','','','',0,1,''),(42,'Manual','','','','','','','','','','',0,1,''),(43,'Automatic','','','','','','','','','','',0,1,''),(44,'Check','','','','','','','','','','',0,1,''),(45,'Checksum','','','','','','','','','','',0,1,''),(46,'Signature','','','','','','','','','','',0,1,''),(47,'Equation eval','','','','','','','','','','',0,1,''),(48,'Majority vote','','','','','','','','','','',0,1,''),(49,'Access control','','','','','','','','','','',0,1,''),(50,'Hardening','','','','','','','','','','',0,1,''),(51,'Cyclic checks','','','','','','','','','','',0,1,''),(52,'Mutation','','','','','','','','','','',0,1,''),(53,'Code concealment','','','','','','','','','','',0,1,''),(54,'Cloning','','','','','','','','','','',0,1,''),(55,'Layered interpretation','','','','','','','','','','',0,1,''),(56,'Block chain','','','','','','','','','','',0,1,''),(57,'Overhead','','','','','','','','','','',1,1,''),(58,'Fair','','','','','','','','','','',0,1,''),(59,'Medium','','','','','','','','','','',0,1,''),(60,'High','','','','','','','','','','',0,1,''),(61,'N/A','','','','','','','','','','',0,1,''),(62,'Trust anchor','','','','','','','','','','',1,1,''),(63,'TPM','','','','','','','','','','',0,1,''),(64,'SGX','','','','','','','','','','',0,1,''),(65,'Other','','','','','','','','','','',0,1,''),(66,'None','','','','','','','','','','',0,1,''),(67,'Protection level','','','','','','','','','','',1,1,''),(68,'Internal','','','','','','','','','','',0,1,''),(69,'External','','','','','','','','','','',0,1,''),(70,'Hypervisor','','','','','','','','','','',0,1,''),(71,'Software','','','','','','','','','','',0,1,''),(72,'Reverse engineering','','','','','','','','','','',1,1,''),(73,'Attacker','','','','','','','','','','',1,1,''),(78,'Call interposition','','','','','','','','','','',0,1,''),(79,'Disassembler','','','','','','','','','','',0,1,'IDA,Hiew,ODA,ldasm,llvm'),(80,'Tools','','','','','','','','','','',1,1,''),(81,'Debugger','','','','','','','','','','',0,1,''),(82,'Tracer','','','','','','','','','','',0,1,''),(83,'Emulator','','','','','','','','','','',0,1,''),(84,'Discovery','','','','','','','','','','',1,1,''),(85,'Pattern matching','','','','','','','','','','',0,1,''),(86,'Taint analysis','','','','','','','','','','',0,1,''),(87,'Graph-based analysis','','','','','','','','','','',0,1,''),(88,'Symbolic execution','','','','','','','','','','',0,1,''),(89,'Dongle','','','','','','','','','','',0,1,''),(90,'Self-check','','','','','','','','','','',0,1,''),(91,'Hash chain','','','','','','','','','','',0,1,''),(92,'Reactive','','','','','','','','','','',0,1,''),(93,'Asset','713','117','','','','','','','','',1,1,''),(94,'Link','928','389','','','','','','','','',0,1,''),(95,'Basic block','499','388','','','','','','','','',0,1,''); +/*!40000 ALTER TABLE `attribute` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `dimension` +-- + +DROP TABLE IF EXISTS `dimension`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `dimension` ( + `id_dimension` int(11) unsigned NOT NULL AUTO_INCREMENT, + `text` varchar(50) NOT NULL, + `x` varchar(50) DEFAULT '', + `y` varchar(50) DEFAULT '', + `xMajor` varchar(50) DEFAULT '', + `yMajor` varchar(50) DEFAULT '', + `id_taxonomy` int(11) unsigned NOT NULL, + PRIMARY KEY (`id_dimension`), + UNIQUE KEY `id_dimension_UNIQUE` (`id_dimension`), + UNIQUE KEY `dimension_text_UNIQUE` (`text`,`id_taxonomy`), + KEY `dimension_id_taxonomy_foreign` (`id_taxonomy`), + CONSTRAINT `dimension_id_taxonomy_foreign` FOREIGN KEY (`id_taxonomy`) REFERENCES `taxonomy` (`id_taxonomy`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `dimension` +-- + +LOCK TABLES `dimension` WRITE; +/*!40000 ALTER TABLE `dimension` DISABLE KEYS */; +INSERT INTO `dimension` VALUES (1,'System view','','','','',1),(2,'Attack view','','','','',1),(3,'Defense view','','','','',1),(4,'Interdimensional view','','','','',1); +/*!40000 ALTER TABLE `dimension` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `mapping` +-- + +DROP TABLE IF EXISTS `mapping`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `mapping` ( + `id_mapping` int(10) unsigned NOT NULL AUTO_INCREMENT, + `id_paper` int(11) unsigned NOT NULL, + `id_attribute` int(11) unsigned NOT NULL, + `occurrenceCount` int(20) DEFAULT '1', + PRIMARY KEY (`id_paper`,`id_attribute`), + UNIQUE KEY `id_mapping_UNIQUE` (`id_mapping`), + KEY `mapping_id_mapping` (`id_mapping`), + KEY `mapping_id_attribute_foreign` (`id_attribute`), + CONSTRAINT `mapping_id_attribute_foreign` FOREIGN KEY (`id_attribute`) REFERENCES `attribute` (`id_attribute`) ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT `mapping_id_paper_foreign` FOREIGN KEY (`id_paper`) REFERENCES `paper` (`id_paper`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=678 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `mapping` +-- + +LOCK TABLES `mapping` WRITE; +/*!40000 ALTER TABLE `mapping` DISABLE KEYS */; +INSERT INTO `mapping` VALUES (1,1,2,1),(87,1,11,1),(103,1,15,1),(166,1,23,1),(199,1,26,1),(255,1,31,1),(265,1,33,1),(314,1,36,1),(360,1,39,1),(441,1,43,1),(531,1,58,1),(588,1,66,1),(628,1,68,1),(2,2,2,1),(62,2,9,1),(107,2,16,1),(167,2,23,1),(225,2,29,1),(266,2,33,1),(338,2,37,1),(361,2,39,1),(409,2,42,1),(458,2,45,1),(478,2,46,1),(503,2,53,1),(560,2,61,1),(589,2,66,1),(629,2,68,1),(3,3,2,1),(63,3,9,1),(108,3,16,1),(168,3,23,1),(201,3,26,1),(226,3,29,1),(268,3,33,1),(339,3,37,1),(363,3,39,1),(442,3,43,1),(459,3,45,1),(495,3,51,1),(505,3,53,1),(547,3,59,1),(591,3,66,1),(631,3,68,1),(4,4,2,1),(41,4,3,1),(51,4,4,1),(64,4,9,1),(137,4,19,1),(169,4,23,1),(227,4,29,1),(300,4,34,1),(340,4,37,1),(364,4,39,1),(443,4,43,1),(491,4,49,1),(511,4,55,1),(532,4,58,1),(585,4,64,1),(651,4,69,1),(5,5,2,1),(89,5,11,1),(105,5,15,1),(257,5,31,1),(269,5,33,1),(316,5,36,1),(365,5,39,1),(444,5,43,1),(561,5,61,1),(592,5,66,1),(652,5,69,1),(6,6,2,1),(42,6,3,1),(52,6,4,1),(65,6,9,1),(116,6,17,1),(170,6,23,1),(202,6,26,1),(228,6,29,1),(270,6,33,1),(317,6,36,1),(366,6,39,1),(445,6,43,1),(492,6,49,1),(512,6,55,1),(522,6,56,1),(553,6,60,1),(586,6,65,1),(671,6,70,1),(7,7,2,1),(54,7,6,1),(138,7,19,1),(171,7,23,1),(205,7,26,1),(218,7,28,1),(273,7,33,1),(341,7,37,1),(369,7,39,1),(412,7,42,1),(479,7,46,1),(564,7,61,1),(595,7,66,1),(653,7,69,1),(8,8,2,1),(66,8,9,1),(109,8,16,1),(172,8,23,1),(229,8,29,1),(274,8,33,1),(342,8,37,1),(370,8,39,1),(413,8,42,1),(460,8,45,1),(496,8,51,1),(554,8,60,1),(596,8,66,1),(634,8,68,1),(9,9,2,1),(90,9,11,1),(130,9,18,1),(163,9,22,1),(249,9,30,1),(258,9,31,1),(275,9,33,1),(320,9,36,1),(371,9,39,1),(414,9,42,1),(565,9,61,1),(597,9,66,1),(635,9,68,1),(10,10,2,1),(139,10,19,1),(173,10,23,1),(206,10,26,1),(276,10,33,1),(343,10,37,1),(372,10,39,1),(415,10,42,1),(493,10,49,1),(513,10,55,1),(533,10,58,1),(598,10,66,1),(672,10,70,1),(11,11,2,1),(55,11,6,1),(117,11,17,1),(197,11,25,1),(219,11,28,1),(301,11,34,1),(373,11,39,1),(447,11,43,1),(500,11,52,1),(534,11,58,1),(599,11,66,1),(654,11,69,1),(12,12,2,1),(56,12,6,1),(110,12,16,1),(220,12,28,1),(277,12,33,1),(344,12,37,1),(374,12,39,1),(416,12,42,1),(485,12,48,1),(566,12,61,1),(600,12,66,1),(636,12,68,1),(13,13,2,1),(57,13,6,1),(140,13,19,1),(174,13,23,1),(207,13,26,1),(221,13,28,1),(302,13,34,1),(345,13,37,1),(375,13,39,1),(417,13,42,1),(461,13,45,1),(567,13,61,1),(601,13,66,1),(655,13,69,1),(14,14,2,1),(45,14,3,1),(53,14,4,1),(67,14,9,1),(141,14,19,1),(156,14,21,1),(230,14,29,1),(278,14,33,1),(346,14,37,1),(376,14,39,1),(418,14,42,1),(462,14,45,1),(514,14,55,1),(523,14,56,1),(535,14,58,1),(579,14,63,1),(673,14,70,1),(15,15,2,1),(118,15,17,1),(175,15,23,1),(279,15,33,1),(347,15,37,1),(377,15,39,1),(419,15,42,1),(515,15,55,1),(548,15,59,1),(602,15,66,1),(674,15,70,1),(16,16,2,1),(68,16,9,1),(111,16,16,1),(177,16,23,1),(231,16,29,1),(280,16,33,1),(348,16,37,1),(379,16,39,1),(421,16,42,1),(497,16,51,1),(516,16,55,1),(536,16,58,1),(604,16,66,1),(637,16,68,1),(17,17,2,1),(69,17,9,1),(112,17,16,1),(178,17,23,1),(196,17,24,1),(232,17,29,1),(281,17,33,1),(349,17,37,1),(380,17,39,1),(422,17,42,1),(463,17,45,1),(498,17,51,1),(501,17,52,1),(517,17,55,1),(537,17,58,1),(605,17,66,1),(638,17,68,1),(18,18,2,1),(70,18,9,1),(131,18,18,1),(179,18,23,1),(233,18,29,1),(282,18,33,1),(350,18,37,1),(381,18,39,1),(423,18,42,1),(464,18,45,1),(569,18,61,1),(606,18,66,1),(639,18,68,1),(19,19,2,1),(83,19,10,1),(120,19,17,1),(157,19,21,1),(251,19,30,1),(283,19,33,1),(322,19,36,1),(382,19,39,1),(424,19,42,1),(487,19,48,1),(499,19,51,1),(570,19,61,1),(607,19,66,1),(640,19,68,1),(20,20,2,1),(91,20,11,1),(113,20,16,1),(132,20,18,1),(180,20,23,1),(259,20,31,1),(284,20,33,1),(323,20,36,1),(383,20,39,1),(425,20,42,1),(509,20,54,1),(555,20,60,1),(608,20,66,1),(641,20,68,1),(21,21,2,1),(96,21,12,1),(142,21,19,1),(181,21,23,1),(234,21,29,1),(304,21,34,1),(324,21,36,1),(384,21,39,1),(448,21,43,1),(465,21,45,1),(556,21,60,1),(609,21,66,1),(657,21,69,1),(22,22,2,1),(97,22,12,1),(143,22,19,1),(182,22,23,1),(235,22,29,1),(305,22,34,1),(325,22,36,1),(385,22,39,1),(449,22,43,1),(466,22,45,1),(549,22,59,1),(610,22,66,1),(658,22,69,1),(23,23,2,1),(92,23,11,1),(144,23,19,1),(158,23,21,1),(260,23,31,1),(306,23,34,1),(326,23,36,1),(407,23,40,1),(450,23,43,1),(467,23,45,1),(480,23,46,1),(488,23,48,1),(524,23,56,1),(550,23,59,1),(611,23,66,1),(642,23,68,1),(24,24,2,1),(71,24,9,1),(133,24,18,1),(164,24,22,1),(236,24,29,1),(285,24,33,1),(351,24,37,1),(386,24,39,1),(451,24,43,1),(468,24,45,1),(518,24,55,1),(571,24,61,1),(612,24,66,1),(643,24,68,1),(25,25,2,1),(72,25,9,1),(145,25,19,1),(183,25,23,1),(237,25,29,1),(286,25,33,1),(352,25,37,1),(387,25,39,1),(426,25,42,1),(469,25,45,1),(525,25,56,1),(580,25,63,1),(659,25,69,1),(26,26,2,1),(58,26,6,1),(146,26,19,1),(184,26,23,1),(210,26,26,1),(222,26,28,1),(287,26,33,1),(353,26,37,1),(390,26,39,1),(427,26,42,1),(481,26,46,1),(572,26,61,1),(614,26,66,1),(662,26,69,1),(27,27,2,1),(73,27,9,1),(147,27,19,1),(185,27,23,1),(211,27,26,1),(238,27,29,1),(288,27,33,1),(354,27,37,1),(391,27,39,1),(454,27,43,1),(470,27,45,1),(482,27,46,1),(519,27,55,1),(573,27,61,1),(615,27,66,1),(663,27,69,1),(28,28,2,1),(93,28,11,1),(122,28,17,1),(161,28,21,1),(261,28,31,1),(289,28,33,1),(392,28,39,1),(428,28,42,1),(510,28,54,1),(574,28,61,1),(616,28,66,1),(644,28,68,1),(29,29,2,1),(74,29,9,1),(135,29,18,1),(198,29,25,1),(239,29,29,1),(290,29,33,1),(355,29,37,1),(393,29,39,1),(455,29,43,1),(502,29,52,1),(506,29,53,1),(551,29,59,1),(617,29,66,1),(645,29,68,1),(30,30,2,1),(101,30,13,1),(186,30,23,1),(212,30,26,1),(262,30,31,1),(291,30,33,1),(329,30,36,1),(394,30,39,1),(429,30,42,1),(484,30,47,1),(527,30,56,1),(539,30,58,1),(582,30,63,1),(646,30,68,1),(31,31,2,1),(98,31,12,1),(123,31,17,1),(187,31,23,1),(309,31,34,1),(330,31,36,1),(395,31,39,1),(430,31,42,1),(471,31,45,1),(575,31,61,1),(618,31,66,1),(664,31,69,1),(32,32,2,1),(75,32,9,1),(148,32,19,1),(188,32,23,1),(240,32,29,1),(292,32,33,1),(331,32,36,1),(396,32,39,1),(431,32,42,1),(472,32,45,1),(520,32,55,1),(528,32,56,1),(540,32,58,1),(587,32,65,1),(675,32,70,1),(33,33,2,1),(60,33,6,1),(124,33,17,1),(191,33,23,1),(215,33,26,1),(241,33,29,1),(311,33,34,1),(357,33,37,1),(399,33,39,1),(433,33,42,1),(530,33,56,1),(543,33,58,1),(584,33,63,1),(676,33,70,1),(34,34,2,1),(76,34,9,1),(125,34,17,1),(192,34,23,1),(242,34,29,1),(295,34,33,1),(358,34,37,1),(400,34,39,1),(434,34,42,1),(474,34,45,1),(507,34,53,1),(558,34,60,1),(621,34,66,1),(648,34,68,1),(35,35,2,1),(99,35,12,1),(126,35,17,1),(193,35,23,1),(312,35,34,1),(334,35,36,1),(401,35,39,1),(435,35,42,1),(475,35,45,1),(544,35,58,1),(622,35,66,1),(667,35,69,1),(36,36,2,1),(77,36,9,1),(100,36,12,1),(102,36,13,1),(127,36,17,1),(162,36,21,1),(243,36,29,1),(296,36,33,1),(335,36,36,1),(402,36,39,1),(436,36,42,1),(577,36,61,1),(623,36,66,1),(668,36,69,1),(37,37,2,1),(61,37,6,1),(136,37,18,1),(165,37,22,1),(217,37,26,1),(224,37,28,1),(297,37,33,1),(337,37,36,1),(404,37,39,1),(438,37,42,1),(559,37,60,1),(625,37,66,1),(649,37,68,1),(38,38,2,1),(78,38,9,1),(115,38,16,1),(194,38,23,1),(244,38,29,1),(298,38,33,1),(405,38,39,1),(439,38,42,1),(476,38,45,1),(508,38,53,1),(552,38,59,1),(626,38,66,1),(650,38,68,1),(39,39,2,1),(79,39,9,1),(152,39,19,1),(195,39,23,1),(245,39,29,1),(299,39,33,1),(359,39,37,1),(406,39,39,1),(440,39,42,1),(477,39,45,1),(521,39,55,1),(545,39,58,1),(627,39,66,1),(670,39,69,1),(677,39,70,1),(40,40,3,1),(88,40,11,1),(104,40,15,1),(128,40,18,1),(153,40,21,1),(200,40,26,1),(246,40,30,1),(256,40,31,1),(267,40,33,1),(315,40,36,1),(362,40,39,1),(410,40,42,1),(490,40,49,1),(504,40,53,1),(546,40,59,1),(590,40,66,1),(630,40,68,1),(43,41,3,1),(80,41,10,1),(129,41,18,1),(154,41,21,1),(203,41,26,1),(247,41,30,1),(271,41,33,1),(318,41,36,1),(367,41,39,1),(446,41,43,1),(562,41,61,1),(593,41,66,1),(632,41,68,1),(44,42,3,1),(81,42,10,1),(106,42,15,1),(155,42,21,1),(204,42,26,1),(248,42,30,1),(272,42,33,1),(319,42,36,1),(368,42,39,1),(411,42,42,1),(563,42,61,1),(594,42,66,1),(633,42,68,1),(46,43,3,1),(82,43,10,1),(119,43,17,1),(176,43,23,1),(208,43,26,1),(250,43,30,1),(303,43,34,1),(321,43,36,1),(378,43,39,1),(420,43,42,1),(486,43,48,1),(568,43,61,1),(603,43,66,1),(656,43,69,1),(47,44,3,1),(84,44,10,1),(121,44,17,1),(159,44,21,1),(252,44,30,1),(307,44,34,1),(327,44,36,1),(388,44,39,1),(452,44,43,1),(557,44,60,1),(613,44,66,1),(660,44,69,1),(48,45,3,1),(85,45,10,1),(134,45,18,1),(160,45,21,1),(209,45,26,1),(253,45,30,1),(308,45,34,1),(328,45,36,1),(389,45,39,1),(453,45,43,1),(483,45,47,1),(526,45,56,1),(538,45,58,1),(581,45,63,1),(661,45,69,1),(49,46,3,1),(59,46,6,1),(149,46,19,1),(223,46,28,1),(310,46,34,1),(356,46,37,1),(408,46,40,1),(432,46,42,1),(473,46,45,1),(529,46,56,1),(576,46,61,1),(583,46,63,1),(665,46,69,1),(50,47,3,1),(86,47,10,1),(151,47,19,1),(216,47,26,1),(254,47,30,1),(313,47,34,1),(336,47,36,1),(403,47,39,1),(437,47,42,1),(489,47,48,1),(578,47,61,1),(624,47,66,1),(669,47,69,1),(94,48,11,1),(114,48,16,1),(189,48,23,1),(213,48,26,1),(263,48,31,1),(293,48,33,1),(332,48,36,1),(397,48,39,1),(456,48,43,1),(541,48,58,1),(619,48,66,1),(647,48,68,1),(95,49,11,1),(150,49,19,1),(190,49,23,1),(214,49,26,1),(264,49,31,1),(294,49,33,1),(333,49,36,1),(398,49,39,1),(457,49,43,1),(494,49,49,1),(542,49,58,1),(620,49,66,1),(666,49,69,1); +/*!40000 ALTER TABLE `mapping` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `mitarbeiters` +-- + +DROP TABLE IF EXISTS `mitarbeiters`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `mitarbeiters` ( + `Id` int(11) NOT NULL AUTO_INCREMENT, + `Pass_Hash` binary(32) NOT NULL, + `Nme` varchar(100) NOT NULL, + PRIMARY KEY (`Id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `mitarbeiters` +-- + +LOCK TABLES `mitarbeiters` WRITE; +/*!40000 ALTER TABLE `mitarbeiters` DISABLE KEYS */; +INSERT INTO `mitarbeiters` VALUES (1,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','Mohsen'),(2,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','Amjad'); +/*!40000 ALTER TABLE `mitarbeiters` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `paper` +-- + +DROP TABLE IF EXISTS `paper`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `paper` ( + `id_paper` int(11) unsigned NOT NULL AUTO_INCREMENT, + `citation` varchar(500) NOT NULL, + `bib` mediumtext, + `referenceCount` int(20) DEFAULT '0', + `author` varchar(500) DEFAULT '', + `keywords` varchar(500) DEFAULT '', + PRIMARY KEY (`id_paper`), + UNIQUE KEY `id_paper_UNIQUE` (`id_paper`) +) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `paper` +-- + +LOCK TABLES `paper` WRITE; +/*!40000 ALTER TABLE `paper` DISABLE KEYS */; +INSERT INTO `paper` VALUES (1,'abadi2005control','{\"author\": \"Abadi, Mart{\\\\\'\\\\i}n and Budiu, Mihai and Erlingsson, Ulfar and Ligatti, Jay\", \"booktitle\": \"Proceedings of the 12th ACM conference on Computer and communications security\", \"title\": \"Control-flow integrity\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2005\", \"organization\": \"ACM\", \"ID\": \"abadi2005control\", \"pages\": \"340--353\"}',0,'',''),(2,'aucsmith1996tamper','{\"isbn\": \"3-540-61996-8\", \"title\": \"Tamper resistant software: An implementation\", \"journal\": \"Proceedings of the First International Workshop on Information Hiding\", \"author\": \"Aucsmith, David\", \"ENTRYTYPE\": \"article\", \"mendeley-groups\": \"Tamperproofing,Tamperproofing/Methods\", \"link\": \"http://link.springer.com/chapter/10.1007/3-540-61996-8{\\\\_}49\", \"year\": \"1996\", \"ID\": \"aucsmith1996tamper\", \"pages\": \"317--333\"}',0,'',''),(3,'banescu2017detecting','{\"doi\": \"10.1145/3029806.3029835\", \"isbn\": \"978-1-4503-4523-1/17/03\", \"title\": \"Detecting Patching of Executables without System Calls\", \"booktitle\": \"Proceedings of the Conference on Data and Application Security and Privacy\", \"author\": \"Banescu, Sebastian and Ahmadvand, Mohsen and Pretschner, Alexander and Shield, Robert and Hamilton, Chris\", \"ID\": \"banescu2017detecting\", \"year\": \"2017\", \"ENTRYTYPE\": \"inproceedings\"}',0,'',''),(4,'baumann2015shielding','{\"publisher\": \"ACM\", \"author\": \"Baumann, Andrew and Peinado, Marcus and Hunt, Galen\", \"journal\": \"ACM Transactions on Computer Systems (TOCS)\", \"title\": \"Shielding applications from an untrusted cloud with haven\", \"number\": \"3\", \"ENTRYTYPE\": \"article\", \"volume\": \"33\", \"year\": \"2015\", \"ID\": \"baumann2015shielding\", \"pages\": \"8\"}',0,'',''),(5,'Blietz2006','{\"doi\": \"10.1007/11787952_12\", \"isbn\": \"3540359982\", \"author\": \"Blietz, Brian and Tyagi, Akhilesh\", \"journal\": \"Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)\", \"issn\": \"16113349\", \"ENTRYTYPE\": \"article\", \"volume\": \"3919 LNCS\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Blietz, Tyagi/Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)/Blietz, Tyagi - 2006 - Software tamper resistance through dynamic program monitoring.pdf:pdf\", \"year\": \"2006\", \"title\": \"Software tamper resistance through dynamic program monitoring\", \"ID\": \"Blietz2006\", \"pages\": \"146--163\"}',0,'',''),(6,'brasser2015tytan','{\"author\": \"Brasser, Ferdinand and El Mahjoub, Brahim and Sadeghi, Ahmad-Reza and Wachsmann, Christian and Koeberl, Patrick\", \"booktitle\": \"2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC)\", \"title\": \"TyTAN: tiny trust anchor for tiny devices\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"brasser2015tytan\", \"pages\": \"1--6\"}',0,'',''),(7,'catuogno2002format','{\"author\": \"Catuogno, Luigi and Visconti, Ivan\", \"booktitle\": \"International Conference on Security in Communication Networks\", \"title\": \"A format-independent architecture for run-time integrity checking of executable code\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2002\", \"organization\": \"Springer\", \"ID\": \"catuogno2002format\", \"pages\": \"219--233\"}',0,'',''),(8,'chang2001protecting','{\"author\": \"Chang, Hoi and Atallah, Mikhail J\", \"booktitle\": \"ACM Workshop on Digital Rights Management\", \"title\": \"Protecting software code by guards\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2001\", \"organization\": \"Springer\", \"ID\": \"chang2001protecting\", \"pages\": \"160--175\"}',0,'',''),(9,'chen2002oblivious','{\"author\": \"Chen, Yuqun and Venkatesan, Ramarathnam and Cary, Matthew and Pang, Ruoming and Sinha, Saurabh and Jakubowski, Mariusz H\", \"booktitle\": \"International Workshop on Information Hiding\", \"title\": \"Oblivious hashing: A stealthy software integrity verification primitive\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2002\", \"organization\": \"Springer\", \"ID\": \"chen2002oblivious\", \"pages\": \"400--414\"}',0,'',''),(10,'christodorescu2009cloud','{\"author\": \"Christodorescu, Mihai and Sailer, Reiner and Schales, Douglas Lee and Sgandurra, Daniele and Zamboni, Diego\", \"booktitle\": \"Proceedings of the 2009 ACM workshop on Cloud computing security\", \"title\": \"Cloud security is not (just) virtualization security: a short paper\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2009\", \"organization\": \"ACM\", \"ID\": \"christodorescu2009cloud\", \"pages\": \"97--102\"}',0,'',''),(11,'collberg2012distributed','{\"author\": \"Collberg, Christian and Martin, Sam and Myers, Jonathan and Nagra, Jasvir\", \"booktitle\": \"Proceedings of the 28th Annual Computer Security Applications Conference\", \"title\": \"Distributed application tamper detection via continuous software updates\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2012\", \"organization\": \"ACM\", \"ID\": \"collberg2012distributed\", \"pages\": \"319--328\"}',0,'',''),(12,'dedic2007graph','{\"author\": \"Dedi{\\\\\'c}, Nenad and Jakubowski, Mariusz and Venkatesan, Ramarathnam\", \"booktitle\": \"International Workshop on Information Hiding\", \"title\": \"A graph game model for software tamper protection\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2007\", \"organization\": \"Springer\", \"ID\": \"dedic2007graph\", \"pages\": \"80--95\"}',0,'',''),(13,'deswarte2004remote','{\"publisher\": \"Springer\", \"author\": \"Deswarte, Yves and Quisquater, Jean-Jacques and Sa{\\\\\\\"\\\\i}dane, Ayda\", \"booktitle\": \"Integrity and internal control in information systems VI\", \"title\": \"Remote integrity checking\", \"ENTRYTYPE\": \"incollection\", \"year\": \"2004\", \"ID\": \"deswarte2004remote\", \"pages\": \"1--11\"}',0,'',''),(14,'dewan2008hypervisor','{\"author\": \"Dewan, Prashant and Durham, David and Khosravi, Hormuzd and Long, Men and Nagabhushan, Gayathri\", \"booktitle\": \"Proceedings of the 2008 Spring simulation multiconference\", \"title\": \"A hypervisor-based system for protecting software runtime memory and persistent storage\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2008\", \"organization\": \"Society for Computer Simulation International\", \"ID\": \"dewan2008hypervisor\", \"pages\": \"828--835\"}',0,'',''),(15,'Gan2015using','{\"doi\": \"10.1109/SPRO.2015.12\", \"title\": \"Using Virtual Machine Protections to Enhance Whitebox Cryptography\", \"booktitle\": \"Software Protection (SPRO), 2015 IEEE/ACM 1st International Workshop on\", \"author\": \"J. Gan and R. Kok and P. Kohli and Y. Ding and B. Mah\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"ID\": \"Gan2015using\", \"pages\": \"17-23\"}',0,'',''),(16,'Ghosh2010secure','{\"isbn\": \"364216434X\", \"author\": \"Ghosh, Sudeep and Hiser, Jason D. and Davidson, Jack W.\", \"journal\": \"Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)\", \"issn\": \"03029743\", \"ENTRYTYPE\": \"article\", \"volume\": \"6387 LNCS\", \"mendeley-groups\": \"Tamperproofing\", \"year\": \"2010\", \"title\": \"A secure and robust approach to software tamper resistance\", \"ID\": \"Ghosh2010secure\", \"pages\": \"33--47\"}',0,'',''),(17,'ghosh2013software','{\"author\": \"Ghosh, Sudeep and Hiser, Jason and Davidson, Jack W\", \"booktitle\": \"Proceedings of the 2nd ACM SIGPLAN Program Protection and Reverse Engineering Workshop\", \"title\": \"Software protection for dynamically-generated code\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2013\", \"organization\": \"ACM\", \"ID\": \"ghosh2013software\", \"pages\": \"1\"}',0,'',''),(18,'Horne2002','{\"doi\": \"10.1007/3-540-47870-1_9\", \"isbn\": \"978-3-540-43677-5\", \"author\": \"Horne, Bill and Matheson, Lesley and Sheehan, Casey and Tarjan, Robert\", \"ENTRYTYPE\": \"article\", \"abstract\": \"We describe a software self-checking mechanism designed to improve the tamper resistance of large programs. The mechanism consists of a number of testers that redundantly test for changes in the executable code as it is running and report modifications. The mechanism is built to be compatible with copy-specific static watermarking and other tamper-resistance techniques. The mechanism includes several innovations to make it stealthy and more robust.\", \"title\": \"Dynamic Self-Checking Techniques for Improved Tamper Resistance\", \"pages\": \"141--159\", \"mendeley-groups\": \"Tamperproofing/Methods,Tamperproofing\", \"link\": \"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.13.3308\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Horne et al/Security and Privacy in Digital Rights Management/Horne et al. - 2002 - Dynamic Self-Checking Techniques for Improved Tamper Resistance.pdf:pdf\", \"year\": \"2002\", \"ID\": \"Horne2002\", \"annote\": \"They add testers in the post compilation process.\\nLinear checks no circular\\nTo avoid complexity, a block is checked only by one block\\nA 32bit space is added outside basic blocks as corrector that tries to fix the hash values in patch process. The patch process is part of sofware watermarking after-installation process\\nDid not quite get it where do they store hashes? They say we store them but not clear where?!\\nNo inidication of how Address space layout randomization is respected.\", \"journal\": \"Security and Privacy in Digital Rights Management\"}',0,'',''),(19,'ibrahim2016stins4cs','{\"author\": \"Ibrahim, Amjad and Banescu, Sebastian\", \"booktitle\": \"Proceedings of the 2016 ACM Workshop on Software PROtection\", \"title\": \"StIns4CS: A State Inspection Tool for C\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2016\", \"organization\": \"ACM\", \"ID\": \"ibrahim2016stins4cs\", \"pages\": \"61--71\"}',0,'',''),(20,'jacob2007towards','{\"author\": \"Jacob, Matthias and Jakubowski, Mariusz H and Venkatesan, Ramarathnam\", \"booktitle\": \"Proceedings of the 9th workshop on Multimedia \\\\& security\", \"title\": \"Towards integral binary execution: Implementing oblivious hashing using overlapped instruction encodings\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2007\", \"organization\": \"ACM\", \"ID\": \"jacob2007towards\", \"pages\": \"129--140\"}',0,'',''),(21,'jakobsson2010retroactive','{\"numpages\": \"13\", \"publisher\": \"USENIX Association\", \"title\": \"Retroactive Detection of Malware with Applications to Mobile Platforms\", \"series\": \"HotSec\'10\", \"booktitle\": \"Proceedings of the 5th USENIX Conference on Hot Topics in Security\", \"author\": \"Jakobsson, Markus and Johansson, Karl-Anders\", \"ENTRYTYPE\": \"inproceedings\", \"location\": \"Washinton, DC\", \"year\": \"2010\", \"ID\": \"jakobsson2010retroactive\", \"pages\": \"1--13\", \"address\": \"Berkeley, CA, USA\"}',0,'',''),(22,'jakobsson2011practical','{\"author\": \"Jakobsson, Markus and Johansson, Karl-Anders\", \"booktitle\": \"Lightweight Security \\\\& Privacy: Devices, Protocols and Applications (LightSec), 2011 Workshop on\", \"title\": \"Practical and secure software-based attestation\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2011\", \"organization\": \"IEEE\", \"ID\": \"jakobsson2011practical\", \"pages\": \"1--9\"}',0,'',''),(23,'jin2003forensic','{\"author\": \"Jin, Hongxia and Lotspiech, Jeffery\", \"booktitle\": \"Software Reliability Engineering, 2003. ISSRE 2003. 14th International Symposium on\", \"title\": \"Forensic analysis for tamper resistant software\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2003\", \"organization\": \"IEEE\", \"ID\": \"jin2003forensic\", \"pages\": \"133--142\"}',0,'',''),(24,'junod2015obfuscator','{\"author\": \"Junod, Pascal and Rinaldini, Julien and Wehrli, Johan and Michielin, Julie\", \"booktitle\": \"Proceedings of the 1st International Workshop on Software Protection\", \"title\": \"Obfuscator-LLVM: software protection for the masses\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE Press\", \"ID\": \"junod2015obfuscator\", \"pages\": \"3--9\"}',0,'',''),(25,'kanstren2015architecture','{\"author\": \"Kanstr{\\\\\'e}n, Teemu and Lehtonen, Sami and Savola, Reijo and Kukkohovi, Hilkka and H{\\\\\\\"a}t{\\\\\\\"o}nen, Kimmo\", \"booktitle\": \"Cloud Engineering (IC2E), 2015 IEEE International Conference on\", \"title\": \"Architecture for high confidence cloud security monitoring\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"kanstren2015architecture\", \"pages\": \"195--200\"}',0,'',''),(26,'kim1994experiences','{\"ID\": \"kim1994experiences\", \"author\": \"Kim, Gene H and Spafford, Eugene H\", \"year\": \"1994\", \"ENTRYTYPE\": \"article\", \"title\": \"Experiences with tripwire: Using integrity checkers for intrusion detection\"}',0,'',''),(27,'kimball2012emulation','{\"publisher\": \"Google Patents\", \"author\": \"Kimball, William B and Baldwin, Rusty O\", \"title\": \"Emulation-based software protection\", \"month\": \"oct~9\", \"note\": \"US Patent 8,285,987\", \"year\": \"2012\", \"ID\": \"kimball2012emulation\", \"ENTRYTYPE\": \"misc\"}',0,'',''),(28,'kulkarni2014new','{\"author\": \"Kulkarni, Aniket and Metta, Ravindra\", \"booktitle\": \"Service Oriented System Engineering (SOSE), 2014 IEEE 8th International Symposium on\", \"title\": \"A New Code Obfuscation Scheme for Software Protection\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2014\", \"organization\": \"IEEE\", \"ID\": \"kulkarni2014new\", \"pages\": \"409--414\"}',0,'',''),(29,'madou2005software','{\"author\": \"Madou, Matias and Anckaert, Bertrand and Moseley, Patrick and Debray, Saumya and De Sutter, Bjorn and De Bosschere, Koen\", \"booktitle\": \"International Workshop on Information Security Applications\", \"title\": \"Software protection through dynamic code mutation\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2005\", \"organization\": \"Springer\", \"ID\": \"madou2005software\", \"pages\": \"194--206\"}',0,'',''),(30,'Malone2011','{\"doi\": \"10.1145/2046582.2046596\", \"isbn\": \"9781450310017\", \"keyword\": \"hardware performance counters,integrity\", \"author\": \"Malone, Corey and Zahran, Mohamed and Karri, Ramesh\", \"journal\": \"Proceedings of the sixth ACM workshop on Scalable trusted computing - STC \'11\", \"issn\": \"15437221\", \"ENTRYTYPE\": \"article\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"link\": \"http://www.scopus.com/inward/record.url?eid=2-s2.0-80755143408{\\\\&}partnerID=40{\\\\&}md5=ad5db1f8e5c0131a2a17f457ba1b0497$\\\\backslash$nhttp://dl.acm.org/citation.cfm?doid=2046582.2046596\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Malone, Zahran, Karri/Proceedings of the sixth ACM workshop on Scalable trusted computing - STC \'11/Malone, Zahran, Karri - 2011 - Are Hardware Performance Counters a Cost Effective Way for Integrity Checking of Programs.pdf:pdf\", \"year\": \"2011\", \"title\": \"Are Hardware Performance Counters a Cost Effective Way for Integrity Checking of Programs\", \"ID\": \"Malone2011\", \"pages\": \"71\"}',0,'',''),(31,'Martignoni2010conquer','{\"doi\": \"10.1007/978-3-642-14215-4_2\", \"title\": \"Conqueror: Tamper-proof code execution on legacy systems\", \"journal\": \"Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)\", \"author\": \"Martignoni, Lorenzo and Paleari, Roberto and Bruschi, Danilo\", \"ENTRYTYPE\": \"article\", \"volume\": \"6201 LNCS\", \"year\": \"2010\", \"ID\": \"Martignoni2010conquer\", \"pages\": \"21--40\"}',0,'',''),(32,'morgan2015design','{\"author\": \"Morgan, Beno{\\\\^\\\\i}t and Alata, Eric and Nicomette, Vincent and Ka{\\\\^a}niche, Mohamed and Averlant, Guillaume\", \"booktitle\": \"Dependable Computing (PRDC), 2015 IEEE 21st Pacific Rim International Symposium on\", \"title\": \"Design and implementation of a hardware assisted security architecture for software integrity monitoring\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"morgan2015design\", \"pages\": \"189--198\"}',0,'',''),(33,'park2015tgvisor','{\"author\": \"Park, Sungjin and Yoon, Jae Nam and Kang, Cheoloh and Kim, Kyong Hoon and Han, Taisook\", \"booktitle\": \"Mobile Cloud Computing, Services, and Engineering (MobileCloud), 2015 3rd IEEE International Conference on\", \"title\": \"TGVisor: A Tiny Hypervisor-Based Trusted Geolocation Framework for Mobile Cloud Clients\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"park2015tgvisor\", \"pages\": \"99--108\"}',0,'',''),(34,'Protsenko2015dynamic','{\"doi\": \"10.1109/ARES.2015.98\", \"keyword\": \"Android (operating system);computer crime;cryptography;mobile computing;reverse engineering;Android apps;application piracy;dynamic code loading;dynamic obfuscation techniques;dynamic re-encryption;dynamic self-protection;mobile devices;native code;proprietary mobile software;reverse engineering;tamperproofing;Androids;Encryption;Humanoid robots;Loading;Runtime;Software protection;Android;Software Protection\", \"title\": \"Dynamic Self-Protection and Tamperproofing for Android Apps Using Native Code\", \"booktitle\": \"Availability, Reliability and Security (ARES), 2015 10th International Conference on\", \"author\": \"M. Protsenko and S. Kreuter and T. M\\u00fcller\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"ID\": \"Protsenko2015dynamic\", \"pages\": \"129-138\"}',0,'',''),(35,'Seshadri2005pioneer','{\"doi\": \"10.1145/1095809.1095812\", \"isbn\": \"1-59593-079-5\", \"keyword\": \"dynamic root of trust,rootkit detection,self-check-summing code,software-based code attestation,verifiable code execution\", \"author\": \"Seshadri, Arvind and Luk, Mark and Shi, Elaine and Perrig, Adrian and van Doorn, Leendert and Khosla, Pradeep\", \"journal\": \"ACM SIGOPS Operating Systems Review\", \"issn\": \"01635980\", \"ID\": \"Seshadri2005pioneer\", \"mendeley-groups\": \"Tamperproofing\", \"link\": \"http://dl.acm.org/citation.cfm?id=1095809.1095812\", \"year\": \"2005\", \"title\": \"Pioneer: Verifying Code Integrity and Enforcing Untampered Code Execution on Legacy Systems\", \"ENTRYTYPE\": \"article\"}',0,'',''),(36,'Spinellis2000','{\"doi\": \"10.1145/353323.353383\", \"isbn\": \"1094-9224\", \"author\": \"Spinellis, Diomidis\", \"ENTRYTYPE\": \"article\", \"abstract\": \"The integrity verification of a device\'s controlling software is an important aspect of many emerging information appliances. We propose the use of reflection, whereby the software is able to examine its own operation, in conjunction with cryptographic hashes as a basis for developing a suitable software verification protocol. For more demanding applications meta-reflective techniques can be used to thwart attacks based on device emulation strategies. We demonstrate how our approach can be used to increase the security of mobile phones, devices for the delivery of digital content, and smartcards.\", \"issn\": \"10949224\", \"number\": \"1\", \"pages\": \"51--62\", \"volume\": \"3\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Spinellis/ACM Transactions on Information and System Security/Spinellis - 2000 - Reflection as a mechanism for software integrity verification.pdf:pdf\", \"year\": \"2000\", \"title\": \"Reflection as a mechanism for software integrity verification\", \"ID\": \"Spinellis2000\", \"annote\": \"In this approach a software integrity is verified with the help of an external (trusted) entity. Here, the program state is retrieved using reflection, a protocol is proposed to verify the state, and suggested to augment the scheme with CPU perfor.mance counter, before and after the verification call loops.\\nOne obvious attack is to keep an untouched version of the application in the memory next to the tampered with version. Then redirect all hash computations to the good version. The authors, suggest memory expanion and timing as possible countermeasures.\", \"journal\": \"ACM Transactions on Information and System Security\"}',0,'',''),(37,'teixeira2015siot','{\"author\": \"Teixeira, Fernando A and Machado, Gustavo V and Pereira, Fernando MQ and Wong, Hao Chi and Nogueira, Jos{\\\\\'e} and Oliveira, Leonardo B\", \"booktitle\": \"Proceedings of the 14th International Conference on Information Processing in Sensor Networks\", \"title\": \"SIoT: securing the internet of things through distributed system analysis\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"ACM\", \"ID\": \"teixeira2015siot\", \"pages\": \"310--321\"}',0,'',''),(38,'Wang2005Tamper','{\"isbn\": \"8242866627\", \"keyword\": \"integrity checking,multi-blocking encryption,software piracy,tamper resistant\", \"title\": \"Tamper Resistant Software Through Dynamic Integrity Checking\", \"journal\": \"Proc. Symp. on Cyptography and Information Security (SCIS 05)\", \"author\": \"Wang, Ping and Kang, Seok-kyu and Kim, Kwangjo\", \"ID\": \"Wang2005Tamper\", \"year\": \"2005\", \"ENTRYTYPE\": \"article\"}',0,'',''),(39,'yao2014cryptvmi','{\"author\": \"Yao, Fangzhou and Sprabery, Read and Campbell, Roy H\", \"booktitle\": \"Proceedings of the 2nd international workshop on Security in cloud computing\", \"title\": \"CryptVMI: a flexible and encrypted virtual machine introspection system in the cloud\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2014\", \"organization\": \"ACM\", \"ID\": \"yao2014cryptvmi\", \"pages\": \"11--18\"}',0,'',''),(40,'banescu2015software','{\"author\": \"Banescu, Sebastian and Pretschner, Alexander and Battr{\\\\\'e}, Dominic and Cazzulani, St{\\\\\'e}fano and Shield, Robert and Thompson, Greg\", \"booktitle\": \"Proceedings of the 5th ACM Conference on Data and Application Security and Privacy\", \"title\": \"Software-based protection against changeware\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"ACM\", \"ID\": \"banescu2015software\", \"pages\": \"231--242\"}',0,'',''),(41,'Carbone2009','{\"isbn\": \"9781605583525\", \"author\": \"Carbone, Martim and Cui, Weidong and Peinado, Marcus and Lu, Long and Lee, Wenke\", \"journal\": \"Analysis\", \"title\": \"Mapping Kernel Objects to Enable Systematic Integrity Checking\", \"ENTRYTYPE\": \"article\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Carbone et al/Analysis/Carbone et al. - 2009 - Mapping Kernel Objects to Enable Systematic Integrity Checking.pdf:pdf\", \"year\": \"2009\", \"ID\": \"Carbone2009\", \"pages\": \"555--565\"}',0,'',''),(42,'Castro2006','{\"isbn\": \"1-931971-47-1\", \"author\": \"Castro, Miguel and Costa, Manuel and Harris, Tim\", \"ENTRYTYPE\": \"article\", \"abstract\": \"Software attacks often subvert the intended data-flow in a vulnerable program. For example, attackers exploit buffer overflows and format string vulnerabilities to write data to unintended locations. We present a simple technique that prevents these attacks by enforcing data-flow integrity. It computes a data-flow graph using static analysis, and it instruments the program to ensure that the flow of data at runtime is allowed by the data-flow graph. We describe an efficient implementation of data-flow integrity enforcement that uses static analysis to reduce instrumentation overhead. This implementation can be used in practice to detect a broad class of attacks and errors because it can be applied automatically to C and C++ programs without modifications, it does not have false positives, and it has low overhead.\", \"title\": \"Securing software by enforcing data-flow integrity\", \"pages\": \"147--160\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"link\": \"http://dl.acm.org/citation.cfm?id=1298455.1298470$\\\\backslash$nhttp://www.usenix.org/event/osdi06/tech/full{\\\\_}papers/castro/castro{\\\\_}html/\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Castro, Costa, Harris/Proceedings of the 7th symposium on Operating systems design and implementation/Castro, Costa, Harris - 2006 - Securing software by enforcing data-flow integrity.pdf:pdf\", \"year\": \"2006\", \"ID\": \"Castro2006\", \"journal\": \"Proceedings of the 7th symposium on Operating systems design and implementation\"}',0,'',''),(43,'gao2015integrity','{\"doi\": \"10.1109/ICAC.2015.34\", \"keyword\": \"Big Data;cloud computing;data integrity;data privacy;Big Data processing;cloud computing technology;dynamic redundancy computation;integrity protection solution;reputation based redundancy computation;Conferences;MapReduce;cloud computing;integrity protection\", \"title\": \"Integrity Protection for Big Data Processing with Dynamic Redundancy Computation\", \"booktitle\": \"Autonomic Computing (ICAC), 2015 IEEE International Conference on\", \"author\": \"Z. Gao and N. Desalvo and P. D. Khoa and S. H. Kim and L. Xu and W. W. Ro and R. M. Verma and W. Shi\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"ID\": \"gao2015integrity\", \"pages\": \"159-160\"}',0,'',''),(44,'karapanos2016verena','{\"author\": \"Karapanos, Nikolaos and Filios, Alexandros and Popa, Raluca Ada and Capkun, Srdjan\", \"booktitle\": \"Proceedings of the 37th IEEE Symposium on Security and Privacy (IEEE S\\\\&P)\", \"title\": \"Verena: End-to-end integrity protection for web applications\", \"ID\": \"karapanos2016verena\", \"year\": \"2016\", \"ENTRYTYPE\": \"inproceedings\"}',0,'',''),(45,'Kil2009','{\"isbn\": \"9781424444212\", \"keyword\": \"dynamic attestation,integrity,remote attestation,runtime,system security,trusted computing\", \"author\": \"Kil, Chongkyung\", \"journal\": \"IEEE/IFIP International Conference on Dependable Systems {\\\\&} Networks\", \"title\": \"Remote Attestation to Dynamic System Properties: Towards Providing Complete System Integrity Evidence\", \"ENTRYTYPE\": \"article\", \"mendeley-groups\": \"Tamperproofing\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Kil/IEEEIFIP International Conference on Dependable Systems {\\\\&} Networks/Kil - 2009 - Remote Attestation to Dynamic System Properties Towards Providing Complete System Integrity Evidence.pdf:pdf\", \"year\": \"2009\", \"ID\": \"Kil2009\", \"pages\": \"115--124\"}',0,'',''),(46,'neisse2011implementing','{\"author\": \"Neisse, Ricardo and Holling, Dominik and Pretschner, Alexander\", \"booktitle\": \"Proceedings of the 2011 11th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing\", \"title\": \"Implementing trust in cloud infrastructures\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2011\", \"organization\": \"IEEE Computer Society\", \"ID\": \"neisse2011implementing\", \"pages\": \"524--533\"}',0,'',''),(47,'sun2015security','{\"author\": \"Sun, Yuqiong and Nanda, Susanta and Jaeger, Trent\", \"booktitle\": \"2015 IEEE 7th International Conference on Cloud Computing Technology and Science (CloudCom)\", \"title\": \"Security-as-a-Service for Microservices-Based Cloud Applications\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"sun2015security\", \"pages\": \"50--57\"}',0,'',''),(48,'pappas2012smashing','{\"author\": \"Pappas, Vasilis and Polychronakis, Michalis and Keromytis, Angelos D\", \"booktitle\": \"2012 IEEE Symposium on Security and Privacy\", \"title\": \"Smashing the gadgets: Hindering return-oriented programming using in-place code randomization\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2012\", \"organization\": \"IEEE\", \"ID\": \"pappas2012smashing\", \"pages\": \"601--615\"}',0,'',''),(49,'pappas2013transparent','{\"author\": \"Pappas, Vasilis and Polychronakis, Michalis and Keromytis, Angelos D\", \"booktitle\": \"Presented as part of the 22nd USENIX Security Symposium (USENIX Security 13)\", \"title\": \"Transparent ROP exploit mitigation using indirect branch tracing\", \"pages\": \"447--462\", \"year\": \"2013\", \"ID\": \"pappas2013transparent\", \"ENTRYTYPE\": \"inproceedings\"}',0,'',''); +/*!40000 ALTER TABLE `paper` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary view structure for view `paper_attribute` +-- + +DROP TABLE IF EXISTS `paper_attribute`; +/*!50001 DROP VIEW IF EXISTS `paper_attribute`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE VIEW `paper_attribute` AS SELECT + 1 AS `id_taxonomy`, + 1 AS `id_paper`, + 1 AS `citation`, + 1 AS `bib`, + 1 AS `id_attribute`, + 1 AS `text_attribute`, + 1 AS `leaf_attribute`*/; +SET character_set_client = @saved_cs_client; + +-- +-- Temporary view structure for view `paper_merged_attributes` +-- + +DROP TABLE IF EXISTS `paper_merged_attributes`; +/*!50001 DROP VIEW IF EXISTS `paper_merged_attributes`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE VIEW `paper_merged_attributes` AS SELECT + 1 AS `id_taxonomy`, + 1 AS `id_paper`, + 1 AS `citation`, + 1 AS `bib`, + 1 AS `atts`, + 1 AS `leaf_atts`*/; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `relation` +-- + +DROP TABLE IF EXISTS `relation`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `relation` ( + `id_relation` int(10) unsigned NOT NULL AUTO_INCREMENT, + `text` varchar(50) NOT NULL, + `comment` varchar(500) DEFAULT NULL, + PRIMARY KEY (`id_relation`), + UNIQUE KEY `id_relation_UNIQUE` (`id_relation`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `relation` +-- + +LOCK TABLES `relation` WRITE; +/*!40000 ALTER TABLE `relation` DISABLE KEYS */; +INSERT INTO `relation` VALUES (1,'Depends','simple dependency'),(2,'DependsDirected','directed dependency'),(3,'InstanceOf','inheritance'),(4,'MemberOf','aggregation'),(5,'PartOf','composition'); +/*!40000 ALTER TABLE `relation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `research` +-- + +DROP TABLE IF EXISTS `research`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `research` ( + `ResearchId` int(11) NOT NULL AUTO_INCREMENT, + `Questions` varchar(1000) NOT NULL, + `Review_Template` varchar(2000) DEFAULT NULL, + `Title` varchar(100) NOT NULL, + PRIMARY KEY (`ResearchId`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `research` +-- + +LOCK TABLES `research` WRITE; +/*!40000 ALTER TABLE `research` DISABLE KEYS */; +INSERT INTO `research` VALUES (1,'RQ1. What are the key security differences between Microservice and traditional monolithic Services?\n RQ1.1. Architectural differences? \n RQ1.2. Implications on security?\n\nRQ2. What general SOA security considertations(in the literature) is still applicable to microservices? \nRQ2.1. What measures are not applicable and why? e.g. due to performance overhead.','TODO:','Microservice Security'),(2,'RQ1. How can we secure a busness process defined in BPMN?','TODO','Business Process Security'); +/*!40000 ALTER TABLE `research` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `tags` +-- + +DROP TABLE IF EXISTS `tags`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tags` ( + `TagId` int(11) NOT NULL AUTO_INCREMENT, + `Text` varchar(500) NOT NULL, + `ResearchID` int(11) NOT NULL, + PRIMARY KEY (`TagId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `tags` +-- + +LOCK TABLES `tags` WRITE; +/*!40000 ALTER TABLE `tags` DISABLE KEYS */; +/*!40000 ALTER TABLE `tags` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `taxonomy` +-- + +DROP TABLE IF EXISTS `taxonomy`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy` ( + `id_taxonomy` int(11) unsigned NOT NULL AUTO_INCREMENT, + `text` varchar(50) DEFAULT NULL, + PRIMARY KEY (`id_taxonomy`), + UNIQUE KEY `id_taxonomy_UNIQUE` (`id_taxonomy`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `taxonomy` +-- + +LOCK TABLES `taxonomy` WRITE; +/*!40000 ALTER TABLE `taxonomy` DISABLE KEYS */; +INSERT INTO `taxonomy` VALUES (1,'Integrity protection'); +/*!40000 ALTER TABLE `taxonomy` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `taxonomy_dimension` +-- + +DROP TABLE IF EXISTS `taxonomy_dimension`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy_dimension` ( + `id_taxonomy_dimension` int(10) unsigned NOT NULL AUTO_INCREMENT, + `id_taxonomy` int(11) NOT NULL, + `id_attribute` int(11) unsigned NOT NULL, + `id_dimension` int(11) unsigned NOT NULL, + PRIMARY KEY (`id_taxonomy_dimension`), + UNIQUE KEY `id_taxonomy_dimension_UNIQUE` (`id_taxonomy_dimension`), + UNIQUE KEY `taxonomy_dimension_id_attribute_UNIQUE` (`id_attribute`), + KEY `taxonomy_dimension_id_attribute_foreign` (`id_attribute`), + KEY `taxonomy_dimension_id_dimension_foreign` (`id_dimension`), + CONSTRAINT `taxonomy_dimension_id_attribute_foreign` FOREIGN KEY (`id_attribute`) REFERENCES `attribute` (`id_attribute`) ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT `taxonomy_dimension_id_dimension_foreign` FOREIGN KEY (`id_dimension`) REFERENCES `dimension` (`id_dimension`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=92 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `taxonomy_dimension` +-- + +LOCK TABLES `taxonomy_dimension` WRITE; +/*!40000 ALTER TABLE `taxonomy_dimension` DISABLE KEYS */; +INSERT INTO `taxonomy_dimension` VALUES (1,1,2,1),(2,1,3,1),(3,1,4,1),(4,1,6,1),(5,1,7,1),(6,1,8,1),(7,1,9,1),(8,1,10,1),(9,1,11,1),(10,1,12,1),(11,1,13,1),(12,1,15,1),(13,1,16,1),(14,1,17,1),(15,1,18,1),(16,1,19,1),(17,1,21,1),(18,1,22,1),(19,1,23,1),(20,1,24,1),(21,1,25,1),(22,1,28,2),(23,1,29,2),(24,1,30,2),(25,1,31,2),(26,1,33,3),(27,1,34,3),(28,1,36,3),(29,1,37,3),(30,1,39,3),(31,1,40,3),(32,1,42,3),(33,1,43,3),(34,1,45,3),(35,1,46,3),(36,1,47,3),(37,1,48,3),(38,1,49,3),(39,1,51,3),(40,1,52,3),(41,1,53,3),(42,1,54,3),(43,1,55,3),(44,1,56,3),(45,1,58,3),(46,1,59,3),(47,1,60,3),(48,1,61,3),(49,1,63,3),(50,1,64,3),(51,1,65,3),(52,1,66,3),(53,1,68,3),(54,1,69,3),(55,1,70,3),(56,1,5,1),(57,1,71,3),(58,1,72,2),(59,1,73,2),(60,1,78,2),(61,1,79,2),(62,1,80,2),(63,1,81,2),(64,1,82,2),(65,1,83,2),(66,1,84,2),(67,1,85,2),(68,1,86,2),(69,1,87,2),(70,1,88,2),(71,1,89,3),(72,1,90,3),(73,1,91,3),(74,1,92,3),(75,1,93,1),(76,1,94,1),(77,1,95,1),(78,1,1,1),(79,1,14,1),(80,1,20,1),(81,1,26,2),(82,1,27,2),(83,1,32,3),(84,1,35,3),(85,1,38,3),(86,1,41,3),(87,1,44,3),(88,1,50,3),(89,1,57,3),(90,1,62,3),(91,1,67,3); +/*!40000 ALTER TABLE `taxonomy_dimension` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `taxonomy_relation` +-- + +DROP TABLE IF EXISTS `taxonomy_relation`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy_relation` ( + `id_taxonomy_relation` int(11) NOT NULL AUTO_INCREMENT, + `id_taxonomy` int(11) NOT NULL, + `id_src_attribute` int(11) unsigned NOT NULL, + `id_dest_attribute` int(11) unsigned NOT NULL, + `id_relation` int(11) NOT NULL, + `id_dimension` int(10) DEFAULT '0', + `edgeBendPoints` longtext, + PRIMARY KEY (`id_taxonomy_relation`), + UNIQUE KEY `id_taxonomy_relation_UNIQUE` (`id_taxonomy_relation`), + UNIQUE KEY `taxonomy_relation_attributes_UNIQUE` (`id_taxonomy`,`id_src_attribute`,`id_dest_attribute`,`id_dimension`), + KEY `taxonomy_relation_id_src_attribute_foreign` (`id_src_attribute`), + KEY `taxonomy_relation_id_dest_attribute_foreign` (`id_dest_attribute`), + CONSTRAINT `taxonomy_relation_id_dest_attribute_foreign` FOREIGN KEY (`id_dest_attribute`) REFERENCES `attribute` (`id_attribute`) ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT `taxonomy_relation_id_src_attribute_foreign` FOREIGN KEY (`id_src_attribute`) REFERENCES `attribute` (`id_attribute`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=250 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `taxonomy_relation` +-- + +LOCK TABLES `taxonomy_relation` WRITE; +/*!40000 ALTER TABLE `taxonomy_relation` DISABLE KEYS */; +INSERT INTO `taxonomy_relation` VALUES (56,1,2,93,3,1,'{\'x\':650.727886097796,\'y\':192.72289050508002}'),(57,1,3,93,3,1,'{\'x\':650.5370966241119,\'y\':192.95489050508002}'),(58,1,4,93,3,1,'{\'x\':650.727886097796,\'y\':192.72289050508002}'),(59,1,5,93,1,1,'{\'x\':650.727886097796,\'y\':192.72289050508002}'),(60,1,21,20,3,1,'{\'x\':343,\'y\':464.71131639722864}'),(61,1,22,20,3,1,'{\'x\':486,\'y\':314}'),(62,1,23,20,3,1,'{\'x\':555,\'y\':296.5}'),(63,1,24,20,3,1,'{\'x\':398.98091603053433,\'y\':366.0204081632653}'),(64,1,25,20,3,1,'{\'x\':448.3731778425656,\'y\':328.3031496062992}'),(65,1,94,20,3,1,'{\'x\':782.3805309734513,\'y\':435.8803418803419}'),(66,1,6,21,1,1,'{\'x\':378.5,\'y\':346.3828828828829}'),(67,1,6,22,1,1,'{\'x\':493.54545454545456,\'y\':199.01554404145077}'),(68,1,6,94,1,1,'{\'x\':763,\'y\':330.7647058823529}'),(69,1,6,5,5,1,'{\'x\':null,\'y\':null}'),(70,1,7,5,5,1,'{\'x\':null,\'y\':null}'),(71,1,8,5,5,1,'{\'x\':709.3077069248876,\'y\':219.46601967233755}'),(72,1,9,7,3,1,'{\'x\':438.7857142857143,\'y\':336.38709677419354}'),(73,1,10,7,3,1,'{\'x\':468.19444444444446,\'y\':319.74117647058824}'),(74,1,13,8,3,1,'{\'x\':536.5,\'y\':261.27422145328717}'),(75,1,11,8,3,1,'{\'x\':1117.5,\'y\':269.4512867647059}'),(77,1,7,24,1,1,'{\'x\':398.5,\'y\':253.47598870056498}'),(78,1,7,25,1,1,'{\'x\':440.5,\'y\':207.77358490566039}'),(79,1,8,24,1,1,'{\'x\':511,\'y\':207.82323232323233}'),(80,1,8,25,1,1,'{\'x\':553,\'y\':164.46534653465346}'),(81,1,5,14,1,1,'{\'x\':433.39555412019615,\'y\':324.17869112208484}'),(82,1,15,14,3,1,'{\'x\':230,\'y\':392.7716535433071}'),(83,1,95,14,3,1,'{\'x\':395,\'y\':381.5}'),(84,1,17,14,3,1,'{\'x\':389.5,\'y\':396.64835164835165}'),(85,1,18,14,3,1,'{\'x\':444.40377421167415,\'y\':429.2728154250688}'),(86,1,19,14,3,1,'{\'x\':460.44755369073323,\'y\':433.4818990614035}'),(87,1,79,80,4,2,NULL),(88,1,81,80,4,2,NULL),(89,1,82,80,4,2,NULL),(90,1,83,80,4,2,NULL),(91,1,80,72,5,2,NULL),(92,1,73,72,5,2,NULL),(93,1,84,72,5,2,NULL),(94,1,27,72,5,2,NULL),(95,1,28,27,3,2,NULL),(96,1,29,27,3,2,NULL),(97,1,30,27,3,2,NULL),(98,1,88,84,3,2,NULL),(99,1,31,27,3,2,NULL),(100,1,26,73,3,2,NULL),(101,1,85,84,3,2,NULL),(102,1,86,84,3,2,NULL),(103,1,87,84,3,2,NULL),(104,1,78,27,3,2,NULL),(105,1,57,32,5,3,NULL),(106,1,62,32,5,3,NULL),(107,1,67,32,5,3,NULL),(108,1,35,32,5,3,NULL),(109,1,38,32,5,3,NULL),(110,1,41,32,5,3,NULL),(111,1,44,32,5,3,NULL),(112,1,50,32,5,3,NULL),(113,1,33,32,3,3,NULL),(114,1,34,32,3,3,NULL),(115,1,58,57,3,3,NULL),(116,1,59,57,3,3,NULL),(117,1,60,57,3,3,NULL),(118,1,61,57,3,3,NULL),(119,1,71,62,3,3,NULL),(120,1,89,62,3,3,NULL),(121,1,63,62,3,3,NULL),(122,1,64,62,3,3,NULL),(123,1,65,62,3,3,NULL),(124,1,70,67,3,3,NULL),(125,1,69,67,3,3,NULL),(126,1,90,67,3,3,NULL),(127,1,36,35,3,3,NULL),(128,1,37,35,3,3,NULL),(129,1,39,38,3,3,NULL),(130,1,92,38,3,3,NULL),(131,1,42,41,3,3,NULL),(132,1,43,41,3,3,NULL),(133,1,45,44,3,3,NULL),(134,1,46,44,3,3,NULL),(135,1,47,44,3,3,NULL),(136,1,48,44,3,3,NULL),(137,1,49,44,3,3,NULL),(138,1,51,50,3,3,NULL),(139,1,52,50,3,3,NULL),(140,1,53,50,3,3,NULL),(141,1,54,50,3,3,NULL),(142,1,55,50,3,3,NULL),(143,1,91,50,3,3,NULL),(232,1,32,84,2,4,NULL),(233,1,32,20,2,4,NULL),(234,1,32,27,2,4,NULL),(235,1,32,67,1,4,NULL),(236,1,57,20,2,4,NULL),(237,1,62,32,2,4,NULL),(238,1,93,14,1,4,NULL),(239,1,5,93,2,4,NULL),(240,1,84,32,2,4,NULL),(241,1,80,72,2,4,NULL),(242,1,27,5,2,4,NULL),(243,1,27,32,2,4,NULL),(244,1,73,27,2,4,NULL),(245,1,84,5,2,4,NULL),(246,1,68,67,3,3,NULL),(247,1,23,23,1,1,NULL),(249,1,12,11,3,1,'{\'x\':1315.5,\'y\':258}'); +/*!40000 ALTER TABLE `taxonomy_relation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `taxonomy_relation_annotation` +-- + +DROP TABLE IF EXISTS `taxonomy_relation_annotation`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy_relation_annotation` ( + `id_taxonomy` int(11) NOT NULL, + `id_taxonomy_relation` int(11) NOT NULL, + `annotation` longtext, + PRIMARY KEY (`id_taxonomy_relation`), + UNIQUE KEY `id_taxonomy_relation_annotation_UNIQUE` (`id_taxonomy_relation`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `taxonomy_relation_annotation` +-- + +LOCK TABLES `taxonomy_relation_annotation` WRITE; +/*!40000 ALTER TABLE `taxonomy_relation_annotation` DISABLE KEYS */; +INSERT INTO `taxonomy_relation_annotation` VALUES (1,232,'Impedes'),(1,233,'Transforms'),(1,234,'Mitigates or raises the bar'),(1,236,'Affects'),(1,237,'Strengthens'),(1,239,'Contains'),(1,240,'Identifies'),(1,241,'Support'),(1,242,'Tampers with'),(1,243,'Tampers with'),(1,244,'Executes'),(1,245,'Identifies asset'); +/*!40000 ALTER TABLE `taxonomy_relation_annotation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary view structure for view `unique_articles_view` +-- + +DROP TABLE IF EXISTS `unique_articles_view`; +/*!50001 DROP VIEW IF EXISTS `unique_articles_view`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE VIEW `unique_articles_view` AS SELECT + 1 AS `ArticleId`, + 1 AS `Title`, + 1 AS `year`, + 1 AS `cited_by`, + 1 AS `Keywords`, + 1 AS `Abstract`, + 1 AS `Journal`, + 1 AS `ResearchId`, + 1 AS `Authors`, + 1 AS `File`, + 1 AS `Source`*/; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `user` +-- + +DROP TABLE IF EXISTS `user`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `user` ( + `email` varchar(128) NOT NULL, + `password` varchar(128) NOT NULL, + `taxonomies` varchar(500) DEFAULT '', + `admin` tinyint(1) DEFAULT '0', + PRIMARY KEY (`email`), + UNIQUE KEY `email_UNIQUE` (`email`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `user` +-- + +LOCK TABLES `user` WRITE; +/*!40000 ALTER TABLE `user` DISABLE KEYS */; +INSERT INTO `user` VALUES ('felixhuber2@gmx.de','123','',1); +/*!40000 ALTER TABLE `user` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vote_tags` +-- + +DROP TABLE IF EXISTS `vote_tags`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `vote_tags` ( + `Vote_Tags_Id` int(11) NOT NULL AUTO_INCREMENT, + `Tag_Id` int(11) NOT NULL, + `VoteId` int(11) NOT NULL, + PRIMARY KEY (`Vote_Tags_Id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vote_tags` +-- + +LOCK TABLES `vote_tags` WRITE; +/*!40000 ALTER TABLE `vote_tags` DISABLE KEYS */; +/*!40000 ALTER TABLE `vote_tags` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `votes` +-- + +DROP TABLE IF EXISTS `votes`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `votes` ( + `VoteId` int(11) NOT NULL AUTO_INCREMENT, + `Vote_State` int(11) NOT NULL, + `MitarbeiterId` int(11) NOT NULL, + `ArticleId` int(11) NOT NULL, + `Review` varchar(5000) DEFAULT NULL, + PRIMARY KEY (`VoteId`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `votes` +-- + +LOCK TABLES `votes` WRITE; +/*!40000 ALTER TABLE `votes` DISABLE KEYS */; +INSERT INTO `votes` VALUES (1,0,1,873,''),(2,0,1,1455,''),(3,0,1,197,''),(4,0,1,205,''),(5,0,1,250,''); +/*!40000 ALTER TABLE `votes` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Dumping routines for database 'classification' +-- +/*!50003 DROP FUNCTION IF EXISTS `GETATTRIBUTENAME` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`localhost` FUNCTION `GETATTRIBUTENAME`(id Integer) RETURNS varchar(100) CHARSET utf8 +BEGIN +return (select text from attribute where id_attribute=id); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `insertallchildrenperattribute` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`localhost` PROCEDURE `insertallchildrenperattribute`(taxonomyId INT(11)) +BEGIN + DECLARE cursor_id_attribute INT(11); + DECLARE cursor_text VARCHAR(50); + DECLARE done INT DEFAULT FALSE; + DECLARE cursor_i CURSOR FOR SELECT id_attribute, text FROM attribute; + DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + DELETE FROM allchildrenperattribute WHERE id_taxonomy = taxonomyId; + OPEN cursor_i; + read_loop: LOOP + FETCH cursor_i INTO cursor_id_attribute, cursor_text; + IF done THEN + LEAVE read_loop; + END IF; + INSERT IGNORE INTO allchildrenperattribute(id_attribute, id_taxonomy, text, children) VALUES(cursor_id_attribute, taxonomyId, cursor_text, (SELECT (CASE WHEN b.children IS NULL THEN CAST(cursor_id_attribute AS CHAR(50)) ELSE CONCAT(CAST(cursor_id_attribute AS CHAR(50)), ",", b.children) END) AS children FROM (SELECT GROUP_CONCAT(lv SEPARATOR ',') AS children FROM (SELECT @pv:=(SELECT GROUP_CONCAT(DISTINCT relation1.id_src_attribute SEPARATOR ',') FROM taxonomy_relation AS relation1 WHERE relation1.id_taxonomy = taxonomyId AND relation1.id_relation > 2 AND FIND_IN_SET(relation1.id_dest_attribute, @pv)) AS lv FROM taxonomy_relation AS relation2 JOIN (SELECT @pv:=cursor_id_attribute) tmp ON (relation2.id_taxonomy = taxonomyId)) a) b)); + END LOOP; + CLOSE cursor_i; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `insertallparentsperattribute` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`localhost` PROCEDURE `insertallparentsperattribute`(taxonomyId INT(11)) +BEGIN + DECLARE cursor_id_attribute INT(11); + DECLARE cursor_text VARCHAR(50); + DECLARE done INT DEFAULT FALSE; + DECLARE cursor_i CURSOR FOR SELECT id_attribute, text FROM attribute; + DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + DELETE FROM allparentsperattribute WHERE id_taxonomy = taxonomyId; + OPEN cursor_i; + read_loop: LOOP + FETCH cursor_i INTO cursor_id_attribute, cursor_text; + IF done THEN + LEAVE read_loop; + END IF; + INSERT IGNORE INTO allparentsperattribute(id_attribute, id_taxonomy, text, parents) VALUES(cursor_id_attribute, taxonomyId, cursor_text, (SELECT (CASE WHEN b.parents IS NULL THEN "" ELSE b.parents END) AS parents FROM (SELECT GROUP_CONCAT(lv SEPARATOR ',') AS parents FROM (SELECT @pv:=(SELECT GROUP_CONCAT(DISTINCT parent.text SEPARATOR ',') FROM taxonomy_relation AS relation1 INNER JOIN attribute as parent ON (relation1.id_dest_attribute = parent.id_attribute AND parent.id_taxonomy = taxonomyId) WHERE relation1.id_taxonomy = taxonomyId AND relation1.id_relation > 2 AND FIND_IN_SET((SELECT DISTINCT text FROM attribute WHERE id_attribute = relation1.id_src_attribute AND id_taxonomy = taxonomyId), @pv)) AS lv FROM taxonomy_relation JOIN (SELECT @pv:=text FROM attribute WHERE id_attribute = cursor_id_attribute AND id_taxonomy = taxonomyId) tmp) a) b)); + END LOOP; + CLOSE cursor_i; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; + +-- +-- Final view structure for view `articles_view` +-- + +/*!50001 DROP VIEW IF EXISTS `articles_view`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8 */; +/*!50001 SET character_set_results = utf8 */; +/*!50001 SET collation_connection = utf8_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ +/*!50001 VIEW `articles_view` AS select `distict_articles`.`ArticleId` AS `ArticleId`,`distict_articles`.`Title` AS `Title`,`distict_articles`.`year` AS `year`,`distict_articles`.`cited_by` AS `cited_by`,`distict_articles`.`Keywords` AS `Keywords`,`distict_articles`.`Abstract` AS `Abstract`,`distict_articles`.`Journal` AS `Journal`,`distict_articles`.`ResearchId` AS `ResearchId`,`distict_articles`.`Authors` AS `Authors`,`distict_articles`.`File` AS `File`,`distict_articles`.`Source` AS `Source` from (select max(`a`.`ArticleId`) AS `ArticleId`,`a`.`Title` AS `Title`,max(cast(`a`.`year` as unsigned)) AS `year`,max(cast(`a`.`cited_by` as unsigned)) AS `cited_by`,max(`a`.`Keywords`) AS `Keywords`,max(`a`.`Abstract`) AS `Abstract`,max(`a`.`Journal`) AS `Journal`,`a`.`ResearchId` AS `ResearchId`,max(`a`.`Authors`) AS `Authors`,min(`a`.`File`) AS `File`,max(`a`.`Source`) AS `Source`,max(`a`.`Enabled`) AS `Enabled` from `classification`.`articles` `a` group by `a`.`Title`,`a`.`ResearchId`) `distict_articles` where (`distict_articles`.`Enabled` = 1) */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `paper_attribute` +-- + +/*!50001 DROP VIEW IF EXISTS `paper_attribute`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8 */; +/*!50001 SET character_set_results = utf8 */; +/*!50001 SET collation_connection = utf8_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ +/*!50001 VIEW `paper_attribute` AS select `taxonomy`.`id_taxonomy` AS `id_taxonomy`,`paper`.`id_paper` AS `id_paper`,`paper`.`citation` AS `citation`,`paper`.`bib` AS `bib`,`mapping`.`id_attribute` AS `id_attribute`,`GETATTRIBUTENAME`(`mapping`.`id_attribute`) AS `text_attribute`,`GETATTRIBUTENAME`(`mapping`.`id_attribute`) AS `leaf_attribute` from ((`paper` join `mapping` on((`paper`.`id_paper` = `mapping`.`id_paper`))) join `taxonomy`) union select `rel1`.`id_taxonomy` AS `id_taxonomy`,`paper`.`id_paper` AS `id_paper`,`paper`.`citation` AS `citation`,`paper`.`bib` AS `bib`,`rel1`.`id_src_attribute` AS `id_attribute`,`GETATTRIBUTENAME`(`rel1`.`id_src_attribute`) AS `text_attribute`,NULL AS `leaf_attribute` from ((`paper` join `mapping` on((`paper`.`id_paper` = `mapping`.`id_paper`))) left join `taxonomy_relation` `rel1` on((`rel1`.`id_dest_attribute` = `mapping`.`id_attribute`))) where (`rel1`.`id_src_attribute` is not null) union select `rel2`.`id_taxonomy` AS `id_taxonomy`,`paper`.`id_paper` AS `id_paper`,`paper`.`citation` AS `citation`,`paper`.`bib` AS `bib`,`rel2`.`id_src_attribute` AS `id_attribute`,`GETATTRIBUTENAME`(`rel2`.`id_src_attribute`) AS `text_attribute`,NULL AS `leaf_attribute` from (((`paper` join `mapping` on((`paper`.`id_paper` = `mapping`.`id_paper`))) left join `taxonomy_relation` `rel1` on((`rel1`.`id_dest_attribute` = `mapping`.`id_attribute`))) left join `taxonomy_relation` `rel2` on((`rel2`.`id_dest_attribute` = `rel1`.`id_src_attribute`))) where (`rel2`.`id_src_attribute` is not null) union select `rel3`.`id_taxonomy` AS `id_taxonomy`,`paper`.`id_paper` AS `id_paper`,`paper`.`citation` AS `citation`,`paper`.`bib` AS `bib`,`rel3`.`id_src_attribute` AS `id_attribute`,`GETATTRIBUTENAME`(`rel3`.`id_src_attribute`) AS `text_attribute`,NULL AS `leaf_attribute` from ((((`paper` join `mapping` on((`paper`.`id_paper` = `mapping`.`id_paper`))) left join `taxonomy_relation` `rel1` on((`rel1`.`id_dest_attribute` = `mapping`.`id_attribute`))) left join `taxonomy_relation` `rel2` on((`rel2`.`id_dest_attribute` = `rel1`.`id_src_attribute`))) left join `taxonomy_relation` `rel3` on((`rel3`.`id_dest_attribute` = `rel2`.`id_src_attribute`))) where (`rel3`.`id_src_attribute` is not null) */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `paper_merged_attributes` +-- + +/*!50001 DROP VIEW IF EXISTS `paper_merged_attributes`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8 */; +/*!50001 SET character_set_results = utf8 */; +/*!50001 SET collation_connection = utf8_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ +/*!50001 VIEW `paper_merged_attributes` AS select distinct `paper_attribute`.`id_taxonomy` AS `id_taxonomy`,`paper_attribute`.`id_paper` AS `id_paper`,`paper_attribute`.`citation` AS `citation`,`paper_attribute`.`bib` AS `bib`,`att_table`.`atts` AS `atts`,`att_table`.`leaf_atts` AS `leaf_atts` from (`classification`.`paper_attribute` join (select `a`.`id_paper` AS `id_paper`,group_concat(concat(`a`.`text_attribute`) separator ',') AS `atts`,group_concat(concat(`a`.`leaf_attribute`) separator ',') AS `leaf_atts` from (select `paper_attribute`.`id_paper` AS `id_paper`,`paper_attribute`.`id_attribute` AS `id_attribute`,`paper_attribute`.`text_attribute` AS `text_attribute`,`paper_attribute`.`leaf_attribute` AS `leaf_attribute` from `classification`.`paper_attribute` order by `paper_attribute`.`id_attribute`) `a` group by `a`.`id_paper`) `att_table` on((`att_table`.`id_paper` = `paper_attribute`.`id_paper`))) */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `unique_articles_view` +-- + +/*!50001 DROP VIEW IF EXISTS `unique_articles_view`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8 */; +/*!50001 SET character_set_results = utf8 */; +/*!50001 SET collation_connection = utf8_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ +/*!50001 VIEW `unique_articles_view` AS select `distict_articles`.`ArticleId` AS `ArticleId`,`distict_articles`.`Title` AS `Title`,`distict_articles`.`year` AS `year`,`distict_articles`.`cited_by` AS `cited_by`,`distict_articles`.`Keywords` AS `Keywords`,`distict_articles`.`Abstract` AS `Abstract`,`distict_articles`.`Journal` AS `Journal`,`distict_articles`.`ResearchId` AS `ResearchId`,`distict_articles`.`Authors` AS `Authors`,`distict_articles`.`File` AS `File`,`distict_articles`.`Source` AS `Source` from (select max(`a`.`ArticleId`) AS `ArticleId`,`a`.`Title` AS `Title`,max(cast(`a`.`year` as unsigned)) AS `year`,max(cast(`a`.`cited_by` as unsigned)) AS `cited_by`,max(`a`.`Keywords`) AS `Keywords`,max(`a`.`Abstract`) AS `Abstract`,max(`a`.`Journal`) AS `Journal`,`a`.`ResearchId` AS `ResearchId`,max(`a`.`Authors`) AS `Authors`,min(`a`.`File`) AS `File`,max(`a`.`Source`) AS `Source`,max(`a`.`Enabled`) AS `Enabled` from `classification`.`articles` `a` group by `a`.`Title`,`a`.`ResearchId`) `distict_articles` */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2018-01-28 14:38:29 diff --git a/SQLSchema/dumps/29_01_dump.sql b/SQLSchema/dumps/29_01_dump.sql new file mode 100644 index 0000000..e5299ee --- /dev/null +++ b/SQLSchema/dumps/29_01_dump.sql @@ -0,0 +1,494 @@ +-- MySQL dump 10.13 Distrib 5.7.17, for Win64 (x86_64) +-- +-- Host: 127.0.0.1 Database: classification +-- ------------------------------------------------------ +-- Server version 5.7.20-log + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `allchildrenperattribute` +-- + +DROP TABLE IF EXISTS `allchildrenperattribute`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `allchildrenperattribute` ( + `id_attribute` int(10) unsigned NOT NULL, + `id_taxonomy` int(11) unsigned NOT NULL, + `text` varchar(50) NOT NULL, + `children` longtext, + PRIMARY KEY (`id_attribute`), + UNIQUE KEY `allchildrenperattribute_id_attribute_UNIQUE` (`id_attribute`), + KEY `allchildrenperattribute_id_taxonomy_foreign` (`id_taxonomy`), + CONSTRAINT `allchildrenperattribute_id_taxonomy_foreign` FOREIGN KEY (`id_taxonomy`) REFERENCES `taxonomy` (`id_taxonomy`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `allchildrenperattribute` +-- + +LOCK TABLES `allchildrenperattribute` WRITE; +/*!40000 ALTER TABLE `allchildrenperattribute` DISABLE KEYS */; +INSERT INTO `allchildrenperattribute` VALUES (1,1,'Integrity Protection Assets','1'),(2,1,'Behavior','2'),(3,1,'Data','3'),(4,1,'Data and behavior','4'),(5,1,'Representation','5,6,7,8,9,10,11,13,12'),(6,1,'Static','6'),(7,1,'In memory','7,9,10'),(8,1,'In execution','8,11,13,12'),(9,1,'Code invariants','9'),(10,1,'Data invariants','10'),(11,1,'Trace','11,12'),(12,1,'Timed trace','12'),(13,1,'HW counters','13'),(14,1,'Granularity','14,15,17,18,19,95'),(15,1,'Instructions','15'),(16,1,'BB','16'),(17,1,'Function','17'),(18,1,'Slice','18'),(19,1,'Application','19'),(20,1,'Lifecycle activity','20,21,22,23,24,25,94'),(21,1,'Pre-compile','21'),(22,1,'Compile','22'),(23,1,'Post-compile','23'),(24,1,'Load','24'),(25,1,'Run','25'),(26,1,'Not root','26'),(27,1,'Attack','27,28,29,30,31,78'),(28,1,'Binary ','28'),(29,1,'Process memory','29'),(30,1,'Runtime data','30'),(31,1,'Control flow','31'),(32,1,'Measure','32,33,34,35,38,41,44,50,57,62,67,36,37,39,42,43,45,46,47,48,49,51,52,53,54,55,58,59,60,61,63,64,65,68,69,70,71,89,90,91,92'),(33,1,'Local','33'),(34,1,'Remote','34'),(35,1,'Monitor','35,36,37'),(36,1,'State inspection','36'),(37,1,'Introspection','37'),(38,1,'Response','38,39,92'),(39,1,'Proactive','39'),(40,1,'Postmortem','40'),(41,1,'Transformation','41,42,43'),(42,1,'Manual','42'),(43,1,'Automatic','43'),(44,1,'Check','44,45,46,47,48,49'),(45,1,'Checksum','45'),(46,1,'Signature','46'),(47,1,'Equation eval','47'),(48,1,'Majority vote','48'),(49,1,'Access control','49'),(50,1,'Hardening','50,51,52,53,54,55,91'),(51,1,'Cyclic checks','51'),(52,1,'Mutation','52'),(53,1,'Code concealment','53'),(54,1,'Cloning','54'),(55,1,'Layered interpretation','55'),(56,1,'Block chain','56'),(57,1,'Overhead','57,58,59,60,61'),(58,1,'Fair','58'),(59,1,'Medium','59'),(60,1,'High','60'),(61,1,'N/A','61'),(62,1,'Trust anchor','62,63,64,65,71,89'),(63,1,'TPM','63'),(64,1,'SGX','64'),(65,1,'Other','65'),(66,1,'None','66'),(67,1,'Protection level','67,68,69,70,90'),(68,1,'Internal','68'),(69,1,'External','69'),(70,1,'Hypervisor','70'),(71,1,'Software','71'),(72,1,'Reverse engineering','72,27,73,80,84,26,28,29,30,31,78,79,81,82,83,85,86,87,88'),(73,1,'Attacker','73,26'),(78,1,'Call interposition','78'),(79,1,'Disassembler','79'),(80,1,'Tools','80,79,81,82,83'),(81,1,'Debugger','81'),(82,1,'Tracer','82'),(83,1,'Emulator','83'),(84,1,'Discovery','84,85,86,87,88'),(85,1,'Pattern matching','85'),(86,1,'Taint analysis','86'),(87,1,'Graph-based analysis','87'),(88,1,'Symbolic execution','88'),(89,1,'Dongle','89'),(90,1,'Self-check','90'),(91,1,'Hash chain','91'),(92,1,'Reactive','92'),(93,1,'Asset','93,2,3,4'),(94,1,'Link','94'),(95,1,'Basic block','95'); +/*!40000 ALTER TABLE `allchildrenperattribute` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `allparentsperattribute` +-- + +DROP TABLE IF EXISTS `allparentsperattribute`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `allparentsperattribute` ( + `id_attribute` int(11) unsigned NOT NULL, + `id_taxonomy` int(11) unsigned NOT NULL, + `text` varchar(50) NOT NULL, + `parents` longtext, + PRIMARY KEY (`id_attribute`), + UNIQUE KEY `allparentsperattribute_id_attribute_UNIQUE` (`id_attribute`), + KEY `allparentsperattribute_id_taxonomy_foreign` (`id_taxonomy`), + CONSTRAINT `allparentsperattribute_id_taxonomy_foreign` FOREIGN KEY (`id_taxonomy`) REFERENCES `taxonomy` (`id_taxonomy`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `allparentsperattribute` +-- + +LOCK TABLES `allparentsperattribute` WRITE; +/*!40000 ALTER TABLE `allparentsperattribute` DISABLE KEYS */; +INSERT INTO `allparentsperattribute` VALUES (1,1,'Integrity Protection Assets',''),(2,1,'Behavior','Asset'),(3,1,'Data','Asset'),(4,1,'Data and behavior','Asset'),(5,1,'Representation',''),(6,1,'Static','Representation'),(7,1,'In memory','Representation'),(8,1,'In execution','Representation'),(9,1,'Code invariants','In memory,Representation'),(10,1,'Data invariants','In memory,Representation'),(11,1,'Trace','In execution,Representation'),(12,1,'Timed trace','Trace,In execution,Representation'),(13,1,'HW counters','In execution,Representation'),(14,1,'Granularity',''),(15,1,'Instructions','Granularity'),(16,1,'BB',''),(17,1,'Function','Granularity'),(18,1,'Slice','Granularity'),(19,1,'Application','Granularity'),(20,1,'Lifecycle activity',''),(21,1,'Pre-compile','Lifecycle activity'),(22,1,'Compile','Lifecycle activity'),(23,1,'Post-compile','Lifecycle activity'),(24,1,'Load','Lifecycle activity'),(25,1,'Run','Lifecycle activity'),(26,1,'Not root','Attacker,Reverse engineering'),(27,1,'Attack','Reverse engineering'),(28,1,'Binary ','Attack,Reverse engineering'),(29,1,'Process memory','Attack,Reverse engineering'),(30,1,'Runtime data','Attack,Reverse engineering'),(31,1,'Control flow','Attack,Reverse engineering'),(32,1,'Measure',''),(33,1,'Local','Measure'),(34,1,'Remote','Measure'),(35,1,'Monitor','Measure'),(36,1,'State inspection','Monitor,Measure'),(37,1,'Introspection','Monitor,Measure'),(38,1,'Response','Measure'),(39,1,'Proactive','Response,Measure'),(40,1,'Postmortem',''),(41,1,'Transformation','Measure'),(42,1,'Manual','Transformation,Measure'),(43,1,'Automatic','Transformation,Measure'),(44,1,'Check','Measure'),(45,1,'Checksum','Check,Measure'),(46,1,'Signature','Check,Measure'),(47,1,'Equation eval','Check,Measure'),(48,1,'Majority vote','Check,Measure'),(49,1,'Access control','Check,Measure'),(50,1,'Hardening','Measure'),(51,1,'Cyclic checks','Hardening,Measure'),(52,1,'Mutation','Hardening,Measure'),(53,1,'Code concealment','Hardening,Measure'),(54,1,'Cloning','Hardening,Measure'),(55,1,'Layered interpretation','Hardening,Measure'),(56,1,'Block chain',''),(57,1,'Overhead','Measure'),(58,1,'Fair','Overhead,Measure'),(59,1,'Medium','Overhead,Measure'),(60,1,'High','Overhead,Measure'),(61,1,'N/A','Overhead,Measure'),(62,1,'Trust anchor','Measure'),(63,1,'TPM','Trust anchor,Measure'),(64,1,'SGX','Trust anchor,Measure'),(65,1,'Other','Trust anchor,Measure'),(66,1,'None',''),(67,1,'Protection level','Measure'),(68,1,'Internal','Protection level,Measure'),(69,1,'External','Protection level,Measure'),(70,1,'Hypervisor','Protection level,Measure'),(71,1,'Software','Trust anchor,Measure'),(72,1,'Reverse engineering',''),(73,1,'Attacker','Reverse engineering'),(78,1,'Call interposition','Attack,Reverse engineering'),(79,1,'Disassembler','Tools,Reverse engineering'),(80,1,'Tools','Reverse engineering'),(81,1,'Debugger','Tools,Reverse engineering'),(82,1,'Tracer','Tools,Reverse engineering'),(83,1,'Emulator','Tools,Reverse engineering'),(84,1,'Discovery','Reverse engineering'),(85,1,'Pattern matching','Discovery,Reverse engineering'),(86,1,'Taint analysis','Discovery,Reverse engineering'),(87,1,'Graph-based analysis','Discovery,Reverse engineering'),(88,1,'Symbolic execution','Discovery,Reverse engineering'),(89,1,'Dongle','Trust anchor,Measure'),(90,1,'Self-check','Protection level,Measure'),(91,1,'Hash chain','Hardening,Measure'),(92,1,'Reactive','Response,Measure'),(93,1,'Asset',''),(94,1,'Link','Lifecycle activity'),(95,1,'Basic block','Granularity'); +/*!40000 ALTER TABLE `allparentsperattribute` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `attribute` +-- + +DROP TABLE IF EXISTS `attribute`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `attribute` ( + `id_attribute` int(11) unsigned NOT NULL AUTO_INCREMENT, + `text` varchar(50) NOT NULL, + `x` varchar(50) DEFAULT '', + `y` varchar(50) DEFAULT '', + `xMajor` varchar(50) DEFAULT '', + `yMajor` varchar(50) DEFAULT '', + `x3D` varchar(50) DEFAULT '', + `y3D` varchar(50) DEFAULT '', + `z3D` varchar(50) DEFAULT '', + `xMajor3D` varchar(50) DEFAULT '', + `yMajor3D` varchar(50) DEFAULT '', + `zMajor3D` varchar(50) DEFAULT '', + `major` tinyint(1) DEFAULT '0', + `id_taxonomy` int(11) unsigned NOT NULL, + `synonyms` varchar(500) DEFAULT '', + PRIMARY KEY (`id_attribute`), + UNIQUE KEY `id_attribute_UNIQUE` (`id_attribute`), + UNIQUE KEY `attribute_text_UNIQUE` (`text`,`id_taxonomy`), + KEY `attribute_id_taxonomy_foreign` (`id_taxonomy`), + CONSTRAINT `attribute_id_taxonomy_foreign` FOREIGN KEY (`id_taxonomy`) REFERENCES `taxonomy` (`id_taxonomy`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=112 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `attribute` +-- + +LOCK TABLES `attribute` WRITE; +/*!40000 ALTER TABLE `attribute` DISABLE KEYS */; +INSERT INTO `attribute` VALUES (1,'Integrity Protection Assets','1539.6977208359122','828.406523846749',NULL,NULL,'2982.356969925021','-2285.019961769441','-864.2180305371212',NULL,NULL,NULL,0,1,''),(2,'Behavior','362.03679880998527','70.61697033346249',NULL,NULL,'-4105.754594713023','2970.805490853027','520.6240466093806',NULL,NULL,NULL,0,1,''),(3,'Data','360.50599492453625','156.00928187629017',NULL,NULL,'-5002.920658104225','2416.7437462541925','-667.9458699193781',NULL,NULL,NULL,0,1,''),(4,'Data and behavior','363.56267226780255','233.77468381901463',NULL,NULL,'-3116.814622838809','2150.293659766716','-739.4750876543186',NULL,NULL,NULL,0,1,''),(5,'Representation','328.44175759223543','432.6782494091842','-706.6576875701488','-609.3344062416174','-5631.8223863130315','-700.1480012803709','232.8933266727454','-2297.307274575899','1861.2451999882087','251.40799472895628',1,1,''),(6,'Static','1020.112697296182','169.14810291408673',NULL,NULL,'-753.8117777226684','2672.900536068831','55.5562648093229',NULL,NULL,NULL,0,1,''),(7,'In memory','1035.9341191918215','319.5410718472651',NULL,NULL,'-859.8475232068192','1419.0143417630459','1049.9932319804325',NULL,NULL,NULL,0,1,''),(8,'In execution','1036.422207754128','515.8949411042306',NULL,NULL,'-525.1480844836708','-997.8604194722125','-515.3976828985001',NULL,NULL,NULL,0,1,''),(9,'Code invariants','1473.5597140112222','232.10834584752325',NULL,NULL,'206.51897236227046','1964.5856119335288','1212.8380148609385',NULL,NULL,NULL,0,1,''),(10,'Data invariants','1475.0087028973157','391.5997213615837',NULL,NULL,'1584.2972884243895','1107.9452114293008','596.1960385203179',NULL,NULL,NULL,0,1,''),(11,'Trace','1476.9101394936774','659.8362915899118',NULL,NULL,'1414.656335785149','-1776.66513018276','-191.61968505004643',NULL,NULL,NULL,0,1,''),(12,'Timed trace','1652.9485817795407','661.3853305327655',NULL,NULL,'2706.2310058466305','-505.4745310046228','-577.2241671516888',NULL,NULL,NULL,0,1,''),(13,'HW counters','1477.121572065918','520.1881886758251',NULL,NULL,'1194.9742695396158','65.74160947273646','-137.41344005045494',NULL,NULL,NULL,0,1,''),(14,'Granularity','327.83669869646576','674.855512732843','-686.6596563047685','-281.3360728952638','-4849.209350403896','-1872.1017791288107','20.015773720053858','2750.4431883226216','-2948.6211902334258','-502.6910289016656',1,1,''),(15,'Instructions','593.8761270678542','600.541071847265',NULL,NULL,'-3677.00212371179','-2059.3275936855316','-1231.9318958901586',NULL,NULL,NULL,0,1,''),(16,'BB','1696.8048303141118','828.2885674277604',NULL,NULL,'2143.4276500237497','-2464.144864036762','-1036.6394584036368',NULL,NULL,NULL,0,1,''),(17,'Function','576.3228150877201','672.3462308565527',NULL,NULL,'-3825.8952008628225','-2536.6896428436626','-495.4057692218644',NULL,NULL,NULL,0,1,''),(18,'Slice','560.9285313738394','752.36643808501',NULL,NULL,'-3435.1692734008243','-2081.4646016536462','1249.2503410645315',NULL,NULL,NULL,0,1,''),(19,'Application','590.1813644885203','825.9356842563209',NULL,NULL,'-3659.547946100021','-2773.817578816789','732.0912311726131',NULL,NULL,NULL,0,1,''),(20,'Lifecycle activity','499.43222543214654','296.8923115428277','-690.6616875388991','-767.670541636393','-4688.243193111236','110.89828167666965','-422.7101612981819','3088.7134093484487','338.8041040030753','-411.428475846131',1,1,''),(21,'Pre-compile','727.983737113648','68.90956051470602',NULL,NULL,'-2098.4675273781886','1903.2747623767602','708.8565788744929',NULL,NULL,NULL,0,1,''),(22,'Compile','708.0208646188082','143.38072880030973',NULL,NULL,'-2060.668061605252','1333.5185979024836','700.4689784693802',NULL,NULL,NULL,0,1,''),(23,'Post-compile','733.842286514448','211.20478025735315',NULL,NULL,'-2417.367759420388','1072.6497859901137','-40.15143208390509',NULL,NULL,NULL,0,1,''),(24,'Load','693.7813361339005','366.75480528573263',NULL,NULL,'-2148.2653425899725','-308.27053657036','59.54550985321248',NULL,NULL,NULL,0,1,''),(25,'Run','695.4851303057279','438.1278956856295',NULL,NULL,'-2078.8620483112054','-1015.7537643835454','82.76219647055268',NULL,NULL,NULL,0,1,''),(26,'Not root','474.7266028589015','454.7732747885879','','',NULL,NULL,NULL,NULL,NULL,NULL,0,1,''),(27,'Attack','959.3360043758585','256.6619190499381','-323.9978125170894','-482.6650312627768','-560.3840244102373','102.1552480434342','-956.7462882957757','-1043.6553421224908','633.6478862886546','4.547473508864641e-13',1,1,''),(28,'Binary ','813.3219621018261','142.03790265880497',NULL,NULL,'-669.670563198074','778.7013671716411','-1338.7442185818304',NULL,NULL,NULL,0,1,''),(29,'Process memory','959.7840594430213','141.03790265880497',NULL,NULL,'-94.03937291157544','-1336.7099182805853','1261.323300421252',NULL,NULL,NULL,0,1,''),(30,'Runtime data','1103.0008419920632','139.4152452627283',NULL,NULL,'-1286.5345978331447','-12.458919208386305','-1284.887427267443',NULL,NULL,NULL,0,1,''),(31,'Control flow','1307.8590227685681','140.11370797641482',NULL,NULL,'613.0758806397226','625.6623474191132','-1220.5401846641005',NULL,NULL,NULL,0,1,''),(32,'Measure','822.3942993388207','398.0985353391625','-987.9939687971188','-766.6627500305989','-1540.1203017455578','164.35563430566253','519.8406371279184','-2885.666024652709','-362.649687924208','366.3875195434952',1,1,''),(33,'Local','1058.8113585010585','322.5760338996515',NULL,NULL,'414.01249022013945','650.3924349711187','217.48400016653432',NULL,NULL,NULL,0,1,''),(34,'Remote','1059.2995836339228','397.4551551031491',NULL,NULL,'491.74632812015005','97.3780742973924','-123.8359011677826',NULL,NULL,NULL,0,1,''),(35,'Monitor','397.4089459471961','325.089115445454',NULL,NULL,'-3569.5793861554353','1840.7840486857215','360.30867064656013',NULL,NULL,NULL,0,1,''),(36,'State inspection','114.41025262586263','125.35572945139711',NULL,NULL,'-5341.030340064095','2669.721222390146','-724.4818029428425',NULL,NULL,NULL,0,1,''),(37,'Introspection','111.15191089189352','325.71535517567395',NULL,NULL,'-4970.62799052557','1395.0657686414263','-235.261091445313',NULL,NULL,NULL,0,1,''),(38,'Response','401.9031877055812','205.79764502657298',NULL,NULL,'-2593.6039171763614','2544.8218260668036','-759.650458124624',NULL,NULL,NULL,0,1,''),(39,'Proactive','279.9316064436389','104.33039620209587',NULL,NULL,'-3372.016016595666','3430.1408603523755','-464.66544817688964',NULL,NULL,NULL,0,1,''),(40,'Postmortem','1771.8697013097888','610.6056002594439',NULL,NULL,'-5498.445586366219','-3168.741296759451','-466.7710346363615',NULL,NULL,NULL,0,1,''),(41,'Transformation','579.4856117755306','200.08131819475398',NULL,NULL,'-674.7676646465982','2349.977089886205','-139.82051733421395',NULL,NULL,NULL,0,1,''),(42,'Manual','528.6373636104923','94.95101950454278',NULL,NULL,'-921.5490625752307','3398.8951229358577','-479.87542564422074',NULL,NULL,NULL,0,1,''),(43,'Automatic','646.6729465958057','94.38822513286442',NULL,NULL,'127.94846090778958','3219.9382164220856','20.700303685751805',NULL,NULL,NULL,0,1,''),(44,'Check','822.6077972507001','214.9154365192295',NULL,NULL,'1837.275949199416','2425.3707306235287','-191.4718377402669',NULL,NULL,NULL,0,1,''),(45,'Checksum','771.7595490856617','92.67969555174551',NULL,NULL,'1281.3745416615216','2879.8359194492364','723.2800076185517',NULL,NULL,NULL,0,1,''),(46,'Signature','888.2121912332129','91.9711659706266',NULL,NULL,'2246.4861157601076','2810.5915954973075','942.1178163301893',NULL,NULL,NULL,0,1,''),(47,'Equation eval','1038.916010867478','91.97116597062654',NULL,NULL,'4753.967841269285','3722.180629086103','-665.6491212581645',NULL,NULL,NULL,0,1,''),(48,'Majority vote','1218.5593911034905','91.97116597062654',NULL,NULL,'5182.609118082028','2736.231141284869','551.5771540960122',NULL,NULL,NULL,0,1,''),(49,'Access control','1390.9515938527904','92.49366741013745',NULL,NULL,'6003.849502008718','2344.8187915623075','899.7533214767686',NULL,NULL,NULL,0,1,''),(50,'Hardening','1054.1773981587537','233.30455196468347',NULL,NULL,'3255.87157917825','840.7435575967074','88.59670625233503',NULL,NULL,NULL,0,1,''),(51,'Cyclic checks','1554.377556140925','237.23018137981813',NULL,NULL,'5319.912403964804','1727.0256279508856','111.736167113791',NULL,NULL,NULL,0,1,''),(52,'Mutation','1559.594457320991','315.1185238230755',NULL,NULL,'4730.551295434692','949.487537634357','746.8857972408391',NULL,NULL,NULL,0,1,''),(53,'Code concealment','1569.0826824538556','405.01779149265667',NULL,NULL,'5356.577880976774','409.08695466782','279.84508938293175',NULL,NULL,NULL,0,1,''),(54,'Cloning','1572.591054052804','495.4798535339163',NULL,NULL,'5418.041195227526','-113.16968086050889','220.2466009992163',NULL,NULL,NULL,0,1,''),(55,'Layered interpretation','1596.5637433394631','572.0876507846166',NULL,NULL,'5193.809046312347','-656.3386097542594','748.8403578656307',NULL,NULL,NULL,0,1,''),(56,'Block chain','1771.4704534387163','673.421241952652',NULL,NULL,'-6603.287282993331','-3590.335405994925','-415.31175748802025',NULL,NULL,NULL,0,1,''),(57,'Overhead','392.70302972341','398.33411832447575','-989.3283021226397','-621.3320208435873','-3111.5808170396704','-114.66231598591185','866.8210719505937','164.35378747602084','1134.055950173481','-753.9175926735629',1,1,''),(58,'Fair','207.52692883344275','644.5330491564459',NULL,NULL,'-5469.649462165422','-1106.5081701160102','688.9308524708213',NULL,NULL,NULL,0,1,''),(59,'Medium','295.36666614110965','645.6617658754263',NULL,NULL,'-4962.526245694544','-1110.5939508533318','750.2335288606791',NULL,NULL,NULL,0,1,''),(60,'High','389.8140466819174','645.4469216878636',NULL,NULL,'-4466.411357115115','-1226.125726118128','787.2822971600735',NULL,NULL,NULL,0,1,''),(61,'N/A','462.1906142580392','645.0880462774242',NULL,NULL,'-3918.0005729833483','-1244.1277199837466','842.8111976052214',NULL,NULL,NULL,0,1,''),(62,'Trust anchor','823.4620620412592','517.1450028790218','-982.6596771379395','-383.9977500175782','-1852.7437633603195','-1111.1540361743937','-97.31951956107605','-1496.7187517790915','-1076.584406805348','1016.42713987056',1,1,''),(63,'TPM','909.5379379587403','642.5063325898627',NULL,NULL,'-1184.9044012773659','-1789.3336295065346','572.4938645051229',NULL,NULL,NULL,0,1,''),(64,'SGX','980.3626363895075','643.5063325898627',NULL,NULL,'-760.1823260827139','-1683.7777345675374','-319.8366899296602',NULL,NULL,NULL,0,1,''),(65,'Other','1052.3129235636318','646.3605973804222',NULL,NULL,'-294.31717100375323','-1603.1064742755818','528.323654467245',NULL,NULL,NULL,0,1,''),(66,'None','1685.7202051212796','673.8820213167838',NULL,NULL,'-8858.024127630688','-3467.2103127353244','-1518.0462141048988',NULL,NULL,NULL,0,1,''),(67,'Protection level','1270.8615880947477','521.2101522241273','-994.6595208891601','-281.33211459285496','996.9534648630378','-1705.7452487059247','512.4409064068868','-2534.5247518544247','256.0799143751864','-203.61227561712337',1,1,''),(68,'Internal','1452.7375791730985','676.6296638716772',NULL,NULL,'-7748.085581592561','-3476.806033232715','-1364.4036208165571',NULL,NULL,NULL,0,1,''),(69,'External','1343.6705318924207','673.6840866444072',NULL,NULL,'2529.0218352225365','-3007.2567771414238','285.6644084838954',NULL,NULL,NULL,0,1,''),(70,'Hypervisor','1203.9431625238847','673.7404915861159',NULL,NULL,'1583.1531063878915','-2645.529174665351','703.9929349935978',NULL,NULL,NULL,0,1,''),(71,'Software','704.4976450265727','642.7900057580437',NULL,NULL,'-2797.358495533419','-2152.495606294804','-225.68108123829825',NULL,NULL,NULL,0,1,''),(72,'Reverse engineering','475.2492122594372','254.81217069010142','-322.6662604198401','-776.0002187482914','-150.57370347755636','-715.1167132090086','-15.635084340648746','-197.80873206507522','-917.9333817485949','326.9834909860764',1,1,''),(73,'Attacker','475.12476237623423','368.1895132940248','-326.9977708507478','-283.333645830892','1144.1859704610501','240.24312276877822','-194.02308367976838','1024.0980845461536','-88.9569907091659','-1366.4392732671088',1,1,''),(78,'Call interposition','1150.347996774703','256.8145864563514',NULL,NULL,'-614.6855742024392','69.78717798899197','172.16880717031245',NULL,NULL,NULL,0,1,''),(79,'Disassembler','119.12950183558092','125.83901894908689',NULL,NULL,'-1995.7698478480065','-1269.2143260974635','-850.0941495725112',NULL,NULL,NULL,0,1,''),(80,'Tools','201.9306181258629','254.34923135684323','-325.33287500358057','-623.9985312614746','-1164.2709035330786','-836.8747820341652','-862.5478927977981','-1342.1191295012839','-114.96057988172356','-15.715835268157775',1,1,''),(81,'Debugger','241.45788738087992','128.4616763451635',NULL,NULL,'-898.1664589407969','-1951.0450139459258','-746.8683106090873',NULL,NULL,NULL,0,1,''),(82,'Tracer','340.07987666203144','127.12817980870784',NULL,NULL,'-1551.0856659947635','-478.5743355733096','-1242.1773531332879',NULL,NULL,NULL,0,1,''),(83,'Emulator','201.89365167201254','367.6398348095756',NULL,NULL,'-1150.7311957570096','-1400.1755468659949','217.24970035778017',NULL,NULL,NULL,0,1,''),(84,'Discovery','728.1518947222971','328.72709096376013','-320.002354148275','-889.3320416767579','134.6578654717242','-290.1059399368047','911.8235960463293','-107.54154854705472','-1454.515798633701','553.3090234561244',1,1,''),(85,'Pattern matching','728.5292554630064','453.4778093963763',NULL,NULL,'1037.20466085537','-142.0301624518263','1259.2820528498744',NULL,NULL,NULL,0,1,''),(86,'Taint analysis','919.9380630792848','451.93938973457784',NULL,NULL,'647.4909578714954','-571.3963813086439','1710.4840235215438',NULL,NULL,NULL,0,1,''),(87,'Graph-based analysis','1111.657682390608','453.1489477500765',NULL,NULL,'696.823432627275','-1526.425663903857','1189.8850144020796',NULL,NULL,NULL,0,1,''),(88,'Symbolic execution','1334.992734564465','451.1965639504301',NULL,NULL,'662.2672080618793','-1189.9103668925495','887.5497529647132',NULL,NULL,NULL,0,1,''),(89,'Dongle','823.9502871741241','643.352800129722',NULL,NULL,'-1758.2619761800556','-1832.5148037505676','517.4632417765356',NULL,NULL,NULL,0,1,''),(90,'Self-check','1567.733584648006','676.368986962789',NULL,NULL,'2254.929586909267','-2091.1030565912292','640.2494531206704',NULL,NULL,NULL,0,1,''),(91,'Hash chain','1550.609501237264','159.10961673256747',NULL,NULL,'5428.823081049158','-1392.7422049872685','622.1884914602401',NULL,NULL,NULL,0,1,''),(92,'Reactive','401.9542072101243','101.19895170523972',NULL,NULL,'-2156.9317741090754','3388.5632998016813','29.848118994063952',NULL,NULL,NULL,0,1,''),(93,'Asset','99.22342242131162','154.6749624574304','-686.6576250706369','-890.6693853954267','-4808.952804641889','1030.5020433257075','5.0788317295755405','3129.4424613034453','-1133.9728517827305','-488.9199597681988',1,1,''),(94,'Link','693.5984849922603','296.93075382868955',NULL,NULL,'-2652.1505220442427','412.8804880622755','131.98179481604484',NULL,NULL,NULL,0,1,''),(95,'Basic block','589.3599425928796','523.6192711996905',NULL,NULL,'-5634.276242050955','-2183.7509211360775','698.4873866131952',NULL,NULL,NULL,0,1,''); +/*!40000 ALTER TABLE `attribute` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `dimension` +-- + +DROP TABLE IF EXISTS `dimension`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `dimension` ( + `id_dimension` int(11) unsigned NOT NULL AUTO_INCREMENT, + `text` varchar(50) NOT NULL, + `x` varchar(50) DEFAULT '', + `y` varchar(50) DEFAULT '', + `xMajor` varchar(50) DEFAULT '', + `yMajor` varchar(50) DEFAULT '', + `id_taxonomy` int(11) unsigned NOT NULL, + PRIMARY KEY (`id_dimension`), + UNIQUE KEY `id_dimension_UNIQUE` (`id_dimension`), + UNIQUE KEY `dimension_text_UNIQUE` (`text`,`id_taxonomy`), + KEY `dimension_id_taxonomy_foreign` (`id_taxonomy`), + CONSTRAINT `dimension_id_taxonomy_foreign` FOREIGN KEY (`id_taxonomy`) REFERENCES `taxonomy` (`id_taxonomy`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `dimension` +-- + +LOCK TABLES `dimension` WRITE; +/*!40000 ALTER TABLE `dimension` DISABLE KEYS */; +INSERT INTO `dimension` VALUES (1,'System view','','','','',1),(2,'Attack view','','','','',1),(3,'Defense view','','','','',1),(4,'Interdimensional view','','','','',1); +/*!40000 ALTER TABLE `dimension` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `mapping` +-- + +DROP TABLE IF EXISTS `mapping`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `mapping` ( + `id_mapping` int(10) unsigned NOT NULL AUTO_INCREMENT, + `id_paper` int(11) unsigned NOT NULL, + `id_attribute` int(11) unsigned NOT NULL, + `occurrenceCount` int(20) DEFAULT '1', + PRIMARY KEY (`id_paper`,`id_attribute`), + UNIQUE KEY `id_mapping_UNIQUE` (`id_mapping`), + KEY `mapping_id_attribute_foreign` (`id_attribute`), + KEY `mapping_id_mapping` (`id_mapping`), + CONSTRAINT `mapping_id_attribute_foreign` FOREIGN KEY (`id_attribute`) REFERENCES `attribute` (`id_attribute`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=678 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `mapping` +-- + +LOCK TABLES `mapping` WRITE; +/*!40000 ALTER TABLE `mapping` DISABLE KEYS */; +INSERT INTO `mapping` VALUES (1,1,2,1),(87,1,11,1),(103,1,15,1),(166,1,23,1),(199,1,26,1),(255,1,31,1),(265,1,33,1),(314,1,36,1),(360,1,39,1),(441,1,43,1),(531,1,58,1),(588,1,66,1),(628,1,68,1),(2,2,2,1),(62,2,9,1),(107,2,16,1),(167,2,23,1),(225,2,29,1),(266,2,33,1),(338,2,37,1),(361,2,39,1),(409,2,42,1),(458,2,45,1),(478,2,46,1),(503,2,53,1),(560,2,61,1),(589,2,66,1),(629,2,68,1),(3,3,2,1),(63,3,9,1),(108,3,16,1),(168,3,23,1),(201,3,26,1),(226,3,29,1),(268,3,33,1),(339,3,37,1),(363,3,39,1),(442,3,43,1),(459,3,45,1),(495,3,51,1),(505,3,53,1),(547,3,59,1),(591,3,66,1),(631,3,68,1),(4,4,2,1),(41,4,3,1),(51,4,4,1),(64,4,9,1),(137,4,19,1),(169,4,23,1),(227,4,29,1),(300,4,34,1),(340,4,37,1),(364,4,39,1),(443,4,43,1),(491,4,49,1),(511,4,55,1),(532,4,58,1),(585,4,64,1),(651,4,69,1),(5,5,2,1),(89,5,11,1),(105,5,15,1),(257,5,31,1),(269,5,33,1),(316,5,36,1),(365,5,39,1),(444,5,43,1),(561,5,61,1),(592,5,66,1),(652,5,69,1),(6,6,2,1),(42,6,3,1),(52,6,4,1),(65,6,9,1),(116,6,17,1),(170,6,23,1),(202,6,26,1),(228,6,29,1),(270,6,33,1),(317,6,36,1),(366,6,39,1),(445,6,43,1),(492,6,49,1),(512,6,55,1),(522,6,56,1),(553,6,60,1),(586,6,65,1),(671,6,70,1),(7,7,2,1),(54,7,6,1),(138,7,19,1),(171,7,23,1),(205,7,26,1),(218,7,28,1),(273,7,33,1),(341,7,37,1),(369,7,39,1),(412,7,42,1),(479,7,46,1),(564,7,61,1),(595,7,66,1),(653,7,69,1),(8,8,2,1),(66,8,9,1),(109,8,16,1),(172,8,23,1),(229,8,29,1),(274,8,33,1),(342,8,37,1),(370,8,39,1),(413,8,42,1),(460,8,45,1),(496,8,51,1),(554,8,60,1),(596,8,66,1),(634,8,68,1),(9,9,2,1),(90,9,11,1),(130,9,18,1),(163,9,22,1),(249,9,30,1),(258,9,31,1),(275,9,33,1),(320,9,36,1),(371,9,39,1),(414,9,42,1),(565,9,61,1),(597,9,66,1),(635,9,68,1),(10,10,2,1),(139,10,19,1),(173,10,23,1),(206,10,26,1),(276,10,33,1),(343,10,37,1),(372,10,39,1),(415,10,42,1),(493,10,49,1),(513,10,55,1),(533,10,58,1),(598,10,66,1),(672,10,70,1),(11,11,2,1),(55,11,6,1),(117,11,17,1),(197,11,25,1),(219,11,28,1),(301,11,34,1),(373,11,39,1),(447,11,43,1),(500,11,52,1),(534,11,58,1),(599,11,66,1),(654,11,69,1),(12,12,2,1),(56,12,6,1),(110,12,16,1),(220,12,28,1),(277,12,33,1),(344,12,37,1),(374,12,39,1),(416,12,42,1),(485,12,48,1),(566,12,61,1),(600,12,66,1),(636,12,68,1),(13,13,2,1),(57,13,6,1),(140,13,19,1),(174,13,23,1),(207,13,26,1),(221,13,28,1),(302,13,34,1),(345,13,37,1),(375,13,39,1),(417,13,42,1),(461,13,45,1),(567,13,61,1),(601,13,66,1),(655,13,69,1),(14,14,2,1),(45,14,3,1),(53,14,4,1),(67,14,9,1),(141,14,19,1),(156,14,21,1),(230,14,29,1),(278,14,33,1),(346,14,37,1),(376,14,39,1),(418,14,42,1),(462,14,45,1),(514,14,55,1),(523,14,56,1),(535,14,58,1),(579,14,63,1),(673,14,70,1),(15,15,2,1),(118,15,17,1),(175,15,23,1),(279,15,33,1),(347,15,37,1),(377,15,39,1),(419,15,42,1),(515,15,55,1),(548,15,59,1),(602,15,66,1),(674,15,70,1),(16,16,2,1),(68,16,9,1),(111,16,16,1),(177,16,23,1),(231,16,29,1),(280,16,33,1),(348,16,37,1),(379,16,39,1),(421,16,42,1),(497,16,51,1),(516,16,55,1),(536,16,58,1),(604,16,66,1),(637,16,68,1),(17,17,2,1),(69,17,9,1),(112,17,16,1),(178,17,23,1),(196,17,24,1),(232,17,29,1),(281,17,33,1),(349,17,37,1),(380,17,39,1),(422,17,42,1),(463,17,45,1),(498,17,51,1),(501,17,52,1),(517,17,55,1),(537,17,58,1),(605,17,66,1),(638,17,68,1),(18,18,2,1),(70,18,9,1),(131,18,18,1),(179,18,23,1),(233,18,29,1),(282,18,33,1),(350,18,37,1),(381,18,39,1),(423,18,42,1),(464,18,45,1),(569,18,61,1),(606,18,66,1),(639,18,68,1),(19,19,2,1),(83,19,10,1),(120,19,17,1),(157,19,21,1),(251,19,30,1),(283,19,33,1),(322,19,36,1),(382,19,39,1),(424,19,42,1),(487,19,48,1),(499,19,51,1),(570,19,61,1),(607,19,66,1),(640,19,68,1),(20,20,2,1),(91,20,11,1),(113,20,16,1),(132,20,18,1),(180,20,23,1),(259,20,31,1),(284,20,33,1),(323,20,36,1),(383,20,39,1),(425,20,42,1),(509,20,54,1),(555,20,60,1),(608,20,66,1),(641,20,68,1),(21,21,2,1),(96,21,12,1),(142,21,19,1),(181,21,23,1),(234,21,29,1),(304,21,34,1),(324,21,36,1),(384,21,39,1),(448,21,43,1),(465,21,45,1),(556,21,60,1),(609,21,66,1),(657,21,69,1),(22,22,2,1),(97,22,12,1),(143,22,19,1),(182,22,23,1),(235,22,29,1),(305,22,34,1),(325,22,36,1),(385,22,39,1),(449,22,43,1),(466,22,45,1),(549,22,59,1),(610,22,66,1),(658,22,69,1),(23,23,2,1),(92,23,11,1),(144,23,19,1),(158,23,21,1),(260,23,31,1),(306,23,34,1),(326,23,36,1),(407,23,40,1),(450,23,43,1),(467,23,45,1),(480,23,46,1),(488,23,48,1),(524,23,56,1),(550,23,59,1),(611,23,66,1),(642,23,68,1),(24,24,2,1),(71,24,9,1),(133,24,18,1),(164,24,22,1),(236,24,29,1),(285,24,33,1),(351,24,37,1),(386,24,39,1),(451,24,43,1),(468,24,45,1),(518,24,55,1),(571,24,61,1),(612,24,66,1),(643,24,68,1),(25,25,2,1),(72,25,9,1),(145,25,19,1),(183,25,23,1),(237,25,29,1),(286,25,33,1),(352,25,37,1),(387,25,39,1),(426,25,42,1),(469,25,45,1),(525,25,56,1),(580,25,63,1),(659,25,69,1),(26,26,2,1),(58,26,6,1),(146,26,19,1),(184,26,23,1),(210,26,26,1),(222,26,28,1),(287,26,33,1),(353,26,37,1),(390,26,39,1),(427,26,42,1),(481,26,46,1),(572,26,61,1),(614,26,66,1),(662,26,69,1),(27,27,2,1),(73,27,9,1),(147,27,19,1),(185,27,23,1),(211,27,26,1),(238,27,29,1),(288,27,33,1),(354,27,37,1),(391,27,39,1),(454,27,43,1),(470,27,45,1),(482,27,46,1),(519,27,55,1),(573,27,61,1),(615,27,66,1),(663,27,69,1),(28,28,2,1),(93,28,11,1),(122,28,17,1),(161,28,21,1),(261,28,31,1),(289,28,33,1),(392,28,39,1),(428,28,42,1),(510,28,54,1),(574,28,61,1),(616,28,66,1),(644,28,68,1),(29,29,2,1),(74,29,9,1),(135,29,18,1),(198,29,25,1),(239,29,29,1),(290,29,33,1),(355,29,37,1),(393,29,39,1),(455,29,43,1),(502,29,52,1),(506,29,53,1),(551,29,59,1),(617,29,66,1),(645,29,68,1),(30,30,2,1),(101,30,13,1),(186,30,23,1),(212,30,26,1),(262,30,31,1),(291,30,33,1),(329,30,36,1),(394,30,39,1),(429,30,42,1),(484,30,47,1),(527,30,56,1),(539,30,58,1),(582,30,63,1),(646,30,68,1),(31,31,2,1),(98,31,12,1),(123,31,17,1),(187,31,23,1),(309,31,34,1),(330,31,36,1),(395,31,39,1),(430,31,42,1),(471,31,45,1),(575,31,61,1),(618,31,66,1),(664,31,69,1),(32,32,2,1),(75,32,9,1),(148,32,19,1),(188,32,23,1),(240,32,29,1),(292,32,33,1),(331,32,36,1),(396,32,39,1),(431,32,42,1),(472,32,45,1),(520,32,55,1),(528,32,56,1),(540,32,58,1),(587,32,65,1),(675,32,70,1),(33,33,2,1),(60,33,6,1),(124,33,17,1),(191,33,23,1),(215,33,26,1),(241,33,29,1),(311,33,34,1),(357,33,37,1),(399,33,39,1),(433,33,42,1),(530,33,56,1),(543,33,58,1),(584,33,63,1),(676,33,70,1),(34,34,2,1),(76,34,9,1),(125,34,17,1),(192,34,23,1),(242,34,29,1),(295,34,33,1),(358,34,37,1),(400,34,39,1),(434,34,42,1),(474,34,45,1),(507,34,53,1),(558,34,60,1),(621,34,66,1),(648,34,68,1),(35,35,2,1),(99,35,12,1),(126,35,17,1),(193,35,23,1),(312,35,34,1),(334,35,36,1),(401,35,39,1),(435,35,42,1),(475,35,45,1),(544,35,58,1),(622,35,66,1),(667,35,69,1),(36,36,2,1),(77,36,9,1),(100,36,12,1),(102,36,13,1),(127,36,17,1),(162,36,21,1),(243,36,29,1),(296,36,33,1),(335,36,36,1),(402,36,39,1),(436,36,42,1),(577,36,61,1),(623,36,66,1),(668,36,69,1),(37,37,2,1),(61,37,6,1),(136,37,18,1),(165,37,22,1),(217,37,26,1),(224,37,28,1),(297,37,33,1),(337,37,36,1),(404,37,39,1),(438,37,42,1),(559,37,60,1),(625,37,66,1),(649,37,68,1),(38,38,2,1),(78,38,9,1),(115,38,16,1),(194,38,23,1),(244,38,29,1),(298,38,33,1),(405,38,39,1),(439,38,42,1),(476,38,45,1),(508,38,53,1),(552,38,59,1),(626,38,66,1),(650,38,68,1),(39,39,2,1),(79,39,9,1),(152,39,19,1),(195,39,23,1),(245,39,29,1),(299,39,33,1),(359,39,37,1),(406,39,39,1),(440,39,42,1),(477,39,45,1),(521,39,55,1),(545,39,58,1),(627,39,66,1),(670,39,69,1),(677,39,70,1),(40,40,3,1),(88,40,11,1),(104,40,15,1),(128,40,18,1),(153,40,21,1),(200,40,26,1),(246,40,30,1),(256,40,31,1),(267,40,33,1),(315,40,36,1),(362,40,39,1),(410,40,42,1),(490,40,49,1),(504,40,53,1),(546,40,59,1),(590,40,66,1),(630,40,68,1),(43,41,3,1),(80,41,10,1),(129,41,18,1),(154,41,21,1),(203,41,26,1),(247,41,30,1),(271,41,33,1),(318,41,36,1),(367,41,39,1),(446,41,43,1),(562,41,61,1),(593,41,66,1),(632,41,68,1),(44,42,3,1),(81,42,10,1),(106,42,15,1),(155,42,21,1),(204,42,26,1),(248,42,30,1),(272,42,33,1),(319,42,36,1),(368,42,39,1),(411,42,42,1),(563,42,61,1),(594,42,66,1),(633,42,68,1),(46,43,3,1),(82,43,10,1),(119,43,17,1),(176,43,23,1),(208,43,26,1),(250,43,30,1),(303,43,34,1),(321,43,36,1),(378,43,39,1),(420,43,42,1),(486,43,48,1),(568,43,61,1),(603,43,66,1),(656,43,69,1),(47,44,3,1),(84,44,10,1),(121,44,17,1),(159,44,21,1),(252,44,30,1),(307,44,34,1),(327,44,36,1),(388,44,39,1),(452,44,43,1),(557,44,60,1),(613,44,66,1),(660,44,69,1),(48,45,3,1),(85,45,10,1),(134,45,18,1),(160,45,21,1),(209,45,26,1),(253,45,30,1),(308,45,34,1),(328,45,36,1),(389,45,39,1),(453,45,43,1),(483,45,47,1),(526,45,56,1),(538,45,58,1),(581,45,63,1),(661,45,69,1),(49,46,3,1),(59,46,6,1),(149,46,19,1),(223,46,28,1),(310,46,34,1),(356,46,37,1),(408,46,40,1),(432,46,42,1),(473,46,45,1),(529,46,56,1),(576,46,61,1),(583,46,63,1),(665,46,69,1),(50,47,3,1),(86,47,10,1),(151,47,19,1),(216,47,26,1),(254,47,30,1),(313,47,34,1),(336,47,36,1),(403,47,39,1),(437,47,42,1),(489,47,48,1),(578,47,61,1),(624,47,66,1),(669,47,69,1),(94,48,11,1),(114,48,16,1),(189,48,23,1),(213,48,26,1),(263,48,31,1),(293,48,33,1),(332,48,36,1),(397,48,39,1),(456,48,43,1),(541,48,58,1),(619,48,66,1),(647,48,68,1),(95,49,11,1),(150,49,19,1),(190,49,23,1),(214,49,26,1),(264,49,31,1),(294,49,33,1),(333,49,36,1),(398,49,39,1),(457,49,43,1),(494,49,49,1),(542,49,58,1),(620,49,66,1),(666,49,69,1); +/*!40000 ALTER TABLE `mapping` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `paper` +-- + +DROP TABLE IF EXISTS `paper`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `paper` ( + `id_paper` int(10) unsigned NOT NULL AUTO_INCREMENT, + `citation` varchar(100) NOT NULL, + `bib` mediumtext, + `referenceCount` int(20) DEFAULT '0', + `author` varchar(500) DEFAULT '', + `keywords` varchar(500) DEFAULT '', + PRIMARY KEY (`id_paper`), + UNIQUE KEY `id_paper_UNIQUE` (`id_paper`) +) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `paper` +-- + +LOCK TABLES `paper` WRITE; +/*!40000 ALTER TABLE `paper` DISABLE KEYS */; +INSERT INTO `paper` VALUES (1,'abadi2005control','{\"author\": \"Abadi, Mart{\\\\\'\\\\i}n and Budiu, Mihai and Erlingsson, Ulfar and Ligatti, Jay\", \"booktitle\": \"Proceedings of the 12th ACM conference on Computer and communications security\", \"title\": \"Control-flow integrity\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2005\", \"organization\": \"ACM\", \"ID\": \"abadi2005control\", \"pages\": \"340--353\"}',5,'',''),(2,'aucsmith1996tamper','{\"isbn\": \"3-540-61996-8\", \"title\": \"Tamper resistant software: An implementation\", \"journal\": \"Proceedings of the First International Workshop on Information Hiding\", \"author\": \"Aucsmith, David\", \"ENTRYTYPE\": \"article\", \"mendeley-groups\": \"Tamperproofing,Tamperproofing/Methods\", \"link\": \"http://link.springer.com/chapter/10.1007/3-540-61996-8{\\\\_}49\", \"year\": \"1996\", \"ID\": \"aucsmith1996tamper\", \"pages\": \"317--333\"}',161,'',''),(3,'banescu2017detecting','{\"doi\": \"10.1145/3029806.3029835\", \"isbn\": \"978-1-4503-4523-1/17/03\", \"title\": \"Detecting Patching of Executables without System Calls\", \"booktitle\": \"Proceedings of the Conference on Data and Application Security and Privacy\", \"author\": \"Banescu, Sebastian and Ahmadvand, Mohsen and Pretschner, Alexander and Shield, Robert and Hamilton, Chris\", \"ID\": \"banescu2017detecting\", \"year\": \"2017\", \"ENTRYTYPE\": \"inproceedings\"}',0,'',''),(4,'baumann2015shielding','{\"publisher\": \"ACM\", \"author\": \"Baumann, Andrew and Peinado, Marcus and Hunt, Galen\", \"journal\": \"ACM Transactions on Computer Systems (TOCS)\", \"title\": \"Shielding applications from an untrusted cloud with haven\", \"number\": \"3\", \"ENTRYTYPE\": \"article\", \"volume\": \"33\", \"year\": \"2015\", \"ID\": \"baumann2015shielding\", \"pages\": \"8\"}',0,'',''),(5,'Blietz2006','{\"doi\": \"10.1007/11787952_12\", \"isbn\": \"3540359982\", \"author\": \"Blietz, Brian and Tyagi, Akhilesh\", \"journal\": \"Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)\", \"issn\": \"16113349\", \"ENTRYTYPE\": \"article\", \"volume\": \"3919 LNCS\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Blietz, Tyagi/Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)/Blietz, Tyagi - 2006 - Software tamper resistance through dynamic program monitoring.pdf:pdf\", \"year\": \"2006\", \"title\": \"Software tamper resistance through dynamic program monitoring\", \"ID\": \"Blietz2006\", \"pages\": \"146--163\"}',5,'',''),(6,'brasser2015tytan','{\"author\": \"Brasser, Ferdinand and El Mahjoub, Brahim and Sadeghi, Ahmad-Reza and Wachsmann, Christian and Koeberl, Patrick\", \"booktitle\": \"2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC)\", \"title\": \"TyTAN: tiny trust anchor for tiny devices\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"brasser2015tytan\", \"pages\": \"1--6\"}',0,'',''),(7,'catuogno2002format','{\"author\": \"Catuogno, Luigi and Visconti, Ivan\", \"booktitle\": \"International Conference on Security in Communication Networks\", \"title\": \"A format-independent architecture for run-time integrity checking of executable code\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2002\", \"organization\": \"Springer\", \"ID\": \"catuogno2002format\", \"pages\": \"219--233\"}',9,'',''),(8,'chang2001protecting','{\"author\": \"Chang, Hoi and Atallah, Mikhail J\", \"booktitle\": \"ACM Workshop on Digital Rights Management\", \"title\": \"Protecting software code by guards\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2001\", \"organization\": \"Springer\", \"ID\": \"chang2001protecting\", \"pages\": \"160--175\"}',93,'',''),(9,'chen2002oblivious','{\"author\": \"Chen, Yuqun and Venkatesan, Ramarathnam and Cary, Matthew and Pang, Ruoming and Sinha, Saurabh and Jakubowski, Mariusz H\", \"booktitle\": \"International Workshop on Information Hiding\", \"title\": \"Oblivious hashing: A stealthy software integrity verification primitive\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2002\", \"organization\": \"Springer\", \"ID\": \"chen2002oblivious\", \"pages\": \"400--414\"}',55,'',''),(10,'christodorescu2009cloud','{\"author\": \"Christodorescu, Mihai and Sailer, Reiner and Schales, Douglas Lee and Sgandurra, Daniele and Zamboni, Diego\", \"booktitle\": \"Proceedings of the 2009 ACM workshop on Cloud computing security\", \"title\": \"Cloud security is not (just) virtualization security: a short paper\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2009\", \"organization\": \"ACM\", \"ID\": \"christodorescu2009cloud\", \"pages\": \"97--102\"}',0,'',''),(11,'collberg2012distributed','{\"author\": \"Collberg, Christian and Martin, Sam and Myers, Jonathan and Nagra, Jasvir\", \"booktitle\": \"Proceedings of the 28th Annual Computer Security Applications Conference\", \"title\": \"Distributed application tamper detection via continuous software updates\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2012\", \"organization\": \"ACM\", \"ID\": \"collberg2012distributed\", \"pages\": \"319--328\"}',15,'',''),(12,'dedic2007graph','{\"author\": \"Dedi{\\\\\'c}, Nenad and Jakubowski, Mariusz and Venkatesan, Ramarathnam\", \"booktitle\": \"International Workshop on Information Hiding\", \"title\": \"A graph game model for software tamper protection\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2007\", \"organization\": \"Springer\", \"ID\": \"dedic2007graph\", \"pages\": \"80--95\"}',5,'',''),(13,'deswarte2004remote','{\"publisher\": \"Springer\", \"author\": \"Deswarte, Yves and Quisquater, Jean-Jacques and Sa{\\\\\\\"\\\\i}dane, Ayda\", \"booktitle\": \"Integrity and internal control in information systems VI\", \"title\": \"Remote integrity checking\", \"ENTRYTYPE\": \"incollection\", \"year\": \"2004\", \"ID\": \"deswarte2004remote\", \"pages\": \"1--11\"}',34,'',''),(14,'dewan2008hypervisor','{\"author\": \"Dewan, Prashant and Durham, David and Khosravi, Hormuzd and Long, Men and Nagabhushan, Gayathri\", \"booktitle\": \"Proceedings of the 2008 Spring simulation multiconference\", \"title\": \"A hypervisor-based system for protecting software runtime memory and persistent storage\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2008\", \"organization\": \"Society for Computer Simulation International\", \"ID\": \"dewan2008hypervisor\", \"pages\": \"828--835\"}',22,'',''),(15,'Gan2015using','{\"doi\": \"10.1109/SPRO.2015.12\", \"title\": \"Using Virtual Machine Protections to Enhance Whitebox Cryptography\", \"booktitle\": \"Software Protection (SPRO), 2015 IEEE/ACM 1st International Workshop on\", \"author\": \"J. Gan and R. Kok and P. Kohli and Y. Ding and B. Mah\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"ID\": \"Gan2015using\", \"pages\": \"17-23\"}',0,'',''),(16,'Ghosh2010secure','{\"isbn\": \"364216434X\", \"author\": \"Ghosh, Sudeep and Hiser, Jason D. and Davidson, Jack W.\", \"journal\": \"Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)\", \"issn\": \"03029743\", \"ENTRYTYPE\": \"article\", \"volume\": \"6387 LNCS\", \"mendeley-groups\": \"Tamperproofing\", \"year\": \"2010\", \"title\": \"A secure and robust approach to software tamper resistance\", \"ID\": \"Ghosh2010secure\", \"pages\": \"33--47\"}',11,'',''),(17,'ghosh2013software','{\"author\": \"Ghosh, Sudeep and Hiser, Jason and Davidson, Jack W\", \"booktitle\": \"Proceedings of the 2nd ACM SIGPLAN Program Protection and Reverse Engineering Workshop\", \"title\": \"Software protection for dynamically-generated code\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2013\", \"organization\": \"ACM\", \"ID\": \"ghosh2013software\", \"pages\": \"1\"}',6,'',''),(18,'Horne2002','{\"doi\": \"10.1007/3-540-47870-1_9\", \"isbn\": \"978-3-540-43677-5\", \"author\": \"Horne, Bill and Matheson, Lesley and Sheehan, Casey and Tarjan, Robert\", \"ENTRYTYPE\": \"article\", \"abstract\": \"We describe a software self-checking mechanism designed to improve the tamper resistance of large programs. The mechanism consists of a number of testers that redundantly test for changes in the executable code as it is running and report modifications. The mechanism is built to be compatible with copy-specific static watermarking and other tamper-resistance techniques. The mechanism includes several innovations to make it stealthy and more robust.\", \"title\": \"Dynamic Self-Checking Techniques for Improved Tamper Resistance\", \"pages\": \"141--159\", \"mendeley-groups\": \"Tamperproofing/Methods,Tamperproofing\", \"link\": \"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.13.3308\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Horne et al/Security and Privacy in Digital Rights Management/Horne et al. - 2002 - Dynamic Self-Checking Techniques for Improved Tamper Resistance.pdf:pdf\", \"year\": \"2002\", \"ID\": \"Horne2002\", \"annote\": \"They add testers in the post compilation process.\\nLinear checks no circular\\nTo avoid complexity, a block is checked only by one block\\nA 32bit space is added outside basic blocks as corrector that tries to fix the hash values in patch process. The patch process is part of sofware watermarking after-installation process\\nDid not quite get it where do they store hashes? They say we store them but not clear where?!\\nNo inidication of how Address space layout randomization is respected.\", \"journal\": \"Security and Privacy in Digital Rights Management\"}',0,'',''),(19,'ibrahim2016stins4cs','{\"author\": \"Ibrahim, Amjad and Banescu, Sebastian\", \"booktitle\": \"Proceedings of the 2016 ACM Workshop on Software PROtection\", \"title\": \"StIns4CS: A State Inspection Tool for C\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2016\", \"organization\": \"ACM\", \"ID\": \"ibrahim2016stins4cs\", \"pages\": \"61--71\"}',0,'',''),(20,'jacob2007towards','{\"author\": \"Jacob, Matthias and Jakubowski, Mariusz H and Venkatesan, Ramarathnam\", \"booktitle\": \"Proceedings of the 9th workshop on Multimedia \\\\& security\", \"title\": \"Towards integral binary execution: Implementing oblivious hashing using overlapped instruction encodings\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2007\", \"organization\": \"ACM\", \"ID\": \"jacob2007towards\", \"pages\": \"129--140\"}',25,'',''),(21,'jakobsson2010retroactive','{\"numpages\": \"13\", \"publisher\": \"USENIX Association\", \"title\": \"Retroactive Detection of Malware with Applications to Mobile Platforms\", \"series\": \"HotSec\'10\", \"booktitle\": \"Proceedings of the 5th USENIX Conference on Hot Topics in Security\", \"author\": \"Jakobsson, Markus and Johansson, Karl-Anders\", \"ENTRYTYPE\": \"inproceedings\", \"location\": \"Washinton, DC\", \"year\": \"2010\", \"ID\": \"jakobsson2010retroactive\", \"pages\": \"1--13\", \"address\": \"Berkeley, CA, USA\"}',0,'',''),(22,'jakobsson2011practical','{\"author\": \"Jakobsson, Markus and Johansson, Karl-Anders\", \"booktitle\": \"Lightweight Security \\\\& Privacy: Devices, Protocols and Applications (LightSec), 2011 Workshop on\", \"title\": \"Practical and secure software-based attestation\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2011\", \"organization\": \"IEEE\", \"ID\": \"jakobsson2011practical\", \"pages\": \"1--9\"}',13,'',''),(23,'jin2003forensic','{\"author\": \"Jin, Hongxia and Lotspiech, Jeffery\", \"booktitle\": \"Software Reliability Engineering, 2003. ISSRE 2003. 14th International Symposium on\", \"title\": \"Forensic analysis for tamper resistant software\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2003\", \"organization\": \"IEEE\", \"ID\": \"jin2003forensic\", \"pages\": \"133--142\"}',9,'',''),(24,'junod2015obfuscator','{\"author\": \"Junod, Pascal and Rinaldini, Julien and Wehrli, Johan and Michielin, Julie\", \"booktitle\": \"Proceedings of the 1st International Workshop on Software Protection\", \"title\": \"Obfuscator-LLVM: software protection for the masses\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE Press\", \"ID\": \"junod2015obfuscator\", \"pages\": \"3--9\"}',0,'',''),(25,'kanstren2015architecture','{\"author\": \"Kanstr{\\\\\'e}n, Teemu and Lehtonen, Sami and Savola, Reijo and Kukkohovi, Hilkka and H{\\\\\\\"a}t{\\\\\\\"o}nen, Kimmo\", \"booktitle\": \"Cloud Engineering (IC2E), 2015 IEEE International Conference on\", \"title\": \"Architecture for high confidence cloud security monitoring\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"kanstren2015architecture\", \"pages\": \"195--200\"}',3,'',''),(26,'kim1994experiences','{\"ID\": \"kim1994experiences\", \"author\": \"Kim, Gene H and Spafford, Eugene H\", \"year\": \"1994\", \"ENTRYTYPE\": \"article\", \"title\": \"Experiences with tripwire: Using integrity checkers for intrusion detection\"}',0,'',''),(27,'kimball2012emulation','{\"publisher\": \"Google Patents\", \"author\": \"Kimball, William B and Baldwin, Rusty O\", \"title\": \"Emulation-based software protection\", \"month\": \"oct~9\", \"note\": \"US Patent 8,285,987\", \"year\": \"2012\", \"ID\": \"kimball2012emulation\", \"ENTRYTYPE\": \"misc\"}',0,'',''),(28,'kulkarni2014new','{\"author\": \"Kulkarni, Aniket and Metta, Ravindra\", \"booktitle\": \"Service Oriented System Engineering (SOSE), 2014 IEEE 8th International Symposium on\", \"title\": \"A New Code Obfuscation Scheme for Software Protection\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2014\", \"organization\": \"IEEE\", \"ID\": \"kulkarni2014new\", \"pages\": \"409--414\"}',0,'',''),(29,'madou2005software','{\"author\": \"Madou, Matias and Anckaert, Bertrand and Moseley, Patrick and Debray, Saumya and De Sutter, Bjorn and De Bosschere, Koen\", \"booktitle\": \"International Workshop on Information Security Applications\", \"title\": \"Software protection through dynamic code mutation\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2005\", \"organization\": \"Springer\", \"ID\": \"madou2005software\", \"pages\": \"194--206\"}',31,'',''),(30,'Malone2011','{\"doi\": \"10.1145/2046582.2046596\", \"isbn\": \"9781450310017\", \"keyword\": \"hardware performance counters,integrity\", \"author\": \"Malone, Corey and Zahran, Mohamed and Karri, Ramesh\", \"journal\": \"Proceedings of the sixth ACM workshop on Scalable trusted computing - STC \'11\", \"issn\": \"15437221\", \"ENTRYTYPE\": \"article\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"link\": \"http://www.scopus.com/inward/record.url?eid=2-s2.0-80755143408{\\\\&}partnerID=40{\\\\&}md5=ad5db1f8e5c0131a2a17f457ba1b0497$\\\\backslash$nhttp://dl.acm.org/citation.cfm?doid=2046582.2046596\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Malone, Zahran, Karri/Proceedings of the sixth ACM workshop on Scalable trusted computing - STC \'11/Malone, Zahran, Karri - 2011 - Are Hardware Performance Counters a Cost Effective Way for Integrity Checking of Programs.pdf:pdf\", \"year\": \"2011\", \"title\": \"Are Hardware Performance Counters a Cost Effective Way for Integrity Checking of Programs\", \"ID\": \"Malone2011\", \"pages\": \"71\"}',0,'',''),(31,'Martignoni2010conquer','{\"doi\": \"10.1007/978-3-642-14215-4_2\", \"title\": \"Conqueror: Tamper-proof code execution on legacy systems\", \"journal\": \"Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)\", \"author\": \"Martignoni, Lorenzo and Paleari, Roberto and Bruschi, Danilo\", \"ENTRYTYPE\": \"article\", \"volume\": \"6201 LNCS\", \"year\": \"2010\", \"ID\": \"Martignoni2010conquer\", \"pages\": \"21--40\"}',12,'',''),(32,'morgan2015design','{\"author\": \"Morgan, Beno{\\\\^\\\\i}t and Alata, Eric and Nicomette, Vincent and Ka{\\\\^a}niche, Mohamed and Averlant, Guillaume\", \"booktitle\": \"Dependable Computing (PRDC), 2015 IEEE 21st Pacific Rim International Symposium on\", \"title\": \"Design and implementation of a hardware assisted security architecture for software integrity monitoring\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"morgan2015design\", \"pages\": \"189--198\"}',0,'',''),(33,'park2015tgvisor','{\"author\": \"Park, Sungjin and Yoon, Jae Nam and Kang, Cheoloh and Kim, Kyong Hoon and Han, Taisook\", \"booktitle\": \"Mobile Cloud Computing, Services, and Engineering (MobileCloud), 2015 3rd IEEE International Conference on\", \"title\": \"TGVisor: A Tiny Hypervisor-Based Trusted Geolocation Framework for Mobile Cloud Clients\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"park2015tgvisor\", \"pages\": \"99--108\"}',0,'',''),(34,'Protsenko2015dynamic','{\"doi\": \"10.1109/ARES.2015.98\", \"keyword\": \"Android (operating system);computer crime;cryptography;mobile computing;reverse engineering;Android apps;application piracy;dynamic code loading;dynamic obfuscation techniques;dynamic re-encryption;dynamic self-protection;mobile devices;native code;proprietary mobile software;reverse engineering;tamperproofing;Androids;Encryption;Humanoid robots;Loading;Runtime;Software protection;Android;Software Protection\", \"title\": \"Dynamic Self-Protection and Tamperproofing for Android Apps Using Native Code\", \"booktitle\": \"Availability, Reliability and Security (ARES), 2015 10th International Conference on\", \"author\": \"M. Protsenko and S. Kreuter and T. M\\u00fcller\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"ID\": \"Protsenko2015dynamic\", \"pages\": \"129-138\"}',0,'',''),(35,'Seshadri2005pioneer','{\"doi\": \"10.1145/1095809.1095812\", \"isbn\": \"1-59593-079-5\", \"keyword\": \"dynamic root of trust,rootkit detection,self-check-summing code,software-based code attestation,verifiable code execution\", \"author\": \"Seshadri, Arvind and Luk, Mark and Shi, Elaine and Perrig, Adrian and van Doorn, Leendert and Khosla, Pradeep\", \"journal\": \"ACM SIGOPS Operating Systems Review\", \"issn\": \"01635980\", \"ID\": \"Seshadri2005pioneer\", \"mendeley-groups\": \"Tamperproofing\", \"link\": \"http://dl.acm.org/citation.cfm?id=1095809.1095812\", \"year\": \"2005\", \"title\": \"Pioneer: Verifying Code Integrity and Enforcing Untampered Code Execution on Legacy Systems\", \"ENTRYTYPE\": \"article\"}',2,'',''),(36,'Spinellis2000','{\"doi\": \"10.1145/353323.353383\", \"isbn\": \"1094-9224\", \"author\": \"Spinellis, Diomidis\", \"ENTRYTYPE\": \"article\", \"abstract\": \"The integrity verification of a device\'s controlling software is an important aspect of many emerging information appliances. We propose the use of reflection, whereby the software is able to examine its own operation, in conjunction with cryptographic hashes as a basis for developing a suitable software verification protocol. For more demanding applications meta-reflective techniques can be used to thwart attacks based on device emulation strategies. We demonstrate how our approach can be used to increase the security of mobile phones, devices for the delivery of digital content, and smartcards.\", \"issn\": \"10949224\", \"number\": \"1\", \"pages\": \"51--62\", \"volume\": \"3\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Spinellis/ACM Transactions on Information and System Security/Spinellis - 2000 - Reflection as a mechanism for software integrity verification.pdf:pdf\", \"year\": \"2000\", \"title\": \"Reflection as a mechanism for software integrity verification\", \"ID\": \"Spinellis2000\", \"annote\": \"In this approach a software integrity is verified with the help of an external (trusted) entity. Here, the program state is retrieved using reflection, a protocol is proposed to verify the state, and suggested to augment the scheme with CPU perfor.mance counter, before and after the verification call loops.\\nOne obvious attack is to keep an untouched version of the application in the memory next to the tampered with version. Then redirect all hash computations to the good version. The authors, suggest memory expanion and timing as possible countermeasures.\", \"journal\": \"ACM Transactions on Information and System Security\"}',0,'',''),(37,'teixeira2015siot','{\"author\": \"Teixeira, Fernando A and Machado, Gustavo V and Pereira, Fernando MQ and Wong, Hao Chi and Nogueira, Jos{\\\\\'e} and Oliveira, Leonardo B\", \"booktitle\": \"Proceedings of the 14th International Conference on Information Processing in Sensor Networks\", \"title\": \"SIoT: securing the internet of things through distributed system analysis\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"ACM\", \"ID\": \"teixeira2015siot\", \"pages\": \"310--321\"}',0,'',''),(38,'Wang2005Tamper','{\"isbn\": \"8242866627\", \"keyword\": \"integrity checking,multi-blocking encryption,software piracy,tamper resistant\", \"title\": \"Tamper Resistant Software Through Dynamic Integrity Checking\", \"journal\": \"Proc. Symp. on Cyptography and Information Security (SCIS 05)\", \"author\": \"Wang, Ping and Kang, Seok-kyu and Kim, Kwangjo\", \"ID\": \"Wang2005Tamper\", \"year\": \"2005\", \"ENTRYTYPE\": \"article\"}',0,'',''),(39,'yao2014cryptvmi','{\"author\": \"Yao, Fangzhou and Sprabery, Read and Campbell, Roy H\", \"booktitle\": \"Proceedings of the 2nd international workshop on Security in cloud computing\", \"title\": \"CryptVMI: a flexible and encrypted virtual machine introspection system in the cloud\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2014\", \"organization\": \"ACM\", \"ID\": \"yao2014cryptvmi\", \"pages\": \"11--18\"}',0,'',''),(40,'banescu2015software','{\"author\": \"Banescu, Sebastian and Pretschner, Alexander and Battr{\\\\\'e}, Dominic and Cazzulani, St{\\\\\'e}fano and Shield, Robert and Thompson, Greg\", \"booktitle\": \"Proceedings of the 5th ACM Conference on Data and Application Security and Privacy\", \"title\": \"Software-based protection against changeware\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"ACM\", \"ID\": \"banescu2015software\", \"pages\": \"231--242\"}',4,'',''),(41,'Carbone2009','{\"isbn\": \"9781605583525\", \"author\": \"Carbone, Martim and Cui, Weidong and Peinado, Marcus and Lu, Long and Lee, Wenke\", \"journal\": \"Analysis\", \"title\": \"Mapping Kernel Objects to Enable Systematic Integrity Checking\", \"ENTRYTYPE\": \"article\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Carbone et al/Analysis/Carbone et al. - 2009 - Mapping Kernel Objects to Enable Systematic Integrity Checking.pdf:pdf\", \"year\": \"2009\", \"ID\": \"Carbone2009\", \"pages\": \"555--565\"}',0,'',''),(42,'Castro2006','{\"isbn\": \"1-931971-47-1\", \"author\": \"Castro, Miguel and Costa, Manuel and Harris, Tim\", \"ENTRYTYPE\": \"article\", \"abstract\": \"Software attacks often subvert the intended data-flow in a vulnerable program. For example, attackers exploit buffer overflows and format string vulnerabilities to write data to unintended locations. We present a simple technique that prevents these attacks by enforcing data-flow integrity. It computes a data-flow graph using static analysis, and it instruments the program to ensure that the flow of data at runtime is allowed by the data-flow graph. We describe an efficient implementation of data-flow integrity enforcement that uses static analysis to reduce instrumentation overhead. This implementation can be used in practice to detect a broad class of attacks and errors because it can be applied automatically to C and C++ programs without modifications, it does not have false positives, and it has low overhead.\", \"title\": \"Securing software by enforcing data-flow integrity\", \"pages\": \"147--160\", \"mendeley-groups\": \"Tamperproofing/Methods\", \"link\": \"http://dl.acm.org/citation.cfm?id=1298455.1298470$\\\\backslash$nhttp://www.usenix.org/event/osdi06/tech/full{\\\\_}papers/castro/castro{\\\\_}html/\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Castro, Costa, Harris/Proceedings of the 7th symposium on Operating systems design and implementation/Castro, Costa, Harris - 2006 - Securing software by enforcing data-flow integrity.pdf:pdf\", \"year\": \"2006\", \"ID\": \"Castro2006\", \"journal\": \"Proceedings of the 7th symposium on Operating systems design and implementation\"}',0,'',''),(43,'gao2015integrity','{\"doi\": \"10.1109/ICAC.2015.34\", \"keyword\": \"Big Data;cloud computing;data integrity;data privacy;Big Data processing;cloud computing technology;dynamic redundancy computation;integrity protection solution;reputation based redundancy computation;Conferences;MapReduce;cloud computing;integrity protection\", \"title\": \"Integrity Protection for Big Data Processing with Dynamic Redundancy Computation\", \"booktitle\": \"Autonomic Computing (ICAC), 2015 IEEE International Conference on\", \"author\": \"Z. Gao and N. Desalvo and P. D. Khoa and S. H. Kim and L. Xu and W. W. Ro and R. M. Verma and W. Shi\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"ID\": \"gao2015integrity\", \"pages\": \"159-160\"}',0,'',''),(44,'karapanos2016verena','{\"author\": \"Karapanos, Nikolaos and Filios, Alexandros and Popa, Raluca Ada and Capkun, Srdjan\", \"booktitle\": \"Proceedings of the 37th IEEE Symposium on Security and Privacy (IEEE S\\\\&P)\", \"title\": \"Verena: End-to-end integrity protection for web applications\", \"ID\": \"karapanos2016verena\", \"year\": \"2016\", \"ENTRYTYPE\": \"inproceedings\"}',0,'',''),(45,'Kil2009','{\"isbn\": \"9781424444212\", \"keyword\": \"dynamic attestation,integrity,remote attestation,runtime,system security,trusted computing\", \"author\": \"Kil, Chongkyung\", \"journal\": \"IEEE/IFIP International Conference on Dependable Systems {\\\\&} Networks\", \"title\": \"Remote Attestation to Dynamic System Properties: Towards Providing Complete System Integrity Evidence\", \"ENTRYTYPE\": \"article\", \"mendeley-groups\": \"Tamperproofing\", \"file\": \":Users/mohsen-tum/Documents/Mendeley Desktop/Kil/IEEEIFIP International Conference on Dependable Systems {\\\\&} Networks/Kil - 2009 - Remote Attestation to Dynamic System Properties Towards Providing Complete System Integrity Evidence.pdf:pdf\", \"year\": \"2009\", \"ID\": \"Kil2009\", \"pages\": \"115--124\"}',0,'',''),(46,'neisse2011implementing','{\"author\": \"Neisse, Ricardo and Holling, Dominik and Pretschner, Alexander\", \"booktitle\": \"Proceedings of the 2011 11th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing\", \"title\": \"Implementing trust in cloud infrastructures\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2011\", \"organization\": \"IEEE Computer Society\", \"ID\": \"neisse2011implementing\", \"pages\": \"524--533\"}',37,'',''),(47,'sun2015security','{\"author\": \"Sun, Yuqiong and Nanda, Susanta and Jaeger, Trent\", \"booktitle\": \"2015 IEEE 7th International Conference on Cloud Computing Technology and Science (CloudCom)\", \"title\": \"Security-as-a-Service for Microservices-Based Cloud Applications\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2015\", \"organization\": \"IEEE\", \"ID\": \"sun2015security\", \"pages\": \"50--57\"}',0,'',''),(48,'pappas2012smashing','{\"author\": \"Pappas, Vasilis and Polychronakis, Michalis and Keromytis, Angelos D\", \"booktitle\": \"2012 IEEE Symposium on Security and Privacy\", \"title\": \"Smashing the gadgets: Hindering return-oriented programming using in-place code randomization\", \"ENTRYTYPE\": \"inproceedings\", \"year\": \"2012\", \"organization\": \"IEEE\", \"ID\": \"pappas2012smashing\", \"pages\": \"601--615\"}',122,'',''),(49,'pappas2013transparent','{\"author\": \"Pappas, Vasilis and Polychronakis, Michalis and Keromytis, Angelos D\", \"booktitle\": \"Presented as part of the 22nd USENIX Security Symposium (USENIX Security 13)\", \"title\": \"Transparent ROP exploit mitigation using indirect branch tracing\", \"pages\": \"447--462\", \"year\": \"2013\", \"ID\": \"pappas2013transparent\", \"ENTRYTYPE\": \"inproceedings\"}',0,'',''); +/*!40000 ALTER TABLE `paper` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary view structure for view `paper_merged_attributes` +-- + +DROP TABLE IF EXISTS `paper_merged_attributes`; +/*!50001 DROP VIEW IF EXISTS `paper_merged_attributes`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE VIEW `paper_merged_attributes` AS SELECT + 1 AS `id_taxonomy`, + 1 AS `id_paper`, + 1 AS `citation`, + 1 AS `bib`, + 1 AS `atts`, + 1 AS `leaf_atts`*/; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `relation` +-- + +DROP TABLE IF EXISTS `relation`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `relation` ( + `id_relation` int(10) unsigned NOT NULL AUTO_INCREMENT, + `text` varchar(50) NOT NULL, + `comment` varchar(500) DEFAULT NULL, + PRIMARY KEY (`id_relation`), + UNIQUE KEY `id_relation_UNIQUE` (`id_relation`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `relation` +-- + +LOCK TABLES `relation` WRITE; +/*!40000 ALTER TABLE `relation` DISABLE KEYS */; +INSERT INTO `relation` VALUES (1,'Depends','simple dependency'),(2,'DependsDirected','directed dependency'),(3,'InstanceOf','inheritance'),(4,'MemberOf','aggregation'),(5,'PartOf','composition'); +/*!40000 ALTER TABLE `relation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `taxonomy` +-- + +DROP TABLE IF EXISTS `taxonomy`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy` ( + `id_taxonomy` int(11) unsigned NOT NULL AUTO_INCREMENT, + `text` varchar(50) DEFAULT NULL, + PRIMARY KEY (`id_taxonomy`), + UNIQUE KEY `id_taxonomy_UNIQUE` (`id_taxonomy`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `taxonomy` +-- + +LOCK TABLES `taxonomy` WRITE; +/*!40000 ALTER TABLE `taxonomy` DISABLE KEYS */; +INSERT INTO `taxonomy` VALUES (1,'Integrity protection'); +/*!40000 ALTER TABLE `taxonomy` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `taxonomy_dimension` +-- + +DROP TABLE IF EXISTS `taxonomy_dimension`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy_dimension` ( + `id_taxonomy_dimension` int(10) unsigned NOT NULL AUTO_INCREMENT, + `id_taxonomy` int(11) NOT NULL, + `id_attribute` int(11) unsigned NOT NULL, + `id_dimension` int(11) unsigned NOT NULL, + PRIMARY KEY (`id_taxonomy_dimension`), + UNIQUE KEY `id_taxonomy_dimension_UNIQUE` (`id_taxonomy_dimension`), + UNIQUE KEY `taxonomy_dimension_id_attribute_UNIQUE` (`id_taxonomy`,`id_attribute`), + KEY `taxonomy_dimension_id_attribute_foreign` (`id_attribute`), + KEY `taxonomy_dimension_id_dimension_foreign` (`id_dimension`), + CONSTRAINT `taxonomy_dimension_id_attribute_foreign` FOREIGN KEY (`id_attribute`) REFERENCES `attribute` (`id_attribute`) ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT `taxonomy_dimension_id_dimension_foreign` FOREIGN KEY (`id_dimension`) REFERENCES `dimension` (`id_dimension`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=99 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `taxonomy_dimension` +-- + +LOCK TABLES `taxonomy_dimension` WRITE; +/*!40000 ALTER TABLE `taxonomy_dimension` DISABLE KEYS */; +INSERT INTO `taxonomy_dimension` VALUES (1,1,2,1),(2,1,3,1),(3,1,4,1),(4,1,6,1),(5,1,7,1),(6,1,8,1),(7,1,9,1),(8,1,10,1),(9,1,11,1),(10,1,12,1),(11,1,13,1),(12,1,15,1),(13,1,16,1),(14,1,17,1),(15,1,18,1),(16,1,19,1),(17,1,21,1),(18,1,22,1),(19,1,23,1),(20,1,24,1),(21,1,25,1),(22,1,28,2),(23,1,29,2),(24,1,30,2),(25,1,31,2),(26,1,33,3),(27,1,34,3),(28,1,36,3),(29,1,37,3),(30,1,39,3),(31,1,40,3),(32,1,42,3),(33,1,43,3),(34,1,45,3),(35,1,46,3),(36,1,47,3),(37,1,48,3),(38,1,49,3),(39,1,51,3),(40,1,52,3),(41,1,53,3),(42,1,54,3),(43,1,55,3),(44,1,56,3),(45,1,58,3),(46,1,59,3),(47,1,60,3),(48,1,61,3),(49,1,63,3),(50,1,64,3),(51,1,65,3),(52,1,66,3),(53,1,68,3),(54,1,69,3),(55,1,70,3),(56,1,5,1),(57,1,71,3),(58,1,72,2),(59,1,73,2),(60,1,78,2),(61,1,79,2),(62,1,80,2),(63,1,81,2),(64,1,82,2),(65,1,83,2),(66,1,84,2),(67,1,85,2),(68,1,86,2),(69,1,87,2),(70,1,88,2),(71,1,89,3),(72,1,90,3),(73,1,91,3),(74,1,92,3),(75,1,93,1),(76,1,94,1),(77,1,95,1),(78,1,1,1),(79,1,14,1),(80,1,20,1),(81,1,26,2),(82,1,27,2),(83,1,32,3),(84,1,35,3),(85,1,38,3),(86,1,41,3),(87,1,44,3),(88,1,50,3),(89,1,57,3),(90,1,62,3),(91,1,67,3); +/*!40000 ALTER TABLE `taxonomy_dimension` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `taxonomy_relation` +-- + +DROP TABLE IF EXISTS `taxonomy_relation`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy_relation` ( + `id_taxonomy_relation` int(11) NOT NULL AUTO_INCREMENT, + `id_taxonomy` int(11) NOT NULL, + `id_src_attribute` int(11) unsigned NOT NULL, + `id_dest_attribute` int(11) unsigned NOT NULL, + `id_relation` int(11) NOT NULL, + `id_dimension` int(10) DEFAULT '0', + `edgeBendPoints` longtext, + PRIMARY KEY (`id_taxonomy_relation`), + UNIQUE KEY `id_taxonomy_relation_UNIQUE` (`id_taxonomy_relation`), + UNIQUE KEY `taxonomy_relation_attributes_UNIQUE` (`id_taxonomy`,`id_src_attribute`,`id_dest_attribute`,`id_dimension`), + KEY `taxonomy_relation_id_src_attribute_foreign` (`id_src_attribute`), + KEY `taxonomy_relation_id_dest_attribute_foreign` (`id_dest_attribute`), + CONSTRAINT `taxonomy_relation_id_dest_attribute_foreign` FOREIGN KEY (`id_dest_attribute`) REFERENCES `attribute` (`id_attribute`) ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT `taxonomy_relation_id_src_attribute_foreign` FOREIGN KEY (`id_src_attribute`) REFERENCES `attribute` (`id_attribute`) ON DELETE CASCADE ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=249 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `taxonomy_relation` +-- + +LOCK TABLES `taxonomy_relation` WRITE; +/*!40000 ALTER TABLE `taxonomy_relation` DISABLE KEYS */; +INSERT INTO `taxonomy_relation` VALUES (56,1,2,93,3,1,'{\'x\':245.99999999999997,\'y\':71.99999999999996};{\'x\':246.99999999999997,\'y\':155}'),(57,1,3,93,3,1,'{\'x\':232.36470867292397,\'y\':155.35488918195506}'),(58,1,4,93,3,1,'{\'x\':246.99999999999997,\'y\':234};{\'x\':246.99999999999997,\'y\':155.99999999999994}'),(59,1,5,93,1,1,'{\'x\':99.99999999999991,\'y\':431.9999999999999}'),(60,1,21,20,3,1,'{\'x\':647.1794253666435,\'y\':69.82057517234267};{\'x\':650.6666891188631,\'y\':296.3333098646116}'),(61,1,22,20,3,1,'{\'x\':648.2100417611323,\'y\':143.79604123777884};{\'x\':649.4742480270277,\'y\':296.5104000328528}'),(62,1,23,20,3,1,'{\'x\':648.3866880746442,\'y\':211.6541379857174};{\'x\':649.3213879220136,\'y\':296.6063372240162}'),(63,1,24,20,3,1,'{\'x\':651.1102947476124,\'y\':366.7756595403927};{\'x\':650.602317217686,\'y\':297.7944639029661}'),(64,1,25,20,3,1,'{\'x\':651.0420523241444,\'y\':435.7642012738366};{\'x\':649.9017992903628,\'y\':297.80051601778246}'),(65,1,94,20,3,1,'{\'x\':631.5153552122035,\'y\':296.9184622110439}'),(66,1,6,21,1,1,'{\'x\':837.0000000000001,\'y\':168.00000000000003};{\'x\':835,\'y\':70.00000000000003}'),(67,1,6,22,1,1,'{\'x\':836.0000000000002,\'y\':169};{\'x\':836.0000000000002,\'y\':144}'),(68,1,6,94,1,1,'{\'x\':836.9999999999999,\'y\':169.0000000000001};{\'x\':837.9999999999997,\'y\':298.00000000000017}'),(69,1,6,5,5,1,'{\'x\':1019.9999999999998,\'y\':231.00000000000006};{\'x\':926,\'y\':231};{\'x\':929.9999999999997,\'y\':487};{\'x\':483.99999999999994,\'y\':482};{\'x\':480.9999999999998,\'y\':435}'),(70,1,7,5,5,1,'{\'x\':926.9999999999998,\'y\':319};{\'x\':929,\'y\':486};{\'x\':482.99999999999994,\'y\':482};{\'x\':482.0000000000001,\'y\':434.99999999999994}'),(71,1,8,5,5,1,'{\'x\':929,\'y\':514.9999999999999};{\'x\':929.0000000000002,\'y\':487};{\'x\':481.9999999999999,\'y\':481};{\'x\':480.9999999999999,\'y\':434}'),(72,1,9,7,3,1,'{\'x\':1474,\'y\':318}'),(73,1,10,7,3,1,'{\'x\':1473.7949380792272,\'y\':317.9784915175459}'),(74,1,13,8,3,1,'{\'x\':1259.2718899100228,\'y\':518.0659196311467}'),(75,1,11,8,3,1,'{\'x\':1361,\'y\':659};{\'x\':1360,\'y\':518.9999999999998}'),(76,1,12,11,3,1,'{\'x\':1549.9293606366093,\'y\':660.4788195267564}'),(77,1,7,24,1,1,'{\'x\':1036,\'y\':366.99999999999994}'),(78,1,7,25,1,1,'{\'x\':1036,\'y\':443.0000000000001}'),(79,1,8,24,1,1,'{\'x\':1035,\'y\':368.00000000000006}'),(80,1,8,25,1,1,'{\'x\':1035,\'y\':444};{\'x\':886.7188837054866,\'y\':441.4353930845009}'),(81,1,5,14,1,1,'{\'x\':328.1392281443622,\'y\':553.7668810710022}'),(82,1,15,14,3,1,'{\'x\':506.9999999999999,\'y\':603};{\'x\':506.99999999999994,\'y\':673.0000000000001}'),(83,1,95,14,3,1,'{\'x\':505.99999999999994,\'y\':525};{\'x\':506.99999999999994,\'y\':672.9999999999999}'),(84,1,17,14,3,1,'{\'x\':459.5797568920929,\'y\':673.5251347098841}'),(85,1,18,14,3,1,'{\'x\':507.9999999999999,\'y\':752};{\'x\':506.99999999999994,\'y\':674}'),(86,1,19,14,3,1,'{\'x\':509,\'y\':825};{\'x\':507,\'y\':673}'),(87,1,79,80,4,2,'{\'x\':119.21985912716738,\'y\':191.88190867508243};{\'x\':202.21985912716733,\'y\':190.88190867508223}'),(88,1,81,80,4,2,'{\'x\':241.21985912716747,\'y\':190.88190867508288};{\'x\':202.21985912716724,\'y\':190.881908675083}'),(89,1,82,80,4,2,'{\'x\':338.84847248584714,\'y\':191.5349713095123};{\'x\':203.21985912716718,\'y\':191.8819086750825}'),(90,1,83,80,4,2,'{\'x\':201.9121348988953,\'y\':310.9945330830352}'),(91,1,80,72,5,2,'{\'x\':303.5899151926502,\'y\':254.52141900969116}'),(92,1,73,72,5,2,'{\'x\':475.1869873177485,\'y\':311.500841992063}'),(93,1,84,72,5,2,'{\'x\':474.97515501915564,\'y\':327.65226755612076}'),(94,1,27,72,5,2,'{\'x\':749.7926083176478,\'y\':255.86123090994874}'),(95,1,28,27,3,2,'{\'x\':814.84152913225,\'y\':196.7518137564864};{\'x\':959.8415291322498,\'y\':196.75181375648648}'),(96,1,29,27,3,2,'{\'x\':959.5600319095079,\'y\':198.8499108543131}'),(97,1,30,27,3,2,'{\'x\':1103.8484724858467,\'y\':198.53497130951226};{\'x\':959.8415291322493,\'y\':197.7518137564864}'),(98,1,88,84,3,2,'{\'x\':1336.8484724858472,\'y\':396.53497130951206};{\'x\':728.0668472804629,\'y\':394.8950055421265}'),(99,1,31,27,3,2,'{\'x\':1307.8415291322503,\'y\':197.75181375648594};{\'x\':959.8415291322494,\'y\':198.75181375648614}'),(100,1,26,73,3,2,'{\'x\':474.9256826175398,\'y\':411.481394041331}'),(101,1,85,84,3,2,'{\'x\':728.34057509258,\'y\':391.10245018006844}'),(102,1,86,84,3,2,'{\'x\':919.8484724858474,\'y\':395.5349713095123};{\'x\':729.0743617269079,\'y\':394.50376596600955}'),(103,1,87,84,3,2,'{\'x\':1111.8484724858467,\'y\':396.534971309512};{\'x\':728.6180005479822,\'y\':393.9837999791198}'),(104,1,78,27,3,2,'{\'x\':1024.842000575281,\'y\':256.71427508485874}'),(105,1,57,32,5,3,'{\'x\':610.0486645311152,\'y\':398.21495617920175}'),(106,1,62,32,5,3,'{\'x\':822.9281806900138,\'y\':457.621769109086}'),(107,1,67,32,5,3,'{\'x\':1268,\'y\':473.9999999999998};{\'x\':824,\'y\':474}'),(108,1,35,32,5,3,'{\'x\':532.9999999999999,\'y\':326};{\'x\':533,\'y\':397.9999999999998}'),(109,1,38,32,5,3,'{\'x\':400.99999999999983,\'y\':274.99999999999994};{\'x\':581,\'y\':276};{\'x\':822.9999999999999,\'y\':278}'),(110,1,41,32,5,3,'{\'x\':580,\'y\':275.0000000000002};{\'x\':823,\'y\':278.0000000000001}'),(111,1,44,32,5,3,'{\'x\':822.5010482949103,\'y\':306.5069859296839}'),(112,1,50,32,5,3,'{\'x\':1055,\'y\':276.99999999999994};{\'x\':823.0000000000002,\'y\':277.99999999999955}'),(113,1,33,32,3,3,'{\'x\':987,\'y\':323};{\'x\':988,\'y\':397.00000000000006}'),(114,1,34,32,3,3,'{\'x\':943.265277262353,\'y\':397.77027757769054}'),(115,1,58,57,3,3,'{\'x\':208.99999999999994,\'y\':589};{\'x\':239.9999999999999,\'y\':589.0000000000001};{\'x\':390,\'y\':589.0000000000002}'),(116,1,59,57,3,3,'{\'x\':295.99999999999994,\'y\':589};{\'x\':389.99999999999994,\'y\':589.0000000000001}'),(117,1,60,57,3,3,'{\'x\':391.2585382026573,\'y\':521.8905200061671}'),(118,1,61,57,3,3,'{\'x\':461.00000000000006,\'y\':590.0000000000007};{\'x\':389.9999999999999,\'y\':590}'),(119,1,71,62,3,3,'{\'x\':703.9999999999997,\'y\':593.0000000000002};{\'x\':823.9999999999995,\'y\':594}'),(120,1,89,62,3,3,'{\'x\':823.7061746076718,\'y\':580.2489015044896}'),(121,1,63,62,3,3,'{\'x\':909,\'y\':595};{\'x\':823.0000000000007,\'y\':594.0000000000001}'),(122,1,64,62,3,3,'{\'x\':980,\'y\':596};{\'x\':980.9485620377977,\'y\':596.0121610517666};{\'x\':824.0000000000002,\'y\':594.0000000000003}'),(123,1,65,62,3,3,'{\'x\':1053,\'y\':596.9999999999999};{\'x\':824.0000000000005,\'y\':593.9999999999995}'),(124,1,70,67,3,3,'{\'x\':1203,\'y\':616.0000000000003};{\'x\':1272.9999999999993,\'y\':616.9999999999994}'),(125,1,69,67,3,3,'{\'x\':1344.0712099571524,\'y\':615.984697000612};{\'x\':1345.056723117731,\'y\':615.9706182411755};{\'x\':1273.0000000000011,\'y\':616.9999999999995}'),(126,1,90,67,3,3,'{\'x\':1568.9999999999998,\'y\':617.9999999999999};{\'x\':1274.0000000000002,\'y\':615}'),(127,1,36,35,3,3,'{\'x\':113.99999999999997,\'y\':205};{\'x\':211.00000000000003,\'y\':204.99999999999997};{\'x\':211.0000000000001,\'y\':326}'),(128,1,37,35,3,3,'{\'x\':281.759866540906,\'y\':325.34211900316063}'),(129,1,39,38,3,3,'{\'x\':280.9999999999997,\'y\':151.99999999999983};{\'x\':402.00000000000006,\'y\':152}'),(130,1,92,38,3,3,'{\'x\':401.9286974579407,\'y\':153.4982983659064}'),(131,1,42,41,3,3,'{\'x\':579,\'y\':95.00000000000048}'),(132,1,43,41,3,3,'{\'x\':577.9999999999999,\'y\':95.00000000000018}'),(133,1,45,44,3,3,'{\'x\':770.6061590568141,\'y\':148.2083477327829};{\'x\':823.469182439591,\'y\':148.94299868851013}'),(134,1,46,44,3,3,'{\'x\':889,\'y\':147.99999999999997};{\'x\':822.9999999999999,\'y\':148.00000000000114}'),(135,1,47,44,3,3,'{\'x\':1039,\'y\':146.99999999999972};{\'x\':824.0794455437408,\'y\':149.13048301003042}'),(136,1,48,44,3,3,'{\'x\':1217.0000000000005,\'y\':144.99999999999986};{\'x\':824.0000000000002,\'y\':149.99999999999994}'),(137,1,49,44,3,3,'{\'x\':1392,\'y\':143.0000000000001};{\'x\':821.8473473305276,\'y\':150.10812131452286}'),(138,1,51,50,3,3,'{\'x\':1293.616778310066,\'y\':235.18370025934934}'),(139,1,52,50,3,3,'{\'x\':1442,\'y\':313.9999999999999};{\'x\':1441.0000000000007,\'y\':237.00000000000003}'),(140,1,53,50,3,3,'{\'x\':1444,\'y\':403.9999999999999};{\'x\':1439.999999999999,\'y\':236.99999999999977}'),(141,1,54,50,3,3,'{\'x\':1445.9999999999998,\'y\':494.00000000000017};{\'x\':1440.9999999999995,\'y\':236.99999999999972}'),(142,1,55,50,3,3,'{\'x\':1448,\'y\':571.9999999999998};{\'x\':1440.0000000000002,\'y\':237}'),(143,1,91,50,3,3,'{\'x\':1439,\'y\':159};{\'x\':1440.0000000000005,\'y\':236.99999999999997}'),(232,1,32,84,2,4,'{\'x\':-988.2359632913441,\'y\':-951.8103241540371};{\'x\':-319.4815098371267,\'y\':-953.0186736286499}'),(233,1,32,20,2,4,'{\'x\':-854.6013207506861,\'y\':-767.1148771605798}'),(234,1,32,27,2,4,'{\'x\':-988.3387121979307,\'y\':-671.6765206578543};{\'x\':-974.8746142326793,\'y\':-671.6633472599729};{\'x\':-881.6030760219256,\'y\':-671.6327409718069};{\'x\':-880.3387121979304,\'y\':-533.0098539911878};{\'x\':-323.00537886459705,\'y\':-530.3431873245208}'),(235,1,32,67,1,4,'{\'x\':-1112.6030760219257,\'y\':-766.6327409718037};{\'x\':-1109.4158110522417,\'y\':-280.0665701535794}'),(236,1,57,20,2,4,'{\'x\':-923.4018092467566,\'y\':-621.137974980062};{\'x\':-922.6030760219257,\'y\':-697.6327409718073};{\'x\':-779.605755831528,\'y\':-698.2517769899473};{\'x\':-691.6030760219255,\'y\':-697.6327409718069}'),(237,1,62,32,2,4,'{\'x\':-1064.0866850676534,\'y\':-384.47223943593764};{\'x\':-1063.6030760219257,\'y\':-766.6327409718072}'),(238,1,93,14,1,4,'{\'x\':-808.3387121979307,\'y\':-891.6765206622291};{\'x\':-808.6389747768841,\'y\':-281.22937748887347}'),(239,1,5,93,2,4,'{\'x\':-706.6030760219257,\'y\':-666.6327409718074};{\'x\':-545.6030760219257,\'y\':-665.6327409718065};{\'x\':-547.4698322288425,\'y\':-875.642814249965};{\'x\':-547.6030760219257,\'y\':-890.6327409718065}'),(240,1,84,32,2,4,'{\'x\':-319.94685346915963,\'y\':-837.0064609626666};{\'x\':-987.5115317947335,\'y\':-834.3519942169112}'),(241,1,80,72,2,4,'{\'x\':-181.6030760219259,\'y\':-623.6327409718075};{\'x\':-181.6030760219258,\'y\':-776.6327409718083}'),(242,1,27,5,2,4,'{\'x\':-369.47753487234206,\'y\':-482.1635275661221};{\'x\':-706.6030760219259,\'y\':-483.6327409718072}'),(243,1,27,32,2,4,'{\'x\':-403.0053788645975,\'y\':-482.3431873245204};{\'x\':-403.00537886459716,\'y\':-214.34318732452073};{\'x\':-1137.672045531264,\'y\':-214.34318732452084};{\'x\':-1137.6720455312643,\'y\':-767.6765206578542}'),(244,1,73,27,2,4,'{\'x\':-258.60307602192586,\'y\':-284.63274097180545};{\'x\':-258.60899150214834,\'y\':-483.8567189443867}'),(245,1,84,5,2,4,'{\'x\':-485.60307602192574,\'y\':-890.632740971807};{\'x\':-485.9305355073303,\'y\':-696.4536368161712};{\'x\':-485.09227442745885,\'y\':-608.4362234296373}'),(246,1,23,23,1,1,NULL),(247,1,23,6,1,1,'{\'x\':838.0000000000002,\'y\':211.00000000000006};{\'x\':836.9999999999999,\'y\':169.00000000000003}'),(248,1,68,67,3,3,'{\'x\':1451.9999999999998,\'y\':616.9999999999998};{\'x\':1273.9999999999998,\'y\':615.9999999999999}'); +/*!40000 ALTER TABLE `taxonomy_relation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `taxonomy_relation_annotation` +-- + +DROP TABLE IF EXISTS `taxonomy_relation_annotation`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy_relation_annotation` ( + `id_taxonomy` int(11) NOT NULL, + `id_taxonomy_relation` int(11) NOT NULL, + `annotation` longtext, + PRIMARY KEY (`id_taxonomy_relation`), + UNIQUE KEY `id_taxonomy_relation_annotation_UNIQUE` (`id_taxonomy_relation`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `taxonomy_relation_annotation` +-- + +LOCK TABLES `taxonomy_relation_annotation` WRITE; +/*!40000 ALTER TABLE `taxonomy_relation_annotation` DISABLE KEYS */; +INSERT INTO `taxonomy_relation_annotation` VALUES (1,232,'Impedes'),(1,233,'Transforms'),(1,234,'Mitigates or raises the bar'),(1,236,'Affects'),(1,237,'Strengthens'),(1,239,'Contains'),(1,240,'Identifies'),(1,241,'Support'),(1,242,'Tampers with'),(1,243,'Tampers with'),(1,244,'Executes'),(1,245,'Identifies asset'); +/*!40000 ALTER TABLE `taxonomy_relation_annotation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `user` +-- + +DROP TABLE IF EXISTS `user`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `user` ( + `email` varchar(128) NOT NULL, + `password` varchar(128) NOT NULL, + `admin` tinyint(1) DEFAULT '0', + `taxonomies` varchar(500) DEFAULT '', + PRIMARY KEY (`email`), + UNIQUE KEY `email_UNIQUE` (`email`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `user` +-- + +LOCK TABLES `user` WRITE; +/*!40000 ALTER TABLE `user` DISABLE KEYS */; +INSERT INTO `user` VALUES ('222@df.de','222',0,''),('felixhuber245@gmx.de','123',0,''),('felixhuber2465@gmx.de','123',0,''),('felixhuber2@gmx.de','123',1,''),('felixhuber4@gmx.de','123',0,''),('felixhuber5@gmx.de','123',0,''),('felixhuber62@gmx.de','123',0,''),('felixhuber6@gmx.de','123',0,''),('felixhuber7@gmx.de','123',0,''),('test3434@gmx.de','234',0,''),('test@gmx.de','123',0,''); +/*!40000 ALTER TABLE `user` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Dumping routines for database 'classification' +-- +/*!50003 DROP PROCEDURE IF EXISTS `insertallchildrenperattribute` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`localhost` PROCEDURE `insertallchildrenperattribute`(taxonomyId INT(11)) +BEGIN + DECLARE cursor_id_attribute INT(11); + DECLARE cursor_text VARCHAR(50); + DECLARE done INT DEFAULT FALSE; + DECLARE cursor_i CURSOR FOR SELECT id_attribute, text FROM attribute; + DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + DELETE FROM allchildrenperattribute WHERE id_taxonomy = taxonomyId; + OPEN cursor_i; + read_loop: LOOP + FETCH cursor_i INTO cursor_id_attribute, cursor_text; + IF done THEN + LEAVE read_loop; + END IF; + INSERT IGNORE INTO allchildrenperattribute(id_attribute, id_taxonomy, text, children) VALUES(cursor_id_attribute, taxonomyId, cursor_text, (SELECT (CASE WHEN b.children IS NULL THEN CAST(cursor_id_attribute AS CHAR(50)) ELSE CONCAT(CAST(cursor_id_attribute AS CHAR(50)), ",", b.children) END) AS children FROM (SELECT GROUP_CONCAT(lv SEPARATOR ',') AS children FROM (SELECT @pv:=(SELECT GROUP_CONCAT(DISTINCT relation1.id_src_attribute SEPARATOR ',') FROM taxonomy_relation AS relation1 WHERE relation1.id_taxonomy = taxonomyId AND relation1.id_relation > 2 AND FIND_IN_SET(relation1.id_dest_attribute, @pv)) AS lv FROM taxonomy_relation AS relation2 JOIN (SELECT @pv:=cursor_id_attribute) tmp ON (relation2.id_taxonomy = taxonomyId)) a) b)); + END LOOP; + CLOSE cursor_i; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `insertallparentsperattribute` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`localhost` PROCEDURE `insertallparentsperattribute`(taxonomyId INT(11)) +BEGIN + DECLARE cursor_id_attribute INT(11); + DECLARE cursor_text VARCHAR(50); + DECLARE done INT DEFAULT FALSE; + DECLARE cursor_i CURSOR FOR SELECT id_attribute, text FROM attribute; + DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + DELETE FROM allparentsperattribute WHERE id_taxonomy = taxonomyId; + OPEN cursor_i; + read_loop: LOOP + FETCH cursor_i INTO cursor_id_attribute, cursor_text; + IF done THEN + LEAVE read_loop; + END IF; + INSERT IGNORE INTO allparentsperattribute(id_attribute, id_taxonomy, text, parents) VALUES(cursor_id_attribute, taxonomyId, cursor_text, (SELECT (CASE WHEN b.parents IS NULL THEN "" ELSE b.parents END) AS parents FROM (SELECT GROUP_CONCAT(lv SEPARATOR ',') AS parents FROM (SELECT @pv:=(SELECT GROUP_CONCAT(DISTINCT parent.text SEPARATOR ',') FROM taxonomy_relation AS relation1 INNER JOIN attribute as parent ON (relation1.id_dest_attribute = parent.id_attribute AND parent.id_taxonomy = taxonomyId) WHERE relation1.id_taxonomy = taxonomyId AND relation1.id_relation > 2 AND FIND_IN_SET((SELECT DISTINCT text FROM attribute WHERE id_attribute = relation1.id_src_attribute AND id_taxonomy = taxonomyId), @pv)) AS lv FROM taxonomy_relation JOIN (SELECT @pv:=text FROM attribute WHERE id_attribute = cursor_id_attribute AND id_taxonomy = taxonomyId) tmp) a) b)); + END LOOP; + CLOSE cursor_i; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; + +-- +-- Final view structure for view `paper_merged_attributes` +-- + +/*!50001 DROP VIEW IF EXISTS `paper_merged_attributes`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8 */; +/*!50001 SET character_set_results = utf8 */; +/*!50001 SET collation_connection = utf8_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ +/*!50001 VIEW `paper_merged_attributes` AS select 1 AS `id_taxonomy`,1 AS `id_paper`,1 AS `citation`,1 AS `bib`,1 AS `atts`,1 AS `leaf_atts` */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2018-01-29 17:33:52 diff --git a/collective-review/hello.go b/collective-review/hello.go index 6fdf871..f31b318 100644 --- a/collective-review/hello.go +++ b/collective-review/hello.go @@ -5,9 +5,9 @@ import ( "net/url" "strconv" - "github.com/mr-ma/paper-review-go/data" - "github.com/mr-ma/paper-review-go/model" - "github.com/rcrowley/go-tigertonic" + "../data" + "../model" + "../go-tigertonic" ) //MyRequest standard request @@ -26,7 +26,7 @@ type MyResponse struct { // return http.StatusOK, nil, &MyResponse{"ID", "STUFF"}, nil // } func postResearchHandler(u *url.URL, h http.Header, research *model.Research) (int, http.Header, *MyResponse, error) { - driver := data.InitMySQLDriver() + driver := data.InitMysqlDriver(*mysqlUser, *mysqlPassword) _, id, err := driver.InsertResearch(*research) checkErr(err) return http.StatusOK, nil, &MyResponse{strconv.FormatInt(id, 10), "Research inserted"}, nil @@ -41,14 +41,14 @@ func postVoteHandler(u *url.URL, h http.Header, vote *model.Vote) (int, http.Hea if vote.AssociatedArticleID <= 0 { return http.StatusNotAcceptable, nil, &MyResponse{"0", "Article id is missing"}, nil } - driver := data.InitMySQLDriver() + driver := data.InitMysqlDriver(*mysqlUser, *mysqlPassword) _, id, err := driver.InsertVote(*vote) checkErr(err) return http.StatusOK, nil, &MyResponse{strconv.FormatInt(id, 10), "Vote inserted"}, nil } func getResearchHandler(u *url.URL, h http.Header, r *MyRequest) (int, http.Header, *MyResponse, error) { // fmt.Println("in getResearchHandler") - driver := data.InitMySQLDriver() + driver := data.InitMysqlDriver(*mysqlUser, *mysqlPassword) resp := MyResponse{} if i, _ := strconv.ParseInt(u.Query().Get("id"), 10, 64); i > 0 { // fmt.Println(u.Query().Get("id")) @@ -64,7 +64,7 @@ func getResearchHandler(u *url.URL, h http.Header, r *MyRequest) (int, http.Head return http.StatusOK, nil, &resp, nil } func getVoteHandler(u *url.URL, h http.Header, r *MyRequest) (int, http.Header, *MyResponse, error) { - driver := data.InitMySQLDriver() + driver := data.InitMysqlDriver(*mysqlUser, *mysqlPassword) resp := MyResponse{} if i, _ := strconv.ParseInt(u.Query().Get("id"), 10, 64); i > 0 { //fmt.Println(u.Query().Get("id")) @@ -80,7 +80,7 @@ func getVoteHandler(u *url.URL, h http.Header, r *MyRequest) (int, http.Header, return http.StatusOK, nil, &resp, nil } func getVotesHandler(u *url.URL, h http.Header, r *MyRequest) (int, http.Header, *MyResponse, error) { - driver := data.InitMySQLDriver() + driver := data.InitMysqlDriver(*mysqlUser, *mysqlPassword) resp := MyResponse{} if i, _ := strconv.ParseInt(u.Query().Get("researchID"), 10, 64); i > 0 { //fmt.Println(u.Query().Get("researchID")) @@ -97,7 +97,7 @@ func getVotesHandler(u *url.URL, h http.Header, r *MyRequest) (int, http.Header, return http.StatusOK, nil, &resp, nil } func getReviewHandler(u *url.URL, h http.Header, r *MyRequest) (int, http.Header, *MyResponse, error) { - driver := data.InitMySQLDriver() + driver := data.InitMysqlDriver(*mysqlUser, *mysqlPassword) researchID, err := strconv.ParseInt(u.Query().Get("researchID"), 10, 32) if err != nil { return http.StatusNotAcceptable, nil, &MyResponse{"0", "researchID is missing"}, nil @@ -127,13 +127,13 @@ func getReviewHandler(u *url.URL, h http.Header, r *MyRequest) (int, http.Header } func postMitarbeiterHandler(u *url.URL, h http.Header, mitarbeiter *model.Mitarbeiter) (int, http.Header, *MyResponse, error) { - driver := data.InitMySQLDriver() + driver := data.InitMysqlDriver(*mysqlUser, *mysqlPassword) _, id, err := driver.InsertMitarbeiter(*mitarbeiter) checkErr(err) return http.StatusOK, nil, &MyResponse{strconv.FormatInt(id, 10), "Mitarbeiter inserted"}, nil } func getMitarbeiterHandler(u *url.URL, h http.Header, r *MyRequest) (int, http.Header, *MyResponse, error) { - driver := data.InitMySQLDriver() + driver := data.InitMysqlDriver(*mysqlUser, *mysqlPassword) resp := MyResponse{} if i, _ := strconv.ParseInt(u.Query().Get("id"), 10, 64); i > 0 { //fmt.Println(u.Query().Get("id")) @@ -150,7 +150,7 @@ func getMitarbeiterHandler(u *url.URL, h http.Header, r *MyRequest) (int, http.H } func getTagsHandler(u *url.URL, h http.Header, r *MyRequest) (int, http.Header, *MyResponse, error) { - driver := data.InitMySQLDriver() + driver := data.InitMysqlDriver(*mysqlUser, *mysqlPassword) if i, _ := strconv.ParseInt(u.Query().Get("researchID"), 10, 64); i > 0 { tags, err := driver.SelectAllTags(i) if err != nil { @@ -163,7 +163,7 @@ func getTagsHandler(u *url.URL, h http.Header, r *MyRequest) (int, http.Header, } func getApprovedHandler(u *url.URL, h http.Header, r *MyRequest) (int, http.Header, *MyResponse, error) { - driver := data.InitMySQLDriver() + driver := data.InitMysqlDriver(*mysqlUser, *mysqlPassword) researchID, err := strconv.ParseInt(u.Query().Get("researchID"), 10, 64) if err != nil { return http.StatusNotAcceptable, nil, &MyResponse{"0", "researchID is missing"}, nil @@ -178,7 +178,7 @@ func getApprovedHandler(u *url.URL, h http.Header, r *MyRequest) (int, http.Head } func getReviewStatsHandler(u *url.URL, h http.Header, r *MyRequest) (int, http.Header, *MyResponse, error) { - driver := data.InitMySQLDriver() + driver := data.InitMysqlDriver(*mysqlUser, *mysqlPassword) resp := MyResponse{} researchID, err := strconv.ParseInt(u.Query().Get("researchID"), 10, 64) if err != nil { diff --git a/data/classification-driver.go b/data/classification-driver.go index afe30ec..92402a0 100644 --- a/data/classification-driver.go +++ b/data/classification-driver.go @@ -4,6 +4,7 @@ import ( //"time" "strings" "../gabs" + "sort" //"../docconv" "fmt" "math/rand" @@ -80,6 +81,7 @@ type ClassificationDriver interface { AddAttribute(int64, model.Attribute) (model.Result, error) AddDimension(int64, string) (model.Result, error) RenameAttribute(int64, string, string) (model.Result, error) + UpdateSynonyms(int64, string, string) (model.Result, error) RenameDimension(int64, string, string) (model.Result, error) AddTaxonomyRelation(model.AttributeRelation) (model.Result, error) DeleteCitation(model.Paper) (model.Result, error) @@ -382,7 +384,7 @@ func (d MySQLDriver) GetAllAttributes(taxonomyId int64) (attributes []model.Attr defer dbRef.Close() checkErr(err) taxonomyIdStr := strconv.Itoa(int(taxonomyId)) - db, stmt, err := d.Query(`select distinct attribute.id_attribute as id, attribute.text, allparentsperattribute.parents as parentText, dimension.text as dimensionText + db, stmt, err := d.Query(`select distinct attribute.id_attribute as id, attribute.text, allparentsperattribute.parents as parentText, dimension.text as dimensionText, attribute.synonyms from attribute inner join allparentsperattribute on (attribute.id_attribute = allparentsperattribute.id_attribute and attribute.id_taxonomy = ` + taxonomyIdStr + `) left outer join taxonomy_dimension on (attribute.id_attribute = taxonomy_dimension.id_attribute) left outer join dimension on (taxonomy_dimension.id_dimension = dimension.id_dimension) order by attribute.id_attribute;`) defer stmt.Close() defer db.Close() @@ -390,7 +392,7 @@ func (d MySQLDriver) GetAllAttributes(taxonomyId int64) (attributes []model.Attr checkErr(err) for rows.Next() { a := model.Attribute{} - rows.Scan(&a.ID,&a.Text,&a.ParentText,&a.Dimension) + rows.Scan(&a.ID,&a.Text,&a.ParentText,&a.Dimension,&a.Synonyms) attributes = append(attributes, a) } defer rows.Close() @@ -403,15 +405,15 @@ func (d MySQLDriver) GetLeafAttributes(taxonomyId int64) (attributes []model.Att defer dbRef.Close() checkErr(err) taxonomyIdStr := strconv.Itoa(int(taxonomyId)) - db, stmt, err := d.Query(`select distinct attr.id_attribute as id1, attr.text as attr1, allparentsperattribute.parents as parentText, dimension.text as dimensionText - from (select distinct attribute.id_attribute, attribute.text from attribute left outer join taxonomy_relation on (attribute.id_attribute = taxonomy_relation.id_dest_attribute and taxonomy_relation.id_relation > 2) where attribute.id_taxonomy = ` + taxonomyIdStr + ` and taxonomy_relation.id_taxonomy_relation IS NULL) as attr inner join allparentsperattribute on (attr.id_attribute = allparentsperattribute.id_attribute) left outer join taxonomy_dimension on (attr.id_attribute = taxonomy_dimension.id_attribute) left outer join dimension on (taxonomy_dimension.id_dimension = dimension.id_dimension) order by attr.id_attribute;`) + db, stmt, err := d.Query(`select distinct attr.id_attribute as id1, attr.text as attr1, allparentsperattribute.parents as parentText, dimension.text as dimensionText, attr.synonyms + from (select distinct attribute.id_attribute, attribute.text, attribute.synonyms from attribute left outer join taxonomy_relation on (attribute.id_attribute = taxonomy_relation.id_dest_attribute and taxonomy_relation.id_relation > 2) where attribute.id_taxonomy = ` + taxonomyIdStr + ` and taxonomy_relation.id_taxonomy_relation IS NULL) as attr inner join allparentsperattribute on (attr.id_attribute = allparentsperattribute.id_attribute) left outer join taxonomy_dimension on (attr.id_attribute = taxonomy_dimension.id_attribute) left outer join dimension on (taxonomy_dimension.id_dimension = dimension.id_dimension) order by attr.id_attribute;`) defer stmt.Close() defer db.Close() rows, err := stmt.Query() checkErr(err) for rows.Next() { a := model.Attribute{} - rows.Scan(&a.ID,&a.Text,&a.ParentText,&a.Dimension) + rows.Scan(&a.ID,&a.Text,&a.ParentText,&a.Dimension,&a.Synonyms) attributes = append(attributes, a) } defer rows.Close() @@ -912,14 +914,14 @@ func (d MySQLDriver) GetAllDimensions(taxonomyId int64) (dimensions []model.Dime defer dbRef.Close() checkErr(err) taxonomyIdStr := strconv.Itoa(int(taxonomyId)) - db, stmt, err := d.Query("select distinct attribute1.id_attribute as id1, attribute1.text as attr1, relation.parentID as parentID, relation.parentText as parentText from attribute as attribute1 left outer join (select distinct taxonomy_relation.id_src_attribute, attribute2.id_attribute as parentID, attribute2.text as parentText from taxonomy_relation inner join attribute as attribute2 on (attribute2.id_taxonomy = " + taxonomyIdStr + " and taxonomy_relation.id_dest_attribute = attribute2.id_attribute and taxonomy_relation.id_relation > 2)) as relation on (attribute1.id_attribute = relation.id_src_attribute) where attribute1.text = \"" + text + "\" and attribute1.id_taxonomy = " + taxonomyIdStr + " order by attribute1.id_attribute;") + db, stmt, err := d.Query("select distinct attribute1.id_attribute as id1, attribute1.text as attr1, relation.parentID as parentID, relation.parentText as parentText, attribute1.synonyms from attribute as attribute1 left outer join (select distinct taxonomy_relation.id_src_attribute, attribute2.id_attribute as parentID, attribute2.text as parentText from taxonomy_relation inner join attribute as attribute2 on (attribute2.id_taxonomy = " + taxonomyIdStr + " and taxonomy_relation.id_dest_attribute = attribute2.id_attribute and taxonomy_relation.id_relation > 2)) as relation on (attribute1.id_attribute = relation.id_src_attribute) where attribute1.text = \"" + text + "\" and attribute1.id_taxonomy = " + taxonomyIdStr + " order by attribute1.id_attribute;") defer stmt.Close() defer db.Close() rows, err := stmt.Query() checkErr(err) for rows.Next() { a := model.Attribute{} - rows.Scan(&a.ID,&a.Text,&a.ParentID,&a.ParentText) + rows.Scan(&a.ID,&a.Text,&a.ParentID,&a.ParentText,&a.Synonyms) attributes = append(attributes, a) } defer rows.Close() @@ -1044,14 +1046,14 @@ func (d MySQLDriver) GetAllDimensions(taxonomyId int64) (dimensions []model.Dime defer dbRef.Close() checkErr(err) taxonomyIdStr := strconv.Itoa(int(taxonomyId)) - db, stmt, err := d.Query("select distinct attr.id_attribute, attr.text, allparentsperattribute.parents as parentText, attr.dimensionText, attr.major, attr.x, attr.y, attr.x3D, attr.y3D, attr.z3D from (select attribute.id_attribute, attribute.text, dimension.text as dimensionText, attribute.major, attribute.x, attribute.y, attribute.x3D, attribute.y3D, attribute.z3D from attribute inner join taxonomy_dimension on (attribute.id_taxonomy = " + taxonomyIdStr + " and attribute.id_attribute = taxonomy_dimension.id_attribute) inner join dimension on (taxonomy_dimension.id_dimension = dimension.id_dimension and dimension.text = \"" + dimension + "\" and dimension.id_taxonomy = " + taxonomyIdStr + ")) as attr inner join allparentsperattribute on (attr.id_attribute = allparentsperattribute.id_attribute) order by attr.id_attribute;") + db, stmt, err := d.Query("select distinct attr.id_attribute, attr.text, allparentsperattribute.parents as parentText, attr.dimensionText, attr.synonyms, attr.major, attr.x, attr.y, attr.x3D, attr.y3D, attr.z3D from (select attribute.id_attribute, attribute.text, dimension.text as dimensionText, attribute.synonyms, attribute.major, attribute.x, attribute.y, attribute.x3D, attribute.y3D, attribute.z3D from attribute inner join taxonomy_dimension on (attribute.id_taxonomy = " + taxonomyIdStr + " and attribute.id_attribute = taxonomy_dimension.id_attribute) inner join dimension on (taxonomy_dimension.id_dimension = dimension.id_dimension and dimension.text = \"" + dimension + "\" and dimension.id_taxonomy = " + taxonomyIdStr + ")) as attr inner join allparentsperattribute on (attr.id_attribute = allparentsperattribute.id_attribute) order by attr.id_attribute;") defer stmt.Close() defer db.Close() rows, err := stmt.Query() checkErr(err) for rows.Next() { a := model.Attribute{} - rows.Scan(&a.ID,&a.Text,&a.ParentText,&a.Dimension,&a.Major,&a.X,&a.Y,&a.X3D,&a.Y3D,&a.Z3D) + rows.Scan(&a.ID,&a.Text,&a.ParentText,&a.Dimension,&a.Synonyms,&a.Major,&a.X,&a.Y,&a.X3D,&a.Y3D,&a.Z3D) attributes = append(attributes, a) } defer rows.Close() @@ -1063,14 +1065,14 @@ func (d MySQLDriver) GetAllDimensions(taxonomyId int64) (dimensions []model.Dime defer dbRef.Close() checkErr(err) taxonomyIdStr := strconv.Itoa(int(taxonomyId)) - db, stmt, err := d.Query("select distinct attr.id_attribute, attr.text, allparentsperattribute.parents as parentText, attr.dimensionText, attr.major, attr.x, attr.y, attr.x3D, attr.y3D, attr.z3D from (select attribute.id_attribute, attribute.text, dimension.text as dimensionText, attribute.major, attribute.x, attribute.y, attribute.x3D, attribute.y3D, attribute.z3D from attribute inner join taxonomy_dimension on (attribute.id_taxonomy = " + taxonomyIdStr + " and attribute.id_attribute = taxonomy_dimension.id_attribute) inner join dimension on (taxonomy_dimension.id_dimension = dimension.id_dimension and dimension.text = \"" + dimension + "\" and dimension.id_taxonomy = " + taxonomyIdStr + ") left outer join taxonomy_relation on (attribute.id_attribute = taxonomy_relation.id_dest_attribute and taxonomy_relation.id_relation > 2) where taxonomy_relation.id_taxonomy_relation IS NULL) as attr inner join allparentsperattribute on (attr.id_attribute = allparentsperattribute.id_attribute) order by attr.id_attribute;") + db, stmt, err := d.Query("select distinct attr.id_attribute, attr.text, allparentsperattribute.parents as parentText, attr.dimensionText, attr.synonyms, attr.major, attr.x, attr.y, attr.x3D, attr.y3D, attr.z3D from (select attribute.id_attribute, attribute.text, dimension.text as dimensionText, attribute.synonyms, attribute.major, attribute.x, attribute.y, attribute.x3D, attribute.y3D, attribute.z3D from attribute inner join taxonomy_dimension on (attribute.id_taxonomy = " + taxonomyIdStr + " and attribute.id_attribute = taxonomy_dimension.id_attribute) inner join dimension on (taxonomy_dimension.id_dimension = dimension.id_dimension and dimension.text = \"" + dimension + "\" and dimension.id_taxonomy = " + taxonomyIdStr + ") left outer join taxonomy_relation on (attribute.id_attribute = taxonomy_relation.id_dest_attribute and taxonomy_relation.id_relation > 2) where taxonomy_relation.id_taxonomy_relation IS NULL) as attr inner join allparentsperattribute on (attr.id_attribute = allparentsperattribute.id_attribute) order by attr.id_attribute;") defer stmt.Close() defer db.Close() rows, err := stmt.Query() checkErr(err) for rows.Next() { a := model.Attribute{} - rows.Scan(&a.ID,&a.Text,&a.ParentText,&a.Dimension,&a.Major,&a.X,&a.Y,&a.X3D,&a.Y3D,&a.Z3D) + rows.Scan(&a.ID,&a.Text,&a.ParentText,&a.Dimension,&a.Synonyms,&a.Major,&a.X,&a.Y,&a.X3D,&a.Y3D,&a.Z3D) attributes = append(attributes, a) } defer rows.Close() @@ -1172,7 +1174,7 @@ func (d MySQLDriver) GetAllDimensions(taxonomyId int64) (dimensions []model.Dime defer dbRef.Close() checkErr(err) taxonomyIdStr := strconv.Itoa(int(taxonomyId)) - db, stmt, err := d.Query("SELECT DISTINCT attr.id_attribute, attr.text, allparentsperattribute.parents AS parentText, dimension.text AS dimensionText FROM (SELECT DISTINCT attributeSrc.id_attribute, attributeSrc.text FROM attribute AS attributeSrc INNER JOIN (SELECT GROUP_CONCAT(lv SEPARATOR ',') AS children FROM (SELECT @pv:=(SELECT GROUP_CONCAT(DISTINCT relation1.id_src_attribute SEPARATOR ',') FROM taxonomy_relation AS relation1 WHERE relation1.id_taxonomy = " + taxonomyIdStr + " AND relation1.id_relation > 2 AND FIND_IN_SET(relation1.id_dest_attribute, @pv)) AS lv FROM taxonomy_relation JOIN (SELECT @pv:=attributeDest.id_attribute from attribute as attributeDest where attributeDest.text = \"" + parent + "\" and attributeDest.id_taxonomy = " + taxonomyIdStr + ") tmp) a) AS tmpTable on ((attributeSrc.text = \"" + parent + "\" AND attributeSrc.id_taxonomy = " + taxonomyIdStr + ") OR FIND_IN_SET(attributeSrc.id_attribute, tmpTable.children)) left outer join taxonomy_relation on (attributeSrc.id_attribute = taxonomy_relation.id_dest_attribute and taxonomy_relation.id_relation > 2) where taxonomy_relation.id_taxonomy_relation IS NULL) as attr inner join allparentsperattribute on (attr.id_attribute = allparentsperattribute.id_attribute) left outer join taxonomy_dimension on (attr.id_attribute = taxonomy_dimension.id_attribute) left outer join dimension on (taxonomy_dimension.id_dimension = dimension.id_dimension and dimension.id_taxonomy = " + taxonomyIdStr + ") order by attr.id_attribute;") + db, stmt, err := d.Query("SELECT DISTINCT attr.id_attribute, attr.text, allparentsperattribute.parents AS parentText, dimension.text AS dimensionText, attr.synonyms FROM (SELECT DISTINCT attributeSrc.id_attribute, attributeSrc.text, attributeSrc.synonyms FROM attribute AS attributeSrc INNER JOIN (SELECT GROUP_CONCAT(lv SEPARATOR ',') AS children FROM (SELECT @pv:=(SELECT GROUP_CONCAT(DISTINCT relation1.id_src_attribute SEPARATOR ',') FROM taxonomy_relation AS relation1 WHERE relation1.id_taxonomy = " + taxonomyIdStr + " AND relation1.id_relation > 2 AND FIND_IN_SET(relation1.id_dest_attribute, @pv)) AS lv FROM taxonomy_relation JOIN (SELECT @pv:=attributeDest.id_attribute from attribute as attributeDest where attributeDest.text = \"" + parent + "\" and attributeDest.id_taxonomy = " + taxonomyIdStr + ") tmp) a) AS tmpTable on ((attributeSrc.text = \"" + parent + "\" AND attributeSrc.id_taxonomy = " + taxonomyIdStr + ") OR FIND_IN_SET(attributeSrc.id_attribute, tmpTable.children)) left outer join taxonomy_relation on (attributeSrc.id_attribute = taxonomy_relation.id_dest_attribute and taxonomy_relation.id_relation > 2) where taxonomy_relation.id_taxonomy_relation IS NULL) as attr inner join allparentsperattribute on (attr.id_attribute = allparentsperattribute.id_attribute) left outer join taxonomy_dimension on (attr.id_attribute = taxonomy_dimension.id_attribute) left outer join dimension on (taxonomy_dimension.id_dimension = dimension.id_dimension and dimension.id_taxonomy = " + taxonomyIdStr + ") order by attr.id_attribute;") defer stmt.Close() defer stmt.Close() defer db.Close() @@ -1180,7 +1182,7 @@ func (d MySQLDriver) GetAllDimensions(taxonomyId int64) (dimensions []model.Dime checkErr(err) for rows.Next() { a := model.Attribute{} - rows.Scan(&a.ID,&a.Text,&a.ParentText,&a.Dimension) + rows.Scan(&a.ID,&a.Text,&a.ParentText,&a.Dimension,&a.Synonyms) attributes = append(attributes, a) } defer rows.Close() @@ -1214,14 +1216,14 @@ func (d MySQLDriver) GetAllDimensions(taxonomyId int64) (dimensions []model.Dime defer dbRef.Close() checkErr(err) taxonomyIdStr := strconv.Itoa(int(taxonomyId)) - db, stmt, err := d.Query("select distinct attribute.id_attribute, attribute.text, allparentsperattribute.parents as parentText, dimension.text as dimensionText, attribute.xMajor, attribute.yMajor, attribute.xMajor3D, attribute.yMajor3D, attribute.zMajor3D from attribute inner join allparentsperattribute on (attribute.id_taxonomy = " + taxonomyIdStr + " and attribute.id_attribute = allparentsperattribute.id_attribute) inner join taxonomy_dimension on (attribute.major = 1 and attribute.id_attribute = taxonomy_dimension.id_attribute) inner join dimension on (taxonomy_dimension.id_dimension = dimension.id_dimension and dimension.id_taxonomy = " + taxonomyIdStr + ") order by attribute.id_attribute;") + db, stmt, err := d.Query("select distinct attribute.id_attribute, attribute.text, allparentsperattribute.parents as parentText, dimension.text as dimensionText, attribute.synonyms, attribute.xMajor, attribute.yMajor, attribute.xMajor3D, attribute.yMajor3D, attribute.zMajor3D from attribute inner join allparentsperattribute on (attribute.id_taxonomy = " + taxonomyIdStr + " and attribute.id_attribute = allparentsperattribute.id_attribute) inner join taxonomy_dimension on (attribute.major = 1 and attribute.id_attribute = taxonomy_dimension.id_attribute) inner join dimension on (taxonomy_dimension.id_dimension = dimension.id_dimension and dimension.id_taxonomy = " + taxonomyIdStr + ") order by attribute.id_attribute;") defer stmt.Close() defer db.Close() rows, err := stmt.Query() checkErr(err) for rows.Next() { a := model.Attribute{} - rows.Scan(&a.ID,&a.Text,&a.ParentText,&a.Dimension,&a.X,&a.Y,&a.XMajor3D,&a.YMajor3D,&a.ZMajor3D) + rows.Scan(&a.ID,&a.Text,&a.ParentText,&a.Dimension,&a.Synonyms,&a.X,&a.Y,&a.XMajor3D,&a.YMajor3D,&a.ZMajor3D) a.Major = 1; attributes = append(attributes, a) } @@ -1351,14 +1353,6 @@ func (d MySQLDriver) GetAllDimensions(taxonomyId int64) (dimensions []model.Dime taxonomyIdStr := strconv.Itoa(int(taxonomyId)) future := make(chan model.Result) go func () { - /* - db, stmt, err := d.Query(`DROP PROCEDURE IF EXISTS insertallchildrenperattribute; DELIMITER ;; CREATE PROCEDURE insertallchildrenperattribute() BEGIN DECLARE cursor_id_attribute INT(10); DECLARE cursor_text VARCHAR(50); DECLARE done INT DEFAULT FALSE; DECLARE cursor_i CURSOR FOR SELECT id_attribute, text FROM attribute; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; DELETE FROM allChildrenPerAttribute; OPEN cursor_i; read_loop: LOOP FETCH cursor_i INTO cursor_id_attribute, cursor_text; IF done THEN LEAVE read_loop; END IF; INSERT INTO allChildrenPerAttribute(id_attribute, text, children) VALUES(cursor_id_attribute, cursor_text, (SELECT (CASE WHEN b.children IS NULL THEN CAST(cursor_id_attribute AS CHAR(50)) ELSE CONCAT(CAST(cursor_id_attribute AS CHAR(50)), ",", b.children) END) AS children FROM (SELECT GROUP_CONCAT(lv SEPARATOR ',') AS children FROM (SELECT @pv:=(SELECT GROUP_CONCAT(DISTINCT relation1.id_src_attribute SEPARATOR ',') FROM taxonomy_relation AS relation1 WHERE relation1.id_taxonomy = 1 AND relation1.id_relation > 2 AND FIND_IN_SET(relation1.id_dest_attribute, @pv)) AS lv FROM taxonomy_relation JOIN (SELECT @pv:=cursor_id_attribute) tmp) a) b)); END LOOP; CLOSE cursor_i; END; ;;`) - checkErr(err) - defer stmt.Close() - defer db.Close() - rows, err := stmt.Query() - defer rows.Close() - */ dbRef.Exec("CALL insertallchildrenperattribute(" + taxonomyIdStr + ");") defer dbRef.Close() future <- model.Result{Success: true} @@ -1372,14 +1366,6 @@ func (d MySQLDriver) GetAllDimensions(taxonomyId int64) (dimensions []model.Dime taxonomyIdStr := strconv.Itoa(int(taxonomyId)) future := make(chan model.Result) go func () { - /* - db, stmt, err := d.Query(`DROP PROCEDURE IF EXISTS insertallparentsperattribute; DELIMITER ;; CREATE PROCEDURE insertallparentsperattribute() BEGIN DECLARE cursor_id_attribute INT(10); DECLARE cursor_text VARCHAR(50); DECLARE done INT DEFAULT FALSE; DECLARE cursor_i CURSOR FOR SELECT id_attribute, text FROM attribute; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; DELETE FROM allParentsPerAttribute; OPEN cursor_i; read_loop: LOOP FETCH cursor_i INTO cursor_id_attribute, cursor_text; IF done THEN LEAVE read_loop; END IF; INSERT INTO allParentsPerAttribute(id_attribute, text, parents) VALUES(cursor_id_attribute, cursor_text, (SELECT (CASE WHEN b.parents IS NULL THEN "" ELSE b.parents END) AS parents FROM (SELECT GROUP_CONCAT(lv SEPARATOR ',') AS parents FROM (SELECT @pv:=(SELECT GROUP_CONCAT(DISTINCT parent.text SEPARATOR ',') FROM taxonomy_relation AS relation1 INNER JOIN attribute as parent ON (relation1.id_dest_attribute = parent.id_attribute) WHERE relation1.id_taxonomy = 1 AND relation1.id_relation > 2 AND FIND_IN_SET((SELECT DISTINCT text FROM attribute WHERE id_attribute = relation1.id_src_attribute), @pv)) AS lv FROM taxonomy_relation JOIN (SELECT @pv:=text FROM attribute WHERE id_attribute = cursor_id_attribute) tmp) a) b)); END LOOP; CLOSE cursor_i; END; ;;`) - checkErr(err) - defer stmt.Close() - defer db.Close() - rows, err := stmt.Query() - defer rows.Close() - */ dbRef.Exec("CALL insertallparentsperattribute(" + taxonomyIdStr + ");") defer dbRef.Close() future <- model.Result{Success: true} @@ -1473,6 +1459,16 @@ func (d MySQLDriver) GetAllDimensions(taxonomyId int64) (dimensions []model.Dime return result, err } + func (d MySQLDriver) UpdateSynonyms(taxonomyId int64, attribute string, synonyms string) (result model.Result, err error){ + dbRef, err := d.OpenDB() + defer dbRef.Close() + checkErr(err) + taxonomyIdStr := strconv.Itoa(int(taxonomyId)) + dbRef.Exec("UPDATE attribute SET synonyms = \"" + synonyms + "\" WHERE text = \"" + attribute + "\" AND id_taxonomy = " + taxonomyIdStr + ";") + result.Success = true + return result, err + } + func (d MySQLDriver) RenameDimension(taxonomyId int64, previousName string, newName string) (result model.Result, err error){ dbRef, err := d.OpenDB() defer dbRef.Close() @@ -1788,27 +1784,34 @@ func (d MySQLDriver) GetAllDimensions(taxonomyId int64) (dimensions []model.Dime attributes = append(attributes, a) } defer rows.Close() - for _, elem := range attributes { - idStr := strconv.Itoa(elem.ID) + for i, _ := range attributes { + idStr := strconv.Itoa(attributes[i].ID) db, stmt, err = d.Query("SELECT id_paper FROM mapping WHERE id_attribute = " + idStr + ";") checkErr(err) rows, err = stmt.Query() checkErr(err) stmt.Close() db.Close() - paperIDs := []int{} + attributes[i].PaperIDs = []int{} for rows.Next() { var paperID int rows.Scan(&paperID) - paperIDs = append(paperIDs, paperID) + attributes[i].PaperIDs = append(attributes[i].PaperIDs, paperID) } - rows.Close() + defer rows.Close() + } + // sort attributes + sort.Slice(attributes, func(i, j int) bool { + return len(attributes[i].PaperIDs) < len(attributes[j].PaperIDs) + }) + for i, elem := range attributes { + fmt.Println(attributes[i].Text + ": " + strconv.Itoa(len(attributes[i].PaperIDs))) max := 0 clusterIndex := 0 for clusterID, cluster := range clusters { count := 0 for _, id := range cluster.Papers { - for _, paperID := range paperIDs { + for _, paperID := range elem.PaperIDs { if id == paperID { count++ break @@ -1821,6 +1824,18 @@ func (d MySQLDriver) GetAllDimensions(taxonomyId int64) (dimensions []model.Dime } } clusters[clusterIndex].Attributes = append(clusters[clusterIndex].Attributes, elem.Text) + for _, paperID := range elem.PaperIDs { + found := false + for _, clusterPaperID := range clusters[clusterIndex].Papers { + if paperID == clusterPaperID { + found = true + break + } + } + if !found { + clusters[clusterIndex].Papers = append(clusters[clusterIndex].Papers, paperID) + } + } } return clusters, err } \ No newline at end of file diff --git a/data/paper-review-driver.go b/data/paper-review-driver.go index 2330178..adf4a5f 100644 --- a/data/paper-review-driver.go +++ b/data/paper-review-driver.go @@ -33,8 +33,8 @@ type PaperReviewDriver interface { //InitMySQLDriver initialize a new my sql driver instance -func InitMySQLDriver(user string, password string) PaperReviewDriver { - return MySQLDriver{username: user, pass: password, database: "paper_review"} +func InitPaperReviewDriver(user string, password string) PaperReviewDriver { + return MySQLDriver{username: user, pass: password, database: "classification"} } diff --git a/db-schema.sql b/db-schema.sql index c31412d..274b5e7 100644 --- a/db-schema.sql +++ b/db-schema.sql @@ -1,8 +1,8 @@ -CREATE DATABASE IF NOT EXISTS `paper_review` /*!40100 DEFAULT CHARACTER SET utf8 */; -USE `paper_review`; +CREATE DATABASE IF NOT EXISTS `classification` /*!40100 DEFAULT CHARACTER SET utf8 */; +USE `classification`; -- MySQL dump 10.13 Distrib 5.7.9, for Win64 (x86_64) -- --- Host: localhost Database: paper_review +-- Host: localhost Database: classification -- ------------------------------------------------------ -- Server version 5.7.12-log @@ -176,7 +176,7 @@ CREATE TABLE `votes` ( /*!50001 SET collation_connection = utf8_general_ci */; /*!50001 CREATE ALGORITHM=UNDEFINED */ /*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ -/*!50001 VIEW `articles_view` AS select `distict_articles`.`ArticleId` AS `ArticleId`,`distict_articles`.`Title` AS `Title`,`distict_articles`.`year` AS `year`,`distict_articles`.`cited_by` AS `cited_by`,`distict_articles`.`Keywords` AS `Keywords`,`distict_articles`.`Abstract` AS `Abstract`,`distict_articles`.`Journal` AS `Journal`,`distict_articles`.`ResearchId` AS `ResearchId`,`distict_articles`.`Authors` AS `Authors`,`distict_articles`.`File` AS `File`,`distict_articles`.`Source` AS `Source` from (select max(`a`.`ArticleId`) AS `ArticleId`,`a`.`Title` AS `Title`,max(cast(`a`.`year` as unsigned)) AS `year`,max(cast(`a`.`cited_by` as unsigned)) AS `cited_by`,max(`a`.`Keywords`) AS `Keywords`,max(`a`.`Abstract`) AS `Abstract`,max(`a`.`Journal`) AS `Journal`,`a`.`ResearchId` AS `ResearchId`,max(`a`.`Authors`) AS `Authors`,min(`a`.`File`) AS `File`,max(`a`.`Source`) AS `Source`,max(`a`.`Enabled`) AS `Enabled` from `paper_review`.`articles` `a` group by `a`.`Title`,`a`.`ResearchId`) `distict_articles` where (`distict_articles`.`Enabled` = 1) */; +/*!50001 VIEW `articles_view` AS select `distict_articles`.`ArticleId` AS `ArticleId`,`distict_articles`.`Title` AS `Title`,`distict_articles`.`year` AS `year`,`distict_articles`.`cited_by` AS `cited_by`,`distict_articles`.`Keywords` AS `Keywords`,`distict_articles`.`Abstract` AS `Abstract`,`distict_articles`.`Journal` AS `Journal`,`distict_articles`.`ResearchId` AS `ResearchId`,`distict_articles`.`Authors` AS `Authors`,`distict_articles`.`File` AS `File`,`distict_articles`.`Source` AS `Source` from (select max(`a`.`ArticleId`) AS `ArticleId`,`a`.`Title` AS `Title`,max(cast(`a`.`year` as unsigned)) AS `year`,max(cast(`a`.`cited_by` as unsigned)) AS `cited_by`,max(`a`.`Keywords`) AS `Keywords`,max(`a`.`Abstract`) AS `Abstract`,max(`a`.`Journal`) AS `Journal`,`a`.`ResearchId` AS `ResearchId`,max(`a`.`Authors`) AS `Authors`,min(`a`.`File`) AS `File`,max(`a`.`Source`) AS `Source`,max(`a`.`Enabled`) AS `Enabled` from `classification`.`articles` `a` group by `a`.`Title`,`a`.`ResearchId`) `distict_articles` where (`distict_articles`.`Enabled` = 1) */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; @@ -194,7 +194,7 @@ CREATE TABLE `votes` ( /*!50001 SET collation_connection = utf8_general_ci */; /*!50001 CREATE ALGORITHM=UNDEFINED */ /*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ -/*!50001 VIEW `unique_articles_view` AS select `distict_articles`.`ArticleId` AS `ArticleId`,`distict_articles`.`Title` AS `Title`,`distict_articles`.`year` AS `year`,`distict_articles`.`cited_by` AS `cited_by`,`distict_articles`.`Keywords` AS `Keywords`,`distict_articles`.`Abstract` AS `Abstract`,`distict_articles`.`Journal` AS `Journal`,`distict_articles`.`ResearchId` AS `ResearchId`,`distict_articles`.`Authors` AS `Authors`,`distict_articles`.`File` AS `File`,`distict_articles`.`Source` AS `Source` from (select max(`a`.`ArticleId`) AS `ArticleId`,`a`.`Title` AS `Title`,max(cast(`a`.`year` as unsigned)) AS `year`,max(cast(`a`.`cited_by` as unsigned)) AS `cited_by`,max(`a`.`Keywords`) AS `Keywords`,max(`a`.`Abstract`) AS `Abstract`,max(`a`.`Journal`) AS `Journal`,`a`.`ResearchId` AS `ResearchId`,max(`a`.`Authors`) AS `Authors`,min(`a`.`File`) AS `File`,max(`a`.`Source`) AS `Source`,max(`a`.`Enabled`) AS `Enabled` from `paper_review`.`articles` `a` group by `a`.`Title`,`a`.`ResearchId`) `distict_articles` */; +/*!50001 VIEW `unique_articles_view` AS select `distict_articles`.`ArticleId` AS `ArticleId`,`distict_articles`.`Title` AS `Title`,`distict_articles`.`year` AS `year`,`distict_articles`.`cited_by` AS `cited_by`,`distict_articles`.`Keywords` AS `Keywords`,`distict_articles`.`Abstract` AS `Abstract`,`distict_articles`.`Journal` AS `Journal`,`distict_articles`.`ResearchId` AS `ResearchId`,`distict_articles`.`Authors` AS `Authors`,`distict_articles`.`File` AS `File`,`distict_articles`.`Source` AS `Source` from (select max(`a`.`ArticleId`) AS `ArticleId`,`a`.`Title` AS `Title`,max(cast(`a`.`year` as unsigned)) AS `year`,max(cast(`a`.`cited_by` as unsigned)) AS `cited_by`,max(`a`.`Keywords`) AS `Keywords`,max(`a`.`Abstract`) AS `Abstract`,max(`a`.`Journal`) AS `Journal`,`a`.`ResearchId` AS `ResearchId`,max(`a`.`Authors`) AS `Authors`,min(`a`.`File`) AS `File`,max(`a`.`Source`) AS `Source`,max(`a`.`Enabled`) AS `Enabled` from `classification`.`articles` `a` group by `a`.`Title`,`a`.`ResearchId`) `distict_articles` */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; diff --git a/frontend/src/js/editableTable.js b/frontend/src/js/editableTable.js index 4fe5fb5..e7ac096 100644 --- a/frontend/src/js/editableTable.js +++ b/frontend/src/js/editableTable.js @@ -124,7 +124,7 @@ var cancel = 'glyphicon glyphicon-floppy-remove'; function initTable( tableHeader, rowData ) { $('#addRow').prop('disabled', false); - var table = '
' + tableHeader + ''; + var table = '
' + tableHeader + ''; rowData.forEach ( function (entry) { table = table + ''; }); diff --git a/frontend/src/js/levenshtein.min.js b/frontend/src/js/levenshtein.min.js new file mode 100644 index 0000000..a696a4e --- /dev/null +++ b/frontend/src/js/levenshtein.min.js @@ -0,0 +1,3 @@ +// https://raw.githubusercontent.com/hiddentao/fast-levenshtein/master/levenshtein.min.js +/*! fast-levenshtein 2016-12-27. Copyright Ramesh Nair (http://www.hiddentao.com/) */ +!function(){"use strict";var a;try{a="undefined"!=typeof Intl&&"undefined"!=typeof Intl.Collator?Intl.Collator("generic",{sensitivity:"base"}):null}catch(b){console.log("Collator could not be initialized and wouldn't be used")}var c=[],d=[],e={get:function(b,e,f){var g=f&&a&&f.useCollator,h=b.length,i=e.length;if(0===h)return i;if(0===i)return h;var j,k,l,m,n;for(l=0;i>l;++l)c[l]=l,d[l]=e.charCodeAt(l);c[i]=i;var o;if(g)for(l=0;h>l;++l){for(k=l+1,m=0;i>m;++m)j=k,o=0===a.compare(b.charAt(l),String.fromCharCode(d[m])),k=c[m]+(o?0:1),n=j+1,k>n&&(k=n),n=c[m+1]+1,k>n&&(k=n),c[m]=j;c[m]=k}else for(l=0;h>l;++l){for(k=l+1,m=0;i>m;++m)j=k,o=b.charCodeAt(l)===d[m],k=c[m]+(o?0:1),n=j+1,k>n&&(k=n),n=c[m+1]+1,k>n&&(k=n),c[m]=j;c[m]=k}return k}};"undefined"!=typeof define&&null!==define&&define.amd?define(function(){return e}):"undefined"!=typeof module&&null!==module&&"undefined"!=typeof exports&&module.exports===exports?module.exports=e:"undefined"!=typeof self&&"function"==typeof self.postMessage&&"function"==typeof self.importScripts?self.Levenshtein=e:"undefined"!=typeof window&&null!==window&&(window.Levenshtein=e)}(); \ No newline at end of file diff --git a/frontend/src/js/liquidmetal.js b/frontend/src/js/liquidmetal.js new file mode 100644 index 0000000..d01e87b --- /dev/null +++ b/frontend/src/js/liquidmetal.js @@ -0,0 +1,136 @@ +// https://raw.githubusercontent.com/rmm5t/liquidmetal/master/liquidmetal.js +/** + * LiquidMetal, version: 1.3.0 (2014-08-19) + * + * A mimetic poly-alloy of Quicksilver's scoring algorithm, essentially + * LiquidMetal. + * + * For usage and examples, visit: + * http://github.com/rmm5t/liquidmetal + * + * Licensed under the MIT: + * http://www.opensource.org/licenses/mit-license.php + * + * Copyright (c) 2009-2017, Ryan McGeary (ryan -[at]- mcgeary [*dot*] org) + */ +(function(global) { + var SCORE_NO_MATCH = 0.0; + var SCORE_MATCH = 1.0; + var SCORE_TRAILING = 0.8; + var SCORE_TRAILING_BUT_STARTED = 0.9; + var SCORE_BUFFER = 0.85; + var WORD_SEPARATORS = " \t_-"; + + var LiquidMetal = { + lastScore: null, + lastScoreArray: null, + + score: function(string, abbrev) { + // short circuits + if (abbrev.length === 0) return SCORE_TRAILING; + if (abbrev.length > string.length) return SCORE_NO_MATCH; + + // match & score all + var allScores = []; + var search = string.toLowerCase(); + abbrev = abbrev.toLowerCase(); + this._scoreAll(string, search, abbrev, -1, 0, [], allScores); + + // complete miss + if (allScores.length == 0) return 0; + + // sum per-character scores into overall scores, + // selecting the maximum score + var maxScore = 0.0, maxArray = []; + for (var i = 0; i < allScores.length; i++) { + var scores = allScores[i]; + var scoreSum = 0.0; + for (var j = 0; j < string.length; j++) { scoreSum += scores[j]; } + if (scoreSum > maxScore) { + maxScore = scoreSum; + maxArray = scores; + } + } + + // normalize max score by string length + // s. t. the perfect match score = 1 + maxScore /= string.length; + + // record maximum score & score array, return + this.lastScore = maxScore; + this.lastScoreArray = maxArray; + return maxScore; + }, + + _scoreAll: function(string, search, abbrev, searchIndex, abbrIndex, scores, allScores) { + // save completed match scores at end of search + if (abbrIndex == abbrev.length) { + // add trailing score for the remainder of the match + var started = (search.charAt(0) == abbrev.charAt(0)); + var trailScore = started ? SCORE_TRAILING_BUT_STARTED : SCORE_TRAILING; + fillArray(scores, trailScore, scores.length, string.length); + // save score clone (since reference is persisted in scores) + allScores.push(scores.slice(0)); + return; + } + + // consume current char to match + var c = abbrev.charAt(abbrIndex); + abbrIndex++; + + // cancel match if a character is missing + var index = search.indexOf(c, searchIndex); + if (index == -1) return; + + // match all instances of the abbreviaton char + var scoreIndex = searchIndex; // score section to update + while ((index = search.indexOf(c, searchIndex+1)) != -1) { + // score this match according to context + if (isNewWord(string, index)) { + scores[index-1] = 1; + fillArray(scores, SCORE_BUFFER, scoreIndex+1, index-1); + } + else if (isUpperCase(string, index)) { + fillArray(scores, SCORE_BUFFER, scoreIndex+1, index); + } + else { + fillArray(scores, SCORE_NO_MATCH, scoreIndex+1, index); + } + scores[index] = SCORE_MATCH; + + // consume matched string and continue search + searchIndex = index; + this._scoreAll(string, search, abbrev, searchIndex, abbrIndex, scores, allScores); + } + } + }; + + function isUpperCase(string, index) { + var c = string.charAt(index); + return ("A" <= c && c <= "Z"); + } + + function isNewWord(string, index) { + var c = string.charAt(index-1); + return (WORD_SEPARATORS.indexOf(c) != -1); + } + + function fillArray(array, value, from, to) { + for (var i = from; i < to; i++) { array[i] = value; } + return array; + } + + // Export as AMD... + if (typeof define === 'function' && define.amd) { + define(function () { return LiquidMetal; }); + } + + // ...or as a node module + else if (typeof module !== 'undefined' && module.exports) { + module.exports = LiquidMetal; + } + + else { + global.LiquidMetal = LiquidMetal; + } +})(typeof window !== 'undefined' ? window : this); diff --git a/frontend/src/js/three/DragControls.js b/frontend/src/js/three/DragControls.js deleted file mode 100644 index 40698f3..0000000 --- a/frontend/src/js/three/DragControls.js +++ /dev/null @@ -1,283 +0,0 @@ -// https://threejs.org/examples/js/controls/DragControls.js -/* - * @author zz85 / https://github.com/zz85 - * @author mrdoob / http://mrdoob.com - * Running this will allow you to drag three.js objects around the screen. - */ - -THREE.DragControls = function ( _objects, _camera, _domElement ) { - - if ( _objects instanceof THREE.Camera ) { - - console.warn( 'THREE.DragControls: Constructor now expects ( objects, camera, domElement )' ); - var temp = _objects; _objects = _camera; _camera = temp; - - } - - var _plane = new THREE.Plane(); - var _raycaster = new THREE.Raycaster(); - - var _mouse = new THREE.Vector2(); - var _offset = new THREE.Vector3(); - var _intersection = new THREE.Vector3(); - - var _selected = null, _hovered = null; - - // - - var scope = this; - - function activate() { - - _domElement.addEventListener( 'mousemove', onDocumentMouseMove, false ); - _domElement.addEventListener( 'mousedown', onDocumentMouseDown, false ); - _domElement.addEventListener( 'mouseup', onDocumentMouseCancel, false ); - _domElement.addEventListener( 'mouseleave', onDocumentMouseCancel, false ); - _domElement.addEventListener( 'touchmove', onDocumentTouchMove, false ); - _domElement.addEventListener( 'touchstart', onDocumentTouchStart, false ); - _domElement.addEventListener( 'touchend', onDocumentTouchEnd, false ); - - } - - function deactivate() { - - _domElement.removeEventListener( 'mousemove', onDocumentMouseMove, false ); - _domElement.removeEventListener( 'mousedown', onDocumentMouseDown, false ); - _domElement.removeEventListener( 'mouseup', onDocumentMouseCancel, false ); - _domElement.removeEventListener( 'mouseleave', onDocumentMouseCancel, false ); - _domElement.removeEventListener( 'touchmove', onDocumentTouchMove, false ); - _domElement.removeEventListener( 'touchstart', onDocumentTouchStart, false ); - _domElement.removeEventListener( 'touchend', onDocumentTouchEnd, false ); - - } - - function dispose() { - - deactivate(); - - } - - function onDocumentMouseMove( event ) { - - event.preventDefault(); - - var rect = _domElement.getBoundingClientRect(); - - _mouse.x = ( ( event.clientX - rect.left ) / rect.width ) * 2 - 1; - _mouse.y = - ( ( event.clientY - rect.top ) / rect.height ) * 2 + 1; - - _raycaster.setFromCamera( _mouse, _camera ); - - if ( _selected && scope.enabled ) { - - if ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) { - - _selected.position.copy( _intersection.sub( _offset ) ); - - } - - scope.dispatchEvent( { type: 'drag', object: _selected } ); - - return; - - } - - _raycaster.setFromCamera( _mouse, _camera ); - - var intersects = _raycaster.intersectObjects( _objects ); - - if ( intersects.length > 0 ) { - - var object = intersects[ 0 ].object; - - _plane.setFromNormalAndCoplanarPoint( _camera.getWorldDirection( _plane.normal ), object.position ); - - if ( _hovered !== object ) { - - scope.dispatchEvent( { type: 'hoveron', object: object } ); - - _domElement.style.cursor = 'pointer'; - _hovered = object; - - } - - } else { - - if ( _hovered !== null ) { - - scope.dispatchEvent( { type: 'hoveroff', object: _hovered } ); - - _domElement.style.cursor = 'auto'; - _hovered = null; - - } - - } - - } - - function onDocumentMouseDown( event ) { - - event.preventDefault(); - - _raycaster.setFromCamera( _mouse, _camera ); - - var intersects = _raycaster.intersectObjects( _objects ); - - if ( intersects.length > 0 ) { - - _selected = intersects[ 0 ].object; - - if ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) { - - _offset.copy( _intersection ).sub( _selected.position ); - - } - - _domElement.style.cursor = 'move'; - - scope.dispatchEvent( { type: 'dragstart', object: _selected } ); - - } - - - } - - function onDocumentMouseCancel( event ) { - - event.preventDefault(); - - if ( _selected ) { - - scope.dispatchEvent( { type: 'dragend', object: _selected } ); - - _selected = null; - - } - - _domElement.style.cursor = 'auto'; - - } - - function onDocumentTouchMove( event ) { - - event.preventDefault(); - event = event.changedTouches[ 0 ]; - - var rect = _domElement.getBoundingClientRect(); - - _mouse.x = ( ( event.clientX - rect.left ) / rect.width ) * 2 - 1; - _mouse.y = - ( ( event.clientY - rect.top ) / rect.height ) * 2 + 1; - - _raycaster.setFromCamera( _mouse, _camera ); - - if ( _selected && scope.enabled ) { - - if ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) { - - _selected.position.copy( _intersection.sub( _offset ) ); - - } - - scope.dispatchEvent( { type: 'drag', object: _selected } ); - - return; - - } - - } - - function onDocumentTouchStart( event ) { - - event.preventDefault(); - event = event.changedTouches[ 0 ]; - - var rect = _domElement.getBoundingClientRect(); - - _mouse.x = ( ( event.clientX - rect.left ) / rect.width ) * 2 - 1; - _mouse.y = - ( ( event.clientY - rect.top ) / rect.height ) * 2 + 1; - - _raycaster.setFromCamera( _mouse, _camera ); - - var intersects = _raycaster.intersectObjects( _objects ); - - if ( intersects.length > 0 ) { - - _selected = intersects[ 0 ].object; - - _plane.setFromNormalAndCoplanarPoint( _camera.getWorldDirection( _plane.normal ), _selected.position ); - - if ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) { - - _offset.copy( _intersection ).sub( _selected.position ); - - } - - _domElement.style.cursor = 'move'; - - scope.dispatchEvent( { type: 'dragstart', object: _selected } ); - - } - - - } - - function onDocumentTouchEnd( event ) { - - event.preventDefault(); - - if ( _selected ) { - - scope.dispatchEvent( { type: 'dragend', object: _selected } ); - - _selected = null; - - } - - _domElement.style.cursor = 'auto'; - - } - - activate(); - - // API - - this.enabled = true; - - this.activate = activate; - this.deactivate = deactivate; - this.dispose = dispose; - - // Backward compatibility - - this.setObjects = function () { - - console.error( 'THREE.DragControls: setObjects() has been removed.' ); - - }; - - this.on = function ( type, listener ) { - - console.warn( 'THREE.DragControls: on() has been deprecated. Use addEventListener() instead.' ); - scope.addEventListener( type, listener ); - - }; - - this.off = function ( type, listener ) { - - console.warn( 'THREE.DragControls: off() has been deprecated. Use removeEventListener() instead.' ); - scope.removeEventListener( type, listener ); - - }; - - this.notify = function ( type ) { - - console.error( 'THREE.DragControls: notify() has been deprecated. Use dispatchEvent() instead.' ); - scope.dispatchEvent( { type: type } ); - - }; - -}; - -THREE.DragControls.prototype = Object.create( THREE.EventDispatcher.prototype ); -THREE.DragControls.prototype.constructor = THREE.DragControls; diff --git a/frontend/src/js/three/FlyControls.js b/frontend/src/js/three/FlyControls.js deleted file mode 100644 index 1947fbb..0000000 --- a/frontend/src/js/three/FlyControls.js +++ /dev/null @@ -1,294 +0,0 @@ -// https://threejs.org/examples/js/controls/FlyControls.js -/** - * @author James Baicoianu / http://www.baicoianu.com/ - */ - -THREE.FlyControls = function ( object, domElement ) { - - this.object = object; - - this.domElement = ( domElement !== undefined ) ? domElement : document; - if ( domElement ) this.domElement.setAttribute( 'tabindex', - 1 ); - - // API - - this.movementSpeed = 1.0; - this.rollSpeed = 0.005; - - this.dragToLook = false; - this.autoForward = false; - - // disable default target object behavior - - // internals - - this.tmpQuaternion = new THREE.Quaternion(); - - this.mouseStatus = 0; - - this.moveState = { up: 0, down: 0, left: 0, right: 0, forward: 0, back: 0, pitchUp: 0, pitchDown: 0, yawLeft: 0, yawRight: 0, rollLeft: 0, rollRight: 0 }; - this.moveVector = new THREE.Vector3( 0, 0, 0 ); - this.rotationVector = new THREE.Vector3( 0, 0, 0 ); - - this.handleEvent = function ( event ) { - - if ( typeof this[ event.type ] == 'function' ) { - - this[ event.type ]( event ); - - } - - }; - - this.keydown = function( event ) { - - if ( event.altKey ) { - - return; - - } - - //event.preventDefault(); - - switch ( event.keyCode ) { - - case 16: /* shift */ this.movementSpeedMultiplier = .1; break; - - case 87: /*W*/ this.moveState.forward = 1; break; - case 83: /*S*/ this.moveState.back = 1; break; - - case 65: /*A*/ this.moveState.left = 1; break; - case 68: /*D*/ this.moveState.right = 1; break; - - case 82: /*R*/ this.moveState.up = 1; break; - case 70: /*F*/ this.moveState.down = 1; break; - - case 38: /*up*/ this.moveState.pitchUp = 1; break; - case 40: /*down*/ this.moveState.pitchDown = 1; break; - - case 37: /*left*/ this.moveState.yawLeft = 1; break; - case 39: /*right*/ this.moveState.yawRight = 1; break; - - case 81: /*Q*/ this.moveState.rollLeft = 1; break; - case 69: /*E*/ this.moveState.rollRight = 1; break; - - } - - this.updateMovementVector(); - this.updateRotationVector(); - - }; - - this.keyup = function( event ) { - - switch ( event.keyCode ) { - - case 16: /* shift */ this.movementSpeedMultiplier = 1; break; - - case 87: /*W*/ this.moveState.forward = 0; break; - case 83: /*S*/ this.moveState.back = 0; break; - - case 65: /*A*/ this.moveState.left = 0; break; - case 68: /*D*/ this.moveState.right = 0; break; - - case 82: /*R*/ this.moveState.up = 0; break; - case 70: /*F*/ this.moveState.down = 0; break; - - case 38: /*up*/ this.moveState.pitchUp = 0; break; - case 40: /*down*/ this.moveState.pitchDown = 0; break; - - case 37: /*left*/ this.moveState.yawLeft = 0; break; - case 39: /*right*/ this.moveState.yawRight = 0; break; - - case 81: /*Q*/ this.moveState.rollLeft = 0; break; - case 69: /*E*/ this.moveState.rollRight = 0; break; - - } - - this.updateMovementVector(); - this.updateRotationVector(); - - }; - - this.mousedown = function( event ) { - - if ( this.domElement !== document ) { - - this.domElement.focus(); - - } - - event.preventDefault(); - event.stopPropagation(); - - if ( this.dragToLook ) { - - this.mouseStatus ++; - - } else { - - switch ( event.button ) { - - case 0: this.moveState.forward = 1; break; - case 2: this.moveState.back = 1; break; - - } - - this.updateMovementVector(); - - } - - }; - - this.mousemove = function( event ) { - - if ( ! this.dragToLook || this.mouseStatus > 0 ) { - - var container = this.getContainerDimensions(); - var halfWidth = container.size[ 0 ] / 2; - var halfHeight = container.size[ 1 ] / 2; - - this.moveState.yawLeft = - ( ( event.pageX - container.offset[ 0 ] ) - halfWidth ) / halfWidth; - this.moveState.pitchDown = ( ( event.pageY - container.offset[ 1 ] ) - halfHeight ) / halfHeight; - - this.updateRotationVector(); - - } - - }; - - this.mouseup = function( event ) { - - event.preventDefault(); - event.stopPropagation(); - - if ( this.dragToLook ) { - - this.mouseStatus --; - - this.moveState.yawLeft = this.moveState.pitchDown = 0; - - } else { - - switch ( event.button ) { - - case 0: this.moveState.forward = 0; break; - case 2: this.moveState.back = 0; break; - - } - - this.updateMovementVector(); - - } - - this.updateRotationVector(); - - }; - - this.update = function( delta ) { - - var moveMult = delta * this.movementSpeed; - var rotMult = delta * this.rollSpeed; - - this.object.translateX( this.moveVector.x * moveMult ); - this.object.translateY( this.moveVector.y * moveMult ); - this.object.translateZ( this.moveVector.z * moveMult ); - - this.tmpQuaternion.set( this.rotationVector.x * rotMult, this.rotationVector.y * rotMult, this.rotationVector.z * rotMult, 1 ).normalize(); - this.object.quaternion.multiply( this.tmpQuaternion ); - - // expose the rotation vector for convenience - this.object.rotation.setFromQuaternion( this.object.quaternion, this.object.rotation.order ); - - - }; - - this.updateMovementVector = function() { - - var forward = ( this.moveState.forward || ( this.autoForward && ! this.moveState.back ) ) ? 1 : 0; - - this.moveVector.x = ( - this.moveState.left + this.moveState.right ); - this.moveVector.y = ( - this.moveState.down + this.moveState.up ); - this.moveVector.z = ( - forward + this.moveState.back ); - - //console.log( 'move:', [ this.moveVector.x, this.moveVector.y, this.moveVector.z ] ); - - }; - - this.updateRotationVector = function() { - - this.rotationVector.x = ( - this.moveState.pitchDown + this.moveState.pitchUp ); - this.rotationVector.y = ( - this.moveState.yawRight + this.moveState.yawLeft ); - this.rotationVector.z = ( - this.moveState.rollRight + this.moveState.rollLeft ); - - //console.log( 'rotate:', [ this.rotationVector.x, this.rotationVector.y, this.rotationVector.z ] ); - - }; - - this.getContainerDimensions = function() { - - if ( this.domElement != document ) { - - return { - size : [ this.domElement.offsetWidth, this.domElement.offsetHeight ], - offset : [ this.domElement.offsetLeft, this.domElement.offsetTop ] - }; - - } else { - - return { - size : [ window.innerWidth, window.innerHeight ], - offset : [ 0, 0 ] - }; - - } - - }; - - function bind( scope, fn ) { - - return function () { - - fn.apply( scope, arguments ); - - }; - - } - - function contextmenu( event ) { - - event.preventDefault(); - - } - - this.dispose = function() { - - this.domElement.removeEventListener( 'contextmenu', contextmenu, false ); - this.domElement.removeEventListener( 'mousedown', _mousedown, false ); - this.domElement.removeEventListener( 'mousemove', _mousemove, false ); - this.domElement.removeEventListener( 'mouseup', _mouseup, false ); - - window.removeEventListener( 'keydown', _keydown, false ); - window.removeEventListener( 'keyup', _keyup, false ); - - }; - - var _mousemove = bind( this, this.mousemove ); - var _mousedown = bind( this, this.mousedown ); - var _mouseup = bind( this, this.mouseup ); - var _keydown = bind( this, this.keydown ); - var _keyup = bind( this, this.keyup ); - - this.domElement.addEventListener( 'contextmenu', contextmenu, false ); - - this.domElement.addEventListener( 'mousemove', _mousemove, false ); - this.domElement.addEventListener( 'mousedown', _mousedown, false ); - this.domElement.addEventListener( 'mouseup', _mouseup, false ); - - window.addEventListener( 'keydown', _keydown, false ); - window.addEventListener( 'keyup', _keyup, false ); - - this.updateMovementVector(); - this.updateRotationVector(); - -}; diff --git a/frontend/src/js/three/PointerLockControls.js b/frontend/src/js/three/PointerLockControls.js deleted file mode 100644 index 59fb30c..0000000 --- a/frontend/src/js/three/PointerLockControls.js +++ /dev/null @@ -1,70 +0,0 @@ -// https://raw.githubusercontent.com/mrdoob/three.js/master/examples/js/controls/PointerLockControls.js -/** - * @author mrdoob / http://mrdoob.com/ - */ - -THREE.PointerLockControls = function ( camera ) { - - var scope = this; - - camera.rotation.set( 0, 0, 0 ); - - var pitchObject = new THREE.Object3D(); - pitchObject.add( camera ); - - var yawObject = new THREE.Object3D(); - yawObject.position.y = 10; - yawObject.add( pitchObject ); - - var PI_2 = Math.PI / 2; - - var onMouseMove = function ( event ) { - - if ( scope.enabled === false ) return; - - var movementX = event.movementX || event.mozMovementX || event.webkitMovementX || 0; - var movementY = event.movementY || event.mozMovementY || event.webkitMovementY || 0; - - yawObject.rotation.y -= movementX * 0.002; - pitchObject.rotation.x -= movementY * 0.002; - - pitchObject.rotation.x = Math.max( - PI_2, Math.min( PI_2, pitchObject.rotation.x ) ); - - }; - - this.dispose = function() { - - document.removeEventListener( 'mousemove', onMouseMove, false ); - - }; - - document.addEventListener( 'mousemove', onMouseMove, false ); - - this.enabled = false; - - this.getObject = function () { - - return yawObject; - - }; - - this.getDirection = function() { - - // assumes the camera itself is not rotated - - var direction = new THREE.Vector3( 0, 0, - 1 ); - var rotation = new THREE.Euler( 0, 0, 0, "YXZ" ); - - return function( v ) { - - rotation.set( pitchObject.rotation.x, yawObject.rotation.y, 0 ); - - v.copy( direction ).applyEuler( rotation ); - - return v; - - }; - - }(); - -}; diff --git a/frontend/src/js/three/TrackballControls.js b/frontend/src/js/three/TrackballControls.js deleted file mode 100644 index 070a27b..0000000 --- a/frontend/src/js/three/TrackballControls.js +++ /dev/null @@ -1,626 +0,0 @@ -// https://threejs.org/examples/js/controls/TrackballControls.js -/** - * @author Eberhard Graether / http://egraether.com/ - * @author Mark Lundin / http://mark-lundin.com - * @author Simone Manini / http://daron1337.github.io - * @author Luca Antiga / http://lantiga.github.io - */ - -THREE.TrackballControls = function ( object, domElement ) { - - var _this = this; - var STATE = { NONE: - 1, ROTATE: 0, ZOOM: 1, PAN: 2, TOUCH_ROTATE: 3, TOUCH_ZOOM_PAN: 4 }; - - this.object = object; - this.domElement = ( domElement !== undefined ) ? domElement : document; - - // API - - this.enabled = true; - - this.screen = { left: 0, top: 0, width: 0, height: 0 }; - - this.rotateSpeed = 1.0; - this.zoomSpeed = 1.2; - this.panSpeed = 0.3; - - this.noRotate = false; - this.noZoom = false; - this.noPan = false; - - this.staticMoving = false; - this.dynamicDampingFactor = 0.2; - - this.minDistance = 0; - this.maxDistance = Infinity; - - this.keys = [ 65 /*A*/, 83 /*S*/, 68 /*D*/ ]; - - // internals - - this.target = new THREE.Vector3(); - - var EPS = 0.000001; - - var lastPosition = new THREE.Vector3(); - - var _state = STATE.NONE, - _prevState = STATE.NONE, - - _eye = new THREE.Vector3(), - - _movePrev = new THREE.Vector2(), - _moveCurr = new THREE.Vector2(), - - _lastAxis = new THREE.Vector3(), - _lastAngle = 0, - - _zoomStart = new THREE.Vector2(), - _zoomEnd = new THREE.Vector2(), - - _touchZoomDistanceStart = 0, - _touchZoomDistanceEnd = 0, - - _panStart = new THREE.Vector2(), - _panEnd = new THREE.Vector2(); - - // for reset - - this.target0 = this.target.clone(); - this.position0 = this.object.position.clone(); - this.up0 = this.object.up.clone(); - - // events - - var changeEvent = { type: 'change' }; - var startEvent = { type: 'start' }; - var endEvent = { type: 'end' }; - - - // methods - - this.handleResize = function () { - - if ( this.domElement === document ) { - - this.screen.left = 0; - this.screen.top = 0; - this.screen.width = window.innerWidth; - this.screen.height = window.innerHeight; - - } else { - - var box = this.domElement.getBoundingClientRect(); - // adjustments come from similar code in the jquery offset() function - var d = this.domElement.ownerDocument.documentElement; - this.screen.left = box.left + window.pageXOffset - d.clientLeft; - this.screen.top = box.top + window.pageYOffset - d.clientTop; - this.screen.width = box.width; - this.screen.height = box.height; - - } - - }; - - this.handleEvent = function ( event ) { - - if ( typeof this[ event.type ] == 'function' ) { - - this[ event.type ]( event ); - - } - - }; - - var getMouseOnScreen = ( function () { - - var vector = new THREE.Vector2(); - - return function getMouseOnScreen( pageX, pageY ) { - - vector.set( - ( pageX - _this.screen.left ) / _this.screen.width, - ( pageY - _this.screen.top ) / _this.screen.height - ); - - return vector; - - }; - - }() ); - - var getMouseOnCircle = ( function () { - - var vector = new THREE.Vector2(); - - return function getMouseOnCircle( pageX, pageY ) { - - vector.set( - ( ( pageX - _this.screen.width * 0.5 - _this.screen.left ) / ( _this.screen.width * 0.5 ) ), - ( ( _this.screen.height + 2 * ( _this.screen.top - pageY ) ) / _this.screen.width ) // screen.width intentional - ); - - return vector; - - }; - - }() ); - - this.rotateCamera = ( function() { - - var axis = new THREE.Vector3(), - quaternion = new THREE.Quaternion(), - eyeDirection = new THREE.Vector3(), - objectUpDirection = new THREE.Vector3(), - objectSidewaysDirection = new THREE.Vector3(), - moveDirection = new THREE.Vector3(), - angle; - - return function rotateCamera() { - - moveDirection.set( _moveCurr.x - _movePrev.x, _moveCurr.y - _movePrev.y, 0 ); - angle = moveDirection.length(); - - if ( angle ) { - - _eye.copy( _this.object.position ).sub( _this.target ); - - eyeDirection.copy( _eye ).normalize(); - objectUpDirection.copy( _this.object.up ).normalize(); - objectSidewaysDirection.crossVectors( objectUpDirection, eyeDirection ).normalize(); - - objectUpDirection.setLength( _moveCurr.y - _movePrev.y ); - objectSidewaysDirection.setLength( _moveCurr.x - _movePrev.x ); - - moveDirection.copy( objectUpDirection.add( objectSidewaysDirection ) ); - - axis.crossVectors( moveDirection, _eye ).normalize(); - - angle *= _this.rotateSpeed; - quaternion.setFromAxisAngle( axis, angle ); - - _eye.applyQuaternion( quaternion ); - _this.object.up.applyQuaternion( quaternion ); - - _lastAxis.copy( axis ); - _lastAngle = angle; - - } else if ( ! _this.staticMoving && _lastAngle ) { - - _lastAngle *= Math.sqrt( 1.0 - _this.dynamicDampingFactor ); - _eye.copy( _this.object.position ).sub( _this.target ); - quaternion.setFromAxisAngle( _lastAxis, _lastAngle ); - _eye.applyQuaternion( quaternion ); - _this.object.up.applyQuaternion( quaternion ); - - } - - _movePrev.copy( _moveCurr ); - - }; - - }() ); - - - this.zoomCamera = function () { - - var factor; - - if ( _state === STATE.TOUCH_ZOOM_PAN ) { - - factor = _touchZoomDistanceStart / _touchZoomDistanceEnd; - _touchZoomDistanceStart = _touchZoomDistanceEnd; - _eye.multiplyScalar( factor ); - - } else { - - factor = 1.0 + ( _zoomEnd.y - _zoomStart.y ) * _this.zoomSpeed; - - if ( factor !== 1.0 && factor > 0.0 ) { - - _eye.multiplyScalar( factor ); - - } - - if ( _this.staticMoving ) { - - _zoomStart.copy( _zoomEnd ); - - } else { - - _zoomStart.y += ( _zoomEnd.y - _zoomStart.y ) * this.dynamicDampingFactor; - - } - - } - - }; - - this.panCamera = ( function() { - - var mouseChange = new THREE.Vector2(), - objectUp = new THREE.Vector3(), - pan = new THREE.Vector3(); - - return function panCamera() { - - mouseChange.copy( _panEnd ).sub( _panStart ); - - if ( mouseChange.lengthSq() ) { - - mouseChange.multiplyScalar( _eye.length() * _this.panSpeed ); - - pan.copy( _eye ).cross( _this.object.up ).setLength( mouseChange.x ); - pan.add( objectUp.copy( _this.object.up ).setLength( mouseChange.y ) ); - - _this.object.position.add( pan ); - _this.target.add( pan ); - - if ( _this.staticMoving ) { - - _panStart.copy( _panEnd ); - - } else { - - _panStart.add( mouseChange.subVectors( _panEnd, _panStart ).multiplyScalar( _this.dynamicDampingFactor ) ); - - } - - } - - }; - - }() ); - - this.checkDistances = function () { - - if ( ! _this.noZoom || ! _this.noPan ) { - - if ( _eye.lengthSq() > _this.maxDistance * _this.maxDistance ) { - - _this.object.position.addVectors( _this.target, _eye.setLength( _this.maxDistance ) ); - _zoomStart.copy( _zoomEnd ); - - } - - if ( _eye.lengthSq() < _this.minDistance * _this.minDistance ) { - - _this.object.position.addVectors( _this.target, _eye.setLength( _this.minDistance ) ); - _zoomStart.copy( _zoomEnd ); - - } - - } - - }; - - this.update = function () { - - _eye.subVectors( _this.object.position, _this.target ); - - if ( ! _this.noRotate ) { - - _this.rotateCamera(); - - } - - if ( ! _this.noZoom ) { - - _this.zoomCamera(); - - } - - if ( ! _this.noPan ) { - - _this.panCamera(); - - } - - _this.object.position.addVectors( _this.target, _eye ); - - _this.checkDistances(); - - _this.object.lookAt( _this.target ); - - if ( lastPosition.distanceToSquared( _this.object.position ) > EPS ) { - - _this.dispatchEvent( changeEvent ); - - lastPosition.copy( _this.object.position ); - - } - - }; - - this.reset = function () { - - _state = STATE.NONE; - _prevState = STATE.NONE; - - _this.target.copy( _this.target0 ); - _this.object.position.copy( _this.position0 ); - _this.object.up.copy( _this.up0 ); - - _eye.subVectors( _this.object.position, _this.target ); - - _this.object.lookAt( _this.target ); - - _this.dispatchEvent( changeEvent ); - - lastPosition.copy( _this.object.position ); - - }; - - // listeners - - function keydown( event ) { - - if ( _this.enabled === false ) return; - - window.removeEventListener( 'keydown', keydown ); - - _prevState = _state; - - if ( _state !== STATE.NONE ) { - - return; - - } else if ( event.keyCode === _this.keys[ STATE.ROTATE ] && ! _this.noRotate ) { - - _state = STATE.ROTATE; - - } else if ( event.keyCode === _this.keys[ STATE.ZOOM ] && ! _this.noZoom ) { - - _state = STATE.ZOOM; - - } else if ( event.keyCode === _this.keys[ STATE.PAN ] && ! _this.noPan ) { - - _state = STATE.PAN; - - } - - } - - function keyup( event ) { - - if ( _this.enabled === false ) return; - - _state = _prevState; - - window.addEventListener( 'keydown', keydown, false ); - - } - - function mousedown( event ) { - - if ( _this.enabled === false ) return; - - event.preventDefault(); - event.stopPropagation(); - - if ( _state === STATE.NONE ) { - - _state = event.button; - - } - - if ( _state === STATE.ROTATE && ! _this.noRotate ) { - - _moveCurr.copy( getMouseOnCircle( event.pageX, event.pageY ) ); - _movePrev.copy( _moveCurr ); - - } else if ( _state === STATE.ZOOM && ! _this.noZoom ) { - - _zoomStart.copy( getMouseOnScreen( event.pageX, event.pageY ) ); - _zoomEnd.copy( _zoomStart ); - - } else if ( _state === STATE.PAN && ! _this.noPan ) { - - _panStart.copy( getMouseOnScreen( event.pageX, event.pageY ) ); - _panEnd.copy( _panStart ); - - } - - document.addEventListener( 'mousemove', mousemove, false ); - document.addEventListener( 'mouseup', mouseup, false ); - - _this.dispatchEvent( startEvent ); - - } - - function mousemove( event ) { - - if ( _this.enabled === false ) return; - - event.preventDefault(); - event.stopPropagation(); - - if ( _state === STATE.ROTATE && ! _this.noRotate ) { - - _movePrev.copy( _moveCurr ); - _moveCurr.copy( getMouseOnCircle( event.pageX, event.pageY ) ); - - } else if ( _state === STATE.ZOOM && ! _this.noZoom ) { - - _zoomEnd.copy( getMouseOnScreen( event.pageX, event.pageY ) ); - - } else if ( _state === STATE.PAN && ! _this.noPan ) { - - _panEnd.copy( getMouseOnScreen( event.pageX, event.pageY ) ); - - } - - } - - function mouseup( event ) { - - if ( _this.enabled === false ) return; - - event.preventDefault(); - event.stopPropagation(); - - _state = STATE.NONE; - - document.removeEventListener( 'mousemove', mousemove ); - document.removeEventListener( 'mouseup', mouseup ); - _this.dispatchEvent( endEvent ); - - } - - function mousewheel( event ) { - - if ( _this.enabled === false ) return; - - event.preventDefault(); - event.stopPropagation(); - - switch ( event.deltaMode ) { - - case 2: - // Zoom in pages - _zoomStart.y -= event.deltaY * 0.025; - break; - - case 1: - // Zoom in lines - _zoomStart.y -= event.deltaY * 0.01; - break; - - default: - // undefined, 0, assume pixels - _zoomStart.y -= event.deltaY * 0.00025; - break; - - } - - _this.dispatchEvent( startEvent ); - _this.dispatchEvent( endEvent ); - - } - - function touchstart( event ) { - - if ( _this.enabled === false ) return; - - switch ( event.touches.length ) { - - case 1: - _state = STATE.TOUCH_ROTATE; - _moveCurr.copy( getMouseOnCircle( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY ) ); - _movePrev.copy( _moveCurr ); - break; - - default: // 2 or more - _state = STATE.TOUCH_ZOOM_PAN; - var dx = event.touches[ 0 ].pageX - event.touches[ 1 ].pageX; - var dy = event.touches[ 0 ].pageY - event.touches[ 1 ].pageY; - _touchZoomDistanceEnd = _touchZoomDistanceStart = Math.sqrt( dx * dx + dy * dy ); - - var x = ( event.touches[ 0 ].pageX + event.touches[ 1 ].pageX ) / 2; - var y = ( event.touches[ 0 ].pageY + event.touches[ 1 ].pageY ) / 2; - _panStart.copy( getMouseOnScreen( x, y ) ); - _panEnd.copy( _panStart ); - break; - - } - - _this.dispatchEvent( startEvent ); - - } - - function touchmove( event ) { - - if ( _this.enabled === false ) return; - - event.preventDefault(); - event.stopPropagation(); - - switch ( event.touches.length ) { - - case 1: - _movePrev.copy( _moveCurr ); - _moveCurr.copy( getMouseOnCircle( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY ) ); - break; - - default: // 2 or more - var dx = event.touches[ 0 ].pageX - event.touches[ 1 ].pageX; - var dy = event.touches[ 0 ].pageY - event.touches[ 1 ].pageY; - _touchZoomDistanceEnd = Math.sqrt( dx * dx + dy * dy ); - - var x = ( event.touches[ 0 ].pageX + event.touches[ 1 ].pageX ) / 2; - var y = ( event.touches[ 0 ].pageY + event.touches[ 1 ].pageY ) / 2; - _panEnd.copy( getMouseOnScreen( x, y ) ); - break; - - } - - } - - function touchend( event ) { - - if ( _this.enabled === false ) return; - - switch ( event.touches.length ) { - - case 0: - _state = STATE.NONE; - break; - - case 1: - _state = STATE.TOUCH_ROTATE; - _moveCurr.copy( getMouseOnCircle( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY ) ); - _movePrev.copy( _moveCurr ); - break; - - } - - _this.dispatchEvent( endEvent ); - - } - - function contextmenu( event ) { - - if ( _this.enabled === false ) return; - - event.preventDefault(); - - } - - this.dispose = function() { - - this.domElement.removeEventListener( 'contextmenu', contextmenu, false ); - this.domElement.removeEventListener( 'mousedown', mousedown, false ); - this.domElement.removeEventListener( 'wheel', mousewheel, false ); - - this.domElement.removeEventListener( 'touchstart', touchstart, false ); - this.domElement.removeEventListener( 'touchend', touchend, false ); - this.domElement.removeEventListener( 'touchmove', touchmove, false ); - - document.removeEventListener( 'mousemove', mousemove, false ); - document.removeEventListener( 'mouseup', mouseup, false ); - - window.removeEventListener( 'keydown', keydown, false ); - window.removeEventListener( 'keyup', keyup, false ); - - }; - - this.domElement.addEventListener( 'contextmenu', contextmenu, false ); - this.domElement.addEventListener( 'mousedown', mousedown, false ); - this.domElement.addEventListener( 'wheel', mousewheel, false ); - - this.domElement.addEventListener( 'touchstart', touchstart, false ); - this.domElement.addEventListener( 'touchend', touchend, false ); - this.domElement.addEventListener( 'touchmove', touchmove, false ); - - window.addEventListener( 'keydown', keydown, false ); - window.addEventListener( 'keyup', keyup, false ); - - this.handleResize(); - - // force an update at start - this.update(); - -}; - -THREE.TrackballControls.prototype = Object.create( THREE.EventDispatcher.prototype ); -THREE.TrackballControls.prototype.constructor = THREE.TrackballControls; diff --git a/frontend/src/js/three/three.min.js b/frontend/src/js/three/three.min.js deleted file mode 100644 index bcb4d3e..0000000 --- a/frontend/src/js/three/three.min.js +++ /dev/null @@ -1,899 +0,0 @@ -// https://threejs.org/build/three.min.js -// threejs.org/license -(function(m,ja){"object"===typeof exports&&"undefined"!==typeof module?ja(exports):"function"===typeof define&&define.amd?define(["exports"],ja):ja(m.THREE=m.THREE||{})})(this,function(m){function ja(){}function C(a,b){this.x=a||0;this.y=b||0}function K(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];0=d||0 0 ) {\n\t\tfloat fogFactor = 0.0;\n\t\tif ( fogType == 1 ) {\n\t\t\tfogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t\t} else {\n\t\t\tconst float LOG2 = 1.442695;\n\t\t\tfogFactor = exp2( - fogDensity * fogDensity * fogDepth * fogDepth * LOG2 );\n\t\t\tfogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\n\t\t}\n\t\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n\t}\n}"].join("\n")); -b.compileShader(y);b.compileShader(Y);b.attachShader(M,y);b.attachShader(M,Y);b.linkProgram(M);ha=M;B=b.getAttribLocation(ha,"position");J=b.getAttribLocation(ha,"uv");f=b.getUniformLocation(ha,"uvOffset");g=b.getUniformLocation(ha,"uvScale");h=b.getUniformLocation(ha,"rotation");k=b.getUniformLocation(ha,"scale");l=b.getUniformLocation(ha,"color");q=b.getUniformLocation(ha,"map");n=b.getUniformLocation(ha,"opacity");t=b.getUniformLocation(ha,"modelViewMatrix");r=b.getUniformLocation(ha,"projectionMatrix"); -m=b.getUniformLocation(ha,"fogType");v=b.getUniformLocation(ha,"fogDensity");w=b.getUniformLocation(ha,"fogNear");x=b.getUniformLocation(ha,"fogFar");z=b.getUniformLocation(ha,"fogColor");b.getUniformLocation(ha,"fogDepth");I=b.getUniformLocation(ha,"alphaTest");M=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");M.width=8;M.height=8;y=M.getContext("2d");y.fillStyle="white";y.fillRect(0,0,8,8);He=new tc(M)}c.useProgram(ha);c.initAttributes();c.enableAttribute(B);c.enableAttribute(J); -c.disableUnusedAttributes();c.disable(b.CULL_FACE);c.enable(b.BLEND);b.bindBuffer(b.ARRAY_BUFFER,za);b.vertexAttribPointer(B,2,b.FLOAT,!1,16,0);b.vertexAttribPointer(J,2,b.FLOAT,!1,16,8);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,la);b.uniformMatrix4fv(r,!1,V.projectionMatrix.elements);c.activeTexture(b.TEXTURE0);b.uniform1i(q,0);y=M=0;(Y=p.fog)?(b.uniform3f(z,Y.color.r,Y.color.g,Y.color.b),Y.isFog?(b.uniform1f(w,Y.near),b.uniform1f(x,Y.far),b.uniform1i(m,1),y=M=1):Y.isFogExp2&&(b.uniform1f(v,Y.density), -b.uniform1i(m,2),y=M=2)):(b.uniform1i(m,0),y=M=0);for(var A=0,ua=u.length;Ab&&(b=a[c]);return b}function D(){Object.defineProperty(this,"id",{value:Pf+=2});this.uuid=R.generateUUID();this.name="";this.type="BufferGeometry";this.index=null;this.attributes={};this.morphAttributes= -{};this.groups=[];this.boundingSphere=this.boundingBox=null;this.drawRange={start:0,count:Infinity}}function Lb(a,b,c,d,e,f){N.call(this);this.type="BoxGeometry";this.parameters={width:a,height:b,depth:c,widthSegments:d,heightSegments:e,depthSegments:f};this.fromBufferGeometry(new jb(a,b,c,d,e,f));this.mergeVertices()}function jb(a,b,c,d,e,f){function g(a,b,c,d,e,f,g,m,ta,za,la){var z=f/ta,u=g/za,v=f/2,w=g/2,I=m/2;g=ta+1;var B=za+1,x=f=0,J,y,C=new p;for(y=0;yl;l++){if(n=d[l])if(h=n[0],n=n[1]){q&&e.addAttribute("morphTarget"+l,q[h]);f&&e.addAttribute("morphNormal"+l,f[h]);c[l]=n;continue}c[l]=0}g.getUniforms().setValue(a,"morphTargetInfluences",c)}}}function Xf(a,b,c){var d,e,f;this.setMode=function(a){d= -a};this.setIndex=function(a){e=a.type;f=a.bytesPerElement};this.render=function(b,h){a.drawElements(d,h,e,b*f);c.calls++;c.vertices+=h;d===a.TRIANGLES?c.faces+=h/3:d===a.POINTS&&(c.points+=h)};this.renderInstances=function(g,h,k){var l=b.get("ANGLE_instanced_arrays");null===l?console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays."):(l.drawElementsInstancedANGLE(d,k,e,h*f,g.maxInstancedCount),c.calls++,c.vertices+= -k*g.maxInstancedCount,d===a.TRIANGLES?c.faces+=g.maxInstancedCount*k/3:d===a.POINTS&&(c.points+=g.maxInstancedCount*k))}}function Yf(a,b,c){var d;this.setMode=function(a){d=a};this.render=function(b,f){a.drawArrays(d,b,f);c.calls++;c.vertices+=f;d===a.TRIANGLES?c.faces+=f/3:d===a.POINTS&&(c.points+=f)};this.renderInstances=function(e,f,g){var h=b.get("ANGLE_instanced_arrays");if(null===h)console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays."); -else{var k=e.attributes.position;k.isInterleavedBufferAttribute?(g=k.data.count,h.drawArraysInstancedANGLE(d,0,g,e.maxInstancedCount)):h.drawArraysInstancedANGLE(d,f,g,e.maxInstancedCount);c.calls++;c.vertices+=g*e.maxInstancedCount;d===a.TRIANGLES?c.faces+=e.maxInstancedCount*g/3:d===a.POINTS&&(c.points+=e.maxInstancedCount*g)}}}function Zf(a,b,c){function d(a){a=a.target;var g=e[a.id];null!==g.index&&b.remove(g.index);for(var k in g.attributes)b.remove(g.attributes[k]);a.removeEventListener("dispose", -d);delete e[a.id];if(k=f[a.id])b.remove(k),delete f[a.id];if(k=f[g.id])b.remove(k),delete f[g.id];c.geometries--}var e={},f={};return{get:function(a,b){var f=e[b.id];if(f)return f;b.addEventListener("dispose",d);b.isBufferGeometry?f=b:b.isGeometry&&(void 0===b._bufferGeometry&&(b._bufferGeometry=(new D).setFromObject(a)),f=b._bufferGeometry);e[b.id]=f;c.geometries++;return f},update:function(c){var d=c.index,e=c.attributes;null!==d&&b.update(d,a.ELEMENT_ARRAY_BUFFER);for(var f in e)b.update(e[f], -a.ARRAY_BUFFER);c=c.morphAttributes;for(f in c)for(var d=c[f],e=0,g=d.length;e/gm,function(a,c){a=W[c];if(void 0===a)throw Error("Can not resolve #include <"+c+">");return Sd(a)})}function Ne(a){return a.replace(/for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g, -function(a,c,d,e){a="";for(c=parseInt(c);cb||a.height>b){b/=Math.max(a.width,a.height);var c=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");c.width=Math.floor(a.width*b);c.height=Math.floor(a.height*b);c.getContext("2d").drawImage(a, -0,0,a.width,a.height,0,0,c.width,c.height);console.warn("THREE.WebGLRenderer: image is too big ("+a.width+"x"+a.height+"). Resized to "+c.width+"x"+c.height,a);return c}return a}function k(a){return R.isPowerOfTwo(a.width)&&R.isPowerOfTwo(a.height)}function l(a,b){return a.generateMipmaps&&b&&1003!==a.minFilter&&1006!==a.minFilter}function q(b){return 1003===b||1004===b||1005===b?a.NEAREST:a.LINEAR}function n(b){b=b.target;b.removeEventListener("dispose",n);a:{var c=d.get(b);if(b.image&&c.__image__webglTextureCube)a.deleteTexture(c.__image__webglTextureCube); -else{if(void 0===c.__webglInit)break a;a.deleteTexture(c.__webglTexture)}d.remove(b)}g.textures--}function t(b){b=b.target;b.removeEventListener("dispose",t);var c=d.get(b),e=d.get(b.texture);if(b){void 0!==e.__webglTexture&&a.deleteTexture(e.__webglTexture);b.depthTexture&&b.depthTexture.dispose();if(b.isWebGLRenderTargetCube)for(e=0;6>e;e++)a.deleteFramebuffer(c.__webglFramebuffer[e]),c.__webglDepthbuffer&&a.deleteRenderbuffer(c.__webglDepthbuffer[e]);else a.deleteFramebuffer(c.__webglFramebuffer), -c.__webglDepthbuffer&&a.deleteRenderbuffer(c.__webglDepthbuffer);d.remove(b.texture);d.remove(b)}g.textures--}function r(b,q){var t=d.get(b);if(0p;p++)u[p]=q||r?r?b.image[p].image:b.image[p]:h(b.image[p],e.maxCubemapSize); -var v=k(u[0]),w=f.convert(b.format),z=f.convert(b.type);m(a.TEXTURE_CUBE_MAP,b,v);for(p=0;6>p;p++)if(q)for(var x,I=u[p].mipmaps,y=0,C=I.length;yq;q++)e.__webglFramebuffer[q]=a.createFramebuffer()}else e.__webglFramebuffer=a.createFramebuffer();if(h){c.bindTexture(a.TEXTURE_CUBE_MAP,f.__webglTexture);m(a.TEXTURE_CUBE_MAP,b.texture,n);for(q=0;6>q;q++)p(e.__webglFramebuffer[q],b,a.COLOR_ATTACHMENT0,a.TEXTURE_CUBE_MAP_POSITIVE_X+q); -l(b.texture,n)&&a.generateMipmap(a.TEXTURE_CUBE_MAP);c.bindTexture(a.TEXTURE_CUBE_MAP,null)}else c.bindTexture(a.TEXTURE_2D,f.__webglTexture),m(a.TEXTURE_2D,b.texture,n),p(e.__webglFramebuffer,b,a.COLOR_ATTACHMENT0,a.TEXTURE_2D),l(b.texture,n)&&a.generateMipmap(a.TEXTURE_2D),c.bindTexture(a.TEXTURE_2D,null);if(b.depthBuffer){e=d.get(b);f=!0===b.isWebGLRenderTargetCube;if(b.depthTexture){if(f)throw Error("target.depthTexture not supported in Cube render targets");if(b&&b.isWebGLRenderTargetCube)throw Error("Depth Texture with cube render targets is not supported"); -a.bindFramebuffer(a.FRAMEBUFFER,e.__webglFramebuffer);if(!b.depthTexture||!b.depthTexture.isDepthTexture)throw Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");d.get(b.depthTexture).__webglTexture&&b.depthTexture.image.width===b.width&&b.depthTexture.image.height===b.height||(b.depthTexture.image.width=b.width,b.depthTexture.image.height=b.height,b.depthTexture.needsUpdate=!0);r(b.depthTexture,0);e=d.get(b.depthTexture).__webglTexture;if(1026===b.depthTexture.format)a.framebufferTexture2D(a.FRAMEBUFFER, -a.DEPTH_ATTACHMENT,a.TEXTURE_2D,e,0);else if(1027===b.depthTexture.format)a.framebufferTexture2D(a.FRAMEBUFFER,a.DEPTH_STENCIL_ATTACHMENT,a.TEXTURE_2D,e,0);else throw Error("Unknown depthTexture format");}else if(f)for(e.__webglDepthbuffer=[],f=0;6>f;f++)a.bindFramebuffer(a.FRAMEBUFFER,e.__webglFramebuffer[f]),e.__webglDepthbuffer[f]=a.createRenderbuffer(),w(e.__webglDepthbuffer[f],b);else a.bindFramebuffer(a.FRAMEBUFFER,e.__webglFramebuffer),e.__webglDepthbuffer=a.createRenderbuffer(),w(e.__webglDepthbuffer, -b);a.bindFramebuffer(a.FRAMEBUFFER,null)}};this.updateRenderTargetMipmap=function(b){var e=b.texture,f=k(b);l(e,f)&&(b=b.isWebGLRenderTargetCube?a.TEXTURE_CUBE_MAP:a.TEXTURE_2D,e=d.get(e).__webglTexture,c.bindTexture(b,e),a.generateMipmap(b),c.bindTexture(b,null))}}function lg(){var a={};return{get:function(b){b=b.uuid;var c=a[b];void 0===c&&(c={},a[b]=c);return c},remove:function(b){delete a[b.uuid]},clear:function(){a={}}}}function mg(a,b,c){function d(b,c,d){var e=new Uint8Array(4),f=a.createTexture(); -a.bindTexture(b,f);a.texParameteri(b,a.TEXTURE_MIN_FILTER,a.NEAREST);a.texParameteri(b,a.TEXTURE_MAG_FILTER,a.NEAREST);for(b=0;b=Z.maxTextures&&console.warn("THREE.WebGLRenderer: Trying to use "+a+" texture units while this GPU supports only "+Z.maxTextures);G+=1;return a}; -this.setTexture2D=function(){var a=!1;return function(b,c){b&&b.isWebGLRenderTarget&&(a||(console.warn("THREE.WebGLRenderer.setTexture2D: don't use render targets as textures. Use their .texture property instead."),a=!0),b=b.texture);T.setTexture2D(b,c)}}();this.setTexture=function(){var a=!1;return function(b,c){a||(console.warn("THREE.WebGLRenderer: .setTexture is deprecated, use setTexture2D instead."),a=!0);T.setTexture2D(b,c)}}();this.setTextureCube=function(){var a=!1;return function(b,c){b&& -b.isWebGLRenderTargetCube&&(a||(console.warn("THREE.WebGLRenderer.setTextureCube: don't use cube render targets as textures. Use their .texture property instead."),a=!0),b=b.texture);b&&b.isCubeTexture||Array.isArray(b.image)&&6===b.image.length?T.setTextureCube(b,c):T.setTextureCubeDynamic(b,c)}}();this.getRenderTarget=function(){return H};this.setRenderTarget=function(a){(H=a)&&void 0===U.get(a).__webglFramebuffer&&T.setupRenderTarget(a);var b=null,c=!1;a?(b=U.get(a).__webglFramebuffer,a.isWebGLRenderTargetCube&& -(b=b[a.activeCubeFace],c=!0),Q.copy(a.viewport),S.copy(a.scissor),W=a.scissorTest):(Q.copy(ca).multiplyScalar(O),S.copy(ea).multiplyScalar(O),W=Oe);M!==b&&(F.bindFramebuffer(F.FRAMEBUFFER,b),M=b);ba.viewport(Q);ba.scissor(S);ba.setScissorTest(W);c&&(c=U.get(a.texture),F.framebufferTexture2D(F.FRAMEBUFFER,F.COLOR_ATTACHMENT0,F.TEXTURE_CUBE_MAP_POSITIVE_X+a.activeCubeFace,c.__webglTexture,a.activeMipMapLevel))};this.readRenderTargetPixels=function(a,b,c,d,e,f){if(a&&a.isWebGLRenderTarget){var g=U.get(a).__webglFramebuffer; -if(g){var h=!1;g!==M&&(F.bindFramebuffer(F.FRAMEBUFFER,g),h=!0);try{var l=a.texture,k=l.format,n=l.type;1023!==k&&oa.convert(k)!==F.getParameter(F.IMPLEMENTATION_COLOR_READ_FORMAT)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):1009===n||oa.convert(n)===F.getParameter(F.IMPLEMENTATION_COLOR_READ_TYPE)||1015===n&&(ia.get("OES_texture_float")||ia.get("WEBGL_color_buffer_float"))||1016===n&&ia.get("EXT_color_buffer_half_float")? -F.checkFramebufferStatus(F.FRAMEBUFFER)===F.FRAMEBUFFER_COMPLETE?0<=b&&b<=a.width-d&&0<=c&&c<=a.height-e&&F.readPixels(b,c,d,e,oa.convert(k),oa.convert(n),f):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete."):console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.")}finally{h&&F.bindFramebuffer(F.FRAMEBUFFER,M)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")}} -function Ob(a,b){this.name="";this.color=new H(a);this.density=void 0!==b?b:2.5E-4}function Pb(a,b,c){this.name="";this.color=new H(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3}function od(){A.call(this);this.type="Scene";this.overrideMaterial=this.fog=this.background=null;this.autoUpdate=!0}function Xd(a,b,c,d,e){A.call(this);this.lensFlares=[];this.positionScreen=new p;this.customUpdateCallback=void 0;void 0!==a&&this.add(a,b,c,d,e)}function Za(a){Q.call(this);this.type="SpriteMaterial"; -this.color=new H(16777215);this.map=null;this.rotation=0;this.lights=this.fog=!1;this.setValues(a)}function Cc(a){A.call(this);this.type="Sprite";this.material=void 0!==a?a:new Za}function Dc(){A.call(this);this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function Ec(a,b){a=a||[];this.bones=a.slice(0);this.boneMatrices=new Float32Array(16*this.bones.length);if(void 0===b)this.calculateInverses();else if(this.bones.length===b.length)this.boneInverses=b.slice(0);else for(console.warn("THREE.Skeleton boneInverses is the wrong length."), -this.boneInverses=[],a=0,b=this.bones.length;a=a.HAVE_CURRENT_DATA&&(q.needsUpdate=!0);requestAnimationFrame(l)}ea.call(this,a,b,c,d,e,f,g,h,k);this.generateMipmaps=!1;var q=this;requestAnimationFrame(l)} -function Rb(a,b,c,d,e,f,g,h,k,l,q,n){ea.call(this,null,f,g,h,k,l,d,e,q,n);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function Gc(a,b,c,d,e,f,g,h,k,l){l=void 0!==l?l:1026;if(1026!==l&&1027!==l)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===c&&1026===l&&(c=1012);void 0===c&&1027===l&&(c=1020);ea.call(this,null,d,e,f,g,h,l,c,k);this.image={width:a,height:b};this.magFilter=void 0!==g?g:1003;this.minFilter=void 0!== -h?h:1003;this.generateMipmaps=this.flipY=!1}function Sb(a){D.call(this);this.type="WireframeGeometry";var b=[],c,d,e,f=[0,0],g={},h=["a","b","c"];if(a&&a.isGeometry){var k=a.faces;var l=0;for(d=k.length;lc;c++){var n=q[h[c]];var t=q[h[(c+1)%3]];f[0]=Math.min(n,t);f[1]=Math.max(n,t);n=f[0]+","+f[1];void 0===g[n]&&(g[n]={index1:f[0],index2:f[1]})}}for(n in g)l=g[n],h=a.vertices[l.index1],b.push(h.x,h.y,h.z),h=a.vertices[l.index2],b.push(h.x,h.y,h.z)}else if(a&&a.isBufferGeometry){var h= -new p;if(null!==a.index){k=a.attributes.position;q=a.index;var r=a.groups;0===r.length&&(r=[{start:0,count:q.count,materialIndex:0}]);a=0;for(e=r.length;ac;c++)n=q.getX(l+c),t=q.getX(l+(c+1)%3),f[0]=Math.min(n,t),f[1]=Math.max(n,t),n=f[0]+","+f[1],void 0===g[n]&&(g[n]={index1:f[0],index2:f[1]});for(n in g)l=g[n],h.fromBufferAttribute(k,l.index1),b.push(h.x,h.y,h.z),h.fromBufferAttribute(k,l.index2),b.push(h.x,h.y,h.z)}else for(k=a.attributes.position, -l=0,d=k.count/3;lc;c++)g=3*l+c,h.fromBufferAttribute(k,g),b.push(h.x,h.y,h.z),g=3*l+(c+1)%3,h.fromBufferAttribute(k,g),b.push(h.x,h.y,h.z)}this.addAttribute("position",new y(b,3))}function Hc(a,b,c){N.call(this);this.type="ParametricGeometry";this.parameters={func:a,slices:b,stacks:c};this.fromBufferGeometry(new Tb(a,b,c));this.mergeVertices()}function Tb(a,b,c){D.call(this);this.type="ParametricBufferGeometry";this.parameters={func:a,slices:b,stacks:c};var d=[],e=[],f=[],g=[],h= -new p,k=new p,l=new p,q=new p,n=new p,t,r,m=b+1;for(t=0;t<=c;t++){var v=t/c;for(r=0;r<=b;r++){var w=r/b,k=a(w,v,k);e.push(k.x,k.y,k.z);0<=w-1E-5?(l=a(w-1E-5,v,l),q.subVectors(k,l)):(l=a(w+1E-5,v,l),q.subVectors(l,k));0<=v-1E-5?(l=a(w,v-1E-5,l),n.subVectors(k,l)):(l=a(w,v+1E-5,l),n.subVectors(l,k));h.crossVectors(q,n).normalize();f.push(h.x,h.y,h.z);g.push(w,v)}}for(t=0;td&&1===a.x&&(k[b]=a.x-1);0===c.x&&0===c.z&&(k[b]=d/2/Math.PI+.5)}D.call(this);this.type="PolyhedronBufferGeometry"; -this.parameters={vertices:a,indices:b,radius:c,detail:d};c=c||1;d=d||0;var h=[],k=[];(function(a){for(var c=new p,d=new p,g=new p,h=0;he&&(.2>b&&(k[a+0]+=1),.2>c&&(k[a+2]+=1),.2>d&&(k[a+4]+=1))})();this.addAttribute("position",new y(h,3));this.addAttribute("normal",new y(h.slice(),3));this.addAttribute("uv",new y(k,2));0===d?this.computeVertexNormals(): -this.normalizeNormals()}function Jc(a,b){N.call(this);this.type="TetrahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Ub(a,b));this.mergeVertices()}function Ub(a,b){qa.call(this,[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],a,b);this.type="TetrahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Kc(a,b){N.call(this);this.type="OctahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new nb(a,b));this.mergeVertices()} -function nb(a,b){qa.call(this,[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],a,b);this.type="OctahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Lc(a,b){N.call(this);this.type="IcosahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Vb(a,b));this.mergeVertices()}function Vb(a,b){var c=(1+Math.sqrt(5))/2;qa.call(this,[-1,c,0,1,c,0,-1,-c,0,1,-c,0,0,-1,c,0,1,c,0,-1,-c,0,1,-c,c,0,-1,c,0,1,-c,0,-1,-c,0,1],[0,11, -5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],a,b);this.type="IcosahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Mc(a,b){N.call(this);this.type="DodecahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Wb(a,b));this.mergeVertices()}function Wb(a,b){var c=(1+Math.sqrt(5))/2,d=1/c;qa.call(this,[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-d,-c,0,-d,c,0, -d,-c,0,d,c,-d,-c,0,-d,c,0,d,-c,0,d,c,0,-c,0,-d,c,0,-d,-c,0,d,c,0,d],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],a,b);this.type="DodecahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Nc(a,b,c,d,e,f){N.call(this);this.type="TubeGeometry";this.parameters={path:a, -tubularSegments:b,radius:c,radialSegments:d,closed:e};void 0!==f&&console.warn("THREE.TubeGeometry: taper has been removed.");a=new Xb(a,b,c,d,e);this.tangents=a.tangents;this.normals=a.normals;this.binormals=a.binormals;this.fromBufferGeometry(a);this.mergeVertices()}function Xb(a,b,c,d,e){function f(e){q=a.getPointAt(e/b,q);var f=g.normals[e];e=g.binormals[e];for(t=0;t<=d;t++){var l=t/d*Math.PI*2,n=Math.sin(l),l=-Math.cos(l);k.x=l*f.x+n*e.x;k.y=l*f.y+n*e.y;k.z=l*f.z+n*e.z;k.normalize();u.push(k.x, -k.y,k.z);h.x=q.x+c*k.x;h.y=q.y+c*k.y;h.z=q.z+c*k.z;m.push(h.x,h.y,h.z)}}D.call(this);this.type="TubeBufferGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};b=b||64;c=c||1;d=d||8;e=e||!1;var g=a.computeFrenetFrames(b,e);this.tangents=g.tangents;this.normals=g.normals;this.binormals=g.binormals;var h=new p,k=new p,l=new C,q=new p,n,t,m=[],u=[],v=[],w=[];for(n=0;nq;q++){var n=l[f[q]];var t=l[f[(q+1)%3]];d[0]=Math.min(n,t);d[1]=Math.max(n,t);n=d[0]+","+d[1];void 0===e[n]?e[n]={index1:d[0],index2:d[1],face1:h,face2:void 0}:e[n].face2=h}for(n in e)if(d=e[n],void 0===d.face2||g[d.face1].normal.dot(g[d.face2].normal)<=b)f=a[d.index1],c.push(f.x,f.y,f.z),f=a[d.index2],c.push(f.x,f.y,f.z);this.addAttribute("position", -new y(c,3))}function pb(a,b,c,d,e,f,g,h){N.call(this);this.type="CylinderGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};this.fromBufferGeometry(new Sa(a,b,c,d,e,f,g,h));this.mergeVertices()}function Sa(a,b,c,d,e,f,g,h){function k(c){var e,f=new C,k=new p,r=0,v=!0===c?a:b,z=!0===c?1:-1;var y=u;for(e=1;e<=d;e++)n.push(0,w*z,0),t.push(0,z,0),m.push(.5,.5),u++;var A=u;for(e=0;e<=d;e++){var D=e/d*h+g,L=Math.cos(D), -D=Math.sin(D);k.x=v*D;k.y=w*z;k.z=v*L;n.push(k.x,k.y,k.z);t.push(0,z,0);f.x=.5*L+.5;f.y=.5*D*z+.5;m.push(f.x,f.y);u++}for(e=0;ethis.duration&&this.resetDuration();this.optimize()}function Id(a){this.manager=void 0!==a?a:wa;this.textures={}}function ae(a){this.manager=void 0!==a?a:wa}function kc(){this.onLoadStart=function(){};this.onLoadProgress=function(){};this.onLoadComplete=function(){}}function be(a){"boolean"===typeof a&&(console.warn("THREE.JSONLoader: showStatus parameter has been removed from constructor."), -a=void 0);this.manager=void 0!==a?a:wa;this.withCredentials=!1}function Re(a){this.manager=void 0!==a?a:wa;this.texturePath=""}function Se(a,b,c,d,e){b=.5*(d-b);e=.5*(e-c);var f=a*a;return(2*c-2*d+b+e)*a*f+(-3*c+3*d-2*b-e)*f+b*a+c}function yb(a,b,c,d){var e=1-a;return e*e*b+2*(1-a)*a*c+a*a*d}function zb(a,b,c,d,e){var f=1-a,g=1-a;return f*f*f*b+3*g*g*a*c+3*(1-a)*a*a*d+a*a*a*e}function S(){this.type="Curve";this.arcLengthDivisions=200}function Ka(a,b){S.call(this);this.type="LineCurve";this.v1=a|| -new C;this.v2=b||new C}function Ab(){S.call(this);this.type="CurvePath";this.curves=[];this.autoClose=!1}function Na(a,b,c,d,e,f,g,h){S.call(this);this.type="EllipseCurve";this.aX=a||0;this.aY=b||0;this.xRadius=c||1;this.yRadius=d||1;this.aStartAngle=e||0;this.aEndAngle=f||2*Math.PI;this.aClockwise=g||!1;this.aRotation=h||0}function ab(a){S.call(this);this.type="SplineCurve";this.points=a||[]}function bb(a,b,c,d){S.call(this);this.type="CubicBezierCurve";this.v0=a||new C;this.v1=b||new C;this.v2= -c||new C;this.v3=d||new C}function cb(a,b,c){S.call(this);this.type="QuadraticBezierCurve";this.v0=a||new C;this.v1=b||new C;this.v2=c||new C}function Bb(a){Ab.call(this);this.type="Path";this.currentPoint=new C;a&&this.setFromPoints(a)}function Cb(a){Bb.call(this,a);this.type="Shape";this.holes=[]}function ce(){this.type="ShapePath";this.subPaths=[];this.currentPath=null}function de(a){this.type="Font";this.data=a}function Te(a){this.manager=void 0!==a?a:wa}function ee(a){this.manager=void 0!==a? -a:wa}function Ue(){this.type="StereoCamera";this.aspect=1;this.eyeSep=.064;this.cameraL=new U;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=!1;this.cameraR=new U;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate=!1}function $c(a,b,c){A.call(this);this.type="CubeCamera";var d=new U(90,1,a,b);d.up.set(0,-1,0);d.lookAt(new p(1,0,0));this.add(d);var e=new U(90,1,a,b);e.up.set(0,-1,0);e.lookAt(new p(-1,0,0));this.add(e);var f=new U(90,1,a,b);f.up.set(0,0,1);f.lookAt(new p(0,1,0)); -this.add(f);var g=new U(90,1,a,b);g.up.set(0,0,-1);g.lookAt(new p(0,-1,0));this.add(g);var h=new U(90,1,a,b);h.up.set(0,-1,0);h.lookAt(new p(0,0,1));this.add(h);var k=new U(90,1,a,b);k.up.set(0,-1,0);k.lookAt(new p(0,0,-1));this.add(k);this.renderTarget=new Ib(c,c,{format:1022,magFilter:1006,minFilter:1006});this.renderTarget.texture.name="CubeCamera";this.update=function(a,b){null===this.parent&&this.updateMatrixWorld();var c=this.renderTarget,l=c.texture.generateMipmaps;c.texture.generateMipmaps= -!1;c.activeCubeFace=0;a.render(b,d,c);c.activeCubeFace=1;a.render(b,e,c);c.activeCubeFace=2;a.render(b,f,c);c.activeCubeFace=3;a.render(b,g,c);c.activeCubeFace=4;a.render(b,h,c);c.texture.generateMipmaps=l;c.activeCubeFace=5;a.render(b,k,c);a.setRenderTarget(null)};this.clear=function(a,b,c,d){for(var e=this.renderTarget,f=0;6>f;f++)e.activeCubeFace=f,a.setRenderTarget(e),a.clear(b,c,d);a.setRenderTarget(null)}}function fe(){A.call(this);this.type="AudioListener";this.context=ge.getContext();this.gain= -this.context.createGain();this.gain.connect(this.context.destination);this.filter=null}function lc(a){A.call(this);this.type="Audio";this.context=a.context;this.gain=this.context.createGain();this.gain.connect(a.getInput());this.autoplay=!1;this.buffer=null;this.loop=!1;this.offset=this.startTime=0;this.playbackRate=1;this.isPlaying=!1;this.hasPlaybackControl=!0;this.sourceType="empty";this.filters=[]}function he(a){lc.call(this,a);this.panner=this.context.createPanner();this.panner.connect(this.gain)} -function ie(a,b){this.analyser=a.context.createAnalyser();this.analyser.fftSize=void 0!==b?b:2048;this.data=new Uint8Array(this.analyser.frequencyBinCount);a.getOutput().connect(this.analyser)}function je(a,b,c){this.binding=a;this.valueSize=c;a=Float64Array;switch(b){case "quaternion":b=this._slerp;break;case "string":case "bool":a=Array;b=this._select;break;default:b=this._lerp}this.buffer=new a(4*c);this._mixBufferRegion=b;this.referenceCount=this.useCount=this.cumulativeWeight=0}function Ve(a, -b,c){c=c||na.parseTrackName(b);this._targetGroup=a;this._bindings=a.subscribe_(b,c)}function na(a,b,c){this.path=b;this.parsedPath=c||na.parseTrackName(b);this.node=na.findNode(a,this.parsedPath.nodeName)||a;this.rootNode=a}function We(){this.uuid=R.generateUUID();this._objects=Array.prototype.slice.call(arguments);this.nCachedObjects_=0;var a={};this._indicesByUUID=a;for(var b=0,c=arguments.length;b!==c;++b)a[arguments[b].uuid]=b;this._paths=[];this._parsedPaths=[];this._bindings=[];this._bindingsIndicesByPath= -{};var d=this;this.stats={objects:{get total(){return d._objects.length},get inUse(){return this.total-d.nCachedObjects_}},get bindingsPerObject(){return d._bindings.length}}}function Xe(a,b,c){this._mixer=a;this._clip=b;this._localRoot=c||null;a=b.tracks;b=a.length;c=Array(b);for(var d={endingStart:2400,endingEnd:2400},e=0;e!==b;++e){var f=a[e].createInterpolant(null);c[e]=f;f.settings=d}this._interpolantSettings=d;this._interpolants=c;this._propertyBindings=Array(b);this._weightInterpolant=this._timeScaleInterpolant= -this._byClipCacheIndex=this._cacheIndex=null;this.loop=2201;this._loopCount=-1;this._startTime=null;this.time=0;this._effectiveWeight=this.weight=this._effectiveTimeScale=this.timeScale=1;this.repetitions=Infinity;this.paused=!1;this.enabled=!0;this.clampWhenFinished=!1;this.zeroSlopeAtEnd=this.zeroSlopeAtStart=!0}function Ye(a){this._root=a;this._initMemoryManager();this.time=this._accuIndex=0;this.timeScale=1}function Jd(a,b){"string"===typeof a&&(console.warn("THREE.Uniform: Type parameter is no longer needed."), -a=b);this.value=a}function ke(){D.call(this);this.type="InstancedBufferGeometry";this.maxInstancedCount=void 0}function le(a,b,c,d){this.uuid=R.generateUUID();this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===d}function mc(a,b){this.uuid=R.generateUUID();this.array=a;this.stride=b;this.count=void 0!==a?a.length/b:0;this.dynamic=!1;this.updateRange={offset:0,count:-1};this.onUploadCallback=function(){};this.version=0}function me(a,b,c){mc.call(this,a,b);this.meshPerAttribute=c||1}function ne(a, -b,c){P.call(this,a,b);this.meshPerAttribute=c||1}function Ze(a,b,c,d){this.ray=new lb(a,b);this.near=c||0;this.far=d||Infinity;this.params={Mesh:{},Line:{},LOD:{},Points:{threshold:1},Sprite:{}};Object.defineProperties(this.params,{PointCloud:{get:function(){console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points.");return this.Points}}})}function $e(a,b){return a.distance-b.distance}function oe(a,b,c,d){if(!1!==a.visible&&(a.raycast(b,c),!0===d)){a=a.children;d=0;for(var e= -a.length;dc;c++,d++){var e=c/32*Math.PI*2,f=d/32*Math.PI*2;b.push(Math.cos(e),Math.sin(e),1,Math.cos(f),Math.sin(f),1)}a.addAttribute("position",new y(b,3));b=new O({fog:!1});this.cone=new ca(a,b);this.add(this.cone);this.update()}function df(a){var b=[];a&&a.isBone&&b.push(a);for(var c=0;ca?-1:0e;e++)8===e||13===e||18===e||23===e?d+="-":14===e?d+="4":(2>=b&&(b=33554432+16777216*Math.random()|0),c=b&15,b>>=4,d+=a[19===e?c&3|8:c]);return d}}(),clamp:function(a,b,c){return Math.max(b,Math.min(c,a))},euclideanModulo:function(a,b){return(a%b+b)%b},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},lerp:function(a,b,c){return(1-c)*a+c*b},smoothstep:function(a,b,c){if(a<=b)return 0;if(a>=c)return 1;a=(a-b)/(c-b);return a*a*(3-2*a)},smootherstep:function(a, -b,c){if(a<=b)return 0;if(a>=c)return 1;a=(a-b)/(c-b);return a*a*a*(a*(6*a-15)+10)},randInt:function(a,b){return a+Math.floor(Math.random()*(b-a+1))},randFloat:function(a,b){return a+Math.random()*(b-a)},randFloatSpread:function(a){return a*(.5-Math.random())},degToRad:function(a){return a*R.DEG2RAD},radToDeg:function(a){return a*R.RAD2DEG},isPowerOfTwo:function(a){return 0===(a&a-1)&&0!==a},ceilPowerOfTwo:function(a){return Math.pow(2,Math.ceil(Math.log(a)/Math.LN2))},floorPowerOfTwo:function(a){return Math.pow(2, -Math.floor(Math.log(a)/Math.LN2))}};Object.defineProperties(C.prototype,{width:{get:function(){return this.x},set:function(a){this.x=a}},height:{get:function(){return this.y},set:function(a){this.y=a}}});Object.assign(C.prototype,{isVector2:!0,set:function(a,b){this.x=a;this.y=b;return this},setScalar:function(a){this.y=this.x=a;return this},setX:function(a){this.x=a;return this},setY:function(a){this.y=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break; -default:throw Error("index is out of range: "+a);}return this},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;default:throw Error("index is out of range: "+a);}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(a){this.x=a.x;this.y=a.y;return this},add:function(a,b){if(void 0!==b)return console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;return this}, -addScalar:function(a){this.x+=a;this.y+=a;return this},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;return this},addScaledVector:function(a,b){this.x+=a.x*b;this.y+=a.y*b;return this},sub:function(a,b){if(void 0!==b)return console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=a.y;return this},subScalar:function(a){this.x-=a;this.y-=a;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y; -return this},multiply:function(a){this.x*=a.x;this.y*=a.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},divide:function(a){this.x/=a.x;this.y/=a.y;return this},divideScalar:function(a){return this.multiplyScalar(1/a)},applyMatrix3:function(a){var b=this.x,c=this.y;a=a.elements;this.x=a[0]*b+a[3]*c+a[6];this.y=a[1]*b+a[4]*c+a[7];return this},min:function(a){this.x=Math.min(this.x,a.x);this.y=Math.min(this.y,a.y);return this},max:function(a){this.x=Math.max(this.x,a.x);this.y= -Math.max(this.y,a.y);return this},clamp:function(a,b){this.x=Math.max(a.x,Math.min(b.x,this.x));this.y=Math.max(a.y,Math.min(b.y,this.y));return this},clampScalar:function(){var a=new C,b=new C;return function(c,d){a.set(c,c);b.set(d,d);return this.clamp(a,b)}}(),clampLength:function(a,b){var c=this.length();return this.divideScalar(c||1).multiplyScalar(Math.max(a,Math.min(b,c)))},floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this},ceil:function(){this.x=Math.ceil(this.x); -this.y=Math.ceil(this.y);return this},round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y);return this},negate:function(){this.x=-this.x;this.y=-this.y;return this},dot:function(a){return this.x*a.x+this.y*a.y},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},manhattanLength:function(){return Math.abs(this.x)+ -Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length()||1)},angle:function(){var a=Math.atan2(this.y,this.x);0>a&&(a+=2*Math.PI);return a},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(a){var b=this.x-a.x;a=this.y-a.y;return b*b+a*a},manhattanDistanceTo:function(a){return Math.abs(this.x-a.x)+Math.abs(this.y-a.y)},setLength:function(a){return this.normalize().multiplyScalar(a)},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+= -(a.y-this.y)*b;return this},lerpVectors:function(a,b,c){return this.subVectors(b,a).multiplyScalar(c).add(a)},equals:function(a){return a.x===this.x&&a.y===this.y},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;return a},fromBufferAttribute:function(a,b,c){void 0!==c&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b); -return this},rotateAround:function(a,b){var c=Math.cos(b);b=Math.sin(b);var d=this.x-a.x,e=this.y-a.y;this.x=d*c-e*b+a.x;this.y=d*b+e*c+a.y;return this}});Object.assign(K.prototype,{isMatrix4:!0,set:function(a,b,c,d,e,f,g,h,k,l,q,n,t,m,p,v){var r=this.elements;r[0]=a;r[4]=b;r[8]=c;r[12]=d;r[1]=e;r[5]=f;r[9]=g;r[13]=h;r[2]=k;r[6]=l;r[10]=q;r[14]=n;r[3]=t;r[7]=m;r[11]=p;r[15]=v;return this},identity:function(){this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return this},clone:function(){return(new K).fromArray(this.elements)}, -copy:function(a){var b=this.elements;a=a.elements;b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];b[9]=a[9];b[10]=a[10];b[11]=a[11];b[12]=a[12];b[13]=a[13];b[14]=a[14];b[15]=a[15];return this},copyPosition:function(a){var b=this.elements;a=a.elements;b[12]=a[12];b[13]=a[13];b[14]=a[14];return this},extractBasis:function(a,b,c){a.setFromMatrixColumn(this,0);b.setFromMatrixColumn(this,1);c.setFromMatrixColumn(this,2);return this},makeBasis:function(a,b,c){this.set(a.x, -b.x,c.x,0,a.y,b.y,c.y,0,a.z,b.z,c.z,0,0,0,0,1);return this},extractRotation:function(){var a=new p;return function(b){var c=this.elements,d=b.elements,e=1/a.setFromMatrixColumn(b,0).length(),f=1/a.setFromMatrixColumn(b,1).length();b=1/a.setFromMatrixColumn(b,2).length();c[0]=d[0]*e;c[1]=d[1]*e;c[2]=d[2]*e;c[4]=d[4]*f;c[5]=d[5]*f;c[6]=d[6]*f;c[8]=d[8]*b;c[9]=d[9]*b;c[10]=d[10]*b;return this}}(),makeRotationFromEuler:function(a){a&&a.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order."); -var b=this.elements,c=a.x,d=a.y,e=a.z,f=Math.cos(c),c=Math.sin(c),g=Math.cos(d),d=Math.sin(d),h=Math.cos(e),e=Math.sin(e);if("XYZ"===a.order){var k=f*h;var l=f*e;var q=c*h;a=c*e;b[0]=g*h;b[4]=-g*e;b[8]=d;b[1]=l+q*d;b[5]=k-a*d;b[9]=-c*g;b[2]=a-k*d;b[6]=q+l*d;b[10]=f*g}else"YXZ"===a.order?(k=g*h,l=g*e,q=d*h,a=d*e,b[0]=k+a*c,b[4]=q*c-l,b[8]=f*d,b[1]=f*e,b[5]=f*h,b[9]=-c,b[2]=l*c-q,b[6]=a+k*c,b[10]=f*g):"ZXY"===a.order?(k=g*h,l=g*e,q=d*h,a=d*e,b[0]=k-a*c,b[4]=-f*e,b[8]=q+l*c,b[1]=l+q*c,b[5]=f*h,b[9]= -a-k*c,b[2]=-f*d,b[6]=c,b[10]=f*g):"ZYX"===a.order?(k=f*h,l=f*e,q=c*h,a=c*e,b[0]=g*h,b[4]=q*d-l,b[8]=k*d+a,b[1]=g*e,b[5]=a*d+k,b[9]=l*d-q,b[2]=-d,b[6]=c*g,b[10]=f*g):"YZX"===a.order?(k=f*g,l=f*d,q=c*g,a=c*d,b[0]=g*h,b[4]=a-k*e,b[8]=q*e+l,b[1]=e,b[5]=f*h,b[9]=-c*h,b[2]=-d*h,b[6]=l*e+q,b[10]=k-a*e):"XZY"===a.order&&(k=f*g,l=f*d,q=c*g,a=c*d,b[0]=g*h,b[4]=-e,b[8]=d*h,b[1]=k*e+a,b[5]=f*h,b[9]=l*e-q,b[2]=q*e-l,b[6]=c*h,b[10]=a*e+k);b[3]=0;b[7]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return this},makeRotationFromQuaternion:function(a){var b= -this.elements,c=a._x,d=a._y,e=a._z,f=a._w,g=c+c,h=d+d,k=e+e;a=c*g;var l=c*h,c=c*k,q=d*h,d=d*k,e=e*k,g=f*g,h=f*h,f=f*k;b[0]=1-(q+e);b[4]=l-f;b[8]=c+h;b[1]=l+f;b[5]=1-(a+e);b[9]=d-g;b[2]=c-h;b[6]=d+g;b[10]=1-(a+q);b[3]=0;b[7]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return this},lookAt:function(){var a=new p,b=new p,c=new p;return function(d,e,f){var g=this.elements;c.subVectors(d,e);0===c.lengthSq()&&(c.z=1);c.normalize();a.crossVectors(f,c);0===a.lengthSq()&&(1===Math.abs(f.z)?c.x+=1E-4:c.z+=1E-4, -c.normalize(),a.crossVectors(f,c));a.normalize();b.crossVectors(c,a);g[0]=a.x;g[4]=b.x;g[8]=c.x;g[1]=a.y;g[5]=b.y;g[9]=c.y;g[2]=a.z;g[6]=b.z;g[10]=c.z;return this}}(),multiply:function(a,b){return void 0!==b?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(a,b)):this.multiplyMatrices(this,a)},premultiply:function(a){return this.multiplyMatrices(a,this)},multiplyMatrices:function(a,b){var c=a.elements,d=b.elements; -b=this.elements;a=c[0];var e=c[4],f=c[8],g=c[12],h=c[1],k=c[5],l=c[9],q=c[13],n=c[2],m=c[6],r=c[10],p=c[14],v=c[3],w=c[7],x=c[11],c=c[15],z=d[0],I=d[4],B=d[8],J=d[12],y=d[1],C=d[5],A=d[9],D=d[13],E=d[2],H=d[6],L=d[10],Y=d[14],N=d[3],M=d[7],V=d[11],d=d[15];b[0]=a*z+e*y+f*E+g*N;b[4]=a*I+e*C+f*H+g*M;b[8]=a*B+e*A+f*L+g*V;b[12]=a*J+e*D+f*Y+g*d;b[1]=h*z+k*y+l*E+q*N;b[5]=h*I+k*C+l*H+q*M;b[9]=h*B+k*A+l*L+q*V;b[13]=h*J+k*D+l*Y+q*d;b[2]=n*z+m*y+r*E+p*N;b[6]=n*I+m*C+r*H+p*M;b[10]=n*B+m*A+r*L+p*V;b[14]=n*J+m* -D+r*Y+p*d;b[3]=v*z+w*y+x*E+c*N;b[7]=v*I+w*C+x*H+c*M;b[11]=v*B+w*A+x*L+c*V;b[15]=v*J+w*D+x*Y+c*d;return this},multiplyScalar:function(a){var b=this.elements;b[0]*=a;b[4]*=a;b[8]*=a;b[12]*=a;b[1]*=a;b[5]*=a;b[9]*=a;b[13]*=a;b[2]*=a;b[6]*=a;b[10]*=a;b[14]*=a;b[3]*=a;b[7]*=a;b[11]*=a;b[15]*=a;return this},applyToBufferAttribute:function(){var a=new p;return function(b){for(var c=0,d=b.count;cthis.determinant()&&(g=-g);c.x=f[12];c.y=f[13];c.z=f[14];b.copy(this);c=1/g;var f=1/h,l=1/k;b.elements[0]*=c;b.elements[1]*=c;b.elements[2]*=c;b.elements[4]*=f;b.elements[5]*=f;b.elements[6]*=f;b.elements[8]*=l;b.elements[9]*=l;b.elements[10]*=l;d.setFromRotationMatrix(b);e.x=g;e.y=h;e.z=k;return this}}(),makePerspective:function(a,b,c,d,e,f){void 0===f&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs."); -var g=this.elements;g[0]=2*e/(b-a);g[4]=0;g[8]=(b+a)/(b-a);g[12]=0;g[1]=0;g[5]=2*e/(c-d);g[9]=(c+d)/(c-d);g[13]=0;g[2]=0;g[6]=0;g[10]=-(f+e)/(f-e);g[14]=-2*f*e/(f-e);g[3]=0;g[7]=0;g[11]=-1;g[15]=0;return this},makeOrthographic:function(a,b,c,d,e,f){var g=this.elements,h=1/(b-a),k=1/(c-d),l=1/(f-e);g[0]=2*h;g[4]=0;g[8]=0;g[12]=-((b+a)*h);g[1]=0;g[5]=2*k;g[9]=0;g[13]=-((c+d)*k);g[2]=0;g[6]=0;g[10]=-2*l;g[14]=-((f+e)*l);g[3]=0;g[7]=0;g[11]=0;g[15]=1;return this},equals:function(a){var b=this.elements; -a=a.elements;for(var c=0;16>c;c++)if(b[c]!==a[c])return!1;return!0},fromArray:function(a,b){void 0===b&&(b=0);for(var c=0;16>c;c++)this.elements[c]=a[c+b];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);var c=this.elements;a[b]=c[0];a[b+1]=c[1];a[b+2]=c[2];a[b+3]=c[3];a[b+4]=c[4];a[b+5]=c[5];a[b+6]=c[6];a[b+7]=c[7];a[b+8]=c[8];a[b+9]=c[9];a[b+10]=c[10];a[b+11]=c[11];a[b+12]=c[12];a[b+13]=c[13];a[b+14]=c[14];a[b+15]=c[15];return a}});Object.assign(Z,{slerp:function(a,b,c,d){return c.copy(a).slerp(b, -d)},slerpFlat:function(a,b,c,d,e,f,g){var h=c[d+0],k=c[d+1],l=c[d+2];c=c[d+3];d=e[f+0];var q=e[f+1],n=e[f+2];e=e[f+3];if(c!==e||h!==d||k!==q||l!==n){f=1-g;var m=h*d+k*q+l*n+c*e,r=0<=m?1:-1,p=1-m*m;p>Number.EPSILON&&(p=Math.sqrt(p),m=Math.atan2(p,m*r),f=Math.sin(f*m)/p,g=Math.sin(g*m)/p);r*=g;h=h*f+d*r;k=k*f+q*r;l=l*f+n*r;c=c*f+e*r;f===1-g&&(g=1/Math.sqrt(h*h+k*k+l*l+c*c),h*=g,k*=g,l*=g,c*=g)}a[b]=h;a[b+1]=k;a[b+2]=l;a[b+3]=c}});Object.defineProperties(Z.prototype,{x:{get:function(){return this._x}, -set:function(a){this._x=a;this.onChangeCallback()}},y:{get:function(){return this._y},set:function(a){this._y=a;this.onChangeCallback()}},z:{get:function(){return this._z},set:function(a){this._z=a;this.onChangeCallback()}},w:{get:function(){return this._w},set:function(a){this._w=a;this.onChangeCallback()}}});Object.assign(Z.prototype,{set:function(a,b,c,d){this._x=a;this._y=b;this._z=c;this._w=d;this.onChangeCallback();return this},clone:function(){return new this.constructor(this._x,this._y,this._z, -this._w)},copy:function(a){this._x=a.x;this._y=a.y;this._z=a.z;this._w=a.w;this.onChangeCallback();return this},setFromEuler:function(a,b){if(!a||!a.isEuler)throw Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");var c=a._x,d=a._y,e=a._z;a=a.order;var f=Math.cos,g=Math.sin,h=f(c/2),k=f(d/2),f=f(e/2),c=g(c/2),d=g(d/2),e=g(e/2);"XYZ"===a?(this._x=c*k*f+h*d*e,this._y=h*d*f-c*k*e,this._z=h*k*e+c*d*f,this._w=h*k*f-c*d*e):"YXZ"===a?(this._x=c*k*f+ -h*d*e,this._y=h*d*f-c*k*e,this._z=h*k*e-c*d*f,this._w=h*k*f+c*d*e):"ZXY"===a?(this._x=c*k*f-h*d*e,this._y=h*d*f+c*k*e,this._z=h*k*e+c*d*f,this._w=h*k*f-c*d*e):"ZYX"===a?(this._x=c*k*f-h*d*e,this._y=h*d*f+c*k*e,this._z=h*k*e-c*d*f,this._w=h*k*f+c*d*e):"YZX"===a?(this._x=c*k*f+h*d*e,this._y=h*d*f+c*k*e,this._z=h*k*e-c*d*f,this._w=h*k*f-c*d*e):"XZY"===a&&(this._x=c*k*f-h*d*e,this._y=h*d*f-c*k*e,this._z=h*k*e+c*d*f,this._w=h*k*f+c*d*e);if(!1!==b)this.onChangeCallback();return this},setFromAxisAngle:function(a, -b){b/=2;var c=Math.sin(b);this._x=a.x*c;this._y=a.y*c;this._z=a.z*c;this._w=Math.cos(b);this.onChangeCallback();return this},setFromRotationMatrix:function(a){var b=a.elements,c=b[0];a=b[4];var d=b[8],e=b[1],f=b[5],g=b[9],h=b[2],k=b[6],b=b[10],l=c+f+b;0f&&c>b?(c=2*Math.sqrt(1+c-f-b),this._w=(k-g)/c,this._x=.25*c,this._y=(a+e)/c,this._z=(d+h)/c):f>b?(c=2*Math.sqrt(1+f-c-b),this._w=(d-h)/c,this._x=(a+e)/c,this._y= -.25*c,this._z=(g+k)/c):(c=2*Math.sqrt(1+b-c-f),this._w=(e-a)/c,this._x=(d+h)/c,this._y=(g+k)/c,this._z=.25*c);this.onChangeCallback();return this},setFromUnitVectors:function(){var a=new p,b;return function(c,d){void 0===a&&(a=new p);b=c.dot(d)+1;1E-6>b?(b=0,Math.abs(c.x)>Math.abs(c.z)?a.set(-c.y,c.x,0):a.set(0,-c.z,c.y)):a.crossVectors(c,d);this._x=a.x;this._y=a.y;this._z=a.z;this._w=b;return this.normalize()}}(),inverse:function(){return this.conjugate().normalize()},conjugate:function(){this._x*= --1;this._y*=-1;this._z*=-1;this.onChangeCallback();return this},dot:function(a){return this._x*a._x+this._y*a._y+this._z*a._z+this._w*a._w},lengthSq:function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},length:function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){var a=this.length();0===a?(this._z=this._y=this._x=0,this._w=1):(a=1/a,this._x*=a,this._y*=a,this._z*=a,this._w*=a);this.onChangeCallback();return this}, -multiply:function(a,b){return void 0!==b?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(a,b)):this.multiplyQuaternions(this,a)},premultiply:function(a){return this.multiplyQuaternions(a,this)},multiplyQuaternions:function(a,b){var c=a._x,d=a._y,e=a._z;a=a._w;var f=b._x,g=b._y,h=b._z;b=b._w;this._x=c*b+a*f+d*h-e*g;this._y=d*b+a*g+e*f-c*h;this._z=e*b+a*h+c*g-d*f;this._w=a*b-c*f-d*g-e*h;this.onChangeCallback(); -return this},slerp:function(a,b){if(0===b)return this;if(1===b)return this.copy(a);var c=this._x,d=this._y,e=this._z,f=this._w,g=f*a._w+c*a._x+d*a._y+e*a._z;0>g?(this._w=-a._w,this._x=-a._x,this._y=-a._y,this._z=-a._z,g=-g):this.copy(a);if(1<=g)return this._w=f,this._x=c,this._y=d,this._z=e,this;a=Math.sqrt(1-g*g);if(.001>Math.abs(a))return this._w=.5*(f+this._w),this._x=.5*(c+this._x),this._y=.5*(d+this._y),this._z=.5*(e+this._z),this;var h=Math.atan2(a,g),g=Math.sin((1-b)*h)/a;b=Math.sin(b*h)/a; -this._w=f*g+this._w*b;this._x=c*g+this._x*b;this._y=d*g+this._y*b;this._z=e*g+this._z*b;this.onChangeCallback();return this},equals:function(a){return a._x===this._x&&a._y===this._y&&a._z===this._z&&a._w===this._w},fromArray:function(a,b){void 0===b&&(b=0);this._x=a[b];this._y=a[b+1];this._z=a[b+2];this._w=a[b+3];this.onChangeCallback();return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this._x;a[b+1]=this._y;a[b+2]=this._z;a[b+3]=this._w;return a},onChange:function(a){this.onChangeCallback= -a;return this},onChangeCallback:function(){}});Object.assign(p.prototype,{isVector3:!0,set:function(a,b,c){this.x=a;this.y=b;this.z=c;return this},setScalar:function(a){this.z=this.y=this.x=a;return this},setX:function(a){this.x=a;return this},setY:function(a){this.y=a;return this},setZ:function(a){this.z=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;case 2:this.z=b;break;default:throw Error("index is out of range: "+a);}return this},getComponent:function(a){switch(a){case 0:return this.x; -case 1:return this.y;case 2:return this.z;default:throw Error("index is out of range: "+a);}},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;return this},add:function(a,b){if(void 0!==b)return console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;this.z+=a.z;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;return this}, -addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;return this},addScaledVector:function(a,b){this.x+=a.x*b;this.y+=a.y*b;this.z+=a.z*b;return this},sub:function(a,b){if(void 0!==b)return console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=a.y;this.z-=a.z;return this},subScalar:function(a){this.x-=a;this.y-=a;this.z-=a;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z= -a.z-b.z;return this},multiply:function(a,b){if(void 0!==b)return console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(a,b);this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;return this},multiplyVectors:function(a,b){this.x=a.x*b.x;this.y=a.y*b.y;this.z=a.z*b.z;return this},applyEuler:function(){var a=new Z;return function(b){b&&b.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."); -return this.applyQuaternion(a.setFromEuler(b))}}(),applyAxisAngle:function(){var a=new Z;return function(b,c){return this.applyQuaternion(a.setFromAxisAngle(b,c))}}(),applyMatrix3:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;this.x=a[0]*b+a[3]*c+a[6]*d;this.y=a[1]*b+a[4]*c+a[7]*d;this.z=a[2]*b+a[5]*c+a[8]*d;return this},applyMatrix4:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;var e=1/(a[3]*b+a[7]*c+a[11]*d+a[15]);this.x=(a[0]*b+a[4]*c+a[8]*d+a[12])*e;this.y=(a[1]*b+a[5]*c+a[9]* -d+a[13])*e;this.z=(a[2]*b+a[6]*c+a[10]*d+a[14])*e;return this},applyQuaternion:function(a){var b=this.x,c=this.y,d=this.z,e=a.x,f=a.y,g=a.z;a=a.w;var h=a*b+f*d-g*c,k=a*c+g*b-e*d,l=a*d+e*c-f*b,b=-e*b-f*c-g*d;this.x=h*a+b*-e+k*-g-l*-f;this.y=k*a+b*-f+l*-e-h*-g;this.z=l*a+b*-g+h*-f-k*-e;return this},project:function(){var a=new K;return function(b){a.multiplyMatrices(b.projectionMatrix,a.getInverse(b.matrixWorld));return this.applyMatrix4(a)}}(),unproject:function(){var a=new K;return function(b){a.multiplyMatrices(b.matrixWorld, -a.getInverse(b.projectionMatrix));return this.applyMatrix4(a)}}(),transformDirection:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;this.x=a[0]*b+a[4]*c+a[8]*d;this.y=a[1]*b+a[5]*c+a[9]*d;this.z=a[2]*b+a[6]*c+a[10]*d;return this.normalize()},divide:function(a){this.x/=a.x;this.y/=a.y;this.z/=a.z;return this},divideScalar:function(a){return this.multiplyScalar(1/a)},min:function(a){this.x=Math.min(this.x,a.x);this.y=Math.min(this.y,a.y);this.z=Math.min(this.z,a.z);return this},max:function(a){this.x= -Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);this.z=Math.max(this.z,a.z);return this},clamp:function(a,b){this.x=Math.max(a.x,Math.min(b.x,this.x));this.y=Math.max(a.y,Math.min(b.y,this.y));this.z=Math.max(a.z,Math.min(b.z,this.z));return this},clampScalar:function(){var a=new p,b=new p;return function(c,d){a.set(c,c,c);b.set(d,d,d);return this.clamp(a,b)}}(),clampLength:function(a,b){var c=this.length();return this.divideScalar(c||1).multiplyScalar(Math.max(a,Math.min(b,c)))},floor:function(){this.x= -Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);return this},round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y);this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z);return this},negate:function(){this.x= --this.x;this.y=-this.y;this.z=-this.z;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(a){return this.normalize().multiplyScalar(a)},lerp:function(a,b){this.x+=(a.x- -this.x)*b;this.y+=(a.y-this.y)*b;this.z+=(a.z-this.z)*b;return this},lerpVectors:function(a,b,c){return this.subVectors(b,a).multiplyScalar(c).add(a)},cross:function(a,b){return void 0!==b?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(a,b)):this.crossVectors(this,a)},crossVectors:function(a,b){var c=a.x,d=a.y;a=a.z;var e=b.x,f=b.y;b=b.z;this.x=d*b-a*f;this.y=a*e-c*b;this.z=c*f-d*e;return this},projectOnVector:function(a){var b= -a.dot(this)/a.lengthSq();return this.copy(a).multiplyScalar(b)},projectOnPlane:function(){var a=new p;return function(b){a.copy(this).projectOnVector(b);return this.sub(a)}}(),reflect:function(){var a=new p;return function(b){return this.sub(a.copy(b).multiplyScalar(2*this.dot(b)))}}(),angleTo:function(a){a=this.dot(a)/Math.sqrt(this.lengthSq()*a.lengthSq());return Math.acos(R.clamp(a,-1,1))},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(a){var b=this.x- -a.x,c=this.y-a.y;a=this.z-a.z;return b*b+c*c+a*a},manhattanDistanceTo:function(a){return Math.abs(this.x-a.x)+Math.abs(this.y-a.y)+Math.abs(this.z-a.z)},setFromSpherical:function(a){var b=Math.sin(a.phi)*a.radius;this.x=b*Math.sin(a.theta);this.y=Math.cos(a.phi)*a.radius;this.z=b*Math.cos(a.theta);return this},setFromCylindrical:function(a){this.x=a.radius*Math.sin(a.theta);this.y=a.y;this.z=a.radius*Math.cos(a.theta);return this},setFromMatrixPosition:function(a){a=a.elements;this.x=a[12];this.y= -a[13];this.z=a[14];return this},setFromMatrixScale:function(a){var b=this.setFromMatrixColumn(a,0).length(),c=this.setFromMatrixColumn(a,1).length();a=this.setFromMatrixColumn(a,2).length();this.x=b;this.y=c;this.z=a;return this},setFromMatrixColumn:function(a,b){return this.fromArray(a.elements,4*b)},equals:function(a){return a.x===this.x&&a.y===this.y&&a.z===this.z},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];this.z=a[b+2];return this},toArray:function(a,b){void 0===a&&(a= -[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;a[b+2]=this.z;return a},fromBufferAttribute:function(a,b,c){void 0!==c&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b);this.z=a.getZ(b);return this}});Object.assign(ra.prototype,{isMatrix3:!0,set:function(a,b,c,d,e,f,g,h,k){var l=this.elements;l[0]=a;l[1]=d;l[2]=g;l[3]=b;l[4]=e;l[5]=h;l[6]=c;l[7]=f;l[8]=k;return this},identity:function(){this.set(1,0,0,0,1,0,0,0,1);return this},clone:function(){return(new this.constructor).fromArray(this.elements)}, -copy:function(a){var b=this.elements;a=a.elements;b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];return this},setFromMatrix4:function(a){a=a.elements;this.set(a[0],a[4],a[8],a[1],a[5],a[9],a[2],a[6],a[10]);return this},applyToBufferAttribute:function(){var a=new p;return function(b){for(var c=0,d=b.count;cc;c++)if(b[c]!==a[c])return!1;return!0},fromArray:function(a,b){void 0===b&&(b=0);for(var c=0;9>c;c++)this.elements[c]=a[c+b];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);var c= -this.elements;a[b]=c[0];a[b+1]=c[1];a[b+2]=c[2];a[b+3]=c[3];a[b+4]=c[4];a[b+5]=c[5];a[b+6]=c[6];a[b+7]=c[7];a[b+8]=c[8];return a}});var kf=0;ea.DEFAULT_IMAGE=void 0;ea.DEFAULT_MAPPING=300;Object.defineProperty(ea.prototype,"needsUpdate",{set:function(a){!0===a&&this.version++}});Object.assign(ea.prototype,ja.prototype,{constructor:ea,isTexture:!0,clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.name=a.name;this.image=a.image;this.mipmaps=a.mipmaps.slice(0);this.mapping= -a.mapping;this.wrapS=a.wrapS;this.wrapT=a.wrapT;this.magFilter=a.magFilter;this.minFilter=a.minFilter;this.anisotropy=a.anisotropy;this.format=a.format;this.type=a.type;this.offset.copy(a.offset);this.repeat.copy(a.repeat);this.center.copy(a.center);this.rotation=a.rotation;this.matrixAutoUpdate=a.matrixAutoUpdate;this.matrix.copy(a.matrix);this.generateMipmaps=a.generateMipmaps;this.premultiplyAlpha=a.premultiplyAlpha;this.flipY=a.flipY;this.unpackAlignment=a.unpackAlignment;this.encoding=a.encoding; -return this},toJSON:function(a){var b=void 0===a||"string"===typeof a;if(!b&&void 0!==a.textures[this.uuid])return a.textures[this.uuid];var c={metadata:{version:4.5,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY}; -if(void 0!==this.image){var d=this.image;void 0===d.uuid&&(d.uuid=R.generateUUID());if(!b&&void 0===a.images[d.uuid]){var e=a.images,f=d.uuid,g=d.uuid;if(d instanceof HTMLCanvasElement)var h=d;else{h=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");h.width=d.width;h.height=d.height;var k=h.getContext("2d");d instanceof ImageData?k.putImageData(d,0,0):k.drawImage(d,0,0,d.width,d.height)}h=2048a.x||1a.x?0:1;break;case 1002:a.x=1===Math.abs(Math.floor(a.x)%2)?Math.ceil(a.x)-a.x:a.x-Math.floor(a.x)}if(0>a.y||1a.y?0:1;break;case 1002:a.y=1===Math.abs(Math.floor(a.y)% -2)?Math.ceil(a.y)-a.y:a.y-Math.floor(a.y)}this.flipY&&(a.y=1-a.y)}}});Object.assign(da.prototype,{isVector4:!0,set:function(a,b,c,d){this.x=a;this.y=b;this.z=c;this.w=d;return this},setScalar:function(a){this.w=this.z=this.y=this.x=a;return this},setX:function(a){this.x=a;return this},setY:function(a){this.y=a;return this},setZ:function(a){this.z=a;return this},setW:function(a){this.w=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;case 2:this.z=b;break; -case 3:this.w=b;break;default:throw Error("index is out of range: "+a);}return this},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw Error("index is out of range: "+a);}},clone:function(){return new this.constructor(this.x,this.y,this.z,this.w)},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=void 0!==a.w?a.w:1;return this},add:function(a,b){if(void 0!==b)return console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."), -this.addVectors(a,b);this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;this.w+=a;return this},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;this.w=a.w+b.w;return this},addScaledVector:function(a,b){this.x+=a.x*b;this.y+=a.y*b;this.z+=a.z*b;this.w+=a.w*b;return this},sub:function(a,b){if(void 0!==b)return console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a, -b);this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w;return this},subScalar:function(a){this.x-=a;this.y-=a;this.z-=a;this.w-=a;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;this.w=a.w-b.w;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;return this},applyMatrix4:function(a){var b=this.x,c=this.y,d=this.z,e=this.w;a=a.elements;this.x=a[0]*b+a[4]*c+a[8]*d+a[12]*e;this.y=a[1]*b+a[5]*c+a[9]*d+a[13]*e;this.z=a[2]*b+a[6]*c+a[10]*d+a[14]* -e;this.w=a[3]*b+a[7]*c+a[11]*d+a[15]*e;return this},divideScalar:function(a){return this.multiplyScalar(1/a)},setAxisAngleFromQuaternion:function(a){this.w=2*Math.acos(a.w);var b=Math.sqrt(1-a.w*a.w);1E-4>b?(this.x=1,this.z=this.y=0):(this.x=a.x/b,this.y=a.y/b,this.z=a.z/b);return this},setAxisAngleFromRotationMatrix:function(a){a=a.elements;var b=a[0];var c=a[4];var d=a[8],e=a[1],f=a[5],g=a[9];var h=a[2];var k=a[6];var l=a[10];if(.01>Math.abs(c-e)&&.01>Math.abs(d-h)&&.01>Math.abs(g-k)){if(.1>Math.abs(c+ -e)&&.1>Math.abs(d+h)&&.1>Math.abs(g+k)&&.1>Math.abs(b+f+l-3))return this.set(1,0,0,0),this;a=Math.PI;b=(b+1)/2;f=(f+1)/2;l=(l+1)/2;c=(c+e)/4;d=(d+h)/4;g=(g+k)/4;b>f&&b>l?.01>b?(k=0,c=h=.707106781):(k=Math.sqrt(b),h=c/k,c=d/k):f>l?.01>f?(k=.707106781,h=0,c=.707106781):(h=Math.sqrt(f),k=c/h,c=g/h):.01>l?(h=k=.707106781,c=0):(c=Math.sqrt(l),k=d/c,h=g/c);this.set(k,h,c,a);return this}a=Math.sqrt((k-g)*(k-g)+(d-h)*(d-h)+(e-c)*(e-c));.001>Math.abs(a)&&(a=1);this.x=(k-g)/a;this.y=(d-h)/a;this.z=(e-c)/a; -this.w=Math.acos((b+f+l-1)/2);return this},min:function(a){this.x=Math.min(this.x,a.x);this.y=Math.min(this.y,a.y);this.z=Math.min(this.z,a.z);this.w=Math.min(this.w,a.w);return this},max:function(a){this.x=Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);this.z=Math.max(this.z,a.z);this.w=Math.max(this.w,a.w);return this},clamp:function(a,b){this.x=Math.max(a.x,Math.min(b.x,this.x));this.y=Math.max(a.y,Math.min(b.y,this.y));this.z=Math.max(a.z,Math.min(b.z,this.z));this.w=Math.max(a.w,Math.min(b.w, -this.w));return this},clampScalar:function(){var a,b;return function(c,d){void 0===a&&(a=new da,b=new da);a.set(c,c,c,c);b.set(d,d,d,d);return this.clamp(a,b)}}(),clampLength:function(a,b){var c=this.length();return this.divideScalar(c||1).multiplyScalar(Math.max(a,Math.min(b,c)))},floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);this.w=Math.floor(this.w);return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z); -this.w=Math.ceil(this.w);return this},round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);this.w=Math.round(this.w);return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y);this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z);this.w=0>this.w?Math.ceil(this.w):Math.floor(this.w);return this},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;this.w=-this.w;return this}, -dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z+this.w*a.w},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(a){return this.normalize().multiplyScalar(a)},lerp:function(a,b){this.x+= -(a.x-this.x)*b;this.y+=(a.y-this.y)*b;this.z+=(a.z-this.z)*b;this.w+=(a.w-this.w)*b;return this},lerpVectors:function(a,b,c){return this.subVectors(b,a).multiplyScalar(c).add(a)},equals:function(a){return a.x===this.x&&a.y===this.y&&a.z===this.z&&a.w===this.w},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];this.z=a[b+2];this.w=a[b+3];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;a[b+2]=this.z;a[b+3]=this.w;return a},fromBufferAttribute:function(a, -b,c){void 0!==c&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b);this.z=a.getZ(b);this.w=a.getW(b);return this}});Object.assign(Hb.prototype,ja.prototype,{isWebGLRenderTarget:!0,setSize:function(a,b){if(this.width!==a||this.height!==b)this.width=a,this.height=b,this.dispose();this.viewport.set(0,0,a,b);this.scissor.set(0,0,a,b)},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.width=a.width;this.height= -a.height;this.viewport.copy(a.viewport);this.texture=a.texture.clone();this.depthBuffer=a.depthBuffer;this.stencilBuffer=a.stencilBuffer;this.depthTexture=a.depthTexture;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});Ib.prototype=Object.create(Hb.prototype);Ib.prototype.constructor=Ib;Ib.prototype.isWebGLRenderTargetCube=!0;fb.prototype=Object.create(ea.prototype);fb.prototype.constructor=fb;fb.prototype.isDataTexture=!0;Ua.prototype=Object.create(ea.prototype);Ua.prototype.constructor= -Ua;Ua.prototype.isCubeTexture=!0;Object.defineProperty(Ua.prototype,"images",{get:function(){return this.image},set:function(a){this.image=a}});var Be=new ea,Ce=new Ua,we=[],ye=[],Ae=new Float32Array(16),ze=new Float32Array(9);Ge.prototype.setValue=function(a,b){for(var c=this.seq,d=0,e=c.length;d!==e;++d){var f=c[d];f.setValue(a,b[f.id])}};var Od=/([\w\d_]+)(\])?(\[|\.)?/g;gb.prototype.setValue=function(a,b,c){b=this.map[b];void 0!==b&&b.setValue(a,c,this.renderer)};gb.prototype.setOptional=function(a, -b,c){b=b[c];void 0!==b&&this.setValue(a,c,b)};gb.upload=function(a,b,c,d){for(var e=0,f=b.length;e!==f;++e){var g=b[e],h=c[g.id];!1!==h.needsUpdate&&g.setValue(a,h.value,d)}};gb.seqWithValue=function(a,b){for(var c=[],d=0,e=a.length;d!==e;++d){var f=a[d];f.id in b&&c.push(f)}return c};var sg={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231, -cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539, -deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536, -lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154, -mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519, -royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Object.assign(H.prototype,{isColor:!0,r:1,g:1,b:1,set:function(a){a&& -a.isColor?this.copy(a):"number"===typeof a?this.setHex(a):"string"===typeof a&&this.setStyle(a);return this},setScalar:function(a){this.b=this.g=this.r=a;return this},setHex:function(a){a=Math.floor(a);this.r=(a>>16&255)/255;this.g=(a>>8&255)/255;this.b=(a&255)/255;return this},setRGB:function(a,b,c){this.r=a;this.g=b;this.b=c;return this},setHSL:function(){function a(a,c,d){0>d&&(d+=1);1d?c:d<2/3?a+6*(c-a)*(2/3-d):a}return function(b,c,d){b=R.euclideanModulo(b, -1);c=R.clamp(c,0,1);d=R.clamp(d,0,1);0===c?this.r=this.g=this.b=d:(c=.5>=d?d*(1+c):d+c-d*c,d=2*d-c,this.r=a(d,c,b+1/3),this.g=a(d,c,b),this.b=a(d,c,b-1/3));return this}}(),setStyle:function(a){function b(b){void 0!==b&&1>parseFloat(b)&&console.warn("THREE.Color: Alpha component of "+a+" will be ignored.")}var c;if(c=/^((?:rgb|hsl)a?)\(\s*([^\)]*)\)/.exec(a)){var d=c[2];switch(c[1]){case "rgb":case "rgba":if(c=/^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(d))return this.r=Math.min(255, -parseInt(c[1],10))/255,this.g=Math.min(255,parseInt(c[2],10))/255,this.b=Math.min(255,parseInt(c[3],10))/255,b(c[5]),this;if(c=/^(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(d))return this.r=Math.min(100,parseInt(c[1],10))/100,this.g=Math.min(100,parseInt(c[2],10))/100,this.b=Math.min(100,parseInt(c[3],10))/100,b(c[5]),this;break;case "hsl":case "hsla":if(c=/^([0-9]*\.?[0-9]+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(d)){var d=parseFloat(c[1])/360, -e=parseInt(c[2],10)/100,f=parseInt(c[3],10)/100;b(c[5]);return this.setHSL(d,e,f)}}}else if(c=/^\#([A-Fa-f0-9]+)$/.exec(a)){c=c[1];d=c.length;if(3===d)return this.r=parseInt(c.charAt(0)+c.charAt(0),16)/255,this.g=parseInt(c.charAt(1)+c.charAt(1),16)/255,this.b=parseInt(c.charAt(2)+c.charAt(2),16)/255,this;if(6===d)return this.r=parseInt(c.charAt(0)+c.charAt(1),16)/255,this.g=parseInt(c.charAt(2)+c.charAt(3),16)/255,this.b=parseInt(c.charAt(4)+c.charAt(5),16)/255,this}a&&0=h?k/(e+f): -k/(2-e-f);switch(e){case b:g=(c-d)/k+(c 0.0 ) {\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tfloat maxDistanceCutoffFactor = pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\treturn distanceFalloff * maxDistanceCutoffFactor;\n#else\n\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n#endif\n\t}\n\treturn 1.0;\n}\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\n\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\n}\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\treturn 1.0 / ( gl * gv );\n}\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNL = saturate( dot( geometry.normal, incidentLight.direction ) );\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( G * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat theta = acos( dot( N, V ) );\n\tvec2 uv = vec2(\n\t\tsqrt( saturate( roughness ) ),\n\t\tsaturate( theta / ( 0.5 * PI ) ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.86267 + (0.49788 + 0.01436 * y ) * y;\n\tfloat b = 3.45068 + (4.18814 + y) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = (x > 0.0) ? v : 0.5 * inversesqrt( 1.0 - x * x ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tvec3 result = vec3( LTC_ClippedSphereFormFactor( vectorFormFactor ) );\n\treturn result;\n}\nvec3 BRDF_Specular_GGX_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 AB = vec2( -1.04, 1.04 ) * a004 + r.zw;\n\treturn specularColor * AB.x + AB.y;\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\n}\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\n\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\n}\n", -bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\n\t\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 );\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif\n", -clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; ++ i ) {\n\t\tvec4 plane = clippingPlanes[ i ];\n\t\tif ( dot( vViewPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t\t\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; ++ i ) {\n\t\t\tvec4 plane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vViewPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\tif ( clipped ) discard;\n\t\n\t#endif\n#endif\n", -clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\t#if ! defined( PHYSICAL ) && ! defined( PHONG )\n\t\tvarying vec3 vViewPosition;\n\t#endif\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif\n",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\n\tvarying vec3 vViewPosition;\n#endif\n",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n", -color_fragment:"#ifdef USE_COLOR\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif\n",color_pars_vertex:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif",color_vertex:"#ifdef USE_COLOR\n\tvColor.xyz = color.xyz;\n#endif",common:"#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI_HALF 1.5707963267949\n#define RECIPROCAL_PI 0.31830988618\n#define RECIPROCAL_PI2 0.15915494\n#define LOG2 1.442695\n#define EPSILON 1e-6\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#define whiteCompliment(a) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract(sin(sn) * c);\n}\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\tfloat distance = dot( planeNormal, point - pointOnPlane );\n\treturn - distance * planeNormal + point;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\n", -cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n#define cubeUV_textureSize (1024.0)\nint getFaceFromDirection(vec3 direction) {\n\tvec3 absDirection = abs(direction);\n\tint face = -1;\n\tif( absDirection.x > absDirection.z ) {\n\t\tif(absDirection.x > absDirection.y )\n\t\t\tface = direction.x > 0.0 ? 0 : 3;\n\t\telse\n\t\t\tface = direction.y > 0.0 ? 1 : 4;\n\t}\n\telse {\n\t\tif(absDirection.z > absDirection.y )\n\t\t\tface = direction.z > 0.0 ? 2 : 5;\n\t\telse\n\t\t\tface = direction.y > 0.0 ? 1 : 4;\n\t}\n\treturn face;\n}\n#define cubeUV_maxLods1 (log2(cubeUV_textureSize*0.25) - 1.0)\n#define cubeUV_rangeClamp (exp2((6.0 - 1.0) * 2.0))\nvec2 MipLevelInfo( vec3 vec, float roughnessLevel, float roughness ) {\n\tfloat scale = exp2(cubeUV_maxLods1 - roughnessLevel);\n\tfloat dxRoughness = dFdx(roughness);\n\tfloat dyRoughness = dFdy(roughness);\n\tvec3 dx = dFdx( vec * scale * dxRoughness );\n\tvec3 dy = dFdy( vec * scale * dyRoughness );\n\tfloat d = max( dot( dx, dx ), dot( dy, dy ) );\n\td = clamp(d, 1.0, cubeUV_rangeClamp);\n\tfloat mipLevel = 0.5 * log2(d);\n\treturn vec2(floor(mipLevel), fract(mipLevel));\n}\n#define cubeUV_maxLods2 (log2(cubeUV_textureSize*0.25) - 2.0)\n#define cubeUV_rcpTextureSize (1.0 / cubeUV_textureSize)\nvec2 getCubeUV(vec3 direction, float roughnessLevel, float mipLevel) {\n\tmipLevel = roughnessLevel > cubeUV_maxLods2 - 3.0 ? 0.0 : mipLevel;\n\tfloat a = 16.0 * cubeUV_rcpTextureSize;\n\tvec2 exp2_packed = exp2( vec2( roughnessLevel, mipLevel ) );\n\tvec2 rcp_exp2_packed = vec2( 1.0 ) / exp2_packed;\n\tfloat powScale = exp2_packed.x * exp2_packed.y;\n\tfloat scale = rcp_exp2_packed.x * rcp_exp2_packed.y * 0.25;\n\tfloat mipOffset = 0.75*(1.0 - rcp_exp2_packed.y) * rcp_exp2_packed.x;\n\tbool bRes = mipLevel == 0.0;\n\tscale = bRes && (scale < a) ? a : scale;\n\tvec3 r;\n\tvec2 offset;\n\tint face = getFaceFromDirection(direction);\n\tfloat rcpPowScale = 1.0 / powScale;\n\tif( face == 0) {\n\t\tr = vec3(direction.x, -direction.z, direction.y);\n\t\toffset = vec2(0.0+mipOffset,0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 1) {\n\t\tr = vec3(direction.y, direction.x, direction.z);\n\t\toffset = vec2(scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 2) {\n\t\tr = vec3(direction.z, direction.x, direction.y);\n\t\toffset = vec2(2.0*scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 3) {\n\t\tr = vec3(direction.x, direction.z, direction.y);\n\t\toffset = vec2(0.0+mipOffset,0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse if( face == 4) {\n\t\tr = vec3(direction.y, direction.x, -direction.z);\n\t\toffset = vec2(scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse {\n\t\tr = vec3(direction.z, -direction.x, direction.y);\n\t\toffset = vec2(2.0*scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\tr = normalize(r);\n\tfloat texelOffset = 0.5 * cubeUV_rcpTextureSize;\n\tvec2 s = ( r.yz / abs( r.x ) + vec2( 1.0 ) ) * 0.5;\n\tvec2 base = offset + vec2( texelOffset );\n\treturn base + s * ( scale - 2.0 * texelOffset );\n}\n#define cubeUV_maxLods3 (log2(cubeUV_textureSize*0.25) - 3.0)\nvec4 textureCubeUV(vec3 reflectedDirection, float roughness ) {\n\tfloat roughnessVal = roughness* cubeUV_maxLods3;\n\tfloat r1 = floor(roughnessVal);\n\tfloat r2 = r1 + 1.0;\n\tfloat t = fract(roughnessVal);\n\tvec2 mipInfo = MipLevelInfo(reflectedDirection, r1, roughness);\n\tfloat s = mipInfo.y;\n\tfloat level0 = mipInfo.x;\n\tfloat level1 = level0 + 1.0;\n\tlevel1 = level1 > 5.0 ? 5.0 : level1;\n\tlevel0 += min( floor( s + 0.5 ), 5.0 );\n\tvec2 uv_10 = getCubeUV(reflectedDirection, r1, level0);\n\tvec4 color10 = envMapTexelToLinear(texture2D(envMap, uv_10));\n\tvec2 uv_20 = getCubeUV(reflectedDirection, r2, level0);\n\tvec4 color20 = envMapTexelToLinear(texture2D(envMap, uv_20));\n\tvec4 result = mix(color10, color20, t);\n\treturn vec4(result.rgb, 1.0);\n}\n#endif\n", -defaultnormal_vertex:"vec3 transformedNormal = normalMatrix * objectNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif\n",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, uv ).x * displacementScale + displacementBias );\n#endif\n", -emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif\n",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif\n",encodings_fragment:" gl_FragColor = linearToOutputTexel( gl_FragColor );\n",encodings_pars_fragment:"\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );\n}\nvec4 RGBEToLinear( in vec4 value ) {\n\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}\nvec4 LinearToRGBE( in vec4 value ) {\n\tfloat maxComponent = max( max( value.r, value.g ), value.b );\n\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.xyz * value.w * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.x, max( value.g, value.b ) );\n\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\n\tM = ceil( M * 255.0 ) / 255.0;\n\treturn vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.x, max( value.g, value.b ) );\n\tfloat D = max( maxRange / maxRGB, 1.0 );\n\tD = min( floor( D ) / 255.0, 1.0 );\n\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\nvec4 LinearToLogLuv( in vec4 value ) {\n\tvec3 Xp_Y_XYZp = value.rgb * cLogLuvM;\n\tXp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));\n\tvec4 vResult;\n\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n\tvResult.w = fract(Le);\n\tvResult.z = (Le - (floor(vResult.w*255.0))/255.0)/255.0;\n\treturn vResult;\n}\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\nvec4 LogLuvToLinear( in vec4 value ) {\n\tfloat Le = value.z * 255.0 + value.w;\n\tvec3 Xp_Y_XYZp;\n\tXp_Y_XYZp.y = exp2((Le - 127.0) / 2.0);\n\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\n\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\n\tvec3 vRGB = Xp_Y_XYZp.rgb * cLogLuvInverseM;\n\treturn vec4( max(vRGB, 0.0), 1.0 );\n}\n", -envmap_fragment:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\tvec2 sampleUV;\n\t\treflectVec = normalize( reflectVec );\n\t\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\tvec4 envColor = texture2D( envMap, sampleUV );\n\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\treflectVec = normalize( reflectVec );\n\t\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );\n\t\tvec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\tenvColor = envMapTexelToLinear( envColor );\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif\n", -envmap_pars_fragment:"#if defined( USE_ENVMAP ) || defined( PHYSICAL )\n\tuniform float reflectivity;\n\tuniform float envMapIntensity;\n#endif\n#ifdef USE_ENVMAP\n\t#if ! defined( PHYSICAL ) && ( defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) )\n\t\tvarying vec3 vWorldPosition;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\tuniform float flipEnvMap;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( PHYSICAL )\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif\n", -envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif\n",envmap_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif\n", -fog_vertex:"\n#ifdef USE_FOG\nfogDepth = -mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n varying float fogDepth;\n#endif\n",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * fogDepth * fogDepth * LOG2 ) );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif\n",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float fogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif\n", -gradientmap_pars_fragment:"#ifdef TOON\n\tuniform sampler2D gradientMap;\n\tvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\t\tfloat dotNL = dot( normal, lightDirection );\n\t\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t\t#ifdef USE_GRADIENTMAP\n\t\t\treturn texture2D( gradientMap, coord ).rgb;\n\t\t#else\n\t\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t\t#endif\n\t}\n#endif\n",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\treflectedLight.indirectDiffuse += PI * texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n#endif\n", -lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_vertex:"vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\n#if NUM_POINT_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_DIR_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvLightFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\n\t\t#endif\n\t}\n#endif\n", -lights_pars:"uniform vec3 ambientLightColor;\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treturn irradiance;\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tdirectLight.color = directionalLight.color;\n\t\tdirectLight.direction = directionalLight.direction;\n\t\tdirectLight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t\tfloat shadowCameraNear;\n\t\tfloat shadowCameraFar;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tdirectLight.color = pointLight.color;\n\t\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\n\t\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tfloat angleCos = dot( directLight.direction, spotLight.direction );\n\t\tif ( angleCos > spotLight.coneCos ) {\n\t\t\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\t\tdirectLight.color = spotLight.color;\n\t\t\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tdirectLight.visible = true;\n\t\t} else {\n\t\t\tdirectLight.color = vec3( 0.0 );\n\t\t\tdirectLight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltcMat;\tuniform sampler2D ltcMag;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\n\t\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tirradiance *= PI;\n\t\t#endif\n\t\treturn irradiance;\n\t}\n#endif\n#if defined( USE_ENVMAP ) && defined( PHYSICAL )\n\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\n\t\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\tvec4 envMapColor = textureCubeUV( queryVec, 1.0 );\n\t\t#else\n\t\t\tvec4 envMapColor = vec4( 0.0 );\n\t\t#endif\n\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t}\n\tfloat getSpecularMIPLevel( const in float blinnShininessExponent, const in int maxMIPLevel ) {\n\t\tfloat maxMIPLevelScalar = float( maxMIPLevel );\n\t\tfloat desiredMIPLevel = maxMIPLevelScalar + 0.79248 - 0.5 * log2( pow2( blinnShininessExponent ) + 1.0 );\n\t\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\n\t}\n\tvec3 getLightProbeIndirectRadiance( const in GeometricContext geometry, const in float blinnShininessExponent, const in int maxMIPLevel ) {\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( -geometry.viewDir, geometry.normal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( -geometry.viewDir, geometry.normal, refractionRatio );\n\t\t#endif\n\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\tfloat specularMIPLevel = getSpecularMIPLevel( blinnShininessExponent, maxMIPLevel );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\tvec4 envMapColor = textureCubeUV(queryReflectVec, BlinnExponentToGGXRoughness(blinnShininessExponent));\n\t\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\t\tvec2 sampleUV;\n\t\t\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\t\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, sampleUV, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, sampleUV, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\t\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0,0.0,1.0 ) );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#endif\n\t\treturn envMapColor.rgb * envMapIntensity;\n\t}\n#endif\n", -lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;\n",lights_phong_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct BlinnPhongMaterial {\n\tvec3\tdiffuseColor;\n\tvec3\tspecularColor;\n\tfloat\tspecularShininess;\n\tfloat\tspecularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\t#ifdef TOON\n\t\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\t#else\n\t\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\t\tvec3 irradiance = dotNL * directLight.color;\n\t#endif\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)\n", -lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nmaterial.specularRoughness = clamp( roughnessFactor, 0.04, 1.0 );\n#ifdef STANDARD\n\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.clearCoat = saturate( clearCoat );\tmaterial.clearCoatRoughness = clamp( clearCoatRoughness, 0.04, 1.0 );\n#endif\n", -lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3\tdiffuseColor;\n\tfloat\tspecularRoughness;\n\tvec3\tspecularColor;\n\t#ifndef STANDARD\n\t\tfloat clearCoat;\n\t\tfloat clearCoatRoughness;\n\t#endif\n};\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\nfloat clearCoatDHRApprox( const in float roughness, const in float dotNL ) {\n\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.specularRoughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos - halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos + halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos + halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos - halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tfloat norm = texture2D( ltcMag, uv ).a;\n\t\tvec4 t = texture2D( ltcMat, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( 1, 0, t.y ),\n\t\t\tvec3( 0, t.z, 0 ),\n\t\t\tvec3( t.w, 0, t.x )\n\t\t);\n\t\treflectedLight.directSpecular += lightColor * material.specularColor * norm * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\t#ifndef STANDARD\n\t\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\n\t#else\n\t\tfloat clearCoatDHR = 0.0;\n\t#endif\n\treflectedLight.directSpecular += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry, material.specularColor, material.specularRoughness );\n\treflectedLight.directDiffuse += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\t#ifndef STANDARD\n\t\treflectedLight.directSpecular += irradiance * material.clearCoat * BRDF_Specular_GGX( directLight, geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\n\t#endif\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 clearCoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t#ifndef STANDARD\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\tfloat dotNL = dotNV;\n\t\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\n\t#else\n\t\tfloat clearCoatDHR = 0.0;\n\t#endif\n\treflectedLight.indirectSpecular += ( 1.0 - clearCoatDHR ) * radiance * BRDF_Specular_GGX_Environment( geometry, material.specularColor, material.specularRoughness );\n\t#ifndef STANDARD\n\t\treflectedLight.indirectSpecular += clearCoatRadiance * material.clearCoat * BRDF_Specular_GGX_Environment( geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\n\t#endif\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\n#define Material_BlinnShininessExponent( material ) GGXRoughnessToBlinnExponent( material.specularRoughness )\n#define Material_ClearCoat_BlinnShininessExponent( material ) GGXRoughnessToBlinnExponent( material.clearCoatRoughness )\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}\n", -lights_template:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = normalize( vViewPosition );\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( pointLight.shadow, directLight.visible ) ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( spotLight.shadow, directLight.visible ) ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( directionalLight.shadow, directLight.visible ) ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\t#ifdef USE_LIGHTMAP\n\t\tvec3 lightMapIrradiance = texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t}\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( PHYSICAL ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tirradiance += getLightProbeIndirectIrradiance( geometry, 8 );\n\t#endif\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tvec3 radiance = getLightProbeIndirectRadiance( geometry, Material_BlinnShininessExponent( material ), 8 );\n\t#ifndef STANDARD\n\t\tvec3 clearCoatRadiance = getLightProbeIndirectRadiance( geometry, Material_ClearCoat_BlinnShininessExponent( material ), 8 );\n\t#else\n\t\tvec3 clearCoatRadiance = vec3( 0.0 );\n\t#endif\n\tRE_IndirectSpecular( radiance, clearCoatRadiance, geometry, material, reflectedLight );\n#endif\n", -logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#ifdef USE_LOGDEPTHBUF\n\tuniform float logDepthBufFC;\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t#endif\n#endif\n",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t#endif\n\tuniform float logDepthBufFC;\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t#else\n\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\tgl_Position.z *= gl_Position.w;\n\t#endif\n#endif\n", -map_fragment:"#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif\n",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n",map_particle_fragment:"#ifdef USE_MAP\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\tvec4 mapTexel = texture2D( map, uv );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n",map_particle_pars_fragment:"#ifdef USE_MAP\n\tuniform mat3 uvTransform;\n\tuniform sampler2D map;\n#endif\n", -metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif\n",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\n\tobjectNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\n\tobjectNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\n\tobjectNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];\n#endif\n", -morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\t#ifndef USE_MORPHNORMALS\n\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\n\ttransformed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\n\ttransformed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\n\ttransformed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\ttransformed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\n\ttransformed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\n\ttransformed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\n\ttransformed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\n\t#endif\n#endif\n", -normal_fragment:"#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n#endif\n#ifdef USE_NORMALMAP\n\tnormal = perturbNormal2Arb( -vViewPosition, normal );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n#endif\n", -normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm ) {\n\t\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tvec3 S = normalize( q0 * st1.t - q1 * st0.t );\n\t\tvec3 T = normalize( -q0 * st1.s + q1 * st0.s );\n\t\tvec3 N = normalize( surf_norm );\n\t\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\tmapN.xy = normalScale * mapN.xy;\n\t\tmat3 tsn = mat3( S, T, N );\n\t\treturn normalize( tsn * mapN );\n\t}\n#endif\n", -packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}\n", -premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif\n",project_vertex:"vec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );\ngl_Position = projectionMatrix * mvPosition;\n",dithering_fragment:"#if defined( DITHERING )\n gl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif\n",dithering_pars_fragment:"#if defined( DITHERING )\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif\n", -roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif\n",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHTS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHTS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHTS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tfloat texture2DShadowLerp( sampler2D depths, vec2 size, vec2 uv, float compare ) {\n\t\tconst vec2 offset = vec2( 0.0, 1.0 );\n\t\tvec2 texelSize = vec2( 1.0 ) / size;\n\t\tvec2 centroidUV = floor( uv * size + 0.5 ) / size;\n\t\tfloat lb = texture2DCompare( depths, centroidUV + texelSize * offset.xx, compare );\n\t\tfloat lt = texture2DCompare( depths, centroidUV + texelSize * offset.xy, compare );\n\t\tfloat rb = texture2DCompare( depths, centroidUV + texelSize * offset.yx, compare );\n\t\tfloat rt = texture2DCompare( depths, centroidUV + texelSize * offset.yy, compare );\n\t\tvec2 f = fract( uv * size + 0.5 );\n\t\tfloat a = mix( lb, lt, f.y );\n\t\tfloat b = mix( rb, rt, f.y );\n\t\tfloat c = mix( a, b, f.x );\n\t\treturn c;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tshadow = (\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif\n", -shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHTS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHTS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHTS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\n\t#endif\n#endif\n", -shadowmap_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n#endif\n", -shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\tDirectionalLight directionalLight;\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tshadow *= bool( directionalLight.shadow ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\tSpotLight spotLight;\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tshadow *= bool( spotLight.shadow ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\tPointLight pointLight;\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tshadow *= bool( pointLight.shadow ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#endif\n\t#endif\n\treturn shadow;\n}\n", -skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\t#ifdef BONE_TEXTURE\n\t\tuniform sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\t\ty = dy * ( y + 0.5 );\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif\n", -skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif\n",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n#endif\n", -specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif\n",tonemapping_pars_fragment:"#ifndef saturate\n\t#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nuniform float toneMappingWhitePoint;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\n#define Uncharted2Helper( x ) max( ( ( x * ( 0.15 * x + 0.10 * 0.50 ) + 0.20 * 0.02 ) / ( x * ( 0.15 * x + 0.50 ) + 0.20 * 0.30 ) ) - 0.02 / 0.30, vec3( 0.0 ) )\nvec3 Uncharted2ToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\n", -uv_pars_fragment:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvarying vec2 vUv;\n#endif",uv_pars_vertex:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\n", -uv_vertex:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif",uv2_pars_fragment:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif",uv2_pars_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n#endif", -uv2_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = uv2;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n\tvec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\n#endif\n",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldPosition;\nvoid main() {\n\tgl_FragColor = textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );\n\tgl_FragColor.a *= opacity;\n}\n", -cube_vert:"varying vec3 vWorldPosition;\n#include \nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}\n",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( gl_FragCoord.z ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( gl_FragCoord.z );\n\t#endif\n}\n", -depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}\n", -distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}\n", -equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldPosition;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldPosition );\n\tvec2 sampleUV;\n\tsampleUV.y = asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n}\n",equirect_vert:"varying vec3 vWorldPosition;\n#include \nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}\n", -linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvLineDistance = scale * lineDistance;\n\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}\n", -meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\treflectedLight.indirectDiffuse += texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef USE_ENVMAP\n\t#include \n\t#include \n\t#include \n\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -meshlambert_frag:"uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\treflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );\n\t#include \n\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -meshphysical_frag:"#define PHYSICAL\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifndef STANDARD\n\tuniform float clearCoat;\n\tuniform float clearCoatRoughness;\n#endif\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -meshphysical_vert:"#define PHYSICAL\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}\n", -normal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n}\n", -normal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}\n", -points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#ifdef USE_SIZEATTENUATION\n\t\tgl_PointSize = size * ( scale / - mvPosition.z );\n\t#else\n\t\tgl_PointSize = size;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n}\n",shadow_vert:"#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n"}, -mb={basic:{uniforms:Ea.merge([E.common,E.specularmap,E.envmap,E.aomap,E.lightmap,E.fog]),vertexShader:W.meshbasic_vert,fragmentShader:W.meshbasic_frag},lambert:{uniforms:Ea.merge([E.common,E.specularmap,E.envmap,E.aomap,E.lightmap,E.emissivemap,E.fog,E.lights,{emissive:{value:new H(0)}}]),vertexShader:W.meshlambert_vert,fragmentShader:W.meshlambert_frag},phong:{uniforms:Ea.merge([E.common,E.specularmap,E.envmap,E.aomap,E.lightmap,E.emissivemap,E.bumpmap,E.normalmap,E.displacementmap,E.gradientmap, -E.fog,E.lights,{emissive:{value:new H(0)},specular:{value:new H(1118481)},shininess:{value:30}}]),vertexShader:W.meshphong_vert,fragmentShader:W.meshphong_frag},standard:{uniforms:Ea.merge([E.common,E.envmap,E.aomap,E.lightmap,E.emissivemap,E.bumpmap,E.normalmap,E.displacementmap,E.roughnessmap,E.metalnessmap,E.fog,E.lights,{emissive:{value:new H(0)},roughness:{value:.5},metalness:{value:.5},envMapIntensity:{value:1}}]),vertexShader:W.meshphysical_vert,fragmentShader:W.meshphysical_frag},points:{uniforms:Ea.merge([E.points, -E.fog]),vertexShader:W.points_vert,fragmentShader:W.points_frag},dashed:{uniforms:Ea.merge([E.common,E.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:W.linedashed_vert,fragmentShader:W.linedashed_frag},depth:{uniforms:Ea.merge([E.common,E.displacementmap]),vertexShader:W.depth_vert,fragmentShader:W.depth_frag},normal:{uniforms:Ea.merge([E.common,E.bumpmap,E.normalmap,E.displacementmap,{opacity:{value:1}}]),vertexShader:W.normal_vert,fragmentShader:W.normal_frag},cube:{uniforms:{tCube:{value:null}, -tFlip:{value:-1},opacity:{value:1}},vertexShader:W.cube_vert,fragmentShader:W.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:W.equirect_vert,fragmentShader:W.equirect_frag},distanceRGBA:{uniforms:Ea.merge([E.common,E.displacementmap,{referencePosition:{value:new p},nearDistance:{value:1},farDistance:{value:1E3}}]),vertexShader:W.distanceRGBA_vert,fragmentShader:W.distanceRGBA_frag},shadow:{uniforms:Ea.merge([E.lights,E.fog,{color:{value:new H(0)},opacity:{value:1}}]),vertexShader:W.shadow_vert, -fragmentShader:W.shadow_frag}};mb.physical={uniforms:Ea.merge([mb.standard.uniforms,{clearCoat:{value:0},clearCoatRoughness:{value:0}}]),vertexShader:W.meshphysical_vert,fragmentShader:W.meshphysical_frag};Object.assign(kd.prototype,{set:function(a,b){this.min.copy(a);this.max.copy(b);return this},setFromPoints:function(a){this.makeEmpty();for(var b=0,c=a.length;bthis.max.x||a.ythis.max.y?!1:!0},containsBox:function(a){return this.min.x<=a.min.x&&a.max.x<=this.max.x&&this.min.y<=a.min.y&&a.max.y<= -this.max.y},getParameter:function(a,b){return(b||new C).set((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y))},intersectsBox:function(a){return a.max.xthis.max.x||a.max.ythis.max.y?!1:!0},clampPoint:function(a,b){return(b||new C).copy(a).clamp(this.min,this.max)},distanceToPoint:function(){var a=new C;return function(b){return a.copy(b).clamp(this.min,this.max).sub(b).length()}}(),intersect:function(a){this.min.max(a.min); -this.max.min(a.max);return this},union:function(a){this.min.min(a.min);this.max.max(a.max);return this},translate:function(a){this.min.add(a);this.max.add(a);return this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)}});tc.prototype=Object.create(ea.prototype);tc.prototype.constructor=tc;var Lf=0;Object.assign(Q.prototype,ja.prototype,{isMaterial:!0,onBeforeCompile:function(){},setValues:function(a){if(void 0!==a)for(var b in a){var c=a[b];if(void 0===c)console.warn("THREE.Material: '"+ -b+"' parameter is undefined.");else if("shading"===b)console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===c?!0:!1;else{var d=this[b];void 0===d?console.warn("THREE."+this.type+": '"+b+"' is not a property of this material."):d&&d.isColor?d.set(c):d&&d.isVector3&&c&&c.isVector3?d.copy(c):this[b]="overdraw"===b?Number(c):c}}},toJSON:function(a){function b(a){var b=[],c;for(c in a){var d=a[c];delete d.metadata;b.push(d)}return b}var c= -void 0===a||"string"===typeof a;c&&(a={textures:{},images:{}});var d={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};d.uuid=this.uuid;d.type=this.type;""!==this.name&&(d.name=this.name);this.color&&this.color.isColor&&(d.color=this.color.getHex());void 0!==this.roughness&&(d.roughness=this.roughness);void 0!==this.metalness&&(d.metalness=this.metalness);this.emissive&&this.emissive.isColor&&(d.emissive=this.emissive.getHex());1!==this.emissiveIntensity&&(d.emissiveIntensity=this.emissiveIntensity); -this.specular&&this.specular.isColor&&(d.specular=this.specular.getHex());void 0!==this.shininess&&(d.shininess=this.shininess);void 0!==this.clearCoat&&(d.clearCoat=this.clearCoat);void 0!==this.clearCoatRoughness&&(d.clearCoatRoughness=this.clearCoatRoughness);this.map&&this.map.isTexture&&(d.map=this.map.toJSON(a).uuid);this.alphaMap&&this.alphaMap.isTexture&&(d.alphaMap=this.alphaMap.toJSON(a).uuid);this.lightMap&&this.lightMap.isTexture&&(d.lightMap=this.lightMap.toJSON(a).uuid);this.bumpMap&& -this.bumpMap.isTexture&&(d.bumpMap=this.bumpMap.toJSON(a).uuid,d.bumpScale=this.bumpScale);this.normalMap&&this.normalMap.isTexture&&(d.normalMap=this.normalMap.toJSON(a).uuid,d.normalScale=this.normalScale.toArray());this.displacementMap&&this.displacementMap.isTexture&&(d.displacementMap=this.displacementMap.toJSON(a).uuid,d.displacementScale=this.displacementScale,d.displacementBias=this.displacementBias);this.roughnessMap&&this.roughnessMap.isTexture&&(d.roughnessMap=this.roughnessMap.toJSON(a).uuid); -this.metalnessMap&&this.metalnessMap.isTexture&&(d.metalnessMap=this.metalnessMap.toJSON(a).uuid);this.emissiveMap&&this.emissiveMap.isTexture&&(d.emissiveMap=this.emissiveMap.toJSON(a).uuid);this.specularMap&&this.specularMap.isTexture&&(d.specularMap=this.specularMap.toJSON(a).uuid);this.envMap&&this.envMap.isTexture&&(d.envMap=this.envMap.toJSON(a).uuid,d.reflectivity=this.reflectivity);this.gradientMap&&this.gradientMap.isTexture&&(d.gradientMap=this.gradientMap.toJSON(a).uuid);void 0!==this.size&& -(d.size=this.size);void 0!==this.sizeAttenuation&&(d.sizeAttenuation=this.sizeAttenuation);1!==this.blending&&(d.blending=this.blending);!0===this.flatShading&&(d.flatShading=this.flatShading);0!==this.side&&(d.side=this.side);0!==this.vertexColors&&(d.vertexColors=this.vertexColors);1>this.opacity&&(d.opacity=this.opacity);!0===this.transparent&&(d.transparent=this.transparent);d.depthFunc=this.depthFunc;d.depthTest=this.depthTest;d.depthWrite=this.depthWrite;0!==this.rotation&&(d.rotation=this.rotation); -1!==this.linewidth&&(d.linewidth=this.linewidth);void 0!==this.dashSize&&(d.dashSize=this.dashSize);void 0!==this.gapSize&&(d.gapSize=this.gapSize);void 0!==this.scale&&(d.scale=this.scale);!0===this.dithering&&(d.dithering=!0);0e&&(e=l);q>f&&(f=q);n>g&&(g=n)}this.min.set(b,c,d);this.max.set(e,f,g);return this},setFromBufferAttribute:function(a){for(var b= -Infinity,c=Infinity,d=Infinity,e=-Infinity,f=-Infinity,g=-Infinity,h=0,k=a.count;he&&(e=l);q>f&&(f=q);n>g&&(g=n)}this.min.set(b,c,d);this.max.set(e,f,g);return this},setFromPoints:function(a){this.makeEmpty();for(var b=0,c=a.length;bthis.max.x||a.ythis.max.y||a.zthis.max.z?!1:!0},containsBox:function(a){return this.min.x<=a.min.x&&a.max.x<= -this.max.x&&this.min.y<=a.min.y&&a.max.y<=this.max.y&&this.min.z<=a.min.z&&a.max.z<=this.max.z},getParameter:function(a,b){return(b||new p).set((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y),(a.z-this.min.z)/(this.max.z-this.min.z))},intersectsBox:function(a){return a.max.xthis.max.x||a.max.ythis.max.y||a.max.zthis.max.z?!1:!0},intersectsSphere:function(){var a=new p;return function(b){this.clampPoint(b.center, -a);return a.distanceToSquared(b.center)<=b.radius*b.radius}}(),intersectsPlane:function(a){if(0=a.constant},clampPoint:function(a, -b){return(b||new p).copy(a).clamp(this.min,this.max)},distanceToPoint:function(){var a=new p;return function(b){return a.copy(b).clamp(this.min,this.max).sub(b).length()}}(),getBoundingSphere:function(){var a=new p;return function(b){b=b||new Da;this.getCenter(b.center);b.radius=.5*this.getSize(a).length();return b}}(),intersect:function(a){this.min.max(a.min);this.max.min(a.max);this.isEmpty()&&this.makeEmpty();return this},union:function(a){this.min.min(a.min);this.max.max(a.max);return this},applyMatrix4:function(){var a= -[new p,new p,new p,new p,new p,new p,new p,new p];return function(b){if(this.isEmpty())return this;a[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(b);a[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(b);a[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(b);a[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(b);a[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(b);a[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(b);a[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(b); -a[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(b);this.setFromPoints(a);return this}}(),translate:function(a){this.min.add(a);this.max.add(a);return this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)}});Object.assign(Da.prototype,{set:function(a,b){this.center.copy(a);this.radius=b;return this},setFromPoints:function(){var a=new Oa;return function(b,c){var d=this.center;void 0!==c?d.copy(c):a.setFromPoints(b).getCenter(d);for(var e=c=0,f=b.length;e=this.radius},containsPoint:function(a){return a.distanceToSquared(this.center)<=this.radius*this.radius},distanceToPoint:function(a){return a.distanceTo(this.center)-this.radius},intersectsSphere:function(a){var b=this.radius+a.radius;return a.center.distanceToSquared(this.center)<= -b*b},intersectsBox:function(a){return a.intersectsSphere(this)},intersectsPlane:function(a){return Math.abs(a.distanceToPoint(this.center))<=this.radius},clampPoint:function(a,b){var c=this.center.distanceToSquared(a);b=b||new p;b.copy(a);c>this.radius*this.radius&&(b.sub(this.center).normalize(),b.multiplyScalar(this.radius).add(this.center));return b},getBoundingBox:function(a){a=a||new Oa;a.set(this.center,this.center);a.expandByScalar(this.radius);return a},applyMatrix4:function(a){this.center.applyMatrix4(a); -this.radius*=a.getMaxScaleOnAxis();return this},translate:function(a){this.center.add(a);return this},equals:function(a){return a.center.equals(this.center)&&a.radius===this.radius}});Object.assign(Aa.prototype,{set:function(a,b){this.normal.copy(a);this.constant=b;return this},setComponents:function(a,b,c,d){this.normal.set(a,b,c);this.constant=d;return this},setFromNormalAndCoplanarPoint:function(a,b){this.normal.copy(a);this.constant=-b.dot(this.normal);return this},setFromCoplanarPoints:function(){var a= -new p,b=new p;return function(c,d,e){d=a.subVectors(e,d).cross(b.subVectors(c,d)).normalize();this.setFromNormalAndCoplanarPoint(d,c);return this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.normal.copy(a.normal);this.constant=a.constant;return this},normalize:function(){var a=1/this.normal.length();this.normal.multiplyScalar(a);this.constant*=a;return this},negate:function(){this.constant*=-1;this.normal.negate();return this},distanceToPoint:function(a){return this.normal.dot(a)+ -this.constant},distanceToSphere:function(a){return this.distanceToPoint(a.center)-a.radius},projectPoint:function(a,b){return(b||new p).copy(this.normal).multiplyScalar(-this.distanceToPoint(a)).add(a)},intersectLine:function(){var a=new p;return function(b,c){c=c||new p;var d=b.delta(a),e=this.normal.dot(d);if(0===e){if(0===this.distanceToPoint(b.start))return c.copy(b.start)}else if(e=-(b.start.dot(this.normal)+this.constant)/e,!(0>e||1b&&0a&&0c;c++)b[c].copy(a.planes[c]);return this},setFromMatrix:function(a){var b=this.planes, -c=a.elements;a=c[0];var d=c[1],e=c[2],f=c[3],g=c[4],h=c[5],k=c[6],l=c[7],q=c[8],n=c[9],m=c[10],r=c[11],p=c[12],v=c[13],w=c[14],c=c[15];b[0].setComponents(f-a,l-g,r-q,c-p).normalize();b[1].setComponents(f+a,l+g,r+q,c+p).normalize();b[2].setComponents(f+d,l+h,r+n,c+v).normalize();b[3].setComponents(f-d,l-h,r-n,c-v).normalize();b[4].setComponents(f-e,l-k,r-m,c-w).normalize();b[5].setComponents(f+e,l+k,r+m,c+w).normalize();return this},intersectsObject:function(){var a=new Da;return function(b){var c= -b.geometry;null===c.boundingSphere&&c.computeBoundingSphere();a.copy(c.boundingSphere).applyMatrix4(b.matrixWorld);return this.intersectsSphere(a)}}(),intersectsSprite:function(){var a=new Da;return function(b){a.center.set(0,0,0);a.radius=.7071067811865476;a.applyMatrix4(b.matrixWorld);return this.intersectsSphere(a)}}(),intersectsSphere:function(a){var b=this.planes,c=a.center;a=-a.radius;for(var d=0;6>d;d++)if(b[d].distanceToPoint(c)e;e++){var f=d[e];a.x=0g&&0>f)return!1}return!0}}(),containsPoint:function(a){for(var b=this.planes,c=0;6>c;c++)if(0>b[c].distanceToPoint(a))return!1;return!0}});Ya.RotationOrders="XYZ YZX ZXY XZY YXZ ZYX".split(" "); -Ya.DefaultOrder="XYZ";Object.defineProperties(Ya.prototype,{x:{get:function(){return this._x},set:function(a){this._x=a;this.onChangeCallback()}},y:{get:function(){return this._y},set:function(a){this._y=a;this.onChangeCallback()}},z:{get:function(){return this._z},set:function(a){this._z=a;this.onChangeCallback()}},order:{get:function(){return this._order},set:function(a){this._order=a;this.onChangeCallback()}}});Object.assign(Ya.prototype,{isEuler:!0,set:function(a,b,c,d){this._x=a;this._y=b;this._z= -c;this._order=d||this._order;this.onChangeCallback();return this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._order)},copy:function(a){this._x=a._x;this._y=a._y;this._z=a._z;this._order=a._order;this.onChangeCallback();return this},setFromRotationMatrix:function(a,b,c){var d=R.clamp,e=a.elements;a=e[0];var f=e[4],g=e[8],h=e[1],k=e[5],l=e[9],q=e[2],n=e[6],e=e[10];b=b||this._order;"XYZ"===b?(this._y=Math.asin(d(g,-1,1)),.99999>Math.abs(g)?(this._x=Math.atan2(-l,e),this._z= -Math.atan2(-f,a)):(this._x=Math.atan2(n,k),this._z=0)):"YXZ"===b?(this._x=Math.asin(-d(l,-1,1)),.99999>Math.abs(l)?(this._y=Math.atan2(g,e),this._z=Math.atan2(h,k)):(this._y=Math.atan2(-q,a),this._z=0)):"ZXY"===b?(this._x=Math.asin(d(n,-1,1)),.99999>Math.abs(n)?(this._y=Math.atan2(-q,e),this._z=Math.atan2(-f,k)):(this._y=0,this._z=Math.atan2(h,a))):"ZYX"===b?(this._y=Math.asin(-d(q,-1,1)),.99999>Math.abs(q)?(this._x=Math.atan2(n,e),this._z=Math.atan2(h,a)):(this._x=0,this._z=Math.atan2(-f,k))):"YZX"=== -b?(this._z=Math.asin(d(h,-1,1)),.99999>Math.abs(h)?(this._x=Math.atan2(-l,k),this._y=Math.atan2(-q,a)):(this._x=0,this._y=Math.atan2(g,e))):"XZY"===b?(this._z=Math.asin(-d(f,-1,1)),.99999>Math.abs(f)?(this._x=Math.atan2(n,k),this._y=Math.atan2(g,a)):(this._x=Math.atan2(-l,e),this._y=0)):console.warn("THREE.Euler: .setFromRotationMatrix() given unsupported order: "+b);this._order=b;if(!1!==c)this.onChangeCallback();return this},setFromQuaternion:function(){var a=new K;return function(b,c,d){a.makeRotationFromQuaternion(b); -return this.setFromRotationMatrix(a,c,d)}}(),setFromVector3:function(a,b){return this.set(a.x,a.y,a.z,b||this._order)},reorder:function(){var a=new Z;return function(b){a.setFromEuler(this);return this.setFromQuaternion(a,b)}}(),equals:function(a){return a._x===this._x&&a._y===this._y&&a._z===this._z&&a._order===this._order},fromArray:function(a){this._x=a[0];this._y=a[1];this._z=a[2];void 0!==a[3]&&(this._order=a[3]);this.onChangeCallback();return this},toArray:function(a,b){void 0===a&&(a=[]);void 0=== -b&&(b=0);a[b]=this._x;a[b+1]=this._y;a[b+2]=this._z;a[b+3]=this._order;return a},toVector3:function(a){return a?a.set(this._x,this._y,this._z):new p(this._x,this._y,this._z)},onChange:function(a){this.onChangeCallback=a;return this},onChangeCallback:function(){}});Object.assign(Pd.prototype,{set:function(a){this.mask=1<g;g++)if(d[g]===d[(g+1)%3]){a.push(f);break}for(f=a.length-1;0<=f;f--)for(d=a[f],this.faces.splice(d,1),c=0,e=this.faceVertexUvs.length;ca?b.copy(this.origin):b.copy(this.direction).multiplyScalar(a).add(this.origin)},distanceToPoint:function(a){return Math.sqrt(this.distanceSqToPoint(a))},distanceSqToPoint:function(){var a=new p;return function(b){var c=a.subVectors(b,this.origin).dot(this.direction);if(0>c)return this.origin.distanceToSquared(b);a.copy(this.direction).multiplyScalar(c).add(this.origin);return a.distanceToSquared(b)}}(),distanceSqToSegment:function(){var a= -new p,b=new p,c=new p;return function(d,e,f,g){a.copy(d).add(e).multiplyScalar(.5);b.copy(e).sub(d).normalize();c.copy(this.origin).sub(a);var h=.5*d.distanceTo(e),k=-this.direction.dot(b),l=c.dot(this.direction),q=-c.dot(b),n=c.lengthSq(),m=Math.abs(1-k*k);if(0=-p?e<=p?(h=1/m,d*=h,e*=h,k=d*(d+k*e+2*l)+e*(k*d+e+2*q)+n):(e=h,d=Math.max(0,-(k*e+l)),k=-d*d+e*(e+2*q)+n):(e=-h,d=Math.max(0,-(k*e+l)),k=-d*d+e*(e+2*q)+n):e<=-p?(d=Math.max(0,-(-k*h+l)),e=0b)return null; -b=Math.sqrt(b-e);e=d-b;d+=b;return 0>e&&0>d?null:0>e?this.at(d,c):this.at(e,c)}}(),intersectsSphere:function(a){return this.distanceToPoint(a.center)<=a.radius},distanceToPlane:function(a){var b=a.normal.dot(this.direction);if(0===b)return 0===a.distanceToPoint(this.origin)?0:null;a=-(this.origin.dot(a.normal)+a.constant)/b;return 0<=a?a:null},intersectPlane:function(a,b){a=this.distanceToPlane(a);return null===a?null:this.at(a,b)},intersectsPlane:function(a){var b=a.distanceToPoint(this.origin); -return 0===b||0>a.normal.dot(this.direction)*b?!0:!1},intersectBox:function(a,b){var c=1/this.direction.x;var d=1/this.direction.y;var e=1/this.direction.z,f=this.origin;if(0<=c){var g=(a.min.x-f.x)*c;c*=a.max.x-f.x}else g=(a.max.x-f.x)*c,c*=a.min.x-f.x;if(0<=d){var h=(a.min.y-f.y)*d;d*=a.max.y-f.y}else h=(a.max.y-f.y)*d,d*=a.min.y-f.y;if(g>d||h>c)return null;if(h>g||g!==g)g=h;if(da||h>c)return null; -if(h>g||g!==g)g=h;if(ac?null:this.at(0<=g?g:c,b)},intersectsBox:function(){var a=new p;return function(b){return null!==this.intersectBox(b,a)}}(),intersectTriangle:function(){var a=new p,b=new p,c=new p,d=new p;return function(e,f,g,h,k){b.subVectors(f,e);c.subVectors(g,e);d.crossVectors(b,c);f=this.direction.dot(d);if(0f)h=-1,f=-f;else return null;a.subVectors(this.origin,e);e=h*this.direction.dot(c.crossVectors(a,c));if(0>e)return null; -g=h*this.direction.dot(b.cross(a));if(0>g||e+g>f)return null;e=-h*a.dot(d);return 0>e?null:this.at(e/f,k)}}(),applyMatrix4:function(a){this.origin.applyMatrix4(a);this.direction.transformDirection(a);return this},equals:function(a){return a.origin.equals(this.origin)&&a.direction.equals(this.direction)}});Object.assign(Mb.prototype,{set:function(a,b){this.start.copy(a);this.end.copy(b);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.start.copy(a.start); -this.end.copy(a.end);return this},getCenter:function(a){return(a||new p).addVectors(this.start,this.end).multiplyScalar(.5)},delta:function(a){return(a||new p).subVectors(this.end,this.start)},distanceSq:function(){return this.start.distanceToSquared(this.end)},distance:function(){return this.start.distanceTo(this.end)},at:function(a,b){b=b||new p;return this.delta(b).multiplyScalar(a).add(this.start)},closestPointToPointParameter:function(){var a=new p,b=new p;return function(c,d){a.subVectors(c, -this.start);b.subVectors(this.end,this.start);c=b.dot(b);c=b.dot(a)/c;d&&(c=R.clamp(c,0,1));return c}}(),closestPointToPoint:function(a,b,c){a=this.closestPointToPointParameter(a,b);c=c||new p;return this.delta(c).multiplyScalar(a).add(this.start)},applyMatrix4:function(a){this.start.applyMatrix4(a);this.end.applyMatrix4(a);return this},equals:function(a){return a.start.equals(this.start)&&a.end.equals(this.end)}});Object.assign(Qa,{normal:function(){var a=new p;return function(b,c,d,e){e=e||new p; -e.subVectors(d,c);a.subVectors(b,c);e.cross(a);b=e.lengthSq();return 0=b.x+b.y}}()});Object.assign(Qa.prototype,{set:function(a,b,c){this.a.copy(a);this.b.copy(b);this.c.copy(c);return this},setFromPointsAndIndices:function(a,b,c,d){this.a.copy(a[b]);this.b.copy(a[c]);this.c.copy(a[d]);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.a.copy(a.a);this.b.copy(a.b);this.c.copy(a.c);return this},area:function(){var a=new p,b=new p;return function(){a.subVectors(this.c, -this.b);b.subVectors(this.a,this.b);return.5*a.cross(b).length()}}(),midpoint:function(a){return(a||new p).addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},normal:function(a){return Qa.normal(this.a,this.b,this.c,a)},plane:function(a){return(a||new Aa).setFromCoplanarPoints(this.a,this.b,this.c)},barycoordFromPoint:function(a,b){return Qa.barycoordFromPoint(a,this.a,this.b,this.c,b)},containsPoint:function(a){return Qa.containsPoint(a,this.a,this.b,this.c)},closestPointToPoint:function(){var a= -new Aa,b=[new Mb,new Mb,new Mb],c=new p,d=new p;return function(e,f){f=f||new p;var g=Infinity;a.setFromCoplanarPoints(this.a,this.b,this.c);a.projectPoint(e,c);if(!0===this.containsPoint(c))f.copy(c);else for(b[0].set(this.a,this.b),b[1].set(this.b,this.c),b[2].set(this.c,this.a),e=0;ec.far?null:{distance:b,point:x.clone(),object:a}}function c(c,d,e,f,l,n,q,t){g.fromBufferAttribute(f,n);h.fromBufferAttribute(f,q);k.fromBufferAttribute(f,t);if(c=b(c,c.material,d,e,g,h,k,w))l&&(m.fromBufferAttribute(l, -n),r.fromBufferAttribute(l,q),u.fromBufferAttribute(l,t),c.uv=a(w,g,h,k,m,r,u)),c.face=new Pa(n,q,t,Qa.normal(g,h,k)),c.faceIndex=n;return c}var d=new K,e=new lb,f=new Da,g=new p,h=new p,k=new p,l=new p,q=new p,n=new p,m=new C,r=new C,u=new C,v=new p,w=new p,x=new p;return function(t,p){var v=this.geometry,x=this.material,z=this.matrixWorld;if(void 0!==x&&(null===v.boundingSphere&&v.computeBoundingSphere(),f.copy(v.boundingSphere),f.applyMatrix4(z),!1!==t.ray.intersectsSphere(f)&&(d.getInverse(z), -e.copy(t.ray).applyMatrix4(d),null===v.boundingBox||!1!==e.intersectsBox(v.boundingBox)))){var y;if(v.isBufferGeometry){var x=v.index,I=v.attributes.position,z=v.attributes.uv,C;if(null!==x){var A=0;for(C=x.count;Af||(f=d.ray.origin.distanceTo(a),fd.far||e.push({distance:f,point:a.clone(),face:null,object:this}))}}(),clone:function(){return(new this.constructor(this.material)).copy(this)}});Dc.prototype=Object.assign(Object.create(A.prototype),{constructor:Dc,copy:function(a){A.prototype.copy.call(this, -a,!1);a=a.levels;for(var b=0,c=a.length;b=d[e].distance)d[e-1].object.visible=!1,d[e].object.visible=!0;else break;for(;ef||(q.applyMatrix4(this.matrixWorld),m=d.ray.origin.distanceTo(q),md.far||e.push({distance:m,point:h.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}));else for(g=0,v=r.length/3-1;gf||(q.applyMatrix4(this.matrixWorld),m=d.ray.origin.distanceTo(q), -md.far||e.push({distance:m,point:h.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}else if(g.isGeometry)for(k=g.vertices,l=k.length,g=0;gf||(q.applyMatrix4(this.matrixWorld),m=d.ray.origin.distanceTo(q),md.far||e.push({distance:m,point:h.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}}}(),clone:function(){return(new this.constructor(this.geometry, -this.material)).copy(this)}});ca.prototype=Object.assign(Object.create(ma.prototype),{constructor:ca,isLineSegments:!0});rd.prototype=Object.assign(Object.create(ma.prototype),{constructor:rd,isLineLoop:!0});Ba.prototype=Object.create(Q.prototype);Ba.prototype.constructor=Ba;Ba.prototype.isPointsMaterial=!0;Ba.prototype.copy=function(a){Q.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.size=a.size;this.sizeAttenuation=a.sizeAttenuation;return this};Qb.prototype=Object.assign(Object.create(A.prototype), -{constructor:Qb,isPoints:!0,raycast:function(){var a=new K,b=new lb,c=new Da;return function(d,e){function f(a,c){var f=b.distanceSqToPoint(a);if(fd.far||e.push({distance:h,distanceToRay:Math.sqrt(f),point:a.clone(),index:c,face:null,object:g})}}var g=this,h=this.geometry,k=this.matrixWorld,l=d.params.Points.threshold;null===h.boundingSphere&&h.computeBoundingSphere();c.copy(h.boundingSphere);c.applyMatrix4(k); -c.radius+=l;if(!1!==d.ray.intersectsSphere(c)){a.getInverse(k);b.copy(d.ray).applyMatrix4(a);var l=l/((this.scale.x+this.scale.y+this.scale.z)/3),m=l*l,l=new p;if(h.isBufferGeometry){var n=h.index,h=h.attributes.position.array;if(null!==n)for(var t=n.array,n=0,r=t.length;nc)return null;var d=[],e=[],f=[],g;if(0=h--){console.warn("THREE.ShapeUtils: Unable to triangulate polygon! in triangulate()");break}var k= -g;c<=k&&(k=0);g=k+1;c<=g&&(g=0);var l=g+1;c<=l&&(l=0);a:{var m;var n=a[e[k]].x;var p=a[e[k]].y;var r=a[e[g]].x;var u=a[e[g]].y;var v=a[e[l]].x;var w=a[e[l]].y;if(0>=(r-n)*(w-p)-(u-p)*(v-n))var x=!1;else{var z=v-r;var y=w-u;var B=n-v;var C=p-w;var A=r-n;x=u-p;for(m=0;m=-Number.EPSILON&&D>=-Number.EPSILON&&N>=-Number.EPSILON){x= -!1;break a}}}x=!0}}if(x){d.push([a[e[k]],a[e[g]],a[e[l]]]);f.push([e[k],e[g],e[l]]);k=g;for(l=g+1;lNumber.EPSILON){if(0< -q){if(0>p||p>q)return[];k=l*m-k*n;if(0>k||k>q)return[]}else{if(0c?[]:k===c?f?[]:[g]:a<=c?[g,h]:[g,l]}function f(a,b,c,d){var e=b.x-a.x,f=b.y-a.y;b=c.x-a.x;c=c.y-a.y;var g=d.x-a.x;d=d.y-a.y;a=e*c-f*b;e=e*d-f*g;return Math.abs(a)>Number.EPSILON?(b=g*c-d*b,0d&&(d=c);var e=a+1;e>c&&(e=0);c=f(h[a],h[d],h[e],D[b]);if(!c)return!1;c=D.length-1;d=b-1;0>d&&(d=c);e=b+1;e>c&&(e=0);return(c=f(D[b],D[d],D[e],h[a]))?!0:!1}function d(a,b){var c;for(c=0;ct){console.log('THREE.ShapeUtils: Infinite Loop! Holes left:" + indepHoles.length + ", Probably Hole outside Shape!');break}for(m=p;ma;a++)m=b[a].x+":"+b[a].y,m=h[m],void 0!==m&&(b[a]=m);return k.concat()},isClockWise:function(a){return 0>Ha.area(a)}};$a.prototype=Object.create(N.prototype);$a.prototype.constructor=$a;Ga.prototype= -Object.create(D.prototype);Ga.prototype.constructor=Ga;Ga.prototype.getArrays=function(){var a=this.getAttribute("position"),a=a?Array.prototype.slice.call(a.array):[],b=this.getAttribute("uv"),b=b?Array.prototype.slice.call(b.array):[],c=this.index,c=c?Array.prototype.slice.call(c.array):[];return{position:a,uv:b,index:c}};Ga.prototype.addShapeList=function(a,b){var c=a.length;b.arrays=this.getArrays();for(var d=0;dNumber.EPSILON){var k=Math.sqrt(h),l=Math.sqrt(f*f+g*g),h=b.x-e/k;b=b.y+d/k;g=((c.x-g/l-h)*g-(c.y+f/l-b)*f)/(d*g-e*f);f=h+d*g-a.x;d=b+e*g-a.y;e=f*f+d*d;if(2>=e)return new C(f, -d);e=Math.sqrt(e/2)}else a=!1,d>Number.EPSILON?f>Number.EPSILON&&(a=!0):d<-Number.EPSILON?f<-Number.EPSILON&&(a=!0):Math.sign(e)===Math.sign(g)&&(a=!0),a?(f=-e,e=Math.sqrt(h)):(f=d,d=e,e=Math.sqrt(h/2));return new C(f/e,d/e)}function e(a,b){for(G=a.length;0<=--G;){var c=G;var d=G-1;0>d&&(d=a.length-1);var e,f=A+2*w;for(e=0;eMath.abs(g-k)?[new C(a,1-c),new C(h,1-d),new C(l,1-e),new C(n,1-b)]:[new C(g,1-c),new C(k,1-d),new C(m,1-e),new C(p,1-b)]}};Qc.prototype=Object.create(N.prototype); -Qc.prototype.constructor=Qc;$b.prototype=Object.create(Ga.prototype);$b.prototype.constructor=$b;Rc.prototype=Object.create(N.prototype);Rc.prototype.constructor=Rc;ob.prototype=Object.create(D.prototype);ob.prototype.constructor=ob;Sc.prototype=Object.create(N.prototype);Sc.prototype.constructor=Sc;ac.prototype=Object.create(D.prototype);ac.prototype.constructor=ac;Tc.prototype=Object.create(N.prototype);Tc.prototype.constructor=Tc;bc.prototype=Object.create(D.prototype);bc.prototype.constructor= -bc;cc.prototype=Object.create(N.prototype);cc.prototype.constructor=cc;dc.prototype=Object.create(D.prototype);dc.prototype.constructor=dc;ec.prototype=Object.create(D.prototype);ec.prototype.constructor=ec;pb.prototype=Object.create(N.prototype);pb.prototype.constructor=pb;Sa.prototype=Object.create(D.prototype);Sa.prototype.constructor=Sa;Uc.prototype=Object.create(pb.prototype);Uc.prototype.constructor=Uc;Vc.prototype=Object.create(Sa.prototype);Vc.prototype.constructor=Vc;Wc.prototype=Object.create(N.prototype); -Wc.prototype.constructor=Wc;fc.prototype=Object.create(D.prototype);fc.prototype.constructor=fc;var Ca=Object.freeze({WireframeGeometry:Sb,ParametricGeometry:Hc,ParametricBufferGeometry:Tb,TetrahedronGeometry:Jc,TetrahedronBufferGeometry:Ub,OctahedronGeometry:Kc,OctahedronBufferGeometry:nb,IcosahedronGeometry:Lc,IcosahedronBufferGeometry:Vb,DodecahedronGeometry:Mc,DodecahedronBufferGeometry:Wb,PolyhedronGeometry:Ic,PolyhedronBufferGeometry:qa,TubeGeometry:Nc,TubeBufferGeometry:Xb,TorusKnotGeometry:Oc, -TorusKnotBufferGeometry:Yb,TorusGeometry:Pc,TorusBufferGeometry:Zb,TextGeometry:Qc,TextBufferGeometry:$b,SphereGeometry:Rc,SphereBufferGeometry:ob,RingGeometry:Sc,RingBufferGeometry:ac,PlaneGeometry:Ac,PlaneBufferGeometry:kb,LatheGeometry:Tc,LatheBufferGeometry:bc,ShapeGeometry:cc,ShapeBufferGeometry:dc,ExtrudeGeometry:$a,ExtrudeBufferGeometry:Ga,EdgesGeometry:ec,ConeGeometry:Uc,ConeBufferGeometry:Vc,CylinderGeometry:pb,CylinderBufferGeometry:Sa,CircleGeometry:Wc,CircleBufferGeometry:fc,BoxGeometry:Lb, -BoxBufferGeometry:jb});gc.prototype=Object.create(Q.prototype);gc.prototype.constructor=gc;gc.prototype.isShadowMaterial=!0;hc.prototype=Object.create(oa.prototype);hc.prototype.constructor=hc;hc.prototype.isRawShaderMaterial=!0;Ma.prototype=Object.create(Q.prototype);Ma.prototype.constructor=Ma;Ma.prototype.isMeshStandardMaterial=!0;Ma.prototype.copy=function(a){Q.prototype.copy.call(this,a);this.defines={STANDARD:""};this.color.copy(a.color);this.roughness=a.roughness;this.metalness=a.metalness; -this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.roughnessMap=a.roughnessMap; -this.metalnessMap=a.metalnessMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.envMapIntensity=a.envMapIntensity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};qb.prototype=Object.create(Ma.prototype);qb.prototype.constructor=qb;qb.prototype.isMeshPhysicalMaterial= -!0;qb.prototype.copy=function(a){Ma.prototype.copy.call(this,a);this.defines={PHYSICAL:""};this.reflectivity=a.reflectivity;this.clearCoat=a.clearCoat;this.clearCoatRoughness=a.clearCoatRoughness;return this};Ia.prototype=Object.create(Q.prototype);Ia.prototype.constructor=Ia;Ia.prototype.isMeshPhongMaterial=!0;Ia.prototype.copy=function(a){Q.prototype.copy.call(this,a);this.color.copy(a.color);this.specular.copy(a.specular);this.shininess=a.shininess;this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity= -a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.specularMap=a.specularMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.combine= -a.combine;this.reflectivity=a.reflectivity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};rb.prototype=Object.create(Ia.prototype);rb.prototype.constructor=rb;rb.prototype.isMeshToonMaterial=!0;rb.prototype.copy=function(a){Ia.prototype.copy.call(this, -a);this.gradientMap=a.gradientMap;return this};sb.prototype=Object.create(Q.prototype);sb.prototype.constructor=sb;sb.prototype.isMeshNormalMaterial=!0;sb.prototype.copy=function(a){Q.prototype.copy.call(this,a);this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth; -this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};tb.prototype=Object.create(Q.prototype);tb.prototype.constructor=tb;tb.prototype.isMeshLambertMaterial=!0;tb.prototype.copy=function(a){Q.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=a.emissiveMap;this.emissiveIntensity= -a.emissiveIntensity;this.specularMap=a.specularMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.combine=a.combine;this.reflectivity=a.reflectivity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};ub.prototype=Object.create(O.prototype);ub.prototype.constructor= -ub;ub.prototype.isLineDashedMaterial=!0;ub.prototype.copy=function(a){O.prototype.copy.call(this,a);this.scale=a.scale;this.dashSize=a.dashSize;this.gapSize=a.gapSize;return this};var tg=Object.freeze({ShadowMaterial:gc,SpriteMaterial:Za,RawShaderMaterial:hc,ShaderMaterial:oa,PointsMaterial:Ba,MeshPhysicalMaterial:qb,MeshStandardMaterial:Ma,MeshPhongMaterial:Ia,MeshToonMaterial:rb,MeshNormalMaterial:sb,MeshLambertMaterial:tb,MeshDepthMaterial:Wa,MeshDistanceMaterial:Xa,MeshBasicMaterial:va,LineDashedMaterial:ub, -LineBasicMaterial:O,Material:Q}),jd={enabled:!1,files:{},add:function(a,b){!1!==this.enabled&&(this.files[a]=b)},get:function(a){if(!1!==this.enabled)return this.files[a]},remove:function(a){delete this.files[a]},clear:function(){this.files={}}},wa=new Yd,Ta={};Object.assign(Ja.prototype,{load:function(a,b,c,d){void 0===a&&(a="");void 0!==this.path&&(a=this.path+a);a=this.manager.resolveURL(a);var e=this,f=jd.get(a);if(void 0!==f)return e.manager.itemStart(a),setTimeout(function(){b&&b(f);e.manager.itemEnd(a)}, -0),f;if(void 0!==Ta[a])Ta[a].push({onLoad:b,onProgress:c,onError:d});else{var g=a.match(/^data:(.*?)(;base64)?,(.*)$/);if(g){c=g[1];var h=!!g[2],g=g[3],g=window.decodeURIComponent(g);h&&(g=window.atob(g));try{var k=(this.responseType||"").toLowerCase();switch(k){case "arraybuffer":case "blob":for(var l=new Uint8Array(g.length),h=0;h=e)break a;else{f=b[1];a=e)break b}d=c;c=0}}for(;c>>1,ab;)--f;++f;if(0!==e||f!==d)e>=f&&(f=Math.max(f,1),e=f-1),a=this.getValueSize(),this.times=T.arraySlice(c,e,f),this.values=T.arraySlice(this.values,e*a,f*a);return this},validate:function(){var a=!0,b=this.getValueSize();0!==b-Math.floor(b)&&(console.error("THREE.KeyframeTrackPrototype: Invalid value size in track.",this),a=!1);var c=this.times,b=this.values,d=c.length;0===d&&(console.error("THREE.KeyframeTrackPrototype: Track is empty.", -this),a=!1);for(var e=null,f=0;f!==d;f++){var g=c[f];if("number"===typeof g&&isNaN(g)){console.error("THREE.KeyframeTrackPrototype: Time is not a valid number.",this,f,g);a=!1;break}if(null!==e&&e>g){console.error("THREE.KeyframeTrackPrototype: Out of order keys.",this,f,g,e);a=!1;break}e=g}if(void 0!==b&&T.isTypedArray(b))for(f=0,c=b.length;f!==c;++f)if(d=b[f],isNaN(d)){console.error("THREE.KeyframeTrackPrototype: Value is not a valid number.",this,f,d);a=!1;break}return a},optimize:function(){for(var a, -b,c=this.times,d=this.values,e=this.getValueSize(),f=2302===this.getInterpolation(),g=1,h=c.length-1,k=1;kl.opacity&&(l.transparent=!0);d.setTextures(k);return d.parse(l)}}()});Object.assign(be.prototype, -{load:function(a,b,c,d){var e=this,f=this.texturePath&&"string"===typeof this.texturePath?this.texturePath:kc.prototype.extractUrlBase(a),g=new Ja(this.manager);g.setWithCredentials(this.withCredentials);g.load(a,function(c){c=JSON.parse(c);var d=c.metadata;if(void 0!==d&&(d=d.type,void 0!==d)){if("object"===d.toLowerCase()){console.error("THREE.JSONLoader: "+a+" should be loaded with THREE.ObjectLoader instead.");return}if("scene"===d.toLowerCase()){console.error("THREE.JSONLoader: "+a+" should be loaded with THREE.SceneLoader instead."); -return}}c=e.parse(c,f);b(c.geometry,c.materials)},c,d)},setTexturePath:function(a){this.texturePath=a},parse:function(){return function(a,b){void 0!==a.data&&(a=a.data);a.scale=void 0!==a.scale?1/a.scale:1;var c=new N,d=a,e,f,g,h=d.faces;var k=d.vertices;var l=d.normals,m=d.colors;var n=d.scale;var t=0;if(void 0!==d.uvs){for(e=0;ef;f++){var B=h[r++];var A=y[2*B];B=y[2*B+1];A=new C(A,B);2!==f&&c.faceVertexUvs[e][v].push(A);0!==f&&c.faceVertexUvs[e][v+1].push(A)}}w&&(w=3* -h[r++],u.normal.set(l[w++],l[w++],l[w]),z.normal.copy(u.normal));if(x)for(e=0;4>e;e++)w=3*h[r++],x=new p(l[w++],l[w++],l[w]),2!==e&&u.vertexNormals.push(x),0!==e&&z.vertexNormals.push(x);n&&(n=h[r++],n=m[n],u.color.setHex(n),z.color.setHex(n));if(k)for(e=0;4>e;e++)n=h[r++],n=m[n],2!==e&&u.vertexColors.push(new H(n)),0!==e&&z.vertexColors.push(new H(n));c.faces.push(u);c.faces.push(z)}else{u=new Pa;u.a=h[r++];u.b=h[r++];u.c=h[r++];v&&(v=h[r++],u.materialIndex=v);v=c.faces.length;if(e)for(e=0;ef;f++)B=h[r++],A=y[2*B],B=y[2*B+1],A=new C(A,B),c.faceVertexUvs[e][v].push(A);w&&(w=3*h[r++],u.normal.set(l[w++],l[w++],l[w]));if(x)for(e=0;3>e;e++)w=3*h[r++],x=new p(l[w++],l[w++],l[w]),u.vertexNormals.push(x);n&&(n=h[r++],u.color.setHex(m[n]));if(k)for(e=0;3>e;e++)n=h[r++],u.vertexColors.push(new H(m[n]));c.faces.push(u)}}d=a;r=void 0!==d.influencesPerVertex?d.influencesPerVertex:2;if(d.skinWeights)for(g=0,h=d.skinWeights.length;gg)e=a+1;else if(0b&&(b=0);1Number.EPSILON&&(g.normalize(),c=Math.acos(R.clamp(d[k- -1].dot(d[k]),-1,1)),e[k].applyMatrix4(h.makeRotationAxis(g,c))),f[k].crossVectors(d[k],e[k]);if(!0===b)for(c=Math.acos(R.clamp(e[0].dot(e[a]),-1,1)),c/=a,0=b)return b=c[a]-b,a=this.curves[a],c=a.getLength(),a.getPointAt(0===c?0:1-b/c);a++}return null},getLength:function(){var a=this.getCurveLengths();return a[a.length-1]},updateArcLengths:function(){this.needsUpdate= -!0;this.cacheLengths=null;this.getCurveLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;for(var a=[],b=0,c=0,d=this.curves.length;cd;)d+=c;for(;d>c;)d-=c;dc.length-2?c.length-1:a+1],c=c[a>c.length-3?c.length-1:a+2];b.set(Se(d, -e.x,f.x,g.x,c.x),Se(d,e.y,f.y,g.y,c.y));return b};ab.prototype.copy=function(a){S.prototype.copy.call(this,a);this.points=[];for(var b=0,c=a.points.length;bNumber.EPSILON){if(0>l&&(g=b[f],k=-k,h=b[e],l=-l),!(a.yh.y))if(a.y===g.y){if(a.x===g.x)return!0}else{e=l*(a.x-g.x)-k*(a.y-g.y);if(0===e)return!0;0>e||(d=!d)}}else if(a.y===g.y&&(h.x<= -a.x&&a.x<=g.x||g.x<=a.x&&a.x<=h.x))return!0}return d}var e=Ha.isClockWise,f=this.subPaths;if(0===f.length)return[];if(!0===b)return c(f);b=[];if(1===f.length){var g=f[0];var h=new Cb;h.curves=g.curves;b.push(h);return b}var k=!e(f[0].getPoints()),k=a?!k:k;h=[];var l=[],m=[],n=0;l[n]=void 0;m[n]=[];for(var p=0,r=f.length;pd&&this._mixBufferRegion(c,a,3*b,1-d,b);for(var d=b,f=b+b;d!==f;++d)if(c[d]!==c[d+b]){e.setValue(c,a);break}},saveOriginalState:function(){var a=this.buffer,b=this.valueSize,c=3*b;this.binding.getValue(a,c);for(var d=b;d!==c;++d)a[d]=a[c+d%b];this.cumulativeWeight=0},restoreOriginalState:function(){this.binding.setValue(this.buffer,3*this.valueSize)},_select:function(a,b,c,d,e){if(.5<=d)for(d= -0;d!==e;++d)a[b+d]=a[c+d]},_slerp:function(a,b,c,d){Z.slerpFlat(a,b,a,b,a,c,d)},_lerp:function(a,b,c,d,e){for(var f=1-d,g=0;g!==e;++g){var h=b+g;a[h]=a[h]*f+a[c+g]*d}}});Object.assign(Ve.prototype,{getValue:function(a,b){this.bind();var c=this._bindings[this._targetGroup.nCachedObjects_];void 0!==c&&c.getValue(a,b)},setValue:function(a,b){for(var c=this._bindings,d=this._targetGroup.nCachedObjects_,e=c.length;d!==e;++d)c[d].setValue(a,b)},bind:function(){for(var a=this._bindings,b=this._targetGroup.nCachedObjects_, -c=a.length;b!==c;++b)a[b].bind()},unbind:function(){for(var a=this._bindings,b=this._targetGroup.nCachedObjects_,c=a.length;b!==c;++b)a[b].unbind()}});Object.assign(na,{Composite:Ve,create:function(a,b,c){return a&&a.isAnimationObjectGroup?new na.Composite(a,b,c):new na(a,b,c)},sanitizeNodeName:function(a){return a.replace(/\s/g,"_").replace(/[^\w-]/g,"")},parseTrackName:function(){var a=new RegExp("^"+/((?:[\w-]+[\/:])*)/.source+/([\w-\.]+)?/.source+/(?:\.([\w-]+)(?:\[(.+)\])?)?/.source+/\.([\w-]+)(?:\[(.+)\])?/.source+ -"$"),b=["material","materials","bones"];return function(c){var d=a.exec(c);if(!d)throw Error("PropertyBinding: Cannot parse trackName: "+c);var d={nodeName:d[2],objectName:d[3],objectIndex:d[4],propertyName:d[5],propertyIndex:d[6]},e=d.nodeName&&d.nodeName.lastIndexOf(".");if(void 0!==e&&-1!==e){var f=d.nodeName.substring(e+1);-1!==b.indexOf(f)&&(d.nodeName=d.nodeName.substring(0,e),d.objectName=f)}if(null===d.propertyName||0===d.propertyName.length)throw Error("PropertyBinding: can not parse propertyName from trackName: "+ -c);return d}}(),findNode:function(a,b){if(!b||""===b||"root"===b||"."===b||-1===b||b===a.name||b===a.uuid)return a;if(a.skeleton){var c=function(a){for(var c=0;c=b){var m=b++,n=a[m];c[n.uuid]=l;a[l]=n;c[k]=m;a[m]=h;h=0;for(k=e;h!==k;++h){var n=d[h],p= -n[l];n[l]=n[m];n[m]=p}}}this.nCachedObjects_=b},uncache:function(){for(var a,b,c=this._objects,d=c.length,e=this.nCachedObjects_,f=this._indicesByUUID,g=this._bindings,h=g.length,k=0,l=arguments.length;k!==l;++k){b=arguments[k].uuid;var m=f[b];if(void 0!==m)if(delete f[b],mb||0===c)return;this._startTime=null;b*=c}b*=this._updateTimeScale(a);c=this._updateTime(b);a=this._updateWeight(a);if(0c.parameterPositions[1]&&(this.stopFading(),0===d&&(this.enabled=!1))}}return this._effectiveWeight=b},_updateTimeScale:function(a){var b=0;if(!this.paused){var b=this.timeScale,c=this._timeScaleInterpolant;if(null!==c){var d=c.evaluate(a)[0], -b=b*d;a>c.parameterPositions[1]&&(this.stopWarping(),0===b?this.paused=!0:this.timeScale=b)}}return this._effectiveTimeScale=b},_updateTime:function(a){var b=this.time+a;if(0===a)return b;var c=this._clip.duration,d=this.loop,e=this._loopCount;if(2200===d)a:{if(-1===e&&(this._loopCount=0,this._setEndings(!0,!0,!1)),b>=c)b=c;else if(0>b)b=0;else break a;this.clampWhenFinished?this.paused=!0:this.enabled=!1;this._mixer.dispatchEvent({type:"finished",action:this,direction:0>a?-1:1})}else{d=2202===d; --1===e&&(0<=a?(e=0,this._setEndings(!0,0===this.repetitions,d)):this._setEndings(0===this.repetitions,!0,d));if(b>=c||0>b){var f=Math.floor(b/c),b=b-c*f,e=e+Math.abs(f),g=this.repetitions-e;0>g?(this.clampWhenFinished?this.paused=!0:this.enabled=!1,b=0a,this._setEndings(a,!a,d)):this._setEndings(!1,!1,d),this._loopCount=e,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:f}))}if(d&&1===(e&1))return this.time= -b,c-b}return this.time=b},_setEndings:function(a,b,c){var d=this._interpolantSettings;c?(d.endingStart=2401,d.endingEnd=2401):(d.endingStart=a?this.zeroSlopeAtStart?2401:2400:2402,d.endingEnd=b?this.zeroSlopeAtEnd?2401:2400:2402)},_scheduleFading:function(a,b,c){var d=this._mixer,e=d.time,f=this._weightInterpolant;null===f&&(this._weightInterpolant=f=d._lendControlInterpolant());d=f.parameterPositions;f=f.sampleValues;d[0]=e;f[0]=b;d[1]=e+a;f[1]=c;return this}});Object.assign(Ye.prototype,ja.prototype, -{_bindAction:function(a,b){var c=a._localRoot||this._root,d=a._clip.tracks,e=d.length,f=a._propertyBindings;a=a._interpolants;var g=c.uuid,h=this._bindingsByRootAndName,k=h[g];void 0===k&&(k={},h[g]=k);for(h=0;h!==e;++h){var l=d[h],m=l.name,n=k[m];if(void 0===n){n=f[h];if(void 0!==n){null===n._cacheIndex&&(++n.referenceCount,this._addInactiveBinding(n,g,m));continue}n=new je(na.create(c,m,b&&b._propertyBindings[h].binding.parsedPath),l.ValueTypeName,l.getValueSize());++n.referenceCount;this._addInactiveBinding(n, -g,m)}f[h]=n;a[h].resultBuffer=n.buffer}},_activateAction:function(a){if(!this._isActiveAction(a)){if(null===a._cacheIndex){var b=(a._localRoot||this._root).uuid,c=a._clip.uuid,d=this._actionsByClip[c];this._bindAction(a,d&&d.knownActions[0]);this._addInactiveAction(a,c,b)}b=a._propertyBindings;c=0;for(d=b.length;c!==d;++c){var e=b[c];0===e.useCount++&&(this._lendBinding(e),e.saveOriginalState())}this._lendAction(a)}},_deactivateAction:function(a){if(this._isActiveAction(a)){for(var b=a._propertyBindings, -c=0,d=b.length;c!==d;++c){var e=b[c];0===--e.useCount&&(e.restoreOriginalState(),this._takeBackBinding(e))}this._takeBackAction(a)}},_initMemoryManager:function(){this._actions=[];this._nActiveActions=0;this._actionsByClip={};this._bindings=[];this._nActiveBindings=0;this._bindingsByRootAndName={};this._controlInterpolants=[];this._nActiveControlInterpolants=0;var a=this;this.stats={actions:{get total(){return a._actions.length},get inUse(){return a._nActiveActions}},bindings:{get total(){return a._bindings.length}, -get inUse(){return a._nActiveBindings}},controlInterpolants:{get total(){return a._controlInterpolants.length},get inUse(){return a._nActiveControlInterpolants}}}},_isActiveAction:function(a){a=a._cacheIndex;return null!==a&&aMath.abs(b)&&(b=1E-8);this.scale.set(.5*this.size,.5*this.size,b);this.lookAt(this.plane.normal);A.prototype.updateMatrixWorld.call(this,a)};var Ld,pe;Eb.prototype=Object.create(A.prototype);Eb.prototype.constructor=Eb;Eb.prototype.setDirection=function(){var a=new p,b;return function(c){.99999c.y?this.quaternion.set(1, -0,0,0):(a.set(c.z,0,-c.x).normalize(),b=Math.acos(c.y),this.quaternion.setFromAxisAngle(a,b))}}();Eb.prototype.setLength=function(a,b,c){void 0===b&&(b=.2*a);void 0===c&&(c=.2*b);this.line.scale.set(1,Math.max(0,a-b),1);this.line.updateMatrix();this.cone.scale.set(c,b,c);this.cone.position.y=a;this.cone.updateMatrix()};Eb.prototype.setColor=function(a){this.line.material.color.copy(a);this.cone.material.color.copy(a)};hd.prototype=Object.create(ca.prototype);hd.prototype.constructor=hd;var Nd=new p, -te=new qe,ue=new qe,ve=new qe;ya.prototype=Object.create(S.prototype);ya.prototype.constructor=ya;ya.prototype.isCatmullRomCurve3=!0;ya.prototype.getPoint=function(a,b){b=b||new p;var c=this.points,d=c.length;a*=d-(this.closed?0:1);var e=Math.floor(a);a-=e;this.closed?e+=0e&&(e=1);1E-4>d&&(d=e);1E-4>k&&(k=e);te.initNonuniformCatmullRom(f.x,g.x,h.x,c.x,d,e,k);ue.initNonuniformCatmullRom(f.y,g.y,h.y,c.y,d,e,k);ve.initNonuniformCatmullRom(f.z,g.z,h.z,c.z,d,e,k)}else"catmullrom"===this.curveType&&(te.initCatmullRom(f.x,g.x,h.x, -c.x,this.tension),ue.initCatmullRom(f.y,g.y,h.y,c.y,this.tension),ve.initCatmullRom(f.z,g.z,h.z,c.z,this.tension));b.set(te.calc(a),ue.calc(a),ve.calc(a));return b};ya.prototype.copy=function(a){S.prototype.copy.call(this,a);this.points=[];for(var b=0,c=a.points.length;b 0 ){ - // compute the text for specifically this line - var maxText = computeMaxTextLength(text) - // update the remaining text - text = text.substr(maxText.length) - - - // compute x based on params.align - var textSize = context.measureText(maxText); - if( params.align === 'left' ){ - var x = params.margin*canvas.width - }else if( params.align === 'right' ){ - var x = (1-params.margin)*canvas.width - textSize.width - }else if( params.align === 'center' ){ - var x = (canvas.width - textSize.width) / 2; - }else console.assert( false ) - - // actually draw the text at the proper position - this.context.fillText(maxText, x, y); - - // goto the next line - y += params.lineHeight*canvas.height - } - context.restore() - - // make the texture as .needsUpdate - this.texture.needsUpdate = true; - // for chained API - return this; - - function computeMaxTextLength(text){ - var maxText = '' - var maxWidth = (1-params.margin*2)*canvas.width - while( maxText.length !== text.length ){ - var textSize = context.measureText(maxText); - if( textSize.width > maxWidth ) break; - maxText += text.substr(maxText.length, 1) - } - return maxText - } -} - -/** - * execute the drawImage on the internal context - * the arguments are the same the official context2d.drawImage - */ -THREEx.DynamicTexture.prototype.drawImage = function(/* same params as context2d.drawImage */){ - // call the drawImage - this.context.drawImage.apply(this.context, arguments) - // make the texture as .needsUpdate - this.texture.needsUpdate = true; - // for chained API - return this; -} diff --git a/frontend/src/landing.html b/frontend/src/landing.html index dadbd3d..6fb095f 100644 --- a/frontend/src/landing.html +++ b/frontend/src/landing.html @@ -10,17 +10,18 @@ - - + + - - - + + + - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/frontend/taxonomy/BPHorizontal.html b/frontend/taxonomy/BPHorizontal.html deleted file mode 100644 index bad4dcd..0000000 --- a/frontend/taxonomy/BPHorizontal.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -
-BP Horizontal - - - - -
- - - - \ No newline at end of file diff --git a/frontend/taxonomy/BPVertical.html b/frontend/taxonomy/BPVertical.html deleted file mode 100644 index 74af18c..0000000 --- a/frontend/taxonomy/BPVertical.html +++ /dev/null @@ -1,88 +0,0 @@ - - - -
-BP Vertical - - - - -
- - - - \ No newline at end of file diff --git a/frontend/taxonomy/Benchmark.html b/frontend/taxonomy/Benchmark.html deleted file mode 100644 index f12603e..0000000 --- a/frontend/taxonomy/Benchmark.html +++ /dev/null @@ -1,46 +0,0 @@ - - -Colored Concept Correlations -
- - - - - -
- - - - - - - \ No newline at end of file diff --git a/frontend/taxonomy/chordMap.html b/frontend/taxonomy/chordMap.html deleted file mode 100644 index b5ca2fc..0000000 --- a/frontend/taxonomy/chordMap.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - -
- Chord Diagram - - - -
- - \ No newline at end of file diff --git a/frontend/taxonomy/correlationMap/attributeCoverage.html b/frontend/taxonomy/correlationMap/attributeCoverage.html deleted file mode 100644 index 5b1632e..0000000 --- a/frontend/taxonomy/correlationMap/attributeCoverage.html +++ /dev/null @@ -1,238 +0,0 @@ - - - - - - Correlation Matrix - - - - - - -
-
- - - \ No newline at end of file diff --git a/frontend/taxonomy/correlationMap/index.html b/frontend/taxonomy/correlationMap/index.html deleted file mode 100644 index 7685c41..0000000 --- a/frontend/taxonomy/correlationMap/index.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - - - Correlation Matrix - - - - - - -
-
- - - \ No newline at end of file diff --git a/frontend/taxonomy/correlationMap/interactive/ShortestPathCalculator.js b/frontend/taxonomy/correlationMap/interactive/ShortestPathCalculator.js deleted file mode 100644 index 2382aff..0000000 --- a/frontend/taxonomy/correlationMap/interactive/ShortestPathCalculator.js +++ /dev/null @@ -1,315 +0,0 @@ -/* - * - * Dijkstra Short Path Calculator and Graph Plotter - * Uses D3 JS (V3) - * - */ - -var ShortestPathCalculator = function(nodes, paths) { - - this.nodes = nodes; // nodes => [ { index: 0, value: 'a', r: 20 }, ... ] - this.paths = paths; // paths => [ { source: 0, target: 1, distance: 150 }, ... ] - this.distances = []; // [ [ x, 100, 150 ], [ 100, x, 10] ] - this.graph = {}; - - /*console.log("sp paths"); - console.log(this.paths); - console.log("sp nodes"); - console.log(this.nodes);*/ - - var maxNodes = 1000; //updated from 100 - var minNodes = 3; - - if(!d3) throw new ShortestPathCalculator.SpcError(10, 'D3 library not found'); - - if(!nodes.length || nodes.length > maxNodes || nodes.length < minNodes) - throw new ShortestPathCalculator.SpcError(11, 'Nodes format invalid => ' + JSON.stringify(nodes) ); - -} - -ShortestPathCalculator.isInteger = function(i) { - return /^\d+$/.test(i); -} - -ShortestPathCalculator.SpcError = function(code, message) { - console.log(message); - //alert(message); - return { code: code, message: message }; -} - -ShortestPathCalculator.prototype.findRoute = function(source, target) { - - if(!ShortestPathCalculator.isInteger(source) || !ShortestPathCalculator.isInteger(target)) - throw new ShortestPathCalculator.SpcError(20, "Source and target must be ints"); - - if(source > this.nodes.length - 1|| target > this.nodes.length - 1) - throw new ShortestPathCalculator.SpcError(21, "Source or target put of range"); - - this.makeDistanceArrayFromNodes(); - - this.populateDistances(); - - this.result = this.dijkstra(source, target); - - return this.result; - -} - -ShortestPathCalculator.prototype.makeDistanceArrayFromNodes = function() { - - this.distances = []; - - for(var i=0; i 0; --i) force.tick(); - force.stop(); - - this.graph.svg.selectAll("line") - .data(this.paths) - .enter() - .append("line") - .attr("class", function(d) { - if(that.result.path !== null) { - for (var i = 0; i < that.result.path.length; i++) { - if ((that.result.path[i].source === d.source.index && that.result.path[i].target === d.target.index) - || (that.result.path[i].source === d.target.index && that.result.path[i].target === d.source.index)) - return 'link bold'; - } - } - return 'link'; - }) - .attr("x1", function(d) { return d.source.x; }) - .attr("y1", function(d) { return d.source.y; }) - .attr("x2", function(d) { return d.target.x; }) - .attr("y2", function(d) { return d.target.y; }); - - this.graph.svg.append("svg:g") - .selectAll("circle") - .data(this.nodes) - .enter() - .append("svg:circle") - .attr("class", "node") - .attr("cx", function(d) { return d.x; }) - .attr("cy", function(d) { return d.y; }) - .attr("r", function(d) { return 15; }); - - this.graph.svg.append("svg:g") - .selectAll("text") - .data(this.nodes) - .enter() - .append("svg:text") - .attr("class", "label") - .attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; }) - .attr("text-anchor", "middle") - .attr("y", ".3em") - .text(function(d) { return d.value; }); - -} - -ShortestPathCalculator.prototype.formatResult = function() { - - // result => {mesg:"OK", path:[0, 1, 4], distance:250} - - var res = ""; - - res += "

Result : " + this.result.mesg + "

"; - - if(this.result.path === null) - return "

No path found from " + this.result.source + " to " + this.result.target + "

"; - - if(this.result.path.length === 0) - return "

Path is from " + SpUtils.nodeNames[this.result.source] + " to " - + SpUtils.nodeNames[this.result.target] + ". Expect a journey time of approximately zero.

" - - res += "

Path : "; - - for(var i=0; i ' + targetNode.value; - } - res += "

"; - res += "

Distance : " + this.result.distance + "

"; - - return res; - -} - -/* - * - * Calculate shortest path between two nodes in a graph - * - * @param {Integer} start index of node to start from - * @param {Integer} end index of node to end at - * - */ - -ShortestPathCalculator.prototype.dijkstra = function(start, end) { - - var nodeCount = this.distances.length, - infinity = 99999, // larger than largest distance in distances array - shortestPath = new Array(nodeCount), - nodeChecked = new Array(nodeCount), - pred = new Array(nodeCount); - - // initialise data placeholders - - for(var i=0; i=0) { - - v = pred[v]; - - //console.log('v'); - //console.log(v); - - if (v!==null && v>=0) { - step.source = v; - newPath.unshift(step); - step = {target: v}; - } - - } - - totalDistance = shortestPath[end]; - - return {mesg:'OK', path: newPath, source: start, target: end, distance:totalDistance}; - } - else { - return {mesg:'No path found', path: null, source: start, target: end, distance: 0 }; - } - - function distanceBetween(fromNode, toNode, distances) { - - dist = distances[fromNode][toNode]; - - if(dist==='x') dist = infinity; - - return dist; - } - -} \ No newline at end of file diff --git a/frontend/taxonomy/correlationMap/interactive/attributeCoverage.html b/frontend/taxonomy/correlationMap/interactive/attributeCoverage.html deleted file mode 100644 index 6d3ebfa..0000000 --- a/frontend/taxonomy/correlationMap/interactive/attributeCoverage.html +++ /dev/null @@ -1,243 +0,0 @@ - - - -Concept Coverage -
- - - - - - - - - - - - -
- - - - -
-
- - - - -
- -
- -
- -
- - -
- -
-
- - - -
-
- - - - - - \ No newline at end of file diff --git a/frontend/taxonomy/correlationMap/interactive/conceptCorrelations.html b/frontend/taxonomy/correlationMap/interactive/conceptCorrelations.html deleted file mode 100644 index 238085e..0000000 --- a/frontend/taxonomy/correlationMap/interactive/conceptCorrelations.html +++ /dev/null @@ -1,471 +0,0 @@ - - - -Colored Concept Correlations -
- - - - - - - - - - - - -
- - - - -
-
- - -
- -
- -
- -
- - -
- -
-
- - - -
-
- - - - - - \ No newline at end of file diff --git a/frontend/taxonomy/correlationMap/interactive/conceptCorrelations_three_dimensional.html b/frontend/taxonomy/correlationMap/interactive/conceptCorrelations_three_dimensional.html index 6373fdd..dd4d6a5 100644 --- a/frontend/taxonomy/correlationMap/interactive/conceptCorrelations_three_dimensional.html +++ b/frontend/taxonomy/correlationMap/interactive/conceptCorrelations_three_dimensional.html @@ -78,6 +78,10 @@
diff --git a/frontend/taxonomy/correlationMap/interactive/conceptCorrelations_three_dimensional2.html b/frontend/taxonomy/correlationMap/interactive/conceptCorrelations_three_dimensional2.html deleted file mode 100644 index f47512d..0000000 --- a/frontend/taxonomy/correlationMap/interactive/conceptCorrelations_three_dimensional2.html +++ /dev/null @@ -1,855 +0,0 @@ - - -Colored Concept Correlations -
- - - - - - - - - - - - - - - - - - - -
- - -
- - - -
-
- - - - - - -
- -
- -
- -
- - - - -
- -
-
- - - -
-
- - - -
- -
- - - - \ No newline at end of file diff --git a/frontend/taxonomy/correlationMap/interactive/conceptCorrelations_two_dimensional.html b/frontend/taxonomy/correlationMap/interactive/conceptCorrelations_two_dimensional.html index 6fd3515..f97b7e6 100644 --- a/frontend/taxonomy/correlationMap/interactive/conceptCorrelations_two_dimensional.html +++ b/frontend/taxonomy/correlationMap/interactive/conceptCorrelations_two_dimensional.html @@ -42,7 +42,7 @@ - + @@ -52,6 +52,8 @@ + + @@ -69,6 +71,10 @@ + - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - -
- -
- - - - - -
- - - - \ No newline at end of file diff --git a/frontend/taxonomy/correlationMap/interactive/conceptCorrelations_two_dimensional_scalingSize.html b/frontend/taxonomy/correlationMap/interactive/conceptCorrelations_two_dimensional_scalingSize.html deleted file mode 100644 index 372c11c..0000000 --- a/frontend/taxonomy/correlationMap/interactive/conceptCorrelations_two_dimensional_scalingSize.html +++ /dev/null @@ -1,1060 +0,0 @@ - - - -Colored Concept Correlations -
- - - - - - - - - - - - - - - - - - - -
- - -
- - - -
-
- - - - -
- -
- -
- -
- - - - -
- -
-
- - - -
-
- - - - -
- - - - \ No newline at end of file diff --git a/frontend/taxonomy/correlationMap/main.js b/frontend/taxonomy/correlationMap/main.js deleted file mode 100644 index 1c95006..0000000 --- a/frontend/taxonomy/correlationMap/main.js +++ /dev/null @@ -1,171 +0,0 @@ -function Matrix(options) { - var margin = {top: 50, right: 50, bottom: 100, left: 100}, - width = 350, - height = 350, - data = options.data, - container = options.container, - labelsData = options.labels, - startColor = options.start_color, - endColor = options.end_color; - - var widthLegend = 100; - - if(!data){ - throw new Error('Please pass data'); - } - - if(!Array.isArray(data) || !data.length || !Array.isArray(data[0])){ - throw new Error('It should be a 2-D array'); - } - - var maxValue = d3.max(data, function(layer) { return d3.max(layer, function(d) { return d; }); }); - var minValue = d3.min(data, function(layer) { return d3.min(layer, function(d) { return d; }); }); - - var numrows = data.length; - var numcols = data[0].length; - - var svg = d3.select(container).append("svg") - .attr("width", width + margin.left + margin.right) - .attr("height", height + margin.top + margin.bottom) - .append("g") - .attr("transform", "translate(" + margin.left + "," + margin.top + ")"); - - var background = svg.append("rect") - .style("stroke", "black") - .style("stroke-width", "2px") - .attr("width", width) - .attr("height", height); - - var x = d3.scale.ordinal() - .domain(d3.range(numcols)) - .rangeBands([0, width]); - - var y = d3.scale.ordinal() - .domain(d3.range(numrows)) - .rangeBands([0, height]); - - var colorMap = d3.scale.linear() - .domain([minValue,maxValue]) - .range([startColor, endColor]); - - var row = svg.selectAll(".row") - .data(data) - .enter().append("g") - .attr("class", "row") - .attr("transform", function(d, i) { return "translate(0," + y(i) + ")"; }); - - var cell = row.selectAll(".cell") - .data(function(d) { return d; }) - .enter().append("g") - .attr("class", "cell") - .attr("transform", function(d, i) { return "translate(" + x(i) + ", 0)"; }); - - cell.append('rect') - .attr("width", x.rangeBand()) - .attr("height", y.rangeBand()) - .style("stroke-width", 0); - - cell.append("text") - .attr("dy", ".32em") - .attr("x", x.rangeBand() / 2) - .attr("y", y.rangeBand() / 2) - .attr("text-anchor", "middle") - .style("fill", function(d, i) { return d >= maxValue/2 ? 'white' : 'black'; }) - .text(function(d, i) { return d; }); - - row.selectAll(".cell") - .data(function(d, i) { return data[i]; }) - .style("fill", colorMap); - - var labels = svg.append('g') - .attr('class', "labels"); - - var columnLabels = labels.selectAll(".column-label") - .data(labelsData) - .enter().append("g") - .attr("class", "column-label") - .attr("transform", function(d, i) { return "translate(" + x(i) + "," + height + ")"; }); - - columnLabels.append("line") - .style("stroke", "black") - .style("stroke-width", "1px") - .attr("x1", x.rangeBand() / 2) - .attr("x2", x.rangeBand() / 2) - .attr("y1", 0) - .attr("y2", 5); - - columnLabels.append("text") - .attr("x", 0) - .attr("y", y.rangeBand() / 2) - .attr("dy", ".82em") - .attr("text-anchor", "end") - .attr("transform", "rotate(-60)") - .text(function(d, i) { return d; }); - - var rowLabels = labels.selectAll(".row-label") - .data(labelsData) - .enter().append("g") - .attr("class", "row-label") - .attr("transform", function(d, i) { return "translate(" + 0 + "," + y(i) + ")"; }); - - rowLabels.append("line") - .style("stroke", "black") - .style("stroke-width", "1px") - .attr("x1", 0) - .attr("x2", -5) - .attr("y1", y.rangeBand() / 2) - .attr("y2", y.rangeBand() / 2); - - rowLabels.append("text") - .attr("x", -8) - .attr("y", y.rangeBand() / 2) - .attr("dy", ".32em") - .attr("text-anchor", "end") - .text(function(d, i) { return d; }); - - var key = d3.select("#legend") - .append("svg") - .attr("width", widthLegend) - .attr("height", height + margin.top + margin.bottom); - - var legend = key - .append("defs") - .append("svg:linearGradient") - .attr("id", "gradient") - .attr("x1", "100%") - .attr("y1", "0%") - .attr("x2", "100%") - .attr("y2", "100%") - .attr("spreadMethod", "pad"); - - legend - .append("stop") - .attr("offset", "0%") - .attr("stop-color", endColor) - .attr("stop-opacity", 1); - - legend - .append("stop") - .attr("offset", "100%") - .attr("stop-color", startColor) - .attr("stop-opacity", 1); - - key.append("rect") - .attr("width", widthLegend/2-10) - .attr("height", height) - .style("fill", "url(#gradient)") - .attr("transform", "translate(0," + margin.top + ")"); - - var y = d3.scale.linear() - .range([height, 0]) - .domain([minValue, maxValue]); - - var yAxis = d3.svg.axis() - .scale(y) - .orient("right"); - - key.append("g") - .attr("class", "y axis") - .attr("transform", "translate(41," + margin.top + ")") - .call(yAxis) -} \ No newline at end of file diff --git a/frontend/taxonomy/cytoscape/cytoscape.js b/frontend/taxonomy/cytoscape/cytoscape.js deleted file mode 100644 index b1b10e4..0000000 --- a/frontend/taxonomy/cytoscape/cytoscape.js +++ /dev/null @@ -1,30281 +0,0 @@ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["cytoscape"] = factory(); - else - root["cytoscape"] = factory(); -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // identity function for calling harmony imports with the correct context -/******/ __webpack_require__.i = function(value) { return value; }; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 117); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -/*global HTMLElement DocumentTouch */ - -var window = __webpack_require__(4); -var navigator = window ? window.navigator : null; -var document = window ? window.document : null; - -var typeofstr = _typeof(''); -var typeofobj = _typeof({}); -var typeoffn = _typeof(function () {}); -var typeofhtmlele = typeof HTMLElement === 'undefined' ? 'undefined' : _typeof(HTMLElement); - -var instanceStr = function instanceStr(obj) { - return obj && obj.instanceString && is.fn(obj.instanceString) ? obj.instanceString() : null; -}; - -var is = { - defined: function defined(obj) { - return obj != null; // not undefined or null - }, - - string: function string(obj) { - return obj != null && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) == typeofstr; - }, - - fn: function fn(obj) { - return obj != null && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === typeoffn; - }, - - array: function array(obj) { - return Array.isArray ? Array.isArray(obj) : obj != null && obj instanceof Array; - }, - - plainObject: function plainObject(obj) { - return obj != null && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === typeofobj && !is.array(obj) && obj.constructor === Object; - }, - - object: function object(obj) { - return obj != null && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === typeofobj; - }, - - number: function number(obj) { - return obj != null && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === _typeof(1) && !isNaN(obj); - }, - - integer: function integer(obj) { - return is.number(obj) && Math.floor(obj) === obj; - }, - - bool: function bool(obj) { - return obj != null && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === _typeof(true); - }, - - htmlElement: function htmlElement(obj) { - if ('undefined' === typeofhtmlele) { - return undefined; - } else { - return null != obj && obj instanceof HTMLElement; - } - }, - - elementOrCollection: function elementOrCollection(obj) { - return is.element(obj) || is.collection(obj); - }, - - element: function element(obj) { - return instanceStr(obj) === 'collection' && obj._private.single; - }, - - collection: function collection(obj) { - return instanceStr(obj) === 'collection' && !obj._private.single; - }, - - core: function core(obj) { - return instanceStr(obj) === 'core'; - }, - - style: function style(obj) { - return instanceStr(obj) === 'style'; - }, - - stylesheet: function stylesheet(obj) { - return instanceStr(obj) === 'stylesheet'; - }, - - event: function event(obj) { - return instanceStr(obj) === 'event'; - }, - - thread: function thread(obj) { - return instanceStr(obj) === 'thread'; - }, - - fabric: function fabric(obj) { - return instanceStr(obj) === 'fabric'; - }, - - emptyString: function emptyString(obj) { - if (obj === undefined || obj === null) { - // null is empty - return true; - } else if (obj === '' || obj.match(/^\s+$/)) { - return true; // empty string is empty - } - - return false; // otherwise, we don't know what we've got - }, - - nonemptyString: function nonemptyString(obj) { - if (obj && is.string(obj) && obj !== '' && !obj.match(/^\s+$/)) { - return true; - } - - return false; - }, - - domElement: function domElement(obj) { - if (typeof HTMLElement === 'undefined') { - return false; // we're not in a browser so it doesn't matter - } else { - return obj instanceof HTMLElement; - } - }, - - boundingBox: function boundingBox(obj) { - return is.plainObject(obj) && is.number(obj.x1) && is.number(obj.x2) && is.number(obj.y1) && is.number(obj.y2); - }, - - promise: function promise(obj) { - return is.object(obj) && is.fn(obj.then); - }, - - touch: function touch() { - return window && ('ontouchstart' in window || window.DocumentTouch && document instanceof DocumentTouch); - }, - - gecko: function gecko() { - return window && (typeof InstallTrigger !== 'undefined' || 'MozAppearance' in document.documentElement.style); - }, - - webkit: function webkit() { - return window && (typeof webkitURL !== 'undefined' || 'WebkitAppearance' in document.documentElement.style); - }, - - chromium: function chromium() { - return window && typeof chrome !== 'undefined'; - }, - - khtml: function khtml() { - return navigator && navigator.vendor.match(/kde/i); // probably a better way to detect this... - }, - - khtmlEtc: function khtmlEtc() { - return is.khtml() || is.webkit() || is.chromium(); - }, - - ms: function ms() { - return navigator && navigator.userAgent.match(/msie|trident|edge/i); // probably a better way to detect this... - }, - - windows: function windows() { - return navigator && navigator.appVersion.match(/Win/i); - }, - - mac: function mac() { - return navigator && navigator.appVersion.match(/Mac/i); - }, - - linux: function linux() { - return navigator && navigator.appVersion.match(/Linux/i); - }, - - unix: function unix() { - return navigator && navigator.appVersion.match(/X11/i); - } -}; - -module.exports = is; - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/*global console */ - -var is = __webpack_require__(0); -var math = __webpack_require__(2); - -var util = { - - MAX_INT: Number.MAX_SAFE_INTEGER || 9007199254740991, - - trueify: function trueify() { - return true; - }, - - falsify: function falsify() { - return false; - }, - - zeroify: function zeroify() { - return 0; - }, - - noop: function noop() {}, - - error: function error(msg) { - /* eslint-disable */ - if (console.error) { - console.error.apply(console, arguments); - - if (console.trace) { - console.trace(); - } - } else { - console.log.apply(console, arguments); - - if (console.trace) { - console.trace(); - } - } - /* eslint-enable */ - }, - - clone: function clone(obj) { - return this.extend({}, obj); - }, - - // gets a shallow copy of the argument - copy: function copy(obj) { - if (obj == null) { - return obj; - }if (is.array(obj)) { - return obj.slice(); - } else if (is.plainObject(obj)) { - return this.clone(obj); - } else { - return obj; - } - }, - - copyArray: function copyArray(arr) { - return arr.slice(); - }, - - clonePosition: function clonePosition(pos) { - return { x: pos.x, y: pos.y }; - }, - - uuid: function uuid(a, b // placeholders - ) { - for ( // loop :) - b = a = ''; // b - result , a - numeric letiable - a++ < 36; // - b += a * 51 & 52 // if "a" is not 9 or 14 or 19 or 24 - ? // return a random number or 4 - (a ^ 15 // if "a" is not 15 - ? // genetate a random number from 0 to 15 - 8 ^ Math.random() * (a ^ 20 ? 16 : 4) // unless "a" is 20, in which case a random number from 8 to 11 - : 4 // otherwise 4 - ).toString(16) : '-' // in other cases (if "a" is 9,14,19,24) insert "-" - ) {} - return b; - } - -}; - -util.makeBoundingBox = math.makeBoundingBox.bind(math); - -util._staticEmptyObject = {}; - -util.staticEmptyObject = function () { - return util._staticEmptyObject; -}; - -util.extend = Object.assign != null ? Object.assign.bind(Object) : function (tgt) { - var args = arguments; - - for (var i = 1; i < args.length; i++) { - var obj = args[i]; - - if (obj == null) { - continue; - } - - var keys = Object.keys(obj); - - for (var j = 0; j < keys.length; j++) { - var k = keys[j]; - - tgt[k] = obj[k]; - } - } - - return tgt; -}; - -util.assign = util.extend; - -util.default = function (val, def) { - if (val === undefined) { - return def; - } else { - return val; - } -}; - -util.removeFromArray = function (arr, ele, manyCopies) { - for (var i = arr.length; i >= 0; i--) { - if (arr[i] === ele) { - arr.splice(i, 1); - - if (!manyCopies) { - break; - } - } - } -}; - -util.clearArray = function (arr) { - arr.splice(0, arr.length); -}; - -util.push = function (arr, otherArr) { - for (var i = 0; i < otherArr.length; i++) { - var el = otherArr[i]; - - arr.push(el); - } -}; - -util.getPrefixedProperty = function (obj, propName, prefix) { - if (prefix) { - propName = this.prependCamel(prefix, propName); // e.g. (labelWidth, source) => sourceLabelWidth - } - - return obj[propName]; -}; - -util.setPrefixedProperty = function (obj, propName, prefix, value) { - if (prefix) { - propName = this.prependCamel(prefix, propName); // e.g. (labelWidth, source) => sourceLabelWidth - } - - obj[propName] = value; -}; - -[__webpack_require__(131), __webpack_require__(132), { memoize: __webpack_require__(19) }, __webpack_require__(133), __webpack_require__(135), __webpack_require__(136), __webpack_require__(134)].forEach(function (req) { - util.extend(util, req); -}); - -module.exports = util; - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var math = {}; - -math.arePositionsSame = function (p1, p2) { - return p1.x === p2.x && p1.y === p2.y; -}; - -math.copyPosition = function (p) { - return { x: p.x, y: p.y }; -}; - -math.modelToRenderedPosition = function (p, zoom, pan) { - return { - x: p.x * zoom + pan.x, - y: p.y * zoom + pan.y - }; -}; - -math.renderedToModelPosition = function (p, zoom, pan) { - return { - x: (p.x - pan.x) / zoom, - y: (p.y - pan.y) / zoom - }; -}; - -math.array2point = function (arr) { - return { - x: arr[0], - y: arr[1] - }; -}; - -math.deg2rad = function (deg) { - return Math.PI * deg / 180; -}; - -math.getAngleFromDisp = function (dispX, dispY) { - return Math.atan2(dispY, dispX) - Math.PI / 2; -}; - -math.log2 = Math.log2 || function (n) { - return Math.log(n) / Math.log(2); -}; - -math.signum = function (x) { - if (x > 0) { - return 1; - } else if (x < 0) { - return -1; - } else { - return 0; - } -}; - -math.dist = function (p1, p2) { - return Math.sqrt(math.sqdist(p1, p2)); -}; - -math.sqdist = function (p1, p2) { - var dx = p2.x - p1.x; - var dy = p2.y - p1.y; - - return dx * dx + dy * dy; -}; - -// from http://en.wikipedia.org/wiki/Bézier_curve#Quadratic_curves -math.qbezierAt = function (p0, p1, p2, t) { - return (1 - t) * (1 - t) * p0 + 2 * (1 - t) * t * p1 + t * t * p2; -}; - -math.qbezierPtAt = function (p0, p1, p2, t) { - return { - x: math.qbezierAt(p0.x, p1.x, p2.x, t), - y: math.qbezierAt(p0.y, p1.y, p2.y, t) - }; -}; - -math.lineAt = function (p0, p1, t, d) { - var vec = { - x: p1.x - p0.x, - y: p1.y - p0.y - }; - - var vecDist = math.dist(p0, p1); - - var normVec = { - x: vec.x / vecDist, - y: vec.y / vecDist - }; - - t = t == null ? 0 : t; - - d = d != null ? d : t * vecDist; - - return { - x: p0.x + normVec.x * d, - y: p0.y + normVec.y * d - }; -}; - -math.lineAtDist = function (p0, p1, d) { - return math.lineAt(p0, p1, undefined, d); -}; - -// get angle at A via cosine law -math.triangleAngle = function (A, B, C) { - var a = math.dist(B, C); - var b = math.dist(A, C); - var c = math.dist(A, B); - - return Math.acos((a * a + b * b - c * c) / (2 * a * b)); -}; - -math.bound = function (min, val, max) { - return Math.max(min, Math.min(max, val)); -}; - -// makes a full bb (x1, y1, x2, y2, w, h) from implicit params -math.makeBoundingBox = function (bb) { - if (bb == null) { - return { - x1: Infinity, - y1: Infinity, - x2: -Infinity, - y2: -Infinity, - w: 0, - h: 0 - }; - } else if (bb.x1 != null && bb.y1 != null) { - if (bb.x2 != null && bb.y2 != null && bb.x2 >= bb.x1 && bb.y2 >= bb.y1) { - return { - x1: bb.x1, - y1: bb.y1, - x2: bb.x2, - y2: bb.y2, - w: bb.x2 - bb.x1, - h: bb.y2 - bb.y1 - }; - } else if (bb.w != null && bb.h != null && bb.w >= 0 && bb.h >= 0) { - return { - x1: bb.x1, - y1: bb.y1, - x2: bb.x1 + bb.w, - y2: bb.y1 + bb.h, - w: bb.w, - h: bb.h - }; - } - } -}; - -math.updateBoundingBox = function (bb1, bb2) { - // update bb1 with bb2 bounds - - bb1.x1 = Math.min(bb1.x1, bb2.x1); - bb1.x2 = Math.max(bb1.x2, bb2.x2); - bb1.w = bb1.x2 - bb1.x1; - - bb1.y1 = Math.min(bb1.y1, bb2.y1); - bb1.y2 = Math.max(bb1.y2, bb2.y2); - bb1.h = bb1.y2 - bb1.y1; -}; - -math.expandBoundingBoxByPoint = function (bb, x, y) { - bb.x1 = Math.min(bb.x1, x); - bb.x2 = Math.max(bb.x2, x); - bb.w = bb.x2 - bb.x1; - - bb.y1 = Math.min(bb.y1, y); - bb.y2 = Math.max(bb.y2, y); - bb.h = bb.y2 - bb.y1; -}; - -math.expandBoundingBox = function (bb, padding) { - bb.x1 -= padding; - bb.x2 += padding; - bb.y1 -= padding; - bb.y2 += padding; - bb.w = bb.x2 - bb.x1; - bb.h = bb.y2 - bb.y1; - - return bb; -}; - -math.boundingBoxesIntersect = function (bb1, bb2) { - // case: one bb to right of other - if (bb1.x1 > bb2.x2) { - return false; - } - if (bb2.x1 > bb1.x2) { - return false; - } - - // case: one bb to left of other - if (bb1.x2 < bb2.x1) { - return false; - } - if (bb2.x2 < bb1.x1) { - return false; - } - - // case: one bb above other - if (bb1.y2 < bb2.y1) { - return false; - } - if (bb2.y2 < bb1.y1) { - return false; - } - - // case: one bb below other - if (bb1.y1 > bb2.y2) { - return false; - } - if (bb2.y1 > bb1.y2) { - return false; - } - - // otherwise, must have some overlap - return true; -}; - -math.inBoundingBox = function (bb, x, y) { - return bb.x1 <= x && x <= bb.x2 && bb.y1 <= y && y <= bb.y2; -}; - -math.pointInBoundingBox = function (bb, pt) { - return this.inBoundingBox(bb, pt.x, pt.y); -}; - -math.boundingBoxInBoundingBox = function (bb1, bb2) { - return math.inBoundingBox(bb1, bb2.x1, bb2.y1) && math.inBoundingBox(bb1, bb2.x2, bb2.y2); -}; - -math.roundRectangleIntersectLine = function (x, y, nodeX, nodeY, width, height, padding) { - - var cornerRadius = this.getRoundRectangleRadius(width, height); - - var halfWidth = width / 2; - var halfHeight = height / 2; - - // Check intersections with straight line segments - var straightLineIntersections = void 0; - - // Top segment, left to right - { - var topStartX = nodeX - halfWidth + cornerRadius - padding; - var topStartY = nodeY - halfHeight - padding; - var topEndX = nodeX + halfWidth - cornerRadius + padding; - var topEndY = topStartY; - - straightLineIntersections = this.finiteLinesIntersect(x, y, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false); - - if (straightLineIntersections.length > 0) { - return straightLineIntersections; - } - } - - // Right segment, top to bottom - { - var rightStartX = nodeX + halfWidth + padding; - var rightStartY = nodeY - halfHeight + cornerRadius - padding; - var rightEndX = rightStartX; - var rightEndY = nodeY + halfHeight - cornerRadius + padding; - - straightLineIntersections = this.finiteLinesIntersect(x, y, nodeX, nodeY, rightStartX, rightStartY, rightEndX, rightEndY, false); - - if (straightLineIntersections.length > 0) { - return straightLineIntersections; - } - } - - // Bottom segment, left to right - { - var bottomStartX = nodeX - halfWidth + cornerRadius - padding; - var bottomStartY = nodeY + halfHeight + padding; - var bottomEndX = nodeX + halfWidth - cornerRadius + padding; - var bottomEndY = bottomStartY; - - straightLineIntersections = this.finiteLinesIntersect(x, y, nodeX, nodeY, bottomStartX, bottomStartY, bottomEndX, bottomEndY, false); - - if (straightLineIntersections.length > 0) { - return straightLineIntersections; - } - } - - // Left segment, top to bottom - { - var leftStartX = nodeX - halfWidth - padding; - var leftStartY = nodeY - halfHeight + cornerRadius - padding; - var leftEndX = leftStartX; - var leftEndY = nodeY + halfHeight - cornerRadius + padding; - - straightLineIntersections = this.finiteLinesIntersect(x, y, nodeX, nodeY, leftStartX, leftStartY, leftEndX, leftEndY, false); - - if (straightLineIntersections.length > 0) { - return straightLineIntersections; - } - } - - // Check intersections with arc segments - var arcIntersections = void 0; - - // Top Left - { - var topLeftCenterX = nodeX - halfWidth + cornerRadius; - var topLeftCenterY = nodeY - halfHeight + cornerRadius; - arcIntersections = this.intersectLineCircle(x, y, nodeX, nodeY, topLeftCenterX, topLeftCenterY, cornerRadius + padding); - - // Ensure the intersection is on the desired quarter of the circle - if (arcIntersections.length > 0 && arcIntersections[0] <= topLeftCenterX && arcIntersections[1] <= topLeftCenterY) { - return [arcIntersections[0], arcIntersections[1]]; - } - } - - // Top Right - { - var topRightCenterX = nodeX + halfWidth - cornerRadius; - var topRightCenterY = nodeY - halfHeight + cornerRadius; - arcIntersections = this.intersectLineCircle(x, y, nodeX, nodeY, topRightCenterX, topRightCenterY, cornerRadius + padding); - - // Ensure the intersection is on the desired quarter of the circle - if (arcIntersections.length > 0 && arcIntersections[0] >= topRightCenterX && arcIntersections[1] <= topRightCenterY) { - return [arcIntersections[0], arcIntersections[1]]; - } - } - - // Bottom Right - { - var bottomRightCenterX = nodeX + halfWidth - cornerRadius; - var bottomRightCenterY = nodeY + halfHeight - cornerRadius; - arcIntersections = this.intersectLineCircle(x, y, nodeX, nodeY, bottomRightCenterX, bottomRightCenterY, cornerRadius + padding); - - // Ensure the intersection is on the desired quarter of the circle - if (arcIntersections.length > 0 && arcIntersections[0] >= bottomRightCenterX && arcIntersections[1] >= bottomRightCenterY) { - return [arcIntersections[0], arcIntersections[1]]; - } - } - - // Bottom Left - { - var bottomLeftCenterX = nodeX - halfWidth + cornerRadius; - var bottomLeftCenterY = nodeY + halfHeight - cornerRadius; - arcIntersections = this.intersectLineCircle(x, y, nodeX, nodeY, bottomLeftCenterX, bottomLeftCenterY, cornerRadius + padding); - - // Ensure the intersection is on the desired quarter of the circle - if (arcIntersections.length > 0 && arcIntersections[0] <= bottomLeftCenterX && arcIntersections[1] >= bottomLeftCenterY) { - return [arcIntersections[0], arcIntersections[1]]; - } - } - - return []; // if nothing -}; - -math.inLineVicinity = function (x, y, lx1, ly1, lx2, ly2, tolerance) { - var t = tolerance; - - var x1 = Math.min(lx1, lx2); - var x2 = Math.max(lx1, lx2); - var y1 = Math.min(ly1, ly2); - var y2 = Math.max(ly1, ly2); - - return x1 - t <= x && x <= x2 + t && y1 - t <= y && y <= y2 + t; -}; - -math.inBezierVicinity = function (x, y, x1, y1, x2, y2, x3, y3, tolerance) { - - var bb = { - x1: Math.min(x1, x3, x2) - tolerance, - x2: Math.max(x1, x3, x2) + tolerance, - y1: Math.min(y1, y3, y2) - tolerance, - y2: Math.max(y1, y3, y2) + tolerance - }; - - // if outside the rough bounding box for the bezier, then it can't be a hit - if (x < bb.x1 || x > bb.x2 || y < bb.y1 || y > bb.y2) { - // console.log('bezier out of rough bb') - return false; - } else { - // console.log('do more expensive check'); - return true; - } -}; -math.solveQuadratic = function (a, b, c, val) { - c -= val; - - var r = b * b - 4 * a * c; - - if (r < 0) { - return []; - } - - var sqrtR = Math.sqrt(r); - var denom = 2 * a; - var root1 = (-b + sqrtR) / denom; - var root2 = (-b - sqrtR) / denom; - - return [root1, root2]; -}; - -math.solveCubic = function (a, b, c, d, result) { - - // Solves a cubic function, returns root in form [r1, i1, r2, i2, r3, i3], where - // r is the real component, i is the imaginary component - - // An implementation of the Cardano method from the year 1545 - // http://en.wikipedia.org/wiki/Cubic_function#The_nature_of_the_roots - - b /= a; - c /= a; - d /= a; - - var discriminant = void 0, - q = void 0, - r = void 0, - dum1 = void 0, - s = void 0, - t = void 0, - term1 = void 0, - r13 = void 0; - - q = (3.0 * c - b * b) / 9.0; - r = -(27.0 * d) + b * (9.0 * c - 2.0 * (b * b)); - r /= 54.0; - - discriminant = q * q * q + r * r; - result[1] = 0; - term1 = b / 3.0; - - if (discriminant > 0) { - s = r + Math.sqrt(discriminant); - s = s < 0 ? -Math.pow(-s, 1.0 / 3.0) : Math.pow(s, 1.0 / 3.0); - t = r - Math.sqrt(discriminant); - t = t < 0 ? -Math.pow(-t, 1.0 / 3.0) : Math.pow(t, 1.0 / 3.0); - result[0] = -term1 + s + t; - term1 += (s + t) / 2.0; - result[4] = result[2] = -term1; - term1 = Math.sqrt(3.0) * (-t + s) / 2; - result[3] = term1; - result[5] = -term1; - return; - } - - result[5] = result[3] = 0; - - if (discriminant === 0) { - r13 = r < 0 ? -Math.pow(-r, 1.0 / 3.0) : Math.pow(r, 1.0 / 3.0); - result[0] = -term1 + 2.0 * r13; - result[4] = result[2] = -(r13 + term1); - return; - } - - q = -q; - dum1 = q * q * q; - dum1 = Math.acos(r / Math.sqrt(dum1)); - r13 = 2.0 * Math.sqrt(q); - result[0] = -term1 + r13 * Math.cos(dum1 / 3.0); - result[2] = -term1 + r13 * Math.cos((dum1 + 2.0 * Math.PI) / 3.0); - result[4] = -term1 + r13 * Math.cos((dum1 + 4.0 * Math.PI) / 3.0); - - return; -}; - -math.sqdistToQuadraticBezier = function (x, y, x1, y1, x2, y2, x3, y3) { - - // Find minimum distance by using the minimum of the distance - // function between the given point and the curve - - // This gives the coefficients of the resulting cubic equation - // whose roots tell us where a possible minimum is - // (Coefficients are divided by 4) - - var a = 1.0 * x1 * x1 - 4 * x1 * x2 + 2 * x1 * x3 + 4 * x2 * x2 - 4 * x2 * x3 + x3 * x3 + y1 * y1 - 4 * y1 * y2 + 2 * y1 * y3 + 4 * y2 * y2 - 4 * y2 * y3 + y3 * y3; - - var b = 1.0 * 9 * x1 * x2 - 3 * x1 * x1 - 3 * x1 * x3 - 6 * x2 * x2 + 3 * x2 * x3 + 9 * y1 * y2 - 3 * y1 * y1 - 3 * y1 * y3 - 6 * y2 * y2 + 3 * y2 * y3; - - var c = 1.0 * 3 * x1 * x1 - 6 * x1 * x2 + x1 * x3 - x1 * x + 2 * x2 * x2 + 2 * x2 * x - x3 * x + 3 * y1 * y1 - 6 * y1 * y2 + y1 * y3 - y1 * y + 2 * y2 * y2 + 2 * y2 * y - y3 * y; - - var d = 1.0 * x1 * x2 - x1 * x1 + x1 * x - x2 * x + y1 * y2 - y1 * y1 + y1 * y - y2 * y; - - // debug("coefficients: " + a / a + ", " + b / a + ", " + c / a + ", " + d / a); - - var roots = []; - - // Use the cubic solving algorithm - this.solveCubic(a, b, c, d, roots); - - var zeroThreshold = 0.0000001; - - var params = []; - - for (var index = 0; index < 6; index += 2) { - if (Math.abs(roots[index + 1]) < zeroThreshold && roots[index] >= 0 && roots[index] <= 1.0) { - params.push(roots[index]); - } - } - - params.push(1.0); - params.push(0.0); - - var minDistanceSquared = -1; - - var curX = void 0, - curY = void 0, - distSquared = void 0; - for (var i = 0; i < params.length; i++) { - curX = Math.pow(1.0 - params[i], 2.0) * x1 + 2.0 * (1 - params[i]) * params[i] * x2 + params[i] * params[i] * x3; - - curY = Math.pow(1 - params[i], 2.0) * y1 + 2 * (1.0 - params[i]) * params[i] * y2 + params[i] * params[i] * y3; - - distSquared = Math.pow(curX - x, 2) + Math.pow(curY - y, 2); - // debug('distance for param ' + params[i] + ": " + Math.sqrt(distSquared)); - if (minDistanceSquared >= 0) { - if (distSquared < minDistanceSquared) { - minDistanceSquared = distSquared; - } - } else { - minDistanceSquared = distSquared; - } - } - - return minDistanceSquared; -}; - -math.sqdistToFiniteLine = function (x, y, x1, y1, x2, y2) { - var offset = [x - x1, y - y1]; - var line = [x2 - x1, y2 - y1]; - - var lineSq = line[0] * line[0] + line[1] * line[1]; - var hypSq = offset[0] * offset[0] + offset[1] * offset[1]; - - var dotProduct = offset[0] * line[0] + offset[1] * line[1]; - var adjSq = dotProduct * dotProduct / lineSq; - - if (dotProduct < 0) { - return hypSq; - } - - if (adjSq > lineSq) { - return (x - x2) * (x - x2) + (y - y2) * (y - y2); - } - - return hypSq - adjSq; -}; - -math.pointInsidePolygonPoints = function (x, y, points) { - var x1 = void 0, - y1 = void 0, - x2 = void 0, - y2 = void 0; - var y3 = void 0; - - // Intersect with vertical line through (x, y) - var up = 0; - // let down = 0; - for (var i = 0; i < points.length / 2; i++) { - x1 = points[i * 2]; - y1 = points[i * 2 + 1]; - - if (i + 1 < points.length / 2) { - x2 = points[(i + 1) * 2]; - y2 = points[(i + 1) * 2 + 1]; - } else { - x2 = points[(i + 1 - points.length / 2) * 2]; - y2 = points[(i + 1 - points.length / 2) * 2 + 1]; - } - - if (x1 == x && x2 == x) { - // then ignore - } else if (x1 >= x && x >= x2 || x1 <= x && x <= x2) { - - y3 = (x - x1) / (x2 - x1) * (y2 - y1) + y1; - - if (y3 > y) { - up++; - } - - // if( y3 < y ){ - // down++; - // } - } else { - continue; - } - } - - if (up % 2 === 0) { - return false; - } else { - return true; - } -}; - -math.pointInsidePolygon = function (x, y, basePoints, centerX, centerY, width, height, direction, padding) { - - //let direction = arguments[6]; - var transformedPoints = new Array(basePoints.length); - - // Gives negative angle - var angle = void 0; - - if (direction[0] != null) { - angle = Math.atan(direction[1] / direction[0]); - - if (direction[0] < 0) { - angle = angle + Math.PI / 2; - } else { - angle = -angle - Math.PI / 2; - } - } else { - angle = direction; - } - - var cos = Math.cos(-angle); - var sin = Math.sin(-angle); - - // console.log("base: " + basePoints); - for (var i = 0; i < transformedPoints.length / 2; i++) { - transformedPoints[i * 2] = width / 2 * (basePoints[i * 2] * cos - basePoints[i * 2 + 1] * sin); - - transformedPoints[i * 2 + 1] = height / 2 * (basePoints[i * 2 + 1] * cos + basePoints[i * 2] * sin); - - transformedPoints[i * 2] += centerX; - transformedPoints[i * 2 + 1] += centerY; - } - - var points = void 0; - - if (padding > 0) { - var expandedLineSet = this.expandPolygon(transformedPoints, -padding); - - points = this.joinLines(expandedLineSet); - } else { - points = transformedPoints; - } - - return math.pointInsidePolygonPoints(x, y, points); -}; - -math.joinLines = function (lineSet) { - - var vertices = new Array(lineSet.length / 2); - - var currentLineStartX = void 0, - currentLineStartY = void 0, - currentLineEndX = void 0, - currentLineEndY = void 0; - var nextLineStartX = void 0, - nextLineStartY = void 0, - nextLineEndX = void 0, - nextLineEndY = void 0; - - for (var i = 0; i < lineSet.length / 4; i++) { - currentLineStartX = lineSet[i * 4]; - currentLineStartY = lineSet[i * 4 + 1]; - currentLineEndX = lineSet[i * 4 + 2]; - currentLineEndY = lineSet[i * 4 + 3]; - - if (i < lineSet.length / 4 - 1) { - nextLineStartX = lineSet[(i + 1) * 4]; - nextLineStartY = lineSet[(i + 1) * 4 + 1]; - nextLineEndX = lineSet[(i + 1) * 4 + 2]; - nextLineEndY = lineSet[(i + 1) * 4 + 3]; - } else { - nextLineStartX = lineSet[0]; - nextLineStartY = lineSet[1]; - nextLineEndX = lineSet[2]; - nextLineEndY = lineSet[3]; - } - - var intersection = this.finiteLinesIntersect(currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY, nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY, true); - - vertices[i * 2] = intersection[0]; - vertices[i * 2 + 1] = intersection[1]; - } - - return vertices; -}; - -math.expandPolygon = function (points, pad) { - - var expandedLineSet = new Array(points.length * 2); - - var currentPointX = void 0, - currentPointY = void 0, - nextPointX = void 0, - nextPointY = void 0; - - for (var i = 0; i < points.length / 2; i++) { - currentPointX = points[i * 2]; - currentPointY = points[i * 2 + 1]; - - if (i < points.length / 2 - 1) { - nextPointX = points[(i + 1) * 2]; - nextPointY = points[(i + 1) * 2 + 1]; - } else { - nextPointX = points[0]; - nextPointY = points[1]; - } - - // Current line: [currentPointX, currentPointY] to [nextPointX, nextPointY] - - // Assume CCW polygon winding - - var offsetX = nextPointY - currentPointY; - var offsetY = -(nextPointX - currentPointX); - - // Normalize - var offsetLength = Math.sqrt(offsetX * offsetX + offsetY * offsetY); - var normalizedOffsetX = offsetX / offsetLength; - var normalizedOffsetY = offsetY / offsetLength; - - expandedLineSet[i * 4] = currentPointX + normalizedOffsetX * pad; - expandedLineSet[i * 4 + 1] = currentPointY + normalizedOffsetY * pad; - expandedLineSet[i * 4 + 2] = nextPointX + normalizedOffsetX * pad; - expandedLineSet[i * 4 + 3] = nextPointY + normalizedOffsetY * pad; - } - - return expandedLineSet; -}; - -math.intersectLineEllipse = function (x, y, centerX, centerY, ellipseWradius, ellipseHradius) { - - var dispX = centerX - x; - var dispY = centerY - y; - - dispX /= ellipseWradius; - dispY /= ellipseHradius; - - var len = Math.sqrt(dispX * dispX + dispY * dispY); - - var newLength = len - 1; - - if (newLength < 0) { - return []; - } - - var lenProportion = newLength / len; - - return [(centerX - x) * lenProportion + x, (centerY - y) * lenProportion + y]; -}; - -math.checkInEllipse = function (x, y, width, height, centerX, centerY, padding) { - x -= centerX; - y -= centerY; - - x /= width / 2 + padding; - y /= height / 2 + padding; - - return x * x + y * y <= 1; -}; - -// Returns intersections of increasing distance from line's start point -math.intersectLineCircle = function (x1, y1, x2, y2, centerX, centerY, radius) { - - // Calculate d, direction vector of line - var d = [x2 - x1, y2 - y1]; // Direction vector of line - var f = [x1 - centerX, y1 - centerY]; - - var a = d[0] * d[0] + d[1] * d[1]; - var b = 2 * (f[0] * d[0] + f[1] * d[1]); - var c = f[0] * f[0] + f[1] * f[1] - radius * radius; - - var discriminant = b * b - 4 * a * c; - - if (discriminant < 0) { - return []; - } - - var t1 = (-b + Math.sqrt(discriminant)) / (2 * a); - var t2 = (-b - Math.sqrt(discriminant)) / (2 * a); - - var tMin = Math.min(t1, t2); - var tMax = Math.max(t1, t2); - var inRangeParams = []; - - if (tMin >= 0 && tMin <= 1) { - inRangeParams.push(tMin); - } - - if (tMax >= 0 && tMax <= 1) { - inRangeParams.push(tMax); - } - - if (inRangeParams.length === 0) { - return []; - } - - var nearIntersectionX = inRangeParams[0] * d[0] + x1; - var nearIntersectionY = inRangeParams[0] * d[1] + y1; - - if (inRangeParams.length > 1) { - - if (inRangeParams[0] == inRangeParams[1]) { - return [nearIntersectionX, nearIntersectionY]; - } else { - - var farIntersectionX = inRangeParams[1] * d[0] + x1; - var farIntersectionY = inRangeParams[1] * d[1] + y1; - - return [nearIntersectionX, nearIntersectionY, farIntersectionX, farIntersectionY]; - } - } else { - return [nearIntersectionX, nearIntersectionY]; - } -}; - -math.findCircleNearPoint = function (centerX, centerY, radius, farX, farY) { - - var displacementX = farX - centerX; - var displacementY = farY - centerY; - var distance = Math.sqrt(displacementX * displacementX + displacementY * displacementY); - - var unitDisplacementX = displacementX / distance; - var unitDisplacementY = displacementY / distance; - - return [centerX + unitDisplacementX * radius, centerY + unitDisplacementY * radius]; -}; - -math.findMaxSqDistanceToOrigin = function (points) { - var maxSqDistance = 0.000001; - var sqDistance = void 0; - - for (var i = 0; i < points.length / 2; i++) { - - sqDistance = points[i * 2] * points[i * 2] + points[i * 2 + 1] * points[i * 2 + 1]; - - if (sqDistance > maxSqDistance) { - maxSqDistance = sqDistance; - } - } - - return maxSqDistance; -}; - -math.midOfThree = function (a, b, c) { - if (b <= a && a <= c || c <= a && a <= b) { - return a; - } else if (a <= b && b <= c || c <= b && b <= a) { - return b; - } else { - return c; - } -}; - -// (x1,y1)=>(x2,y2) intersect with (x3,y3)=>(x4,y4) -math.finiteLinesIntersect = function (x1, y1, x2, y2, x3, y3, x4, y4, infiniteLines) { - - var dx13 = x1 - x3; - var dx21 = x2 - x1; - var dx43 = x4 - x3; - - var dy13 = y1 - y3; - var dy21 = y2 - y1; - var dy43 = y4 - y3; - - var ua_t = dx43 * dy13 - dy43 * dx13; - var ub_t = dx21 * dy13 - dy21 * dx13; - var u_b = dy43 * dx21 - dx43 * dy21; - - if (u_b !== 0) { - var ua = ua_t / u_b; - var ub = ub_t / u_b; - - var flptThreshold = 0.001; - var min = 0 - flptThreshold; - var max = 1 + flptThreshold; - - if (min <= ua && ua <= max && min <= ub && ub <= max) { - return [x1 + ua * dx21, y1 + ua * dy21]; - } else { - if (!infiniteLines) { - return []; - } else { - return [x1 + ua * dx21, y1 + ua * dy21]; - } - } - } else { - if (ua_t === 0 || ub_t === 0) { - - // Parallel, coincident lines. Check if overlap - - // Check endpoint of second line - if (this.midOfThree(x1, x2, x4) === x4) { - return [x4, y4]; - } - - // Check start point of second line - if (this.midOfThree(x1, x2, x3) === x3) { - return [x3, y3]; - } - - // Endpoint of first line - if (this.midOfThree(x3, x4, x2) === x2) { - return [x2, y2]; - } - - return []; - } else { - - // Parallel, non-coincident - return []; - } - } -}; - -// math.polygonIntersectLine( x, y, basePoints, centerX, centerY, width, height, padding ) -// intersect a node polygon (pts transformed) -// -// math.polygonIntersectLine( x, y, basePoints, centerX, centerY ) -// intersect the points (no transform) -math.polygonIntersectLine = function (x, y, basePoints, centerX, centerY, width, height, padding) { - - var intersections = []; - var intersection = void 0; - - var transformedPoints = new Array(basePoints.length); - - var doTransform = true; - if (arguments.length === 5) { - doTransform = false; - } - - var points = void 0; - - if (doTransform) { - for (var i = 0; i < transformedPoints.length / 2; i++) { - transformedPoints[i * 2] = basePoints[i * 2] * width + centerX; - transformedPoints[i * 2 + 1] = basePoints[i * 2 + 1] * height + centerY; - } - - if (padding > 0) { - var expandedLineSet = math.expandPolygon(transformedPoints, -padding); - - points = math.joinLines(expandedLineSet); - } else { - points = transformedPoints; - } - } else { - points = basePoints; - } - - var currentX = void 0, - currentY = void 0, - nextX = void 0, - nextY = void 0; - - for (var _i = 0; _i < points.length / 2; _i++) { - - currentX = points[_i * 2]; - currentY = points[_i * 2 + 1]; - - if (_i < points.length / 2 - 1) { - nextX = points[(_i + 1) * 2]; - nextY = points[(_i + 1) * 2 + 1]; - } else { - nextX = points[0]; - nextY = points[1]; - } - - intersection = this.finiteLinesIntersect(x, y, centerX, centerY, currentX, currentY, nextX, nextY); - - if (intersection.length !== 0) { - intersections.push(intersection[0], intersection[1]); - } - } - - return intersections; -}; - -math.shortenIntersection = function (intersection, offset, amount) { - - var disp = [intersection[0] - offset[0], intersection[1] - offset[1]]; - - var length = Math.sqrt(disp[0] * disp[0] + disp[1] * disp[1]); - - var lenRatio = (length - amount) / length; - - if (lenRatio < 0) { - lenRatio = 0.00001; - } - - return [offset[0] + lenRatio * disp[0], offset[1] + lenRatio * disp[1]]; -}; - -math.generateUnitNgonPointsFitToSquare = function (sides, rotationRadians) { - var points = math.generateUnitNgonPoints(sides, rotationRadians); - points = math.fitPolygonToSquare(points); - - return points; -}; - -math.fitPolygonToSquare = function (points) { - var x = void 0, - y = void 0; - var sides = points.length / 2; - var minX = Infinity, - minY = Infinity, - maxX = -Infinity, - maxY = -Infinity; - - for (var i = 0; i < sides; i++) { - x = points[2 * i]; - y = points[2 * i + 1]; - - minX = Math.min(minX, x); - maxX = Math.max(maxX, x); - minY = Math.min(minY, y); - maxY = Math.max(maxY, y); - } - - // stretch factors - var sx = 2 / (maxX - minX); - var sy = 2 / (maxY - minY); - - for (var _i2 = 0; _i2 < sides; _i2++) { - x = points[2 * _i2] = points[2 * _i2] * sx; - y = points[2 * _i2 + 1] = points[2 * _i2 + 1] * sy; - - minX = Math.min(minX, x); - maxX = Math.max(maxX, x); - minY = Math.min(minY, y); - maxY = Math.max(maxY, y); - } - - if (minY < -1) { - for (var _i3 = 0; _i3 < sides; _i3++) { - y = points[2 * _i3 + 1] = points[2 * _i3 + 1] + (-1 - minY); - } - } - - return points; -}; - -math.generateUnitNgonPoints = function (sides, rotationRadians) { - - var increment = 1.0 / sides * 2 * Math.PI; - var startAngle = sides % 2 === 0 ? Math.PI / 2.0 + increment / 2.0 : Math.PI / 2.0; - - startAngle += rotationRadians; - - var points = new Array(sides * 2); - - var currentAngle = void 0; - for (var i = 0; i < sides; i++) { - currentAngle = i * increment + startAngle; - - points[2 * i] = Math.cos(currentAngle); // x - points[2 * i + 1] = Math.sin(-currentAngle); // y - } - - return points; -}; - -math.getRoundRectangleRadius = function (width, height) { - - // Set the default radius, unless half of width or height is smaller than default - return Math.min(width / 4, height / 4, 8); -}; - -math.getCutRectangleCornerLength = function () { - return 8; -}; - -math.bezierPtsToQuadCoeff = function (p0, p1, p2) { - return [p0 - 2 * p1 + p2, 2 * (p1 - p0), p0]; -}; - -math.getBarrelCurveConstants = function (width, height) { - // get curve width, height, and control point position offsets as a percentage of node height / width - return { - heightOffset: Math.min(15, 0.05 * height), - widthOffset: Math.min(100, 0.25 * width), - ctrlPtOffsetPct: 0.05 - }; -}; - -module.exports = math; - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -// use this module to cherry pick functions into your prototype -// (useful for functions shared between the core and collections, for example) - -// e.g. -// let foo = define.foo({ /* params... */ }) - -var util = __webpack_require__(1); - -var define = {}; - -[__webpack_require__(73), __webpack_require__(74), __webpack_require__(75)].forEach(function (m) { - util.assign(define, m); -}); - -module.exports = define; - -/***/ }), -/* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = typeof window === 'undefined' ? null : window; // eslint-disable-line no-undef - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(setImmediate) { - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -/*! -Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable -Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) -Licensed under The MIT License (http://opensource.org/licenses/MIT) -*/ - -/* promise states [Promises/A+ 2.1] */ -var STATE_PENDING = 0; /* [Promises/A+ 2.1.1] */ -var STATE_FULFILLED = 1; /* [Promises/A+ 2.1.2] */ -var STATE_REJECTED = 2; /* [Promises/A+ 2.1.3] */ - -/* promise object constructor */ -var api = function api(executor) { - /* optionally support non-constructor/plain-function call */ - if (!(this instanceof api)) return new api(executor); - - /* initialize object */ - this.id = 'Thenable/1.0.7'; - this.state = STATE_PENDING; /* initial state */ - this.fulfillValue = undefined; /* initial value */ /* [Promises/A+ 1.3, 2.1.2.2] */ - this.rejectReason = undefined; /* initial reason */ /* [Promises/A+ 1.5, 2.1.3.2] */ - this.onFulfilled = []; /* initial handlers */ - this.onRejected = []; /* initial handlers */ - - /* provide optional information-hiding proxy */ - this.proxy = { - then: this.then.bind(this) - }; - - /* support optional executor function */ - if (typeof executor === 'function') executor.call(this, this.fulfill.bind(this), this.reject.bind(this)); -}; - -/* promise API methods */ -api.prototype = { - /* promise resolving methods */ - fulfill: function fulfill(value) { - return deliver(this, STATE_FULFILLED, 'fulfillValue', value); - }, - reject: function reject(value) { - return deliver(this, STATE_REJECTED, 'rejectReason', value); - }, - - /* "The then Method" [Promises/A+ 1.1, 1.2, 2.2] */ - then: function then(onFulfilled, onRejected) { - var curr = this; - var next = new api(); /* [Promises/A+ 2.2.7] */ - curr.onFulfilled.push(resolver(onFulfilled, next, 'fulfill')); /* [Promises/A+ 2.2.2/2.2.6] */ - curr.onRejected.push(resolver(onRejected, next, 'reject')); /* [Promises/A+ 2.2.3/2.2.6] */ - execute(curr); - return next.proxy; /* [Promises/A+ 2.2.7, 3.3] */ - } -}; - -/* deliver an action */ -var deliver = function deliver(curr, state, name, value) { - if (curr.state === STATE_PENDING) { - curr.state = state; /* [Promises/A+ 2.1.2.1, 2.1.3.1] */ - curr[name] = value; /* [Promises/A+ 2.1.2.2, 2.1.3.2] */ - execute(curr); - } - return curr; -}; - -/* execute all handlers */ -var execute = function execute(curr) { - if (curr.state === STATE_FULFILLED) execute_handlers(curr, 'onFulfilled', curr.fulfillValue);else if (curr.state === STATE_REJECTED) execute_handlers(curr, 'onRejected', curr.rejectReason); -}; - -/* execute particular set of handlers */ -var execute_handlers = function execute_handlers(curr, name, value) { - /* global setImmediate: true */ - /* global setTimeout: true */ - - /* short-circuit processing */ - if (curr[name].length === 0) return; - - /* iterate over all handlers, exactly once */ - var handlers = curr[name]; - curr[name] = []; /* [Promises/A+ 2.2.2.3, 2.2.3.3] */ - var func = function func() { - for (var i = 0; i < handlers.length; i++) { - handlers[i](value); - } /* [Promises/A+ 2.2.5] */ - }; - - /* execute procedure asynchronously */ /* [Promises/A+ 2.2.4, 3.1] */ - if (typeof setImmediate === 'function') setImmediate(func);else setTimeout(func, 0); -}; - -/* generate a resolver function */ -var resolver = function resolver(cb, next, method) { - return function (value) { - if (typeof cb !== 'function') /* [Promises/A+ 2.2.1, 2.2.7.3, 2.2.7.4] */ - next[method].call(next, value); /* [Promises/A+ 2.2.7.3, 2.2.7.4] */ - else { - var result; - try { - result = cb(value); - } /* [Promises/A+ 2.2.2.1, 2.2.3.1, 2.2.5, 3.2] */ - catch (e) { - next.reject(e); /* [Promises/A+ 2.2.7.2] */ - return; - } - resolve(next, result); /* [Promises/A+ 2.2.7.1] */ - } - }; -}; - -/* "Promise Resolution Procedure" */ /* [Promises/A+ 2.3] */ -var resolve = function resolve(promise, x) { - /* sanity check arguments */ /* [Promises/A+ 2.3.1] */ - if (promise === x || promise.proxy === x) { - promise.reject(new TypeError('cannot resolve promise with itself')); - return; - } - - /* surgically check for a "then" method - (mainly to just call the "getter" of "then" only once) */ - var then; - if ((typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function') { - try { - then = x.then; - } /* [Promises/A+ 2.3.3.1, 3.5] */ - catch (e) { - promise.reject(e); /* [Promises/A+ 2.3.3.2] */ - return; - } - } - - /* handle own Thenables [Promises/A+ 2.3.2] - and similar "thenables" [Promises/A+ 2.3.3] */ - if (typeof then === 'function') { - var resolved = false; - try { - /* call retrieved "then" method */ /* [Promises/A+ 2.3.3.3] */ - then.call(x, - /* resolvePromise */ /* [Promises/A+ 2.3.3.3.1] */ - function (y) { - if (resolved) return;resolved = true; /* [Promises/A+ 2.3.3.3.3] */ - if (y === x) /* [Promises/A+ 3.6] */ - promise.reject(new TypeError('circular thenable chain'));else resolve(promise, y); - }, - - /* rejectPromise */ /* [Promises/A+ 2.3.3.3.2] */ - function (r) { - if (resolved) return;resolved = true; /* [Promises/A+ 2.3.3.3.3] */ - promise.reject(r); - }); - } catch (e) { - if (!resolved) /* [Promises/A+ 2.3.3.3.3] */ - promise.reject(e); /* [Promises/A+ 2.3.3.3.4] */ - } - return; - } - - /* handle other values */ - promise.fulfill(x); /* [Promises/A+ 2.3.4, 2.3.3.4] */ -}; - -// so we always have Promise.all() -api.all = function (ps) { - return new api(function (resolveAll, rejectAll) { - var vals = new Array(ps.length); - var doneCount = 0; - - var fulfill = function fulfill(i, val) { - vals[i] = val; - doneCount++; - - if (doneCount === ps.length) { - resolveAll(vals); - } - }; - - for (var i = 0; i < ps.length; i++) { - (function (i) { - var p = ps[i]; - var isPromise = p != null && p.then != null; - - if (isPromise) { - p.then(function (val) { - fulfill(i, val); - }, function (err) { - rejectAll(err); - }); - } else { - var val = p; - fulfill(i, val); - } - })(i); - } - }); -}; - -api.resolve = function (val) { - return new api(function (resolve, reject) { - resolve(val); - }); -}; - -api.reject = function (val) { - return new api(function (resolve, reject) { - reject(val); - }); -}; - -module.exports = typeof Promise !== 'undefined' ? Promise : api; // eslint-disable-line no-undef -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(142).setImmediate)) - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); -var util = __webpack_require__(1); -var newQuery = __webpack_require__(11); - -var Selector = function Selector(selector) { - var self = this; - - self._private = { - selectorText: selector, - invalid: true - }; - - if (selector == null || is.string(selector) && selector.match(/^\s*$/)) { - - self.length = 0; - } else if (selector === '*' || selector === 'edge' || selector === 'node') { - - // make single, group-only selectors cheap to make and cheap to filter - - self[0] = newQuery(); - self[0].group = selector === '*' ? selector : selector + 's'; - self[0].groupOnly = true; - self[0].length = 1; - self._private.invalid = false; - self.length = 1; - } else if (is.elementOrCollection(selector)) { - - var collection = selector.collection(); - - self[0] = newQuery(); - self[0].collection = collection; - self[0].length = 1; - self.length = 1; - } else if (is.fn(selector)) { - - self[0] = newQuery(); - self[0].filter = selector; - self[0].length = 1; - self.length = 1; - } else if (is.string(selector)) { - if (!self.parse(selector)) { - return; - } - } else { - util.error('A selector must be created from a string; found ', selector); - return; - } - - self._private.invalid = false; -}; - -var selfn = Selector.prototype; - -selfn.valid = function () { - return !this._private.invalid; -}; - -selfn.invalid = function () { - return this._private.invalid; -}; - -selfn.text = function () { - return this._private.selectorText; -}; - -selfn.size = function () { - return this.length; -}; - -selfn.eq = function (i) { - return this[i]; -}; - -selfn.sameText = function (otherSel) { - return this.text() === otherSel.text(); -}; - -selfn.toString = selfn.selector = function () { - - if (this._private.toStringCache != null) { - return this._private.toStringCache; - } - - var i = void 0; - var str = ''; - - var clean = function clean(obj) { - if (obj == null) { - return ''; - } else { - return obj; - } - }; - - var cleanVal = function cleanVal(val) { - if (is.string(val)) { - return '"' + val + '"'; - } else { - return clean(val); - } - }; - - var space = function space(val) { - return ' ' + val + ' '; - }; - - var queryToString = function queryToString(query) { - var str = ''; - var j = void 0, - sel = void 0; - - if (query.subject === query) { - str += '$'; - } - - var group = clean(query.group); - str += group.substring(0, group.length - 1); - - for (j = 0; j < query.data.length; j++) { - var data = query.data[j]; - - if (data.value) { - str += '[' + data.field + space(clean(data.operator)) + cleanVal(data.value) + ']'; - } else { - str += '[' + clean(data.operator) + data.field + ']'; - } - } - - for (j = 0; j < query.meta.length; j++) { - var meta = query.meta[j]; - str += '[[' + meta.field + space(clean(meta.operator)) + cleanVal(meta.value) + ']]'; - } - - for (j = 0; j < query.colonSelectors.length; j++) { - sel = query.colonSelectors[i]; - str += sel; - } - - for (j = 0; j < query.ids.length; j++) { - sel = '#' + query.ids[i]; - str += sel; - } - - for (j = 0; j < query.classes.length; j++) { - sel = '.' + query.classes[j]; - str += sel; - } - - if (query.source != null && query.target != null) { - str = queryToString(query.source) + ' -> ' + queryToString(query.target); - } - - if (query.connectedNodes != null) { - var n = query.connectedNodes; - - str = queryToString(n[0]) + ' <-> ' + queryToString(n[1]); - } - - if (query.parent != null) { - str = queryToString(query.parent) + ' > ' + str; - } - - if (query.ancestor != null) { - str = queryToString(query.ancestor) + ' ' + str; - } - - if (query.child != null) { - str += ' > ' + queryToString(query.child); - } - - if (query.descendant != null) { - str += ' ' + queryToString(query.descendant); - } - - return str; - }; - - for (i = 0; i < this.length; i++) { - var query = this[i]; - - str += queryToString(query); - - if (this.length > 1 && i < this.length - 1) { - str += ', '; - } - } - - this._private.toStringCache = str; - - return str; -}; - -[__webpack_require__(121), __webpack_require__(120)].forEach(function (p) { - return util.assign(selfn, p); -}); - -module.exports = Selector; - -/***/ }), -/* 7 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var is = __webpack_require__(0); -var Map = __webpack_require__(118); -var Set = __webpack_require__(9); - -var Element = __webpack_require__(13); - -// factory for generating edge ids when no id is specified for a new element -var idFactory = { - generate: function generate(cy, element, tryThisId) { - var id = tryThisId != null ? tryThisId : util.uuid(); - - while (cy.hasElementWithId(id)) { - id = util.uuid(); - } - - return id; - } -}; - -// represents a set of nodes, edges, or both together -var Collection = function Collection(cy, elements, options) { - if (cy === undefined || !is.core(cy)) { - util.error('A collection must have a reference to the core'); - return; - } - - var map = new Map(); - var createdElements = false; - - if (!elements) { - elements = []; - } else if (elements.length > 0 && is.plainObject(elements[0]) && !is.element(elements[0])) { - createdElements = true; - - // make elements from json and restore all at once later - var eles = []; - var elesIds = new Set(); - - for (var i = 0, l = elements.length; i < l; i++) { - var json = elements[i]; - - if (json.data == null) { - json.data = {}; - } - - var data = json.data; - - // make sure newly created elements have valid ids - if (data.id == null) { - data.id = idFactory.generate(cy, json); - } else if (cy.hasElementWithId(data.id) || elesIds.has(data.id)) { - continue; // can't create element if prior id already exists - } - - var ele = new Element(cy, json, false); - eles.push(ele); - elesIds.add(data.id); - } - - elements = eles; - } - - this.length = 0; - - for (var _i = 0, _l = elements.length; _i < _l; _i++) { - var element = elements[_i]; - if (element == null) { - continue; - } - - var id = element._private.data.id; - - if (options == null || options.unique && !map.has(id)) { - map.set(id, { - index: this.length, - ele: element - }); - - this[this.length] = element; - this.length++; - } - } - - this._private = { - cy: cy, - map: map - }; - - // restore the elements if we created them from json - if (createdElements) { - this.restore(); - } -}; - -// Functions -//////////////////////////////////////////////////////////////////////////////////////////////////// - -// keep the prototypes in sync (an element has the same functions as a collection) -// and use elefn and elesfn as shorthands to the prototypes -var elesfn = Element.prototype = Collection.prototype; - -elesfn.instanceString = function () { - return 'collection'; -}; - -elesfn.spawn = function (cy, eles, opts) { - if (!is.core(cy)) { - // cy is optional - opts = eles; - eles = cy; - cy = this.cy(); - } - - return new Collection(cy, eles, opts); -}; - -elesfn.spawnSelf = function () { - return this.spawn(this); -}; - -elesfn.cy = function () { - return this._private.cy; -}; - -elesfn.renderer = function () { - return this._private.cy.renderer(); -}; - -elesfn.element = function () { - return this[0]; -}; - -elesfn.collection = function () { - if (is.collection(this)) { - return this; - } else { - // an element - return new Collection(this._private.cy, [this]); - } -}; - -elesfn.unique = function () { - return new Collection(this._private.cy, this, { unique: true }); -}; - -elesfn.hasElementWithId = function (id) { - return this._private.map.has(id); -}; - -elesfn.getElementById = function (id) { - var cy = this._private.cy; - var entry = this._private.map.get(id); - - return entry ? entry.ele : new Collection(cy); // get ele or empty collection -}; - -elesfn.$id = elesfn.getElementById; - -elesfn.poolIndex = function () { - var cy = this._private.cy; - var eles = cy._private.elements; - var id = this._private.data.id; - - return eles._private.map.get(id).index; -}; - -elesfn.json = function (obj) { - var ele = this.element(); - var cy = this.cy(); - - if (ele == null && obj) { - return this; - } // can't set to no eles - - if (ele == null) { - return undefined; - } // can't get from no eles - - var p = ele._private; - - if (is.plainObject(obj)) { - // set - - cy.startBatch(); - - if (obj.data) { - ele.data(obj.data); - } - - if (obj.position) { - ele.position(obj.position); - } - - // ignore group -- immutable - - var checkSwitch = function checkSwitch(k, trueFnName, falseFnName) { - var obj_k = obj[k]; - - if (obj_k != null && obj_k !== p[k]) { - if (obj_k) { - ele[trueFnName](); - } else { - ele[falseFnName](); - } - } - }; - - checkSwitch('removed', 'remove', 'restore'); - - checkSwitch('selected', 'select', 'unselect'); - - checkSwitch('selectable', 'selectify', 'unselectify'); - - checkSwitch('locked', 'lock', 'unlock'); - - checkSwitch('grabbable', 'grabify', 'ungrabify'); - - if (obj.classes != null) { - ele.classes(obj.classes); - } - - cy.endBatch(); - - return this; - } else if (obj === undefined) { - // get - - var json = { - data: util.copy(p.data), - position: util.copy(p.position), - group: p.group, - removed: p.removed, - selected: p.selected, - selectable: p.selectable, - locked: p.locked, - grabbable: p.grabbable, - classes: null - }; - - json.classes = ''; - - var i = 0; - p.classes.forEach(function (cls) { - return json.classes += i++ === 0 ? cls : ' ' + cls; - }); - - return json; - } -}; - -elesfn.jsons = function () { - var jsons = []; - - for (var i = 0; i < this.length; i++) { - var ele = this[i]; - var json = ele.json(); - - jsons.push(json); - } - - return jsons; -}; - -elesfn.clone = function () { - var cy = this.cy(); - var elesArr = []; - - for (var i = 0; i < this.length; i++) { - var ele = this[i]; - var json = ele.json(); - var clone = new Element(cy, json, false); // NB no restore - - elesArr.push(clone); - } - - return new Collection(cy, elesArr); -}; -elesfn.copy = elesfn.clone; - -elesfn.restore = function (notifyRenderer) { - var self = this; - var cy = self.cy(); - var cy_p = cy._private; - - if (notifyRenderer === undefined) { - notifyRenderer = true; - } - - // create arrays of nodes and edges, since we need to - // restore the nodes first - var nodes = []; - var edges = []; - var elements = void 0; - for (var _i2 = 0, l = self.length; _i2 < l; _i2++) { - var ele = self[_i2]; - - if (!ele.removed()) { - // don't need to handle this ele - continue; - } - - // keep nodes first in the array and edges after - if (ele.isNode()) { - // put to front of array if node - nodes.push(ele); - } else { - // put to end of array if edge - edges.push(ele); - } - } - - elements = nodes.concat(edges); - - var i = void 0; - var removeFromElements = function removeFromElements() { - elements.splice(i, 1); - i--; - }; - - // now, restore each element - for (i = 0; i < elements.length; i++) { - var _ele = elements[i]; - - var _private = _ele._private; - var data = _private.data; - - // the traversal cache should start fresh when ele is added - _ele.clearTraversalCache(); - - // set id and validate - if (data.id === undefined) { - data.id = idFactory.generate(cy, _ele); - } else if (is.number(data.id)) { - data.id = '' + data.id; // now it's a string - } else if (is.emptyString(data.id) || !is.string(data.id)) { - util.error('Can not create element with invalid string ID `' + data.id + '`'); - - // can't create element if it has empty string as id or non-string id - removeFromElements(); - continue; - } else if (cy.hasElementWithId(data.id)) { - util.error('Can not create second element with ID `' + data.id + '`'); - - // can't create element if one already has that id - removeFromElements(); - continue; - } - - var id = data.id; // id is finalised, now let's keep a ref - - if (_ele.isNode()) { - // extra checks for nodes - var pos = _private.position; - - // make sure the nodes have a defined position - - if (pos.x == null) { - pos.x = 0; - } - - if (pos.y == null) { - pos.y = 0; - } - } - - if (_ele.isEdge()) { - // extra checks for edges - - var edge = _ele; - var fields = ['source', 'target']; - var fieldsLength = fields.length; - var badSourceOrTarget = false; - for (var j = 0; j < fieldsLength; j++) { - - var field = fields[j]; - var val = data[field]; - - if (is.number(val)) { - val = data[field] = '' + data[field]; // now string - } - - if (val == null || val === '') { - // can't create if source or target is not defined properly - util.error('Can not create edge `' + id + '` with unspecified ' + field); - badSourceOrTarget = true; - } else if (!cy.hasElementWithId(val)) { - // can't create edge if one of its nodes doesn't exist - util.error('Can not create edge `' + id + '` with nonexistant ' + field + ' `' + val + '`'); - badSourceOrTarget = true; - } - } - - if (badSourceOrTarget) { - removeFromElements();continue; - } // can't create this - - var src = cy.getElementById(data.source); - var tgt = cy.getElementById(data.target); - - src._private.edges.push(edge); - tgt._private.edges.push(edge); - - edge._private.source = src; - edge._private.target = tgt; - } // if is edge - - // create mock ids / indexes maps for element so it can be used like collections - _private.map = new Map(); - _private.map.set(id, { ele: _ele, index: 0 }); - - _private.removed = false; - cy.addToPool(_ele); - } // for each element - - // do compound node sanity checks - for (var _i3 = 0; _i3 < nodes.length; _i3++) { - // each node - var node = nodes[_i3]; - var _data = node._private.data; - - if (is.number(_data.parent)) { - // then automake string - _data.parent = '' + _data.parent; - } - - var parentId = _data.parent; - - var specifiedParent = parentId != null; - - if (specifiedParent) { - var parent = cy.getElementById(parentId); - - if (parent.empty()) { - // non-existant parent; just remove it - _data.parent = undefined; - } else { - var selfAsParent = false; - var ancestor = parent; - while (!ancestor.empty()) { - if (node.same(ancestor)) { - // mark self as parent and remove from data - selfAsParent = true; - _data.parent = undefined; // remove parent reference - - // exit or we loop forever - break; - } - - ancestor = ancestor.parent(); - } - - if (!selfAsParent) { - // connect with children - parent[0]._private.children.push(node); - node._private.parent = parent[0]; - - // let the core know we have a compound graph - cy_p.hasCompoundNodes = true; - } - } // else - } // if specified parent - } // for each node - - if (elements.length > 0) { - var restored = new Collection(cy, elements); - - for (var _i4 = 0; _i4 < restored.length; _i4++) { - var _ele2 = restored[_i4]; - - if (_ele2.isNode()) { - continue; - } - - // adding an edge invalidates the traversal caches for the parallel edges - _ele2.parallelEdges().clearTraversalCache(); - - // adding an edge invalidates the traversal cache for the connected nodes - _ele2.source().clearTraversalCache(); - _ele2.target().clearTraversalCache(); - } - - var toUpdateStyle = void 0; - - if (cy_p.hasCompoundNodes) { - toUpdateStyle = cy.collection().merge(restored).merge(restored.connectedNodes()).merge(restored.parent()); - } else { - toUpdateStyle = restored; - } - - toUpdateStyle.dirtyCompoundBoundsCache().updateStyle(notifyRenderer); - - if (notifyRenderer) { - restored.emitAndNotify('add'); - } else { - restored.emit('add'); - } - } - - return self; // chainability -}; - -elesfn.removed = function () { - var ele = this[0]; - return ele && ele._private.removed; -}; - -elesfn.inside = function () { - var ele = this[0]; - return ele && !ele._private.removed; -}; - -elesfn.remove = function (notifyRenderer) { - var self = this; - var removed = []; - var elesToRemove = []; - var elesToRemoveIds = {}; - var cy = self._private.cy; - - if (notifyRenderer === undefined) { - notifyRenderer = true; - } - - // add connected edges - function addConnectedEdges(node) { - var edges = node._private.edges; - for (var i = 0; i < edges.length; i++) { - add(edges[i]); - } - } - - // add descendant nodes - function addChildren(node) { - var children = node._private.children; - - for (var i = 0; i < children.length; i++) { - add(children[i]); - } - } - - function add(ele) { - var alreadyAdded = elesToRemoveIds[ele.id()]; - if (alreadyAdded) { - return; - } else { - elesToRemoveIds[ele.id()] = true; - } - - if (ele.isNode()) { - elesToRemove.push(ele); // nodes are removed last - - addConnectedEdges(ele); - addChildren(ele); - } else { - elesToRemove.unshift(ele); // edges are removed first - } - } - - // make the list of elements to remove - // (may be removing more than specified due to connected edges etc) - - for (var i = 0, l = self.length; i < l; i++) { - var ele = self[i]; - - add(ele); - } - - function removeEdgeRef(node, edge) { - var connectedEdges = node._private.edges; - - util.removeFromArray(connectedEdges, edge); - - // removing an edges invalidates the traversal cache for its nodes - node.clearTraversalCache(); - } - - function removeParallelRefs(edge) { - // removing an edge invalidates the traversal caches for the parallel edges - edge.parallelEdges().clearTraversalCache(); - } - - var alteredParents = []; - alteredParents.ids = {}; - - function removeChildRef(parent, ele) { - ele = ele[0]; - parent = parent[0]; - - var children = parent._private.children; - var pid = parent.id(); - - util.removeFromArray(children, ele); - - if (!alteredParents.ids[pid]) { - alteredParents.ids[pid] = true; - alteredParents.push(parent); - } - } - - self.dirtyCompoundBoundsCache(); - - cy.removeFromPool(elesToRemove); // remove from core pool - - for (var _i5 = 0; _i5 < elesToRemove.length; _i5++) { - var _ele3 = elesToRemove[_i5]; - - // mark as removed - _ele3._private.removed = true; - - // add to list of removed elements - removed.push(_ele3); - - if (_ele3.isEdge()) { - // remove references to this edge in its connected nodes - var src = _ele3.source()[0]; - var tgt = _ele3.target()[0]; - - removeEdgeRef(src, _ele3); - removeEdgeRef(tgt, _ele3); - removeParallelRefs(_ele3); - } else { - // remove reference to parent - var parent = _ele3.parent(); - - if (parent.length !== 0) { - removeChildRef(parent, _ele3); - } - } - } - - // check to see if we have a compound graph or not - var elesStillInside = cy._private.elements; - cy._private.hasCompoundNodes = false; - for (var _i6 = 0; _i6 < elesStillInside.length; _i6++) { - var _ele4 = elesStillInside[_i6]; - - if (_ele4.isParent()) { - cy._private.hasCompoundNodes = true; - break; - } - } - - var removedElements = new Collection(this.cy(), removed); - if (removedElements.size() > 0) { - // must manually notify since trigger won't do this automatically once removed - - if (notifyRenderer) { - this.cy().notify({ - type: 'remove', - eles: removedElements - }); - } - - removedElements.emit('remove'); - } - - // the parents who were modified by the removal need their style updated - for (var _i7 = 0; _i7 < alteredParents.length; _i7++) { - var _ele5 = alteredParents[_i7]; - - if (!_ele5.removed()) { - _ele5.updateStyle(); - } - } - - return new Collection(cy, removed); -}; - -elesfn.move = function (struct) { - var cy = this._private.cy; - - if (struct.source !== undefined || struct.target !== undefined) { - var srcId = struct.source; - var tgtId = struct.target; - var srcExists = cy.hasElementWithId(srcId); - var tgtExists = cy.hasElementWithId(tgtId); - - if (srcExists || tgtExists) { - var jsons = this.jsons(); - - this.remove(); - - for (var i = 0; i < jsons.length; i++) { - var json = jsons[i]; - var ele = this[i]; - - if (json.group === 'edges') { - if (srcExists) { - json.data.source = srcId; - } - - if (tgtExists) { - json.data.target = tgtId; - } - - json.scratch = ele._private.scratch; - } - } - - return cy.add(jsons); - } - } else if (struct.parent !== undefined) { - // move node to new parent - var parentId = struct.parent; - var parentExists = parentId === null || cy.hasElementWithId(parentId); - - if (parentExists) { - var _jsons = this.jsons(); - var descs = this.descendants(); - var descsEtcJsons = descs.union(descs.union(this).connectedEdges()).jsons(); - - this.remove(); // NB: also removes descendants and their connected edges - - for (var _i8 = 0; _i8 < _jsons.length; _i8++) { - var _json = _jsons[_i8]; - var _ele6 = this[_i8]; - - if (_json.group === 'nodes') { - _json.data.parent = parentId === null ? undefined : parentId; - - _json.scratch = _ele6._private.scratch; - } - } - - return cy.add(_jsons.concat(descsEtcJsons)); - } - } - - return this; // if nothing done -}; - -[__webpack_require__(33), __webpack_require__(37), __webpack_require__(38), __webpack_require__(39), __webpack_require__(40), __webpack_require__(41), __webpack_require__(42), __webpack_require__(45), __webpack_require__(48), __webpack_require__(49), __webpack_require__(50), __webpack_require__(7), __webpack_require__(51), __webpack_require__(52), __webpack_require__(53), __webpack_require__(54), __webpack_require__(55)].forEach(function (props) { - util.extend(elesfn, props); -}); - -module.exports = Collection; - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = __webpack_require__(137); - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -/* global Set */ - -var undef = true ? 'undefined' : _typeof(undefined); - -var ObjectSet = function () { - function ObjectSet(arrayOrObjectSet) { - _classCallCheck(this, ObjectSet); - - this._obj = Object.create(null); - - if (arrayOrObjectSet != null) { - var arr = void 0; - - if (arrayOrObjectSet.instanceString != null && arrayOrObjectSet.instanceString() === this.instanceString()) { - arr = arrayOrObjectSet.toArray(); - } else { - arr = arrayOrObjectSet; - } - - for (var i = 0; i < arr.length; i++) { - this.add(arr[i]); - } - } - } - - _createClass(ObjectSet, [{ - key: 'instanceString', - value: function instanceString() { - return 'set'; - } - }, { - key: 'add', - value: function add(val) { - this._obj[val] = 1; - } - }, { - key: 'delete', - value: function _delete(val) { - this._obj[val] = 0; - } - }, { - key: 'clear', - value: function clear() { - this._obj = Object.create(null); - } - }, { - key: 'has', - value: function has(val) { - return this._obj[val] === 1; - } - }, { - key: 'toArray', - value: function toArray() { - var _this = this; - - return Object.keys(this._obj).filter(function (key) { - return _this.has(key); - }); - } - }, { - key: 'forEach', - value: function forEach(callback, thisArg) { - return this.toArray().forEach(callback, thisArg); - } - }, { - key: 'size', - get: function get() { - return this.toArray().length; - } - }]); - - return ObjectSet; -}(); - -// TODO use the stdlib Set in future... -// module.exports = typeof Set !== undef ? Set : ObjectSet; - - -module.exports = ObjectSet; - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var is = __webpack_require__(0); -var Event = __webpack_require__(15); - -var eventRegex = /^([^.]+)(\.(?:[^.]+))?$/; // regex for matching event strings (e.g. "click.namespace") -var universalNamespace = '.*'; // matches as if no namespace specified and prevents users from unbinding accidentally - -var defaults = { - qualifierCompare: function qualifierCompare(q1, q2) { - return q1 === q2; - }, - eventMatches: function eventMatches() /*context, listener, eventObj*/{ - return true; - }, - eventFields: function eventFields() /*context*/{ - return {}; - }, - callbackContext: function callbackContext(context /*, listener, eventObj*/) { - return context; - }, - beforeEmit: function beforeEmit() /* context, listener, eventObj */{}, - afterEmit: function afterEmit() /* context, listener, eventObj */{}, - bubble: function bubble() /*context*/{ - return false; - }, - parent: function parent() /*context*/{ - return null; - }, - context: undefined -}; - -function Emitter(opts) { - util.assign(this, defaults, opts); - - this.listeners = []; - this.emitting = 0; -} - -var p = Emitter.prototype; - -var forEachEvent = function forEachEvent(self, handler, events, qualifier, callback, conf, confOverrides) { - if (is.fn(qualifier)) { - callback = qualifier; - qualifier = null; - } - - if (confOverrides) { - if (conf == null) { - conf = confOverrides; - } else { - conf = util.assign({}, conf, confOverrides); - } - } - - var eventList = events.split(/\s+/); - - for (var i = 0; i < eventList.length; i++) { - var evt = eventList[i]; - - if (is.emptyString(evt)) { - continue; - } - - var match = evt.match(eventRegex); // type[.namespace] - - if (match) { - var type = match[1]; - var namespace = match[2] ? match[2] : null; - var ret = handler(self, evt, type, namespace, qualifier, callback, conf); - - if (ret === false) { - break; - } // allow exiting early - } - } -}; - -var makeEventObj = function makeEventObj(self, obj) { - return new Event(obj.type, util.assign(obj, self.eventFields(self.context))); -}; - -var forEachEventObj = function forEachEventObj(self, handler, events) { - if (is.event(events)) { - handler(self, events); - - return; - } else if (is.plainObject(events)) { - handler(self, makeEventObj(self, events)); - - return; - } - - var eventList = events.split(/\s+/); - - for (var i = 0; i < eventList.length; i++) { - var evt = eventList[i]; - - if (is.emptyString(evt)) { - continue; - } - - var match = evt.match(eventRegex); // type[.namespace] - - if (match) { - var type = match[1]; - var namespace = match[2] ? match[2] : null; - var eventObj = makeEventObj(self, { - type: type, - namespace: namespace, - target: self.context - }); - - handler(self, eventObj); - } - } -}; - -p.on = p.addListener = function (events, qualifier, callback, conf, confOverrides) { - forEachEvent(this, function (self, event, type, namespace, qualifier, callback, conf) { - if (is.fn(callback)) { - self.listeners.push({ - event: event, // full event string - callback: callback, // callback to run - type: type, // the event type (e.g. 'click') - namespace: namespace, // the event namespace (e.g. ".foo") - qualifier: qualifier, // a restriction on whether to match this emitter - conf: conf // additional configuration - }); - } - }, events, qualifier, callback, conf, confOverrides); - - return this; -}; - -p.one = function (events, qualifier, callback, conf) { - return this.on(events, qualifier, callback, conf, { one: true }); -}; - -p.removeListener = p.off = function (events, qualifier, callback, conf) { - var _this = this; - - if (this.emitting !== 0) { - this.listeners = util.copyArray(this.listeners); - } - - var listeners = this.listeners; - - var _loop = function _loop(i) { - var listener = listeners[i]; - - forEachEvent(_this, function (self, event, type, namespace, qualifier, callback /*, conf*/) { - if (listener.type === type && (!namespace || listener.namespace === namespace) && (!qualifier || self.qualifierCompare(listener.qualifier, qualifier)) && (!callback || listener.callback === callback)) { - listeners.splice(i, 1); - - return false; - } - }, events, qualifier, callback, conf); - }; - - for (var i = listeners.length - 1; i >= 0; i--) { - _loop(i); - } - - return this; -}; - -p.emit = p.trigger = function (events, extraParams, manualCallback) { - var listeners = this.listeners; - var numListenersBeforeEmit = listeners.length; - - this.emitting++; - - if (!is.array(extraParams)) { - extraParams = [extraParams]; - } - - forEachEventObj(this, function (self, eventObj) { - if (manualCallback != null) { - listeners = [{ - event: eventObj.event, - type: eventObj.type, - namespace: eventObj.namespace, - callback: manualCallback - }]; - - numListenersBeforeEmit = listeners.length; - } - - var _loop2 = function _loop2(i) { - var listener = listeners[i]; - - if (listener.type === eventObj.type && (!listener.namespace || listener.namespace === eventObj.namespace || listener.namespace === universalNamespace) && self.eventMatches(self.context, listener, eventObj)) { - var args = [eventObj]; - - if (extraParams != null) { - util.push(args, extraParams); - } - - self.beforeEmit(self.context, listener, eventObj); - - if (listener.conf && listener.conf.one) { - self.listeners = self.listeners.filter(function (l) { - return l !== listener; - }); - } - - var context = self.callbackContext(self.context, listener, eventObj); - var ret = listener.callback.apply(context, args); - - self.afterEmit(self.context, listener, eventObj); - - if (ret === false) { - eventObj.stopPropagation(); - eventObj.preventDefault(); - } - } // if listener matches - }; - - for (var i = 0; i < numListenersBeforeEmit; i++) { - _loop2(i); - } // for listener - - if (self.bubble(self.context) && !eventObj.isPropagationStopped()) { - self.parent(self.context).emit(eventObj, extraParams); - } - }, events); - - this.emitting--; - - return this; -}; - -module.exports = Emitter; - -/***/ }), -/* 11 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -// storage for parsed queries -var newQuery = function newQuery() { - return { - classes: [], - colonSelectors: [], - data: [], - group: null, - ids: [], - meta: [], - - // fake selectors - collection: null, // a collection to match against - filter: null, // filter function - - // these are defined in the upward direction rather than down (e.g. child) - // because we need to go up in Selector.filter() - parent: null, // parent query obj - ancestor: null, // ancestor query obj - subject: null, // defines subject in compound query (subject query obj; points to self if subject) - - // use these only when subject has been defined - child: null, - descendant: null - }; -}; - -module.exports = newQuery; - -/***/ }), -/* 12 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var window = __webpack_require__(4); -var util = __webpack_require__(1); -var Collection = __webpack_require__(7); -var is = __webpack_require__(0); -var Promise = __webpack_require__(5); -var define = __webpack_require__(3); - -var Core = function Core(opts) { - var cy = this; - - opts = util.extend({}, opts); - - var container = opts.container; - - // allow for passing a wrapped jquery object - // e.g. cytoscape({ container: $('#cy') }) - if (container && !is.htmlElement(container) && is.htmlElement(container[0])) { - container = container[0]; - } - - var reg = container ? container._cyreg : null; // e.g. already registered some info (e.g. readies) via jquery - reg = reg || {}; - - if (reg && reg.cy) { - reg.cy.destroy(); - - reg = {}; // old instance => replace reg completely - } - - var readies = reg.readies = reg.readies || []; - - if (container) { - container._cyreg = reg; - } // make sure container assoc'd reg points to this cy - reg.cy = cy; - - var head = window !== undefined && container !== undefined && !opts.headless; - var options = opts; - options.layout = util.extend({ name: head ? 'grid' : 'null' }, options.layout); - options.renderer = util.extend({ name: head ? 'canvas' : 'null' }, options.renderer); - - var defVal = function defVal(def, val, altVal) { - if (val !== undefined) { - return val; - } else if (altVal !== undefined) { - return altVal; - } else { - return def; - } - }; - - var _p = this._private = { - container: container, // html dom ele container - ready: false, // whether ready has been triggered - options: options, // cached options - elements: new Collection(this), // elements in the graph - listeners: [], // list of listeners - aniEles: new Collection(this), // elements being animated - scratch: {}, // scratch object for core - layout: null, - renderer: null, - destroyed: false, // whether destroy was called - notificationsEnabled: true, // whether notifications are sent to the renderer - minZoom: 1e-50, - maxZoom: 1e50, - zoomingEnabled: defVal(true, options.zoomingEnabled), - userZoomingEnabled: defVal(true, options.userZoomingEnabled), - panningEnabled: defVal(true, options.panningEnabled), - userPanningEnabled: defVal(true, options.userPanningEnabled), - boxSelectionEnabled: defVal(true, options.boxSelectionEnabled), - autolock: defVal(false, options.autolock, options.autolockNodes), - autoungrabify: defVal(false, options.autoungrabify, options.autoungrabifyNodes), - autounselectify: defVal(false, options.autounselectify), - styleEnabled: options.styleEnabled === undefined ? head : options.styleEnabled, - zoom: is.number(options.zoom) ? options.zoom : 1, - pan: { - x: is.plainObject(options.pan) && is.number(options.pan.x) ? options.pan.x : 0, - y: is.plainObject(options.pan) && is.number(options.pan.y) ? options.pan.y : 0 - }, - animation: { // object for currently-running animations - current: [], - queue: [] - }, - hasCompoundNodes: false - }; - - this.createEmitter(); - - // set selection type - var selType = options.selectionType; - if (selType === undefined || selType !== 'additive' && selType !== 'single') { - // then set default - - _p.selectionType = 'single'; - } else { - _p.selectionType = selType; - } - - // init zoom bounds - if (is.number(options.minZoom) && is.number(options.maxZoom) && options.minZoom < options.maxZoom) { - _p.minZoom = options.minZoom; - _p.maxZoom = options.maxZoom; - } else if (is.number(options.minZoom) && options.maxZoom === undefined) { - _p.minZoom = options.minZoom; - } else if (is.number(options.maxZoom) && options.minZoom === undefined) { - _p.maxZoom = options.maxZoom; - } - - var loadExtData = function loadExtData(extData, next) { - var anyIsPromise = extData.some(is.promise); - - if (anyIsPromise) { - return Promise.all(extData).then(next); // load all data asynchronously, then exec rest of init - } else { - next(extData); // exec synchronously for convenience - } - }; - - // start with the default stylesheet so we have something before loading an external stylesheet - if (_p.styleEnabled) { - cy.setStyle([]); - } - - // create the renderer - cy.initRenderer(util.extend({ - hideEdgesOnViewport: options.hideEdgesOnViewport, - textureOnViewport: options.textureOnViewport, - wheelSensitivity: is.number(options.wheelSensitivity) && options.wheelSensitivity > 0 ? options.wheelSensitivity : 1, - motionBlur: options.motionBlur === undefined ? false : options.motionBlur, // off by default - motionBlurOpacity: options.motionBlurOpacity === undefined ? 0.05 : options.motionBlurOpacity, - pixelRatio: is.number(options.pixelRatio) && options.pixelRatio > 0 ? options.pixelRatio : undefined, - desktopTapThreshold: options.desktopTapThreshold === undefined ? 4 : options.desktopTapThreshold, - touchTapThreshold: options.touchTapThreshold === undefined ? 8 : options.touchTapThreshold - }, options.renderer)); - - var setElesAndLayout = function setElesAndLayout(elements, onload, ondone) { - cy.notifications(false); - - // remove old elements - var oldEles = cy.mutableElements(); - if (oldEles.length > 0) { - oldEles.remove(); - } - - if (elements != null) { - if (is.plainObject(elements) || is.array(elements)) { - cy.add(elements); - } - } - - cy.one('layoutready', function (e) { - cy.notifications(true); - cy.emit(e); // we missed this event by turning notifications off, so pass it on - - cy.notify({ - type: 'load', - eles: cy.mutableElements() - }); - - cy.one('load', onload); - cy.emit('load'); - }).one('layoutstop', function () { - cy.one('done', ondone); - cy.emit('done'); - }); - - var layoutOpts = util.extend({}, cy._private.options.layout); - layoutOpts.eles = cy.elements(); - - cy.layout(layoutOpts).run(); - }; - - loadExtData([options.style, options.elements], function (thens) { - var initStyle = thens[0]; - var initEles = thens[1]; - - // init style - if (_p.styleEnabled) { - cy.style().append(initStyle); - } - - // initial load - setElesAndLayout(initEles, function () { - // onready - cy.startAnimationLoop(); - _p.ready = true; - - // if a ready callback is specified as an option, the bind it - if (is.fn(options.ready)) { - cy.on('ready', options.ready); - } - - // bind all the ready handlers registered before creating this instance - for (var i = 0; i < readies.length; i++) { - var fn = readies[i]; - cy.on('ready', fn); - } - if (reg) { - reg.readies = []; - } // clear b/c we've bound them all and don't want to keep it around in case a new core uses the same div etc - - cy.emit('ready'); - }, options.done); - }); -}; - -var corefn = Core.prototype; // short alias - -util.extend(corefn, { - instanceString: function instanceString() { - return 'core'; - }, - - isReady: function isReady() { - return this._private.ready; - }, - - isDestroyed: function isDestroyed() { - return this._private.destroyed; - }, - - ready: function ready(fn) { - if (this.isReady()) { - this.emitter().emit('ready', [], fn); // just calls fn as though triggered via ready event - } else { - this.on('ready', fn); - } - - return this; - }, - - destroy: function destroy() { - var cy = this; - if (cy.isDestroyed()) return; - - cy.stopAnimationLoop(); - - cy.destroyRenderer(); - - this.emit('destroy'); - - cy._private.destroyed = true; - - return cy; - }, - - hasElementWithId: function hasElementWithId(id) { - return this._private.elements.hasElementWithId(id); - }, - - getElementById: function getElementById(id) { - return this._private.elements.getElementById(id); - }, - - selectionType: function selectionType() { - return this._private.selectionType; - }, - - hasCompoundNodes: function hasCompoundNodes() { - return this._private.hasCompoundNodes; - }, - - headless: function headless() { - return this._private.options.renderer.name === 'null'; - }, - - styleEnabled: function styleEnabled() { - return this._private.styleEnabled; - }, - - addToPool: function addToPool(eles) { - this._private.elements.merge(eles); - - return this; // chaining - }, - - removeFromPool: function removeFromPool(eles) { - this._private.elements.unmerge(eles); - - return this; - }, - - container: function container() { - return this._private.container; - }, - - options: function options() { - return util.copy(this._private.options); - }, - - json: function json(obj) { - var cy = this; - var _p = cy._private; - var eles = cy.mutableElements(); - - if (is.plainObject(obj)) { - // set - - cy.startBatch(); - - if (obj.elements) { - var idInJson = {}; - - var updateEles = function updateEles(jsons, gr) { - for (var i = 0; i < jsons.length; i++) { - var json = jsons[i]; - var id = json.data.id; - var ele = cy.getElementById(id); - - idInJson[id] = true; - - if (ele.length !== 0) { - // existing element should be updated - ele.json(json); - } else { - // otherwise should be added - if (gr) { - cy.add(util.extend({ group: gr }, json)); - } else { - cy.add(json); - } - } - } - }; - - if (is.array(obj.elements)) { - // elements: [] - updateEles(obj.elements); - } else { - // elements: { nodes: [], edges: [] } - var grs = ['nodes', 'edges']; - for (var i = 0; i < grs.length; i++) { - var gr = grs[i]; - var elements = obj.elements[gr]; - - if (is.array(elements)) { - updateEles(elements, gr); - } - } - } - - // elements not specified in json should be removed - eles.stdFilter(function (ele) { - return !idInJson[ele.id()]; - }).remove(); - } - - if (obj.style) { - cy.style(obj.style); - } - - if (obj.zoom != null && obj.zoom !== _p.zoom) { - cy.zoom(obj.zoom); - } - - if (obj.pan) { - if (obj.pan.x !== _p.pan.x || obj.pan.y !== _p.pan.y) { - cy.pan(obj.pan); - } - } - - var fields = ['minZoom', 'maxZoom', 'zoomingEnabled', 'userZoomingEnabled', 'panningEnabled', 'userPanningEnabled', 'boxSelectionEnabled', 'autolock', 'autoungrabify', 'autounselectify']; - - for (var _i = 0; _i < fields.length; _i++) { - var f = fields[_i]; - - if (obj[f] != null) { - cy[f](obj[f]); - } - } - - cy.endBatch(); - - return this; // chaining - } else if (obj === undefined) { - // get - var json = {}; - - json.elements = {}; - eles.forEach(function (ele) { - var group = ele.group(); - - if (!json.elements[group]) { - json.elements[group] = []; - } - - json.elements[group].push(ele.json()); - }); - - if (this._private.styleEnabled) { - json.style = cy.style().json(); - } - - json.zoomingEnabled = cy._private.zoomingEnabled; - json.userZoomingEnabled = cy._private.userZoomingEnabled; - json.zoom = cy._private.zoom; - json.minZoom = cy._private.minZoom; - json.maxZoom = cy._private.maxZoom; - json.panningEnabled = cy._private.panningEnabled; - json.userPanningEnabled = cy._private.userPanningEnabled; - json.pan = util.copy(cy._private.pan); - json.boxSelectionEnabled = cy._private.boxSelectionEnabled; - json.renderer = util.copy(cy._private.options.renderer); - json.hideEdgesOnViewport = cy._private.options.hideEdgesOnViewport; - json.textureOnViewport = cy._private.options.textureOnViewport; - json.wheelSensitivity = cy._private.options.wheelSensitivity; - json.motionBlur = cy._private.options.motionBlur; - - return json; - } - }, - - scratch: define.data({ - field: 'scratch', - bindingEvent: 'scratch', - allowBinding: true, - allowSetting: true, - settingEvent: 'scratch', - settingTriggersEvent: true, - triggerFnName: 'trigger', - allowGetting: true - }), - - removeScratch: define.removeData({ - field: 'scratch', - event: 'scratch', - triggerFnName: 'trigger', - triggerEvent: true - }) - -}); - -corefn.$id = corefn.getElementById; - -[__webpack_require__(56), __webpack_require__(60), __webpack_require__(65), __webpack_require__(66), __webpack_require__(67), __webpack_require__(68), __webpack_require__(69), __webpack_require__(70), __webpack_require__(71), __webpack_require__(72)].forEach(function (props) { - util.extend(corefn, props); -}); - -module.exports = Core; - -/***/ }), -/* 13 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var is = __webpack_require__(0); -var Set = __webpack_require__(9); - -// represents a node or an edge -var Element = function Element(cy, params, restore) { - restore = restore === undefined || restore ? true : false; - - if (cy === undefined || params === undefined || !is.core(cy)) { - util.error('An element must have a core reference and parameters set'); - return; - } - - var group = params.group; - - // try to automatically infer the group if unspecified - if (group == null) { - if (params.data && params.data.source != null && params.data.target != null) { - group = 'edges'; - } else { - group = 'nodes'; - } - } - - // validate group - if (group !== 'nodes' && group !== 'edges') { - util.error('An element must be of type `nodes` or `edges`; you specified `' + group + '`'); - return; - } - - // make the element array-like, just like a collection - this.length = 1; - this[0] = this; - - // NOTE: when something is added here, add also to ele.json() - var _p = this._private = { - cy: cy, - single: true, // indicates this is an element - data: params.data || {}, // data object - position: params.position || {}, // (x, y) position pair - autoWidth: undefined, // width and height of nodes calculated by the renderer when set to special 'auto' value - autoHeight: undefined, - autoPadding: undefined, - compoundBoundsClean: false, // whether the compound dimensions need to be recalculated the next time dimensions are read - listeners: [], // array of bound listeners - group: group, // string; 'nodes' or 'edges' - style: {}, // properties as set by the style - rstyle: {}, // properties for style sent from the renderer to the core - styleCxts: [], // applied style contexts from the styler - removed: true, // whether it's inside the vis; true if removed (set true here since we call restore) - selected: params.selected ? true : false, // whether it's selected - selectable: params.selectable === undefined ? true : params.selectable ? true : false, // whether it's selectable - locked: params.locked ? true : false, // whether the element is locked (cannot be moved) - grabbed: false, // whether the element is grabbed by the mouse; renderer sets this privately - grabbable: params.grabbable === undefined ? true : params.grabbable ? true : false, // whether the element can be grabbed - active: false, // whether the element is active from user interaction - classes: new Set(), // map ( className => true ) - animation: { // object for currently-running animations - current: [], - queue: [] - }, - rscratch: {}, // object in which the renderer can store information - scratch: params.scratch || {}, // scratch objects - edges: [], // array of connected edges - children: [], // array of children - parent: null, // parent ref - traversalCache: {}, // cache of output of traversal functions - backgrounding: false // whether background images are loading - }; - - // renderedPosition overrides if specified - if (params.renderedPosition) { - var rpos = params.renderedPosition; - var pan = cy.pan(); - var zoom = cy.zoom(); - - _p.position = { - x: (rpos.x - pan.x) / zoom, - y: (rpos.y - pan.y) / zoom - }; - } - - if (is.string(params.classes)) { - var classes = params.classes.split(/\s+/); - for (var i = 0, l = classes.length; i < l; i++) { - var cls = classes[i]; - if (!cls || cls === '') { - continue; - } - - _p.classes.add(cls); - } - } - - if (params.style || params.css) { - cy.style().applyBypass(this, params.style || params.css); - } - - this.createEmitter(); - - if (restore === undefined || restore) { - this.restore(); - } -}; - -module.exports = Element; - -/***/ }), -/* 14 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/** - * Elements are drawn in a specific order based on compound depth (low to high), the element type (nodes above edges), - * and z-index (low to high). These styles affect how this applies: - * - * z-compound-depth: May be `bottom | orphan | auto | top`. The first drawn is `bottom`, then `orphan` which is the - * same depth as the root of the compound graph, followed by the default value `auto` which draws in order from - * root to leaves of the compound graph. The last drawn is `top`. - * z-index-compare: May be `auto | manual`. The default value is `auto` which always draws edges under nodes. - * `manual` ignores this convention and draws based on the `z-index` value setting. - * z-index: An integer value that affects the relative draw order of elements. In general, an element with a higher - * `z-index` will be drawn on top of an element with a lower `z-index`. - */ -var util = __webpack_require__(1); - -var zIndexSort = function zIndexSort(a, b) { - var cy = a.cy(); - var hasCompoundNodes = cy.hasCompoundNodes(); - - function getDepth(ele) { - var style = ele.pstyle('z-compound-depth'); - if (style.value === 'auto') { - return hasCompoundNodes ? ele.zDepth() : 0; - } else if (style.value === 'bottom') { - return -1; - } else if (style.value === 'top') { - return util.MAX_INT; - } - // 'orphan' - return 0; - } - var depthDiff = getDepth(a) - getDepth(b); - if (depthDiff !== 0) { - return depthDiff; - } - - function getEleDepth(ele) { - var style = ele.pstyle('z-index-compare'); - if (style.value === 'auto') { - return ele.isNode() ? 1 : 0; - } - // 'manual' - return 0; - } - var eleDiff = getEleDepth(a) - getEleDepth(b); - if (eleDiff !== 0) { - return eleDiff; - } - - var zDiff = a.pstyle('z-index').value - b.pstyle('z-index').value; - if (zDiff !== 0) { - return zDiff; - } - // compare indices in the core (order added to graph w/ last on top) - return a.poolIndex() - b.poolIndex(); -}; - -module.exports = zIndexSort; - -/***/ }), -/* 15 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/*! -Event object based on jQuery events, MIT license - -https://jquery.org/license/ -https://tldrlegal.com/license/mit-license -https://github.com/jquery/jquery/blob/master/src/event.js -*/ - -var Event = function Event(src, props) { - this.recycle(src, props); -}; - -function returnFalse() { - return false; -} - -function returnTrue() { - return true; -} - -// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -Event.prototype = { - instanceString: function instanceString() { - return 'event'; - }, - - recycle: function recycle(src, props) { - this.isImmediatePropagationStopped = this.isPropagationStopped = this.isDefaultPrevented = returnFalse; - - if (src != null && src.preventDefault) { - // Browser Event object - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented ? returnTrue : returnFalse; - } else if (src != null && src.type) { - // Plain object containing all event details - props = src; - } else { - // Event string - this.type = src; - } - - // Put explicitly provided properties onto the event object - if (props != null) { - // more efficient to manually copy fields we use - this.originalEvent = props.originalEvent; - this.type = props.type != null ? props.type : this.type; - this.cy = props.cy; - this.target = props.target; - this.position = props.position; - this.renderedPosition = props.renderedPosition; - this.namespace = props.namespace; - this.layout = props.layout; - } - - if (this.cy != null && this.position != null && this.renderedPosition == null) { - // create a rendered position based on the passed position - var pos = this.position; - var zoom = this.cy.zoom(); - var pan = this.cy.pan(); - - this.renderedPosition = { - x: pos.x * zoom + pan.x, - y: pos.y * zoom + pan.y - }; - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || Date.now(); - }, - - preventDefault: function preventDefault() { - this.isDefaultPrevented = returnTrue; - - var e = this.originalEvent; - if (!e) { - return; - } - - // if preventDefault exists run it on the original event - if (e.preventDefault) { - e.preventDefault(); - } - }, - - stopPropagation: function stopPropagation() { - this.isPropagationStopped = returnTrue; - - var e = this.originalEvent; - if (!e) { - return; - } - - // if stopPropagation exists run it on the original event - if (e.stopPropagation) { - e.stopPropagation(); - } - }, - - stopImmediatePropagation: function stopImmediatePropagation() { - this.isImmediatePropagationStopped = returnTrue; - this.stopPropagation(); - }, - - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse -}; - -module.exports = Event; - -/***/ }), -/* 16 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); - -var fullFpsTime = 1000 / 60; // assume 60 frames per second - -module.exports = { - setupDequeueing: function setupDequeueing(opts) { - return function setupDequeueingImpl() { - var self = this; - var r = this.renderer; - - if (self.dequeueingSetup) { - return; - } else { - self.dequeueingSetup = true; - } - - var queueRedraw = util.debounce(function () { - r.redrawHint('eles', true); - r.redrawHint('drag', true); - - r.redraw(); - }, opts.deqRedrawThreshold); - - var dequeue = function dequeue(willDraw, frameStartTime) { - var startTime = util.performanceNow(); - var avgRenderTime = r.averageRedrawTime; - var renderTime = r.lastRedrawTime; - var deqd = []; - var extent = r.cy.extent(); - var pixelRatio = r.getPixelRatio(); - - while (true) { - var now = util.performanceNow(); - var duration = now - startTime; - var frameDuration = now - frameStartTime; - - if (renderTime < fullFpsTime) { - // if we're rendering faster than the ideal fps, then do dequeueing - // during all of the remaining frame time - - var timeAvailable = fullFpsTime - (willDraw ? avgRenderTime : 0); - - if (frameDuration >= opts.deqFastCost * timeAvailable) { - break; - } - } else { - if (willDraw) { - if (duration >= opts.deqCost * renderTime || duration >= opts.deqAvgCost * avgRenderTime) { - break; - } - } else if (frameDuration >= opts.deqNoDrawCost * fullFpsTime) { - break; - } - } - - var thisDeqd = opts.deq(self, pixelRatio, extent); - - if (thisDeqd.length > 0) { - for (var i = 0; i < thisDeqd.length; i++) { - deqd.push(thisDeqd[i]); - } - } else { - break; - } - } - - // callbacks on dequeue - if (deqd.length > 0) { - opts.onDeqd(self, deqd); - - if (!willDraw && opts.shouldRedraw(self, deqd, pixelRatio, extent)) { - queueRedraw(); - } - } - }; - - var priority = opts.priority || util.noop; - - r.beforeRender(dequeue, priority(self)); - }; - } -}; - -/***/ }), -/* 17 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); - -var stateSelectors = [{ - selector: ':selected', - matches: function matches(ele) { - return ele.selected(); - } -}, { - selector: ':unselected', - matches: function matches(ele) { - return !ele.selected(); - } -}, { - selector: ':selectable', - matches: function matches(ele) { - return ele.selectable(); - } -}, { - selector: ':unselectable', - matches: function matches(ele) { - return !ele.selectable(); - } -}, { - selector: ':locked', - matches: function matches(ele) { - return ele.locked(); - } -}, { - selector: ':unlocked', - matches: function matches(ele) { - return !ele.locked(); - } -}, { - selector: ':visible', - matches: function matches(ele) { - return ele.visible(); - } -}, { - selector: ':hidden', - matches: function matches(ele) { - return !ele.visible(); - } -}, { - selector: ':transparent', - matches: function matches(ele) { - return ele.transparent(); - } -}, { - selector: ':grabbed', - matches: function matches(ele) { - return ele.grabbed(); - } -}, { - selector: ':free', - matches: function matches(ele) { - return !ele.grabbed(); - } -}, { - selector: ':removed', - matches: function matches(ele) { - return ele.removed(); - } -}, { - selector: ':inside', - matches: function matches(ele) { - return !ele.removed(); - } -}, { - selector: ':grabbable', - matches: function matches(ele) { - return ele.grabbable(); - } -}, { - selector: ':ungrabbable', - matches: function matches(ele) { - return !ele.grabbable(); - } -}, { - selector: ':animated', - matches: function matches(ele) { - return ele.animated(); - } -}, { - selector: ':unanimated', - matches: function matches(ele) { - return !ele.animated(); - } -}, { - selector: ':parent', - matches: function matches(ele) { - return ele.isParent(); - } -}, { - selector: ':childless', - matches: function matches(ele) { - return ele.isChildless(); - } -}, { - selector: ':child', - matches: function matches(ele) { - return ele.isChild(); - } -}, { - selector: ':orphan', - matches: function matches(ele) { - return ele.isOrphan(); - } -}, { - selector: ':nonorphan', - matches: function matches(ele) { - return ele.isChild(); - } -}, { - selector: ':loop', - matches: function matches(ele) { - return ele.isLoop(); - } -}, { - selector: ':simple', - matches: function matches(ele) { - return ele.isSimple(); - } -}, { - selector: ':active', - matches: function matches(ele) { - return ele.active(); - } -}, { - selector: ':inactive', - matches: function matches(ele) { - return !ele.active(); - } -}, { - selector: ':backgrounding', - matches: function matches(ele) { - return ele.backgrounding(); - } -}, { - selector: ':nonbackgrounding', - matches: function matches(ele) { - return !ele.backgrounding(); - } -}].sort(function (a, b) { - // n.b. selectors that are starting substrings of others must have the longer ones first - return util.sort.descending(a.selector, b.selector); -}); - -var stateSelectorMatches = function stateSelectorMatches(sel, ele) { - var lookup = stateSelectorMatches.lookup = stateSelectorMatches.lookup || function () { - var selToFn = {}; - var s = void 0; - - for (var i = 0; i < stateSelectors.length; i++) { - s = stateSelectors[i]; - - selToFn[s.selector] = s.matches; - } - - return selToFn; - }(); - - return lookup[sel](ele); -}; - -var stateSelectorRegex = '(' + stateSelectors.map(function (s) { - return s.selector; -}).join('|') + ')'; - -module.exports = { stateSelectors: stateSelectors, stateSelectorMatches: stateSelectorMatches, stateSelectorRegex: stateSelectorRegex }; - -/***/ }), -/* 18 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); -var util = __webpack_require__(1); -var Selector = __webpack_require__(6); - -var Style = function Style(cy) { - - if (!(this instanceof Style)) { - return new Style(cy); - } - - if (!is.core(cy)) { - util.error('A style must have a core reference'); - return; - } - - this._private = { - cy: cy, - coreStyle: {} - }; - - this.length = 0; - - this.resetToDefault(); -}; - -var styfn = Style.prototype; - -styfn.instanceString = function () { - return 'style'; -}; - -// remove all contexts -styfn.clear = function () { - for (var i = 0; i < this.length; i++) { - this[i] = undefined; - } - this.length = 0; - - var _p = this._private; - - _p.newStyle = true; - - return this; // chaining -}; - -styfn.resetToDefault = function () { - this.clear(); - this.addDefaultStylesheet(); - - return this; -}; - -// builds a style object for the 'core' selector -styfn.core = function () { - return this._private.coreStyle; -}; - -// create a new context from the specified selector string and switch to that context -styfn.selector = function (selectorStr) { - // 'core' is a special case and does not need a selector - var selector = selectorStr === 'core' ? null : new Selector(selectorStr); - - var i = this.length++; // new context means new index - this[i] = { - selector: selector, - properties: [], - mappedProperties: [], - index: i - }; - - return this; // chaining -}; - -// add one or many css rules to the current context -styfn.css = function () { - var self = this; - var args = arguments; - - switch (args.length) { - case 1: - var map = args[0]; - - for (var i = 0; i < self.properties.length; i++) { - var prop = self.properties[i]; - var mapVal = map[prop.name]; - - if (mapVal === undefined) { - mapVal = map[util.dash2camel(prop.name)]; - } - - if (mapVal !== undefined) { - this.cssRule(prop.name, mapVal); - } - } - - break; - - case 2: - this.cssRule(args[0], args[1]); - break; - - default: - break; // do nothing if args are invalid - } - - return this; // chaining -}; -styfn.style = styfn.css; - -// add a single css rule to the current context -styfn.cssRule = function (name, value) { - // name-value pair - var property = this.parse(name, value); - - // add property to current context if valid - if (property) { - var i = this.length - 1; - this[i].properties.push(property); - this[i].properties[property.name] = property; // allow access by name as well - - if (property.name.match(/pie-(\d+)-background-size/) && property.value) { - this._private.hasPie = true; - } - - if (property.mapped) { - this[i].mappedProperties.push(property); - } - - // add to core style if necessary - var currentSelectorIsCore = !this[i].selector; - if (currentSelectorIsCore) { - this._private.coreStyle[property.name] = property; - } - } - - return this; // chaining -}; - -styfn.append = function (style) { - if (is.stylesheet(style)) { - style.appendToStyle(this); - } else if (is.array(style)) { - this.appendFromJson(style); - } else if (is.string(style)) { - this.appendFromString(style); - } // you probably wouldn't want to append a Style, since you'd duplicate the default parts - - return this; -}; - -// static function -Style.fromJson = function (cy, json) { - var style = new Style(cy); - - style.fromJson(json); - - return style; -}; - -Style.fromString = function (cy, string) { - return new Style(cy).fromString(string); -}; - -[__webpack_require__(123), __webpack_require__(124), __webpack_require__(125), __webpack_require__(126), __webpack_require__(127), __webpack_require__(130), __webpack_require__(129), __webpack_require__(128)].forEach(function (props) { - util.extend(styfn, props); -}); - -Style.types = styfn.types; -Style.properties = styfn.properties; - -module.exports = Style; - -/***/ }), -/* 19 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = function memoize(fn, keyFn) { - if (!keyFn) { - keyFn = function keyFn() { - if (arguments.length === 1) { - return arguments[0]; - } else if (arguments.length === 0) { - return 'undefined'; - } - - var args = []; - - for (var i = 0; i < arguments.length; i++) { - args.push(arguments[i]); - } - - return args.join('$'); - }; - } - - var memoizedFn = function memoizedFn() { - var self = this; - var args = arguments; - var ret = void 0; - var k = keyFn.apply(self, args); - var cache = memoizedFn.cache; - - if (!(ret = cache[k])) { - ret = cache[k] = fn.apply(self, args); - } - - return ret; - }; - - memoizedFn.cache = {}; - - return memoizedFn; -}; - -/***/ }), -/* 20 */ -/***/ (function(module, exports) { - -var g; - -// This works in non-strict mode -g = (function() { - return this; -})(); - -try { - // This works if eval is allowed (see CSP) - g = g || Function("return this")() || (1,eval)("this"); -} catch(e) { - // This works if the window reference is available - if(typeof window === "object") - g = window; -} - -// g can still be undefined, but nothing to do about it... -// We return undefined, instead of nothing here, so it's -// easier to handle this case. if(!global) { ...} - -module.exports = g; - - -/***/ }), -/* 21 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var define = __webpack_require__(3); -var Collection = __webpack_require__(7); -var Core = __webpack_require__(12); -var incExts = __webpack_require__(76); -var is = __webpack_require__(0); -var Emitter = __webpack_require__(10); - -// registered extensions to cytoscape, indexed by name -var extensions = {}; - -// registered modules for extensions, indexed by name -var modules = {}; - -function setExtension(type, name, registrant) { - - var ext = registrant; - - var overrideErr = function overrideErr(field) { - util.error('Can not register `' + name + '` for `' + type + '` since `' + field + '` already exists in the prototype and can not be overridden'); - }; - - if (type === 'core') { - if (Core.prototype[name]) { - return overrideErr(name); - } else { - Core.prototype[name] = registrant; - } - } else if (type === 'collection') { - if (Collection.prototype[name]) { - return overrideErr(name); - } else { - Collection.prototype[name] = registrant; - } - } else if (type === 'layout') { - // fill in missing layout functions in the prototype - - var Layout = function Layout(options) { - this.options = options; - - registrant.call(this, options); - - // make sure layout has _private for use w/ std apis like .on() - if (!is.plainObject(this._private)) { - this._private = {}; - } - - this._private.cy = options.cy; - this._private.listeners = []; - - this.createEmitter(); - }; - - var layoutProto = Layout.prototype = Object.create(registrant.prototype); - - var optLayoutFns = []; - - for (var i = 0; i < optLayoutFns.length; i++) { - var fnName = optLayoutFns[i]; - - layoutProto[fnName] = layoutProto[fnName] || function () { - return this; - }; - } - - // either .start() or .run() is defined, so autogen the other - if (layoutProto.start && !layoutProto.run) { - layoutProto.run = function () { - this.start();return this; - }; - } else if (!layoutProto.start && layoutProto.run) { - layoutProto.start = function () { - this.run();return this; - }; - } - - var regStop = registrant.prototype.stop; - layoutProto.stop = function () { - var opts = this.options; - - if (opts && opts.animate) { - var anis = this.animations; - - if (anis) { - for (var _i = 0; _i < anis.length; _i++) { - anis[_i].stop(); - } - } - } - - if (regStop) { - regStop.call(this); - } else { - this.emit('layoutstop'); - } - - return this; - }; - - if (!layoutProto.destroy) { - layoutProto.destroy = function () { - return this; - }; - } - - layoutProto.cy = function () { - return this._private.cy; - }; - - var getCy = function getCy(layout) { - return layout._private.cy; - }; - - util.assign(layoutProto, { - createEmitter: function createEmitter() { - this._private.emitter = new Emitter({ - eventFields: function eventFields(layout) { - return { - layout: layout, - cy: getCy(layout), - target: layout - }; - }, - bubble: function bubble() { - return true; - }, - parent: function parent(layout) { - return getCy(layout); - }, - context: this - }); - - return this; - }, - emitter: function emitter() { - return this._private.emitter; - }, - on: function on(evt, cb) { - this.emitter().on(evt, cb);return this; - }, - one: function one(evt, cb) { - this.emitter().one(evt, cb);return this; - }, - once: function once(evt, cb) { - this.emitter().one(evt, cb);return this; - }, - removeListener: function removeListener(evt, cb) { - this.emitter().removeListener(evt, cb);return this; - }, - emit: function emit(evt, params) { - this.emitter().emit(evt, params);return this; - } - }); - - define.eventAliasesOn(layoutProto); - - ext = Layout; // replace with our wrapped layout - } else if (type === 'renderer' && name !== 'null' && name !== 'base') { - // user registered renderers inherit from base - - var BaseRenderer = getExtension('renderer', 'base'); - var bProto = BaseRenderer.prototype; - var RegistrantRenderer = registrant; - var rProto = registrant.prototype; - - var Renderer = function Renderer() { - BaseRenderer.apply(this, arguments); - RegistrantRenderer.apply(this, arguments); - }; - - var proto = Renderer.prototype; - - for (var pName in bProto) { - var pVal = bProto[pName]; - var existsInR = rProto[pName] != null; - - if (existsInR) { - return overrideErr(pName); - } - - proto[pName] = pVal; // take impl from base - } - - for (var _pName in rProto) { - proto[_pName] = rProto[_pName]; // take impl from registrant - } - - bProto.clientFunctions.forEach(function (name) { - proto[name] = proto[name] || function () { - util.error('Renderer does not implement `renderer.' + name + '()` on its prototype'); - }; - }); - - ext = Renderer; - } - - return util.setMap({ - map: extensions, - keys: [type, name], - value: ext - }); -} - -function getExtension(type, name) { - return util.getMap({ - map: extensions, - keys: [type, name] - }); -} - -function setModule(type, name, moduleType, moduleName, registrant) { - return util.setMap({ - map: modules, - keys: [type, name, moduleType, moduleName], - value: registrant - }); -} - -function getModule(type, name, moduleType, moduleName) { - return util.getMap({ - map: modules, - keys: [type, name, moduleType, moduleName] - }); -} - -var extension = function extension() { - // e.g. extension('renderer', 'svg') - if (arguments.length === 2) { - return getExtension.apply(null, arguments); - } - - // e.g. extension('renderer', 'svg', { ... }) - else if (arguments.length === 3) { - return setExtension.apply(null, arguments); - } - - // e.g. extension('renderer', 'svg', 'nodeShape', 'ellipse') - else if (arguments.length === 4) { - return getModule.apply(null, arguments); - } - - // e.g. extension('renderer', 'svg', 'nodeShape', 'ellipse', { ... }) - else if (arguments.length === 5) { - return setModule.apply(null, arguments); - } else { - util.error('Invalid extension access syntax'); - } -}; - -// allows a core instance to access extensions internally -Core.prototype.extension = extension; - -// included extensions -incExts.forEach(function (group) { - group.extensions.forEach(function (ext) { - setExtension(group.type, ext.name, ext.impl); - }); -}); - -module.exports = extension; - -/***/ }), -/* 22 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); -var util = __webpack_require__(1); -var Style = __webpack_require__(18); - -// a dummy stylesheet object that doesn't need a reference to the core -// (useful for init) -var Stylesheet = function Stylesheet() { - if (!(this instanceof Stylesheet)) { - return new Stylesheet(); - } - - this.length = 0; -}; - -var sheetfn = Stylesheet.prototype; - -sheetfn.instanceString = function () { - return 'stylesheet'; -}; - -// just store the selector to be parsed later -sheetfn.selector = function (selector) { - var i = this.length++; - - this[i] = { - selector: selector, - properties: [] - }; - - return this; // chaining -}; - -// just store the property to be parsed later -sheetfn.css = function (name, value) { - var i = this.length - 1; - - if (is.string(name)) { - this[i].properties.push({ - name: name, - value: value - }); - } else if (is.plainObject(name)) { - var map = name; - - for (var j = 0; j < Style.properties.length; j++) { - var prop = Style.properties[j]; - var mapVal = map[prop.name]; - - if (mapVal === undefined) { - // also try camel case name - mapVal = map[util.dash2camel(prop.name)]; - } - - if (mapVal !== undefined) { - var _name = prop.name; - var _value = mapVal; - - this[i].properties.push({ - name: _name, - value: _value - }); - } - } - } - - return this; // chaining -}; - -sheetfn.style = sheetfn.css; - -// generate a real style object from the dummy stylesheet -sheetfn.generateStyle = function (cy) { - var style = new Style(cy); - - return this.appendToStyle(style); -}; - -// append a dummy stylesheet object on a real style object -sheetfn.appendToStyle = function (style) { - for (var i = 0; i < this.length; i++) { - var context = this[i]; - var selector = context.selector; - var props = context.properties; - - style.selector(selector); // apply selector - - for (var j = 0; j < props.length; j++) { - var prop = props[j]; - - style.css(prop.name, prop.value); // apply property - } - } - - return style; -}; - -module.exports = Stylesheet; - -/***/ }), -/* 23 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = "3.2.6"; - -/***/ }), -/* 24 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var is = __webpack_require__(0); -var Promise = __webpack_require__(5); - -var Animation = function Animation(target, opts, opts2) { - var _p = this._private = util.extend({ - duration: 1000 - }, opts, opts2); - - _p.target = target; - _p.style = _p.style || _p.css; - _p.started = false; - _p.playing = false; - _p.hooked = false; - _p.applying = false; - _p.progress = 0; - _p.completes = []; - _p.frames = []; - - if (_p.complete && is.fn(_p.complete)) { - _p.completes.push(_p.complete); - } - - // for future timeline/animations impl - this.length = 1; - this[0] = this; -}; - -var anifn = Animation.prototype; - -util.extend(anifn, { - - instanceString: function instanceString() { - return 'animation'; - }, - - hook: function hook() { - var _p = this._private; - - if (!_p.hooked) { - // add to target's animation queue - var q = void 0; - var tAni = _p.target._private.animation; - if (_p.queue) { - q = tAni.queue; - } else { - q = tAni.current; - } - q.push(this); - - // add to the animation loop pool - if (is.elementOrCollection(_p.target)) { - _p.target.cy().addToAnimationPool(_p.target); - } - - _p.hooked = true; - } - - return this; - }, - - play: function play() { - var _p = this._private; - - // autorewind - if (_p.progress === 1) { - _p.progress = 0; - } - - _p.playing = true; - _p.started = false; // needs to be started by animation loop - _p.stopped = false; - - this.hook(); - - // the animation loop will start the animation... - - return this; - }, - - playing: function playing() { - return this._private.playing; - }, - - apply: function apply() { - var _p = this._private; - - _p.applying = true; - _p.started = false; // needs to be started by animation loop - _p.stopped = false; - - this.hook(); - - // the animation loop will apply the animation at this progress - - return this; - }, - - applying: function applying() { - return this._private.applying; - }, - - pause: function pause() { - var _p = this._private; - - _p.playing = false; - _p.started = false; - - return this; - }, - - stop: function stop() { - var _p = this._private; - - _p.playing = false; - _p.started = false; - _p.stopped = true; // to be removed from animation queues - - return this; - }, - - rewind: function rewind() { - return this.progress(0); - }, - - fastforward: function fastforward() { - return this.progress(1); - }, - - time: function time(t) { - var _p = this._private; - - if (t === undefined) { - return _p.progress * _p.duration; - } else { - return this.progress(t / _p.duration); - } - }, - - progress: function progress(p) { - var _p = this._private; - var wasPlaying = _p.playing; - - if (p === undefined) { - return _p.progress; - } else { - if (wasPlaying) { - this.pause(); - } - - _p.progress = p; - _p.started = false; - - if (wasPlaying) { - this.play(); - } - } - - return this; - }, - - completed: function completed() { - return this._private.progress === 1; - }, - - reverse: function reverse() { - var _p = this._private; - var wasPlaying = _p.playing; - - if (wasPlaying) { - this.pause(); - } - - _p.progress = 1 - _p.progress; - _p.started = false; - - var swap = function swap(a, b) { - var _pa = _p[a]; - - if (_pa == null) { - return; - } - - _p[a] = _p[b]; - _p[b] = _pa; - }; - - swap('zoom', 'startZoom'); - swap('pan', 'startPan'); - swap('position', 'startPosition'); - - // swap styles - if (_p.style) { - for (var i = 0; i < _p.style.length; i++) { - var prop = _p.style[i]; - var name = prop.name; - var startStyleProp = _p.startStyle[name]; - - _p.startStyle[name] = prop; - _p.style[i] = startStyleProp; - } - } - - if (wasPlaying) { - this.play(); - } - - return this; - }, - - promise: function promise(type) { - var _p = this._private; - - var arr = void 0; - - switch (type) { - case 'frame': - arr = _p.frames; - break; - default: - case 'complete': - case 'completed': - arr = _p.completes; - } - - return new Promise(function (resolve, reject) { - arr.push(function () { - resolve(); - }); - }); - } - -}); - -anifn.complete = anifn.completed; - -module.exports = Animation; - -/***/ }), -/* 25 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); - -var elesfn = { - - // Implemented from pseudocode from wikipedia - aStar: function aStar(options) { - var eles = this; - - options = options || {}; - - // Reconstructs the path from Start to End, acumulating the result in pathAcum - var reconstructPath = function reconstructPath(start, end, cameFromMap, pathAcum) { - // Base case - if (start == end) { - pathAcum.unshift(cy.getElementById(end)); - return pathAcum; - } - - if (end in cameFromMap) { - // We know which node is before the last one - var previous = cameFromMap[end]; - var previousEdge = cameFromEdge[end]; - - pathAcum.unshift(cy.getElementById(previousEdge)); - pathAcum.unshift(cy.getElementById(end)); - - return reconstructPath(start, previous, cameFromMap, pathAcum); - } - - // We should not reach here! - return undefined; - }; - - // Returns the index of the element in openSet which has minimum fScore - var findMin = function findMin(openSet, fScore) { - if (openSet.length === 0) { - // Should never be the case - return undefined; - } - var minPos = 0; - var tempScore = fScore[openSet[0]]; - for (var i = 1; i < openSet.length; i++) { - var s = fScore[openSet[i]]; - if (s < tempScore) { - tempScore = s; - minPos = i; - } - } - return minPos; - }; - - var cy = this._private.cy; - - // root - mandatory! - if (options != null && options.root != null) { - var source = is.string(options.root) ? - // use it as a selector, e.g. "#rootID - this.filter(options.root)[0] : options.root[0]; - } else { - return undefined; - } - - // goal - mandatory! - if (options.goal != null) { - var target = is.string(options.goal) ? - // use it as a selector, e.g. "#goalID - this.filter(options.goal)[0] : options.goal[0]; - } else { - return undefined; - } - - // Heuristic function - optional - if (options.heuristic != null && is.fn(options.heuristic)) { - var heuristic = options.heuristic; - } else { - var heuristic = function heuristic() { - return 0; - }; // use constant if unspecified - } - - // Weight function - optional - if (options.weight != null && is.fn(options.weight)) { - var weightFn = options.weight; - } else { - // If not specified, assume each edge has equal weight (1) - var weightFn = function weightFn(e) { - return 1; - }; - } - - // directed - optional - if (options.directed != null) { - var directed = options.directed; - } else { - var directed = false; - } - - var sid = source.id(); - var tid = target.id(); - - var closedSet = []; - var openSet = [sid]; - var cameFrom = {}; - var cameFromEdge = {}; - var gScore = {}; - var fScore = {}; - - gScore[sid] = 0; - fScore[sid] = heuristic(source); - - // Counter - var steps = 0; - - // Main loop - while (openSet.length > 0) { - var minPos = findMin(openSet, fScore); - var cMin = cy.getElementById(openSet[minPos]); - var cMinId = cMin.id(); - steps++; - - // If we've found our goal, then we are done - if (cMinId == tid) { - var rPath = reconstructPath(sid, tid, cameFrom, []); - - return { - found: true, - distance: gScore[cMinId], - path: eles.spawn(rPath), - steps: steps - }; - } - - // Add cMin to processed nodes - closedSet.push(cMinId); - // Remove cMin from boundary nodes - openSet.splice(minPos, 1); - - // Update scores for neighbors of cMin - // Take into account if graph is directed or not - var vwEdges = cMin._private.edges; - - for (var i = 0; i < vwEdges.length; i++) { - var e = vwEdges[i]; - - // edge must be in set of calling eles - if (!this.hasElementWithId(e.id())) { - continue; - } - - // cMin must be the source of edge if directed - if (directed && e.data('source') !== cMinId) { - continue; - } - - var wSrc = e.source(); - var wTgt = e.target(); - - var w = wSrc.id() !== cMinId ? wSrc : wTgt; - var wid = w.id(); - - // node must be in set of calling eles - if (!this.hasElementWithId(wid)) { - continue; - } - - // if node is in closedSet, ignore it - if (closedSet.indexOf(wid) != -1) { - continue; - } - - // New tentative score for node w - var tempScore = gScore[cMinId] + weightFn(e); - - // Update gScore for node w if: - // w not present in openSet - // OR - // tentative gScore is less than previous value - - // w not in openSet - if (openSet.indexOf(wid) == -1) { - gScore[wid] = tempScore; - fScore[wid] = tempScore + heuristic(w); - openSet.push(wid); // Add node to openSet - cameFrom[wid] = cMinId; - cameFromEdge[wid] = e.id(); - continue; - } - // w already in openSet, but with greater gScore - if (tempScore < gScore[wid]) { - gScore[wid] = tempScore; - fScore[wid] = tempScore + heuristic(w); - cameFrom[wid] = cMinId; - } - } // End of neighbors update - } // End of main loop - - // If we've reached here, then we've not reached our goal - return { - found: false, - distance: undefined, - path: undefined, - steps: steps - }; - } - -}; // elesfn - - -module.exports = elesfn; - -/***/ }), -/* 26 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); -var util = __webpack_require__(1); - -var elesfn = { - - // Implemented from pseudocode from wikipedia - bellmanFord: function bellmanFord(options) { - var eles = this; - - options = options || {}; - - // Weight function - optional - if (options.weight != null && is.fn(options.weight)) { - var weightFn = options.weight; - } else { - // If not specified, assume each edge has equal weight (1) - var weightFn = function weightFn(e) { - return 1; - }; - } - - // directed - optional - if (options.directed != null) { - var directed = options.directed; - } else { - var directed = false; - } - - // root - mandatory! - if (options.root != null) { - if (is.string(options.root)) { - // use it as a selector, e.g. "#rootID - var source = this.filter(options.root)[0]; - } else { - var source = options.root[0]; - } - } else { - return undefined; - } - - var cy = this._private.cy; - var edges = this.edges().stdFilter(function (e) { - return !e.isLoop(); - }); - var nodes = this.nodes(); - var numNodes = nodes.length; - - // mapping: node id -> position in nodes array - var id2position = {}; - for (var i = 0; i < numNodes; i++) { - id2position[nodes[i].id()] = i; - } - - // Initializations - var cost = []; - var predecessor = []; - var predEdge = []; - - for (var i = 0; i < numNodes; i++) { - if (nodes[i].id() === source.id()) { - cost[i] = 0; - } else { - cost[i] = Infinity; - } - predecessor[i] = undefined; - } - - // Edges relaxation - var flag = false; - for (var i = 1; i < numNodes; i++) { - flag = false; - for (var e = 0; e < edges.length; e++) { - var sourceIndex = id2position[edges[e].source().id()]; - var targetIndex = id2position[edges[e].target().id()]; - var weight = weightFn(edges[e]); - - var temp = cost[sourceIndex] + weight; - if (temp < cost[targetIndex]) { - cost[targetIndex] = temp; - predecessor[targetIndex] = sourceIndex; - predEdge[targetIndex] = edges[e]; - flag = true; - } - - // If undirected graph, we need to take into account the 'reverse' edge - if (!directed) { - var temp = cost[targetIndex] + weight; - if (temp < cost[sourceIndex]) { - cost[sourceIndex] = temp; - predecessor[sourceIndex] = targetIndex; - predEdge[sourceIndex] = edges[e]; - flag = true; - } - } - } - - if (!flag) { - break; - } - } - - if (flag) { - // Check for negative weight cycles - for (var e = 0; e < edges.length; e++) { - var sourceIndex = id2position[edges[e].source().id()]; - var targetIndex = id2position[edges[e].target().id()]; - var weight = weightFn(edges[e]); - - if (cost[sourceIndex] + weight < cost[targetIndex]) { - util.error('Graph contains a negative weight cycle for Bellman-Ford'); - return { pathTo: undefined, - distanceTo: undefined, - hasNegativeWeightCycle: true }; - } - } - } - - // Build result object - var position2id = []; - for (var i = 0; i < numNodes; i++) { - position2id.push(nodes[i].id()); - } - - var res = { - distanceTo: function distanceTo(to) { - if (is.string(to)) { - // to is a selector string - var toId = cy.filter(to)[0].id(); - } else { - // to is a node - var toId = to.id(); - } - - return cost[id2position[toId]]; - }, - - pathTo: function pathTo(to) { - - var reconstructPathAux = function reconstructPathAux(predecessor, fromPos, toPos, position2id, acumPath, predEdge) { - for (;;) { - // Add toId to path - acumPath.push(cy.getElementById(position2id[toPos])); - acumPath.push(predEdge[toPos]); - - if (fromPos === toPos) { - // reached starting node - return acumPath; - } - - // If no path exists, discart acumulated path and return undefined - var predPos = predecessor[toPos]; - if (typeof predPos === 'undefined') { - return undefined; - } - - toPos = predPos; - } - }; - - if (is.string(to)) { - // to is a selector string - var toId = cy.filter(to)[0].id(); - } else { - // to is a node - var toId = to.id(); - } - var path = []; - - // This returns a reversed path - var res = reconstructPathAux(predecessor, id2position[source.id()], id2position[toId], position2id, path, predEdge); - - // Get it in the correct order and return it - if (res != null) { - res.reverse(); - } - - return eles.spawn(res); - }, - - hasNegativeWeightCycle: false - }; - - return res; - } // bellmanFord - -}; // elesfn - -module.exports = elesfn; - -/***/ }), -/* 27 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); -var Heap = __webpack_require__(8); - -var elesfn = { - - // Implemented from the algorithm in the paper "On Variants of Shortest-Path Betweenness Centrality and their Generic Computation" by Ulrik Brandes - betweennessCentrality: function betweennessCentrality(options) { - options = options || {}; - - // Weight - optional - var weighted, weightFn; - if (is.fn(options.weight)) { - weightFn = options.weight; - weighted = true; - } else { - weighted = false; - } - - // Directed - default false - var directed = options.directed != null ? options.directed : false; - - var cy = this._private.cy; - - // starting - var V = this.nodes(); - var A = {}; - var _C = {}; - var max = 0; - var C = { - set: function set(key, val) { - _C[key] = val; - - if (val > max) { - max = val; - } - }, - - get: function get(key) { - return _C[key]; - } - }; - - // A contains the neighborhoods of every node - for (var i = 0; i < V.length; i++) { - var v = V[i]; - var vid = v.id(); - - if (directed) { - A[vid] = v.outgoers().nodes(); // get outgoers of every node - } else { - A[vid] = v.openNeighborhood().nodes(); // get neighbors of every node - } - - C.set(vid, 0); - } - - for (var s = 0; s < V.length; s++) { - var sid = V[s].id(); - var S = []; // stack - var P = {}; - var g = {}; - var d = {}; - var Q = new Heap(function (a, b) { - return d[a] - d[b]; - }); // queue - - // init dictionaries - for (var i = 0; i < V.length; i++) { - var vid = V[i].id(); - - P[vid] = []; - g[vid] = 0; - d[vid] = Infinity; - } - - g[sid] = 1; // sigma - d[sid] = 0; // distance to s - - Q.push(sid); - - while (!Q.empty()) { - var v = Q.pop(); - - S.push(v); - - if (weighted) { - for (var j = 0; j < A[v].length; j++) { - var w = A[v][j]; - var vEle = cy.getElementById(v); - - var edge; - if (vEle.edgesTo(w).length > 0) { - edge = vEle.edgesTo(w)[0]; - } else { - edge = w.edgesTo(vEle)[0]; - } - - var edgeWeight = weightFn(edge); - - w = w.id(); - - if (d[w] > d[v] + edgeWeight) { - d[w] = d[v] + edgeWeight; - - if (Q.nodes.indexOf(w) < 0) { - //if w is not in Q - Q.push(w); - } else { - // update position if w is in Q - Q.updateItem(w); - } - - g[w] = 0; - P[w] = []; - } - - if (d[w] == d[v] + edgeWeight) { - g[w] = g[w] + g[v]; - P[w].push(v); - } - } - } else { - for (var j = 0; j < A[v].length; j++) { - var w = A[v][j].id(); - - if (d[w] == Infinity) { - Q.push(w); - - d[w] = d[v] + 1; - } - - if (d[w] == d[v] + 1) { - g[w] = g[w] + g[v]; - P[w].push(v); - } - } - } - } - - var e = {}; - for (var i = 0; i < V.length; i++) { - e[V[i].id()] = 0; - } - - while (S.length > 0) { - var w = S.pop(); - - for (var j = 0; j < P[w].length; j++) { - var v = P[w][j]; - - e[v] = e[v] + g[v] / g[w] * (1 + e[w]); - - if (w != V[s].id()) { - C.set(w, C.get(w) + e[w]); - } - } - } - } - - var ret = { - betweenness: function betweenness(node) { - if (is.string(node)) { - var node = cy.filter(node).id(); - } else { - var node = node.id(); - } - - return C.get(node); - }, - - betweennessNormalized: function betweennessNormalized(node) { - if (max == 0) return 0; - - if (is.string(node)) { - var node = cy.filter(node).id(); - } else { - var node = node.id(); - } - - return C.get(node) / max; - } - }; - - // alias - ret.betweennessNormalised = ret.betweennessNormalized; - - return ret; - } // betweennessCentrality - -}; // elesfn - -// nice, short mathemathical alias -elesfn.bc = elesfn.betweennessCentrality; - -module.exports = elesfn; - -/***/ }), -/* 28 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); - -var defineSearch = function defineSearch(params) { - params = { - bfs: params.bfs || !params.dfs, - dfs: params.dfs || !params.bfs - }; - - // from pseudocode on wikipedia - return function searchFn(roots, fn, directed) { - var options; - if (is.plainObject(roots) && !is.elementOrCollection(roots)) { - options = roots; - roots = options.roots || options.root; - fn = options.visit; - directed = options.directed; - } - - directed = arguments.length === 2 && !is.fn(fn) ? fn : directed; - fn = is.fn(fn) ? fn : function () {}; - - var cy = this._private.cy; - var v = roots = is.string(roots) ? this.filter(roots) : roots; - var Q = []; - var connectedNodes = []; - var connectedBy = {}; - var id2depth = {}; - var V = {}; - var j = 0; - var found; - var nodes = this.nodes(); - var edges = this.edges(); - - // enqueue v - for (var i = 0; i < v.length; i++) { - if (v[i].isNode()) { - Q.unshift(v[i]); - - if (params.bfs) { - V[v[i].id()] = true; - - connectedNodes.push(v[i]); - } - - id2depth[v[i].id()] = 0; - } - } - - while (Q.length !== 0) { - var v = params.bfs ? Q.shift() : Q.pop(); - - if (params.dfs) { - if (V[v.id()]) { - continue; - } - - V[v.id()] = true; - - connectedNodes.push(v); - } - - var depth = id2depth[v.id()]; - var prevEdge = connectedBy[v.id()]; - var prevNode = prevEdge == null ? undefined : prevEdge.connectedNodes().not(v)[0]; - var ret; - - ret = fn(v, prevEdge, prevNode, j++, depth); - - if (ret === true) { - found = v; - break; - } - - if (ret === false) { - break; - } - - var vwEdges = v.connectedEdges(directed ? function (ele) { - return ele.data('source') === v.id(); - } : undefined).intersect(edges); - for (var i = 0; i < vwEdges.length; i++) { - var e = vwEdges[i]; - var w = e.connectedNodes(function (n) { - return n.id() !== v.id(); - }).intersect(nodes); - - if (w.length !== 0 && !V[w.id()]) { - w = w[0]; - - Q.push(w); - - if (params.bfs) { - V[w.id()] = true; - - connectedNodes.push(w); - } - - connectedBy[w.id()] = e; - - id2depth[w.id()] = id2depth[v.id()] + 1; - } - } - } - - var connectedEles = []; - - for (var i = 0; i < connectedNodes.length; i++) { - var node = connectedNodes[i]; - var edge = connectedBy[node.id()]; - - if (edge) { - connectedEles.push(edge); - } - - connectedEles.push(node); - } - - return { - path: cy.collection(connectedEles, { unique: true }), - found: cy.collection(found) - }; - }; -}; - -// search, spanning trees, etc -var elesfn = { - breadthFirstSearch: defineSearch({ bfs: true }), - depthFirstSearch: defineSearch({ dfs: true }) -}; - -// nice, short mathemathical alias -elesfn.bfs = elesfn.breadthFirstSearch; -elesfn.dfs = elesfn.depthFirstSearch; - -module.exports = elesfn; - -/***/ }), -/* 29 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); - -var elesfn = { - - closenessCentralityNormalized: function closenessCentralityNormalized(options) { - options = options || {}; - - var cy = this.cy(); - - var harmonic = options.harmonic; - if (harmonic === undefined) { - harmonic = true; - } - - var closenesses = {}; - var maxCloseness = 0; - var nodes = this.nodes(); - var fw = this.floydWarshall({ weight: options.weight, directed: options.directed }); - - // Compute closeness for every node and find the maximum closeness - for (var i = 0; i < nodes.length; i++) { - var currCloseness = 0; - for (var j = 0; j < nodes.length; j++) { - if (i != j) { - var d = fw.distance(nodes[i], nodes[j]); - - if (harmonic) { - currCloseness += 1 / d; - } else { - currCloseness += d; - } - } - } - - if (!harmonic) { - currCloseness = 1 / currCloseness; - } - - if (maxCloseness < currCloseness) { - maxCloseness = currCloseness; - } - - closenesses[nodes[i].id()] = currCloseness; - } - - return { - closeness: function closeness(node) { - if (maxCloseness == 0) { - return 0; - } - - if (is.string(node)) { - // from is a selector string - var node = cy.filter(node)[0].id(); - } else { - // from is a node - var node = node.id(); - } - - return closenesses[node] / maxCloseness; - } - }; - }, - - // Implemented from pseudocode from wikipedia - closenessCentrality: function closenessCentrality(options) { - options = options || {}; - - // root - mandatory! - if (options.root != null) { - if (is.string(options.root)) { - // use it as a selector, e.g. "#rootID - var root = this.filter(options.root)[0]; - } else { - var root = options.root[0]; - } - } else { - return undefined; - } - - // weight - optional - if (options.weight != null && is.fn(options.weight)) { - var weight = options.weight; - } else { - var weight = function weight() { - return 1; - }; - } - - // directed - optional - if (options.directed != null && is.bool(options.directed)) { - var directed = options.directed; - } else { - var directed = false; - } - - var harmonic = options.harmonic; - if (harmonic === undefined) { - harmonic = true; - } - - // we need distance from this node to every other node - var dijkstra = this.dijkstra({ - root: root, - weight: weight, - directed: directed - }); - var totalDistance = 0; - - var nodes = this.nodes(); - for (var i = 0; i < nodes.length; i++) { - if (nodes[i].id() != root.id()) { - var d = dijkstra.distanceTo(nodes[i]); - - if (harmonic) { - totalDistance += 1 / d; - } else { - totalDistance += d; - } - } - } - - return harmonic ? totalDistance : 1 / totalDistance; - } // closenessCentrality - -}; // elesfn - -// nice, short mathemathical alias -elesfn.cc = elesfn.closenessCentrality; -elesfn.ccn = elesfn.closenessCentralityNormalised = elesfn.closenessCentralityNormalized; - -module.exports = elesfn; - -/***/ }), -/* 30 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); -var util = __webpack_require__(1); - -var elesfn = { - - degreeCentralityNormalized: function degreeCentralityNormalized(options) { - options = options || {}; - - var cy = this.cy(); - - // directed - optional - if (options.directed != null) { - var directed = options.directed; - } else { - var directed = false; - } - - var nodes = this.nodes(); - var numNodes = nodes.length; - - if (!directed) { - var degrees = {}; - var maxDegree = 0; - - for (var i = 0; i < numNodes; i++) { - var node = nodes[i]; - // add current node to the current options object and call degreeCentrality - var currDegree = this.degreeCentrality(util.extend({}, options, { root: node })); - if (maxDegree < currDegree.degree) maxDegree = currDegree.degree; - - degrees[node.id()] = currDegree.degree; - } - - return { - degree: function degree(node) { - if (maxDegree == 0) return 0; - - if (is.string(node)) { - // from is a selector string - var node = cy.filter(node)[0].id(); - } else { - // from is a node - var node = node.id(); - } - - return degrees[node] / maxDegree; - } - }; - } else { - var indegrees = {}; - var outdegrees = {}; - var maxIndegree = 0; - var maxOutdegree = 0; - - for (var i = 0; i < numNodes; i++) { - var node = nodes[i]; - // add current node to the current options object and call degreeCentrality - var currDegree = this.degreeCentrality(util.extend({}, options, { root: node })); - - if (maxIndegree < currDegree.indegree) maxIndegree = currDegree.indegree; - - if (maxOutdegree < currDegree.outdegree) maxOutdegree = currDegree.outdegree; - - indegrees[node.id()] = currDegree.indegree; - outdegrees[node.id()] = currDegree.outdegree; - } - - return { - indegree: function indegree(node) { - if (maxIndegree == 0) return 0; - - if (is.string(node)) { - // from is a selector string - var node = cy.filter(node)[0].id(); - } else { - // from is a node - var node = node.id(); - } - - return indegrees[node] / maxIndegree; - }, - outdegree: function outdegree(node) { - if (maxOutdegree == 0) return 0; - - if (is.string(node)) { - // from is a selector string - var node = cy.filter(node)[0].id(); - } else { - // from is a node - var node = node.id(); - } - - return outdegrees[node] / maxOutdegree; - } - - }; - } - }, // degreeCentralityNormalized - - // Implemented from the algorithm in Opsahl's paper - // "Node centrality in weighted networks: Generalizing degree and shortest paths" - // check the heading 2 "Degree" - degreeCentrality: function degreeCentrality(options) { - options = options || {}; - - var callingEles = this; - - // root - mandatory! - if (options != null && options.root != null) { - var root = is.string(options.root) ? this.filter(options.root)[0] : options.root[0]; - } else { - return undefined; - } - - // weight - optional - if (options.weight != null && is.fn(options.weight)) { - var weightFn = options.weight; - } else { - // If not specified, assume each edge has equal weight (1) - var weightFn = function weightFn(e) { - return 1; - }; - } - - // directed - optional - if (options.directed != null) { - var directed = options.directed; - } else { - var directed = false; - } - - // alpha - optional - if (options.alpha != null && is.number(options.alpha)) { - var alpha = options.alpha; - } else { - alpha = 0; - } - - if (!directed) { - var connEdges = root.connectedEdges().intersection(callingEles); - var k = connEdges.length; - var s = 0; - - // Now, sum edge weights - for (var i = 0; i < connEdges.length; i++) { - var edge = connEdges[i]; - s += weightFn(edge); - } - - return { - degree: Math.pow(k, 1 - alpha) * Math.pow(s, alpha) - }; - } else { - var incoming = root.connectedEdges('edge[target = "' + root.id() + '"]').intersection(callingEles); - var outgoing = root.connectedEdges('edge[source = "' + root.id() + '"]').intersection(callingEles); - var k_in = incoming.length; - var k_out = outgoing.length; - var s_in = 0; - var s_out = 0; - - // Now, sum incoming edge weights - for (var i = 0; i < incoming.length; i++) { - var edge = incoming[i]; - s_in += weightFn(edge); - } - - // Now, sum outgoing edge weights - for (var i = 0; i < outgoing.length; i++) { - var edge = outgoing[i]; - s_out += weightFn(edge); - } - - return { - indegree: Math.pow(k_in, 1 - alpha) * Math.pow(s_in, alpha), - outdegree: Math.pow(k_out, 1 - alpha) * Math.pow(s_out, alpha) - }; - } - } // degreeCentrality - -}; // elesfn - -// nice, short mathemathical alias -elesfn.dc = elesfn.degreeCentrality; -elesfn.dcn = elesfn.degreeCentralityNormalised = elesfn.degreeCentralityNormalized; - -module.exports = elesfn; - -/***/ }), -/* 31 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); -var Heap = __webpack_require__(8); - -var elesfn = { - - dijkstra: function dijkstra(root, weightFn, directed) { - var options; - if (is.plainObject(root) && !is.elementOrCollection(root)) { - options = root; - root = options.root; - weightFn = options.weight; - directed = options.directed; - } - - var cy = this._private.cy; - weightFn = is.fn(weightFn) ? weightFn : function () { - return 1; - }; // if not specified, assume each edge has equal weight (1) - - var source = is.string(root) ? this.filter(root)[0] : root[0]; - var dist = {}; - var prev = {}; - var knownDist = {}; - - var edges = this.edges().filter(function (ele) { - return !ele.isLoop(); - }); - var nodes = this.nodes(); - - var getDist = function getDist(node) { - return dist[node.id()]; - }; - - var setDist = function setDist(node, d) { - dist[node.id()] = d; - - Q.updateItem(node); - }; - - var Q = new Heap(function (a, b) { - return getDist(a) - getDist(b); - }); - - for (var i = 0; i < nodes.length; i++) { - var node = nodes[i]; - - dist[node.id()] = node.same(source) ? 0 : Infinity; - Q.push(node); - } - - var distBetween = function distBetween(u, v) { - var uvs = (directed ? u.edgesTo(v) : u.edgesWith(v)).intersect(edges); - var smallestDistance = Infinity; - var smallestEdge; - - for (var i = 0; i < uvs.length; i++) { - var edge = uvs[i]; - var weight = weightFn(edge); - - if (weight < smallestDistance || !smallestEdge) { - smallestDistance = weight; - smallestEdge = edge; - } - } - - return { - edge: smallestEdge, - dist: smallestDistance - }; - }; - - while (Q.size() > 0) { - var u = Q.pop(); - var smalletsDist = getDist(u); - var uid = u.id(); - - knownDist[uid] = smalletsDist; - - if (smalletsDist === Infinity) { - continue; - } - - var neighbors = u.neighborhood().intersect(nodes); - for (var i = 0; i < neighbors.length; i++) { - var v = neighbors[i]; - var vid = v.id(); - var vDist = distBetween(u, v); - - var alt = smalletsDist + vDist.dist; - - if (alt < getDist(v)) { - setDist(v, alt); - - prev[vid] = { - node: u, - edge: vDist.edge - }; - } - } // for - } // while - - return { - distanceTo: function distanceTo(node) { - var target = is.string(node) ? nodes.filter(node)[0] : node[0]; - - return knownDist[target.id()]; - }, - - pathTo: function pathTo(node) { - var target = is.string(node) ? nodes.filter(node)[0] : node[0]; - var S = []; - var u = target; - - if (target.length > 0) { - S.unshift(target); - - while (prev[u.id()]) { - var p = prev[u.id()]; - - S.unshift(p.edge); - S.unshift(p.node); - - u = p.node; - } - } - - return cy.collection(S); - } - }; - } -}; - -module.exports = elesfn; - -/***/ }), -/* 32 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); - -var elesfn = { - - // Implemented from pseudocode from wikipedia - floydWarshall: function floydWarshall(options) { - options = options || {}; - - var cy = this.cy(); - - // Weight function - optional - if (options.weight != null && is.fn(options.weight)) { - var weightFn = options.weight; - } else { - // If not specified, assume each edge has equal weight (1) - var weightFn = function weightFn(e) { - return 1; - }; - } - - // directed - optional - if (options.directed != null) { - var directed = options.directed; - } else { - var directed = false; - } - - var edges = this.edges().stdFilter(function (e) { - return !e.isLoop(); - }); - var nodes = this.nodes(); - var numNodes = nodes.length; - - // mapping: node id -> position in nodes array - var id2position = {}; - for (var i = 0; i < numNodes; i++) { - id2position[nodes[i].id()] = i; - } - - // Initialize distance matrix - var dist = []; - for (var i = 0; i < numNodes; i++) { - var newRow = new Array(numNodes); - for (var j = 0; j < numNodes; j++) { - if (i == j) { - newRow[j] = 0; - } else { - newRow[j] = Infinity; - } - } - dist.push(newRow); - } - - // Initialize matrix used for path reconstruction - // Initialize distance matrix - var next = []; - var edgeNext = []; - - var initMatrix = function initMatrix(next) { - for (var i = 0; i < numNodes; i++) { - var newRow = new Array(numNodes); - for (var j = 0; j < numNodes; j++) { - newRow[j] = undefined; - } - next.push(newRow); - } - }; - - initMatrix(next); - initMatrix(edgeNext); - - // Process edges - for (var i = 0; i < edges.length; i++) { - var sourceIndex = id2position[edges[i].source().id()]; - var targetIndex = id2position[edges[i].target().id()]; - var weight = weightFn(edges[i]); - - // Check if already process another edge between same 2 nodes - if (dist[sourceIndex][targetIndex] > weight) { - dist[sourceIndex][targetIndex] = weight; - next[sourceIndex][targetIndex] = targetIndex; - edgeNext[sourceIndex][targetIndex] = edges[i]; - } - } - - // If undirected graph, process 'reversed' edges - if (!directed) { - for (var i = 0; i < edges.length; i++) { - var sourceIndex = id2position[edges[i].target().id()]; - var targetIndex = id2position[edges[i].source().id()]; - var weight = weightFn(edges[i]); - - // Check if already process another edge between same 2 nodes - if (dist[sourceIndex][targetIndex] > weight) { - dist[sourceIndex][targetIndex] = weight; - next[sourceIndex][targetIndex] = targetIndex; - edgeNext[sourceIndex][targetIndex] = edges[i]; - } - } - } - - // Main loop - for (var k = 0; k < numNodes; k++) { - for (var i = 0; i < numNodes; i++) { - for (var j = 0; j < numNodes; j++) { - if (dist[i][k] + dist[k][j] < dist[i][j]) { - dist[i][j] = dist[i][k] + dist[k][j]; - next[i][j] = next[i][k]; - } - } - } - } - - // Build result object - var position2id = []; - for (var i = 0; i < numNodes; i++) { - position2id.push(nodes[i].id()); - } - - var res = { - distance: function distance(from, to) { - if (is.string(from)) { - // from is a selector string - var fromId = cy.filter(from)[0].id(); - } else { - // from is a node - var fromId = from.id(); - } - - if (is.string(to)) { - // to is a selector string - var toId = cy.filter(to)[0].id(); - } else { - // to is a node - var toId = to.id(); - } - - return dist[id2position[fromId]][id2position[toId]]; - }, - - path: function path(from, to) { - var reconstructPathAux = function reconstructPathAux(from, to, next, position2id, edgeNext) { - if (from === to) { - return cy.getElementById(position2id[from]); - } - if (next[from][to] === undefined) { - return undefined; - } - - var path = [cy.getElementById(position2id[from])]; - var prev = from; - while (from !== to) { - prev = from; - from = next[from][to]; - - var edge = edgeNext[prev][from]; - path.push(edge); - - path.push(cy.getElementById(position2id[from])); - } - return path; - }; - - if (is.string(from)) { - // from is a selector string - var fromId = cy.filter(from)[0].id(); - } else { - // from is a node - var fromId = from.id(); - } - - if (is.string(to)) { - // to is a selector string - var toId = cy.filter(to)[0].id(); - } else { - // to is a node - var toId = to.id(); - } - - var pathArr = reconstructPathAux(id2position[fromId], id2position[toId], next, position2id, edgeNext); - - return cy.collection(pathArr); - } - }; - - return res; - } // floydWarshall - -}; // elesfn - -module.exports = elesfn; - -/***/ }), -/* 33 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); - -var elesfn = {}; - -[__webpack_require__(28), __webpack_require__(31), __webpack_require__(35), __webpack_require__(25), __webpack_require__(32), __webpack_require__(26), __webpack_require__(34), __webpack_require__(36), __webpack_require__(30), __webpack_require__(29), __webpack_require__(27)].forEach(function (props) { - util.extend(elesfn, props); -}); - -module.exports = elesfn; - -/***/ }), -/* 34 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); - -var elesfn = { - - // Computes the minimum cut of an undirected graph - // Returns the correct answer with high probability - kargerStein: function kargerStein(options) { - var eles = this; - - options = options || {}; - - // Function which colapses 2 (meta) nodes into one - // Updates the remaining edge lists - // Receives as a paramater the edge which causes the collapse - var colapse = function colapse(edgeIndex, nodeMap, remainingEdges) { - var edgeInfo = remainingEdges[edgeIndex]; - var sourceIn = edgeInfo[1]; - var targetIn = edgeInfo[2]; - var partition1 = nodeMap[sourceIn]; - var partition2 = nodeMap[targetIn]; - - // Delete all edges between partition1 and partition2 - var newEdges = remainingEdges.filter(function (edge) { - if (nodeMap[edge[1]] === partition1 && nodeMap[edge[2]] === partition2) { - return false; - } - if (nodeMap[edge[1]] === partition2 && nodeMap[edge[2]] === partition1) { - return false; - } - return true; - }); - - // All edges pointing to partition2 should now point to partition1 - for (var i = 0; i < newEdges.length; i++) { - var edge = newEdges[i]; - if (edge[1] === partition2) { - // Check source - newEdges[i] = edge.slice(0); - newEdges[i][1] = partition1; - } else if (edge[2] === partition2) { - // Check target - newEdges[i] = edge.slice(0); - newEdges[i][2] = partition1; - } - } - - // Move all nodes from partition2 to partition1 - for (var i = 0; i < nodeMap.length; i++) { - if (nodeMap[i] === partition2) { - nodeMap[i] = partition1; - } - } - - return newEdges; - }; - - // Contracts a graph until we reach a certain number of meta nodes - var contractUntil = function contractUntil(metaNodeMap, remainingEdges, size, sizeLimit) { - // Stop condition - if (size <= sizeLimit) { - return remainingEdges; - } - - // Choose an edge randomly - var edgeIndex = Math.floor(Math.random() * remainingEdges.length); - - // Colapse graph based on edge - var newEdges = colapse(edgeIndex, metaNodeMap, remainingEdges); - - return contractUntil(metaNodeMap, newEdges, size - 1, sizeLimit); - }; - - var cy = this._private.cy; - var edges = this.edges().stdFilter(function (e) { - return !e.isLoop(); - }); - var nodes = this.nodes(); - var numNodes = nodes.length; - var numEdges = edges.length; - var numIter = Math.ceil(Math.pow(Math.log(numNodes) / Math.LN2, 2)); - var stopSize = Math.floor(numNodes / Math.sqrt(2)); - - if (numNodes < 2) { - util.error('At least 2 nodes are required for Karger-Stein algorithm'); - return undefined; - } - - // Create numerical identifiers for each node - // mapping: node id -> position in nodes array - // for reverse mapping, simply use nodes array - var id2position = {}; - for (var i = 0; i < numNodes; i++) { - id2position[nodes[i].id()] = i; - } - - // Now store edge destination as indexes - // Format for each edge (edge index, source node index, target node index) - var edgeIndexes = []; - for (var i = 0; i < numEdges; i++) { - var e = edges[i]; - edgeIndexes.push([i, id2position[e.source().id()], id2position[e.target().id()]]); - } - - // We will store the best cut found here - var minCutSize = Infinity; - var minCut; - - // Initial meta node partition - var originalMetaNode = []; - for (var i = 0; i < numNodes; i++) { - originalMetaNode.push(i); - } - - // Main loop - for (var iter = 0; iter <= numIter; iter++) { - // Create new meta node partition - var metaNodeMap = originalMetaNode.slice(0); - - // Contract until stop point (stopSize nodes) - var edgesState = contractUntil(metaNodeMap, edgeIndexes, numNodes, stopSize); - - // Create a copy of the colapsed nodes state - var metaNodeMap2 = metaNodeMap.slice(0); - - // Run 2 iterations starting in the stop state - var res1 = contractUntil(metaNodeMap, edgesState, stopSize, 2); - var res2 = contractUntil(metaNodeMap2, edgesState, stopSize, 2); - - // Is any of the 2 results the best cut so far? - if (res1.length <= res2.length && res1.length < minCutSize) { - minCutSize = res1.length; - minCut = [res1, metaNodeMap]; - } else if (res2.length <= res1.length && res2.length < minCutSize) { - minCutSize = res2.length; - minCut = [res2, metaNodeMap2]; - } - } // end of main loop - - - // Construct result - var resEdges = minCut[0].map(function (e) { - return edges[e[0]]; - }); - var partition1 = []; - var partition2 = []; - - // traverse metaNodeMap for best cut - var witnessNodePartition = minCut[1][0]; - for (var i = 0; i < minCut[1].length; i++) { - var partitionId = minCut[1][i]; - if (partitionId === witnessNodePartition) { - partition1.push(nodes[i]); - } else { - partition2.push(nodes[i]); - } - } - - var ret = { - cut: eles.spawn(cy, resEdges), - partition1: eles.spawn(partition1), - partition2: eles.spawn(partition2) - }; - - return ret; - } -}; // elesfn - - -module.exports = elesfn; - -/***/ }), -/* 35 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); - -// search, spanning trees, etc -var elesfn = { - - // kruskal's algorithm (finds min spanning tree, assuming undirected graph) - // implemented from pseudocode from wikipedia - kruskal: function kruskal(weightFn) { - var cy = this.cy(); - - weightFn = is.fn(weightFn) ? weightFn : function () { - return 1; - }; // if not specified, assume each edge has equal weight (1) - - function findSet(ele) { - for (var i = 0; i < forest.length; i++) { - var eles = forest[i]; - - if (eles.anySame(ele)) { - return { - eles: eles, - index: i - }; - } - } - } - - var A = cy.collection(cy, []); - var forest = []; - var nodes = this.nodes(); - - for (var i = 0; i < nodes.length; i++) { - forest.push(nodes[i].collection()); - } - - var edges = this.edges(); - var S = edges.toArray().sort(function (a, b) { - var weightA = weightFn(a); - var weightB = weightFn(b); - - return weightA - weightB; - }); - - for (var i = 0; i < S.length; i++) { - var edge = S[i]; - var u = edge.source()[0]; - var v = edge.target()[0]; - var setU = findSet(u); - var setV = findSet(v); - - if (setU.index !== setV.index) { - A = A.add(edge); - - // combine forests for u and v - forest[setU.index] = setU.eles.add(setV.eles); - forest.splice(setV.index, 1); - } - } - - return nodes.add(A); - } -}; - -module.exports = elesfn; - -/***/ }), -/* 36 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); - -var elesfn = { - - pageRank: function pageRank(options) { - options = options || {}; - - var normalizeVector = function normalizeVector(vector) { - var length = vector.length; - - // First, get sum of all elements - var total = 0; - for (var i = 0; i < length; i++) { - total += vector[i]; - } - - // Now, divide each by the sum of all elements - for (var i = 0; i < length; i++) { - vector[i] = vector[i] / total; - } - }; - - // dampingFactor - optional - if (options != null && options.dampingFactor != null) { - var dampingFactor = options.dampingFactor; - } else { - var dampingFactor = 0.8; // Default damping factor - } - - // desired precision - optional - if (options != null && options.precision != null) { - var epsilon = options.precision; - } else { - var epsilon = 0.000001; // Default precision - } - - // Max number of iterations - optional - if (options != null && options.iterations != null) { - var numIter = options.iterations; - } else { - var numIter = 200; // Default number of iterations - } - - // Weight function - optional - if (options != null && options.weight != null && is.fn(options.weight)) { - var weightFn = options.weight; - } else { - // If not specified, assume each edge has equal weight (1) - var weightFn = function weightFn(e) { - return 1; - }; - } - - var cy = this._private.cy; - var edges = this.edges().stdFilter(function (e) { - return !e.isLoop(); - }); - var nodes = this.nodes(); - var numNodes = nodes.length; - var numEdges = edges.length; - - // Create numerical identifiers for each node - // mapping: node id -> position in nodes array - // for reverse mapping, simply use nodes array - var id2position = {}; - for (var i = 0; i < numNodes; i++) { - id2position[nodes[i].id()] = i; - } - - // Construct transposed adjacency matrix - // First lets have a zeroed matrix of the right size - // We'll also keep track of the sum of each column - var matrix = []; - var columnSum = []; - var additionalProb = (1 - dampingFactor) / numNodes; - - // Create null matric - for (var i = 0; i < numNodes; i++) { - var newRow = []; - for (var j = 0; j < numNodes; j++) { - newRow.push(0.0); - } - matrix.push(newRow); - columnSum.push(0.0); - } - - // Now, process edges - for (var i = 0; i < numEdges; i++) { - var edge = edges[i]; - var s = id2position[edge.source().id()]; - var t = id2position[edge.target().id()]; - var w = weightFn(edge); - - // Update matrix - matrix[t][s] += w; - - // Update column sum - columnSum[s] += w; - } - - // Add additional probability based on damping factor - // Also, take into account columns that have sum = 0 - var p = 1.0 / numNodes + additionalProb; // Shorthand - // Traverse matrix, column by column - for (var j = 0; j < numNodes; j++) { - if (columnSum[j] === 0) { - // No 'links' out from node jth, assume equal probability for each possible node - for (var i = 0; i < numNodes; i++) { - matrix[i][j] = p; - } - } else { - // Node jth has outgoing link, compute normalized probabilities - for (var i = 0; i < numNodes; i++) { - matrix[i][j] = matrix[i][j] / columnSum[j] + additionalProb; - } - } - } - - // Compute dominant eigenvector using power method - var eigenvector = []; - var nullVector = []; - var previous; - - // Start with a vector of all 1's - // Also, initialize a null vector which will be used as shorthand - for (var i = 0; i < numNodes; i++) { - eigenvector.push(1.0); - nullVector.push(0.0); - } - - for (var iter = 0; iter < numIter; iter++) { - // New array with all 0's - var temp = nullVector.slice(0); - - // Multiply matrix with previous result - for (var i = 0; i < numNodes; i++) { - for (var j = 0; j < numNodes; j++) { - temp[i] += matrix[i][j] * eigenvector[j]; - } - } - - normalizeVector(temp); - previous = eigenvector; - eigenvector = temp; - - var diff = 0; - // Compute difference (squared module) of both vectors - for (var i = 0; i < numNodes; i++) { - diff += Math.pow(previous[i] - eigenvector[i], 2); - } - - // If difference is less than the desired threshold, stop iterating - if (diff < epsilon) { - break; - } - } - - // Construct result - var res = { - rank: function rank(node) { - if (is.string(node)) { - // is a selector string - var nodeId = cy.filter(node)[0].id(); - } else { - // is a node object - var nodeId = node.id(); - } - return eigenvector[id2position[nodeId]]; - } - }; - - return res; - } // pageRank - -}; // elesfn - -module.exports = elesfn; - -/***/ }), -/* 37 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var define = __webpack_require__(3); - -var elesfn = { - animate: define.animate(), - animation: define.animation(), - animated: define.animated(), - clearQueue: define.clearQueue(), - delay: define.delay(), - delayAnimation: define.delayAnimation(), - stop: define.stop() -}; - -module.exports = elesfn; - -/***/ }), -/* 38 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var Set = __webpack_require__(9); - -var elesfn = { - classes: function classes(_classes) { - _classes = (_classes || '').match(/\S+/g) || []; - var self = this; - var changed = []; - var classesMap = new Set(_classes); - - // check and update each ele - - var _loop = function _loop(j) { - var ele = self[j]; - var _p = ele._private; - var eleClasses = _p.classes; - var changedEle = false; - - // check if ele has all of the passed classes - classesMap.forEach(function (cls) { - var eleHasClass = eleClasses.has(cls); - - if (!eleHasClass) { - changedEle = true; - } - }); - - // check if ele has classes outside of those passed - if (!changedEle) { - eleClasses.forEach(function (eleCls) { - var specdClass = classesMap.has(eleCls); - - if (!specdClass) { - changedEle = true; - } - }); - } - - if (changedEle) { - _p.classes = new Set(classesMap); - - changed.push(ele); - } - }; - - for (var j = 0; j < self.length; j++) { - _loop(j); - } - - // trigger update style on those eles that had class changes - if (changed.length > 0) { - this.spawn(changed).updateStyle().emit('class'); - } - - return self; - }, - - addClass: function addClass(classes) { - return this.toggleClass(classes, true); - }, - - hasClass: function hasClass(className) { - var ele = this[0]; - return ele != null && ele._private.classes.has(className); - }, - - toggleClass: function toggleClass(classesStr, toggle) { - var classes = classesStr.match(/\S+/g) || []; - var self = this; - var changed = []; // eles who had classes changed - - for (var i = 0, il = self.length; i < il; i++) { - var _ele = self[i]; - var _changedEle = false; - - for (var j = 0; j < classes.length; j++) { - var cls = classes[j]; - var _eleClasses = _ele._private.classes; - var hasClass = _eleClasses.has(cls); - var shouldAdd = toggle || toggle === undefined && !hasClass; - - if (shouldAdd) { - _eleClasses.add(cls); - - if (!hasClass && !_changedEle) { - changed.push(_ele); - _changedEle = true; - } - } else { - // then remove - _eleClasses.delete(cls); - - if (hasClass && !_changedEle) { - changed.push(_ele); - _changedEle = true; - } - } - } // for j classes - } // for i eles - - // trigger update style on those eles that had class changes - if (changed.length > 0) { - this.spawn(changed).updateStyle().emit('class'); - } - - return self; - }, - - removeClass: function removeClass(classes) { - return this.toggleClass(classes, false); - }, - - flashClass: function flashClass(classes, duration) { - var self = this; - - if (duration == null) { - duration = 250; - } else if (duration === 0) { - return self; // nothing to do really - } - - self.addClass(classes); - setTimeout(function () { - self.removeClass(classes); - }, duration); - - return self; - } -}; - -module.exports = elesfn; - -/***/ }), -/* 39 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); -var Selector = __webpack_require__(6); - -var elesfn = { - allAre: function allAre(selector) { - var selObj = new Selector(selector); - - return this.every(function (ele) { - return selObj.matches(ele); - }); - }, - - is: function is(selector) { - var selObj = new Selector(selector); - - return this.some(function (ele) { - return selObj.matches(ele); - }); - }, - - some: function some(fn, thisArg) { - for (var i = 0; i < this.length; i++) { - var ret = !thisArg ? fn(this[i], i, this) : fn.apply(thisArg, [this[i], i, this]); - - if (ret) { - return true; - } - } - - return false; - }, - - every: function every(fn, thisArg) { - for (var i = 0; i < this.length; i++) { - var ret = !thisArg ? fn(this[i], i, this) : fn.apply(thisArg, [this[i], i, this]); - - if (!ret) { - return false; - } - } - - return true; - }, - - same: function same(collection) { - collection = this.cy().collection(collection); - - // cheap extra check - if (this.length !== collection.length) { - return false; - } - - return this.every(function (ele) { - return collection.hasElementWithId(ele.id()); - }); - }, - - anySame: function anySame(collection) { - collection = this.cy().collection(collection); - - return this.some(function (ele) { - return collection.hasElementWithId(ele.id()); - }); - }, - - allAreNeighbors: function allAreNeighbors(collection) { - collection = this.cy().collection(collection); - - var nhood = this.neighborhood(); - - return collection.every(function (ele) { - return nhood.hasElementWithId(ele.id()); - }); - }, - - contains: function contains(collection) { - collection = this.cy().collection(collection); - - var self = this; - - return collection.every(function (ele) { - return self.hasElementWithId(ele.id()); - }); - } -}; - -elesfn.allAreNeighbours = elesfn.allAreNeighbors; -elesfn.has = elesfn.contains; - -module.exports = elesfn; - -/***/ }), -/* 40 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var Set = __webpack_require__(9); - -var elesfn = { - parent: function parent(selector) { - var parents = []; - - // optimisation for single ele call - if (this.length === 1) { - var parent = this[0]._private.parent; - - if (parent) { - return parent; - } - } - - for (var i = 0; i < this.length; i++) { - var ele = this[i]; - var _parent = ele._private.parent; - - if (_parent) { - parents.push(_parent); - } - } - - return this.spawn(parents, { unique: true }).filter(selector); - }, - - parents: function parents(selector) { - var parents = []; - - var eles = this.parent(); - while (eles.nonempty()) { - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - parents.push(ele); - } - - eles = eles.parent(); - } - - return this.spawn(parents, { unique: true }).filter(selector); - }, - - commonAncestors: function commonAncestors(selector) { - var ancestors = void 0; - - for (var i = 0; i < this.length; i++) { - var ele = this[i]; - var parents = ele.parents(); - - ancestors = ancestors || parents; - - ancestors = ancestors.intersect(parents); // current list must be common with current ele parents set - } - - return ancestors.filter(selector); - }, - - orphans: function orphans(selector) { - return this.stdFilter(function (ele) { - return ele.isOrphan(); - }).filter(selector); - }, - - nonorphans: function nonorphans(selector) { - return this.stdFilter(function (ele) { - return ele.isChild(); - }).filter(selector); - }, - - children: function children(selector) { - var children = []; - - for (var i = 0; i < this.length; i++) { - var ele = this[i]; - children = children.concat(ele._private.children); - } - - return this.spawn(children, { unique: true }).filter(selector); - }, - - siblings: function siblings(selector) { - return this.parent().children().not(this).filter(selector); - }, - - isParent: function isParent() { - var ele = this[0]; - - if (ele) { - return ele.isNode() && ele._private.children.length !== 0; - } - }, - - isChildless: function isChildless() { - var ele = this[0]; - - if (ele) { - return ele.isNode() && ele._private.children.length === 0; - } - }, - - isChild: function isChild() { - var ele = this[0]; - - if (ele) { - return ele.isNode() && ele._private.parent != null; - } - }, - - isOrphan: function isOrphan() { - var ele = this[0]; - - if (ele) { - return ele.isNode() && ele._private.parent == null; - } - }, - - descendants: function descendants(selector) { - var elements = []; - - function add(eles) { - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - - elements.push(ele); - - if (ele.children().nonempty()) { - add(ele.children()); - } - } - } - - add(this.children()); - - return this.spawn(elements, { unique: true }).filter(selector); - } -}; - -function forEachCompound(eles, fn, includeSelf, recursiveStep) { - var q = []; - var did = new Set(); - var cy = eles.cy(); - var hasCompounds = cy.hasCompoundNodes(); - - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - - if (includeSelf) { - q.push(ele); - } else if (hasCompounds) { - recursiveStep(q, did, ele); - } - } - - while (q.length > 0) { - var _ele = q.shift(); - - fn(_ele); - - did.add(_ele.id()); - - if (hasCompounds) { - recursiveStep(q, did, _ele); - } - } - - return eles; -} - -function addChildren(q, did, ele) { - if (ele.isParent()) { - var children = ele._private.children; - - for (var i = 0; i < children.length; i++) { - var child = children[i]; - - if (!did.has(child.id())) { - q.push(child); - } - } - } -} - -// very efficient version of eles.add( eles.descendants() ).forEach() -// for internal use -elesfn.forEachDown = function (fn) { - var includeSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - - return forEachCompound(this, fn, includeSelf, addChildren); -}; - -function addParent(q, did, ele) { - if (ele.isChild()) { - var parent = ele._private.parent; - - if (!did.has(parent.id())) { - q.push(parent); - } - } -} - -elesfn.forEachUp = function (fn) { - var includeSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - - return forEachCompound(this, fn, includeSelf, addParent); -}; - -function addParentAndChildren(q, did, ele) { - addParent(q, did, ele); - addChildren(q, did, ele); -} - -elesfn.forEachUpAndDown = function (fn) { - var includeSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - - return forEachCompound(this, fn, includeSelf, addParentAndChildren); -}; - -// aliases -elesfn.ancestors = elesfn.parents; - -module.exports = elesfn; - -/***/ }), -/* 41 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var define = __webpack_require__(3); -var fn = void 0, - elesfn = void 0; - -fn = elesfn = { - - data: define.data({ - field: 'data', - bindingEvent: 'data', - allowBinding: true, - allowSetting: true, - settingEvent: 'data', - settingTriggersEvent: true, - triggerFnName: 'trigger', - allowGetting: true, - immutableKeys: { - 'id': true, - 'source': true, - 'target': true, - 'parent': true - }, - updateStyle: true - }), - - removeData: define.removeData({ - field: 'data', - event: 'data', - triggerFnName: 'trigger', - triggerEvent: true, - immutableKeys: { - 'id': true, - 'source': true, - 'target': true, - 'parent': true - }, - updateStyle: true - }), - - scratch: define.data({ - field: 'scratch', - bindingEvent: 'scratch', - allowBinding: true, - allowSetting: true, - settingEvent: 'scratch', - settingTriggersEvent: true, - triggerFnName: 'trigger', - allowGetting: true, - updateStyle: true - }), - - removeScratch: define.removeData({ - field: 'scratch', - event: 'scratch', - triggerFnName: 'trigger', - triggerEvent: true, - updateStyle: true - }), - - rscratch: define.data({ - field: 'rscratch', - allowBinding: false, - allowSetting: true, - settingTriggersEvent: false, - allowGetting: true - }), - - removeRscratch: define.removeData({ - field: 'rscratch', - triggerEvent: false - }), - - id: function id() { - var ele = this[0]; - - if (ele) { - return ele._private.data.id; - } - } - -}; - -// aliases -fn.attr = fn.data; -fn.removeAttr = fn.removeData; - -module.exports = elesfn; - -/***/ }), -/* 42 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); - -var elesfn = {}; - -function defineDegreeFunction(callback) { - return function (includeLoops) { - var self = this; - - if (includeLoops === undefined) { - includeLoops = true; - } - - if (self.length === 0) { - return; - } - - if (self.isNode() && !self.removed()) { - var degree = 0; - var node = self[0]; - var connectedEdges = node._private.edges; - - for (var i = 0; i < connectedEdges.length; i++) { - var edge = connectedEdges[i]; - - if (!includeLoops && edge.isLoop()) { - continue; - } - - degree += callback(node, edge); - } - - return degree; - } else { - return; - } - }; -} - -util.extend(elesfn, { - degree: defineDegreeFunction(function (node, edge) { - if (edge.source().same(edge.target())) { - return 2; - } else { - return 1; - } - }), - - indegree: defineDegreeFunction(function (node, edge) { - if (edge.target().same(node)) { - return 1; - } else { - return 0; - } - }), - - outdegree: defineDegreeFunction(function (node, edge) { - if (edge.source().same(node)) { - return 1; - } else { - return 0; - } - }) -}); - -function defineDegreeBoundsFunction(degreeFn, callback) { - return function (includeLoops) { - var ret = void 0; - var nodes = this.nodes(); - - for (var i = 0; i < nodes.length; i++) { - var ele = nodes[i]; - var degree = ele[degreeFn](includeLoops); - if (degree !== undefined && (ret === undefined || callback(degree, ret))) { - ret = degree; - } - } - - return ret; - }; -} - -util.extend(elesfn, { - minDegree: defineDegreeBoundsFunction('degree', function (degree, min) { - return degree < min; - }), - - maxDegree: defineDegreeBoundsFunction('degree', function (degree, max) { - return degree > max; - }), - - minIndegree: defineDegreeBoundsFunction('indegree', function (degree, min) { - return degree < min; - }), - - maxIndegree: defineDegreeBoundsFunction('indegree', function (degree, max) { - return degree > max; - }), - - minOutdegree: defineDegreeBoundsFunction('outdegree', function (degree, min) { - return degree < min; - }), - - maxOutdegree: defineDegreeBoundsFunction('outdegree', function (degree, max) { - return degree > max; - }) -}); - -util.extend(elesfn, { - totalDegree: function totalDegree(includeLoops) { - var total = 0; - var nodes = this.nodes(); - - for (var i = 0; i < nodes.length; i++) { - total += nodes[i].degree(includeLoops); - } - - return total; - } -}); - -module.exports = elesfn; - -/***/ }), -/* 43 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); -var util = __webpack_require__(1); -var math = __webpack_require__(2); -var fn = void 0, - elesfn = void 0; - -fn = elesfn = {}; - -elesfn.renderedBoundingBox = function (options) { - var bb = this.boundingBox(options); - var cy = this.cy(); - var zoom = cy.zoom(); - var pan = cy.pan(); - - var x1 = bb.x1 * zoom + pan.x; - var x2 = bb.x2 * zoom + pan.x; - var y1 = bb.y1 * zoom + pan.y; - var y2 = bb.y2 * zoom + pan.y; - - return { - x1: x1, - x2: x2, - y1: y1, - y2: y2, - w: x2 - x1, - h: y2 - y1 - }; -}; - -elesfn.dirtyCompoundBoundsCache = function () { - var cy = this.cy(); - - if (!cy.styleEnabled() || !cy.hasCompoundNodes()) { - return this; - } - - this.forEachUp(function (ele) { - ele._private.compoundBoundsClean = false; - - if (ele.isParent()) { - ele.emit('bounds'); - } - }); - - return this; -}; - -elesfn.updateCompoundBounds = function () { - var cy = this.cy(); - - // save cycles for non compound graphs or when style disabled - if (!cy.styleEnabled() || !cy.hasCompoundNodes()) { - return this; - } - - // save cycles when batching -- but bounds will be stale (or not exist yet) - if (cy.batching()) { - return this; - } - - var updated = []; - - function update(parent) { - if (!parent.isParent()) { - return; - } - - var _p = parent._private; - var children = parent.children(); - var includeLabels = parent.pstyle('compound-sizing-wrt-labels').value === 'include'; - - var min = { - width: { - val: parent.pstyle('min-width').pfValue, - left: parent.pstyle('min-width-bias-left'), - right: parent.pstyle('min-width-bias-right') - }, - height: { - val: parent.pstyle('min-height').pfValue, - top: parent.pstyle('min-height-bias-top'), - bottom: parent.pstyle('min-height-bias-bottom') - } - }; - - var bb = children.boundingBox({ - includeLabels: includeLabels, - includeOverlays: false, - - // updating the compound bounds happens outside of the regular - // cache cycle (i.e. before fired events) - useCache: false - }); - var pos = _p.position; - - // if children take up zero area then keep position and fall back on stylesheet w/h - if (bb.w === 0 || bb.h === 0) { - bb = { - w: parent.pstyle('width').pfValue, - h: parent.pstyle('height').pfValue - }; - - bb.x1 = pos.x - bb.w / 2; - bb.x2 = pos.x + bb.w / 2; - bb.y1 = pos.y - bb.h / 2; - bb.y2 = pos.y + bb.h / 2; - } - - function computeBiasValues(propDiff, propBias, propBiasComplement) { - var biasDiff = 0; - var biasComplementDiff = 0; - var biasTotal = propBias + propBiasComplement; - - if (propDiff > 0 && biasTotal > 0) { - biasDiff = propBias / biasTotal * propDiff; - biasComplementDiff = propBiasComplement / biasTotal * propDiff; - } - return { - biasDiff: biasDiff, - biasComplementDiff: biasComplementDiff - }; - } - - function computePaddingValues(width, height, paddingObject, relativeTo) { - // Assuming percentage is number from 0 to 1 - if (paddingObject.units === '%') { - switch (relativeTo) { - case 'width': - return width > 0 ? paddingObject.pfValue * width : 0; - case 'height': - return height > 0 ? paddingObject.pfValue * height : 0; - case 'average': - return width > 0 && height > 0 ? paddingObject.pfValue * (width + height) / 2 : 0; - case 'min': - return width > 0 && height > 0 ? width > height ? paddingObject.pfValue * height : paddingObject.pfValue * width : 0; - case 'max': - return width > 0 && height > 0 ? width > height ? paddingObject.pfValue * width : paddingObject.pfValue * height : 0; - default: - return 0; - } - } else if (paddingObject.units === 'px') { - return paddingObject.pfValue; - } else { - return 0; - } - } - - var leftVal = min.width.left.value; - if (min.width.left.units === 'px' && min.width.val > 0) { - leftVal = leftVal * 100 / min.width.val; - } - var rightVal = min.width.right.value; - if (min.width.right.units === 'px' && min.width.val > 0) { - rightVal = rightVal * 100 / min.width.val; - } - - var topVal = min.height.top.value; - if (min.height.top.units === 'px' && min.height.val > 0) { - topVal = topVal * 100 / min.height.val; - } - - var bottomVal = min.height.bottom.value; - if (min.height.bottom.units === 'px' && min.height.val > 0) { - bottomVal = bottomVal * 100 / min.height.val; - } - - var widthBiasDiffs = computeBiasValues(min.width.val - bb.w, leftVal, rightVal); - var diffLeft = widthBiasDiffs.biasDiff; - var diffRight = widthBiasDiffs.biasComplementDiff; - - var heightBiasDiffs = computeBiasValues(min.height.val - bb.h, topVal, bottomVal); - var diffTop = heightBiasDiffs.biasDiff; - var diffBottom = heightBiasDiffs.biasComplementDiff; - - _p.autoPadding = computePaddingValues(bb.w, bb.h, parent.pstyle('padding'), parent.pstyle('padding-relative-to').value); - - _p.autoWidth = Math.max(bb.w, min.width.val); - pos.x = (-diffLeft + bb.x1 + bb.x2 + diffRight) / 2; - - _p.autoHeight = Math.max(bb.h, min.height.val); - pos.y = (-diffTop + bb.y1 + bb.y2 + diffBottom) / 2; - - updated.push(parent); - } - - for (var i = 0; i < this.length; i++) { - var ele = this[i]; - var _p = ele._private; - - if (!_p.compoundBoundsClean) { - update(ele); - - if (!cy._private.batchingStyle) { - _p.compoundBoundsClean = true; - } - } - } - - return this; -}; - -var noninf = function noninf(x) { - if (x === Infinity || x === -Infinity) { - return 0; - } - - return x; -}; - -var updateBounds = function updateBounds(b, x1, y1, x2, y2) { - // don't update with zero area boxes - if (x2 - x1 === 0 || y2 - y1 === 0) { - return; - } - - // don't update with null dim - if (x1 == null || y1 == null || x2 == null || y2 == null) { - return; - } - - b.x1 = x1 < b.x1 ? x1 : b.x1; - b.x2 = x2 > b.x2 ? x2 : b.x2; - b.y1 = y1 < b.y1 ? y1 : b.y1; - b.y2 = y2 > b.y2 ? y2 : b.y2; -}; - -var updateBoundsFromBox = function updateBoundsFromBox(b, b2) { - return updateBounds(b, b2.x1, b2.y1, b2.x2, b2.y2); -}; - -var prefixedProperty = function prefixedProperty(obj, field, prefix) { - return util.getPrefixedProperty(obj, field, prefix); -}; - -var updateBoundsFromArrow = function updateBoundsFromArrow(bounds, ele, prefix) { - if (ele.cy().headless()) { - return; - } - - var _p = ele._private; - var rstyle = _p.rstyle; - var halfArW = rstyle.arrowWidth / 2; - var arrowType = ele.pstyle(prefix + '-arrow-shape').value; - var x = void 0; - var y = void 0; - - if (arrowType !== 'none') { - if (prefix === 'source') { - x = rstyle.srcX; - y = rstyle.srcY; - } else if (prefix === 'target') { - x = rstyle.tgtX; - y = rstyle.tgtY; - } else { - x = rstyle.midX; - y = rstyle.midY; - } - - updateBounds(bounds, x - halfArW, y - halfArW, x + halfArW, y + halfArW); - } -}; - -var updateBoundsFromLabel = function updateBoundsFromLabel(bounds, ele, prefix) { - if (ele.cy().headless()) { - return; - } - - var prefixDash = void 0; - - if (prefix) { - prefixDash = prefix + '-'; - } else { - prefixDash = ''; - } - - var _p = ele._private; - var rstyle = _p.rstyle; - var label = ele.pstyle(prefixDash + 'label').strValue; - - if (label) { - var halign = ele.pstyle('text-halign'); - var valign = ele.pstyle('text-valign'); - var labelWidth = prefixedProperty(rstyle, 'labelWidth', prefix); - var labelHeight = prefixedProperty(rstyle, 'labelHeight', prefix); - var labelX = prefixedProperty(rstyle, 'labelX', prefix); - var labelY = prefixedProperty(rstyle, 'labelY', prefix); - var marginX = ele.pstyle(prefixDash + 'text-margin-x').pfValue; - var marginY = ele.pstyle(prefixDash + 'text-margin-y').pfValue; - var isEdge = ele.isEdge(); - var rotation = ele.pstyle(prefixDash + 'text-rotation'); - var outlineWidth = ele.pstyle('text-outline-width').pfValue; - var borderWidth = ele.pstyle('text-border-width').pfValue; - var halfBorderWidth = borderWidth / 2; - var padding = ele.pstyle('text-background-padding').pfValue; - - var lh = labelHeight + 2 * padding; - var lw = labelWidth + 2 * padding; - var lw_2 = lw / 2; - var lh_2 = lh / 2; - var lx1 = void 0, - lx2 = void 0, - ly1 = void 0, - ly2 = void 0; - - if (isEdge) { - lx1 = labelX - lw_2; - lx2 = labelX + lw_2; - ly1 = labelY - lh_2; - ly2 = labelY + lh_2; - } else { - switch (halign.value) { - case 'left': - lx1 = labelX - lw; - lx2 = labelX; - break; - - case 'center': - lx1 = labelX - lw_2; - lx2 = labelX + lw_2; - break; - - case 'right': - lx1 = labelX; - lx2 = labelX + lw; - break; - } - - switch (valign.value) { - case 'top': - ly1 = labelY - lh; - ly2 = labelY; - break; - - case 'center': - ly1 = labelY - lh_2; - ly2 = labelY + lh_2; - break; - - case 'bottom': - ly1 = labelY; - ly2 = labelY + lh; - break; - } - } - - var isAutorotate = isEdge && rotation.strValue === 'autorotate'; - var isPfValue = rotation.pfValue != null && rotation.pfValue !== 0; - - if (isAutorotate || isPfValue) { - var theta = isAutorotate ? prefixedProperty(_p.rstyle, 'labelAngle', prefix) : rotation.pfValue; - var cos = Math.cos(theta); - var sin = Math.sin(theta); - - var rotate = function rotate(x, y) { - x = x - labelX; - y = y - labelY; - - return { - x: x * cos - y * sin + labelX, - y: x * sin + y * cos + labelY - }; - }; - - var px1y1 = rotate(lx1, ly1); - var px1y2 = rotate(lx1, ly2); - var px2y1 = rotate(lx2, ly1); - var px2y2 = rotate(lx2, ly2); - - lx1 = Math.min(px1y1.x, px1y2.x, px2y1.x, px2y2.x); - lx2 = Math.max(px1y1.x, px1y2.x, px2y1.x, px2y2.x); - ly1 = Math.min(px1y1.y, px1y2.y, px2y1.y, px2y2.y); - ly2 = Math.max(px1y1.y, px1y2.y, px2y1.y, px2y2.y); - } - - lx1 += marginX - Math.max(outlineWidth, halfBorderWidth); - lx2 += marginX + Math.max(outlineWidth, halfBorderWidth); - ly1 += marginY - Math.max(outlineWidth, halfBorderWidth); - ly2 += marginY + Math.max(outlineWidth, halfBorderWidth); - - updateBounds(bounds, lx1, ly1, lx2, ly2); - } - - return bounds; -}; - -// get the bounding box of the elements (in raw model position) -var boundingBoxImpl = function boundingBoxImpl(ele, options) { - var cy = ele._private.cy; - var styleEnabled = cy.styleEnabled(); - var headless = cy.headless(); - - var bounds = { - x1: Infinity, - y1: Infinity, - x2: -Infinity, - y2: -Infinity - }; - - var _p = ele._private; - var display = styleEnabled ? ele.pstyle('display').value : 'element'; - var isNode = ele.isNode(); - var isEdge = ele.isEdge(); - var ex1 = void 0, - ex2 = void 0, - ey1 = void 0, - ey2 = void 0; // extrema of body / lines - var x = void 0, - y = void 0; // node pos - var displayed = display !== 'none'; - - if (displayed) { - var overlayOpacity = 0; - var overlayPadding = 0; - - if (styleEnabled && options.includeOverlays) { - overlayOpacity = ele.pstyle('overlay-opacity').value; - - if (overlayOpacity !== 0) { - overlayPadding = ele.pstyle('overlay-padding').value; - } - } - - var w = 0; - var wHalf = 0; - - if (styleEnabled) { - w = ele.pstyle('width').pfValue; - wHalf = w / 2; - } - - if (isNode && options.includeNodes) { - var pos = ele.position(); - x = pos.x; - y = pos.y; - var _w = ele.outerWidth(); - var halfW = _w / 2; - var h = ele.outerHeight(); - var halfH = h / 2; - - // handle node dimensions - ///////////////////////// - - ex1 = x - halfW - overlayPadding; - ex2 = x + halfW + overlayPadding; - ey1 = y - halfH - overlayPadding; - ey2 = y + halfH + overlayPadding; - - updateBounds(bounds, ex1, ey1, ex2, ey2); - } else if (isEdge && options.includeEdges) { - var rstyle = _p.rstyle || {}; - - // handle edge dimensions (rough box estimate) - ////////////////////////////////////////////// - if (styleEnabled && !headless) { - ex1 = Math.min(rstyle.srcX, rstyle.midX, rstyle.tgtX); - ex2 = Math.max(rstyle.srcX, rstyle.midX, rstyle.tgtX); - ey1 = Math.min(rstyle.srcY, rstyle.midY, rstyle.tgtY); - ey2 = Math.max(rstyle.srcY, rstyle.midY, rstyle.tgtY); - - // take into account edge width - ex1 -= wHalf; - ex2 += wHalf; - ey1 -= wHalf; - ey2 += wHalf; - - updateBounds(bounds, ex1, ey1, ex2, ey2); - } - - // precise haystacks - //////////////////// - if (styleEnabled && !headless && ele.pstyle('curve-style').strValue === 'haystack') { - var hpts = rstyle.haystackPts || []; - - ex1 = hpts[0].x; - ey1 = hpts[0].y; - ex2 = hpts[1].x; - ey2 = hpts[1].y; - - if (ex1 > ex2) { - var temp = ex1; - ex1 = ex2; - ex2 = temp; - } - - if (ey1 > ey2) { - var _temp = ey1; - ey1 = ey2; - ey2 = _temp; - } - - updateBounds(bounds, ex1 - wHalf, ey1 - wHalf, ex2 + wHalf, ey2 + wHalf); - - // handle points along edge - /////////////////////////// - } else { - var pts = rstyle.bezierPts || rstyle.linePts || []; - - for (var j = 0; j < pts.length; j++) { - var pt = pts[j]; - - ex1 = pt.x - wHalf; - ex2 = pt.x + wHalf; - ey1 = pt.y - wHalf; - ey2 = pt.y + wHalf; - - updateBounds(bounds, ex1, ey1, ex2, ey2); - } - - // fallback on source and target positions - ////////////////////////////////////////// - if (pts.length === 0) { - var n1 = ele.source(); - var n1pos = n1.position(); - - var n2 = ele.target(); - var n2pos = n2.position(); - - ex1 = n1pos.x; - ex2 = n2pos.x; - ey1 = n1pos.y; - ey2 = n2pos.y; - - if (ex1 > ex2) { - var _temp2 = ex1; - ex1 = ex2; - ex2 = _temp2; - } - - if (ey1 > ey2) { - var _temp3 = ey1; - ey1 = ey2; - ey2 = _temp3; - } - - // take into account edge width - ex1 -= wHalf; - ex2 += wHalf; - ey1 -= wHalf; - ey2 += wHalf; - - updateBounds(bounds, ex1, ey1, ex2, ey2); - } - } - } // edges - - - // handle edge arrow size - ///////////////////////// - - if (styleEnabled && options.includeEdges && isEdge) { - updateBoundsFromArrow(bounds, ele, 'mid-source', options); - updateBoundsFromArrow(bounds, ele, 'mid-target', options); - updateBoundsFromArrow(bounds, ele, 'source', options); - updateBoundsFromArrow(bounds, ele, 'target', options); - } - - // ghost - //////// - - if (styleEnabled) { - var ghost = ele.pstyle('ghost').value === 'yes'; - - if (ghost) { - var gx = ele.pstyle('ghost-offset-x').pfValue; - var gy = ele.pstyle('ghost-offset-y').pfValue; - - updateBounds(bounds, bounds.x1 + gx, bounds.y1 + gy, bounds.x2 + gx, bounds.y2 + gy); - } - } - - // overlay - ////////// - - if (styleEnabled) { - - ex1 = bounds.x1; - ex2 = bounds.x2; - ey1 = bounds.y1; - ey2 = bounds.y2; - - updateBounds(bounds, ex1 - overlayPadding, ey1 - overlayPadding, ex2 + overlayPadding, ey2 + overlayPadding); - } - - // handle label dimensions - ////////////////////////// - - if (styleEnabled && options.includeLabels) { - updateBoundsFromLabel(bounds, ele, null, options); - - if (isEdge) { - updateBoundsFromLabel(bounds, ele, 'source', options); - updateBoundsFromLabel(bounds, ele, 'target', options); - } - } // style enabled for labels - } // if displayed - - bounds.x1 = noninf(bounds.x1); - bounds.y1 = noninf(bounds.y1); - bounds.x2 = noninf(bounds.x2); - bounds.y2 = noninf(bounds.y2); - bounds.w = noninf(bounds.x2 - bounds.x1); - bounds.h = noninf(bounds.y2 - bounds.y1); - - // expand bounds by 1 because antialiasing can increase the visual/effective size by 1 on all sides - if (bounds.w > 0 && bounds.h > 0 && displayed) { - math.expandBoundingBox(bounds, 1); - } - - return bounds; -}; - -var tf = function tf(val) { - if (val) { - return 't'; - } else { - return 'f'; - } -}; - -var getKey = function getKey(opts) { - var key = ''; - - key += tf(opts.incudeNodes); - key += tf(opts.includeEdges); - key += tf(opts.includeLabels); - key += tf(opts.includeOverlays); - - return key; -}; - -var cachedBoundingBoxImpl = function cachedBoundingBoxImpl(ele, opts) { - var _p = ele._private; - var bb = void 0; - var headless = ele.cy().headless(); - var key = opts === defBbOpts ? defBbOptsKey : getKey(opts); - - if (!opts.useCache || headless || !_p.bbCache || !_p.bbCache[key]) { - bb = boundingBoxImpl(ele, opts); - - if (!headless) { - _p.bbCache = _p.bbCache || {}; - _p.bbCache[key] = bb; - } - } else { - bb = _p.bbCache[key]; - } - - return bb; -}; - -var defBbOpts = { - includeNodes: true, - includeEdges: true, - includeLabels: true, - includeOverlays: true, - useCache: true -}; - -var defBbOptsKey = getKey(defBbOpts); - -function filledBbOpts(options) { - return { - includeNodes: util.default(options.includeNodes, defBbOpts.includeNodes), - includeEdges: util.default(options.includeEdges, defBbOpts.includeEdges), - includeLabels: util.default(options.includeLabels, defBbOpts.includeLabels), - includeOverlays: util.default(options.includeOverlays, defBbOpts.includeOverlays), - useCache: util.default(options.useCache, defBbOpts.useCache) - }; -} - -elesfn.boundingBox = function (options) { - // the main usecase is ele.boundingBox() for a single element with no/def options - // specified s.t. the cache is used, so check for this case to make it faster by - // avoiding the overhead of the rest of the function - if (this.length === 1 && this[0]._private.bbCache && (options === undefined || options.useCache === undefined || options.useCache === true)) { - if (options === undefined) { - options = defBbOpts; - } else { - options = filledBbOpts(options); - } - - return cachedBoundingBoxImpl(this[0], options); - } - - var bounds = { - x1: Infinity, - y1: Infinity, - x2: -Infinity, - y2: -Infinity - }; - - options = options || util.staticEmptyObject(); - - var opts = filledBbOpts(options); - - var eles = this; - var cy = eles.cy(); - var styleEnabled = cy.styleEnabled(); - - if (styleEnabled) { - this.recalculateRenderedStyle(opts.useCache); - } - - this.updateCompoundBounds(); - - var updatedEdge = {}; // use to avoid duplicated edge updates - - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - - if (styleEnabled && ele.isEdge() && ele.pstyle('curve-style').strValue === 'bezier' && !updatedEdge[ele.id()]) { - var edges = ele.parallelEdges(); - - for (var j = 0; j < edges.length; j++) { - // make all as updated - updatedEdge[edges[j].id()] = true; - } - - edges.recalculateRenderedStyle(opts.useCache); // n.b. ele.parallelEdges() single is cached - } - - updateBoundsFromBox(bounds, cachedBoundingBoxImpl(ele, opts)); - } - - bounds.x1 = noninf(bounds.x1); - bounds.y1 = noninf(bounds.y1); - bounds.x2 = noninf(bounds.x2); - bounds.y2 = noninf(bounds.y2); - bounds.w = noninf(bounds.x2 - bounds.x1); - bounds.h = noninf(bounds.y2 - bounds.y1); - - return bounds; -}; - -// private helper to get bounding box for custom node positions -// - good for perf in certain cases but currently requires dirtying the rendered style -// - would be better to not modify the nodes but the nodes are read directly everywhere in the renderer... -// - try to use for only things like discrete layouts where the node position would change anyway -elesfn.boundingBoxAt = function (fn) { - var nodes = this.nodes(); - - if (is.plainObject(fn)) { - var obj = fn; - - fn = function fn() { - return obj; - }; - } - - // save the current position and set the new one, per node - for (var i = 0; i < nodes.length; i++) { - var n = nodes[i]; - var _p = n._private; - var pos = _p.position; - var newPos = fn.call(n, n, i); - - _p.bbAtOldPos = { x: pos.x, y: pos.y }; - - if (newPos) { - pos.x = newPos.x; - pos.y = newPos.y; - } - } - - this.emit('dirty'); // let the renderer know we've manually dirtied rendered dim calcs - - nodes.dirtyCompoundBoundsCache().updateCompoundBounds(); - - var bb = this.boundingBox({ useCache: false }); - - // restore the original position, per node - for (var _i = 0; _i < nodes.length; _i++) { - var _n = nodes[_i]; - var _p2 = _n._private; - var _pos = _n._private.position; - var old = _p2.bbAtOldPos; - - _pos.x = old.x; - _pos.y = old.y; - } - - nodes.dirtyCompoundBoundsCache(); - - this.emit('dirty'); // let the renderer know we've manually dirtied rendered dim calcs - - return bb; -}; - -fn.boundingbox = fn.boundingBox; -fn.renderedBoundingbox = fn.renderedBoundingBox; - -module.exports = elesfn; - -/***/ }), -/* 44 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var ifEdge = function ifEdge(self, then) { - if (self.isEdge()) { - return then(self.renderer()); - } -}; - -module.exports = { - controlPoints: function controlPoints() { - var _this = this; - - return ifEdge(this, function (renderer) { - return renderer.getControlPoints(_this); - }); - }, - segmentPoints: function segmentPoints() { - var _this2 = this; - - return ifEdge(this, function (renderer) { - return renderer.getSegmentPoints(_this2); - }); - }, - sourceEndpoint: function sourceEndpoint() { - var _this3 = this; - - return ifEdge(this, function (renderer) { - return renderer.getSourceEndpoint(_this3); - }); - }, - targetEndpoint: function targetEndpoint() { - var _this4 = this; - - return ifEdge(this, function (renderer) { - return renderer.getTargetEndpoint(_this4); - }); - }, - midpoint: function midpoint() { - var _this5 = this; - - return ifEdge(this, function (renderer) { - return renderer.getEdgeMidpoint(_this5); - }); - } -}; - -/***/ }), -/* 45 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var position = __webpack_require__(46); -var bounds = __webpack_require__(43); -var widthHeight = __webpack_require__(47); -var edgePoints = __webpack_require__(44); - -module.exports = util.assign({}, position, bounds, widthHeight, edgePoints); - -/***/ }), -/* 46 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var define = __webpack_require__(3); -var is = __webpack_require__(0); -var math = __webpack_require__(2); -var fn = void 0, - elesfn = void 0; - -var beforePositionSet = function beforePositionSet(eles, newPos) { - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - - if (ele.isParent() && !ele.locked()) { - var oldPos = ele._private.position; - var delta = { - x: newPos.x - oldPos.x, - y: newPos.y - oldPos.y - }; - - eles.children().shift(delta); - } - } -}; - -fn = elesfn = { - - position: define.data({ - field: 'position', - bindingEvent: 'position', - allowBinding: true, - allowSetting: true, - settingEvent: 'position', - settingTriggersEvent: true, - triggerFnName: 'emitAndNotify', - allowGetting: true, - validKeys: ['x', 'y'], - beforeGet: function beforeGet(ele) { - ele.updateCompoundBounds(); - }, - beforeSet: beforePositionSet, - onSet: function onSet(eles) { - eles.dirtyCompoundBoundsCache(); - }, - canSet: function canSet(ele) { - return !ele.locked(); - } - }), - - // position but no notification to renderer - silentPosition: define.data({ - field: 'position', - bindingEvent: 'position', - allowBinding: false, - allowSetting: true, - settingEvent: 'position', - settingTriggersEvent: false, - triggerFnName: 'trigger', - allowGetting: false, - validKeys: ['x', 'y'], - beforeSet: beforePositionSet, - onSet: function onSet(eles) { - eles.dirtyCompoundBoundsCache(); - }, - canSet: function canSet(ele) { - return !ele.locked(); - } - }), - - positions: function positions(pos, silent) { - if (is.plainObject(pos)) { - if (silent) { - this.silentPosition(pos); - } else { - this.position(pos); - } - } else if (is.fn(pos)) { - var _fn = pos; - var cy = this.cy(); - - cy.startBatch(); - - for (var i = 0; i < this.length; i++) { - var ele = this[i]; - var _pos = void 0; - - if (_pos = _fn(ele, i)) { - if (silent) { - ele.silentPosition(_pos); - } else { - ele.position(_pos); - } - } - } - - cy.endBatch(); - } - - return this; // chaining - }, - - silentPositions: function silentPositions(pos) { - return this.positions(pos, true); - }, - - shift: function shift(dim, val) { - var delta = void 0; - - if (is.plainObject(dim)) { - delta = dim; - } else if (is.string(dim) && is.number(val)) { - delta = { x: 0, y: 0 }; - - delta[dim] = val; - } - - if (delta != null) { - for (var i = 0; i < this.length; i++) { - var ele = this[i]; - var pos = ele.position(); - - ele.position({ - x: pos.x + delta.x, - y: pos.y + delta.y - }); - } - } - - return this; - }, - - // get/set the rendered (i.e. on screen) positon of the element - renderedPosition: function renderedPosition(dim, val) { - var ele = this[0]; - var cy = this.cy(); - var zoom = cy.zoom(); - var pan = cy.pan(); - var rpos = is.plainObject(dim) ? dim : undefined; - var setting = rpos !== undefined || val !== undefined && is.string(dim); - - if (ele && ele.isNode()) { - // must have an element and must be a node to return position - if (setting) { - for (var i = 0; i < this.length; i++) { - var _ele = this[i]; - - if (val !== undefined) { - // set one dimension - _ele.position(dim, (val - pan[dim]) / zoom); - } else if (rpos !== undefined) { - // set whole position - _ele.position(math.renderedToModelPosition(rpos, zoom, pan)); - } - } - } else { - // getting - var pos = ele.position(); - rpos = math.modelToRenderedPosition(pos, zoom, pan); - - if (dim === undefined) { - // then return the whole rendered position - return rpos; - } else { - // then return the specified dimension - return rpos[dim]; - } - } - } else if (!setting) { - return undefined; // for empty collection case - } - - return this; // chaining - }, - - // get/set the position relative to the parent - relativePosition: function relativePosition(dim, val) { - var ele = this[0]; - var cy = this.cy(); - var ppos = is.plainObject(dim) ? dim : undefined; - var setting = ppos !== undefined || val !== undefined && is.string(dim); - var hasCompoundNodes = cy.hasCompoundNodes(); - - if (ele && ele.isNode()) { - // must have an element and must be a node to return position - if (setting) { - for (var i = 0; i < this.length; i++) { - var _ele2 = this[i]; - var parent = hasCompoundNodes ? _ele2.parent() : null; - var hasParent = parent && parent.length > 0; - var relativeToParent = hasParent; - - if (hasParent) { - parent = parent[0]; - } - - var origin = relativeToParent ? parent.position() : { x: 0, y: 0 }; - - if (val !== undefined) { - // set one dimension - _ele2.position(dim, val + origin[dim]); - } else if (ppos !== undefined) { - // set whole position - _ele2.position({ - x: ppos.x + origin.x, - y: ppos.y + origin.y - }); - } - } - } else { - // getting - var pos = ele.position(); - var _parent = hasCompoundNodes ? ele.parent() : null; - var _hasParent = _parent && _parent.length > 0; - var _relativeToParent = _hasParent; - - if (_hasParent) { - _parent = _parent[0]; - } - - var _origin = _relativeToParent ? _parent.position() : { x: 0, y: 0 }; - - ppos = { - x: pos.x - _origin.x, - y: pos.y - _origin.y - }; - - if (dim === undefined) { - // then return the whole rendered position - return ppos; - } else { - // then return the specified dimension - return ppos[dim]; - } - } - } else if (!setting) { - return undefined; // for empty collection case - } - - return this; // chaining - } -}; - -// aliases -fn.modelPosition = fn.point = fn.position; -fn.modelPositions = fn.points = fn.positions; -fn.renderedPoint = fn.renderedPosition; -fn.relativePoint = fn.relativePosition; - -module.exports = elesfn; - -/***/ }), -/* 47 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var fn = void 0, - elesfn = void 0; - -fn = elesfn = {}; - -var defineDimFns = function defineDimFns(opts) { - opts.uppercaseName = util.capitalize(opts.name); - opts.autoName = 'auto' + opts.uppercaseName; - opts.labelName = 'label' + opts.uppercaseName; - opts.outerName = 'outer' + opts.uppercaseName; - opts.uppercaseOuterName = util.capitalize(opts.outerName); - - fn[opts.name] = function dimImpl() { - var ele = this[0]; - var _p = ele._private; - var cy = _p.cy; - var styleEnabled = cy._private.styleEnabled; - - if (ele) { - if (styleEnabled) { - if (ele.isParent()) { - ele.updateCompoundBounds(); - - return _p[opts.autoName] || 0; - } - - var d = ele.pstyle(opts.name); - - switch (d.strValue) { - case 'label': - ele.recalculateRenderedStyle(); - - return _p.rstyle[opts.labelName] || 0; - - default: - return d.pfValue; - } - } else { - return 1; - } - } - }; - - fn['outer' + opts.uppercaseName] = function outerDimImpl() { - var ele = this[0]; - var _p = ele._private; - var cy = _p.cy; - var styleEnabled = cy._private.styleEnabled; - - if (ele) { - if (styleEnabled) { - var dim = ele[opts.name](); - var border = ele.pstyle('border-width').pfValue; // n.b. 1/2 each side - var padding = 2 * ele.padding(); - - return dim + border + padding; - } else { - return 1; - } - } - }; - - fn['rendered' + opts.uppercaseName] = function renderedDimImpl() { - var ele = this[0]; - - if (ele) { - var d = ele[opts.name](); - return d * this.cy().zoom(); - } - }; - - fn['rendered' + opts.uppercaseOuterName] = function renderedOuterDimImpl() { - var ele = this[0]; - - if (ele) { - var od = ele[opts.outerName](); - return od * this.cy().zoom(); - } - }; -}; - -defineDimFns({ - name: 'width' -}); - -defineDimFns({ - name: 'height' -}); - -elesfn.padding = function () { - var ele = this[0]; - var _p = ele._private; - if (ele.isParent()) { - ele.updateCompoundBounds(); - - if (_p.autoPadding !== undefined) { - return _p.autoPadding; - } else { - return ele.pstyle('padding').pfValue; - } - } else { - return ele.pstyle('padding').pfValue; - } -}; - -module.exports = elesfn; - -/***/ }), -/* 48 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var Emitter = __webpack_require__(10); -var define = __webpack_require__(3); -var is = __webpack_require__(0); -var util = __webpack_require__(1); -var Selector = __webpack_require__(6); - -var emitterOptions = { - qualifierCompare: function qualifierCompare(selector1, selector2) { - if (selector1 == null || selector2 == null) { - return selector1 == null && selector2 == null; - } else { - return selector1.sameText(selector2); - } - }, - eventMatches: function eventMatches(ele, listener, eventObj) { - var selector = listener.qualifier; - - if (selector != null) { - return ele !== eventObj.target && is.element(eventObj.target) && selector.matches(eventObj.target); - } - - return true; - }, - eventFields: function eventFields(ele) { - return { - cy: ele.cy(), - target: ele - }; - }, - callbackContext: function callbackContext(ele, listener, eventObj) { - return listener.qualifier != null ? eventObj.target : ele; - }, - beforeEmit: function beforeEmit(context, listener /*, eventObj*/) { - if (listener.conf && listener.conf.once) { - listener.conf.onceCollection.removeListener(listener.event, listener.qualifier, listener.callback); - } - }, - bubble: function bubble() { - return true; - }, - parent: function parent(ele) { - return ele.isChild() ? ele.parent() : ele.cy(); - } -}; - -var argSelector = function argSelector(arg) { - if (is.string(arg)) { - return new Selector(arg); - } else { - return arg; - } -}; - -var elesfn = { - createEmitter: function createEmitter() { - for (var i = 0; i < this.length; i++) { - var ele = this[i]; - var _p = ele._private; - - if (!_p.emitter) { - _p.emitter = new Emitter(util.assign({ - context: ele - }, emitterOptions)); - } - } - - return this; - }, - - emitter: function emitter() { - return this._private.emitter; - }, - - on: function on(events, selector, callback) { - for (var i = 0; i < this.length; i++) { - var ele = this[i]; - - ele.emitter().on(events, argSelector(selector), callback); - } - - return this; - }, - - removeListener: function removeListener(events, selector, callback) { - for (var i = 0; i < this.length; i++) { - var ele = this[i]; - - ele.emitter().removeListener(events, argSelector(selector), callback); - } - - return this; - }, - - one: function one(events, selector, callback) { - for (var i = 0; i < this.length; i++) { - var ele = this[i]; - - ele.emitter().one(events, argSelector(selector), callback); - } - - return this; - }, - - once: function once(events, selector, callback) { - for (var i = 0; i < this.length; i++) { - var ele = this[i]; - - ele.emitter().on(events, argSelector(selector), callback, { - once: true, - onceCollection: this - }); - } - }, - - emit: function emit(events, extraParams) { - for (var i = 0; i < this.length; i++) { - var ele = this[i]; - - ele.emitter().emit(events, extraParams); - } - - return this; - }, - - emitAndNotify: function emitAndNotify(event, extraParams) { - // for internal use only - if (this.length === 0) { - return; - } // empty collections don't need to notify anything - - // notify renderer - this.cy().notify({ - type: event, - eles: this - }); - - this.emit(event, extraParams); - - return this; - } -}; - -define.eventAliasesOn(elesfn); - -module.exports = elesfn; - -/***/ }), -/* 49 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); -var Selector = __webpack_require__(6); - -var elesfn = { - nodes: function nodes(selector) { - return this.filter(function (ele) { - return ele.isNode(); - }).filter(selector); - }, - - edges: function edges(selector) { - return this.filter(function (ele) { - return ele.isEdge(); - }).filter(selector); - }, - - filter: function filter(_filter, thisArg) { - if (_filter === undefined) { - // check this first b/c it's the most common/performant case - return this; - } else if (is.string(_filter) || is.elementOrCollection(_filter)) { - return new Selector(_filter).filter(this); - } else if (is.fn(_filter)) { - var filterEles = this.spawn(); - var eles = this; - - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - var include = thisArg ? _filter.apply(thisArg, [ele, i, eles]) : _filter(ele, i, eles); - - if (include) { - filterEles.merge(ele); - } - } - - return filterEles; - } - - return this.spawn(); // if not handled by above, give 'em an empty collection - }, - - not: function not(toRemove) { - if (!toRemove) { - return this; - } else { - - if (is.string(toRemove)) { - toRemove = this.filter(toRemove); - } - - var elements = []; - var rMap = toRemove._private.map; - - for (var i = 0; i < this.length; i++) { - var element = this[i]; - - var remove = rMap.has(element.id()); - if (!remove) { - elements.push(element); - } - } - - return this.spawn(elements); - } - }, - - absoluteComplement: function absoluteComplement() { - var cy = this.cy(); - - return cy.mutableElements().not(this); - }, - - intersect: function intersect(other) { - // if a selector is specified, then filter by it instead - if (is.string(other)) { - var selector = other; - return this.filter(selector); - } - - var elements = []; - var col1 = this; - var col2 = other; - var col1Smaller = this.length < other.length; - var map2 = col1Smaller ? col2._private.map : col1._private.map; - var col = col1Smaller ? col1 : col2; - - for (var i = 0; i < col.length; i++) { - var id = col[i]._private.data.id; - var entry = map2.get(id); - - if (entry) { - elements.push(entry.ele); - } - } - - return this.spawn(elements); - }, - - xor: function xor(other) { - var cy = this._private.cy; - - if (is.string(other)) { - other = cy.$(other); - } - - var elements = []; - var col1 = this; - var col2 = other; - - var add = function add(col, other) { - for (var i = 0; i < col.length; i++) { - var ele = col[i]; - var id = ele._private.data.id; - var inOther = other.hasElementWithId(id); - - if (!inOther) { - elements.push(ele); - } - } - }; - - add(col1, col2); - add(col2, col1); - - return this.spawn(elements); - }, - - diff: function diff(other) { - var cy = this._private.cy; - - if (is.string(other)) { - other = cy.$(other); - } - - var left = []; - var right = []; - var both = []; - var col1 = this; - var col2 = other; - - var add = function add(col, other, retEles) { - - for (var i = 0; i < col.length; i++) { - var ele = col[i]; - var id = ele._private.data.id; - var inOther = other.hasElementWithId(id); - - if (inOther) { - both.push(ele); - } else { - retEles.push(ele); - } - } - }; - - add(col1, col2, left); - add(col2, col1, right); - - return { - left: this.spawn(left, { unique: true }), - right: this.spawn(right, { unique: true }), - both: this.spawn(both, { unique: true }) - }; - }, - - add: function add(toAdd) { - var cy = this._private.cy; - - if (!toAdd) { - return this; - } - - if (is.string(toAdd)) { - var selector = toAdd; - toAdd = cy.mutableElements().filter(selector); - } - - var elements = []; - - for (var i = 0; i < this.length; i++) { - elements.push(this[i]); - } - - var map = this._private.map; - - for (var _i = 0; _i < toAdd.length; _i++) { - - var add = !map.has(toAdd[_i].id()); - if (add) { - elements.push(toAdd[_i]); - } - } - - return this.spawn(elements); - }, - - // in place merge on calling collection - merge: function merge(toAdd) { - var _p = this._private; - var cy = _p.cy; - - if (!toAdd) { - return this; - } - - if (toAdd && is.string(toAdd)) { - var selector = toAdd; - toAdd = cy.mutableElements().filter(selector); - } - - var map = _p.map; - - for (var i = 0; i < toAdd.length; i++) { - var toAddEle = toAdd[i]; - var id = toAddEle._private.data.id; - var add = !map.has(id); - - if (add) { - var index = this.length++; - - this[index] = toAddEle; - - map.set(id, { ele: toAddEle, index: index }); - } else { - // replace - var _index = map.get(id).index; - - this[_index] = toAddEle; - map.set(id, { ele: toAddEle, index: _index }); - } - } - - return this; // chaining - }, - - // remove single ele in place in calling collection - unmergeOne: function unmergeOne(ele) { - ele = ele[0]; - - var _p = this._private; - var id = ele._private.data.id; - var map = _p.map; - var entry = map.get(id); - - if (!entry) { - return this; // no need to remove - } - - var i = entry.index; - - // remove ele - this[i] = undefined; - map.delete(id); - - var unmergedLastEle = i === this.length - 1; - - // replace empty spot with last ele in collection - if (this.length > 1 && !unmergedLastEle) { - var lastEleI = this.length - 1; - var lastEle = this[lastEleI]; - var lastEleId = lastEle._private.data.id; - - this[lastEleI] = undefined; - this[i] = lastEle; - map.set(lastEleId, { ele: lastEle, index: i }); - } - - // the collection is now 1 ele smaller - this.length--; - - return this; - }, - - // remove eles in place on calling collection - unmerge: function unmerge(toRemove) { - var cy = this._private.cy; - - if (!toRemove) { - return this; - } - - if (toRemove && is.string(toRemove)) { - var selector = toRemove; - toRemove = cy.mutableElements().filter(selector); - } - - for (var i = 0; i < toRemove.length; i++) { - this.unmergeOne(toRemove[i]); - } - - return this; // chaining - }, - - map: function map(mapFn, thisArg) { - var arr = []; - var eles = this; - - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - var ret = thisArg ? mapFn.apply(thisArg, [ele, i, eles]) : mapFn(ele, i, eles); - - arr.push(ret); - } - - return arr; - }, - - reduce: function reduce(fn, initialValue) { - var val = initialValue; - var eles = this; - - for (var i = 0; i < eles.length; i++) { - val = fn(val, eles[i], i, eles); - } - - return val; - }, - - max: function max(valFn, thisArg) { - var max = -Infinity; - var maxEle = void 0; - var eles = this; - - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - var val = thisArg ? valFn.apply(thisArg, [ele, i, eles]) : valFn(ele, i, eles); - - if (val > max) { - max = val; - maxEle = ele; - } - } - - return { - value: max, - ele: maxEle - }; - }, - - min: function min(valFn, thisArg) { - var min = Infinity; - var minEle = void 0; - var eles = this; - - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - var val = thisArg ? valFn.apply(thisArg, [ele, i, eles]) : valFn(ele, i, eles); - - if (val < min) { - min = val; - minEle = ele; - } - } - - return { - value: min, - ele: minEle - }; - } -}; - -// aliases -var fn = elesfn; -fn['u'] = fn['|'] = fn['+'] = fn.union = fn.or = fn.add; -fn['\\'] = fn['!'] = fn['-'] = fn.difference = fn.relativeComplement = fn.subtract = fn.not; -fn['n'] = fn['&'] = fn['.'] = fn.and = fn.intersection = fn.intersect; -fn['^'] = fn['(+)'] = fn['(-)'] = fn.symmetricDifference = fn.symdiff = fn.xor; -fn.fnFilter = fn.filterFn = fn.stdFilter = fn.filter; -fn.complement = fn.abscomp = fn.absoluteComplement; - -module.exports = elesfn; - -/***/ }), -/* 50 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var elesfn = { - isNode: function isNode() { - return this.group() === 'nodes'; - }, - - isEdge: function isEdge() { - return this.group() === 'edges'; - }, - - isLoop: function isLoop() { - return this.isEdge() && this.source().id() === this.target().id(); - }, - - isSimple: function isSimple() { - return this.isEdge() && this.source().id() !== this.target().id(); - }, - - group: function group() { - var ele = this[0]; - - if (ele) { - return ele._private.group; - } - } -}; - -module.exports = elesfn; - -/***/ }), -/* 51 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); -var zIndexSort = __webpack_require__(14); -var util = __webpack_require__(1); - -var elesfn = { - forEach: function forEach(fn, thisArg) { - if (is.fn(fn)) { - - for (var i = 0; i < this.length; i++) { - var ele = this[i]; - var ret = thisArg ? fn.apply(thisArg, [ele, i, this]) : fn(ele, i, this); - - if (ret === false) { - break; - } // exit each early on return false - } - } - - return this; - }, - - toArray: function toArray() { - var array = []; - - for (var i = 0; i < this.length; i++) { - array.push(this[i]); - } - - return array; - }, - - slice: function slice(start, end) { - var array = []; - var thisSize = this.length; - - if (end == null) { - end = thisSize; - } - - if (start == null) { - start = 0; - } - - if (start < 0) { - start = thisSize + start; - } - - if (end < 0) { - end = thisSize + end; - } - - for (var i = start; i >= 0 && i < end && i < thisSize; i++) { - array.push(this[i]); - } - - return this.spawn(array); - }, - - size: function size() { - return this.length; - }, - - eq: function eq(i) { - return this[i] || this.spawn(); - }, - - first: function first() { - return this[0] || this.spawn(); - }, - - last: function last() { - return this[this.length - 1] || this.spawn(); - }, - - empty: function empty() { - return this.length === 0; - }, - - nonempty: function nonempty() { - return !this.empty(); - }, - - sort: function sort(sortFn) { - if (!is.fn(sortFn)) { - return this; - } - - var sorted = this.toArray().sort(sortFn); - - return this.spawn(sorted); - }, - - sortByZIndex: function sortByZIndex() { - return this.sort(zIndexSort); - }, - - zDepth: function zDepth() { - var ele = this[0]; - if (!ele) { - return undefined; - } - - // let cy = ele.cy(); - var _p = ele._private; - var group = _p.group; - - if (group === 'nodes') { - var depth = _p.data.parent ? ele.parents().size() : 0; - - if (!ele.isParent()) { - return util.MAX_INT - 1; // childless nodes always on top - } - - return depth; - } else { - var src = _p.source; - var tgt = _p.target; - var srcDepth = src.zDepth(); - var tgtDepth = tgt.zDepth(); - - return Math.max(srcDepth, tgtDepth, 0); // depth of deepest parent - } - } -}; - -elesfn.each = elesfn.forEach; - -module.exports = elesfn; - -/***/ }), -/* 52 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); -var util = __webpack_require__(1); -var Promise = __webpack_require__(5); -var math = __webpack_require__(2); - -var elesfn = { - // Calculates and returns node dimensions { x, y } based on options given - layoutDimensions: function layoutDimensions(options) { - options = util.assign({ - nodeDimensionsIncludeLabels: true - }, options); - - if (options.nodeDimensionsIncludeLabels) { - var bbDim = this.boundingBox(); - return { - w: bbDim.w, - h: bbDim.h - }; - } else { - return { - w: this.outerWidth(), - h: this.outerHeight() - }; - } - }, - - // using standard layout options, apply position function (w/ or w/o animation) - layoutPositions: function layoutPositions(layout, options, fn) { - var nodes = this.nodes(); - var cy = this.cy(); - var layoutEles = options.eles; // nodes & edges - var getMemoizeKey = function getMemoizeKey(node, i) { - return node.id() + '$' + i; - }; - var fnMem = util.memoize(fn, getMemoizeKey); // memoized version of position function - - layout.emit({ type: 'layoutstart', layout: layout }); - - layout.animations = []; - - var calculateSpacing = function calculateSpacing(spacing, nodesBb, pos) { - var center = { - x: nodesBb.x1 + nodesBb.w / 2, - y: nodesBb.y1 + nodesBb.h / 2 - }; - - var spacingVector = { // scale from center of bounding box (not necessarily 0,0) - x: (pos.x - center.x) * spacing, - y: (pos.y - center.y) * spacing - }; - - return { - x: center.x + spacingVector.x, - y: center.y + spacingVector.y - }; - }; - - var useSpacingFactor = options.spacingFactor && options.spacingFactor !== 1; - - var spacingBb = function spacingBb() { - if (!useSpacingFactor) { - return null; - } - - var bb = math.makeBoundingBox(); - - for (var i = 0; i < nodes.length; i++) { - var node = nodes[i]; - var pos = fnMem(node, i); - - math.expandBoundingBoxByPoint(bb, pos.x, pos.y); - } - - return bb; - }; - - var bb = spacingBb(); - - var getFinalPos = util.memoize(function (node, i) { - var newPos = fnMem(node, i); - var pos = node.position(); - - if (!is.number(pos.x) || !is.number(pos.y)) { - node.silentPosition({ x: 0, y: 0 }); - } - - if (useSpacingFactor) { - var spacing = Math.abs(options.spacingFactor); - - newPos = calculateSpacing(spacing, bb, newPos); - } - - if (options.transform != null) { - newPos = options.transform(node, newPos); - } - - return newPos; - }, getMemoizeKey); - - if (options.animate) { - for (var i = 0; i < nodes.length; i++) { - var node = nodes[i]; - var newPos = getFinalPos(node, i); - var animateNode = options.animateFilter == null || options.animateFilter(node, i); - - if (animateNode) { - var ani = node.animation({ - position: newPos, - duration: options.animationDuration, - easing: options.animationEasing - }); - - layout.animations.push(ani); - - ani.play(); - } else { - node.position(newPos); - } - } - - if (options.fit) { - var fitAni = cy.animation({ - fit: { - boundingBox: layoutEles.boundingBoxAt(getFinalPos), - padding: options.padding - }, - duration: options.animationDuration, - easing: options.animationEasing - }); - - layout.animations.push(fitAni); - - fitAni.play(); - } else if (options.zoom !== undefined && options.pan !== undefined) { - var zoomPanAni = cy.animation({ - zoom: options.zoom, - pan: options.pan, - duration: options.animationDuration, - easing: options.animationEasing - }); - - layout.animations.push(zoomPanAni); - - zoomPanAni.play(); - } - - layout.one('layoutready', options.ready); - layout.emit({ type: 'layoutready', layout: layout }); - - Promise.all(layout.animations.map(function (ani) { - return ani.promise(); - })).then(function () { - layout.one('layoutstop', options.stop); - layout.emit({ type: 'layoutstop', layout: layout }); - }); - } else { - - nodes.positions(getFinalPos); - - if (options.fit) { - cy.fit(options.eles, options.padding); - } - - if (options.zoom != null) { - cy.zoom(options.zoom); - } - - if (options.pan) { - cy.pan(options.pan); - } - - layout.one('layoutready', options.ready); - layout.emit({ type: 'layoutready', layout: layout }); - - layout.one('layoutstop', options.stop); - layout.emit({ type: 'layoutstop', layout: layout }); - } - - return this; // chaining - }, - - layout: function layout(options) { - var cy = this.cy(); - - return cy.makeLayout(util.extend({}, options, { - eles: this - })); - } - -}; - -// aliases: -elesfn.createLayout = elesfn.makeLayout = elesfn.layout; - -module.exports = elesfn; - -/***/ }), -/* 53 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); - -function styleCache(key, fn, ele) { - var _p = ele._private; - var cache = _p.styleCache = _p.styleCache || {}; - var val; - - if ((val = cache[key]) != null) { - return val; - } else { - val = cache[key] = fn(ele); - - return val; - } -} - -function cacheStyleFunction(key, fn) { - return function cachedStyleFunction(ele) { - return styleCache(key, fn, ele); - }; -} - -function cachePrototypeStyleFunction(key, fn) { - var selfFn = function selfFn(ele) { - return fn.call(ele); - }; - - return function cachedPrototypeStyleFunction() { - var ele = this[0]; - - if (ele) { - return styleCache(key, selfFn, ele); - } - }; -} - -var elesfn = { - - recalculateRenderedStyle: function recalculateRenderedStyle(useCache) { - var cy = this.cy(); - var renderer = cy.renderer(); - var styleEnabled = cy.styleEnabled(); - - if (renderer && styleEnabled) { - renderer.recalculateRenderedStyle(this, useCache); - } - - return this; - }, - - dirtyStyleCache: function dirtyStyleCache() { - var cy = this.cy(); - var dirty = function dirty(ele) { - return ele._private.styleCache = {}; - }; - - if (cy.hasCompoundNodes()) { - var eles = void 0; - - eles = this.spawnSelf().merge(this.descendants()).merge(this.parents()); - - eles.merge(eles.connectedEdges()); - - eles.forEach(dirty); - } else { - this.forEach(function (ele) { - dirty(ele); - - ele.connectedEdges().forEach(dirty); - }); - } - - return this; - }, - - // fully updates (recalculates) the style for the elements - updateStyle: function updateStyle(notifyRenderer) { - var cy = this._private.cy; - - if (!cy.styleEnabled()) { - return this; - } - - if (cy._private.batchingStyle) { - var bEles = cy._private.batchStyleEles; - - bEles.merge(this); - - return this; // chaining and exit early when batching - } - - var hasCompounds = cy.hasCompoundNodes(); - var style = cy.style(); - var updatedEles = this; - - notifyRenderer = notifyRenderer || notifyRenderer === undefined ? true : false; - - if (hasCompounds) { - // then add everything up and down for compound selector checks - updatedEles = this.spawnSelf().merge(this.descendants()).merge(this.parents()); - } - - var changedEles = style.apply(updatedEles); - - changedEles.dirtyStyleCache(); - changedEles.dirtyCompoundBoundsCache(); - - if (notifyRenderer) { - changedEles.emitAndNotify('style'); // let renderer know we changed style - } else { - changedEles.emit('style'); // just fire the event - } - - return this; // chaining - }, - - // just update the mappers in the elements' styles; cheaper than eles.updateStyle() - updateMappers: function updateMappers(notifyRenderer) { - var cy = this._private.cy; - var style = cy.style(); - notifyRenderer = notifyRenderer || notifyRenderer === undefined ? true : false; - - if (!cy.styleEnabled()) { - return this; - } - - var changedEles = style.updateMappers(this); - - changedEles.dirtyStyleCache(); - changedEles.dirtyCompoundBoundsCache(); - - if (notifyRenderer) { - changedEles.emitAndNotify('style'); // let renderer know we changed style - } else { - changedEles.emit('style'); // just fire the event - } - return this; // chaining - }, - - // get the internal parsed style object for the specified property - parsedStyle: function parsedStyle(property) { - var ele = this[0]; - var cy = ele.cy(); - - if (!cy.styleEnabled()) { - return; - } - - if (ele) { - return ele._private.style[property] || cy.style().getDefaultProperty(property); - } - }, - - numericStyle: function numericStyle(property) { - var ele = this[0]; - - if (!ele.cy().styleEnabled()) { - return; - } - - if (ele) { - var pstyle = ele.pstyle(property); - - return pstyle.pfValue !== undefined ? pstyle.pfValue : pstyle.value; - } - }, - - numericStyleUnits: function numericStyleUnits(property) { - var ele = this[0]; - - if (!ele.cy().styleEnabled()) { - return; - } - - if (ele) { - return ele.pstyle(property).units; - } - }, - - // get the specified css property as a rendered value (i.e. on-screen value) - // or get the whole rendered style if no property specified (NB doesn't allow setting) - renderedStyle: function renderedStyle(property) { - var cy = this.cy(); - if (!cy.styleEnabled()) { - return this; - } - - var ele = this[0]; - - if (ele) { - return cy.style().getRenderedStyle(ele, property); - } - }, - - // read the calculated css style of the element or override the style (via a bypass) - style: function style(name, value) { - var cy = this.cy(); - - if (!cy.styleEnabled()) { - return this; - } - - var updateTransitions = false; - var style = cy.style(); - - if (is.plainObject(name)) { - // then extend the bypass - var props = name; - style.applyBypass(this, props, updateTransitions); - - this.dirtyStyleCache(); - this.dirtyCompoundBoundsCache(); - - this.emitAndNotify('style'); // let the renderer know we've updated style - } else if (is.string(name)) { - - if (value === undefined) { - // then get the property from the style - var ele = this[0]; - - if (ele) { - return style.getStylePropertyValue(ele, name); - } else { - // empty collection => can't get any value - return; - } - } else { - // then set the bypass with the property value - style.applyBypass(this, name, value, updateTransitions); - - this.dirtyStyleCache(); - this.dirtyCompoundBoundsCache(); - - this.emitAndNotify('style'); // let the renderer know we've updated style - } - } else if (name === undefined) { - var _ele = this[0]; - - if (_ele) { - return style.getRawStyle(_ele); - } else { - // empty collection => can't get any value - return; - } - } - - return this; // chaining - }, - - removeStyle: function removeStyle(names) { - var cy = this.cy(); - - if (!cy.styleEnabled()) { - return this; - } - - var updateTransitions = false; - var style = cy.style(); - var eles = this; - - if (names === undefined) { - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - - style.removeAllBypasses(ele, updateTransitions); - } - } else { - names = names.split(/\s+/); - - for (var _i = 0; _i < eles.length; _i++) { - var _ele2 = eles[_i]; - - style.removeBypasses(_ele2, names, updateTransitions); - } - } - - this.dirtyStyleCache(); - this.dirtyCompoundBoundsCache(); - - this.emitAndNotify('style'); // let the renderer know we've updated style - - return this; // chaining - }, - - show: function show() { - this.css('display', 'element'); - return this; // chaining - }, - - hide: function hide() { - this.css('display', 'none'); - return this; // chaining - }, - - effectiveOpacity: function effectiveOpacity() { - var cy = this.cy(); - if (!cy.styleEnabled()) { - return 1; - } - - var hasCompoundNodes = cy.hasCompoundNodes(); - var ele = this[0]; - - if (ele) { - var _p = ele._private; - var parentOpacity = ele.pstyle('opacity').value; - - if (!hasCompoundNodes) { - return parentOpacity; - } - - var parents = !_p.data.parent ? null : ele.parents(); - - if (parents) { - for (var i = 0; i < parents.length; i++) { - var parent = parents[i]; - var opacity = parent.pstyle('opacity').value; - - parentOpacity = opacity * parentOpacity; - } - } - - return parentOpacity; - } - }, - - transparent: function transparent() { - var cy = this.cy(); - if (!cy.styleEnabled()) { - return false; - } - - var ele = this[0]; - var hasCompoundNodes = ele.cy().hasCompoundNodes(); - - if (ele) { - if (!hasCompoundNodes) { - return ele.pstyle('opacity').value === 0; - } else { - return ele.effectiveOpacity() === 0; - } - } - }, - - backgrounding: function backgrounding() { - var cy = this.cy(); - if (!cy.styleEnabled()) { - return false; - } - - var ele = this[0]; - - return ele._private.backgrounding ? true : false; - } - -}; - -function checkCompound(ele, parentOk) { - var _p = ele._private; - var parents = _p.data.parent ? ele.parents() : null; - - if (parents) { - for (var i = 0; i < parents.length; i++) { - var parent = parents[i]; - - if (!parentOk(parent)) { - return false; - } - } - } - - return true; -} - -function defineDerivedStateFunction(specs) { - var ok = specs.ok; - var edgeOkViaNode = specs.edgeOkViaNode || specs.ok; - var parentOk = specs.parentOk || specs.ok; - - return function () { - var cy = this.cy(); - if (!cy.styleEnabled()) { - return true; - } - - var ele = this[0]; - var hasCompoundNodes = cy.hasCompoundNodes(); - - if (ele) { - var _p = ele._private; - - if (!ok(ele)) { - return false; - } - - if (ele.isNode()) { - return !hasCompoundNodes || checkCompound(ele, parentOk); - } else { - var src = _p.source; - var tgt = _p.target; - - return edgeOkViaNode(src) && (!hasCompoundNodes || checkCompound(src, edgeOkViaNode)) && (src === tgt || edgeOkViaNode(tgt) && (!hasCompoundNodes || checkCompound(tgt, edgeOkViaNode))); - } - } - }; -} - -var eleTakesUpSpace = cacheStyleFunction('eleTakesUpSpace', function (ele) { - return ele.pstyle('display').value === 'element' && ele.width() !== 0 && (ele.isNode() ? ele.height() !== 0 : true); -}); - -elesfn.takesUpSpace = cachePrototypeStyleFunction('takesUpSpace', defineDerivedStateFunction({ - ok: eleTakesUpSpace -})); - -var eleInteractive = cacheStyleFunction('eleInteractive', function (ele) { - return ele.pstyle('events').value === 'yes' && ele.pstyle('visibility').value === 'visible' && eleTakesUpSpace(ele); -}); - -var parentInteractive = cacheStyleFunction('parentInteractive', function (parent) { - return parent.pstyle('visibility').value === 'visible' && eleTakesUpSpace(parent); -}); - -elesfn.interactive = cachePrototypeStyleFunction('interactive', defineDerivedStateFunction({ - ok: eleInteractive, - parentOk: parentInteractive, - edgeOkViaNode: eleTakesUpSpace -})); - -elesfn.noninteractive = function () { - var ele = this[0]; - - if (ele) { - return !ele.interactive(); - } -}; - -var eleVisible = cacheStyleFunction('eleVisible', function (ele) { - return ele.pstyle('visibility').value === 'visible' && ele.pstyle('opacity').pfValue !== 0 && eleTakesUpSpace(ele); -}); - -var edgeVisibleViaNode = eleTakesUpSpace; - -elesfn.visible = cachePrototypeStyleFunction('visible', defineDerivedStateFunction({ - ok: eleVisible, - edgeOkViaNode: edgeVisibleViaNode -})); - -elesfn.hidden = function () { - var ele = this[0]; - - if (ele) { - return !ele.visible(); - } -}; - -elesfn.bypass = elesfn.css = elesfn.style; -elesfn.renderedCss = elesfn.renderedStyle; -elesfn.removeBypass = elesfn.removeCss = elesfn.removeStyle; -elesfn.pstyle = elesfn.parsedStyle; - -module.exports = elesfn; - -/***/ }), -/* 54 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var elesfn = {}; - -function defineSwitchFunction(params) { - return function () { - var args = arguments; - var changedEles = []; - - // e.g. cy.nodes().select( data, handler ) - if (args.length === 2) { - var data = args[0]; - var handler = args[1]; - this.on(params.event, data, handler); - } - - // e.g. cy.nodes().select( handler ) - else if (args.length === 1) { - var _handler = args[0]; - this.on(params.event, _handler); - } - - // e.g. cy.nodes().select() - else if (args.length === 0) { - for (var i = 0; i < this.length; i++) { - var ele = this[i]; - var able = !params.ableField || ele._private[params.ableField]; - var changed = ele._private[params.field] != params.value; - - if (params.overrideAble) { - var overrideAble = params.overrideAble(ele); - - if (overrideAble !== undefined) { - able = overrideAble; - - if (!overrideAble) { - return this; - } // to save cycles assume not able for all on override - } - } - - if (able) { - ele._private[params.field] = params.value; - - if (changed) { - changedEles.push(ele); - } - } - } - - var changedColl = this.spawn(changedEles); - changedColl.updateStyle(); // change of state => possible change of style - changedColl.emit(params.event); - } - - return this; - }; -} - -function defineSwitchSet(params) { - elesfn[params.field] = function () { - var ele = this[0]; - - if (ele) { - if (params.overrideField) { - var val = params.overrideField(ele); - - if (val !== undefined) { - return val; - } - } - - return ele._private[params.field]; - } - }; - - elesfn[params.on] = defineSwitchFunction({ - event: params.on, - field: params.field, - ableField: params.ableField, - overrideAble: params.overrideAble, - value: true - }); - - elesfn[params.off] = defineSwitchFunction({ - event: params.off, - field: params.field, - ableField: params.ableField, - overrideAble: params.overrideAble, - value: false - }); -} - -defineSwitchSet({ - field: 'locked', - overrideField: function overrideField(ele) { - return ele.cy().autolock() ? true : undefined; - }, - on: 'lock', - off: 'unlock' -}); - -defineSwitchSet({ - field: 'grabbable', - overrideField: function overrideField(ele) { - return ele.cy().autoungrabify() ? false : undefined; - }, - on: 'grabify', - off: 'ungrabify' -}); - -defineSwitchSet({ - field: 'selected', - ableField: 'selectable', - overrideAble: function overrideAble(ele) { - return ele.cy().autounselectify() ? false : undefined; - }, - on: 'select', - off: 'unselect' -}); - -defineSwitchSet({ - field: 'selectable', - overrideField: function overrideField(ele) { - return ele.cy().autounselectify() ? false : undefined; - }, - on: 'selectify', - off: 'unselectify' -}); - -elesfn.deselect = elesfn.unselect; - -elesfn.grabbed = function () { - var ele = this[0]; - if (ele) { - return ele._private.grabbed; - } -}; - -defineSwitchSet({ - field: 'active', - on: 'activate', - off: 'unactivate' -}); - -elesfn.inactive = function () { - var ele = this[0]; - if (ele) { - return !ele._private.active; - } -}; - -module.exports = elesfn; - -/***/ }), -/* 55 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var is = __webpack_require__(0); - -var elesfn = {}; - -var cache = function cache(fn, name) { - return function traversalCache(arg1, arg2, arg3, arg4) { - var selectorOrEles = arg1; - var eles = this; - var key = void 0; - - if (selectorOrEles == null) { - key = 'null'; - } else if (is.elementOrCollection(selectorOrEles) && selectorOrEles.length === 1) { - key = '#' + selectorOrEles.id(); - } - - if (eles.length === 1 && key) { - var _p = eles[0]._private; - var tch = _p.traversalCache = _p.traversalCache || {}; - var ch = tch[name] = tch[name] || {}; - var cacheHit = ch[key]; - - if (cacheHit) { - return cacheHit; - } else { - return ch[key] = fn.call(eles, arg1, arg2, arg3, arg4); - } - } else { - return fn.call(eles, arg1, arg2, arg3, arg4); - } - }; -}; - -// DAG functions -//////////////// - -var defineDagExtremity = function defineDagExtremity(params) { - return function dagExtremityImpl(selector) { - var eles = this; - var ret = []; - - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - if (!ele.isNode()) { - continue; - } - - var disqualified = false; - var edges = ele.connectedEdges(); - - for (var j = 0; j < edges.length; j++) { - var edge = edges[j]; - var src = edge.source(); - var tgt = edge.target(); - - if (params.noIncomingEdges && tgt === ele && src !== ele || params.noOutgoingEdges && src === ele && tgt !== ele) { - disqualified = true; - break; - } - } - - if (!disqualified) { - ret.push(ele); - } - } - - return this.spawn(ret, { unique: true }).filter(selector); - }; -}; - -var defineDagOneHop = function defineDagOneHop(params) { - return function (selector) { - var eles = this; - var oEles = []; - - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - - if (!ele.isNode()) { - continue; - } - - var edges = ele.connectedEdges(); - for (var j = 0; j < edges.length; j++) { - var edge = edges[j]; - var src = edge.source(); - var tgt = edge.target(); - - if (params.outgoing && src === ele) { - oEles.push(edge); - oEles.push(tgt); - } else if (params.incoming && tgt === ele) { - oEles.push(edge); - oEles.push(src); - } - } - } - - return this.spawn(oEles, { unique: true }).filter(selector); - }; -}; - -var defineDagAllHops = function defineDagAllHops(params) { - return function (selector) { - var eles = this; - var sEles = []; - var sElesIds = {}; - - for (;;) { - var next = params.outgoing ? eles.outgoers() : eles.incomers(); - - if (next.length === 0) { - break; - } // done if none left - - var newNext = false; - for (var i = 0; i < next.length; i++) { - var n = next[i]; - var nid = n.id(); - - if (!sElesIds[nid]) { - sElesIds[nid] = true; - sEles.push(n); - newNext = true; - } - } - - if (!newNext) { - break; - } // done if touched all outgoers already - - eles = next; - } - - return this.spawn(sEles, { unique: true }).filter(selector); - }; -}; - -elesfn.clearTraversalCache = function () { - for (var i = 0; i < this.length; i++) { - this[i]._private.traversalCache = null; - } -}; - -util.extend(elesfn, { - // get the root nodes in the DAG - roots: defineDagExtremity({ noIncomingEdges: true }), - - // get the leaf nodes in the DAG - leaves: defineDagExtremity({ noOutgoingEdges: true }), - - // normally called children in graph theory - // these nodes =edges=> outgoing nodes - outgoers: cache(defineDagOneHop({ outgoing: true }), 'outgoers'), - - // aka DAG descendants - successors: defineDagAllHops({ outgoing: true }), - - // normally called parents in graph theory - // these nodes <=edges= incoming nodes - incomers: cache(defineDagOneHop({ incoming: true }), 'incomers'), - - // aka DAG ancestors - predecessors: defineDagAllHops({ incoming: true }) -}); - -// Neighbourhood functions -////////////////////////// - -util.extend(elesfn, { - neighborhood: cache(function (selector) { - var elements = []; - var nodes = this.nodes(); - - for (var i = 0; i < nodes.length; i++) { - // for all nodes - var node = nodes[i]; - var connectedEdges = node.connectedEdges(); - - // for each connected edge, add the edge and the other node - for (var j = 0; j < connectedEdges.length; j++) { - var edge = connectedEdges[j]; - var src = edge.source(); - var tgt = edge.target(); - var otherNode = node === src ? tgt : src; - - // need check in case of loop - if (otherNode.length > 0) { - elements.push(otherNode[0]); // add node 1 hop away - } - - // add connected edge - elements.push(edge[0]); - } - } - - return this.spawn(elements, { unique: true }).filter(selector); - }, 'neighborhood'), - - closedNeighborhood: function closedNeighborhood(selector) { - return this.neighborhood().add(this).filter(selector); - }, - - openNeighborhood: function openNeighborhood(selector) { - return this.neighborhood(selector); - } -}); - -// aliases -elesfn.neighbourhood = elesfn.neighborhood; -elesfn.closedNeighbourhood = elesfn.closedNeighborhood; -elesfn.openNeighbourhood = elesfn.openNeighborhood; - -// Edge functions -///////////////// - -util.extend(elesfn, { - source: cache(function sourceImpl(selector) { - var ele = this[0]; - var src = void 0; - - if (ele) { - src = ele._private.source || ele.cy().collection(); - } - - return src && selector ? src.filter(selector) : src; - }, 'source'), - - target: cache(function targetImpl(selector) { - var ele = this[0]; - var tgt = void 0; - - if (ele) { - tgt = ele._private.target || ele.cy().collection(); - } - - return tgt && selector ? tgt.filter(selector) : tgt; - }, 'target'), - - sources: defineSourceFunction({ - attr: 'source' - }), - - targets: defineSourceFunction({ - attr: 'target' - }) -}); - -function defineSourceFunction(params) { - return function sourceImpl(selector) { - var sources = []; - - for (var i = 0; i < this.length; i++) { - var ele = this[i]; - var src = ele._private[params.attr]; - - if (src) { - sources.push(src); - } - } - - return this.spawn(sources, { unique: true }).filter(selector); - }; -} - -util.extend(elesfn, { - edgesWith: cache(defineEdgesWithFunction(), 'edgesWith'), - - edgesTo: cache(defineEdgesWithFunction({ - thisIsSrc: true - }), 'edgesTo') -}); - -function defineEdgesWithFunction(params) { - - return function edgesWithImpl(otherNodes) { - var elements = []; - var cy = this._private.cy; - var p = params || {}; - - // get elements if a selector is specified - if (is.string(otherNodes)) { - otherNodes = cy.$(otherNodes); - } - - for (var h = 0; h < otherNodes.length; h++) { - var edges = otherNodes[h]._private.edges; - - for (var i = 0; i < edges.length; i++) { - var edge = edges[i]; - var edgeData = edge._private.data; - var thisToOther = this.hasElementWithId(edgeData.source) && otherNodes.hasElementWithId(edgeData.target); - var otherToThis = otherNodes.hasElementWithId(edgeData.source) && this.hasElementWithId(edgeData.target); - var edgeConnectsThisAndOther = thisToOther || otherToThis; - - if (!edgeConnectsThisAndOther) { - continue; - } - - if (p.thisIsSrc || p.thisIsTgt) { - if (p.thisIsSrc && !thisToOther) { - continue; - } - - if (p.thisIsTgt && !otherToThis) { - continue; - } - } - - elements.push(edge); - } - } - - return this.spawn(elements, { unique: true }); - }; -} - -util.extend(elesfn, { - connectedEdges: cache(function (selector) { - var retEles = []; - - var eles = this; - for (var i = 0; i < eles.length; i++) { - var node = eles[i]; - if (!node.isNode()) { - continue; - } - - var edges = node._private.edges; - - for (var j = 0; j < edges.length; j++) { - var edge = edges[j]; - retEles.push(edge); - } - } - - return this.spawn(retEles, { unique: true }).filter(selector); - }, 'connectedEdges'), - - connectedNodes: cache(function (selector) { - var retEles = []; - - var eles = this; - for (var i = 0; i < eles.length; i++) { - var edge = eles[i]; - if (!edge.isEdge()) { - continue; - } - - retEles.push(edge.source()[0]); - retEles.push(edge.target()[0]); - } - - return this.spawn(retEles, { unique: true }).filter(selector); - }, 'connectedNodes'), - - parallelEdges: cache(defineParallelEdgesFunction(), 'parallelEdges'), - - codirectedEdges: cache(defineParallelEdgesFunction({ - codirected: true - }), 'codirectedEdges') -}); - -function defineParallelEdgesFunction(params) { - var defaults = { - codirected: false - }; - params = util.extend({}, defaults, params); - - return function parallelEdgesImpl(selector) { - // micro-optimised for renderer - var elements = []; - var edges = this.edges(); - var p = params; - - // look at all the edges in the collection - for (var i = 0; i < edges.length; i++) { - var edge1 = edges[i]; - var edge1_p = edge1._private; - var src1 = edge1_p.source; - var srcid1 = src1._private.data.id; - var tgtid1 = edge1_p.data.target; - var srcEdges1 = src1._private.edges; - - // look at edges connected to the src node of this edge - for (var j = 0; j < srcEdges1.length; j++) { - var edge2 = srcEdges1[j]; - var edge2data = edge2._private.data; - var tgtid2 = edge2data.target; - var srcid2 = edge2data.source; - - var codirected = tgtid2 === tgtid1 && srcid2 === srcid1; - var oppdirected = srcid1 === tgtid2 && tgtid1 === srcid2; - - if (p.codirected && codirected || !p.codirected && (codirected || oppdirected)) { - elements.push(edge2); - } - } - } - - return this.spawn(elements, { unique: true }).filter(selector); - }; -} - -// Misc functions -///////////////// - -util.extend(elesfn, { - components: function components() { - var self = this; - var cy = self.cy(); - var visited = self.spawn(); - var unvisited = self.nodes().spawnSelf(); - var components = []; - - var visitInComponent = function visitInComponent(node, component) { - visited.merge(node); - unvisited.unmerge(node); - component.merge(node); - }; - - if (unvisited.empty()) { - return self.spawn(); - } - - var _loop = function _loop() { - var component = cy.collection(); - components.push(component); - - var root = unvisited[0]; - visitInComponent(root, component); - - self.bfs({ - directed: false, - roots: root, - visit: function visit(v, e, u, i, depth) { - visitInComponent(v, component); - } - }); - }; - - do { - _loop(); - } while (unvisited.length > 0); - - return components.map(function (component) { - var connectedEdges = component.connectedEdges().stdFilter(function (edge) { - return component.anySame(edge.source()) && component.anySame(edge.target()); - }); - - return component.union(connectedEdges); - }); - } -}); - -module.exports = elesfn; - -/***/ }), -/* 56 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); -var util = __webpack_require__(1); -var Collection = __webpack_require__(7); -var Element = __webpack_require__(13); - -var corefn = { - add: function add(opts) { - - var elements = void 0; - var cy = this; - - // add the elements - if (is.elementOrCollection(opts)) { - var eles = opts; - - if (eles._private.cy === cy) { - // same instance => just restore - elements = eles.restore(); - } else { - // otherwise, copy from json - var jsons = []; - - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - jsons.push(ele.json()); - } - - elements = new Collection(cy, jsons); - } - } - - // specify an array of options - else if (is.array(opts)) { - var _jsons = opts; - - elements = new Collection(cy, _jsons); - } - - // specify via opts.nodes and opts.edges - else if (is.plainObject(opts) && (is.array(opts.nodes) || is.array(opts.edges))) { - var elesByGroup = opts; - var _jsons2 = []; - - var grs = ['nodes', 'edges']; - for (var _i = 0, il = grs.length; _i < il; _i++) { - var group = grs[_i]; - var elesArray = elesByGroup[group]; - - if (is.array(elesArray)) { - - for (var j = 0, jl = elesArray.length; j < jl; j++) { - var json = util.extend({ group: group }, elesArray[j]); - - _jsons2.push(json); - } - } - } - - elements = new Collection(cy, _jsons2); - } - - // specify options for one element - else { - var _json = opts; - elements = new Element(cy, _json).collection(); - } - - return elements; - }, - - remove: function remove(collection) { - if (is.elementOrCollection(collection)) { - // already have right ref - } else if (is.string(collection)) { - var selector = collection; - collection = this.$(selector); - } - - return collection.remove(); - } -}; - -module.exports = corefn; - -/***/ }), -/* 57 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/* global Float32Array */ - -/*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */ -function generateCubicBezier(mX1, mY1, mX2, mY2) { - var NEWTON_ITERATIONS = 4, - NEWTON_MIN_SLOPE = 0.001, - SUBDIVISION_PRECISION = 0.0000001, - SUBDIVISION_MAX_ITERATIONS = 10, - kSplineTableSize = 11, - kSampleStepSize = 1.0 / (kSplineTableSize - 1.0), - float32ArraySupported = typeof Float32Array !== 'undefined'; - - /* Must contain four arguments. */ - if (arguments.length !== 4) { - return false; - } - - /* Arguments must be numbers. */ - for (var i = 0; i < 4; ++i) { - if (typeof arguments[i] !== "number" || isNaN(arguments[i]) || !isFinite(arguments[i])) { - return false; - } - } - - /* X values must be in the [0, 1] range. */ - mX1 = Math.min(mX1, 1); - mX2 = Math.min(mX2, 1); - mX1 = Math.max(mX1, 0); - mX2 = Math.max(mX2, 0); - - var mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize); - - function A(aA1, aA2) { - return 1.0 - 3.0 * aA2 + 3.0 * aA1; - } - - function B(aA1, aA2) { - return 3.0 * aA2 - 6.0 * aA1; - } - - function C(aA1) { - return 3.0 * aA1; - } - - function calcBezier(aT, aA1, aA2) { - return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; - } - - function getSlope(aT, aA1, aA2) { - return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); - } - - function newtonRaphsonIterate(aX, aGuessT) { - for (var _i = 0; _i < NEWTON_ITERATIONS; ++_i) { - var currentSlope = getSlope(aGuessT, mX1, mX2); - - if (currentSlope === 0.0) { - return aGuessT; - } - - var currentX = calcBezier(aGuessT, mX1, mX2) - aX; - aGuessT -= currentX / currentSlope; - } - - return aGuessT; - } - - function calcSampleValues() { - for (var _i2 = 0; _i2 < kSplineTableSize; ++_i2) { - mSampleValues[_i2] = calcBezier(_i2 * kSampleStepSize, mX1, mX2); - } - } - - function binarySubdivide(aX, aA, aB) { - var currentX = void 0, - currentT = void 0, - i = 0; - - do { - currentT = aA + (aB - aA) / 2.0; - currentX = calcBezier(currentT, mX1, mX2) - aX; - if (currentX > 0.0) { - aB = currentT; - } else { - aA = currentT; - } - } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS); - - return currentT; - } - - function getTForX(aX) { - var intervalStart = 0.0, - currentSample = 1, - lastSample = kSplineTableSize - 1; - - for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) { - intervalStart += kSampleStepSize; - } - - --currentSample; - - var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]), - guessForT = intervalStart + dist * kSampleStepSize, - initialSlope = getSlope(guessForT, mX1, mX2); - - if (initialSlope >= NEWTON_MIN_SLOPE) { - return newtonRaphsonIterate(aX, guessForT); - } else if (initialSlope === 0.0) { - return guessForT; - } else { - return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize); - } - } - - var _precomputed = false; - - function precompute() { - _precomputed = true; - if (mX1 !== mY1 || mX2 !== mY2) { - calcSampleValues(); - } - } - - var f = function f(aX) { - if (!_precomputed) { - precompute(); - } - if (mX1 === mY1 && mX2 === mY2) { - return aX; - } - if (aX === 0) { - return 0; - } - if (aX === 1) { - return 1; - } - - return calcBezier(getTForX(aX), mY1, mY2); - }; - - f.getControlPoints = function () { - return [{ - x: mX1, - y: mY1 - }, { - x: mX2, - y: mY2 - }]; - }; - - var str = "generateBezier(" + [mX1, mY1, mX2, mY2] + ")"; - f.toString = function () { - return str; - }; - - return f; -} - -module.exports = generateCubicBezier; - -/***/ }), -/* 58 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); - -function getEasedValue(type, start, end, percent, easingFn) { - if (percent === 1) { - return end; - } - - var val = easingFn(start, end, percent); - - if (type == null) { - return val; - } - - if (type.roundValue || type.color) { - val = Math.round(val); - } - - if (type.min !== undefined) { - val = Math.max(val, type.min); - } - - if (type.max !== undefined) { - val = Math.min(val, type.max); - } - - return val; -} - -function ease(startProp, endProp, percent, easingFn, propSpec) { - var type = propSpec != null ? propSpec.type : null; - - if (percent < 0) { - percent = 0; - } else if (percent > 1) { - percent = 1; - } - - var start = void 0, - end = void 0; - - if (startProp.pfValue != null || startProp.value != null) { - start = startProp.pfValue != null ? startProp.pfValue : startProp.value; - } else { - start = startProp; - } - - if (endProp.pfValue != null || endProp.value != null) { - end = endProp.pfValue != null ? endProp.pfValue : endProp.value; - } else { - end = endProp; - } - - if (is.number(start) && is.number(end)) { - return getEasedValue(type, start, end, percent, easingFn); - } else if (is.array(start) && is.array(end)) { - var easedArr = []; - - for (var i = 0; i < end.length; i++) { - var si = start[i]; - var ei = end[i]; - - if (si != null && ei != null) { - var val = getEasedValue(type, si, ei, percent, easingFn); - - easedArr.push(val); - } else { - easedArr.push(ei); - } - } - - return easedArr; - } - - return undefined; -} - -module.exports = ease; - -/***/ }), -/* 59 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var generateCubicBezier = __webpack_require__(57); -var generateSpringRK4 = __webpack_require__(61); - -var cubicBezier = function cubicBezier(t1, p1, t2, p2) { - var bezier = generateCubicBezier(t1, p1, t2, p2); - - return function (start, end, percent) { - return start + (end - start) * bezier(percent); - }; -}; - -var easings = { - 'linear': function linear(start, end, percent) { - return start + (end - start) * percent; - }, - - // default easings - 'ease': cubicBezier(0.25, 0.1, 0.25, 1), - 'ease-in': cubicBezier(0.42, 0, 1, 1), - 'ease-out': cubicBezier(0, 0, 0.58, 1), - 'ease-in-out': cubicBezier(0.42, 0, 0.58, 1), - - // sine - 'ease-in-sine': cubicBezier(0.47, 0, 0.745, 0.715), - 'ease-out-sine': cubicBezier(0.39, 0.575, 0.565, 1), - 'ease-in-out-sine': cubicBezier(0.445, 0.05, 0.55, 0.95), - - // quad - 'ease-in-quad': cubicBezier(0.55, 0.085, 0.68, 0.53), - 'ease-out-quad': cubicBezier(0.25, 0.46, 0.45, 0.94), - 'ease-in-out-quad': cubicBezier(0.455, 0.03, 0.515, 0.955), - - // cubic - 'ease-in-cubic': cubicBezier(0.55, 0.055, 0.675, 0.19), - 'ease-out-cubic': cubicBezier(0.215, 0.61, 0.355, 1), - 'ease-in-out-cubic': cubicBezier(0.645, 0.045, 0.355, 1), - - // quart - 'ease-in-quart': cubicBezier(0.895, 0.03, 0.685, 0.22), - 'ease-out-quart': cubicBezier(0.165, 0.84, 0.44, 1), - 'ease-in-out-quart': cubicBezier(0.77, 0, 0.175, 1), - - // quint - 'ease-in-quint': cubicBezier(0.755, 0.05, 0.855, 0.06), - 'ease-out-quint': cubicBezier(0.23, 1, 0.32, 1), - 'ease-in-out-quint': cubicBezier(0.86, 0, 0.07, 1), - - // expo - 'ease-in-expo': cubicBezier(0.95, 0.05, 0.795, 0.035), - 'ease-out-expo': cubicBezier(0.19, 1, 0.22, 1), - 'ease-in-out-expo': cubicBezier(1, 0, 0, 1), - - // circ - 'ease-in-circ': cubicBezier(0.6, 0.04, 0.98, 0.335), - 'ease-out-circ': cubicBezier(0.075, 0.82, 0.165, 1), - 'ease-in-out-circ': cubicBezier(0.785, 0.135, 0.15, 0.86), - - // user param easings... - - 'spring': function spring(tension, friction, duration) { - if (duration === 0) { - // can't get a spring w/ duration 0 - return easings.linear; // duration 0 => jump to end so impl doesn't matter - } - - var spring = generateSpringRK4(tension, friction, duration); - - return function (start, end, percent) { - return start + (end - start) * spring(percent); - }; - }, - - 'cubic-bezier': cubicBezier -}; - -module.exports = easings; - -/***/ }), -/* 60 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var define = __webpack_require__(3); -var util = __webpack_require__(1); -var stepAll = __webpack_require__(63); - -var corefn = { - - // pull in animation functions - animate: define.animate(), - animation: define.animation(), - animated: define.animated(), - clearQueue: define.clearQueue(), - delay: define.delay(), - delayAnimation: define.delayAnimation(), - stop: define.stop(), - - addToAnimationPool: function addToAnimationPool(eles) { - var cy = this; - - if (!cy.styleEnabled()) { - return; - } // save cycles when no style used - - cy._private.aniEles.merge(eles); - }, - - stopAnimationLoop: function stopAnimationLoop() { - this._private.animationsRunning = false; - }, - - startAnimationLoop: function startAnimationLoop() { - var cy = this; - - cy._private.animationsRunning = true; - - if (!cy.styleEnabled()) { - return; - } // save cycles when no style used - - // NB the animation loop will exec in headless environments if style enabled - // and explicit cy.destroy() is necessary to stop the loop - - function headlessStep() { - if (!cy._private.animationsRunning) { - return; - } - - util.requestAnimationFrame(function animationStep(now) { - stepAll(now, cy); - headlessStep(); - }); - } - - var renderer = cy.renderer(); - - if (renderer && renderer.beforeRender) { - // let the renderer schedule animations - renderer.beforeRender(function rendererAnimationStep(willDraw, now) { - stepAll(now, cy); - }, renderer.beforeRenderPriorities.animations); - } else { - // manage the animation loop ourselves - headlessStep(); // first call - } - } - -}; - -module.exports = corefn; - -/***/ }), -/* 61 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */ -/* Given a tension, friction, and duration, a simulation at 60FPS will first run without a defined duration in order to calculate the full path. A second pass - then adjusts the time delta -- using the relation between actual time and duration -- to calculate the path for the duration-constrained animation. */ -var generateSpringRK4 = function () { - function springAccelerationForState(state) { - return -state.tension * state.x - state.friction * state.v; - } - - function springEvaluateStateWithDerivative(initialState, dt, derivative) { - var state = { - x: initialState.x + derivative.dx * dt, - v: initialState.v + derivative.dv * dt, - tension: initialState.tension, - friction: initialState.friction - }; - - return { dx: state.v, dv: springAccelerationForState(state) }; - } - - function springIntegrateState(state, dt) { - var a = { - dx: state.v, - dv: springAccelerationForState(state) - }, - b = springEvaluateStateWithDerivative(state, dt * 0.5, a), - c = springEvaluateStateWithDerivative(state, dt * 0.5, b), - d = springEvaluateStateWithDerivative(state, dt, c), - dxdt = 1.0 / 6.0 * (a.dx + 2.0 * (b.dx + c.dx) + d.dx), - dvdt = 1.0 / 6.0 * (a.dv + 2.0 * (b.dv + c.dv) + d.dv); - - state.x = state.x + dxdt * dt; - state.v = state.v + dvdt * dt; - - return state; - } - - return function springRK4Factory(tension, friction, duration) { - - var initState = { - x: -1, - v: 0, - tension: null, - friction: null - }, - path = [0], - time_lapsed = 0, - tolerance = 1 / 10000, - DT = 16 / 1000, - have_duration = void 0, - dt = void 0, - last_state = void 0; - - tension = parseFloat(tension) || 500; - friction = parseFloat(friction) || 20; - duration = duration || null; - - initState.tension = tension; - initState.friction = friction; - - have_duration = duration !== null; - - /* Calculate the actual time it takes for this animation to complete with the provided conditions. */ - if (have_duration) { - /* Run the simulation without a duration. */ - time_lapsed = springRK4Factory(tension, friction); - /* Compute the adjusted time delta. */ - dt = time_lapsed / duration * DT; - } else { - dt = DT; - } - - for (;;) { - /* Next/step function .*/ - last_state = springIntegrateState(last_state || initState, dt); - /* Store the position. */ - path.push(1 + last_state.x); - time_lapsed += 16; - /* If the change threshold is reached, break. */ - if (!(Math.abs(last_state.x) > tolerance && Math.abs(last_state.v) > tolerance)) { - break; - } - } - - /* If duration is not defined, return the actual time required for completing this animation. Otherwise, return a closure that holds the - computed path and returns a snapshot of the position according to a given percentComplete. */ - return !have_duration ? time_lapsed : function (percentComplete) { - return path[percentComplete * (path.length - 1) | 0]; - }; - }; -}(); - -module.exports = generateSpringRK4; - -/***/ }), -/* 62 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -function startAnimation(self, ani, now, isCore) { - var isEles = !isCore; - var ele = self; - var ani_p = ani._private; - var cy = isCore ? self : self.cy(); - var style = cy.style(); - - if (isEles) { - var pos = ele.position(); - - ani_p.startPosition = ani_p.startPosition || { - x: pos.x, - y: pos.y - }; - - ani_p.startStyle = ani_p.startStyle || style.getAnimationStartStyle(ele, ani_p.style); - } - - if (isCore) { - var pan = cy._private.pan; - - ani_p.startPan = ani_p.startPan || { - x: pan.x, - y: pan.y - }; - - ani_p.startZoom = ani_p.startZoom != null ? ani_p.startZoom : cy._private.zoom; - } - - ani_p.started = true; - ani_p.startTime = now - ani_p.progress * ani_p.duration; -} - -module.exports = startAnimation; - -/***/ }), -/* 63 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var step = __webpack_require__(64); -var startAnimation = __webpack_require__(62); - -function stepAll(now, cy) { - var eles = cy._private.aniEles; - var doneEles = []; - - function stepOne(ele, isCore) { - var _p = ele._private; - var current = _p.animation.current; - var queue = _p.animation.queue; - var ranAnis = false; - - // cancel all animations on display:none ele - if (!isCore && ele.pstyle('display').value === 'none') { - // put all current and queue animations in this tick's current list - // and empty the lists for the element - current = current.splice(0, current.length).concat(queue.splice(0, queue.length)); - - // stop all animations - for (var i = 0; i < current.length; i++) { - current[i].stop(); - } - } - - // if nothing currently animating, get something from the queue - if (current.length === 0) { - var next = queue.shift(); - - if (next) { - current.push(next); - } - } - - var callbacks = function callbacks(_callbacks) { - for (var j = _callbacks.length - 1; j >= 0; j--) { - var cb = _callbacks[j]; - - cb(); - } - - _callbacks.splice(0, _callbacks.length); - }; - - // step and remove if done - for (var _i = current.length - 1; _i >= 0; _i--) { - var ani = current[_i]; - var ani_p = ani._private; - - if (ani_p.stopped) { - current.splice(_i, 1); - - ani_p.hooked = false; - ani_p.playing = false; - ani_p.started = false; - - callbacks(ani_p.frames); - - continue; - } - - if (!ani_p.playing && !ani_p.applying) { - continue; - } - - // an apply() while playing shouldn't do anything - if (ani_p.playing && ani_p.applying) { - ani_p.applying = false; - } - - if (!ani_p.started) { - startAnimation(ele, ani, now, isCore); - } - - step(ele, ani, now, isCore); - - if (ani_p.applying) { - ani_p.applying = false; - } - - callbacks(ani_p.frames); - - if (ani.completed()) { - current.splice(_i, 1); - - ani_p.hooked = false; - ani_p.playing = false; - ani_p.started = false; - - callbacks(ani_p.completes); - } - - ranAnis = true; - } - - if (!isCore && current.length === 0 && queue.length === 0) { - doneEles.push(ele); - } - - return ranAnis; - } // stepElement - - // handle all eles - var ranEleAni = false; - for (var e = 0; e < eles.length; e++) { - var ele = eles[e]; - var handledThisEle = stepOne(ele); - - ranEleAni = ranEleAni || handledThisEle; - } // each element - - var ranCoreAni = stepOne(cy, true); - - // notify renderer - if (ranEleAni || ranCoreAni) { - if (eles.length > 0) { - eles.dirtyCompoundBoundsCache(); - - cy.notify({ - type: 'draw', - eles: eles - }); - } else { - cy.notify({ - type: 'draw' - }); - } - } - - // remove elements from list of currently animating if its queues are empty - eles.unmerge(doneEles); - - cy.emit('step'); -} // stepAll - -module.exports = stepAll; - -/***/ }), -/* 64 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var easings = __webpack_require__(59); -var ease = __webpack_require__(58); -var is = __webpack_require__(0); - -function step(self, ani, now, isCore) { - var isEles = !isCore; - var _p = self._private; - var ani_p = ani._private; - var pEasing = ani_p.easing; - var startTime = ani_p.startTime; - var cy = isCore ? self : self.cy(); - var style = cy.style(); - - if (!ani_p.easingImpl) { - - if (pEasing == null) { - // use default - ani_p.easingImpl = easings['linear']; - } else { - // then define w/ name - var easingVals = void 0; - - if (is.string(pEasing)) { - var easingProp = style.parse('transition-timing-function', pEasing); - - easingVals = easingProp.value; - } else { - // then assume preparsed array - easingVals = pEasing; - } - - var name = void 0, - args = void 0; - - if (is.string(easingVals)) { - name = easingVals; - args = []; - } else { - name = easingVals[1]; - args = easingVals.slice(2).map(function (n) { - return +n; - }); - } - - if (args.length > 0) { - // create with args - if (name === 'spring') { - args.push(ani_p.duration); // need duration to generate spring - } - - ani_p.easingImpl = easings[name].apply(null, args); - } else { - // static impl by name - ani_p.easingImpl = easings[name]; - } - } - } - - var easing = ani_p.easingImpl; - var percent = void 0; - - if (ani_p.duration === 0) { - percent = 1; - } else { - percent = (now - startTime) / ani_p.duration; - } - - if (ani_p.applying) { - percent = ani_p.progress; - } - - if (percent < 0) { - percent = 0; - } else if (percent > 1) { - percent = 1; - } - - if (ani_p.delay == null) { - // then update - - var startPos = ani_p.startPosition; - var endPos = ani_p.position; - - if (endPos && isEles && !self.locked()) { - var pos = self.position(); - - if (valid(startPos.x, endPos.x)) { - pos.x = ease(startPos.x, endPos.x, percent, easing); - } - - if (valid(startPos.y, endPos.y)) { - pos.y = ease(startPos.y, endPos.y, percent, easing); - } - - self.emit('position'); - } - - var startPan = ani_p.startPan; - var endPan = ani_p.pan; - var pan = _p.pan; - var animatingPan = endPan != null && isCore; - if (animatingPan) { - if (valid(startPan.x, endPan.x)) { - pan.x = ease(startPan.x, endPan.x, percent, easing); - } - - if (valid(startPan.y, endPan.y)) { - pan.y = ease(startPan.y, endPan.y, percent, easing); - } - - self.emit('pan'); - } - - var startZoom = ani_p.startZoom; - var endZoom = ani_p.zoom; - var animatingZoom = endZoom != null && isCore; - if (animatingZoom) { - if (valid(startZoom, endZoom)) { - _p.zoom = ease(startZoom, endZoom, percent, easing); - } - - self.emit('zoom'); - } - - if (animatingPan || animatingZoom) { - self.emit('viewport'); - } - - var props = ani_p.style; - if (props && props.length > 0 && isEles) { - for (var i = 0; i < props.length; i++) { - var prop = props[i]; - var _name = prop.name; - var end = prop; - var start = ani_p.startStyle[_name]; - var propSpec = style.properties[start.name]; - var easedVal = ease(start, end, percent, easing, propSpec); - - style.overrideBypass(self, _name, easedVal); - } // for props - - self.emit('style'); - } // if - } - - ani_p.progress = percent; - - return percent; -} - -function valid(start, end) { - if (start == null || end == null) { - return false; - } - - if (is.number(start) && is.number(end)) { - return true; - } else if (start && end) { - return true; - } - - return false; -} - -module.exports = step; - -/***/ }), -/* 65 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var Emitter = __webpack_require__(10); -var define = __webpack_require__(3); -var is = __webpack_require__(0); -var util = __webpack_require__(1); -var Selector = __webpack_require__(6); - -var emitterOptions = { - qualifierCompare: function qualifierCompare(selector1, selector2) { - if (selector1 == null || selector2 == null) { - return selector1 == null && selector2 == null; - } else { - return selector1.sameText(selector2); - } - }, - eventMatches: function eventMatches(cy, listener, eventObj) { - var selector = listener.qualifier; - - if (selector != null) { - return cy !== eventObj.target && is.element(eventObj.target) && selector.matches(eventObj.target); - } - - return true; - }, - eventFields: function eventFields(cy) { - return { - cy: cy, - target: cy - }; - }, - callbackContext: function callbackContext(cy, listener, eventObj) { - return listener.qualifier != null ? eventObj.target : cy; - } -}; - -var argSelector = function argSelector(arg) { - if (is.string(arg)) { - return new Selector(arg); - } else { - return arg; - } -}; - -var elesfn = { - createEmitter: function createEmitter() { - var _p = this._private; - - if (!_p.emitter) { - _p.emitter = new Emitter(util.assign({ - context: this - }, emitterOptions)); - } - - return this; - }, - - emitter: function emitter() { - return this._private.emitter; - }, - - on: function on(events, selector, callback) { - this.emitter().on(events, argSelector(selector), callback); - - return this; - }, - - removeListener: function removeListener(events, selector, callback) { - this.emitter().removeListener(events, argSelector(selector), callback); - - return this; - }, - - one: function one(events, selector, callback) { - this.emitter().one(events, argSelector(selector), callback); - - return this; - }, - - once: function once(events, selector, callback) { - this.emitter().one(events, argSelector(selector), callback); - - return this; - }, - - emit: function emit(events, extraParams) { - this.emitter().emit(events, extraParams); - - return this; - } -}; - -define.eventAliasesOn(elesfn); - -module.exports = elesfn; - -/***/ }), -/* 66 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var corefn = { - - png: function png(options) { - var renderer = this._private.renderer; - options = options || {}; - - return renderer.png(options); - }, - - jpg: function jpg(options) { - var renderer = this._private.renderer; - options = options || {}; - - options.bg = options.bg || '#fff'; - - return renderer.jpg(options); - } - -}; - -corefn.jpeg = corefn.jpg; - -module.exports = corefn; - -/***/ }), -/* 67 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var is = __webpack_require__(0); - -var corefn = { - - layout: function layout(options) { - var cy = this; - - if (options == null) { - util.error('Layout options must be specified to make a layout'); - return; - } - - if (options.name == null) { - util.error('A `name` must be specified to make a layout'); - return; - } - - var name = options.name; - var Layout = cy.extension('layout', name); - - if (Layout == null) { - util.error('Can not apply layout: No such layout `' + name + '` found; did you include its JS file?'); - return; - } - - var eles = void 0; - if (is.string(options.eles)) { - eles = cy.$(options.eles); - } else { - eles = options.eles != null ? options.eles : cy.$(); - } - - var layout = new Layout(util.extend({}, options, { - cy: cy, - eles: eles - })); - - return layout; - } - -}; - -corefn.createLayout = corefn.makeLayout = corefn.layout; - -module.exports = corefn; - -/***/ }), -/* 68 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var corefn = { - notify: function notify(params) { - var _p = this._private; - - if (_p.batchingNotify) { - var bEles = _p.batchNotifyEles; - var bTypes = _p.batchNotifyTypes; - - if (params.eles) { - bEles.merge(params.eles); - } - - if (!bTypes.ids[params.type]) { - bTypes.push(params.type); - bTypes.ids[params.type] = true; - } - - return; // notifications are disabled during batching - } - - if (!_p.notificationsEnabled) { - return; - } // exit on disabled - - var renderer = this.renderer(); - - // exit if destroy() called on core or renderer in between frames #1499 #1528 - if (this.isDestroyed() || !renderer) { - return; - } - - renderer.notify(params); - }, - - notifications: function notifications(bool) { - var p = this._private; - - if (bool === undefined) { - return p.notificationsEnabled; - } else { - p.notificationsEnabled = bool ? true : false; - } - }, - - noNotifications: function noNotifications(callback) { - this.notifications(false); - callback(); - this.notifications(true); - }, - - batching: function batching() { - return this._private.batchCount > 0; - }, - - startBatch: function startBatch() { - var _p = this._private; - - if (_p.batchCount == null) { - _p.batchCount = 0; - } - - if (_p.batchCount === 0) { - _p.batchingStyle = _p.batchingNotify = true; - _p.batchStyleEles = this.collection(); - _p.batchNotifyEles = this.collection(); - _p.batchNotifyTypes = []; - _p.batchNotifyTypes.ids = {}; - } - - _p.batchCount++; - - return this; - }, - - endBatch: function endBatch() { - var _p = this._private; - - _p.batchCount--; - - if (_p.batchCount === 0) { - // update style for dirty eles - _p.batchingStyle = false; - _p.batchStyleEles.updateStyle(); - - // notify the renderer of queued eles and event types - _p.batchingNotify = false; - this.notify({ - type: _p.batchNotifyTypes, - eles: _p.batchNotifyEles - }); - } - - return this; - }, - - batch: function batch(callback) { - this.startBatch(); - callback(); - this.endBatch(); - - return this; - }, - - // for backwards compatibility - batchData: function batchData(map) { - var cy = this; - - return this.batch(function () { - var ids = Object.keys(map); - - for (var i = 0; i < ids.length; i++) { - var id = ids[i]; - var data = map[id]; - var ele = cy.getElementById(id); - - ele.data(data); - } - }); - } -}; - -module.exports = corefn; - -/***/ }), -/* 69 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); - -var corefn = { - - renderTo: function renderTo(context, zoom, pan, pxRatio) { - var r = this._private.renderer; - - r.renderTo(context, zoom, pan, pxRatio); - return this; - }, - - renderer: function renderer() { - return this._private.renderer; - }, - - forceRender: function forceRender() { - this.notify({ - type: 'draw' - }); - - return this; - }, - - resize: function resize() { - this.invalidateSize(); - - this.notify({ - type: 'resize' - }); - - this.emit('resize'); - - return this; - }, - - initRenderer: function initRenderer(options) { - var cy = this; - - var RendererProto = cy.extension('renderer', options.name); - if (RendererProto == null) { - util.error('Can not initialise: No such renderer `%s` found; did you include its JS file?', options.name); - return; - } - - cy._private.renderer = new RendererProto(util.extend({}, options, { cy: cy })); - - this.notify({ type: 'init' }); - }, - - destroyRenderer: function destroyRenderer() { - var cy = this; - - cy.notify({ type: 'destroy' }); // destroy the renderer - - var domEle = cy.container(); - if (domEle) { - domEle._cyreg = null; - - while (domEle.childNodes.length > 0) { - domEle.removeChild(domEle.childNodes[0]); - } - } - - cy._private.renderer = null; // to be extra safe, remove the ref - }, - - onRender: function onRender(fn) { - return this.on('render', fn); - }, - - offRender: function offRender(fn) { - return this.off('render', fn); - } - -}; - -corefn.invalidateDimensions = corefn.resize; - -module.exports = corefn; - -/***/ }), -/* 70 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); -var Collection = __webpack_require__(7); - -var corefn = { - - // get a collection - // - empty collection on no args - // - collection of elements in the graph on selector arg - // - guarantee a returned collection when elements or collection specified - collection: function collection(eles, opts) { - - if (is.string(eles)) { - return this.$(eles); - } else if (is.elementOrCollection(eles)) { - return eles.collection(); - } else if (is.array(eles)) { - return new Collection(this, eles, opts); - } - - return new Collection(this); - }, - - nodes: function nodes(selector) { - var nodes = this.$(function (ele) { - return ele.isNode(); - }); - - if (selector) { - return nodes.filter(selector); - } - - return nodes; - }, - - edges: function edges(selector) { - var edges = this.$(function (ele) { - return ele.isEdge(); - }); - - if (selector) { - return edges.filter(selector); - } - - return edges; - }, - - // search the graph like jQuery - $: function $(selector) { - var eles = this._private.elements; - - if (selector) { - return eles.filter(selector); - } else { - return eles.spawnSelf(); - } - }, - - mutableElements: function mutableElements() { - return this._private.elements; - } - -}; - -// aliases -corefn.elements = corefn.filter = corefn.$; - -module.exports = corefn; - -/***/ }), -/* 71 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); -var Style = __webpack_require__(18); - -var corefn = { - - style: function style(newStyle) { - if (newStyle) { - var s = this.setStyle(newStyle); - - s.update(); - } - - return this._private.style; - }, - - setStyle: function setStyle(style) { - var _p = this._private; - - if (is.stylesheet(style)) { - _p.style = style.generateStyle(this); - } else if (is.array(style)) { - _p.style = Style.fromJson(this, style); - } else if (is.string(style)) { - _p.style = Style.fromString(this, style); - } else { - _p.style = Style(this); - } - - return _p.style; - } -}; - -module.exports = corefn; - -/***/ }), -/* 72 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); -var window = __webpack_require__(4); -var math = __webpack_require__(2); - -var corefn = { - - autolock: function autolock(bool) { - if (bool !== undefined) { - this._private.autolock = bool ? true : false; - } else { - return this._private.autolock; - } - - return this; // chaining - }, - - autoungrabify: function autoungrabify(bool) { - if (bool !== undefined) { - this._private.autoungrabify = bool ? true : false; - } else { - return this._private.autoungrabify; - } - - return this; // chaining - }, - - autounselectify: function autounselectify(bool) { - if (bool !== undefined) { - this._private.autounselectify = bool ? true : false; - } else { - return this._private.autounselectify; - } - - return this; // chaining - }, - - panningEnabled: function panningEnabled(bool) { - if (bool !== undefined) { - this._private.panningEnabled = bool ? true : false; - } else { - return this._private.panningEnabled; - } - - return this; // chaining - }, - - userPanningEnabled: function userPanningEnabled(bool) { - if (bool !== undefined) { - this._private.userPanningEnabled = bool ? true : false; - } else { - return this._private.userPanningEnabled; - } - - return this; // chaining - }, - - zoomingEnabled: function zoomingEnabled(bool) { - if (bool !== undefined) { - this._private.zoomingEnabled = bool ? true : false; - } else { - return this._private.zoomingEnabled; - } - - return this; // chaining - }, - - userZoomingEnabled: function userZoomingEnabled(bool) { - if (bool !== undefined) { - this._private.userZoomingEnabled = bool ? true : false; - } else { - return this._private.userZoomingEnabled; - } - - return this; // chaining - }, - - boxSelectionEnabled: function boxSelectionEnabled(bool) { - if (bool !== undefined) { - this._private.boxSelectionEnabled = bool ? true : false; - } else { - return this._private.boxSelectionEnabled; - } - - return this; // chaining - }, - - pan: function pan() { - var args = arguments; - var pan = this._private.pan; - var dim = void 0, - val = void 0, - dims = void 0, - x = void 0, - y = void 0; - - switch (args.length) { - case 0: - // .pan() - return pan; - - case 1: - - if (is.string(args[0])) { - // .pan('x') - dim = args[0]; - return pan[dim]; - } else if (is.plainObject(args[0])) { - // .pan({ x: 0, y: 100 }) - if (!this._private.panningEnabled) { - return this; - } - - dims = args[0]; - x = dims.x; - y = dims.y; - - if (is.number(x)) { - pan.x = x; - } - - if (is.number(y)) { - pan.y = y; - } - - this.emit('pan viewport'); - } - break; - - case 2: - // .pan('x', 100) - if (!this._private.panningEnabled) { - return this; - } - - dim = args[0]; - val = args[1]; - - if ((dim === 'x' || dim === 'y') && is.number(val)) { - pan[dim] = val; - } - - this.emit('pan viewport'); - break; - - default: - break; // invalid - } - - this.notify({ // notify the renderer that the viewport changed - type: 'viewport' - }); - - return this; // chaining - }, - - panBy: function panBy(arg0, arg1) { - var args = arguments; - var pan = this._private.pan; - var dim = void 0, - val = void 0, - dims = void 0, - x = void 0, - y = void 0; - - if (!this._private.panningEnabled) { - return this; - } - - switch (args.length) { - case 1: - - if (is.plainObject(arg0)) { - // .panBy({ x: 0, y: 100 }) - dims = args[0]; - x = dims.x; - y = dims.y; - - if (is.number(x)) { - pan.x += x; - } - - if (is.number(y)) { - pan.y += y; - } - - this.emit('pan viewport'); - } - break; - - case 2: - // .panBy('x', 100) - dim = arg0; - val = arg1; - - if ((dim === 'x' || dim === 'y') && is.number(val)) { - pan[dim] += val; - } - - this.emit('pan viewport'); - break; - - default: - break; // invalid - } - - this.notify({ // notify the renderer that the viewport changed - type: 'viewport' - }); - - return this; // chaining - }, - - fit: function fit(elements, padding) { - var viewportState = this.getFitViewport(elements, padding); - - if (viewportState) { - var _p = this._private; - _p.zoom = viewportState.zoom; - _p.pan = viewportState.pan; - - this.emit('pan zoom viewport'); - - this.notify({ // notify the renderer that the viewport changed - type: 'viewport' - }); - } - - return this; // chaining - }, - - getFitViewport: function getFitViewport(elements, padding) { - if (is.number(elements) && padding === undefined) { - // elements is optional - padding = elements; - elements = undefined; - } - - if (!this._private.panningEnabled || !this._private.zoomingEnabled) { - return; - } - - var bb = void 0; - - if (is.string(elements)) { - var sel = elements; - elements = this.$(sel); - } else if (is.boundingBox(elements)) { - // assume bb - var bbe = elements; - bb = { - x1: bbe.x1, - y1: bbe.y1, - x2: bbe.x2, - y2: bbe.y2 - }; - - bb.w = bb.x2 - bb.x1; - bb.h = bb.y2 - bb.y1; - } else if (!is.elementOrCollection(elements)) { - elements = this.mutableElements(); - } - - if (is.elementOrCollection(elements) && elements.empty()) { - return; - } // can't fit to nothing - - bb = bb || elements.boundingBox(); - - var w = this.width(); - var h = this.height(); - var zoom = void 0; - padding = is.number(padding) ? padding : 0; - - if (!isNaN(w) && !isNaN(h) && w > 0 && h > 0 && !isNaN(bb.w) && !isNaN(bb.h) && bb.w > 0 && bb.h > 0) { - zoom = Math.min((w - 2 * padding) / bb.w, (h - 2 * padding) / bb.h); - - // crop zoom - zoom = zoom > this._private.maxZoom ? this._private.maxZoom : zoom; - zoom = zoom < this._private.minZoom ? this._private.minZoom : zoom; - - var pan = { // now pan to middle - x: (w - zoom * (bb.x1 + bb.x2)) / 2, - y: (h - zoom * (bb.y1 + bb.y2)) / 2 - }; - - return { - zoom: zoom, - pan: pan - }; - } - - return; - }, - - minZoom: function minZoom(zoom) { - if (zoom === undefined) { - return this._private.minZoom; - } else if (is.number(zoom)) { - this._private.minZoom = zoom; - } - - return this; - }, - - maxZoom: function maxZoom(zoom) { - if (zoom === undefined) { - return this._private.maxZoom; - } else if (is.number(zoom)) { - this._private.maxZoom = zoom; - } - - return this; - }, - - getZoomedViewport: function getZoomedViewport(params) { - var _p = this._private; - var currentPan = _p.pan; - var currentZoom = _p.zoom; - var pos = void 0; // in rendered px - var zoom = void 0; - var bail = false; - - if (!_p.zoomingEnabled) { - // zooming disabled - bail = true; - } - - if (is.number(params)) { - // then set the zoom - zoom = params; - } else if (is.plainObject(params)) { - // then zoom about a point - zoom = params.level; - - if (params.position != null) { - pos = math.modelToRenderedPosition(params.position, currentZoom, currentPan); - } else if (params.renderedPosition != null) { - pos = params.renderedPosition; - } - - if (pos != null && !_p.panningEnabled) { - // panning disabled - bail = true; - } - } - - // crop zoom - zoom = zoom > _p.maxZoom ? _p.maxZoom : zoom; - zoom = zoom < _p.minZoom ? _p.minZoom : zoom; - - // can't zoom with invalid params - if (bail || !is.number(zoom) || zoom === currentZoom || pos != null && (!is.number(pos.x) || !is.number(pos.y))) { - return null; - } - - if (pos != null) { - // set zoom about position - var pan1 = currentPan; - var zoom1 = currentZoom; - var zoom2 = zoom; - - var pan2 = { - x: -zoom2 / zoom1 * (pos.x - pan1.x) + pos.x, - y: -zoom2 / zoom1 * (pos.y - pan1.y) + pos.y - }; - - return { - zoomed: true, - panned: true, - zoom: zoom2, - pan: pan2 - }; - } else { - // just set the zoom - return { - zoomed: true, - panned: false, - zoom: zoom, - pan: currentPan - }; - } - }, - - zoom: function zoom(params) { - if (params === undefined) { - // get - return this._private.zoom; - } else { - // set - var vp = this.getZoomedViewport(params); - var _p = this._private; - - if (vp == null || !vp.zoomed) { - return this; - } - - _p.zoom = vp.zoom; - - if (vp.panned) { - _p.pan.x = vp.pan.x; - _p.pan.y = vp.pan.y; - } - - this.emit('zoom' + (vp.panned ? ' pan' : '') + ' viewport'); - - this.notify({ // notify the renderer that the viewport changed - type: 'viewport' - }); - - return this; // chaining - } - }, - - viewport: function viewport(opts) { - var _p = this._private; - var zoomDefd = true; - var panDefd = true; - var events = []; // to trigger - var zoomFailed = false; - var panFailed = false; - - if (!opts) { - return this; - } - if (!is.number(opts.zoom)) { - zoomDefd = false; - } - if (!is.plainObject(opts.pan)) { - panDefd = false; - } - if (!zoomDefd && !panDefd) { - return this; - } - - if (zoomDefd) { - var z = opts.zoom; - - if (z < _p.minZoom || z > _p.maxZoom || !_p.zoomingEnabled) { - zoomFailed = true; - } else { - _p.zoom = z; - - events.push('zoom'); - } - } - - if (panDefd && (!zoomFailed || !opts.cancelOnFailedZoom) && _p.panningEnabled) { - var p = opts.pan; - - if (is.number(p.x)) { - _p.pan.x = p.x; - panFailed = false; - } - - if (is.number(p.y)) { - _p.pan.y = p.y; - panFailed = false; - } - - if (!panFailed) { - events.push('pan'); - } - } - - if (events.length > 0) { - events.push('viewport'); - this.emit(events.join(' ')); - - this.notify({ - type: 'viewport' - }); - } - - return this; // chaining - }, - - center: function center(elements) { - var pan = this.getCenterPan(elements); - - if (pan) { - this._private.pan = pan; - - this.emit('pan viewport'); - - this.notify({ // notify the renderer that the viewport changed - type: 'viewport' - }); - } - - return this; // chaining - }, - - getCenterPan: function getCenterPan(elements, zoom) { - if (!this._private.panningEnabled) { - return; - } - - if (is.string(elements)) { - var selector = elements; - elements = this.mutableElements().filter(selector); - } else if (!is.elementOrCollection(elements)) { - elements = this.mutableElements(); - } - - if (elements.length === 0) { - return; - } // can't centre pan to nothing - - var bb = elements.boundingBox(); - var w = this.width(); - var h = this.height(); - zoom = zoom === undefined ? this._private.zoom : zoom; - - var pan = { // middle - x: (w - zoom * (bb.x1 + bb.x2)) / 2, - y: (h - zoom * (bb.y1 + bb.y2)) / 2 - }; - - return pan; - }, - - reset: function reset() { - if (!this._private.panningEnabled || !this._private.zoomingEnabled) { - return this; - } - - this.viewport({ - pan: { x: 0, y: 0 }, - zoom: 1 - }); - - return this; // chaining - }, - - invalidateSize: function invalidateSize() { - this._private.sizeCache = null; - }, - - size: function size() { - var _p = this._private; - var container = _p.container; - - return _p.sizeCache = _p.sizeCache || (container ? function () { - var style = window.getComputedStyle(container); - var val = function val(name) { - return parseFloat(style.getPropertyValue(name)); - }; - - return { - width: container.clientWidth - val('padding-left') - val('padding-right'), - height: container.clientHeight - val('padding-top') - val('padding-bottom') - }; - }() : { // fallback if no container (not 0 b/c can be used for dividing etc) - width: 1, - height: 1 - }); - }, - - width: function width() { - return this.size().width; - }, - - height: function height() { - return this.size().height; - }, - - extent: function extent() { - var pan = this._private.pan; - var zoom = this._private.zoom; - var rb = this.renderedExtent(); - - var b = { - x1: (rb.x1 - pan.x) / zoom, - x2: (rb.x2 - pan.x) / zoom, - y1: (rb.y1 - pan.y) / zoom, - y2: (rb.y2 - pan.y) / zoom - }; - - b.w = b.x2 - b.x1; - b.h = b.y2 - b.y1; - - return b; - }, - - renderedExtent: function renderedExtent() { - var width = this.width(); - var height = this.height(); - - return { - x1: 0, - y1: 0, - x2: width, - y2: height, - w: width, - h: height - }; - } -}; - -// aliases -corefn.centre = corefn.center; - -// backwards compatibility -corefn.autolockNodes = corefn.autolock; -corefn.autoungrabifyNodes = corefn.autoungrabify; - -module.exports = corefn; - -/***/ }), -/* 73 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var Animation = __webpack_require__(24); -var math = __webpack_require__(2); -var is = __webpack_require__(0); - -var define = { - - animated: function animated() { - return function animatedImpl() { - var self = this; - var selfIsArrayLike = self.length !== undefined; - var all = selfIsArrayLike ? self : [self]; // put in array if not array-like - var cy = this._private.cy || this; - - if (!cy.styleEnabled()) { - return false; - } - - var ele = all[0]; - - if (ele) { - return ele._private.animation.current.length > 0; - } - }; - }, // animated - - clearQueue: function clearQueue() { - return function clearQueueImpl() { - var self = this; - var selfIsArrayLike = self.length !== undefined; - var all = selfIsArrayLike ? self : [self]; // put in array if not array-like - var cy = this._private.cy || this; - - if (!cy.styleEnabled()) { - return this; - } - - for (var i = 0; i < all.length; i++) { - var ele = all[i]; - ele._private.animation.queue = []; - } - - return this; - }; - }, // clearQueue - - delay: function delay() { - return function delayImpl(time, complete) { - var cy = this._private.cy || this; - - if (!cy.styleEnabled()) { - return this; - } - - return this.animate({ - delay: time, - duration: time, - complete: complete - }); - }; - }, // delay - - delayAnimation: function delayAnimation() { - return function delayAnimationImpl(time, complete) { - var cy = this._private.cy || this; - - if (!cy.styleEnabled()) { - return this; - } - - return this.animation({ - delay: time, - duration: time, - complete: complete - }); - }; - }, // delay - - animation: function animation() { - return function animationImpl(properties, params) { - var self = this; - var selfIsArrayLike = self.length !== undefined; - var all = selfIsArrayLike ? self : [self]; // put in array if not array-like - var cy = this._private.cy || this; - var isCore = !selfIsArrayLike; - var isEles = !isCore; - - if (!cy.styleEnabled()) { - return this; - } - - var style = cy.style(); - - properties = util.assign({}, properties, params); - - var propertiesEmpty = Object.keys(properties).length === 0; - - if (propertiesEmpty) { - return new Animation(all[0], properties); // nothing to animate - } - - if (properties.duration === undefined) { - properties.duration = 400; - } - - switch (properties.duration) { - case 'slow': - properties.duration = 600; - break; - case 'fast': - properties.duration = 200; - break; - } - - if (isEles) { - properties.style = style.getPropsList(properties.style || properties.css); - - properties.css = undefined; - } - - if (isEles && properties.renderedPosition != null) { - var rpos = properties.renderedPosition; - var pan = cy.pan(); - var zoom = cy.zoom(); - - properties.position = math.renderedToModelPosition(rpos, zoom, pan); - } - - // override pan w/ panBy if set - if (isCore && properties.panBy != null) { - var panBy = properties.panBy; - var cyPan = cy.pan(); - - properties.pan = { - x: cyPan.x + panBy.x, - y: cyPan.y + panBy.y - }; - } - - // override pan w/ center if set - var center = properties.center || properties.centre; - if (isCore && center != null) { - var centerPan = cy.getCenterPan(center.eles, properties.zoom); - - if (centerPan != null) { - properties.pan = centerPan; - } - } - - // override pan & zoom w/ fit if set - if (isCore && properties.fit != null) { - var fit = properties.fit; - var fitVp = cy.getFitViewport(fit.eles || fit.boundingBox, fit.padding); - - if (fitVp != null) { - properties.pan = fitVp.pan; - properties.zoom = fitVp.zoom; - } - } - - // override zoom (& potentially pan) w/ zoom obj if set - if (isCore && is.plainObject(properties.zoom)) { - var vp = cy.getZoomedViewport(properties.zoom); - - if (vp != null) { - if (vp.zoomed) { - properties.zoom = vp.zoom; - } - - if (vp.panned) { - properties.pan = vp.pan; - } - } - } - - return new Animation(all[0], properties); - }; - }, // animate - - animate: function animate() { - return function animateImpl(properties, params) { - var self = this; - var selfIsArrayLike = self.length !== undefined; - var all = selfIsArrayLike ? self : [self]; // put in array if not array-like - var cy = this._private.cy || this; - - if (!cy.styleEnabled()) { - return this; - } - - if (params) { - properties = util.extend({}, properties, params); - } - - // manually hook and run the animation - for (var i = 0; i < all.length; i++) { - var ele = all[i]; - var queue = ele.animated() && (properties.queue === undefined || properties.queue); - - var ani = ele.animation(properties, queue ? { queue: true } : undefined); - - ani.play(); - } - - return this; // chaining - }; - }, // animate - - stop: function stop() { - return function stopImpl(clearQueue, jumpToEnd) { - var self = this; - var selfIsArrayLike = self.length !== undefined; - var all = selfIsArrayLike ? self : [self]; // put in array if not array-like - var cy = this._private.cy || this; - - if (!cy.styleEnabled()) { - return this; - } - - for (var i = 0; i < all.length; i++) { - var ele = all[i]; - var _p = ele._private; - var anis = _p.animation.current; - - for (var j = 0; j < anis.length; j++) { - var ani = anis[j]; - var ani_p = ani._private; - - if (jumpToEnd) { - // next iteration of the animation loop, the animation - // will go straight to the end and be removed - ani_p.duration = 0; - } - } - - // clear the queue of future animations - if (clearQueue) { - _p.animation.queue = []; - } - - if (!jumpToEnd) { - _p.animation.current = []; - } - } - - // we have to notify (the animation loop doesn't do it for us on `stop`) - cy.notify({ - eles: this, - type: 'draw' - }); - - return this; - }; - } // stop - -}; // define - -module.exports = define; - -/***/ }), -/* 74 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -var util = __webpack_require__(1); -var is = __webpack_require__(0); - -var define = { - - // access data field - data: function data(params) { - var defaults = { - field: 'data', - bindingEvent: 'data', - allowBinding: false, - allowSetting: false, - allowGetting: false, - settingEvent: 'data', - settingTriggersEvent: false, - triggerFnName: 'trigger', - immutableKeys: {}, // key => true if immutable - updateStyle: false, - beforeGet: function beforeGet(self) {}, - beforeSet: function beforeSet(self, obj) {}, - onSet: function onSet(self) {}, - canSet: function canSet(self) { - return true; - } - }; - params = util.extend({}, defaults, params); - - return function dataImpl(name, value) { - var p = params; - var self = this; - var selfIsArrayLike = self.length !== undefined; - var all = selfIsArrayLike ? self : [self]; // put in array if not array-like - var single = selfIsArrayLike ? self[0] : self; - - // .data('foo', ...) - if (is.string(name)) { - // set or get property - - // .data('foo') - if (p.allowGetting && value === undefined) { - // get - - var ret = void 0; - if (single) { - p.beforeGet(single); - - ret = single._private[p.field][name]; - } - return ret; - - // .data('foo', 'bar') - } else if (p.allowSetting && value !== undefined) { - // set - var valid = !p.immutableKeys[name]; - if (valid) { - var change = _defineProperty({}, name, value); - - p.beforeSet(self, change); - - for (var i = 0, l = all.length; i < l; i++) { - var ele = all[i]; - - if (p.canSet(ele)) { - ele._private[p.field][name] = value; - } - } - - // update mappers if asked - if (p.updateStyle) { - self.updateStyle(); - } - - // call onSet callback - p.onSet(self); - - if (p.settingTriggersEvent) { - self[p.triggerFnName](p.settingEvent); - } - } - } - - // .data({ 'foo': 'bar' }) - } else if (p.allowSetting && is.plainObject(name)) { - // extend - var obj = name; - var k = void 0, - v = void 0; - var keys = Object.keys(obj); - - p.beforeSet(self, obj); - - for (var _i = 0; _i < keys.length; _i++) { - k = keys[_i]; - v = obj[k]; - - var _valid = !p.immutableKeys[k]; - if (_valid) { - for (var j = 0; j < all.length; j++) { - var _ele = all[j]; - - if (p.canSet(_ele)) { - _ele._private[p.field][k] = v; - } - } - } - } - - // update mappers if asked - if (p.updateStyle) { - self.updateStyle(); - } - - // call onSet callback - p.onSet(self); - - if (p.settingTriggersEvent) { - self[p.triggerFnName](p.settingEvent); - } - - // .data(function(){ ... }) - } else if (p.allowBinding && is.fn(name)) { - // bind to event - var fn = name; - self.on(p.bindingEvent, fn); - - // .data() - } else if (p.allowGetting && name === undefined) { - // get whole object - var _ret = void 0; - if (single) { - p.beforeGet(single); - - _ret = single._private[p.field]; - } - return _ret; - } - - return self; // maintain chainability - }; // function - }, // data - - // remove data field - removeData: function removeData(params) { - var defaults = { - field: 'data', - event: 'data', - triggerFnName: 'trigger', - triggerEvent: false, - immutableKeys: {} // key => true if immutable - }; - params = util.extend({}, defaults, params); - - return function removeDataImpl(names) { - var p = params; - var self = this; - var selfIsArrayLike = self.length !== undefined; - var all = selfIsArrayLike ? self : [self]; // put in array if not array-like - - // .removeData('foo bar') - if (is.string(names)) { - // then get the list of keys, and delete them - var keys = names.split(/\s+/); - var l = keys.length; - - for (var i = 0; i < l; i++) { - // delete each non-empty key - var key = keys[i]; - if (is.emptyString(key)) { - continue; - } - - var valid = !p.immutableKeys[key]; // not valid if immutable - if (valid) { - for (var i_a = 0, l_a = all.length; i_a < l_a; i_a++) { - all[i_a]._private[p.field][key] = undefined; - } - } - } - - if (p.triggerEvent) { - self[p.triggerFnName](p.event); - } - - // .removeData() - } else if (names === undefined) { - // then delete all keys - - for (var _i_a = 0, _l_a = all.length; _i_a < _l_a; _i_a++) { - var _privateFields = all[_i_a]._private[p.field]; - var _keys = Object.keys(_privateFields); - - for (var _i2 = 0; _i2 < _keys.length; _i2++) { - var _key = _keys[_i2]; - var validKeyToDelete = !p.immutableKeys[_key]; - - if (validKeyToDelete) { - _privateFields[_key] = undefined; - } - } - } - - if (p.triggerEvent) { - self[p.triggerFnName](p.event); - } - } - - return self; // maintain chaining - }; // function - } // removeData -}; // define - -module.exports = define; - -/***/ }), -/* 75 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var Promise = __webpack_require__(5); - -var define = { - - eventAliasesOn: function eventAliasesOn(proto) { - var p = proto; - - p.addListener = p.listen = p.bind = p.on; - p.unlisten = p.unbind = p.off = p.removeListener; - p.trigger = p.emit; - - // this is just a wrapper alias of .on() - p.pon = p.promiseOn = function (events, selector) { - var self = this; - var args = Array.prototype.slice.call(arguments, 0); - - return new Promise(function (resolve, reject) { - var callback = function callback(e) { - self.off.apply(self, offArgs); - - resolve(e); - }; - - var onArgs = args.concat([callback]); - var offArgs = onArgs.concat([]); - - self.on.apply(self, onArgs); - }); - }; - } - -}; // define - -module.exports = define; - -/***/ }), -/* 76 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = [{ - type: 'layout', - extensions: __webpack_require__(82) -}, { - type: 'renderer', - extensions: __webpack_require__(115) -}]; - -/***/ }), -/* 77 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var math = __webpack_require__(2); -var is = __webpack_require__(0); - -var defaults = { - fit: true, // whether to fit the viewport to the graph - directed: false, // whether the tree is directed downwards (or edges can point in any direction if false) - padding: 30, // padding on fit - circle: false, // put depths in concentric circles if true, put depths top down if false - spacingFactor: 1.75, // positive spacing factor, larger => more space between nodes (N.B. n/a if causes overlap) - boundingBox: undefined, // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } - avoidOverlap: true, // prevents node overlap, may overflow boundingBox if not enough space - nodeDimensionsIncludeLabels: false, // Excludes the label when calculating node bounding boxes for the layout algorithm - roots: undefined, // the roots of the trees - maximalAdjustments: 0, // how many times to try to position the nodes in a maximal way (i.e. no backtracking) - animate: false, // whether to transition the node positions - animationDuration: 500, // duration of animation in ms if enabled - animationEasing: undefined, // easing of animation if enabled, - animateFilter: function animateFilter(node, i) { - return true; - }, // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts - ready: undefined, // callback on layoutready - stop: undefined, // callback on layoutstop - transform: function transform(node, position) { - return position; - } // transform a given node position. Useful for changing flow direction in discrete layouts -}; - -function BreadthFirstLayout(options) { - this.options = util.extend({}, defaults, options); -} - -BreadthFirstLayout.prototype.run = function () { - var params = this.options; - var options = params; - - var cy = params.cy; - var eles = options.eles; - var nodes = eles.nodes().not(':parent'); - var graph = eles; - - var bb = math.makeBoundingBox(options.boundingBox ? options.boundingBox : { - x1: 0, y1: 0, w: cy.width(), h: cy.height() - }); - - var roots = void 0; - if (is.elementOrCollection(options.roots)) { - roots = options.roots; - } else if (is.array(options.roots)) { - var rootsArray = []; - - for (var i = 0; i < options.roots.length; i++) { - var id = options.roots[i]; - var ele = cy.getElementById(id); - rootsArray.push(ele); - } - - roots = cy.collection(rootsArray); - } else if (is.string(options.roots)) { - roots = cy.$(options.roots); - } else { - if (options.directed) { - roots = nodes.roots(); - } else { - var components = []; - var unhandledNodes = nodes; - - var _loop = function _loop() { - var currComp = cy.collection(); - - eles.bfs({ - roots: unhandledNodes[0], - visit: function visit(node, edge, pNode, i, depth) { - currComp = currComp.add(node); - }, - directed: false - }); - - unhandledNodes = unhandledNodes.not(currComp); - components.push(currComp); - }; - - while (unhandledNodes.length > 0) { - _loop(); - } - - roots = cy.collection(); - - var _loop2 = function _loop2(_i) { - var comp = components[_i]; - var maxDegree = comp.maxDegree(false); - var compRoots = comp.filter(function (ele) { - return ele.degree(false) === maxDegree; - }); - - roots = roots.add(compRoots); - }; - - for (var _i = 0; _i < components.length; _i++) { - _loop2(_i); - } - } - } - - var depths = []; - var foundByBfs = {}; - var id2depth = {}; - var prevNode = {}; - var prevEdge = {}; - var successors = {}; - - // find the depths of the nodes - graph.bfs({ - roots: roots, - directed: options.directed, - visit: function visit(node, edge, pNode, i, depth) { - var ele = node[0]; - var id = ele.id(); - - if (!depths[depth]) { - depths[depth] = []; - } - - depths[depth].push(ele); - foundByBfs[id] = true; - id2depth[id] = depth; - prevNode[id] = pNode; - prevEdge[id] = edge; - - if (pNode) { - var prevId = pNode.id(); - var succ = successors[prevId] = successors[prevId] || []; - - succ.push(node); - } - } - }); - - // check for nodes not found by bfs - var orphanNodes = []; - for (var _i2 = 0; _i2 < nodes.length; _i2++) { - var _ele = nodes[_i2]; - - if (foundByBfs[_ele.id()]) { - continue; - } else { - orphanNodes.push(_ele); - } - } - - // assign orphan nodes a depth from their neighborhood - var maxChecks = orphanNodes.length * 3; - var checks = 0; - while (orphanNodes.length !== 0 && checks < maxChecks) { - var node = orphanNodes.shift(); - var neighbors = node.neighborhood().nodes(); - var assignedDepth = false; - - for (var _i3 = 0; _i3 < neighbors.length; _i3++) { - var depth = id2depth[neighbors[_i3].id()]; - - if (depth !== undefined) { - depths[depth].push(node); - assignedDepth = true; - break; - } - } - - if (!assignedDepth) { - orphanNodes.push(node); - } - - checks++; - } - - // assign orphan nodes that are still left to the depth of their subgraph - while (orphanNodes.length !== 0) { - var _node = orphanNodes.shift(); - //let subgraph = graph.bfs( node ).path; - var _assignedDepth = false; - - // for( let i = 0; i < subgraph.length; i++ ){ - // let depth = id2depth[ subgraph[i].id() ]; - - // if( depth !== undefined ){ - // depths[depth].push( node ); - // assignedDepth = true; - // break; - // } - // } - - if (!_assignedDepth) { - // worst case if the graph really isn't tree friendly, then just dump it in 0 - if (depths.length === 0) { - depths.push([]); - } - - depths[0].push(_node); - } - } - - // assign the nodes a depth and index - var assignDepthsToEles = function assignDepthsToEles() { - for (var _i4 = 0; _i4 < depths.length; _i4++) { - var _eles = depths[_i4]; - - for (var j = 0; j < _eles.length; j++) { - var _ele2 = _eles[j]; - - if (_ele2 == null) { - _eles.splice(j, 1); - j--; - continue; - } - - _ele2._private.scratch.breadthfirst = { - depth: _i4, - index: j - }; - } - } - }; - assignDepthsToEles(); - - var intersectsDepth = function intersectsDepth(node) { - // returns true if has edges pointing in from a higher depth - var edges = node.connectedEdges(function (ele) { - return ele.data('target') === node.id(); - }); - var thisInfo = node._private.scratch.breadthfirst; - var highestDepthOfOther = 0; - var highestOther = void 0; - for (var _i5 = 0; _i5 < edges.length; _i5++) { - var edge = edges[_i5]; - var otherNode = edge.source()[0]; - var otherInfo = otherNode._private.scratch.breadthfirst; - - if (thisInfo.depth <= otherInfo.depth && highestDepthOfOther < otherInfo.depth) { - highestDepthOfOther = otherInfo.depth; - highestOther = otherNode; - } - } - - return highestOther; - }; - - // make maximal if so set by adjusting depths - for (var adj = 0; adj < options.maximalAdjustments; adj++) { - - var nDepths = depths.length; - var elesToMove = []; - for (var _i6 = 0; _i6 < nDepths; _i6++) { - var _depth = depths[_i6]; - - var nDepth = _depth.length; - for (var j = 0; j < nDepth; j++) { - var _ele3 = _depth[j]; - var info = _ele3._private.scratch.breadthfirst; - var intEle = intersectsDepth(_ele3); - - if (intEle) { - info.intEle = intEle; - elesToMove.push(_ele3); - } - } - } - - for (var _i7 = 0; _i7 < elesToMove.length; _i7++) { - var _ele4 = elesToMove[_i7]; - var _info = _ele4._private.scratch.breadthfirst; - var _intEle = _info.intEle; - var intInfo = _intEle._private.scratch.breadthfirst; - - depths[_info.depth][_info.index] = null; // remove from old depth & index (create hole to be cleaned) - - // add to end of new depth - var newDepth = intInfo.depth + 1; - while (newDepth > depths.length - 1) { - depths.push([]); - } - depths[newDepth].push(_ele4); - - _info.depth = newDepth; - _info.index = depths[newDepth].length - 1; - } - - assignDepthsToEles(); - } - - // find min distance we need to leave between nodes - var minDistance = 0; - if (options.avoidOverlap) { - for (var _i8 = 0; _i8 < nodes.length; _i8++) { - var n = nodes[_i8]; - var nbb = n.layoutDimensions(options); - var w = nbb.w; - var h = nbb.h; - - minDistance = Math.max(minDistance, w, h); - } - } - - // get the weighted percent for an element based on its connectivity to other levels - var cachedWeightedPercent = {}; - var getWeightedPercent = function getWeightedPercent(ele) { - if (cachedWeightedPercent[ele.id()]) { - return cachedWeightedPercent[ele.id()]; - } - - var eleDepth = ele._private.scratch.breadthfirst.depth; - var neighbors = ele.neighborhood().nodes().not(':parent').intersection(nodes); - var percent = 0; - var samples = 0; - - for (var _i9 = 0; _i9 < neighbors.length; _i9++) { - var neighbor = neighbors[_i9]; - var bf = neighbor._private.scratch.breadthfirst; - var index = bf.index; - var _depth2 = bf.depth; - var _nDepth = depths[_depth2].length; - - if (eleDepth > _depth2 || eleDepth === 0) { - // only get influenced by elements above - percent += index / _nDepth; - samples++; - } - } - - samples = Math.max(1, samples); - percent = percent / samples; - - if (samples === 0) { - // so lone nodes have a "don't care" state in sorting - percent = undefined; - } - - cachedWeightedPercent[ele.id()] = percent; - return percent; - }; - - // rearrange the indices in each depth level based on connectivity - - var sortFn = function sortFn(a, b) { - var apct = getWeightedPercent(a); - var bpct = getWeightedPercent(b); - - return apct - bpct; - }; - - for (var times = 0; times < 3; times++) { - // do it a few times b/c the depths are dynamic and we want a more stable result - - for (var _i10 = 0; _i10 < depths.length; _i10++) { - depths[_i10] = depths[_i10].sort(sortFn); - } - assignDepthsToEles(); // and update - } - - var biggestDepthSize = 0; - for (var _i11 = 0; _i11 < depths.length; _i11++) { - biggestDepthSize = Math.max(depths[_i11].length, biggestDepthSize); - } - - var center = { - x: bb.x1 + bb.w / 2, - y: bb.x1 + bb.h / 2 - }; - - var getPosition = function getPosition(ele, isBottomDepth) { - var info = ele._private.scratch.breadthfirst; - var depth = info.depth; - var index = info.index; - var depthSize = depths[depth].length; - - var distanceX = Math.max(bb.w / (depthSize + 1), minDistance); - var distanceY = Math.max(bb.h / (depths.length + 1), minDistance); - var radiusStepSize = Math.min(bb.w / 2 / depths.length, bb.h / 2 / depths.length); - radiusStepSize = Math.max(radiusStepSize, minDistance); - - if (!options.circle) { - - var epos = { - x: center.x + (index + 1 - (depthSize + 1) / 2) * distanceX, - y: (depth + 1) * distanceY - }; - - if (isBottomDepth) { - return epos; - } - - // let succs = successors[ ele.id() ]; - // if( succs ){ - // epos.x = 0; - // - // for( let i = 0 ; i < succs.length; i++ ){ - // let spos = pos[ succs[i].id() ]; - // - // epos.x += spos.x; - // } - // - // epos.x /= succs.length; - // } else { - // //debugger; - // } - - return epos; - } else { - if (options.circle) { - var radius = radiusStepSize * depth + radiusStepSize - (depths.length > 0 && depths[0].length <= 3 ? radiusStepSize / 2 : 0); - var theta = 2 * Math.PI / depths[depth].length * index; - - if (depth === 0 && depths[0].length === 1) { - radius = 1; - } - - return { - x: center.x + radius * Math.cos(theta), - y: center.y + radius * Math.sin(theta) - }; - } else { - return { - x: center.x + (index + 1 - (depthSize + 1) / 2) * distanceX, - y: (depth + 1) * distanceY - }; - } - } - }; - - // get positions in reverse depth order - var pos = {}; - for (var _i12 = depths.length - 1; _i12 >= 0; _i12--) { - var _depth3 = depths[_i12]; - - for (var _j = 0; _j < _depth3.length; _j++) { - var _node2 = _depth3[_j]; - - pos[_node2.id()] = getPosition(_node2, _i12 === depths.length - 1); - } - } - - nodes.layoutPositions(this, options, function (node) { - return pos[node.id()]; - }); - - return this; // chaining -}; - -module.exports = BreadthFirstLayout; - -/***/ }), -/* 78 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var math = __webpack_require__(2); -var is = __webpack_require__(0); - -var defaults = { - fit: true, // whether to fit the viewport to the graph - padding: 30, // the padding on fit - boundingBox: undefined, // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } - avoidOverlap: true, // prevents node overlap, may overflow boundingBox and radius if not enough space - nodeDimensionsIncludeLabels: false, // Excludes the label when calculating node bounding boxes for the layout algorithm - spacingFactor: undefined, // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up - radius: undefined, // the radius of the circle - startAngle: 3 / 2 * Math.PI, // where nodes start in radians - sweep: undefined, // how many radians should be between the first and last node (defaults to full circle) - clockwise: true, // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false) - sort: undefined, // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') } - animate: false, // whether to transition the node positions - animationDuration: 500, // duration of animation in ms if enabled - animationEasing: undefined, // easing of animation if enabled - animateFilter: function animateFilter(node, i) { - return true; - }, // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts - ready: undefined, // callback on layoutready - stop: undefined, // callback on layoutstop - transform: function transform(node, position) { - return position; - } // transform a given node position. Useful for changing flow direction in discrete layouts - -}; - -function CircleLayout(options) { - this.options = util.extend({}, defaults, options); -} - -CircleLayout.prototype.run = function () { - var params = this.options; - var options = params; - - var cy = params.cy; - var eles = options.eles; - - var clockwise = options.counterclockwise !== undefined ? !options.counterclockwise : options.clockwise; - - var nodes = eles.nodes().not(':parent'); - - if (options.sort) { - nodes = nodes.sort(options.sort); - } - - var bb = math.makeBoundingBox(options.boundingBox ? options.boundingBox : { - x1: 0, y1: 0, w: cy.width(), h: cy.height() - }); - - var center = { - x: bb.x1 + bb.w / 2, - y: bb.y1 + bb.h / 2 - }; - - var sweep = options.sweep === undefined ? 2 * Math.PI - 2 * Math.PI / nodes.length : options.sweep; - var dTheta = sweep / Math.max(1, nodes.length - 1); - var r = void 0; - - var minDistance = 0; - for (var i = 0; i < nodes.length; i++) { - var n = nodes[i]; - var nbb = n.layoutDimensions(options); - var w = nbb.w; - var h = nbb.h; - - minDistance = Math.max(minDistance, w, h); - } - - if (is.number(options.radius)) { - r = options.radius; - } else if (nodes.length <= 1) { - r = 0; - } else { - r = Math.min(bb.h, bb.w) / 2 - minDistance; - } - - // calculate the radius - if (nodes.length > 1 && options.avoidOverlap) { - // but only if more than one node (can't overlap) - minDistance *= 1.75; // just to have some nice spacing - - var dcos = Math.cos(dTheta) - Math.cos(0); - var dsin = Math.sin(dTheta) - Math.sin(0); - var rMin = Math.sqrt(minDistance * minDistance / (dcos * dcos + dsin * dsin)); // s.t. no nodes overlapping - r = Math.max(rMin, r); - } - - var getPos = function getPos(ele, i) { - var theta = options.startAngle + i * dTheta * (clockwise ? 1 : -1); - - var rx = r * Math.cos(theta); - var ry = r * Math.sin(theta); - var pos = { - x: center.x + rx, - y: center.y + ry - }; - - return pos; - }; - - nodes.layoutPositions(this, options, getPos); - - return this; // chaining -}; - -module.exports = CircleLayout; - -/***/ }), -/* 79 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var math = __webpack_require__(2); - -var defaults = { - fit: true, // whether to fit the viewport to the graph - padding: 30, // the padding on fit - startAngle: 3 / 2 * Math.PI, // where nodes start in radians - sweep: undefined, // how many radians should be between the first and last node (defaults to full circle) - clockwise: true, // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false) - equidistant: false, // whether levels have an equal radial distance betwen them, may cause bounding box overflow - minNodeSpacing: 10, // min spacing between outside of nodes (used for radius adjustment) - boundingBox: undefined, // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } - avoidOverlap: true, // prevents node overlap, may overflow boundingBox if not enough space - nodeDimensionsIncludeLabels: false, // Excludes the label when calculating node bounding boxes for the layout algorithm - height: undefined, // height of layout area (overrides container height) - width: undefined, // width of layout area (overrides container width) - spacingFactor: undefined, // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up - concentric: function concentric(node) { - // returns numeric value for each node, placing higher nodes in levels towards the centre - return node.degree(); - }, - levelWidth: function levelWidth(nodes) { - // the letiation of concentric values in each level - return nodes.maxDegree() / 4; - }, - animate: false, // whether to transition the node positions - animationDuration: 500, // duration of animation in ms if enabled - animationEasing: undefined, // easing of animation if enabled - animateFilter: function animateFilter(node, i) { - return true; - }, // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts - ready: undefined, // callback on layoutready - stop: undefined, // callback on layoutstop - transform: function transform(node, position) { - return position; - } // transform a given node position. Useful for changing flow direction in discrete layouts -}; - -function ConcentricLayout(options) { - this.options = util.extend({}, defaults, options); -} - -ConcentricLayout.prototype.run = function () { - var params = this.options; - var options = params; - - var clockwise = options.counterclockwise !== undefined ? !options.counterclockwise : options.clockwise; - - var cy = params.cy; - - var eles = options.eles; - var nodes = eles.nodes().not(':parent'); - - var bb = math.makeBoundingBox(options.boundingBox ? options.boundingBox : { - x1: 0, y1: 0, w: cy.width(), h: cy.height() - }); - - var center = { - x: bb.x1 + bb.w / 2, - y: bb.y1 + bb.h / 2 - }; - - var nodeValues = []; // { node, value } - var theta = options.startAngle; - var maxNodeSize = 0; - - for (var i = 0; i < nodes.length; i++) { - var node = nodes[i]; - var value = void 0; - - // calculate the node value - value = options.concentric(node); - nodeValues.push({ - value: value, - node: node - }); - - // for style mapping - node._private.scratch.concentric = value; - } - - // in case we used the `concentric` in style - nodes.updateStyle(); - - // calculate max size now based on potentially updated mappers - for (var _i = 0; _i < nodes.length; _i++) { - var _node = nodes[_i]; - var nbb = _node.layoutDimensions(options); - - maxNodeSize = Math.max(maxNodeSize, nbb.w, nbb.h); - } - - // sort node values in descreasing order - nodeValues.sort(function (a, b) { - return b.value - a.value; - }); - - var levelWidth = options.levelWidth(nodes); - - // put the values into levels - var levels = [[]]; - var currentLevel = levels[0]; - for (var _i2 = 0; _i2 < nodeValues.length; _i2++) { - var val = nodeValues[_i2]; - - if (currentLevel.length > 0) { - var diff = Math.abs(currentLevel[0].value - val.value); - - if (diff >= levelWidth) { - currentLevel = []; - levels.push(currentLevel); - } - } - - currentLevel.push(val); - } - - // create positions from levels - - var minDist = maxNodeSize + options.minNodeSpacing; // min dist between nodes - - if (!options.avoidOverlap) { - // then strictly constrain to bb - var firstLvlHasMulti = levels.length > 0 && levels[0].length > 1; - var maxR = Math.min(bb.w, bb.h) / 2 - minDist; - var rStep = maxR / (levels.length + firstLvlHasMulti ? 1 : 0); - - minDist = Math.min(minDist, rStep); - } - - // find the metrics for each level - var r = 0; - for (var _i3 = 0; _i3 < levels.length; _i3++) { - var level = levels[_i3]; - var sweep = options.sweep === undefined ? 2 * Math.PI - 2 * Math.PI / level.length : options.sweep; - var dTheta = level.dTheta = sweep / Math.max(1, level.length - 1); - - // calculate the radius - if (level.length > 1 && options.avoidOverlap) { - // but only if more than one node (can't overlap) - var dcos = Math.cos(dTheta) - Math.cos(0); - var dsin = Math.sin(dTheta) - Math.sin(0); - var rMin = Math.sqrt(minDist * minDist / (dcos * dcos + dsin * dsin)); // s.t. no nodes overlapping - - r = Math.max(rMin, r); - } - - level.r = r; - - r += minDist; - } - - if (options.equidistant) { - var rDeltaMax = 0; - var _r = 0; - - for (var _i4 = 0; _i4 < levels.length; _i4++) { - var _level = levels[_i4]; - var rDelta = _level.r - _r; - - rDeltaMax = Math.max(rDeltaMax, rDelta); - } - - _r = 0; - for (var _i5 = 0; _i5 < levels.length; _i5++) { - var _level2 = levels[_i5]; - - if (_i5 === 0) { - _r = _level2.r; - } - - _level2.r = _r; - - _r += rDeltaMax; - } - } - - // calculate the node positions - var pos = {}; // id => position - for (var _i6 = 0; _i6 < levels.length; _i6++) { - var _level3 = levels[_i6]; - var _dTheta = _level3.dTheta; - var _r2 = _level3.r; - - for (var j = 0; j < _level3.length; j++) { - var _val = _level3[j]; - var _theta = options.startAngle + (clockwise ? 1 : -1) * _dTheta * j; - - var p = { - x: center.x + _r2 * Math.cos(_theta), - y: center.y + _r2 * Math.sin(_theta) - }; - - pos[_val.node.id()] = p; - } - } - - // position the nodes - nodes.layoutPositions(this, options, function (ele) { - var id = ele.id(); - - return pos[id]; - }); - - return this; // chaining -}; - -module.exports = ConcentricLayout; - -/***/ }), -/* 80 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/* -The CoSE layout was written by Gerardo Huck. -https://www.linkedin.com/in/gerardohuck/ - -Based on the following article: -http://dl.acm.org/citation.cfm?id=1498047 - -Modifications tracked on Github. -*/ - -var util = __webpack_require__(1); -var math = __webpack_require__(2); -var is = __webpack_require__(0); -var Promise = __webpack_require__(5); - -var DEBUG; - -/** - * @brief : default layout options - */ -var defaults = { - // Called on `layoutready` - ready: function ready() {}, - - // Called on `layoutstop` - stop: function stop() {}, - - // Whether to animate while running the layout - // true : Animate continuously as the layout is running - // false : Just show the end result - // 'end' : Animate with the end result, from the initial positions to the end positions - animate: true, - - // Easing of the animation for animate:'end' - animationEasing: undefined, - - // The duration of the animation for animate:'end' - animationDuration: undefined, - - // A function that determines whether the node should be animated - // All nodes animated by default on animate enabled - // Non-animated nodes are positioned immediately when the layout starts - animateFilter: function animateFilter(node, i) { - return true; - }, - - // The layout animates only after this many milliseconds for animate:true - // (prevents flashing on fast runs) - animationThreshold: 250, - - // Number of iterations between consecutive screen positions update - // (0 -> only updated on the end) - refresh: 20, - - // Whether to fit the network view after when done - fit: true, - - // Padding on fit - padding: 30, - - // Constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } - boundingBox: undefined, - - // Excludes the label when calculating node bounding boxes for the layout algorithm - nodeDimensionsIncludeLabels: false, - - // Randomize the initial positions of the nodes (true) or use existing positions (false) - randomize: false, - - // Extra spacing between components in non-compound graphs - componentSpacing: 40, - - // Node repulsion (non overlapping) multiplier - nodeRepulsion: function nodeRepulsion(node) { - return 2048; - }, - - // Node repulsion (overlapping) multiplier - nodeOverlap: 4, - - // Ideal edge (non nested) length - idealEdgeLength: function idealEdgeLength(edge) { - return 32; - }, - - // Divisor to compute edge forces - edgeElasticity: function edgeElasticity(edge) { - return 32; - }, - - // Nesting factor (multiplier) to compute ideal edge length for nested edges - nestingFactor: 1.2, - - // Gravity force (constant) - gravity: 1, - - // Maximum number of iterations to perform - numIter: 1000, - - // Initial temperature (maximum node displacement) - initialTemp: 1000, - - // Cooling factor (how the temperature is reduced between consecutive iterations - coolingFactor: 0.99, - - // Lower temperature threshold (below this point the layout will end) - minTemp: 1.0, - - // Pass a reference to weaver to use threads for calculations - weaver: false -}; - -/** - * @brief : constructor - * @arg options : object containing layout options - */ -function CoseLayout(options) { - this.options = util.extend({}, defaults, options); - - this.options.layout = this; -} - -/** - * @brief : runs the layout - */ -CoseLayout.prototype.run = function () { - var options = this.options; - var cy = options.cy; - var layout = this; - var thread = this.thread; - var Thread = options.weaver ? options.weaver.Thread : null; - - var falseThread = { // use false thread as polyfill - listeners: [], - on: function on(e, cb) { - this.listeners.push({ event: e, callback: cb }); - - return this; - }, - trigger: function trigger(e) { - if (is.string(e)) { - e = { type: e }; - } - - var matchesEvent = function matchesEvent(l) { - return l.event === e.type; - }; - var trigger = function trigger(l) { - l.callback(e); - }; - - this.listeners.filter(matchesEvent).forEach(trigger); - - return this; - }, - pass: function pass(data) { - this.pass = data; - - return this; - }, - run: function run(cb) { - var pass = this.pass; - - return new Promise(function (resolve) { - resolve(cb(pass)); - }); - }, - stop: function stop() { - return this; - } - }; - - function broadcast(message) { - // for false thread - var e = { type: 'message', message: message }; - - falseThread.trigger(e); - } - - if (!thread || thread.stopped()) { - thread = this.thread = Thread ? new Thread() : falseThread; - } - - layout.stopped = false; - - if (options.animate === true || options.animate === false) { - layout.emit({ type: 'layoutstart', layout: layout }); - } - - // Set DEBUG - Global variable - if (true === options.debug) { - DEBUG = true; - } else { - DEBUG = false; - } - - // Initialize layout info - var layoutInfo = createLayoutInfo(cy, layout, options); - - // Show LayoutInfo contents if debugging - if (DEBUG) { - printLayoutInfo(layoutInfo); - } - - // If required, randomize node positions - if (options.randomize) { - randomizePositions(layoutInfo, cy); - } - - var startTime = Date.now(); - var refreshRequested = false; - var refresh = function refresh(rOpts) { - rOpts = rOpts || {}; - - if (refreshRequested && !rOpts.next) { - return; - } - - if (!rOpts.force && Date.now() - startTime < options.animationThreshold) { - return; - } - - refreshRequested = true; - - util.requestAnimationFrame(function () { - refreshPositions(layoutInfo, cy, options); - - // Fit the graph if necessary - if (true === options.fit) { - cy.fit(options.padding); - } - - refreshRequested = false; - - if (rOpts.next) { - rOpts.next(); - } - }); - }; - - thread.on('message', function (e) { - var layoutNodes = e.message; - - layoutInfo.layoutNodes = layoutNodes; - refresh(); - }); - - thread.pass({ - layoutInfo: layoutInfo, - options: { - animate: options.animate, - refresh: options.refresh, - componentSpacing: options.componentSpacing, - nodeOverlap: options.nodeOverlap, - nestingFactor: options.nestingFactor, - gravity: options.gravity, - numIter: options.numIter, - initialTemp: options.initialTemp, - coolingFactor: options.coolingFactor, - minTemp: options.minTemp - } - }).run(function (pass) { - var layoutInfo = pass.layoutInfo; - var options = pass.options; - var stopped = false; - - /** - * @brief : Performs one iteration of the physical simulation - * @arg layoutInfo : LayoutInfo object already initialized - * @arg cy : Cytoscape object - * @arg options : Layout options - */ - var step = function step(layoutInfo, options, _step) { - // var s = "\n\n###############################"; - // s += "\nSTEP: " + step; - // s += "\n###############################\n"; - // logDebug(s); - - // Calculate node repulsions - calculateNodeForces(layoutInfo, options); - // Calculate edge forces - calculateEdgeForces(layoutInfo, options); - // Calculate gravity forces - calculateGravityForces(layoutInfo, options); - // Propagate forces from parent to child - propagateForces(layoutInfo, options); - // Update positions based on calculated forces - updatePositions(layoutInfo, options); - }; - - /** - * @brief : Computes the node repulsion forces - */ - var calculateNodeForces = function calculateNodeForces(layoutInfo, options) { - // Go through each of the graphs in graphSet - // Nodes only repel each other if they belong to the same graph - // var s = 'calculateNodeForces'; - // logDebug(s); - for (var i = 0; i < layoutInfo.graphSet.length; i++) { - var graph = layoutInfo.graphSet[i]; - var numNodes = graph.length; - - // s = "Set: " + graph.toString(); - // logDebug(s); - - // Now get all the pairs of nodes - // Only get each pair once, (A, B) = (B, A) - for (var j = 0; j < numNodes; j++) { - var node1 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]]; - - for (var k = j + 1; k < numNodes; k++) { - var node2 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[k]]]; - - nodeRepulsion(node1, node2, layoutInfo, options); - } - } - } - }; - - var randomDistance = function randomDistance(max) { - return -max + 2 * max * Math.random(); - }; - - /** - * @brief : Compute the node repulsion forces between a pair of nodes - */ - var nodeRepulsion = function nodeRepulsion(node1, node2, layoutInfo, options) { - // var s = "Node repulsion. Node1: " + node1.id + " Node2: " + node2.id; - - var cmptId1 = node1.cmptId; - var cmptId2 = node2.cmptId; - - if (cmptId1 !== cmptId2 && !layoutInfo.isCompound) { - return; - } - - // Get direction of line connecting both node centers - var directionX = node2.positionX - node1.positionX; - var directionY = node2.positionY - node1.positionY; - var maxRandDist = 1; - // s += "\ndirectionX: " + directionX + ", directionY: " + directionY; - - // If both centers are the same, apply a random force - if (0 === directionX && 0 === directionY) { - directionX = randomDistance(maxRandDist); - directionY = randomDistance(maxRandDist); - } - - var overlap = nodesOverlap(node1, node2, directionX, directionY); - - if (overlap > 0) { - // s += "\nNodes DO overlap."; - // s += "\nOverlap: " + overlap; - // If nodes overlap, repulsion force is proportional - // to the overlap - var force = options.nodeOverlap * overlap; - - // Compute the module and components of the force vector - var distance = Math.sqrt(directionX * directionX + directionY * directionY); - // s += "\nDistance: " + distance; - var forceX = force * directionX / distance; - var forceY = force * directionY / distance; - } else { - // s += "\nNodes do NOT overlap."; - // If there's no overlap, force is inversely proportional - // to squared distance - - // Get clipping points for both nodes - var point1 = findClippingPoint(node1, directionX, directionY); - var point2 = findClippingPoint(node2, -1 * directionX, -1 * directionY); - - // Use clipping points to compute distance - var distanceX = point2.x - point1.x; - var distanceY = point2.y - point1.y; - var distanceSqr = distanceX * distanceX + distanceY * distanceY; - var distance = Math.sqrt(distanceSqr); - // s += "\nDistance: " + distance; - - // Compute the module and components of the force vector - var force = (node1.nodeRepulsion + node2.nodeRepulsion) / distanceSqr; - var forceX = force * distanceX / distance; - var forceY = force * distanceY / distance; - } - - // Apply force - if (!node1.isLocked) { - node1.offsetX -= forceX; - node1.offsetY -= forceY; - } - - if (!node2.isLocked) { - node2.offsetX += forceX; - node2.offsetY += forceY; - } - - // s += "\nForceX: " + forceX + " ForceY: " + forceY; - // logDebug(s); - - return; - }; - - /** - * @brief : Determines whether two nodes overlap or not - * @return : Amount of overlapping (0 => no overlap) - */ - var nodesOverlap = function nodesOverlap(node1, node2, dX, dY) { - - if (dX > 0) { - var overlapX = node1.maxX - node2.minX; - } else { - var overlapX = node2.maxX - node1.minX; - } - - if (dY > 0) { - var overlapY = node1.maxY - node2.minY; - } else { - var overlapY = node2.maxY - node1.minY; - } - - if (overlapX >= 0 && overlapY >= 0) { - return Math.sqrt(overlapX * overlapX + overlapY * overlapY); - } else { - return 0; - } - }; - - /** - * @brief : Finds the point in which an edge (direction dX, dY) intersects - * the rectangular bounding box of it's source/target node - */ - var findClippingPoint = function findClippingPoint(node, dX, dY) { - - // Shorcuts - var X = node.positionX; - var Y = node.positionY; - var H = node.height || 1; - var W = node.width || 1; - var dirSlope = dY / dX; - var nodeSlope = H / W; - - // var s = 'Computing clipping point of node ' + node.id + - // " . Height: " + H + ", Width: " + W + - // "\nDirection " + dX + ", " + dY; - // - // Compute intersection - var res = {}; - - // Case: Vertical direction (up) - if (0 === dX && 0 < dY) { - res.x = X; - // s += "\nUp direction"; - res.y = Y + H / 2; - - return res; - } - - // Case: Vertical direction (down) - if (0 === dX && 0 > dY) { - res.x = X; - res.y = Y + H / 2; - // s += "\nDown direction"; - - return res; - } - - // Case: Intersects the right border - if (0 < dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) { - res.x = X + W / 2; - res.y = Y + W * dY / 2 / dX; - // s += "\nRightborder"; - - return res; - } - - // Case: Intersects the left border - if (0 > dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) { - res.x = X - W / 2; - res.y = Y - W * dY / 2 / dX; - // s += "\nLeftborder"; - - return res; - } - - // Case: Intersects the top border - if (0 < dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) { - res.x = X + H * dX / 2 / dY; - res.y = Y + H / 2; - // s += "\nTop border"; - - return res; - } - - // Case: Intersects the bottom border - if (0 > dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) { - res.x = X - H * dX / 2 / dY; - res.y = Y - H / 2; - // s += "\nBottom border"; - - return res; - } - - // s += "\nClipping point found at " + res.x + ", " + res.y; - // logDebug(s); - return res; - }; - - /** - * @brief : Calculates all edge forces - */ - var calculateEdgeForces = function calculateEdgeForces(layoutInfo, options) { - // Iterate over all edges - for (var i = 0; i < layoutInfo.edgeSize; i++) { - // Get edge, source & target nodes - var edge = layoutInfo.layoutEdges[i]; - var sourceIx = layoutInfo.idToIndex[edge.sourceId]; - var source = layoutInfo.layoutNodes[sourceIx]; - var targetIx = layoutInfo.idToIndex[edge.targetId]; - var target = layoutInfo.layoutNodes[targetIx]; - - // Get direction of line connecting both node centers - var directionX = target.positionX - source.positionX; - var directionY = target.positionY - source.positionY; - - // If both centers are the same, do nothing. - // A random force has already been applied as node repulsion - if (0 === directionX && 0 === directionY) { - continue; - } - - // Get clipping points for both nodes - var point1 = findClippingPoint(source, directionX, directionY); - var point2 = findClippingPoint(target, -1 * directionX, -1 * directionY); - - var lx = point2.x - point1.x; - var ly = point2.y - point1.y; - var l = Math.sqrt(lx * lx + ly * ly); - - var force = Math.pow(edge.idealLength - l, 2) / edge.elasticity; - - if (0 !== l) { - var forceX = force * lx / l; - var forceY = force * ly / l; - } else { - var forceX = 0; - var forceY = 0; - } - - // Add this force to target and source nodes - if (!source.isLocked) { - source.offsetX += forceX; - source.offsetY += forceY; - } - - if (!target.isLocked) { - target.offsetX -= forceX; - target.offsetY -= forceY; - } - - // var s = 'Edge force between nodes ' + source.id + ' and ' + target.id; - // s += "\nDistance: " + l + " Force: (" + forceX + ", " + forceY + ")"; - // logDebug(s); - } - }; - - /** - * @brief : Computes gravity forces for all nodes - */ - var calculateGravityForces = function calculateGravityForces(layoutInfo, options) { - var distThreshold = 1; - - // var s = 'calculateGravityForces'; - // logDebug(s); - for (var i = 0; i < layoutInfo.graphSet.length; i++) { - var graph = layoutInfo.graphSet[i]; - var numNodes = graph.length; - - // s = "Set: " + graph.toString(); - // logDebug(s); - - // Compute graph center - if (0 === i) { - var centerX = layoutInfo.clientHeight / 2; - var centerY = layoutInfo.clientWidth / 2; - } else { - // Get Parent node for this graph, and use its position as center - var temp = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[0]]]; - var parent = layoutInfo.layoutNodes[layoutInfo.idToIndex[temp.parentId]]; - var centerX = parent.positionX; - var centerY = parent.positionY; - } - // s = "Center found at: " + centerX + ", " + centerY; - // logDebug(s); - - // Apply force to all nodes in graph - for (var j = 0; j < numNodes; j++) { - var node = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]]; - // s = "Node: " + node.id; - - if (node.isLocked) { - continue; - } - - var dx = centerX - node.positionX; - var dy = centerY - node.positionY; - var d = Math.sqrt(dx * dx + dy * dy); - if (d > distThreshold) { - var fx = options.gravity * dx / d; - var fy = options.gravity * dy / d; - node.offsetX += fx; - node.offsetY += fy; - // s += ": Applied force: " + fx + ", " + fy; - } else {} - // s += ": skypped since it's too close to center"; - - // logDebug(s); - } - } - }; - - /** - * @brief : This function propagates the existing offsets from - * parent nodes to its descendents. - * @arg layoutInfo : layoutInfo Object - * @arg cy : cytoscape Object - * @arg options : Layout options - */ - var propagateForces = function propagateForces(layoutInfo, options) { - // Inline implementation of a queue, used for traversing the graph in BFS order - var queue = []; - var start = 0; // Points to the start the queue - var end = -1; // Points to the end of the queue - - // logDebug('propagateForces'); - - // Start by visiting the nodes in the root graph - queue.push.apply(queue, layoutInfo.graphSet[0]); - end += layoutInfo.graphSet[0].length; - - // Traverse the graph, level by level, - while (start <= end) { - // Get the node to visit and remove it from queue - var nodeId = queue[start++]; - var nodeIndex = layoutInfo.idToIndex[nodeId]; - var node = layoutInfo.layoutNodes[nodeIndex]; - var children = node.children; - - // We only need to process the node if it's compound - if (0 < children.length && !node.isLocked) { - var offX = node.offsetX; - var offY = node.offsetY; - - // var s = "Propagating offset from parent node : " + node.id + - // ". OffsetX: " + offX + ". OffsetY: " + offY; - // s += "\n Children: " + children.toString(); - // logDebug(s); - - for (var i = 0; i < children.length; i++) { - var childNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[children[i]]]; - // Propagate offset - childNode.offsetX += offX; - childNode.offsetY += offY; - // Add children to queue to be visited - queue[++end] = children[i]; - } - - // Reset parent offsets - node.offsetX = 0; - node.offsetY = 0; - } - } - }; - - /** - * @brief : Updates the layout model positions, based on - * the accumulated forces - */ - var updatePositions = function updatePositions(layoutInfo, options) { - // var s = 'Updating positions'; - // logDebug(s); - - // Reset boundaries for compound nodes - for (var i = 0; i < layoutInfo.nodeSize; i++) { - var n = layoutInfo.layoutNodes[i]; - if (0 < n.children.length) { - // logDebug("Resetting boundaries of compound node: " + n.id); - n.maxX = undefined; - n.minX = undefined; - n.maxY = undefined; - n.minY = undefined; - } - } - - for (var i = 0; i < layoutInfo.nodeSize; i++) { - var n = layoutInfo.layoutNodes[i]; - if (0 < n.children.length || n.isLocked) { - // No need to set compound or locked node position - // logDebug("Skipping position update of node: " + n.id); - continue; - } - // s = "Node: " + n.id + " Previous position: (" + - // n.positionX + ", " + n.positionY + ")."; - - // Limit displacement in order to improve stability - var tempForce = limitForce(n.offsetX, n.offsetY, layoutInfo.temperature); - n.positionX += tempForce.x; - n.positionY += tempForce.y; - n.offsetX = 0; - n.offsetY = 0; - n.minX = n.positionX - n.width; - n.maxX = n.positionX + n.width; - n.minY = n.positionY - n.height; - n.maxY = n.positionY + n.height; - // s += " New Position: (" + n.positionX + ", " + n.positionY + ")."; - // logDebug(s); - - // Update ancestry boudaries - updateAncestryBoundaries(n, layoutInfo); - } - - // Update size, position of compund nodes - for (var i = 0; i < layoutInfo.nodeSize; i++) { - var n = layoutInfo.layoutNodes[i]; - if (0 < n.children.length && !n.isLocked) { - n.positionX = (n.maxX + n.minX) / 2; - n.positionY = (n.maxY + n.minY) / 2; - n.width = n.maxX - n.minX; - n.height = n.maxY - n.minY; - // s = "Updating position, size of compound node " + n.id; - // s += "\nPositionX: " + n.positionX + ", PositionY: " + n.positionY; - // s += "\nWidth: " + n.width + ", Height: " + n.height; - // logDebug(s); - } - } - }; - - /** - * @brief : Limits a force (forceX, forceY) to be not - * greater (in modulo) than max. - 8 Preserves force direction. - */ - var limitForce = function limitForce(forceX, forceY, max) { - // var s = "Limiting force: (" + forceX + ", " + forceY + "). Max: " + max; - var force = Math.sqrt(forceX * forceX + forceY * forceY); - - if (force > max) { - var res = { - x: max * forceX / force, - y: max * forceY / force - }; - } else { - var res = { - x: forceX, - y: forceY - }; - } - - // s += ".\nResult: (" + res.x + ", " + res.y + ")"; - // logDebug(s); - - return res; - }; - - /** - * @brief : Function used for keeping track of compound node - * sizes, since they should bound all their subnodes. - */ - var updateAncestryBoundaries = function updateAncestryBoundaries(node, layoutInfo) { - // var s = "Propagating new position/size of node " + node.id; - var parentId = node.parentId; - if (null == parentId) { - // If there's no parent, we are done - // s += ". No parent node."; - // logDebug(s); - return; - } - - // Get Parent Node - var p = layoutInfo.layoutNodes[layoutInfo.idToIndex[parentId]]; - var flag = false; - - // MaxX - if (null == p.maxX || node.maxX + p.padRight > p.maxX) { - p.maxX = node.maxX + p.padRight; - flag = true; - // s += "\nNew maxX for parent node " + p.id + ": " + p.maxX; - } - - // MinX - if (null == p.minX || node.minX - p.padLeft < p.minX) { - p.minX = node.minX - p.padLeft; - flag = true; - // s += "\nNew minX for parent node " + p.id + ": " + p.minX; - } - - // MaxY - if (null == p.maxY || node.maxY + p.padBottom > p.maxY) { - p.maxY = node.maxY + p.padBottom; - flag = true; - // s += "\nNew maxY for parent node " + p.id + ": " + p.maxY; - } - - // MinY - if (null == p.minY || node.minY - p.padTop < p.minY) { - p.minY = node.minY - p.padTop; - flag = true; - // s += "\nNew minY for parent node " + p.id + ": " + p.minY; - } - - // If updated boundaries, propagate changes upward - if (flag) { - // logDebug(s); - return updateAncestryBoundaries(p, layoutInfo); - } - - // s += ". No changes in boundaries/position of parent node " + p.id; - // logDebug(s); - return; - }; - - var separateComponents = function separateComponents(layutInfo, options) { - var nodes = layoutInfo.layoutNodes; - var components = []; - - for (var i = 0; i < nodes.length; i++) { - var node = nodes[i]; - var cid = node.cmptId; - var component = components[cid] = components[cid] || []; - - component.push(node); - } - - var totalA = 0; - - for (var i = 0; i < components.length; i++) { - var c = components[i]; - - if (!c) { - continue; - } - - c.x1 = Infinity; - c.x2 = -Infinity; - c.y1 = Infinity; - c.y2 = -Infinity; - - for (var j = 0; j < c.length; j++) { - var n = c[j]; - - c.x1 = Math.min(c.x1, n.positionX - n.width / 2); - c.x2 = Math.max(c.x2, n.positionX + n.width / 2); - c.y1 = Math.min(c.y1, n.positionY - n.height / 2); - c.y2 = Math.max(c.y2, n.positionY + n.height / 2); - } - - c.w = c.x2 - c.x1; - c.h = c.y2 - c.y1; - - totalA += c.w * c.h; - } - - components.sort(function (c1, c2) { - return c2.w * c2.h - c1.w * c1.h; - }); - - var x = 0; - var y = 0; - var usedW = 0; - var rowH = 0; - var maxRowW = Math.sqrt(totalA) * layoutInfo.clientWidth / layoutInfo.clientHeight; - - for (var i = 0; i < components.length; i++) { - var c = components[i]; - - if (!c) { - continue; - } - - for (var j = 0; j < c.length; j++) { - var n = c[j]; - - if (!n.isLocked) { - n.positionX += x; - n.positionY += y; - } - } - - x += c.w + options.componentSpacing; - usedW += c.w + options.componentSpacing; - rowH = Math.max(rowH, c.h); - - if (usedW > maxRowW) { - y += rowH + options.componentSpacing; - x = 0; - usedW = 0; - rowH = 0; - } - } - }; - - var mainLoop = function mainLoop(i) { - if (stopped) { - // logDebug("Layout manually stopped. Stopping computation in step " + i); - return false; - } - - // Do one step in the phisical simulation - step(layoutInfo, options, i); - - // Update temperature - layoutInfo.temperature = layoutInfo.temperature * options.coolingFactor; - // logDebug("New temperature: " + layoutInfo.temperature); - - if (layoutInfo.temperature < options.minTemp) { - // logDebug("Temperature drop below minimum threshold. Stopping computation in step " + i); - return false; - } - - return true; - }; - - var i = 0; - var loopRet; - - do { - var f = 0; - - while (f < options.refresh && i < options.numIter) { - var loopRet = mainLoop(i); - if (!loopRet) { - break; - } - - f++; - i++; - } - - if (options.animate === true) { - broadcast(layoutInfo.layoutNodes); // eslint-disable-line no-undef - } - } while (loopRet && i + 1 < options.numIter); - - separateComponents(layoutInfo, options); - - return layoutInfo; - }).then(function (layoutInfoUpdated) { - layoutInfo.layoutNodes = layoutInfoUpdated.layoutNodes; // get the positions - - thread.stop(); - done(); - }); - - var done = function done() { - if (options.animate === true || options.animate === false) { - refresh({ - force: true, - next: function next() { - // Layout has finished - layout.one('layoutstop', options.stop); - layout.emit({ type: 'layoutstop', layout: layout }); - } - }); - } else { - options.eles.nodes().layoutPositions(layout, options, function (node) { - var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[node.data('id')]]; - - return { x: lnode.positionX, y: lnode.positionY }; - }); - } - }; - - return this; // chaining -}; - -/** - * @brief : called on continuous layouts to stop them before they finish - */ -CoseLayout.prototype.stop = function () { - this.stopped = true; - - if (this.thread) { - this.thread.stop(); - } - - this.emit('layoutstop'); - - return this; // chaining -}; - -CoseLayout.prototype.destroy = function () { - if (this.thread) { - this.thread.stop(); - } - - return this; // chaining -}; - -/** - * @brief : Creates an object which is contains all the data - * used in the layout process - * @arg cy : cytoscape.js object - * @return : layoutInfo object initialized - */ -var createLayoutInfo = function createLayoutInfo(cy, layout, options) { - // Shortcut - var edges = options.eles.edges(); - var nodes = options.eles.nodes(); - - var layoutInfo = { - isCompound: cy.hasCompoundNodes(), - layoutNodes: [], - idToIndex: {}, - nodeSize: nodes.size(), - graphSet: [], - indexToGraph: [], - layoutEdges: [], - edgeSize: edges.size(), - temperature: options.initialTemp, - clientWidth: cy.width(), - clientHeight: cy.width(), - boundingBox: math.makeBoundingBox(options.boundingBox ? options.boundingBox : { - x1: 0, y1: 0, w: cy.width(), h: cy.height() - }) - }; - - var components = options.eles.components(); - var id2cmptId = {}; - - for (var i = 0; i < components.length; i++) { - var component = components[i]; - - for (var j = 0; j < component.length; j++) { - var node = component[j]; - - id2cmptId[node.id()] = i; - } - } - - // Iterate over all nodes, creating layout nodes - for (var i = 0; i < layoutInfo.nodeSize; i++) { - var n = nodes[i]; - var nbb = n.layoutDimensions(options); - - var tempNode = {}; - tempNode.isLocked = n.locked(); - tempNode.id = n.data('id'); - tempNode.parentId = n.data('parent'); - tempNode.cmptId = id2cmptId[n.id()]; - tempNode.children = []; - tempNode.positionX = n.position('x'); - tempNode.positionY = n.position('y'); - tempNode.offsetX = 0; - tempNode.offsetY = 0; - tempNode.height = nbb.w; - tempNode.width = nbb.h; - tempNode.maxX = tempNode.positionX + tempNode.width / 2; - tempNode.minX = tempNode.positionX - tempNode.width / 2; - tempNode.maxY = tempNode.positionY + tempNode.height / 2; - tempNode.minY = tempNode.positionY - tempNode.height / 2; - tempNode.padLeft = parseFloat(n.style('padding')); - tempNode.padRight = parseFloat(n.style('padding')); - tempNode.padTop = parseFloat(n.style('padding')); - tempNode.padBottom = parseFloat(n.style('padding')); - - // forces - tempNode.nodeRepulsion = is.fn(options.nodeRepulsion) ? options.nodeRepulsion(n) : options.nodeRepulsion; - - // Add new node - layoutInfo.layoutNodes.push(tempNode); - // Add entry to id-index map - layoutInfo.idToIndex[tempNode.id] = i; - } - - // Inline implementation of a queue, used for traversing the graph in BFS order - var queue = []; - var start = 0; // Points to the start the queue - var end = -1; // Points to the end of the queue - - var tempGraph = []; - - // Second pass to add child information and - // initialize queue for hierarchical traversal - for (var i = 0; i < layoutInfo.nodeSize; i++) { - var n = layoutInfo.layoutNodes[i]; - var p_id = n.parentId; - // Check if node n has a parent node - if (null != p_id) { - // Add node Id to parent's list of children - layoutInfo.layoutNodes[layoutInfo.idToIndex[p_id]].children.push(n.id); - } else { - // If a node doesn't have a parent, then it's in the root graph - queue[++end] = n.id; - tempGraph.push(n.id); - } - } - - // Add root graph to graphSet - layoutInfo.graphSet.push(tempGraph); - - // Traverse the graph, level by level, - while (start <= end) { - // Get the node to visit and remove it from queue - var node_id = queue[start++]; - var node_ix = layoutInfo.idToIndex[node_id]; - var node = layoutInfo.layoutNodes[node_ix]; - var children = node.children; - if (children.length > 0) { - // Add children nodes as a new graph to graph set - layoutInfo.graphSet.push(children); - // Add children to que queue to be visited - for (var i = 0; i < children.length; i++) { - queue[++end] = children[i]; - } - } - } - - // Create indexToGraph map - for (var i = 0; i < layoutInfo.graphSet.length; i++) { - var graph = layoutInfo.graphSet[i]; - for (var j = 0; j < graph.length; j++) { - var index = layoutInfo.idToIndex[graph[j]]; - layoutInfo.indexToGraph[index] = i; - } - } - - // Iterate over all edges, creating Layout Edges - for (var i = 0; i < layoutInfo.edgeSize; i++) { - var e = edges[i]; - var tempEdge = {}; - tempEdge.id = e.data('id'); - tempEdge.sourceId = e.data('source'); - tempEdge.targetId = e.data('target'); - - // Compute ideal length - var idealLength = is.fn(options.idealEdgeLength) ? options.idealEdgeLength(e) : options.idealEdgeLength; - var elasticity = is.fn(options.edgeElasticity) ? options.edgeElasticity(e) : options.edgeElasticity; - - // Check if it's an inter graph edge - var sourceIx = layoutInfo.idToIndex[tempEdge.sourceId]; - var targetIx = layoutInfo.idToIndex[tempEdge.targetId]; - var sourceGraph = layoutInfo.indexToGraph[sourceIx]; - var targetGraph = layoutInfo.indexToGraph[targetIx]; - - if (sourceGraph != targetGraph) { - // Find lowest common graph ancestor - var lca = findLCA(tempEdge.sourceId, tempEdge.targetId, layoutInfo); - - // Compute sum of node depths, relative to lca graph - var lcaGraph = layoutInfo.graphSet[lca]; - var depth = 0; - - // Source depth - var tempNode = layoutInfo.layoutNodes[sourceIx]; - while (-1 === lcaGraph.indexOf(tempNode.id)) { - tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]]; - depth++; - } - - // Target depth - tempNode = layoutInfo.layoutNodes[targetIx]; - while (-1 === lcaGraph.indexOf(tempNode.id)) { - tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]]; - depth++; - } - - // logDebug('LCA of nodes ' + tempEdge.sourceId + ' and ' + tempEdge.targetId + - // ". Index: " + lca + " Contents: " + lcaGraph.toString() + - // ". Depth: " + depth); - - // Update idealLength - idealLength *= depth * options.nestingFactor; - } - - tempEdge.idealLength = idealLength; - tempEdge.elasticity = elasticity; - - layoutInfo.layoutEdges.push(tempEdge); - } - - // Finally, return layoutInfo object - return layoutInfo; -}; - -/** - * @brief : This function finds the index of the lowest common - * graph ancestor between 2 nodes in the subtree - * (from the graph hierarchy induced tree) whose - * root is graphIx - * - * @arg node1: node1's ID - * @arg node2: node2's ID - * @arg layoutInfo: layoutInfo object - * - */ -var findLCA = function findLCA(node1, node2, layoutInfo) { - // Find their common ancester, starting from the root graph - var res = findLCA_aux(node1, node2, 0, layoutInfo); - if (2 > res.count) { - // If aux function couldn't find the common ancester, - // then it is the root graph - return 0; - } else { - return res.graph; - } -}; - -/** - * @brief : Auxiliary function used for LCA computation - * - * @arg node1 : node1's ID - * @arg node2 : node2's ID - * @arg graphIx : subgraph index - * @arg layoutInfo : layoutInfo object - * - * @return : object of the form {count: X, graph: Y}, where: - * X is the number of ancesters (max: 2) found in - * graphIx (and it's subgraphs), - * Y is the graph index of the lowest graph containing - * all X nodes - */ -var findLCA_aux = function findLCA_aux(node1, node2, graphIx, layoutInfo) { - var graph = layoutInfo.graphSet[graphIx]; - // If both nodes belongs to graphIx - if (-1 < graph.indexOf(node1) && -1 < graph.indexOf(node2)) { - return { count: 2, graph: graphIx }; - } - - // Make recursive calls for all subgraphs - var c = 0; - for (var i = 0; i < graph.length; i++) { - var nodeId = graph[i]; - var nodeIx = layoutInfo.idToIndex[nodeId]; - var children = layoutInfo.layoutNodes[nodeIx].children; - - // If the node has no child, skip it - if (0 === children.length) { - continue; - } - - var childGraphIx = layoutInfo.indexToGraph[layoutInfo.idToIndex[children[0]]]; - var result = findLCA_aux(node1, node2, childGraphIx, layoutInfo); - if (0 === result.count) { - // Neither node1 nor node2 are present in this subgraph - continue; - } else if (1 === result.count) { - // One of (node1, node2) is present in this subgraph - c++; - if (2 === c) { - // We've already found both nodes, no need to keep searching - break; - } - } else { - // Both nodes are present in this subgraph - return result; - } - } - - return { count: c, graph: graphIx }; -}; - -/** - * @brief: printsLayoutInfo into js console - * Only used for debbuging - */ -var printLayoutInfo = function printLayoutInfo(layoutInfo) { - /* eslint-disable */ - - if (!DEBUG) { - return; - } - console.debug('layoutNodes:'); - for (var i = 0; i < layoutInfo.nodeSize; i++) { - var n = layoutInfo.layoutNodes[i]; - var s = '\nindex: ' + i + '\nId: ' + n.id + '\nChildren: ' + n.children.toString() + '\nparentId: ' + n.parentId + '\npositionX: ' + n.positionX + '\npositionY: ' + n.positionY + '\nOffsetX: ' + n.offsetX + '\nOffsetY: ' + n.offsetY + '\npadLeft: ' + n.padLeft + '\npadRight: ' + n.padRight + '\npadTop: ' + n.padTop + '\npadBottom: ' + n.padBottom; - - console.debug(s); - } - - console.debug('idToIndex'); - for (var i in layoutInfo.idToIndex) { - console.debug('Id: ' + i + '\nIndex: ' + layoutInfo.idToIndex[i]); - } - - console.debug('Graph Set'); - var set = layoutInfo.graphSet; - for (var i = 0; i < set.length; i++) { - console.debug('Set : ' + i + ': ' + set[i].toString()); - } - - var s = 'IndexToGraph'; - for (var i = 0; i < layoutInfo.indexToGraph.length; i++) { - s += '\nIndex : ' + i + ' Graph: ' + layoutInfo.indexToGraph[i]; - } - console.debug(s); - - s = 'Layout Edges'; - for (var i = 0; i < layoutInfo.layoutEdges.length; i++) { - var e = layoutInfo.layoutEdges[i]; - s += '\nEdge Index: ' + i + ' ID: ' + e.id + ' SouceID: ' + e.sourceId + ' TargetId: ' + e.targetId + ' Ideal Length: ' + e.idealLength; - } - console.debug(s); - - s = 'nodeSize: ' + layoutInfo.nodeSize; - s += '\nedgeSize: ' + layoutInfo.edgeSize; - s += '\ntemperature: ' + layoutInfo.temperature; - console.debug(s); - - return; - /* eslint-enable */ -}; - -/** - * @brief : Randomizes the position of all nodes - */ -var randomizePositions = function randomizePositions(layoutInfo, cy) { - var width = layoutInfo.clientWidth; - var height = layoutInfo.clientHeight; - - for (var i = 0; i < layoutInfo.nodeSize; i++) { - var n = layoutInfo.layoutNodes[i]; - - // No need to randomize compound nodes or locked nodes - if (0 === n.children.length && !n.isLocked) { - n.positionX = Math.random() * width; - n.positionY = Math.random() * height; - } - } -}; - -/** - * @brief : Updates the positions of nodes in the network - * @arg layoutInfo : LayoutInfo object - * @arg cy : Cytoscape object - * @arg options : Layout options - */ -var refreshPositions = function refreshPositions(layoutInfo, cy, options) { - // var s = 'Refreshing positions'; - // logDebug(s); - - var layout = options.layout; - var nodes = options.eles.nodes(); - var bb = layoutInfo.boundingBox; - var coseBB = { x1: Infinity, x2: -Infinity, y1: Infinity, y2: -Infinity }; - - if (options.boundingBox) { - nodes.forEach(function (node) { - var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[node.data('id')]]; - - coseBB.x1 = Math.min(coseBB.x1, lnode.positionX); - coseBB.x2 = Math.max(coseBB.x2, lnode.positionX); - - coseBB.y1 = Math.min(coseBB.y1, lnode.positionY); - coseBB.y2 = Math.max(coseBB.y2, lnode.positionY); - }); - - coseBB.w = coseBB.x2 - coseBB.x1; - coseBB.h = coseBB.y2 - coseBB.y1; - } - - nodes.positions(function (ele, i) { - var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[ele.data('id')]]; - // s = "Node: " + lnode.id + ". Refreshed position: (" + - // lnode.positionX + ", " + lnode.positionY + ")."; - // logDebug(s); - - if (options.boundingBox) { - // then add extra bounding box constraint - var pctX = (lnode.positionX - coseBB.x1) / coseBB.w; - var pctY = (lnode.positionY - coseBB.y1) / coseBB.h; - - return { - x: bb.x1 + pctX * bb.w, - y: bb.y1 + pctY * bb.h - }; - } else { - return { - x: lnode.positionX, - y: lnode.positionY - }; - } - }); - - // Trigger layoutReady only on first call - if (true !== layoutInfo.ready) { - // s = 'Triggering layoutready'; - // logDebug(s); - layoutInfo.ready = true; - layout.one('layoutready', options.ready); - layout.emit({ type: 'layoutready', layout: this }); - } -}; - -/** - * @brief : Logs a debug message in JS console, if DEBUG is ON - */ -// var logDebug = function(text) { -// if (DEBUG) { -// console.debug(text); -// } -// }; - -module.exports = CoseLayout; - -/***/ }), -/* 81 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var math = __webpack_require__(2); - -var defaults = { - fit: true, // whether to fit the viewport to the graph - padding: 30, // padding used on fit - boundingBox: undefined, // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } - avoidOverlap: true, // prevents node overlap, may overflow boundingBox if not enough space - avoidOverlapPadding: 10, // extra spacing around nodes when avoidOverlap: true - nodeDimensionsIncludeLabels: false, // Excludes the label when calculating node bounding boxes for the layout algorithm - spacingFactor: undefined, // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up - condense: false, // uses all available space on false, uses minimal space on true - rows: undefined, // force num of rows in the grid - cols: undefined, // force num of columns in the grid - position: function position(node) {}, // returns { row, col } for element - sort: undefined, // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') } - animate: false, // whether to transition the node positions - animationDuration: 500, // duration of animation in ms if enabled - animationEasing: undefined, // easing of animation if enabled - animateFilter: function animateFilter(node, i) { - return true; - }, // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts - ready: undefined, // callback on layoutready - stop: undefined, // callback on layoutstop - transform: function transform(node, position) { - return position; - } // transform a given node position. Useful for changing flow direction in discrete layouts -}; - -function GridLayout(options) { - this.options = util.extend({}, defaults, options); -} - -GridLayout.prototype.run = function () { - var params = this.options; - var options = params; - - var cy = params.cy; - var eles = options.eles; - var nodes = eles.nodes().not(':parent'); - - if (options.sort) { - nodes = nodes.sort(options.sort); - } - - var bb = math.makeBoundingBox(options.boundingBox ? options.boundingBox : { - x1: 0, y1: 0, w: cy.width(), h: cy.height() - }); - - if (bb.h === 0 || bb.w === 0) { - nodes.layoutPositions(this, options, function (ele) { - return { x: bb.x1, y: bb.y1 }; - }); - } else { - - // width/height * splits^2 = cells where splits is number of times to split width - var cells = nodes.size(); - var splits = Math.sqrt(cells * bb.h / bb.w); - var rows = Math.round(splits); - var cols = Math.round(bb.w / bb.h * splits); - - var small = function small(val) { - if (val == null) { - return Math.min(rows, cols); - } else { - var min = Math.min(rows, cols); - if (min == rows) { - rows = val; - } else { - cols = val; - } - } - }; - - var large = function large(val) { - if (val == null) { - return Math.max(rows, cols); - } else { - var max = Math.max(rows, cols); - if (max == rows) { - rows = val; - } else { - cols = val; - } - } - }; - - var oRows = options.rows; - var oCols = options.cols != null ? options.cols : options.columns; - - // if rows or columns were set in options, use those values - if (oRows != null && oCols != null) { - rows = oRows; - cols = oCols; - } else if (oRows != null && oCols == null) { - rows = oRows; - cols = Math.ceil(cells / rows); - } else if (oRows == null && oCols != null) { - cols = oCols; - rows = Math.ceil(cells / cols); - } - - // otherwise use the automatic values and adjust accordingly - - // if rounding was up, see if we can reduce rows or columns - else if (cols * rows > cells) { - var sm = small(); - var lg = large(); - - // reducing the small side takes away the most cells, so try it first - if ((sm - 1) * lg >= cells) { - small(sm - 1); - } else if ((lg - 1) * sm >= cells) { - large(lg - 1); - } - } else { - - // if rounding was too low, add rows or columns - while (cols * rows < cells) { - var _sm = small(); - var _lg = large(); - - // try to add to larger side first (adds less in multiplication) - if ((_lg + 1) * _sm >= cells) { - large(_lg + 1); - } else { - small(_sm + 1); - } - } - } - - var cellWidth = bb.w / cols; - var cellHeight = bb.h / rows; - - if (options.condense) { - cellWidth = 0; - cellHeight = 0; - } - - if (options.avoidOverlap) { - for (var i = 0; i < nodes.length; i++) { - var node = nodes[i]; - var pos = node._private.position; - - if (pos.x == null || pos.y == null) { - // for bb - pos.x = 0; - pos.y = 0; - } - - var nbb = node.layoutDimensions(options); - var p = options.avoidOverlapPadding; - - var w = nbb.w + p; - var h = nbb.h + p; - - cellWidth = Math.max(cellWidth, w); - cellHeight = Math.max(cellHeight, h); - } - } - - var cellUsed = {}; // e.g. 'c-0-2' => true - - var used = function used(row, col) { - return cellUsed['c-' + row + '-' + col] ? true : false; - }; - - var use = function use(row, col) { - cellUsed['c-' + row + '-' + col] = true; - }; - - // to keep track of current cell position - var row = 0; - var col = 0; - var moveToNextCell = function moveToNextCell() { - col++; - if (col >= cols) { - col = 0; - row++; - } - }; - - // get a cache of all the manual positions - var id2manPos = {}; - for (var _i = 0; _i < nodes.length; _i++) { - var _node = nodes[_i]; - var rcPos = options.position(_node); - - if (rcPos && (rcPos.row !== undefined || rcPos.col !== undefined)) { - // must have at least row or col def'd - var _pos = { - row: rcPos.row, - col: rcPos.col - }; - - if (_pos.col === undefined) { - // find unused col - _pos.col = 0; - - while (used(_pos.row, _pos.col)) { - _pos.col++; - } - } else if (_pos.row === undefined) { - // find unused row - _pos.row = 0; - - while (used(_pos.row, _pos.col)) { - _pos.row++; - } - } - - id2manPos[_node.id()] = _pos; - use(_pos.row, _pos.col); - } - } - - var getPos = function getPos(element, i) { - var x = void 0, - y = void 0; - - if (element.locked() || element.isParent()) { - return false; - } - - // see if we have a manual position set - var rcPos = id2manPos[element.id()]; - if (rcPos) { - x = rcPos.col * cellWidth + cellWidth / 2 + bb.x1; - y = rcPos.row * cellHeight + cellHeight / 2 + bb.y1; - } else { - // otherwise set automatically - - while (used(row, col)) { - moveToNextCell(); - } - - x = col * cellWidth + cellWidth / 2 + bb.x1; - y = row * cellHeight + cellHeight / 2 + bb.y1; - use(row, col); - - moveToNextCell(); - } - - return { x: x, y: y }; - }; - - nodes.layoutPositions(this, options, getPos); - } - - return this; // chaining -}; - -module.exports = GridLayout; - -/***/ }), -/* 82 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = [{ name: 'breadthfirst', impl: __webpack_require__(77) }, { name: 'circle', impl: __webpack_require__(78) }, { name: 'concentric', impl: __webpack_require__(79) }, { name: 'cose', impl: __webpack_require__(80) }, { name: 'grid', impl: __webpack_require__(81) }, { name: 'null', impl: __webpack_require__(83) }, { name: 'preset', impl: __webpack_require__(84) }, { name: 'random', impl: __webpack_require__(85) }]; - -/***/ }), -/* 83 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); - -// default layout options -var defaults = { - ready: function ready() {}, // on layoutready - stop: function stop() {} // on layoutstop -}; - -// constructor -// options : object containing layout options -function NullLayout(options) { - this.options = util.extend({}, defaults, options); -} - -// runs the layout -NullLayout.prototype.run = function () { - var options = this.options; - var eles = options.eles; // elements to consider in the layout - var layout = this; - - // cy is automatically populated for us in the constructor - var cy = options.cy; // jshint ignore:line - - layout.emit('layoutstart'); - - // puts all nodes at (0, 0) - eles.nodes().positions(function () { - return { - x: 0, - y: 0 - }; - }); - - // trigger layoutready when each node has had its position set at least once - layout.one('layoutready', options.ready); - layout.emit('layoutready'); - - // trigger layoutstop when the layout stops (e.g. finishes) - layout.one('layoutstop', options.stop); - layout.emit('layoutstop'); - - return this; // chaining -}; - -// called on continuous layouts to stop them before they finish -NullLayout.prototype.stop = function () { - return this; // chaining -}; - -module.exports = NullLayout; - -/***/ }), -/* 84 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var is = __webpack_require__(0); - -var defaults = { - positions: undefined, // map of (node id) => (position obj); or function(node){ return somPos; } - zoom: undefined, // the zoom level to set (prob want fit = false if set) - pan: undefined, // the pan level to set (prob want fit = false if set) - fit: true, // whether to fit to viewport - padding: 30, // padding on fit - animate: false, // whether to transition the node positions - animationDuration: 500, // duration of animation in ms if enabled - animationEasing: undefined, // easing of animation if enabled - animateFilter: function animateFilter(node, i) { - return true; - }, // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts - ready: undefined, // callback on layoutready - stop: undefined, // callback on layoutstop - transform: function transform(node, position) { - return position; - } // transform a given node position. Useful for changing flow direction in discrete layouts -}; - -function PresetLayout(options) { - this.options = util.extend({}, defaults, options); -} - -PresetLayout.prototype.run = function () { - var options = this.options; - var eles = options.eles; - - var nodes = eles.nodes(); - var posIsFn = is.fn(options.positions); - - function getPosition(node) { - if (options.positions == null) { - return null; - } - - if (posIsFn) { - return options.positions(node); - } - - var pos = options.positions[node._private.data.id]; - - if (pos == null) { - return null; - } - - return pos; - } - - nodes.layoutPositions(this, options, function (node, i) { - var position = getPosition(node); - - if (node.locked() || position == null) { - return false; - } - - return position; - }); - - return this; // chaining -}; - -module.exports = PresetLayout; - -/***/ }), -/* 85 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var math = __webpack_require__(2); - -var defaults = { - fit: true, // whether to fit to viewport - padding: 30, // fit padding - boundingBox: undefined, // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } - animate: false, // whether to transition the node positions - animationDuration: 500, // duration of animation in ms if enabled - animationEasing: undefined, // easing of animation if enabled - animateFilter: function animateFilter(node, i) { - return true; - }, // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts - ready: undefined, // callback on layoutready - stop: undefined, // callback on layoutstop - transform: function transform(node, position) { - return position; - } // transform a given node position. Useful for changing flow direction in discrete layouts -}; - -function RandomLayout(options) { - this.options = util.extend({}, defaults, options); -} - -RandomLayout.prototype.run = function () { - var options = this.options; - var cy = options.cy; - var eles = options.eles; - var nodes = eles.nodes().not(':parent'); - - var bb = math.makeBoundingBox(options.boundingBox ? options.boundingBox : { - x1: 0, y1: 0, w: cy.width(), h: cy.height() - }); - - var getPos = function getPos(node, i) { - return { - x: bb.x1 + Math.round(Math.random() * bb.w), - y: bb.y1 + Math.round(Math.random() * bb.h) - }; - }; - - nodes.layoutPositions(this, options, getPos); - - return this; // chaining -}; - -module.exports = RandomLayout; - -/***/ }), -/* 86 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var math = __webpack_require__(2); -var is = __webpack_require__(0); -var util = __webpack_require__(1); - -var BRp = {}; - -BRp.arrowShapeWidth = 0.3; - -BRp.registerArrowShapes = function () { - var arrowShapes = this.arrowShapes = {}; - var renderer = this; - - // Contract for arrow shapes: - // 0, 0 is arrow tip - // (0, 1) is direction towards node - // (1, 0) is right - // - // functional api: - // collide: check x, y in shape - // roughCollide: called before collide, no false negatives - // draw: draw - // spacing: dist(arrowTip, nodeBoundary) - // gap: dist(edgeTip, nodeBoundary), edgeTip may != arrowTip - - var bbCollide = function bbCollide(x, y, size, angle, translation, edgeWidth, padding) { - var x1 = translation.x - size / 2 - padding; - var x2 = translation.x + size / 2 + padding; - var y1 = translation.y - size / 2 - padding; - var y2 = translation.y + size / 2 + padding; - - var inside = x1 <= x && x <= x2 && y1 <= y && y <= y2; - - return inside; - }; - - var transform = function transform(x, y, size, angle, translation) { - var xRotated = x * Math.cos(angle) - y * Math.sin(angle); - var yRotated = x * Math.sin(angle) + y * Math.cos(angle); - - var xScaled = xRotated * size; - var yScaled = yRotated * size; - - var xTranslated = xScaled + translation.x; - var yTranslated = yScaled + translation.y; - - return { - x: xTranslated, - y: yTranslated - }; - }; - - var transformPoints = function transformPoints(pts, size, angle, translation) { - var retPts = []; - - for (var i = 0; i < pts.length; i += 2) { - var x = pts[i]; - var y = pts[i + 1]; - - retPts.push(transform(x, y, size, angle, translation)); - } - - return retPts; - }; - - var pointsToArr = function pointsToArr(pts) { - var ret = []; - - for (var i = 0; i < pts.length; i++) { - var p = pts[i]; - - ret.push(p.x, p.y); - } - - return ret; - }; - - var standardGap = function standardGap(edge) { - return edge.pstyle('width').pfValue * edge.pstyle('arrow-scale').pfValue * 2; - }; - - var defineArrowShape = function defineArrowShape(name, defn) { - if (is.string(defn)) { - defn = arrowShapes[defn]; - } - - arrowShapes[name] = util.extend({ - name: name, - - points: [-0.15, -0.3, 0.15, -0.3, 0.15, 0.3, -0.15, 0.3], - - collide: function collide(x, y, size, angle, translation, padding) { - var points = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation)); - var inside = math.pointInsidePolygonPoints(x, y, points); - - return inside; - }, - - roughCollide: bbCollide, - - draw: function draw(context, size, angle, translation) { - var points = transformPoints(this.points, size, angle, translation); - - renderer.arrowShapeImpl('polygon')(context, points); - }, - - spacing: function spacing(edge) { - return 0; - }, - - gap: standardGap - }, defn); - }; - - defineArrowShape('none', { - collide: util.falsify, - - roughCollide: util.falsify, - - draw: util.noop, - - spacing: util.zeroify, - - gap: util.zeroify - }); - - defineArrowShape('triangle', { - points: [-0.15, -0.3, 0, 0, 0.15, -0.3] - }); - - defineArrowShape('arrow', 'triangle'); - - defineArrowShape('triangle-backcurve', { - points: arrowShapes['triangle'].points, - - controlPoint: [0, -0.15], - - roughCollide: bbCollide, - - draw: function draw(context, size, angle, translation, edgeWidth) { - var ptsTrans = transformPoints(this.points, size, angle, translation); - var ctrlPt = this.controlPoint; - var ctrlPtTrans = transform(ctrlPt[0], ctrlPt[1], size, angle, translation); - - renderer.arrowShapeImpl(this.name)(context, ptsTrans, ctrlPtTrans); - }, - - gap: function gap(edge) { - return standardGap(edge) * 0.985; - } - }); - - defineArrowShape('triangle-tee', { - points: [-0.15, -0.3, 0, 0, 0.15, -0.3, -0.15, -0.3], - - pointsTee: [-0.15, -0.4, -0.15, -0.5, 0.15, -0.5, 0.15, -0.4], - - collide: function collide(x, y, size, angle, translation, edgeWidth, padding) { - var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation)); - var teePts = pointsToArr(transformPoints(this.pointsTee, size + 2 * padding, angle, translation)); - - var inside = math.pointInsidePolygonPoints(x, y, triPts) || math.pointInsidePolygonPoints(x, y, teePts); - - return inside; - }, - - draw: function draw(context, size, angle, translation, edgeWidth) { - var triPts = transformPoints(this.points, size, angle, translation); - var teePts = transformPoints(this.pointsTee, size, angle, translation); - - renderer.arrowShapeImpl(this.name)(context, triPts, teePts); - } - }); - - defineArrowShape('triangle-cross', { - points: [-0.15, -0.3, 0, 0, 0.15, -0.3, -0.15, -0.3], - - baseCrossLinePts: [-0.15, -0.4, // first half of the rectangle - -0.15, -0.4, 0.15, -0.4, // second half of the rectangle - 0.15, -0.4], - - crossLinePts: function crossLinePts(size, edgeWidth) { - // shift points so that the distance between the cross points matches edge width - var p = this.baseCrossLinePts.slice(); - var shiftFactor = edgeWidth / size; - var y0 = 3; - var y1 = 5; - - p[y0] = p[y0] - shiftFactor; - p[y1] = p[y1] - shiftFactor; - - return p; - }, - - collide: function collide(x, y, size, angle, translation, edgeWidth, padding) { - var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation)); - var teePts = pointsToArr(transformPoints(this.crossLinePts(size, edgeWidth), size + 2 * padding, angle, translation)); - var inside = math.pointInsidePolygonPoints(x, y, triPts) || math.pointInsidePolygonPoints(x, y, teePts); - - return inside; - }, - - draw: function draw(context, size, angle, translation, edgeWidth) { - var triPts = transformPoints(this.points, size, angle, translation); - var crossLinePts = transformPoints(this.crossLinePts(size, edgeWidth), size, angle, translation); - - renderer.arrowShapeImpl(this.name)(context, triPts, crossLinePts); - } - }); - - defineArrowShape('vee', { - points: [-0.15, -0.3, 0, 0, 0.15, -0.3, 0, -0.15], - - gap: function gap(edge) { - return standardGap(edge) * 0.985; - } - }); - - defineArrowShape('circle', { - radius: 0.15, - - collide: function collide(x, y, size, angle, translation, edgeWidth, padding) { - var t = translation; - var inside = Math.pow(t.x - x, 2) + Math.pow(t.y - y, 2) <= Math.pow((size + 2 * padding) * this.radius, 2); - - return inside; - }, - - draw: function draw(context, size, angle, translation, edgeWidth) { - renderer.arrowShapeImpl(this.name)(context, translation.x, translation.y, this.radius * size); - }, - - spacing: function spacing(edge) { - return renderer.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.radius; - } - }); - - defineArrowShape('tee', { - points: [-0.15, 0, -0.15, -0.1, 0.15, -0.1, 0.15, 0], - - spacing: function spacing(edge) { - return 1; - }, - - gap: function gap(edge) { - return 1; - } - }); - - defineArrowShape('square', { - points: [-0.15, 0.00, 0.15, 0.00, 0.15, -0.3, -0.15, -0.3] - }); - - defineArrowShape('diamond', { - points: [-0.15, -0.15, 0, -0.3, 0.15, -0.15, 0, 0], - - gap: function gap(edge) { - return edge.pstyle('width').pfValue * edge.pstyle('arrow-scale').value; - } - }); -}; - -module.exports = BRp; - -/***/ }), -/* 87 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var window = __webpack_require__(4); -var math = __webpack_require__(2); -var util = __webpack_require__(1); -var window = __webpack_require__(4); - -var BRp = {}; - -// Project mouse -BRp.projectIntoViewport = function (clientX, clientY) { - var cy = this.cy; - var offsets = this.findContainerClientCoords(); - var offsetLeft = offsets[0]; - var offsetTop = offsets[1]; - var scale = offsets[4]; - var pan = cy.pan(); - var zoom = cy.zoom(); - - var x = ((clientX - offsetLeft) / scale - pan.x) / zoom; - var y = ((clientY - offsetTop) / scale - pan.y) / zoom; - - return [x, y]; -}; - -BRp.findContainerClientCoords = function () { - if (this.containerBB) { - return this.containerBB; - } - - var container = this.container; - var rect = container.getBoundingClientRect(); - var style = window.getComputedStyle(container); - var styleValue = function styleValue(name) { - return parseFloat(style.getPropertyValue(name)); - }; - - var padding = { - left: styleValue('padding-left'), - right: styleValue('padding-right'), - top: styleValue('padding-top'), - bottom: styleValue('padding-bottom') - }; - - var border = { - left: styleValue('border-left-width'), - right: styleValue('border-right-width'), - top: styleValue('border-top-width'), - bottom: styleValue('border-bottom-width') - }; - - var clientWidth = container.clientWidth; - var clientHeight = container.clientHeight; - - var paddingHor = padding.left + padding.right; - var paddingVer = padding.top + padding.bottom; - - var borderHor = border.left + border.right; - var borderVer = border.top + border.bottom; - - var scale = rect.width / (clientWidth + borderHor); - - var unscaledW = clientWidth - paddingHor; - var unscaledH = clientHeight - paddingVer; - - var scaledW = rect.width - (paddingHor + borderHor) * scale; - var scaledH = rect.height - (paddingVer + borderVer) * scale; - - var left = rect.left + padding.left + border.left; - var top = rect.top + padding.top + border.top; - - return this.containerBB = [left, top, unscaledW, unscaledH, scale]; -}; - -BRp.invalidateContainerClientCoordsCache = function () { - this.containerBB = null; -}; - -BRp.findNearestElement = function (x, y, interactiveElementsOnly, isTouch) { - return this.findNearestElements(x, y, interactiveElementsOnly, isTouch)[0]; -}; - -BRp.findNearestElements = function (x, y, interactiveElementsOnly, isTouch) { - var self = this; - var r = this; - var eles = r.getCachedZSortedEles(); - var near = []; // 1 node max, 1 edge max - var zoom = r.cy.zoom(); - var hasCompounds = r.cy.hasCompoundNodes(); - var edgeThreshold = (isTouch ? 24 : 8) / zoom; - var nodeThreshold = (isTouch ? 8 : 2) / zoom; - var labelThreshold = (isTouch ? 8 : 2) / zoom; - var minSqDist = Infinity; - var nearEdge; - var nearNode; - - if (interactiveElementsOnly) { - eles = eles.interactive; - } - - function addEle(ele, sqDist) { - if (ele.isNode()) { - if (nearNode) { - return; // can't replace node - } else { - nearNode = ele; - near.push(ele); - } - } - - if (ele.isEdge() && (sqDist == null || sqDist < minSqDist)) { - if (nearEdge) { - // then replace existing edge - // can replace only if same z-index - if (nearEdge.pstyle('z-index').value === ele.pstyle('z-index').value) { - for (var i = 0; i < near.length; i++) { - if (near[i].isEdge()) { - near[i] = ele; - nearEdge = ele; - minSqDist = sqDist != null ? sqDist : minSqDist; - break; - } - } - } - } else { - near.push(ele); - nearEdge = ele; - minSqDist = sqDist != null ? sqDist : minSqDist; - } - } - } - - function checkNode(node) { - var width = node.outerWidth() + 2 * nodeThreshold; - var height = node.outerHeight() + 2 * nodeThreshold; - var hw = width / 2; - var hh = height / 2; - var pos = node.position(); - - if (pos.x - hw <= x && x <= pos.x + hw // bb check x - && pos.y - hh <= y && y <= pos.y + hh // bb check y - ) { - var shape = r.nodeShapes[self.getNodeShape(node)]; - - if (shape.checkPoint(x, y, 0, width, height, pos.x, pos.y)) { - addEle(node, 0); - return true; - } - } - } - - function checkEdge(edge) { - var _p = edge._private; - - var rs = _p.rscratch; - var styleWidth = edge.pstyle('width').pfValue; - var scale = edge.pstyle('arrow-scale').value; - var width = styleWidth / 2 + edgeThreshold; // more like a distance radius from centre - var widthSq = width * width; - var width2 = width * 2; - var src = _p.source; - var tgt = _p.target; - var inEdgeBB = false; - var sqDist; - - if (rs.edgeType === 'segments' || rs.edgeType === 'straight' || rs.edgeType === 'haystack') { - var pts = rs.allpts; - - for (var i = 0; i + 3 < pts.length; i += 2) { - if ((inEdgeBB = math.inLineVicinity(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3], width2)) && widthSq > (sqDist = math.sqdistToFiniteLine(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3]))) { - addEle(edge, sqDist); - return true; - } - } - } else if (rs.edgeType === 'bezier' || rs.edgeType === 'multibezier' || rs.edgeType === 'self' || rs.edgeType === 'compound') { - var pts = rs.allpts; - for (var i = 0; i + 5 < rs.allpts.length; i += 4) { - if ((inEdgeBB = math.inBezierVicinity(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3], pts[i + 4], pts[i + 5], width2)) && widthSq > (sqDist = math.sqdistToQuadraticBezier(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3], pts[i + 4], pts[i + 5]))) { - addEle(edge, sqDist); - return true; - } - } - } - - // if we're close to the edge but didn't hit it, maybe we hit its arrows - - var src = src || _p.source; - var tgt = tgt || _p.target; - - var arSize = self.getArrowWidth(styleWidth, scale); - - var arrows = [{ name: 'source', x: rs.arrowStartX, y: rs.arrowStartY, angle: rs.srcArrowAngle }, { name: 'target', x: rs.arrowEndX, y: rs.arrowEndY, angle: rs.tgtArrowAngle }, { name: 'mid-source', x: rs.midX, y: rs.midY, angle: rs.midsrcArrowAngle }, { name: 'mid-target', x: rs.midX, y: rs.midY, angle: rs.midtgtArrowAngle }]; - - for (var i = 0; i < arrows.length; i++) { - var ar = arrows[i]; - var shape = r.arrowShapes[edge.pstyle(ar.name + '-arrow-shape').value]; - var edgeWidth = edge.pstyle('width').pfValue; - if (shape.roughCollide(x, y, arSize, ar.angle, { x: ar.x, y: ar.y }, edgeWidth, edgeThreshold) && shape.collide(x, y, arSize, ar.angle, { x: ar.x, y: ar.y }, edgeWidth, edgeThreshold)) { - addEle(edge); - return true; - } - } - - // for compound graphs, hitting edge may actually want a connected node instead (b/c edge may have greater z-index precedence) - if (hasCompounds && near.length > 0) { - checkNode(src); - checkNode(tgt); - } - } - - function preprop(obj, name, pre) { - return util.getPrefixedProperty(obj, name, pre); - } - - function checkLabel(ele, prefix) { - var _p = ele._private; - var th = labelThreshold; - - var prefixDash; - if (prefix) { - prefixDash = prefix + '-'; - } else { - prefixDash = ''; - } - - var text = ele.pstyle(prefixDash + 'label').value; - var eventsEnabled = ele.pstyle('text-events').strValue === 'yes'; - - if (!eventsEnabled || !text) { - return; - } - - var rstyle = _p.rstyle; - var bw = ele.pstyle('text-border-width').pfValue; - var pw = ele.pstyle('text-background-padding').pfValue; - var lw = preprop(rstyle, 'labelWidth', prefix) + bw + 2 * th + 2 * pw; - var lh = preprop(rstyle, 'labelHeight', prefix) + bw + 2 * th + 2 * pw; - var lx = preprop(rstyle, 'labelX', prefix); - var ly = preprop(rstyle, 'labelY', prefix); - - var theta = preprop(_p.rscratch, 'labelAngle', prefix); - - var lx1 = lx - lw / 2; - var lx2 = lx + lw / 2; - var ly1 = ly - lh / 2; - var ly2 = ly + lh / 2; - - if (theta) { - var cos = Math.cos(theta); - var sin = Math.sin(theta); - - var rotate = function rotate(x, y) { - x = x - lx; - y = y - ly; - - return { - x: x * cos - y * sin + lx, - y: x * sin + y * cos + ly - }; - }; - - var px1y1 = rotate(lx1, ly1); - var px1y2 = rotate(lx1, ly2); - var px2y1 = rotate(lx2, ly1); - var px2y2 = rotate(lx2, ly2); - - var points = [px1y1.x, px1y1.y, px2y1.x, px2y1.y, px2y2.x, px2y2.y, px1y2.x, px1y2.y]; - - if (math.pointInsidePolygonPoints(x, y, points)) { - addEle(ele); - return true; - } - } else { - // do a cheaper bb check - var bb = { - w: lw, - h: lh, - x1: lx1, - x2: lx2, - y1: ly1, - y2: ly2 - }; - - if (math.inBoundingBox(bb, x, y)) { - addEle(ele); - return true; - } - } - } - - for (var i = eles.length - 1; i >= 0; i--) { - // reverse order for precedence - var ele = eles[i]; - - if (ele.isNode()) { - checkNode(ele) || checkLabel(ele); - } else { - // then edge - checkEdge(ele) || checkLabel(ele) || checkLabel(ele, 'source') || checkLabel(ele, 'target'); - } - } - - return near; -}; - -// 'Give me everything from this box' -BRp.getAllInBox = function (x1, y1, x2, y2) { - var eles = this.getCachedZSortedEles().interactive; - var box = []; - - var x1c = Math.min(x1, x2); - var x2c = Math.max(x1, x2); - var y1c = Math.min(y1, y2); - var y2c = Math.max(y1, y2); - - x1 = x1c; - x2 = x2c; - y1 = y1c; - y2 = y2c; - - var boxBb = math.makeBoundingBox({ - x1: x1, y1: y1, - x2: x2, y2: y2 - }); - - for (var e = 0; e < eles.length; e++) { - var ele = eles[e]; - - if (ele.isNode()) { - var node = ele; - var nodeBb = node.boundingBox({ - includeNodes: true, - includeEdges: false, - includeLabels: false - }); - - if (math.boundingBoxesIntersect(boxBb, nodeBb) && !math.boundingBoxInBoundingBox(nodeBb, boxBb)) { - box.push(node); - } - } else { - var edge = ele; - var _p = edge._private; - var rs = _p.rscratch; - - if (rs.startX != null && rs.startY != null && !math.inBoundingBox(boxBb, rs.startX, rs.startY)) { - continue; - } - if (rs.endX != null && rs.endY != null && !math.inBoundingBox(boxBb, rs.endX, rs.endY)) { - continue; - } - - if (rs.edgeType === 'bezier' || rs.edgeType === 'multibezier' || rs.edgeType === 'self' || rs.edgeType === 'compound' || rs.edgeType === 'segments' || rs.edgeType === 'haystack') { - - var pts = _p.rstyle.bezierPts || _p.rstyle.linePts || _p.rstyle.haystackPts; - var allInside = true; - - for (var i = 0; i < pts.length; i++) { - if (!math.pointInBoundingBox(boxBb, pts[i])) { - allInside = false; - break; - } - } - - if (allInside) { - box.push(edge); - } - } else if (rs.edgeType === 'haystack' || rs.edgeType === 'straight') { - box.push(edge); - } - } - } - - return box; -}; - -module.exports = BRp; - -/***/ }), -/* 88 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var math = __webpack_require__(2); - -var BRp = {}; - -BRp.calculateArrowAngles = function (edge) { - var rs = edge._private.rscratch; - var isHaystack = rs.edgeType === 'haystack'; - var isBezier = rs.edgeType === 'bezier'; - var isMultibezier = rs.edgeType === 'multibezier'; - var isSegments = rs.edgeType === 'segments'; - var isCompound = rs.edgeType === 'compound'; - var isSelf = rs.edgeType === 'self'; - - // Displacement gives direction for arrowhead orientation - var dispX, dispY; - var startX, startY, endX, endY, midX, midY; - - if (isHaystack) { - startX = rs.haystackPts[0]; - startY = rs.haystackPts[1]; - endX = rs.haystackPts[2]; - endY = rs.haystackPts[3]; - } else { - startX = rs.arrowStartX; - startY = rs.arrowStartY; - endX = rs.arrowEndX; - endY = rs.arrowEndY; - } - - midX = rs.midX; - midY = rs.midY; - - // source - // - - if (isSegments) { - dispX = startX - rs.segpts[0]; - dispY = startY - rs.segpts[1]; - } else if (isMultibezier || isCompound || isSelf || isBezier) { - var pts = rs.allpts; - var bX = math.qbezierAt(pts[0], pts[2], pts[4], 0.1); - var bY = math.qbezierAt(pts[1], pts[3], pts[5], 0.1); - - dispX = startX - bX; - dispY = startY - bY; - } else { - dispX = startX - midX; - dispY = startY - midY; - } - - rs.srcArrowAngle = math.getAngleFromDisp(dispX, dispY); - - // mid target - // - - var midX = rs.midX; - var midY = rs.midY; - - if (isHaystack) { - midX = (startX + endX) / 2; - midY = (startY + endY) / 2; - } - - dispX = endX - startX; - dispY = endY - startY; - - if (isSegments) { - var pts = rs.allpts; - - if (pts.length / 2 % 2 === 0) { - var i2 = pts.length / 2; - var i1 = i2 - 2; - - dispX = pts[i2] - pts[i1]; - dispY = pts[i2 + 1] - pts[i1 + 1]; - } else { - var i2 = pts.length / 2 - 1; - var i1 = i2 - 2; - var i3 = i2 + 2; - - dispX = pts[i2] - pts[i1]; - dispY = pts[i2 + 1] - pts[i1 + 1]; - } - } else if (isMultibezier || isCompound || isSelf) { - var pts = rs.allpts; - var cpts = rs.ctrlpts; - var bp0x, bp0y; - var bp1x, bp1y; - - if (cpts.length / 2 % 2 === 0) { - var p0 = pts.length / 2 - 1; // startpt - var ic = p0 + 2; - var p1 = ic + 2; - - bp0x = math.qbezierAt(pts[p0], pts[ic], pts[p1], 0.0); - bp0y = math.qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.0); - - bp1x = math.qbezierAt(pts[p0], pts[ic], pts[p1], 0.0001); - bp1y = math.qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.0001); - } else { - var ic = pts.length / 2 - 1; // ctrpt - var p0 = ic - 2; // startpt - var p1 = ic + 2; // endpt - - bp0x = math.qbezierAt(pts[p0], pts[ic], pts[p1], 0.4999); - bp0y = math.qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.4999); - - bp1x = math.qbezierAt(pts[p0], pts[ic], pts[p1], 0.5); - bp1y = math.qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.5); - } - - dispX = bp1x - bp0x; - dispY = bp1y - bp0y; - } - - rs.midtgtArrowAngle = math.getAngleFromDisp(dispX, dispY); - - rs.midDispX = dispX; - rs.midDispY = dispY; - - // mid source - // - - dispX *= -1; - dispY *= -1; - - if (isSegments) { - var pts = rs.allpts; - - if (pts.length / 2 % 2 === 0) { - // already ok - } else { - var i2 = pts.length / 2 - 1; - var i3 = i2 + 2; - - dispX = -(pts[i3] - pts[i2]); - dispY = -(pts[i3 + 1] - pts[i2 + 1]); - } - } - - rs.midsrcArrowAngle = math.getAngleFromDisp(dispX, dispY); - - // target - // - - if (isSegments) { - dispX = endX - rs.segpts[rs.segpts.length - 2]; - dispY = endY - rs.segpts[rs.segpts.length - 1]; - } else if (isMultibezier || isCompound || isSelf || isBezier) { - var pts = rs.allpts; - var l = pts.length; - var bX = math.qbezierAt(pts[l - 6], pts[l - 4], pts[l - 2], 0.9); - var bY = math.qbezierAt(pts[l - 5], pts[l - 3], pts[l - 1], 0.9); - - dispX = endX - bX; - dispY = endY - bY; - } else { - dispX = endX - midX; - dispY = endY - midY; - } - - rs.tgtArrowAngle = math.getAngleFromDisp(dispX, dispY); -}; - -BRp.getArrowWidth = BRp.getArrowHeight = function (edgeWidth, scale) { - var cache = this.arrowWidthCache = this.arrowWidthCache || {}; - - var cachedVal = cache[edgeWidth + ', ' + scale]; - if (cachedVal) { - return cachedVal; - } - - cachedVal = Math.max(Math.pow(edgeWidth * 13.37, 0.9), 29) * scale; - cache[edgeWidth + ', ' + scale] = cachedVal; - - return cachedVal; -}; - -module.exports = BRp; - -/***/ }), -/* 89 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var math = __webpack_require__(2); -var is = __webpack_require__(0); - -var BRp = {}; - -BRp.findEdgeControlPoints = function (edges) { - if (!edges || edges.length === 0) { - return; - } - - var r = this; - var cy = r.cy; - var hasCompounds = cy.hasCompoundNodes(); - var hashTable = {}; - var pairIds = []; - var haystackEdges = []; - - // create a table of edge (src, tgt) => list of edges between them - var pairId; - for (var i = 0; i < edges.length; i++) { - var edge = edges[i]; - var _p = edge._private; - var data = _p.data; - var curveStyle = edge.pstyle('curve-style').value; - var edgeIsUnbundled = curveStyle === 'unbundled-bezier' || curveStyle === 'segments'; - var edgeIsBezier = curveStyle === 'unbundled-bezier' || curveStyle === 'bezier'; - - // ignore edges who are not to be displayed - // they shouldn't take up space - if (edge.pstyle('display').value === 'none') { - continue; - } - - if (curveStyle === 'haystack') { - haystackEdges.push(edge); - continue; - } - - var srcId = data.source; - var tgtId = data.target; - - pairId = srcId > tgtId ? tgtId + '$-$' + srcId : srcId + '$-$' + tgtId; - - if (edgeIsUnbundled) { - pairId = 'unbundled' + '$-$' + data.id; - } - - var tableEntry = hashTable[pairId]; - - if (tableEntry == null) { - tableEntry = hashTable[pairId] = []; - pairIds.push(pairId); - } - - tableEntry.push(edge); - - if (edgeIsUnbundled) { - tableEntry.hasUnbundled = true; - } - - if (edgeIsBezier) { - tableEntry.hasBezier = true; - } - } - - var src, tgt, srcPos, tgtPos, srcW, srcH, tgtW, tgtH, srcShape, tgtShape; - var vectorNormInverse; - var badBezier; - - // for each pair (src, tgt), create the ctrl pts - // Nested for loop is OK; total number of iterations for both loops = edgeCount - for (var p = 0; p < pairIds.length; p++) { - pairId = pairIds[p]; - var pairEdges = hashTable[pairId]; - - // for each pair id, the edges should be sorted by index - pairEdges.sort(function (edge1, edge2) { - return edge1.poolIndex() - edge2.poolIndex(); - }); - - src = pairEdges[0]._private.source; - tgt = pairEdges[0]._private.target; - - // make sure src/tgt distinction is consistent for bundled edges - if (!pairEdges.hasUnbundled && src.id() > tgt.id()) { - var temp = src; - src = tgt; - tgt = temp; - } - - srcPos = src.position(); - tgtPos = tgt.position(); - - srcW = src.outerWidth(); - srcH = src.outerHeight(); - - tgtW = tgt.outerWidth(); - tgtH = tgt.outerHeight(); - - srcShape = r.nodeShapes[this.getNodeShape(src)]; - tgtShape = r.nodeShapes[this.getNodeShape(tgt)]; - - badBezier = false; - - var edge; - var edge_p; - var rs; - - var dirCounts = { - 'north': 0, - 'west': 0, - 'south': 0, - 'east': 0, - 'northwest': 0, - 'southwest': 0, - 'northeast': 0, - 'southeast': 0 - }; - - var srcX2 = srcPos.x; - var srcY2 = srcPos.y; - var srcW2 = srcW; - var srcH2 = srcH; - - var tgtX2 = tgtPos.x; - var tgtY2 = tgtPos.y; - var tgtW2 = tgtW; - var tgtH2 = tgtH; - - var numEdges2 = pairEdges.length; - - for (var i = 0; i < pairEdges.length; i++) { - edge = pairEdges[i]; - edge_p = edge._private; - rs = edge_p.rscratch; - - var edgeIndex1 = rs.lastEdgeIndex; - var edgeIndex2 = i; - - var numEdges1 = rs.lastNumEdges; - - var curveStyle = edge.pstyle('curve-style').value; - - var edgeIsUnbundled = curveStyle === 'unbundled-bezier' || curveStyle === 'segments'; - - // whether the normalised pair order is the reverse of the edge's src-tgt order - var edgeIsSwapped = src.id() !== edge.source().id(); - - var ctrlptDists = edge.pstyle('control-point-distances'); - var loopDir = edge.pstyle('loop-direction').pfValue; - var loopSwp = edge.pstyle('loop-sweep').pfValue; - var ctrlptWs = edge.pstyle('control-point-weights'); - var bezierN = ctrlptDists && ctrlptWs ? Math.min(ctrlptDists.value.length, ctrlptWs.value.length) : 1; - var stepSize = edge.pstyle('control-point-step-size').pfValue; - var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : undefined; - var ctrlptWeight = ctrlptWs.value[0]; - var edgeDistances = edge.pstyle('edge-distances').value; - var segmentWs = edge.pstyle('segment-weights'); - var segmentDs = edge.pstyle('segment-distances'); - var segmentsN = Math.min(segmentWs.pfValue.length, segmentDs.pfValue.length); - var srcEndpt = edge.pstyle('source-endpoint').value; - var tgtEndpt = edge.pstyle('target-endpoint').value; - var srcArrShape = edge.pstyle('source-arrow-shape').value; - var tgtArrShape = edge.pstyle('target-arrow-shape').value; - var arrowScale = edge.pstyle('arrow-scale').value; - var lineWidth = edge.pstyle('width').pfValue; - - var srcX1 = rs.lastSrcCtlPtX; - var srcY1 = rs.lastSrcCtlPtY; - var srcW1 = rs.lastSrcCtlPtW; - var srcH1 = rs.lastSrcCtlPtH; - - var tgtX1 = rs.lastTgtCtlPtX; - var tgtY1 = rs.lastTgtCtlPtY; - var tgtW1 = rs.lastTgtCtlPtW; - var tgtH1 = rs.lastTgtCtlPtH; - - var curveStyle1 = rs.lastCurveStyle; - var curveStyle2 = curveStyle; - - var ctrlptDists1 = rs.lastCtrlptDists; - var ctrlptDists2 = ctrlptDists ? ctrlptDists.strValue : null; - - var ctrlptWs1 = rs.lastCtrlptWs; - var ctrlptWs2 = ctrlptWs.strValue; - - var segmentWs1 = rs.lastSegmentWs; - var segmentWs2 = segmentWs.strValue; - - var segmentDs1 = rs.lastSegmentDs; - var segmentDs2 = segmentDs.strValue; - - var stepSize1 = rs.lastStepSize; - var stepSize2 = stepSize; - - var loopDir1 = rs.lastLoopDir; - var loopDir2 = loopDir; - - var loopSwp1 = rs.lastLoopSwp; - var loopSwp2 = loopSwp; - - var edgeDistances1 = rs.lastEdgeDistances; - var edgeDistances2 = edgeDistances; - - var srcEndpt1 = rs.lastSrcEndpt; - var srcEndpt2 = srcEndpt; - - var tgtEndpt1 = rs.lastTgtEndpt; - var tgtEndpt2 = tgtEndpt; - - var srcArr1 = rs.lastSrcArr; - var srcArr2 = srcArrShape; - - var tgtArr1 = rs.lastTgtArr; - var tgtArr2 = tgtArrShape; - - var lineW1 = rs.lastLineW; - var lineW2 = lineWidth; - - var arrScl1 = rs.lastArrScl; - var arrScl2 = arrowScale; - - if (badBezier) { - rs.badBezier = true; - } else { - rs.badBezier = false; - } - - var ptCacheHit; - - if (srcX1 === srcX2 && srcY1 === srcY2 && srcW1 === srcW2 && srcH1 === srcH2 && tgtX1 === tgtX2 && tgtY1 === tgtY2 && tgtW1 === tgtW2 && tgtH1 === tgtH2 && curveStyle1 === curveStyle2 && ctrlptDists1 === ctrlptDists2 && ctrlptWs1 === ctrlptWs2 && segmentWs1 === segmentWs2 && segmentDs1 === segmentDs2 && stepSize1 === stepSize2 && loopDir1 === loopDir2 && loopSwp1 === loopSwp2 && edgeDistances1 === edgeDistances2 && srcEndpt1 === srcEndpt2 && tgtEndpt1 === tgtEndpt2 && srcArr1 === srcArr2 && tgtArr1 === tgtArr2 && lineW1 === lineW2 && arrScl1 === arrScl2 && (edgeIndex1 === edgeIndex2 && numEdges1 === numEdges2 || edgeIsUnbundled)) { - ptCacheHit = true; // then the control points haven't changed and we can skip calculating them - } else { - ptCacheHit = false; - - rs.lastSrcCtlPtX = srcX2; - rs.lastSrcCtlPtY = srcY2; - rs.lastSrcCtlPtW = srcW2; - rs.lastSrcCtlPtH = srcH2; - rs.lastTgtCtlPtX = tgtX2; - rs.lastTgtCtlPtY = tgtY2; - rs.lastTgtCtlPtW = tgtW2; - rs.lastTgtCtlPtH = tgtH2; - rs.lastEdgeIndex = edgeIndex2; - rs.lastNumEdges = numEdges2; - rs.lastCurveStyle = curveStyle2; - rs.lastCtrlptDists = ctrlptDists2; - rs.lastCtrlptWs = ctrlptWs2; - rs.lastSegmentDs = segmentDs2; - rs.lastSegmentWs = segmentWs2; - rs.lastStepSize = stepSize2; - rs.lastLoopDir = loopDir2; - rs.lastLoopSwp = loopSwp2; - rs.lastEdgeDistances = edgeDistances2; - rs.lastSrcEndpt = srcEndpt2; - rs.lastTgtEndpt = tgtEndpt2; - rs.lastSrcArr = srcArr2; - rs.lastTgtArr = tgtArr2; - rs.lastLineW = lineW2; - rs.lastArrScl = arrScl2; - } - - if (!ptCacheHit) { - - if (!pairEdges.calculatedIntersection && src !== tgt && (pairEdges.hasBezier || pairEdges.hasUnbundled)) { - - pairEdges.calculatedIntersection = true; - - // pt outside src shape to calc distance/displacement from src to tgt - var srcOutside = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, tgtPos.x, tgtPos.y, 0); - - pairEdges.srcIntn = srcOutside; - - // pt outside tgt shape to calc distance/displacement from src to tgt - var tgtOutside = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, srcPos.x, srcPos.y, 0); - - pairEdges.tgtIntn = tgtOutside; - - var midptSrcPts = { - x1: srcOutside[0], - x2: tgtOutside[0], - y1: srcOutside[1], - y2: tgtOutside[1] - }; - - var posPts = { - x1: srcPos.x, - x2: tgtPos.x, - y1: srcPos.y, - y2: tgtPos.y - }; - - var dy = tgtOutside[1] - srcOutside[1]; - var dx = tgtOutside[0] - srcOutside[0]; - var l = Math.sqrt(dx * dx + dy * dy); - - var vector = { - x: dx, - y: dy - }; - - var vectorNorm = { - x: vector.x / l, - y: vector.y / l - }; - vectorNormInverse = { - x: -vectorNorm.y, - y: vectorNorm.x - }; - - // if node shapes overlap, then no ctrl pts to draw - if (tgtShape.checkPoint(srcOutside[0], srcOutside[1], 0, tgtW, tgtH, tgtPos.x, tgtPos.y) && srcShape.checkPoint(tgtOutside[0], tgtOutside[1], 0, srcW, srcH, srcPos.x, srcPos.y)) { - vectorNormInverse = {}; - badBezier = true; - } - } - - if (!edgeIsSwapped) { - rs.srcIntn = pairEdges.srcIntn; - rs.tgtIntn = pairEdges.tgtIntn; - } else { - // ensure that the per-edge cached value for intersections are correct for swapped bundled edges - rs.srcIntn = pairEdges.tgtIntn; - rs.tgtIntn = pairEdges.srcIntn; - } - - if (src === tgt) { - // Self-edge - - rs.edgeType = 'self'; - - var j = i; - var loopDist = stepSize; - - if (edgeIsUnbundled) { - j = 0; - loopDist = ctrlptDist; - } - - var loopAngle = loopDir - Math.PI / 2; - var outAngle = loopAngle - loopSwp / 2; - var inAngle = loopAngle + loopSwp / 2; - - // increase by step size for overlapping loops, keyed on direction and sweep values - var dc = String(loopDir + '_' + loopSwp); - j = dirCounts[dc] === undefined ? dirCounts[dc] = 0 : ++dirCounts[dc]; - - rs.ctrlpts = [srcPos.x + Math.cos(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.x + Math.cos(inAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(inAngle) * 1.4 * loopDist * (j / 3 + 1)]; - } else if (hasCompounds && (src.isParent() || src.isChild() || tgt.isParent() || tgt.isChild()) && (src.parents().anySame(tgt) || tgt.parents().anySame(src))) { - // Compound edge - - rs.edgeType = 'compound'; - - // because the line approximation doesn't apply for compound beziers - // (loop/self edges are already elided b/c of cheap src==tgt check) - rs.badBezier = false; - - var j = i; - var loopDist = stepSize; - - if (edgeIsUnbundled) { - j = 0; - loopDist = ctrlptDist; - } - - var loopW = 50; - - var loopaPos = { - x: srcPos.x - srcW / 2, - y: srcPos.y - srcH / 2 - }; - - var loopbPos = { - x: tgtPos.x - tgtW / 2, - y: tgtPos.y - tgtH / 2 - }; - - var loopPos = { - x: Math.min(loopaPos.x, loopbPos.x), - y: Math.min(loopaPos.y, loopbPos.y) - }; - - // avoids cases with impossible beziers - var minCompoundStretch = 0.5; - var compoundStretchA = Math.max(minCompoundStretch, Math.log(srcW * 0.01)); - var compoundStretchB = Math.max(minCompoundStretch, Math.log(tgtW * 0.01)); - - rs.ctrlpts = [loopPos.x, loopPos.y - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchA, loopPos.x - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchB, loopPos.y]; - } else if (curveStyle === 'segments') { - // Segments (multiple straight lines) - - rs.edgeType = 'segments'; - rs.segpts = []; - - for (var s = 0; s < segmentsN; s++) { - var w = segmentWs.pfValue[s]; - var d = segmentDs.pfValue[s]; - - var w1 = 1 - w; - var w2 = w; - - var midptPts = edgeDistances === 'node-position' ? posPts : midptSrcPts; - - var adjustedMidpt = { - x: midptPts.x1 * w1 + midptPts.x2 * w2, - y: midptPts.y1 * w1 + midptPts.y2 * w2 - }; - - rs.segpts.push(adjustedMidpt.x + vectorNormInverse.x * d, adjustedMidpt.y + vectorNormInverse.y * d); - } - - // Straight edge - } else if (pairEdges.length % 2 === 1 && i === Math.floor(pairEdges.length / 2) && !edgeIsUnbundled) { - - rs.edgeType = 'straight'; - } else { - // (Multi)bezier - - var multi = edgeIsUnbundled; - - rs.edgeType = multi ? 'multibezier' : 'bezier'; - rs.ctrlpts = []; - - for (var b = 0; b < bezierN; b++) { - var normctrlptDist = (0.5 - pairEdges.length / 2 + i) * stepSize; - var manctrlptDist; - var sign = math.signum(normctrlptDist); - - if (multi) { - ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[b] : stepSize; // fall back on step size - ctrlptWeight = ctrlptWs.value[b]; - } - - if (edgeIsUnbundled) { - // multi or single unbundled - manctrlptDist = ctrlptDist; - } else { - manctrlptDist = ctrlptDist !== undefined ? sign * ctrlptDist : undefined; - } - - var distanceFromMidpoint = manctrlptDist !== undefined ? manctrlptDist : normctrlptDist; - - var w1 = 1 - ctrlptWeight; - var w2 = ctrlptWeight; - - if (edgeIsSwapped) { - var temp = w1; - w1 = w2; - w2 = temp; - } - - var midptPts = edgeDistances === 'node-position' ? posPts : midptSrcPts; - - var adjustedMidpt = { - x: midptPts.x1 * w1 + midptPts.x2 * w2, - y: midptPts.y1 * w1 + midptPts.y2 * w2 - }; - - rs.ctrlpts.push(adjustedMidpt.x + vectorNormInverse.x * distanceFromMidpoint, adjustedMidpt.y + vectorNormInverse.y * distanceFromMidpoint); - } - } - - // find endpts for edge - this.findEndpoints(edge); - - var badStart = !is.number(rs.startX) || !is.number(rs.startY); - var badAStart = !is.number(rs.arrowStartX) || !is.number(rs.arrowStartY); - var badEnd = !is.number(rs.endX) || !is.number(rs.endY); - var badAEnd = !is.number(rs.arrowEndX) || !is.number(rs.arrowEndY); - - var minCpADistFactor = 3; - var arrowW = this.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.arrowShapeWidth; - var minCpADist = minCpADistFactor * arrowW; - - if (rs.edgeType === 'bezier') { - var startACpDist = math.dist({ x: rs.ctrlpts[0], y: rs.ctrlpts[1] }, { x: rs.startX, y: rs.startY }); - var closeStartACp = startACpDist < minCpADist; - var endACpDist = math.dist({ x: rs.ctrlpts[0], y: rs.ctrlpts[1] }, { x: rs.endX, y: rs.endY }); - var closeEndACp = endACpDist < minCpADist; - - var overlapping = false; - - if (badStart || badAStart || closeStartACp) { - overlapping = true; - - // project control point along line from src centre to outside the src shape - // (otherwise intersection will yield nothing) - var cpD = { // delta - x: rs.ctrlpts[0] - srcPos.x, - y: rs.ctrlpts[1] - srcPos.y - }; - var cpL = Math.sqrt(cpD.x * cpD.x + cpD.y * cpD.y); // length of line - var cpM = { // normalised delta - x: cpD.x / cpL, - y: cpD.y / cpL - }; - var radius = Math.max(srcW, srcH); - var cpProj = { // *2 radius guarantees outside shape - x: rs.ctrlpts[0] + cpM.x * 2 * radius, - y: rs.ctrlpts[1] + cpM.y * 2 * radius - }; - - var srcCtrlPtIntn = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, cpProj.x, cpProj.y, 0); - - if (closeStartACp) { - rs.ctrlpts[0] = rs.ctrlpts[0] + cpM.x * (minCpADist - startACpDist); - rs.ctrlpts[1] = rs.ctrlpts[1] + cpM.y * (minCpADist - startACpDist); - } else { - rs.ctrlpts[0] = srcCtrlPtIntn[0] + cpM.x * minCpADist; - rs.ctrlpts[1] = srcCtrlPtIntn[1] + cpM.y * minCpADist; - } - } - - if (badEnd || badAEnd || closeEndACp) { - overlapping = true; - - // project control point along line from tgt centre to outside the tgt shape - // (otherwise intersection will yield nothing) - var cpD = { // delta - x: rs.ctrlpts[0] - tgtPos.x, - y: rs.ctrlpts[1] - tgtPos.y - }; - var cpL = Math.sqrt(cpD.x * cpD.x + cpD.y * cpD.y); // length of line - var cpM = { // normalised delta - x: cpD.x / cpL, - y: cpD.y / cpL - }; - var radius = Math.max(srcW, srcH); - var cpProj = { // *2 radius guarantees outside shape - x: rs.ctrlpts[0] + cpM.x * 2 * radius, - y: rs.ctrlpts[1] + cpM.y * 2 * radius - }; - - var tgtCtrlPtIntn = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, cpProj.x, cpProj.y, 0); - - if (closeEndACp) { - rs.ctrlpts[0] = rs.ctrlpts[0] + cpM.x * (minCpADist - endACpDist); - rs.ctrlpts[1] = rs.ctrlpts[1] + cpM.y * (minCpADist - endACpDist); - } else { - rs.ctrlpts[0] = tgtCtrlPtIntn[0] + cpM.x * minCpADist; - rs.ctrlpts[1] = tgtCtrlPtIntn[1] + cpM.y * minCpADist; - } - } - - if (overlapping) { - // recalc endpts - this.findEndpoints(edge); - } - } - - if (rs.edgeType === 'multibezier' || rs.edgeType === 'bezier' || rs.edgeType === 'self' || rs.edgeType === 'compound') { - rs.allpts = []; - - rs.allpts.push(rs.startX, rs.startY); - - for (var b = 0; b + 1 < rs.ctrlpts.length; b += 2) { - // ctrl pt itself - rs.allpts.push(rs.ctrlpts[b], rs.ctrlpts[b + 1]); - - // the midpt between ctrlpts as intermediate destination pts - if (b + 3 < rs.ctrlpts.length) { - rs.allpts.push((rs.ctrlpts[b] + rs.ctrlpts[b + 2]) / 2, (rs.ctrlpts[b + 1] + rs.ctrlpts[b + 3]) / 2); - } - } - - rs.allpts.push(rs.endX, rs.endY); - - var m, mt; - if (rs.ctrlpts.length / 2 % 2 === 0) { - m = rs.allpts.length / 2 - 1; - - rs.midX = rs.allpts[m]; - rs.midY = rs.allpts[m + 1]; - } else { - m = rs.allpts.length / 2 - 3; - mt = 0.5; - - rs.midX = math.qbezierAt(rs.allpts[m], rs.allpts[m + 2], rs.allpts[m + 4], mt); - rs.midY = math.qbezierAt(rs.allpts[m + 1], rs.allpts[m + 3], rs.allpts[m + 5], mt); - } - } else if (rs.edgeType === 'straight') { - // need to calc these after endpts - rs.allpts = [rs.startX, rs.startY, rs.endX, rs.endY]; - - // default midpt for labels etc - rs.midX = (rs.startX + rs.endX + rs.arrowStartX + rs.arrowEndX) / 4; - rs.midY = (rs.startY + rs.endY + rs.arrowStartY + rs.arrowEndY) / 4; - } else if (rs.edgeType === 'segments') { - rs.allpts = []; - rs.allpts.push(rs.startX, rs.startY); - rs.allpts.push.apply(rs.allpts, rs.segpts); - rs.allpts.push(rs.endX, rs.endY); - - if (rs.segpts.length % 4 === 0) { - var i2 = rs.segpts.length / 2; - var i1 = i2 - 2; - - rs.midX = (rs.segpts[i1] + rs.segpts[i2]) / 2; - rs.midY = (rs.segpts[i1 + 1] + rs.segpts[i2 + 1]) / 2; - } else { - var i1 = rs.segpts.length / 2 - 1; - - rs.midX = rs.segpts[i1]; - rs.midY = rs.segpts[i1 + 1]; - } - } - - this.storeEdgeProjections(edge); - this.calculateArrowAngles(edge); - } // if point cache miss - - this.recalculateEdgeLabelProjections(edge); - this.calculateLabelAngles(edge); - } // for pair edges - } // for pair ids - - for (var i = 0; i < haystackEdges.length; i++) { - var edge = haystackEdges[i]; - var _p = edge._private; - var rscratch = _p.rscratch; - var rs = rscratch; - - if (!rscratch.haystack) { - var angle = Math.random() * 2 * Math.PI; - - rscratch.source = { - x: Math.cos(angle), - y: Math.sin(angle) - }; - - var angle = Math.random() * 2 * Math.PI; - - rscratch.target = { - x: Math.cos(angle), - y: Math.sin(angle) - }; - } - - var src = _p.source; - var tgt = _p.target; - var srcPos = src.position(); - var tgtPos = tgt.position(); - var srcW = src.width(); - var tgtW = tgt.width(); - var srcH = src.height(); - var tgtH = tgt.height(); - var radius = edge.pstyle('haystack-radius').value; - var halfRadius = radius / 2; // b/c have to half width/height - - rs.haystackPts = rs.allpts = [rs.source.x * srcW * halfRadius + srcPos.x, rs.source.y * srcH * halfRadius + srcPos.y, rs.target.x * tgtW * halfRadius + tgtPos.x, rs.target.y * tgtH * halfRadius + tgtPos.y]; - - rs.midX = (rs.allpts[0] + rs.allpts[2]) / 2; - rs.midY = (rs.allpts[1] + rs.allpts[3]) / 2; - - // always override as haystack in case set to different type previously - rscratch.edgeType = rscratch.lastCurveStyle = 'haystack'; - rscratch.haystack = true; - - this.storeEdgeProjections(edge); - this.calculateArrowAngles(edge); - this.recalculateEdgeLabelProjections(edge); - this.calculateLabelAngles(edge); - } -}; - -function getPts(pts) { - var retPts = []; - - if (pts == null) { - return; - } - - for (var i = 0; i < pts.length; i += 2) { - var x = pts[i]; - var y = pts[i + 1]; - - retPts.push({ x: x, y: y }); - } - - return retPts; -} - -BRp.getSegmentPoints = function (edge) { - var rs = edge[0]._private.rscratch; - var type = rs.edgeType; - - if (type === 'segments') { - return getPts(rs.segpts); - } -}; - -BRp.getControlPoints = function (edge) { - var rs = edge[0]._private.rscratch; - var type = rs.edgeType; - - if (type === 'bezier' || type === 'multibezier') { - return getPts(rs.ctrlpts); - } -}; - -BRp.getEdgeMidpoint = function (edge) { - var rs = edge[0]._private.rscratch; - - return { - x: rs.midX, - y: rs.midY - }; -}; - -module.exports = BRp; - -/***/ }), -/* 90 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var math = __webpack_require__(2); -var is = __webpack_require__(0); - -var BRp = {}; - -BRp.manualEndptToPx = function (node, prop) { - var r = this; - var npos = node.position(); - var w = node.outerWidth(); - var h = node.outerHeight(); - - if (prop.value.length === 2) { - var p = [prop.pfValue[0], prop.pfValue[1]]; - - if (prop.units[0] === '%') { - p[0] = p[0] * w; - } - - if (prop.units[1] === '%') { - p[1] = p[1] * h; - } - - p[0] += npos.x; - p[1] += npos.y; - - return p; - } else { - var angle = prop.pfValue[0]; - - angle = -Math.PI / 2 + angle; // start at 12 o'clock - - var l = 2 * Math.max(w, h); - - var _p = [npos.x + Math.cos(angle) * l, npos.y + Math.sin(angle) * l]; - - return r.nodeShapes[this.getNodeShape(node)].intersectLine(npos.x, npos.y, w, h, _p[0], _p[1], 0); - } -}; - -BRp.findEndpoints = function (edge) { - var r = this; - var intersect = void 0; - - var source = edge.source()[0]; - var target = edge.target()[0]; - - var srcPos = source.position(); - var tgtPos = target.position(); - - var tgtArShape = edge.pstyle('target-arrow-shape').value; - var srcArShape = edge.pstyle('source-arrow-shape').value; - - var tgtDist = edge.pstyle('target-distance-from-node').pfValue; - var srcDist = edge.pstyle('source-distance-from-node').pfValue; - - var rs = edge._private.rscratch; - - var et = rs.edgeType; - var self = et === 'self' || et === 'compound'; - var bezier = et === 'bezier' || et === 'multibezier' || self; - var multi = et !== 'bezier'; - var lines = et === 'straight' || et === 'segments'; - var segments = et === 'segments'; - var hasEndpts = bezier || multi || lines; - var srcManEndpt = edge.pstyle('source-endpoint'); - var srcManEndptVal = self ? 'outside-to-node' : srcManEndpt.value; - var tgtManEndpt = edge.pstyle('target-endpoint'); - var tgtManEndptVal = self ? 'outside-to-node' : tgtManEndpt.value; - - rs.srcManEndpt = srcManEndpt; - rs.tgtManEndpt = tgtManEndpt; - - var p1 = void 0; // last known point of edge on target side - var p2 = void 0; // last known point of edge on source side - - var p1_i = void 0; // point to intersect with target shape - var p2_i = void 0; // point to intersect with source shape - - if (bezier) { - var cpStart = [rs.ctrlpts[0], rs.ctrlpts[1]]; - var cpEnd = multi ? [rs.ctrlpts[rs.ctrlpts.length - 2], rs.ctrlpts[rs.ctrlpts.length - 1]] : cpStart; - - p1 = cpEnd; - p2 = cpStart; - } else if (lines) { - var srcArrowFromPt = !segments ? [tgtPos.x, tgtPos.y] : rs.segpts.slice(0, 2); - var tgtArrowFromPt = !segments ? [srcPos.x, srcPos.y] : rs.segpts.slice(rs.segpts.length - 2); - - p1 = tgtArrowFromPt; - p2 = srcArrowFromPt; - } - - if (tgtManEndptVal === 'inside-to-node') { - intersect = [tgtPos.x, tgtPos.y]; - } else if (tgtManEndpt.units) { - intersect = this.manualEndptToPx(target, tgtManEndpt); - } else if (tgtManEndptVal === 'outside-to-line') { - intersect = rs.tgtIntn; // use cached value from ctrlpt calc - } else { - if (tgtManEndptVal === 'outside-to-node') { - p1_i = p1; - } else if (tgtManEndptVal === 'outside-to-line') { - p1_i = [srcPos.x, srcPos.y]; - } - - intersect = r.nodeShapes[this.getNodeShape(target)].intersectLine(tgtPos.x, tgtPos.y, target.outerWidth(), target.outerHeight(), p1_i[0], p1_i[1], 0); - } - - var arrowEnd = math.shortenIntersection(intersect, p1, r.arrowShapes[tgtArShape].spacing(edge) + tgtDist); - var edgeEnd = math.shortenIntersection(intersect, p1, r.arrowShapes[tgtArShape].gap(edge) + tgtDist); - - rs.endX = edgeEnd[0]; - rs.endY = edgeEnd[1]; - - rs.arrowEndX = arrowEnd[0]; - rs.arrowEndY = arrowEnd[1]; - - if (srcManEndptVal === 'inside-to-node') { - intersect = [srcPos.x, srcPos.y]; - } else if (srcManEndpt.units) { - intersect = this.manualEndptToPx(source, srcManEndpt); - } else if (srcManEndptVal === 'outside-to-line') { - intersect = rs.srcIntn; // use cached value from ctrlpt calc - } else { - if (srcManEndptVal === 'outside-to-node') { - p2_i = p2; - } else if (srcManEndptVal === 'outside-to-line') { - p2_i = [tgtPos.x, tgtPos.y]; - } - - intersect = r.nodeShapes[this.getNodeShape(source)].intersectLine(srcPos.x, srcPos.y, source.outerWidth(), source.outerHeight(), p2_i[0], p2_i[1], 0); - } - - var arrowStart = math.shortenIntersection(intersect, p2, r.arrowShapes[srcArShape].spacing(edge) + srcDist); - var edgeStart = math.shortenIntersection(intersect, p2, r.arrowShapes[srcArShape].gap(edge) + srcDist); - - rs.startX = edgeStart[0]; - rs.startY = edgeStart[1]; - - rs.arrowStartX = arrowStart[0]; - rs.arrowStartY = arrowStart[1]; - - if (hasEndpts) { - if (!is.number(rs.startX) || !is.number(rs.startY) || !is.number(rs.endX) || !is.number(rs.endY)) { - rs.badLine = true; - } else { - rs.badLine = false; - } - } -}; - -BRp.getSourceEndpoint = function (edge) { - var rs = edge[0]._private.rscratch; - - switch (rs.edgeType) { - case 'haystack': - return { - x: rs.haystackPts[0], - y: rs.haystackPts[1] - }; - default: - return { - x: rs.arrowStartX, - y: rs.arrowStartY - }; - } -}; - -BRp.getTargetEndpoint = function (edge) { - var rs = edge[0]._private.rscratch; - - switch (rs.edgeType) { - case 'haystack': - return { - x: rs.haystackPts[2], - y: rs.haystackPts[3] - }; - default: - return { - x: rs.arrowEndX, - y: rs.arrowEndY - }; - } -}; - -module.exports = BRp; - -/***/ }), -/* 91 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var math = __webpack_require__(2); - -var BRp = {}; - -function pushBezierPts(r, edge, pts) { - var qbezierAt = function qbezierAt(p1, p2, p3, t) { - return math.qbezierAt(p1, p2, p3, t); - }; - var _p = edge._private; - var bpts = _p.rstyle.bezierPts; - - for (var i = 0; i < r.bezierProjPcts.length; i++) { - var p = r.bezierProjPcts[i]; - - bpts.push({ - x: qbezierAt(pts[0], pts[2], pts[4], p), - y: qbezierAt(pts[1], pts[3], pts[5], p) - }); - } -} - -BRp.storeEdgeProjections = function (edge) { - var _p = edge._private; - var rs = _p.rscratch; - var et = rs.edgeType; - - // clear the cached points state - _p.rstyle.bezierPts = null; - _p.rstyle.linePts = null; - _p.rstyle.haystackPts = null; - - if (et === 'multibezier' || et === 'bezier' || et === 'self' || et === 'compound') { - var bpts = _p.rstyle.bezierPts = []; // jshint ignore:line - - for (var i = 0; i + 5 < rs.allpts.length; i += 4) { - pushBezierPts(this, edge, rs.allpts.slice(i, i + 6)); - } - } else if (et === 'segments') { - var lpts = _p.rstyle.linePts = []; - - for (var i = 0; i + 1 < rs.allpts.length; i += 2) { - lpts.push({ - x: rs.allpts[i], - y: rs.allpts[i + 1] - }); - } - } else if (et === 'haystack') { - var hpts = rs.haystackPts; - - _p.rstyle.haystackPts = [{ x: hpts[0], y: hpts[1] }, { x: hpts[2], y: hpts[3] }]; - } - - _p.rstyle.arrowWidth = this.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.arrowShapeWidth; -}; - -BRp.recalculateEdgeProjections = function (edges) { - this.findEdgeControlPoints(edges); -}; - -module.exports = BRp; - -/***/ }), -/* 92 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); - -var BRp = {}; - -[__webpack_require__(87), __webpack_require__(88), __webpack_require__(89), __webpack_require__(90), __webpack_require__(91), __webpack_require__(93), __webpack_require__(94), __webpack_require__(95), __webpack_require__(96)].forEach(function (props) { - util.extend(BRp, props); -}); - -module.exports = BRp; - -/***/ }), -/* 93 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var math = __webpack_require__(2); -var is = __webpack_require__(0); -var util = __webpack_require__(1); - -var BRp = {}; - -BRp.recalculateNodeLabelProjection = function (node) { - var content = node.pstyle('label').strValue; - - if (is.emptyString(content)) { - return; - } - - var textX, textY; - var _p = node._private; - var nodeWidth = node.width(); - var nodeHeight = node.height(); - var padding = node.padding(); - var nodePos = node.position(); - var textHalign = node.pstyle('text-halign').strValue; - var textValign = node.pstyle('text-valign').strValue; - var rs = _p.rscratch; - var rstyle = _p.rstyle; - - switch (textHalign) { - case 'left': - textX = nodePos.x - nodeWidth / 2 - padding; - break; - - case 'right': - textX = nodePos.x + nodeWidth / 2 + padding; - break; - - default: - // e.g. center - textX = nodePos.x; - } - - switch (textValign) { - case 'top': - textY = nodePos.y - nodeHeight / 2 - padding; - break; - - case 'bottom': - textY = nodePos.y + nodeHeight / 2 + padding; - break; - - default: - // e.g. middle - textY = nodePos.y; - } - - rs.labelX = textX; - rs.labelY = textY; - rstyle.labelX = textX; - rstyle.labelY = textY; - - this.applyLabelDimensions(node); -}; - -BRp.recalculateEdgeLabelProjections = function (edge) { - var p; - var _p = edge._private; - var rs = _p.rscratch; - var r = this; - var content = { - mid: edge.pstyle('label').strValue, - source: edge.pstyle('source-label').strValue, - target: edge.pstyle('target-label').strValue - }; - - if (content.mid || content.source || content.target) { - // then we have to calculate... - } else { - return; // no labels => no calcs - } - - // add center point to style so bounding box calculations can use it - // - p = { - x: rs.midX, - y: rs.midY - }; - - var setRs = function setRs(propName, prefix, value) { - util.setPrefixedProperty(_p.rscratch, propName, prefix, value); - util.setPrefixedProperty(_p.rstyle, propName, prefix, value); - }; - - setRs('labelX', null, p.x); - setRs('labelY', null, p.y); - - var createControlPointInfo = function createControlPointInfo() { - if (createControlPointInfo.cache) { - return createControlPointInfo.cache; - } // use cache so only 1x per edge - - var ctrlpts = []; - - // store each ctrlpt info init - for (var i = 0; i + 5 < rs.allpts.length; i += 4) { - var p0 = { x: rs.allpts[i], y: rs.allpts[i + 1] }; - var p1 = { x: rs.allpts[i + 2], y: rs.allpts[i + 3] }; // ctrlpt - var p2 = { x: rs.allpts[i + 4], y: rs.allpts[i + 5] }; - - ctrlpts.push({ - p0: p0, - p1: p1, - p2: p2, - startDist: 0, - length: 0, - segments: [] - }); - } - - var bpts = _p.rstyle.bezierPts; - var nProjs = r.bezierProjPcts.length; - - function addSegment(cp, p0, p1, t0, t1) { - var length = math.dist(p0, p1); - var prevSegment = cp.segments[cp.segments.length - 1]; - var segment = { - p0: p0, - p1: p1, - t0: t0, - t1: t1, - startDist: prevSegment ? prevSegment.startDist + prevSegment.length : 0, - length: length - }; - - cp.segments.push(segment); - - cp.length += length; - } - - // update each ctrlpt with segment info - for (var i = 0; i < ctrlpts.length; i++) { - var cp = ctrlpts[i]; - var prevCp = ctrlpts[i - 1]; - - if (prevCp) { - cp.startDist = prevCp.startDist + prevCp.length; - } - - addSegment(cp, cp.p0, bpts[i * nProjs], 0, r.bezierProjPcts[0]); // first - - for (var j = 0; j < nProjs - 1; j++) { - addSegment(cp, bpts[i * nProjs + j], bpts[i * nProjs + j + 1], r.bezierProjPcts[j], r.bezierProjPcts[j + 1]); - } - - addSegment(cp, bpts[i * nProjs + nProjs - 1], cp.p2, r.bezierProjPcts[nProjs - 1], 1); // last - } - - return createControlPointInfo.cache = ctrlpts; - }; - - var calculateEndProjection = function calculateEndProjection(prefix) { - var angle; - var isSrc = prefix === 'source'; - - if (!content[prefix]) { - return; - } - - var offset = edge.pstyle(prefix + '-text-offset').pfValue; - - var lineAngle = function lineAngle(p0, p1) { - var dx = p1.x - p0.x; - var dy = p1.y - p0.y; - - return Math.atan(dy / dx); - }; - - var bezierAngle = function bezierAngle(p0, p1, p2, t) { - var t0 = math.bound(0, t - 0.001, 1); - var t1 = math.bound(0, t + 0.001, 1); - - var lp0 = math.qbezierPtAt(p0, p1, p2, t0); - var lp1 = math.qbezierPtAt(p0, p1, p2, t1); - - return lineAngle(lp0, lp1); - }; - - switch (rs.edgeType) { - case 'self': - case 'compound': - case 'bezier': - case 'multibezier': - var cps = createControlPointInfo(); - var selected; - var startDist = 0; - var totalDist = 0; - - // find the segment we're on - for (var i = 0; i < cps.length; i++) { - var cp = cps[isSrc ? i : cps.length - 1 - i]; - - for (var j = 0; j < cp.segments.length; j++) { - var seg = cp.segments[isSrc ? j : cp.segments.length - 1 - j]; - var lastSeg = i === cps.length - 1 && j === cp.segments.length - 1; - - startDist = totalDist; - totalDist += seg.length; - - if (totalDist >= offset || lastSeg) { - selected = { cp: cp, segment: seg }; - break; - } - } - - if (selected) { - break; - } - } - - var cp = selected.cp; - var seg = selected.segment; - var tSegment = (offset - startDist) / seg.length; - var segDt = seg.t1 - seg.t0; - var t = isSrc ? seg.t0 + segDt * tSegment : seg.t1 - segDt * tSegment; - - t = math.bound(0, t, 1); - p = math.qbezierPtAt(cp.p0, cp.p1, cp.p2, t); - angle = bezierAngle(cp.p0, cp.p1, cp.p2, t, p); - - break; - - case 'straight': - case 'segments': - case 'haystack': - var d = 0, - di, - d0; - var p0, p1; - var l = rs.allpts.length; - - for (var i = 0; i + 3 < l; i += 2) { - if (isSrc) { - p0 = { x: rs.allpts[i], y: rs.allpts[i + 1] }; - p1 = { x: rs.allpts[i + 2], y: rs.allpts[i + 3] }; - } else { - p0 = { x: rs.allpts[l - 2 - i], y: rs.allpts[l - 1 - i] }; - p1 = { x: rs.allpts[l - 4 - i], y: rs.allpts[l - 3 - i] }; - } - - di = math.dist(p0, p1); - d0 = d; - d += di; - - if (d >= offset) { - break; - } - } - - var pD = offset - d0; - var t = pD / di; - - t = math.bound(0, t, 1); - p = math.lineAt(p0, p1, t); - angle = lineAngle(p0, p1); - - break; - } - - setRs('labelX', prefix, p.x); - setRs('labelY', prefix, p.y); - setRs('labelAutoAngle', prefix, angle); - }; - - calculateEndProjection('source'); - calculateEndProjection('target'); - - this.applyLabelDimensions(edge); -}; - -BRp.applyLabelDimensions = function (ele) { - this.applyPrefixedLabelDimensions(ele); - - if (ele.isEdge()) { - this.applyPrefixedLabelDimensions(ele, 'source'); - this.applyPrefixedLabelDimensions(ele, 'target'); - } -}; - -BRp.applyPrefixedLabelDimensions = function (ele, prefix) { - var _p = ele._private; - - var text = this.getLabelText(ele, prefix); - var labelDims = this.calculateLabelDimensions(ele, text); - - util.setPrefixedProperty(_p.rstyle, 'labelWidth', prefix, labelDims.width); - util.setPrefixedProperty(_p.rscratch, 'labelWidth', prefix, labelDims.width); - - util.setPrefixedProperty(_p.rstyle, 'labelHeight', prefix, labelDims.height); - util.setPrefixedProperty(_p.rscratch, 'labelHeight', prefix, labelDims.height); -}; - -BRp.getLabelText = function (ele, prefix) { - var _p = ele._private; - var pfd = prefix ? prefix + '-' : ''; - var text = ele.pstyle(pfd + 'label').strValue; - var textTransform = ele.pstyle('text-transform').value; - var rscratch = function rscratch(propName, value) { - if (value) { - util.setPrefixedProperty(_p.rscratch, propName, prefix, value); - return value; - } else { - return util.getPrefixedProperty(_p.rscratch, propName, prefix); - } - }; - - if (textTransform == 'none') { - // passthrough - } else if (textTransform == 'uppercase') { - text = text.toUpperCase(); - } else if (textTransform == 'lowercase') { - text = text.toLowerCase(); - } - - var wrapStyle = ele.pstyle('text-wrap').value; - - if (wrapStyle === 'wrap') { - //console.log('wrap'); - - var labelKey = rscratch('labelKey'); - - // save recalc if the label is the same as before - if (labelKey && rscratch('labelWrapKey') === labelKey) { - // console.log('wrap cache hit'); - return rscratch('labelWrapCachedText'); - } - // console.log('wrap cache miss'); - - var lines = text.split('\n'); - var maxW = ele.pstyle('text-max-width').pfValue; - var wrappedLines = []; - - for (var l = 0; l < lines.length; l++) { - var line = lines[l]; - var lineDims = this.calculateLabelDimensions(ele, line, 'line=' + line); - var lineW = lineDims.width; - - if (lineW > maxW) { - // line is too long - var words = line.split(/\s+/); // NB: assume collapsed whitespace into single space - var subline = ''; - - for (var w = 0; w < words.length; w++) { - var word = words[w]; - var testLine = subline.length === 0 ? word : subline + ' ' + word; - var testDims = this.calculateLabelDimensions(ele, testLine, 'testLine=' + testLine); - var testW = testDims.width; - - if (testW <= maxW) { - // word fits on current line - subline += word + ' '; - } else { - // word starts new line - wrappedLines.push(subline); - subline = word + ' '; - } - } - - // if there's remaining text, put it in a wrapped line - if (!subline.match(/^\s+$/)) { - wrappedLines.push(subline); - } - } else { - // line is already short enough - wrappedLines.push(line); - } - } // for - - rscratch('labelWrapCachedLines', wrappedLines); - text = rscratch('labelWrapCachedText', wrappedLines.join('\n')); - rscratch('labelWrapKey', labelKey); - - // console.log(text) - } else if (wrapStyle === 'ellipsis') { - var maxW = ele.pstyle('text-max-width').pfValue; - var ellipsized = ''; - var ellipsis = '\u2026'; - var incLastCh = false; - - for (var i = 0; i < text.length; i++) { - var widthWithNextCh = this.calculateLabelDimensions(ele, ellipsized + text[i] + ellipsis).width; - - if (widthWithNextCh > maxW) { - break; - } - - ellipsized += text[i]; - - if (i === text.length - 1) { - incLastCh = true; - } - } - - if (!incLastCh) { - ellipsized += ellipsis; - } - - return ellipsized; - } // if ellipsize - - return text; -}; - -BRp.calculateLabelDimensions = function (ele, text, extraKey) { - var r = this; - - var cacheKey = ele._private.labelStyleKey + '$@$' + text; - - if (extraKey) { - cacheKey += '$@$' + extraKey; - } - - var cache = r.labelDimCache || (r.labelDimCache = {}); - - if (cache[cacheKey]) { - return cache[cacheKey]; - } - - var sizeMult = 1; // increase the scale to increase accuracy w.r.t. zoomed text - var fStyle = ele.pstyle('font-style').strValue; - var size = sizeMult * ele.pstyle('font-size').pfValue + 'px'; - var family = ele.pstyle('font-family').strValue; - var weight = ele.pstyle('font-weight').strValue; - - var div = this.labelCalcDiv; - - if (!div) { - div = this.labelCalcDiv = document.createElement('div'); // eslint-disable-line no-undef - document.body.appendChild(div); // eslint-disable-line no-undef - } - - var ds = div.style; - - // from ele style - ds.fontFamily = family; - ds.fontStyle = fStyle; - ds.fontSize = size; - ds.fontWeight = weight; - - // forced style - ds.position = 'absolute'; - ds.left = '-9999px'; - ds.top = '-9999px'; - ds.zIndex = '-1'; - ds.visibility = 'hidden'; - ds.pointerEvents = 'none'; - ds.padding = '0'; - ds.lineHeight = '1'; - - if (ele.pstyle('text-wrap').value === 'wrap') { - ds.whiteSpace = 'pre'; // so newlines are taken into account - } else { - ds.whiteSpace = 'normal'; - } - - // put label content in div - div.textContent = text; - - cache[cacheKey] = { - width: Math.ceil(div.clientWidth / sizeMult), - height: Math.ceil(div.clientHeight / sizeMult) - }; - - return cache[cacheKey]; -}; - -BRp.calculateLabelAngles = function (ele) { - var _p = ele._private; - var rs = _p.rscratch; - var isEdge = ele.isEdge(); - var rot = ele.pstyle('text-rotation'); - var rotStr = rot.strValue; - - if (rotStr === 'none') { - rs.labelAngle = rs.sourceLabelAngle = rs.targetLabelAngle = 0; - } else if (isEdge && rotStr === 'autorotate') { - rs.labelAngle = Math.atan(rs.midDispY / rs.midDispX); - rs.sourceLabelAngle = rs.sourceLabelAutoAngle; - rs.targetLabelAngle = rs.targetLabelAutoAngle; - } else if (rotStr === 'autorotate') { - rs.labelAngle = rs.sourceLabelAngle = rs.targetLabelAngle = 0; - } else { - rs.labelAngle = rs.sourceLabelAngle = rs.targetLabelAngle = rot.pfValue; - } -}; - -module.exports = BRp; - -/***/ }), -/* 94 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var BRp = {}; - -BRp.getNodeShape = function (node) { - var r = this; - var shape = node.pstyle('shape').value; - - if (node.isParent()) { - if (shape === 'rectangle' || shape === 'roundrectangle' || shape === 'cutrectangle' || shape === 'barrel') { - return shape; - } else { - return 'rectangle'; - } - } - - if (shape === 'polygon') { - var points = node.pstyle('shape-polygon-points').value; - - return r.nodeShapes.makePolygon(points).name; - } - - return shape; -}; - -module.exports = BRp; - -/***/ }), -/* 95 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var BRp = {}; - -BRp.registerCalculationListeners = function () { - var cy = this.cy; - var elesToUpdate = cy.collection(); - var r = this; - - var enqueue = function enqueue(eles, e, dirtyStyleCaches) { - elesToUpdate.merge(eles); - - if (dirtyStyleCaches === true || dirtyStyleCaches === undefined) { - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - var _p = ele._private; - var rstyle = _p.rstyle; - - rstyle.clean = false; - _p.bbCache = null; - - var evts = rstyle.dirtyEvents = rstyle.dirtyEvents || { length: 0 }; - - if (!evts[e.type]) { - evts[e.type] = true; - evts.length++; - } - } - } - }; - - r.binder(cy) - // nodes - - .on('position.* style.* free.* bounds.*', 'node', function onDirtyModNode(e) { - var node = e.target; - - enqueue(node, e); - enqueue(node.connectedEdges(), e); - }).on('add.*', 'node', function onDirtyAddNode(e) { - var ele = e.target; - - enqueue(ele, e); - }).on('background.*', 'node', function onDirtyBgNode(e) { - var ele = e.target; - - enqueue(ele, e, false); - }) - - // edges - - .on('add.* style.*', 'edge', function onDirtyEdge(e) { - var edge = e.target; - - enqueue(edge, e); - enqueue(edge.parallelEdges(), e); - }).on('remove.*', 'edge', function onDirtyRemoveEdge(e) { - var edge = e.target; - var pEdges = edge.parallelEdges(); - - for (var i = 0; i < pEdges.length; i++) { - var pEdge = pEdges[i]; - - if (!pEdge.removed()) { - enqueue(pEdge, e); - } - } - }) - - // manual dirtying - - .on('dirty.*', 'node', function onDirtyEle(e) { - var ele = e.target; - - enqueue(ele, e); - }); - - var updateEleCalcs = function updateEleCalcs(willDraw) { - if (willDraw) { - var fns = r.onUpdateEleCalcsFns; - - if (fns) { - for (var i = 0; i < fns.length; i++) { - var fn = fns[i]; - - fn(willDraw, elesToUpdate); - } - } - - r.recalculateRenderedStyle(elesToUpdate, false); - - for (var i = 0; i < elesToUpdate.length; i++) { - elesToUpdate[i]._private.rstyle.dirtyEvents = null; - } - - elesToUpdate = cy.collection(); - } - }; - - r.beforeRender(updateEleCalcs, r.beforeRenderPriorities.eleCalcs); -}; - -BRp.onUpdateEleCalcs = function (fn) { - var fns = this.onUpdateEleCalcsFns = this.onUpdateEleCalcsFns || []; - - fns.push(fn); -}; - -BRp.recalculateRenderedStyle = function (eles, useCache) { - var edges = []; - var nodes = []; - - // the renderer can't be used for calcs when destroyed, e.g. ele.boundingBox() - if (this.destroyed) { - return; - } - - // use cache by default for perf - if (useCache === undefined) { - useCache = true; - } - - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - var _p = ele._private; - var rstyle = _p.rstyle; - - // only update if dirty and in graph - if (useCache && rstyle.clean || ele.removed()) { - continue; - } - - // only update if not display: none - if (ele.pstyle('display').value === 'none') { - continue; - } - - if (_p.group === 'nodes') { - nodes.push(ele); - } else { - // edges - edges.push(ele); - } - - rstyle.clean = true; - // rstyle.dirtyEvents = null; - } - - // update node data from projections - for (var i = 0; i < nodes.length; i++) { - var ele = nodes[i]; - var _p = ele._private; - var rstyle = _p.rstyle; - var pos = ele.position(); - - this.recalculateNodeLabelProjection(ele); - - rstyle.nodeX = pos.x; - rstyle.nodeY = pos.y; - rstyle.nodeW = ele.pstyle('width').pfValue; - rstyle.nodeH = ele.pstyle('height').pfValue; - } - - this.recalculateEdgeProjections(edges); - - // update edge data from projections - for (var i = 0; i < edges.length; i++) { - var ele = edges[i]; - var _p = ele._private; - var rstyle = _p.rstyle; - var rs = _p.rscratch; - - this.recalculateEdgeLabelProjections(ele); - - // update rstyle positions - rstyle.srcX = rs.arrowStartX; - rstyle.srcY = rs.arrowStartY; - rstyle.tgtX = rs.arrowEndX; - rstyle.tgtY = rs.arrowEndY; - rstyle.midX = rs.midX; - rstyle.midY = rs.midY; - rstyle.labelAngle = rs.labelAngle; - rstyle.sourceLabelAngle = rs.sourceLabelAngle; - rstyle.targetLabelAngle = rs.targetLabelAngle; - } -}; - -module.exports = BRp; - -/***/ }), -/* 96 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var zIndexSort = __webpack_require__(14); - -var BRp = {}; - -BRp.updateCachedGrabbedEles = function () { - var eles = this.cachedZSortedEles; - - if (!eles) { - // just let this be recalculated on the next z sort tick - return; - } - - eles.drag = []; - eles.nondrag = []; - - var grabTargets = []; - - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - var rs = ele._private.rscratch; - - if (ele.grabbed() && !ele.isParent()) { - grabTargets.push(ele); - } else if (rs.inDragLayer) { - eles.drag.push(ele); - } else { - eles.nondrag.push(ele); - } - } - - // put the grab target nodes last so it's on top of its neighbourhood - for (var i = 0; i < grabTargets.length; i++) { - var ele = grabTargets[i]; - - eles.drag.push(ele); - } -}; - -BRp.invalidateCachedZSortedEles = function () { - this.cachedZSortedEles = null; -}; - -BRp.getCachedZSortedEles = function (forceRecalc) { - if (forceRecalc || !this.cachedZSortedEles) { - //console.time('cachezorder') - - var eles = this.cy.mutableElements().toArray(); - - eles.sort(zIndexSort); - - eles.interactive = eles.filter(function (ele) { - return ele.interactive(); - }); - - this.cachedZSortedEles = eles; - - this.updateCachedGrabbedEles(); - } else { - eles = this.cachedZSortedEles; - } - - return eles; -}; - -module.exports = BRp; - -/***/ }), -/* 97 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var BRp = {}; - -BRp.getCachedImage = function (url, crossOrigin, onLoad) { - var r = this; - var imageCache = r.imageCache = r.imageCache || {}; - var cache = imageCache[url]; - - if (cache) { - if (!cache.image.complete) { - cache.image.addEventListener('load', onLoad); - } - - return cache.image; - } else { - cache = imageCache[url] = imageCache[url] || {}; - - var image = cache.image = new Image(); // eslint-disable-line no-undef - - image.addEventListener('load', onLoad); - image.addEventListener('error', function () { - image.error = true; - }); - - // #1582 safari doesn't load data uris with crossOrigin properly - // https://bugs.webkit.org/show_bug.cgi?id=123978 - var dataUriPrefix = 'data:'; - var isDataUri = url.substring(0, dataUriPrefix.length).toLowerCase() === dataUriPrefix; - if (!isDataUri) { - image.crossOrigin = crossOrigin; // prevent tainted canvas - } - - image.src = url; - - return image; - } -}; - -module.exports = BRp; - -/***/ }), -/* 98 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); -var util = __webpack_require__(1); -var window = __webpack_require__(4); - -var BaseRenderer = function BaseRenderer(options) { - this.init(options); -}; -var BR = BaseRenderer; -var BRp = BR.prototype; - -BRp.clientFunctions = ['redrawHint', 'render', 'renderTo', 'matchCanvasSize', 'nodeShapeImpl', 'arrowShapeImpl']; - -BRp.init = function (options) { - var r = this; - - r.options = options; - - r.cy = options.cy; - - var ctr = r.container = options.cy.container(); - - // prepend a stylesheet in the head such that - if (window) { - var document = window.document; - var head = document.head; - var stylesheetId = '__________cytoscape_stylesheet'; - var className = '__________cytoscape_container'; - var stylesheetAlreadyExists = document.getElementById(stylesheetId) != null; - - if (ctr.className.indexOf(className) < 0) { - ctr.className = (ctr.className || '') + ' ' + className; - } - - if (!stylesheetAlreadyExists) { - var stylesheet = document.createElement('style'); - - stylesheet.id = stylesheetId; - stylesheet.innerHTML = '.' + className + ' { position: relative; }'; - - head.insertBefore(stylesheet, head.children[0]); // first so lowest priority - } - - var computedStyle = window.getComputedStyle(ctr); - var position = computedStyle.getPropertyValue('position'); - - if (position === 'static') { - util.error('A Cytoscape container has style position:static and so can not use UI extensions properly'); - } - } - - r.selection = [undefined, undefined, undefined, undefined, 0]; // Coordinates for selection box, plus enabled flag - - r.bezierProjPcts = [0.05, 0.225, 0.4, 0.5, 0.6, 0.775, 0.95]; - - //--Pointer-related data - r.hoverData = { down: null, last: null, - downTime: null, triggerMode: null, - dragging: false, - initialPan: [null, null], capture: false }; - - r.dragData = { possibleDragElements: [] }; - - r.touchData = { - start: null, capture: false, - - // These 3 fields related to tap, taphold events - startPosition: [null, null, null, null, null, null], - singleTouchStartTime: null, - singleTouchMoved: true, - - now: [null, null, null, null, null, null], - earlier: [null, null, null, null, null, null] - }; - - r.redraws = 0; - r.showFps = options.showFps; - r.debug = options.debug; - - r.hideEdgesOnViewport = options.hideEdgesOnViewport; - r.hideLabelsOnViewport = options.hideLabelsOnViewport; - r.textureOnViewport = options.textureOnViewport; - r.wheelSensitivity = options.wheelSensitivity; - r.motionBlurEnabled = options.motionBlur; // on by default - r.forcedPixelRatio = options.pixelRatio; - r.motionBlur = options.motionBlur; // for initial kick off - r.motionBlurOpacity = options.motionBlurOpacity; - r.motionBlurTransparency = 1 - r.motionBlurOpacity; - r.motionBlurPxRatio = 1; - r.mbPxRBlurry = 1; //0.8; - r.minMbLowQualFrames = 4; - r.fullQualityMb = false; - r.clearedForMotionBlur = []; - r.desktopTapThreshold = options.desktopTapThreshold; - r.desktopTapThreshold2 = options.desktopTapThreshold * options.desktopTapThreshold; - r.touchTapThreshold = options.touchTapThreshold; - r.touchTapThreshold2 = options.touchTapThreshold * options.touchTapThreshold; - r.tapholdDuration = 500; - - r.bindings = []; - r.beforeRenderCallbacks = []; - r.beforeRenderPriorities = { // higher priority execs before lower one - animations: 400, - eleCalcs: 300, - eleTxrDeq: 200, - lyrTxrDeq: 100 - }; - - r.registerNodeShapes(); - r.registerArrowShapes(); - r.registerCalculationListeners(); -}; - -BRp.notify = function (params) { - var types; - var r = this; - - // the renderer can't be notified after it's destroyed - if (this.destroyed) { - return; - } - - if (is.array(params.type)) { - types = params.type; - } else { - types = [params.type]; - } - - var has = {}; - for (var i = 0; i < types.length; i++) { - var type = types[i]; - - has[type] = true; - } // for - - if (has['init']) { - r.load(); - return; - } - - if (has['destroy']) { - r.destroy(); - return; - } - - if (has['add'] || has['remove'] || has['load'] || has['zorder']) { - r.invalidateCachedZSortedEles(); - } - - if (has['viewport']) { - r.redrawHint('select', true); - } - - if (has['load'] || has['resize']) { - r.invalidateContainerClientCoordsCache(); - r.matchCanvasSize(r.container); - } - - r.redrawHint('eles', true); - r.redrawHint('drag', true); - - this.startRenderLoop(); - - this.redraw(); -}; - -BRp.destroy = function () { - var r = this; - - r.destroyed = true; - - r.cy.stopAnimationLoop(); - - for (var i = 0; i < r.bindings.length; i++) { - var binding = r.bindings[i]; - var b = binding; - var tgt = b.target; - - (tgt.off || tgt.removeEventListener).apply(tgt, b.args); - } - - r.bindings = []; - r.beforeRenderCallbacks = []; - r.onUpdateEleCalcsFns = []; - - if (r.removeObserver) { - r.removeObserver.disconnect(); - } - - if (r.styleObserver) { - r.styleObserver.disconnect(); - } - - if (r.labelCalcDiv) { - try { - document.body.removeChild(r.labelCalcDiv); // eslint-disable-line no-undef - } catch (e) { - // ie10 issue #1014 - } - } -}; - -[__webpack_require__(86), __webpack_require__(92), __webpack_require__(97), __webpack_require__(99), __webpack_require__(100), __webpack_require__(101)].forEach(function (props) { - util.extend(BRp, props); -}); - -module.exports = BR; - -/***/ }), -/* 99 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); -var util = __webpack_require__(1); -var math = __webpack_require__(2); -var Event = __webpack_require__(15); - -var BRp = {}; - -BRp.registerBinding = function (target, event, handler, useCapture) { - var args = Array.prototype.slice.apply(arguments, [1]); // copy - var b = this.binder(target); - - return b.on.apply(b, args); -}; - -BRp.binder = function (tgt) { - var r = this; - - var tgtIsDom = tgt === window || tgt === document || tgt === document.body || is.domElement(tgt); - - if (r.supportsPassiveEvents == null) { - - // from https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection - var supportsPassive = false; - try { - var opts = Object.defineProperty({}, 'passive', { - get: function get() { - supportsPassive = true; - } - }); - - window.addEventListener('test', null, opts); - } catch (err) {} - - r.supportsPassiveEvents = supportsPassive; - } - - var on = function on(event, handler, useCapture) { - var args = Array.prototype.slice.call(arguments); - - if (tgtIsDom && r.supportsPassiveEvents) { - // replace useCapture w/ opts obj - args[2] = { - capture: useCapture != null ? useCapture : false, - passive: false, - once: false - }; - } - - r.bindings.push({ - target: tgt, - args: args - }); - - (tgt.addEventListener || tgt.on).apply(tgt, args); - - return this; - }; - - return { - on: on, - addEventListener: on, - addListener: on, - bind: on - }; -}; - -BRp.nodeIsDraggable = function (node) { - return node && node.isNode() && !node.locked() && node.grabbable(); -}; - -BRp.nodeIsGrabbable = function (node) { - return this.nodeIsDraggable(node) && node.interactive(); -}; - -BRp.load = function () { - var r = this; - - var triggerEvents = function triggerEvents(target, names, e, props) { - if (target == null) { - target = r.cy; - } - - for (var i = 0; i < names.length; i++) { - var name = names[i]; - - target.emit(util.extend({ originalEvent: e, type: name }, props)); - } - }; - - var isMultSelKeyDown = function isMultSelKeyDown(e) { - return e.shiftKey || e.metaKey || e.ctrlKey; // maybe e.altKey - }; - - var allowPanningPassthrough = function allowPanningPassthrough(down, downs) { - var allowPassthrough = true; - - if (r.cy.hasCompoundNodes() && down && down.isEdge()) { - // a compound node below the edge => no passthrough panning - for (var i = 0; downs && i < downs.length; i++) { - var down = downs[i]; - - if (down.isNode() && down.isParent()) { - allowPassthrough = false; - break; - } - } - } else { - allowPassthrough = true; - } - - return allowPassthrough; - }; - - var getDragListIds = function getDragListIds(opts) { - var listHasId; - - if (opts.addToList && r.cy.hasCompoundNodes()) { - // only needed for compound graphs - if (!opts.addToList.hasId) { - // build ids lookup if doesn't already exist - opts.addToList.hasId = {}; - - for (var i = 0; i < opts.addToList.length; i++) { - var ele = opts.addToList[i]; - - opts.addToList.hasId[ele.id()] = true; - } - } - - listHasId = opts.addToList.hasId; - } - - return listHasId || {}; - }; - - var setGrabbed = function setGrabbed(ele) { - ele[0]._private.grabbed = true; - }; - - var setFreed = function setFreed(ele) { - ele[0]._private.grabbed = false; - }; - - var setInDragLayer = function setInDragLayer(ele) { - ele[0]._private.rscratch.inDragLayer = true; - }; - - var setOutDragLayer = function setOutDragLayer(ele) { - ele[0]._private.rscratch.inDragLayer = false; - }; - - var setGrabTarget = function setGrabTarget(ele) { - ele[0]._private.rscratch.isGrabTarget = true; - }; - - var removeGrabTarget = function removeGrabTarget(ele) { - ele[0]._private.rscratch.isGrabTarget = false; - }; - - var addToDragList = function addToDragList(ele, opts) { - var listHasId = getDragListIds(opts); - - if (!listHasId[ele.id()]) { - opts.addToList.push(ele); - listHasId[ele.id()] = true; - - setGrabbed(ele); - } - }; - - // helper function to determine which child nodes and inner edges - // of a compound node to be dragged as well as the grabbed and selected nodes - var addDescendantsToDrag = function addDescendantsToDrag(node, opts) { - if (!node.cy().hasCompoundNodes()) { - return; - } - - if (opts.inDragLayer == null && opts.addToList == null) { - return; - } // nothing to do - - var innerNodes = node.descendants(); - - if (opts.inDragLayer) { - innerNodes.forEach(setInDragLayer); - innerNodes.connectedEdges().forEach(setInDragLayer); - } - - if (opts.addToList) { - innerNodes.forEach(function (ele) { - addToDragList(ele, opts); - }); - } - }; - - // adds the given nodes and its neighbourhood to the drag layer - var addNodesToDrag = function addNodesToDrag(nodes, opts) { - opts = opts || {}; - - var hasCompoundNodes = nodes.cy().hasCompoundNodes(); - - if (opts.inDragLayer) { - nodes.forEach(setInDragLayer); - - nodes.neighborhood().stdFilter(function (ele) { - return !hasCompoundNodes || ele.isEdge(); - }).forEach(setInDragLayer); - } - - if (opts.addToList) { - nodes.forEach(function (ele) { - addToDragList(ele, opts); - }); - } - - addDescendantsToDrag(nodes, opts); // always add to drag - - // also add nodes and edges related to the topmost ancestor - updateAncestorsInDragLayer(nodes, { - inDragLayer: opts.inDragLayer - }); - - r.updateCachedGrabbedEles(); - }; - - var addNodeToDrag = addNodesToDrag; - - var freeDraggedElements = function freeDraggedElements(grabbedEles) { - if (!grabbedEles) { - return; - } - - grabbedEles.hasId = {}; // clear the id list - - // just go over all elements rather than doing a bunch of (possibly expensive) traversals - r.getCachedZSortedEles().forEach(function (ele) { - setFreed(ele); - setOutDragLayer(ele); - removeGrabTarget(ele); - }); - - r.updateCachedGrabbedEles(); - }; - - // helper function to determine which ancestor nodes and edges should go - // to the drag layer (or should be removed from drag layer). - var updateAncestorsInDragLayer = function updateAncestorsInDragLayer(node, opts) { - - if (opts.inDragLayer == null && opts.addToList == null) { - return; - } // nothing to do - - if (!node.cy().hasCompoundNodes()) { - return; - } - - // find top-level parent - var parent = node.ancestors().orphans(); - - // no parent node: no nodes to add to the drag layer - if (parent.same(node)) { - return; - } - - var nodes = parent.descendants().spawnSelf().merge(parent).unmerge(node).unmerge(node.descendants()); - - var edges = nodes.connectedEdges(); - - if (opts.inDragLayer) { - edges.forEach(setInDragLayer); - nodes.forEach(setInDragLayer); - } - - if (opts.addToList) { - nodes.forEach(function (ele) { - addToDragList(ele, opts); - }); - } - }; - - var haveMutationsApi = typeof MutationObserver !== 'undefined'; - - // watch for when the cy container is removed from the dom - if (haveMutationsApi) { - r.removeObserver = new MutationObserver(function (mutns) { - // eslint-disable-line no-undef - for (var i = 0; i < mutns.length; i++) { - var mutn = mutns[i]; - var rNodes = mutn.removedNodes; - - if (rNodes) { - for (var j = 0; j < rNodes.length; j++) { - var rNode = rNodes[j]; - - if (rNode === r.container) { - r.destroy(); - break; - } - } - } - } - }); - - if (r.container.parentNode) { - r.removeObserver.observe(r.container.parentNode, { childList: true }); - } - } else { - r.registerBinding(r.container, 'DOMNodeRemoved', function (e) { - r.destroy(); - }); - } - - var onResize = util.debounce(function () { - r.cy.resize(); - }, 100); - - if (haveMutationsApi) { - r.styleObserver = new MutationObserver(onResize); // eslint-disable-line no-undef - - r.styleObserver.observe(r.container, { attributes: true }); - } - - // auto resize - r.registerBinding(window, 'resize', onResize); // eslint-disable-line no-undef - - var forEachUp = function forEachUp(domEle, fn) { - while (domEle != null) { - fn(domEle); - - domEle = domEle.parentNode; - } - }; - - var invalidateCoords = function invalidateCoords() { - r.invalidateContainerClientCoordsCache(); - }; - - forEachUp(r.container, function (domEle) { - r.registerBinding(domEle, 'transitionend', invalidateCoords); - r.registerBinding(domEle, 'animationend', invalidateCoords); - r.registerBinding(domEle, 'scroll', invalidateCoords); - }); - - // stop right click menu from appearing on cy - r.registerBinding(r.container, 'contextmenu', function (e) { - e.preventDefault(); - }); - - var inBoxSelection = function inBoxSelection() { - return r.selection[4] !== 0; - }; - - var eventInContainer = function eventInContainer(e) { - // save cycles if mouse events aren't to be captured - var containerPageCoords = r.findContainerClientCoords(); - var x = containerPageCoords[0]; - var y = containerPageCoords[1]; - var width = containerPageCoords[2]; - var height = containerPageCoords[3]; - - var positions = e.touches ? e.touches : [e]; - var atLeastOnePosInside = false; - - for (var i = 0; i < positions.length; i++) { - var p = positions[i]; - - if (x <= p.clientX && p.clientX <= x + width && y <= p.clientY && p.clientY <= y + height) { - atLeastOnePosInside = true; - break; - } - } - - if (!atLeastOnePosInside) { - return false; - } - - var container = r.container; - var target = e.target; - var tParent = target.parentNode; - var containerIsTarget = false; - - while (tParent) { - if (tParent === container) { - containerIsTarget = true; - break; - } - - tParent = tParent.parentNode; - } - - if (!containerIsTarget) { - return false; - } // if target is outisde cy container, then this event is not for us - - return true; - }; - - // Primary key - r.registerBinding(r.container, 'mousedown', function mousedownHandler(e) { - if (!eventInContainer(e)) { - return; - } - - e.preventDefault(); - r.hoverData.capture = true; - r.hoverData.which = e.which; - - var cy = r.cy; - var gpos = [e.clientX, e.clientY]; - var pos = r.projectIntoViewport(gpos[0], gpos[1]); - var select = r.selection; - var nears = r.findNearestElements(pos[0], pos[1], true, false); - var near = nears[0]; - var draggedElements = r.dragData.possibleDragElements; - - r.hoverData.mdownPos = pos; - r.hoverData.mdownGPos = gpos; - - var checkForTaphold = function checkForTaphold() { - r.hoverData.tapholdCancelled = false; - - clearTimeout(r.hoverData.tapholdTimeout); - - r.hoverData.tapholdTimeout = setTimeout(function () { - - if (r.hoverData.tapholdCancelled) { - return; - } else { - var ele = r.hoverData.down; - - if (ele) { - ele.emit({ - originalEvent: e, - type: 'taphold', - position: { x: pos[0], y: pos[1] } - }); - } else { - cy.emit({ - originalEvent: e, - type: 'taphold', - position: { x: pos[0], y: pos[1] } - }); - } - } - }, r.tapholdDuration); - }; - - // Right click button - if (e.which == 3) { - - r.hoverData.cxtStarted = true; - - var cxtEvt = { - originalEvent: e, - type: 'cxttapstart', - position: { x: pos[0], y: pos[1] } - }; - - if (near) { - near.activate(); - near.emit(cxtEvt); - - r.hoverData.down = near; - } else { - cy.emit(cxtEvt); - } - - r.hoverData.downTime = new Date().getTime(); - r.hoverData.cxtDragged = false; - - // Primary button - } else if (e.which == 1) { - - if (near) { - near.activate(); - } - - // Element dragging - { - // If something is under the cursor and it is draggable, prepare to grab it - if (near != null) { - - if (r.nodeIsGrabbable(near)) { - - var makeEvent = function makeEvent(type) { - return { - originalEvent: e, - type: type, - position: { x: pos[0], y: pos[1] } - }; - }; - - var triggerGrab = function triggerGrab(ele) { - ele.emit(makeEvent('grab')); - }; - - setGrabTarget(near); - - if (!near.selected()) { - - draggedElements = r.dragData.possibleDragElements = []; - addNodeToDrag(near, { addToList: draggedElements }); - - near.emit(makeEvent('grabon')).emit(makeEvent('grab')); - } else { - draggedElements = r.dragData.possibleDragElements = []; - - var selectedNodes = cy.$(function (ele) { - return ele.isNode() && ele.selected() && r.nodeIsGrabbable(ele); - }); - - addNodesToDrag(selectedNodes, { addToList: draggedElements }); - - near.emit(makeEvent('grabon')); - - selectedNodes.forEach(triggerGrab); - } - - r.redrawHint('eles', true); - r.redrawHint('drag', true); - } - } - - r.hoverData.down = near; - r.hoverData.downs = nears; - r.hoverData.downTime = new Date().getTime(); - } - - triggerEvents(near, ['mousedown', 'tapstart', 'vmousedown'], e, { - position: { x: pos[0], y: pos[1] } - }); - - if (near == null) { - select[4] = 1; - - r.data.bgActivePosistion = { - x: pos[0], - y: pos[1] - }; - - r.redrawHint('select', true); - - r.redraw(); - } else if (near.isEdge()) { - select[4] = 1; // for future pan - } - - checkForTaphold(); - } - - // Initialize selection box coordinates - select[0] = select[2] = pos[0]; - select[1] = select[3] = pos[1]; - }, false); - - r.registerBinding(window, 'mousemove', function mousemoveHandler(e) { - // eslint-disable-line no-undef - var capture = r.hoverData.capture; - - if (!capture && !eventInContainer(e)) { - return; - } - - var preventDefault = false; - var cy = r.cy; - var zoom = cy.zoom(); - var gpos = [e.clientX, e.clientY]; - var pos = r.projectIntoViewport(gpos[0], gpos[1]); - var mdownPos = r.hoverData.mdownPos; - var mdownGPos = r.hoverData.mdownGPos; - var select = r.selection; - - var near = null; - if (!r.hoverData.draggingEles && !r.hoverData.dragging && !r.hoverData.selecting) { - near = r.findNearestElement(pos[0], pos[1], true, false); - } - var last = r.hoverData.last; - var down = r.hoverData.down; - - var disp = [pos[0] - select[2], pos[1] - select[3]]; - - var draggedElements = r.dragData.possibleDragElements; - - var isOverThresholdDrag; - - if (mdownGPos) { - var dx = gpos[0] - mdownGPos[0]; - var dx2 = dx * dx; - var dy = gpos[1] - mdownGPos[1]; - var dy2 = dy * dy; - var dist2 = dx2 + dy2; - - r.hoverData.isOverThresholdDrag = isOverThresholdDrag = dist2 >= r.desktopTapThreshold2; - } - - var multSelKeyDown = isMultSelKeyDown(e); - - if (isOverThresholdDrag) { - r.hoverData.tapholdCancelled = true; - } - - var updateDragDelta = function updateDragDelta() { - var dragDelta = r.hoverData.dragDelta = r.hoverData.dragDelta || []; - - if (dragDelta.length === 0) { - dragDelta.push(disp[0]); - dragDelta.push(disp[1]); - } else { - dragDelta[0] += disp[0]; - dragDelta[1] += disp[1]; - } - }; - - preventDefault = true; - - triggerEvents(near, ['mousemove', 'vmousemove', 'tapdrag'], e, { - position: { x: pos[0], y: pos[1] } - }); - - var goIntoBoxMode = function goIntoBoxMode() { - r.data.bgActivePosistion = undefined; - - if (!r.hoverData.selecting) { - cy.emit('boxstart'); - } - - select[4] = 1; - r.hoverData.selecting = true; - - r.redrawHint('select', true); - r.redraw(); - }; - - // trigger context drag if rmouse down - if (r.hoverData.which === 3) { - // but only if over threshold - if (isOverThresholdDrag) { - var cxtEvt = { - originalEvent: e, - type: 'cxtdrag', - position: { x: pos[0], y: pos[1] } - }; - - if (down) { - down.emit(cxtEvt); - } else { - cy.emit(cxtEvt); - } - - r.hoverData.cxtDragged = true; - - if (!r.hoverData.cxtOver || near !== r.hoverData.cxtOver) { - - if (r.hoverData.cxtOver) { - r.hoverData.cxtOver.emit({ - originalEvent: e, - type: 'cxtdragout', - position: { x: pos[0], y: pos[1] } - }); - } - - r.hoverData.cxtOver = near; - - if (near) { - near.emit({ - originalEvent: e, - type: 'cxtdragover', - position: { x: pos[0], y: pos[1] } - }); - } - } - } - - // Check if we are drag panning the entire graph - } else if (r.hoverData.dragging) { - preventDefault = true; - - if (cy.panningEnabled() && cy.userPanningEnabled()) { - var deltaP; - - if (r.hoverData.justStartedPan) { - var mdPos = r.hoverData.mdownPos; - - deltaP = { - x: (pos[0] - mdPos[0]) * zoom, - y: (pos[1] - mdPos[1]) * zoom - }; - - r.hoverData.justStartedPan = false; - } else { - deltaP = { - x: disp[0] * zoom, - y: disp[1] * zoom - }; - } - - cy.panBy(deltaP); - - r.hoverData.dragged = true; - } - - // Needs reproject due to pan changing viewport - pos = r.projectIntoViewport(e.clientX, e.clientY); - - // Checks primary button down & out of time & mouse not moved much - } else if (select[4] == 1 && (down == null || down.isEdge())) { - - if (isOverThresholdDrag) { - - if (!r.hoverData.dragging && cy.boxSelectionEnabled() && (multSelKeyDown || !cy.panningEnabled() || !cy.userPanningEnabled())) { - goIntoBoxMode(); - } else if (!r.hoverData.selecting && cy.panningEnabled() && cy.userPanningEnabled()) { - var allowPassthrough = allowPanningPassthrough(down, r.hoverData.downs); - - if (allowPassthrough) { - r.hoverData.dragging = true; - r.hoverData.justStartedPan = true; - select[4] = 0; - - r.data.bgActivePosistion = math.array2point(mdownPos); - - r.redrawHint('select', true); - r.redraw(); - } - } - - if (down && down.isEdge() && down.active()) { - down.unactivate(); - } - } - } else { - if (down && down.isEdge() && down.active()) { - down.unactivate(); - } - - if ((!down || !down.grabbed()) && near != last) { - - if (last) { - triggerEvents(last, ['mouseout', 'tapdragout'], e, { - position: { x: pos[0], y: pos[1] } - }); - } - - if (near) { - triggerEvents(near, ['mouseover', 'tapdragover'], e, { - position: { x: pos[0], y: pos[1] } - }); - } - - r.hoverData.last = near; - } - - if (down) { - - if (isOverThresholdDrag) { - // then we can take action - - if (cy.boxSelectionEnabled() && multSelKeyDown) { - // then selection overrides - if (down && down.grabbed()) { - freeDraggedElements(draggedElements); - - down.emit('free'); - } - - goIntoBoxMode(); - } else if (down && down.grabbed() && r.nodeIsDraggable(down)) { - // drag node - var justStartedDrag = !r.dragData.didDrag; - - if (justStartedDrag) { - r.redrawHint('eles', true); - } - - r.dragData.didDrag = true; // indicate that we actually did drag the node - - var toTrigger = []; - - // now, add the elements to the drag layer if not done already - if (!r.hoverData.draggingEles) { - addNodesToDrag(cy.collection(draggedElements), { inDragLayer: true }); - } - - for (var i = 0; i < draggedElements.length; i++) { - var dEle = draggedElements[i]; - - // Locked nodes not draggable, as well as non-visible nodes - if (r.nodeIsDraggable(dEle) && dEle.grabbed()) { - var dPos = dEle.position(); - - toTrigger.push(dEle); - - if (is.number(disp[0]) && is.number(disp[1])) { - dPos.x += disp[0]; - dPos.y += disp[1]; - - if (justStartedDrag) { - var dragDelta = r.hoverData.dragDelta; - - if (dragDelta && is.number(dragDelta[0]) && is.number(dragDelta[1])) { - dPos.x += dragDelta[0]; - dPos.y += dragDelta[1]; - } - } - } - } - } - - r.hoverData.draggingEles = true; - - var tcol = cy.collection(toTrigger); - - tcol.dirtyCompoundBoundsCache(); - tcol.emit('position drag'); - - r.redrawHint('drag', true); - r.redraw(); - } - } else { - // otherwise save drag delta for when we actually start dragging so the relative grab pos is constant - updateDragDelta(); - } - } - - // prevent the dragging from triggering text selection on the page - preventDefault = true; - } - - select[2] = pos[0];select[3] = pos[1]; - - if (preventDefault) { - if (e.stopPropagation) e.stopPropagation(); - if (e.preventDefault) e.preventDefault(); - return false; - } - }, false); - - r.registerBinding(window, 'mouseup', function mouseupHandler(e) { - // eslint-disable-line no-undef - var capture = r.hoverData.capture; - if (!capture) { - return; - } - r.hoverData.capture = false; - - var cy = r.cy;var pos = r.projectIntoViewport(e.clientX, e.clientY);var select = r.selection; - var near = r.findNearestElement(pos[0], pos[1], true, false); - var draggedElements = r.dragData.possibleDragElements;var down = r.hoverData.down; - var multSelKeyDown = isMultSelKeyDown(e); - - if (r.data.bgActivePosistion) { - r.redrawHint('select', true); - r.redraw(); - } - - r.hoverData.tapholdCancelled = true; - - r.data.bgActivePosistion = undefined; // not active bg now - - if (down) { - down.unactivate(); - } - - if (r.hoverData.which === 3) { - var cxtEvt = { - originalEvent: e, - type: 'cxttapend', - position: { x: pos[0], y: pos[1] } - }; - - if (down) { - down.emit(cxtEvt); - } else { - cy.emit(cxtEvt); - } - - if (!r.hoverData.cxtDragged) { - var cxtTap = { - originalEvent: e, - type: 'cxttap', - position: { x: pos[0], y: pos[1] } - }; - - if (down) { - down.emit(cxtTap); - } else { - cy.emit(cxtTap); - } - } - - r.hoverData.cxtDragged = false; - r.hoverData.which = null; - } else if (r.hoverData.which === 1) { - - // Deselect all elements if nothing is currently under the mouse cursor and we aren't dragging something - if (down == null && // not mousedown on node - !r.dragData.didDrag // didn't move the node around - && !r.hoverData.selecting // not box selection - && !r.hoverData.dragged // didn't pan - && !isMultSelKeyDown(e)) { - - cy.$(function (ele) { - return ele.selected(); - }).unselect(); - - if (draggedElements.length > 0) { - r.redrawHint('eles', true); - } - - r.dragData.possibleDragElements = draggedElements = []; - } - - triggerEvents(near, ['mouseup', 'tapend', 'vmouseup'], e, { - position: { x: pos[0], y: pos[1] } - }); - - if (!r.dragData.didDrag // didn't move a node around - && !r.hoverData.dragged // didn't pan - && !r.hoverData.selecting // not box selection - && !r.hoverData.isOverThresholdDrag // didn't move too much - ) { - triggerEvents(down, ['click', 'tap', 'vclick'], e, { - position: { x: pos[0], y: pos[1] } - }); - } - - // Single selection - if (near == down && !r.dragData.didDrag && !r.hoverData.selecting) { - if (near != null && near._private.selectable) { - - if (r.hoverData.dragging) { - // if panning, don't change selection state - } else if (cy.selectionType() === 'additive' || multSelKeyDown) { - if (near.selected()) { - near.unselect(); - } else { - near.select(); - } - } else { - if (!multSelKeyDown) { - cy.$(':selected').unmerge(near).unselect(); - near.select(); - } - } - - r.redrawHint('eles', true); - } - } - - if (r.hoverData.selecting) { - var box = cy.collection(r.getAllInBox(select[0], select[1], select[2], select[3])); - - r.redrawHint('select', true); - - if (box.length > 0) { - r.redrawHint('eles', true); - } - - cy.emit('boxend'); - - var eleWouldBeSelected = function eleWouldBeSelected(ele) { - return ele.selectable() && !ele.selected(); - }; - - if (cy.selectionType() === 'additive') { - box.emit('box').stdFilter(eleWouldBeSelected).select().emit('boxselect'); - } else { - if (!multSelKeyDown) { - cy.$(':selected').unmerge(box).unselect(); - } - - box.emit('box').stdFilter(eleWouldBeSelected).select().emit('boxselect'); - } - - // always need redraw in case eles unselectable - r.redraw(); - } - - // Cancel drag pan - if (r.hoverData.dragging) { - r.hoverData.dragging = false; - - r.redrawHint('select', true); - r.redrawHint('eles', true); - - r.redraw(); - } - - if (!select[4]) { - r.redrawHint('drag', true); - r.redrawHint('eles', true); - - var downWasGrabbed = down && down.grabbed(); - - freeDraggedElements(draggedElements); - - if (downWasGrabbed) { - down.emit('free'); - } - } - } // else not right mouse - - select[4] = 0;r.hoverData.down = null; - - r.hoverData.cxtStarted = false; - r.hoverData.draggingEles = false; - r.hoverData.selecting = false; - r.hoverData.isOverThresholdDrag = false; - r.dragData.didDrag = false; - r.hoverData.dragged = false; - r.hoverData.dragDelta = []; - r.hoverData.mdownPos = null; - r.hoverData.mdownGPos = null; - }, false); - - var wheelHandler = function wheelHandler(e) { - - if (r.scrollingPage) { - return; - } // while scrolling, ignore wheel-to-zoom - - var cy = r.cy; - var pos = r.projectIntoViewport(e.clientX, e.clientY); - var rpos = [pos[0] * cy.zoom() + cy.pan().x, pos[1] * cy.zoom() + cy.pan().y]; - - if (r.hoverData.draggingEles || r.hoverData.dragging || r.hoverData.cxtStarted || inBoxSelection()) { - // if pan dragging or cxt dragging, wheel movements make no zoom - e.preventDefault(); - return; - } - - if (cy.panningEnabled() && cy.userPanningEnabled() && cy.zoomingEnabled() && cy.userZoomingEnabled()) { - e.preventDefault(); - - r.data.wheelZooming = true; - clearTimeout(r.data.wheelTimeout); - r.data.wheelTimeout = setTimeout(function () { - r.data.wheelZooming = false; - - r.redrawHint('eles', true); - r.redraw(); - }, 150); - - var diff; - - if (e.deltaY != null) { - diff = e.deltaY / -250; - } else if (e.wheelDeltaY != null) { - diff = e.wheelDeltaY / 1000; - } else { - diff = e.wheelDelta / 1000; - } - - diff = diff * r.wheelSensitivity; - - var needsWheelFix = e.deltaMode === 1; - if (needsWheelFix) { - // fixes slow wheel events on ff/linux and ff/windows - diff *= 33; - } - - cy.zoom({ - level: cy.zoom() * Math.pow(10, diff), - renderedPosition: { x: rpos[0], y: rpos[1] } - }); - } - }; - - // Functions to help with whether mouse wheel should trigger zooming - // -- - r.registerBinding(r.container, 'wheel', wheelHandler, true); - - // disable nonstandard wheel events - // r.registerBinding(r.container, 'mousewheel', wheelHandler, true); - // r.registerBinding(r.container, 'DOMMouseScroll', wheelHandler, true); - // r.registerBinding(r.container, 'MozMousePixelScroll', wheelHandler, true); // older firefox - - r.registerBinding(window, 'scroll', function scrollHandler(e) { - // eslint-disable-line no-undef - r.scrollingPage = true; - - clearTimeout(r.scrollingPageTimeout); - r.scrollingPageTimeout = setTimeout(function () { - r.scrollingPage = false; - }, 250); - }, true); - - // Functions to help with handling mouseout/mouseover on the Cytoscape container - // Handle mouseout on Cytoscape container - r.registerBinding(r.container, 'mouseout', function mouseOutHandler(e) { - var pos = r.projectIntoViewport(e.clientX, e.clientY); - - r.cy.emit({ - originalEvent: e, - type: 'mouseout', - position: { x: pos[0], y: pos[1] } - }); - }, false); - - r.registerBinding(r.container, 'mouseover', function mouseOverHandler(e) { - var pos = r.projectIntoViewport(e.clientX, e.clientY); - - r.cy.emit({ - originalEvent: e, - type: 'mouseover', - position: { x: pos[0], y: pos[1] } - }); - }, false); - - var f1x1, f1y1, f2x1, f2y1; // starting points for pinch-to-zoom - var distance1, distance1Sq; // initial distance between finger 1 and finger 2 for pinch-to-zoom - var center1, modelCenter1; // center point on start pinch to zoom - var offsetLeft, offsetTop; - var containerWidth, containerHeight; - var twoFingersStartInside; - - var distance = function distance(x1, y1, x2, y2) { - return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)); - }; - - var distanceSq = function distanceSq(x1, y1, x2, y2) { - return (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1); - }; - - var touchstartHandler; - r.registerBinding(r.container, 'touchstart', touchstartHandler = function touchstartHandler(e) { - if (!eventInContainer(e)) { - return; - } - - r.touchData.capture = true; - r.data.bgActivePosistion = undefined; - - var cy = r.cy; - var now = r.touchData.now; - var earlier = r.touchData.earlier; - - if (e.touches[0]) { - var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);now[0] = pos[0];now[1] = pos[1]; - } - if (e.touches[1]) { - var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);now[2] = pos[0];now[3] = pos[1]; - } - if (e.touches[2]) { - var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);now[4] = pos[0];now[5] = pos[1]; - } - - // record starting points for pinch-to-zoom - if (e.touches[1]) { - - freeDraggedElements(r.dragData.touchDragEles); - - var offsets = r.findContainerClientCoords(); - offsetLeft = offsets[0]; - offsetTop = offsets[1]; - containerWidth = offsets[2]; - containerHeight = offsets[3]; - - f1x1 = e.touches[0].clientX - offsetLeft; - f1y1 = e.touches[0].clientY - offsetTop; - - f2x1 = e.touches[1].clientX - offsetLeft; - f2y1 = e.touches[1].clientY - offsetTop; - - twoFingersStartInside = 0 <= f1x1 && f1x1 <= containerWidth && 0 <= f2x1 && f2x1 <= containerWidth && 0 <= f1y1 && f1y1 <= containerHeight && 0 <= f2y1 && f2y1 <= containerHeight; - - var pan = cy.pan(); - var zoom = cy.zoom(); - - distance1 = distance(f1x1, f1y1, f2x1, f2y1); - distance1Sq = distanceSq(f1x1, f1y1, f2x1, f2y1); - center1 = [(f1x1 + f2x1) / 2, (f1y1 + f2y1) / 2]; - modelCenter1 = [(center1[0] - pan.x) / zoom, (center1[1] - pan.y) / zoom]; - - // consider context tap - var cxtDistThreshold = 200; - var cxtDistThresholdSq = cxtDistThreshold * cxtDistThreshold; - if (distance1Sq < cxtDistThresholdSq && !e.touches[2]) { - - var near1 = r.findNearestElement(now[0], now[1], true, true); - var near2 = r.findNearestElement(now[2], now[3], true, true); - - if (near1 && near1.isNode()) { - near1.activate().emit({ - originalEvent: e, - type: 'cxttapstart', - position: { x: now[0], y: now[1] } - }); - r.touchData.start = near1; - } else if (near2 && near2.isNode()) { - near2.activate().emit({ - originalEvent: e, - type: 'cxttapstart', - position: { x: now[0], y: now[1] } - }); - r.touchData.start = near2; - } else { - cy.emit({ - originalEvent: e, - type: 'cxttapstart', - position: { x: now[0], y: now[1] } - }); - } - - if (r.touchData.start) { - r.touchData.start._private.grabbed = false; - } - r.touchData.cxt = true; - r.touchData.cxtDragged = false; - r.data.bgActivePosistion = undefined; - - r.redraw(); - return; - } - } - - if (e.touches[2]) { - // ignore - } else if (e.touches[1]) { - // ignore - } else if (e.touches[0]) { - var nears = r.findNearestElements(now[0], now[1], true, true); - var near = nears[0]; - - if (near != null) { - near.activate(); - - r.touchData.start = near; - r.touchData.starts = nears; - - if (r.nodeIsGrabbable(near)) { - - var draggedEles = r.dragData.touchDragEles = []; - var selectedNodes = null; - - r.redrawHint('eles', true); - r.redrawHint('drag', true); - - if (near.selected()) { - // reset drag elements, since near will be added again - - selectedNodes = cy.$(function (ele) { - return ele.selected() && r.nodeIsGrabbable(ele); - }); - - addNodesToDrag(selectedNodes, { addToList: draggedEles }); - } else { - addNodeToDrag(near, { addToList: draggedEles }); - } - - setGrabTarget(near); - - var makeEvent = function makeEvent(type) { - return { - originalEvent: e, - type: type, - position: { x: now[0], y: now[1] } - }; - }; - - near.emit(makeEvent('grabon')); - - if (selectedNodes) { - selectedNodes.forEach(function (n) { - n.emit(makeEvent('grab')); - }); - } else { - near.emit(makeEvent('grab')); - } - } - } - - triggerEvents(near, ['touchstart', 'tapstart', 'vmousedown'], e, { - position: { x: now[0], y: now[1] } - }); - - if (near == null) { - r.data.bgActivePosistion = { - x: pos[0], - y: pos[1] - }; - - r.redrawHint('select', true); - r.redraw(); - } - - // Tap, taphold - // ----- - - r.touchData.singleTouchMoved = false; - r.touchData.singleTouchStartTime = +new Date(); - - clearTimeout(r.touchData.tapholdTimeout); - r.touchData.tapholdTimeout = setTimeout(function () { - if (r.touchData.singleTouchMoved === false && !r.pinching // if pinching, then taphold unselect shouldn't take effect - && !r.touchData.selecting // box selection shouldn't allow taphold through - ) { - triggerEvents(r.touchData.start, ['taphold'], e, { - position: { x: now[0], y: now[1] } - }); - - if (!r.touchData.start) { - cy.$(':selected').unselect(); - } - } - }, r.tapholdDuration); - } - - if (e.touches.length >= 1) { - var sPos = r.touchData.startPosition = []; - - for (var i = 0; i < now.length; i++) { - sPos[i] = earlier[i] = now[i]; - } - - var touch0 = e.touches[0]; - - r.touchData.startGPosition = [touch0.clientX, touch0.clientY]; - } - }, false); - - var touchmoveHandler; - r.registerBinding(window, 'touchmove', touchmoveHandler = function touchmoveHandler(e) { - // eslint-disable-line no-undef - var capture = r.touchData.capture; - - if (!capture && !eventInContainer(e)) { - return; - } - - var select = r.selection; - var cy = r.cy; - var now = r.touchData.now; - var earlier = r.touchData.earlier; - var zoom = cy.zoom(); - - if (e.touches[0]) { - var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);now[0] = pos[0];now[1] = pos[1]; - } - if (e.touches[1]) { - var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);now[2] = pos[0];now[3] = pos[1]; - } - if (e.touches[2]) { - var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);now[4] = pos[0];now[5] = pos[1]; - } - - var startGPos = r.touchData.startGPosition; - var isOverThresholdDrag; - - if (capture && e.touches[0] && startGPos) { - var disp = [];for (var j = 0; j < now.length; j++) { - disp[j] = now[j] - earlier[j]; - } - var dx = e.touches[0].clientX - startGPos[0]; - var dx2 = dx * dx; - var dy = e.touches[0].clientY - startGPos[1]; - var dy2 = dy * dy; - var dist2 = dx2 + dy2; - - isOverThresholdDrag = dist2 >= r.touchTapThreshold2; - } - - // context swipe cancelling - if (capture && r.touchData.cxt) { - e.preventDefault(); - - var f1x2 = e.touches[0].clientX - offsetLeft, - f1y2 = e.touches[0].clientY - offsetTop; - var f2x2 = e.touches[1].clientX - offsetLeft, - f2y2 = e.touches[1].clientY - offsetTop; - // var distance2 = distance( f1x2, f1y2, f2x2, f2y2 ); - var distance2Sq = distanceSq(f1x2, f1y2, f2x2, f2y2); - var factorSq = distance2Sq / distance1Sq; - - var distThreshold = 150; - var distThresholdSq = distThreshold * distThreshold; - var factorThreshold = 1.5; - var factorThresholdSq = factorThreshold * factorThreshold; - - // cancel ctx gestures if the distance b/t the fingers increases - if (factorSq >= factorThresholdSq || distance2Sq >= distThresholdSq) { - r.touchData.cxt = false; - - r.data.bgActivePosistion = undefined; - - r.redrawHint('select', true); - - var cxtEvt = { - originalEvent: e, - type: 'cxttapend', - position: { x: now[0], y: now[1] } - }; - - if (r.touchData.start) { - r.touchData.start.unactivate().emit(cxtEvt); - - r.touchData.start = null; - } else { - cy.emit(cxtEvt); - } - } - } - - // context swipe - if (capture && r.touchData.cxt) { - var cxtEvt = { - originalEvent: e, - type: 'cxtdrag', - position: { x: now[0], y: now[1] } - }; - r.data.bgActivePosistion = undefined; - r.redrawHint('select', true); - - if (r.touchData.start) { - r.touchData.start.emit(cxtEvt); - } else { - cy.emit(cxtEvt); - } - - if (r.touchData.start) { - r.touchData.start._private.grabbed = false; - } - r.touchData.cxtDragged = true; - - var near = r.findNearestElement(now[0], now[1], true, true); - - if (!r.touchData.cxtOver || near !== r.touchData.cxtOver) { - - if (r.touchData.cxtOver) { - r.touchData.cxtOver.emit({ - originalEvent: e, - type: 'cxtdragout', - position: { x: now[0], y: now[1] } - }); - } - - r.touchData.cxtOver = near; - - if (near) { - near.emit({ - originalEvent: e, - type: 'cxtdragover', - position: { x: now[0], y: now[1] } - }); - } - } - - // box selection - } else if (capture && e.touches[2] && cy.boxSelectionEnabled()) { - e.preventDefault(); - - r.data.bgActivePosistion = undefined; - - this.lastThreeTouch = +new Date(); - - if (!r.touchData.selecting) { - cy.emit('boxstart'); - } - - r.touchData.selecting = true; - - r.redrawHint('select', true); - - if (!select || select.length === 0 || select[0] === undefined) { - select[0] = (now[0] + now[2] + now[4]) / 3; - select[1] = (now[1] + now[3] + now[5]) / 3; - select[2] = (now[0] + now[2] + now[4]) / 3 + 1; - select[3] = (now[1] + now[3] + now[5]) / 3 + 1; - } else { - select[2] = (now[0] + now[2] + now[4]) / 3; - select[3] = (now[1] + now[3] + now[5]) / 3; - } - - select[4] = 1; - r.touchData.selecting = true; - - r.redraw(); - - // pinch to zoom - } else if (capture && e.touches[1] && cy.zoomingEnabled() && cy.panningEnabled() && cy.userZoomingEnabled() && cy.userPanningEnabled()) { - // two fingers => pinch to zoom - e.preventDefault(); - - r.data.bgActivePosistion = undefined; - r.redrawHint('select', true); - - var draggedEles = r.dragData.touchDragEles; - if (draggedEles) { - r.redrawHint('drag', true); - - for (var i = 0; i < draggedEles.length; i++) { - var de_p = draggedEles[i]._private; - - de_p.grabbed = false; - de_p.rscratch.inDragLayer = false; - } - } - - // (x2, y2) for fingers 1 and 2 - var f1x2 = e.touches[0].clientX - offsetLeft, - f1y2 = e.touches[0].clientY - offsetTop; - var f2x2 = e.touches[1].clientX - offsetLeft, - f2y2 = e.touches[1].clientY - offsetTop; - - var distance2 = distance(f1x2, f1y2, f2x2, f2y2); - // var distance2Sq = distanceSq( f1x2, f1y2, f2x2, f2y2 ); - // var factor = Math.sqrt( distance2Sq ) / Math.sqrt( distance1Sq ); - var factor = distance2 / distance1; - - if (twoFingersStartInside) { - // delta finger1 - var df1x = f1x2 - f1x1; - var df1y = f1y2 - f1y1; - - // delta finger 2 - var df2x = f2x2 - f2x1; - var df2y = f2y2 - f2y1; - - // translation is the normalised vector of the two fingers movement - // i.e. so pinching cancels out and moving together pans - var tx = (df1x + df2x) / 2; - var ty = (df1y + df2y) / 2; - - // adjust factor by the speed multiplier - // var speed = 1.5; - // if( factor > 1 ){ - // factor = (factor - 1) * speed + 1; - // } else { - // factor = 1 - (1 - factor) * speed; - // } - - // now calculate the zoom - var zoom1 = cy.zoom(); - var zoom2 = zoom1 * factor; - var pan1 = cy.pan(); - - // the model center point converted to the current rendered pos - var ctrx = modelCenter1[0] * zoom1 + pan1.x; - var ctry = modelCenter1[1] * zoom1 + pan1.y; - - var pan2 = { - x: -zoom2 / zoom1 * (ctrx - pan1.x - tx) + ctrx, - y: -zoom2 / zoom1 * (ctry - pan1.y - ty) + ctry - }; - - // remove dragged eles - if (r.touchData.start && r.touchData.start.active()) { - var draggedEles = r.dragData.touchDragEles; - - freeDraggedElements(draggedEles); - - r.redrawHint('drag', true); - r.redrawHint('eles', true); - - r.touchData.start.unactivate().emit('free'); - } - - cy.viewport({ - zoom: zoom2, - pan: pan2, - cancelOnFailedZoom: true - }); - - distance1 = distance2; - f1x1 = f1x2; - f1y1 = f1y2; - f2x1 = f2x2; - f2y1 = f2y2; - - r.pinching = true; - } - - // Re-project - if (e.touches[0]) { - var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);now[0] = pos[0];now[1] = pos[1]; - } - if (e.touches[1]) { - var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);now[2] = pos[0];now[3] = pos[1]; - } - if (e.touches[2]) { - var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);now[4] = pos[0];now[5] = pos[1]; - } - } else if (e.touches[0]) { - var start = r.touchData.start; - var last = r.touchData.last; - var near; - - if (!r.hoverData.draggingEles && !r.swipePanning) { - near = r.findNearestElement(now[0], now[1], true, true); - } - - if (capture && start != null) { - e.preventDefault(); - } - - // dragging nodes - if (capture && start != null && r.nodeIsDraggable(start)) { - - if (isOverThresholdDrag) { - // then dragging can happen - var draggedEles = r.dragData.touchDragEles; - var justStartedDrag = !r.dragData.didDrag; - - if (justStartedDrag) { - addNodesToDrag(cy.collection(draggedEles), { inDragLayer: true }); - } - - for (var k = 0; k < draggedEles.length; k++) { - var draggedEle = draggedEles[k]; - - if (r.nodeIsDraggable(draggedEle) && draggedEle.grabbed()) { - r.dragData.didDrag = true; - var dPos = draggedEle.position(); - - if (is.number(disp[0]) && is.number(disp[1])) { - dPos.x += disp[0]; - dPos.y += disp[1]; - } - - if (justStartedDrag) { - r.redrawHint('eles', true); - - var dragDelta = r.touchData.dragDelta; - - if (dragDelta && is.number(dragDelta[0]) && is.number(dragDelta[1])) { - dPos.x += dragDelta[0]; - dPos.y += dragDelta[1]; - } - } - } - } - - var tcol = cy.collection(draggedEles); - - tcol.dirtyCompoundBoundsCache(); - tcol.emit('position drag'); - - r.hoverData.draggingEles = true; - - r.redrawHint('drag', true); - - if (r.touchData.startPosition[0] == earlier[0] && r.touchData.startPosition[1] == earlier[1]) { - - r.redrawHint('eles', true); - } - - r.redraw(); - } else { - // otherise keep track of drag delta for later - var dragDelta = r.touchData.dragDelta = r.touchData.dragDelta || []; - - if (dragDelta.length === 0) { - dragDelta.push(disp[0]); - dragDelta.push(disp[1]); - } else { - dragDelta[0] += disp[0]; - dragDelta[1] += disp[1]; - } - } - } - - // touchmove - { - triggerEvents(start || near, ['touchmove', 'tapdrag', 'vmousemove'], e, { - position: { x: now[0], y: now[1] } - }); - - if ((!start || !start.grabbed()) && near != last) { - if (last) { - last.emit({ originalEvent: e, type: 'tapdragout', position: { x: now[0], y: now[1] } }); - } - if (near) { - near.emit({ originalEvent: e, type: 'tapdragover', position: { x: now[0], y: now[1] } }); - } - } - - r.touchData.last = near; - } - - // check to cancel taphold - if (capture) { - for (var i = 0; i < now.length; i++) { - if (now[i] && r.touchData.startPosition[i] && isOverThresholdDrag) { - - r.touchData.singleTouchMoved = true; - } - } - } - - // panning - if (capture && (start == null || start.isEdge()) && cy.panningEnabled() && cy.userPanningEnabled()) { - - var allowPassthrough = allowPanningPassthrough(start, r.touchData.starts); - - if (allowPassthrough) { - e.preventDefault(); - - if (r.swipePanning) { - cy.panBy({ - x: disp[0] * zoom, - y: disp[1] * zoom - }); - } else if (isOverThresholdDrag) { - r.swipePanning = true; - - cy.panBy({ - x: dx * zoom, - y: dy * zoom - }); - - if (start) { - start.unactivate(); - - if (!r.data.bgActivePosistion) { - r.data.bgActivePosistion = math.array2point(r.touchData.startPosition); - } - - r.redrawHint('select', true); - - r.touchData.start = null; - } - } - } - - // Re-project - var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY); - now[0] = pos[0];now[1] = pos[1]; - } - } - - for (var j = 0; j < now.length; j++) { - earlier[j] = now[j]; - } - //r.redraw(); - }, false); - - var touchcancelHandler; - r.registerBinding(window, 'touchcancel', touchcancelHandler = function touchcancelHandler(e) { - // eslint-disable-line no-undef - var start = r.touchData.start; - - r.touchData.capture = false; - - if (start) { - start.unactivate(); - } - }); - - var touchendHandler; - r.registerBinding(window, 'touchend', touchendHandler = function touchendHandler(e) { - // eslint-disable-line no-undef - var start = r.touchData.start; - - var capture = r.touchData.capture; - - if (capture) { - r.touchData.capture = false; - - e.preventDefault(); - } else { - return; - } - - var select = r.selection; - - r.swipePanning = false; - r.hoverData.draggingEles = false; - - var cy = r.cy; - var zoom = cy.zoom(); - var now = r.touchData.now; - var earlier = r.touchData.earlier; - - if (e.touches[0]) { - var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);now[0] = pos[0];now[1] = pos[1]; - } - if (e.touches[1]) { - var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);now[2] = pos[0];now[3] = pos[1]; - } - if (e.touches[2]) { - var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);now[4] = pos[0];now[5] = pos[1]; - } - - if (start) { - start.unactivate(); - } - - var ctxTapend; - if (r.touchData.cxt) { - ctxTapend = { - originalEvent: e, - type: 'cxttapend', - position: { x: now[0], y: now[1] } - }; - - if (start) { - start.emit(ctxTapend); - } else { - cy.emit(ctxTapend); - } - - if (!r.touchData.cxtDragged) { - var ctxTap = { - originalEvent: e, - type: 'cxttap', - position: { x: now[0], y: now[1] } - }; - - if (start) { - start.emit(ctxTap); - } else { - cy.emit(ctxTap); - } - } - - if (r.touchData.start) { - r.touchData.start._private.grabbed = false; - } - r.touchData.cxt = false; - r.touchData.start = null; - - r.redraw(); - return; - } - - // no more box selection if we don't have three fingers - if (!e.touches[2] && cy.boxSelectionEnabled() && r.touchData.selecting) { - r.touchData.selecting = false; - - var box = cy.collection(r.getAllInBox(select[0], select[1], select[2], select[3])); - - select[0] = undefined; - select[1] = undefined; - select[2] = undefined; - select[3] = undefined; - select[4] = 0; - - r.redrawHint('select', true); - - cy.emit('boxend'); - - var eleWouldBeSelected = function eleWouldBeSelected(ele) { - return ele.selectable() && !ele.selected(); - }; - - box.emit('box').stdFilter(eleWouldBeSelected).select().emit('boxselect'); - - if (box.nonempty()) { - r.redrawHint('eles', true); - } - - r.redraw(); - } - - if (start != null) { - start.unactivate(); - } - - if (e.touches[2]) { - r.data.bgActivePosistion = undefined; - r.redrawHint('select', true); - } else if (e.touches[1]) { - // ignore - } else if (e.touches[0]) { - // ignore - - // Last touch released - } else if (!e.touches[0]) { - - r.data.bgActivePosistion = undefined; - r.redrawHint('select', true); - - var draggedEles = r.dragData.touchDragEles; - - if (start != null) { - - var startWasGrabbed = start._private.grabbed; - - freeDraggedElements(draggedEles); - - r.redrawHint('drag', true); - r.redrawHint('eles', true); - - if (startWasGrabbed) { - start.emit('free'); - } - - triggerEvents(start, ['touchend', 'tapend', 'vmouseup', 'tapdragout'], e, { - position: { x: now[0], y: now[1] } - }); - - start.unactivate(); - - r.touchData.start = null; - } else { - var near = r.findNearestElement(now[0], now[1], true, true); - - triggerEvents(near, ['touchend', 'tapend', 'vmouseup', 'tapdragout'], e, { - position: { x: now[0], y: now[1] } - }); - } - - var dx = r.touchData.startPosition[0] - now[0]; - var dx2 = dx * dx; - var dy = r.touchData.startPosition[1] - now[1]; - var dy2 = dy * dy; - var dist2 = dx2 + dy2; - var rdist2 = dist2 * zoom * zoom; - - // Prepare to select the currently touched node, only if it hasn't been dragged past a certain distance - if (start != null && !r.dragData.didDrag // didn't drag nodes around - && start._private.selectable && rdist2 < r.touchTapThreshold2 && !r.pinching // pinch to zoom should not affect selection - ) { - - if (cy.selectionType() === 'single') { - cy.$(':selected').unmerge(start).unselect(); - start.select(); - } else { - if (start.selected()) { - start.unselect(); - } else { - start.select(); - } - } - - r.redrawHint('eles', true); - } - - // Tap event, roughly same as mouse click event for touch - if (!r.touchData.singleTouchMoved) { - triggerEvents(start, ['tap', 'vclick'], e, { - position: { x: now[0], y: now[1] } - }); - } - - r.touchData.singleTouchMoved = true; - } - - for (var j = 0; j < now.length; j++) { - earlier[j] = now[j]; - } - - r.dragData.didDrag = false; // reset for next mousedown - - if (e.touches.length === 0) { - r.touchData.dragDelta = []; - r.touchData.startPosition = null; - r.touchData.startGPosition = null; - } - - if (e.touches.length < 2) { - r.pinching = false; - r.redrawHint('eles', true); - r.redraw(); - } - - //r.redraw(); - }, false); - - // fallback compatibility layer for ms pointer events - if (typeof TouchEvent === 'undefined') { - - var pointers = []; - - var makeTouch = function makeTouch(e) { - return { - clientX: e.clientX, - clientY: e.clientY, - force: 1, - identifier: e.pointerId, - pageX: e.pageX, - pageY: e.pageY, - radiusX: e.width / 2, - radiusY: e.height / 2, - screenX: e.screenX, - screenY: e.screenY, - target: e.target - }; - }; - - var makePointer = function makePointer(e) { - return { - event: e, - touch: makeTouch(e) - }; - }; - - var addPointer = function addPointer(e) { - pointers.push(makePointer(e)); - }; - - var removePointer = function removePointer(e) { - for (var i = 0; i < pointers.length; i++) { - var p = pointers[i]; - - if (p.event.pointerId === e.pointerId) { - pointers.splice(i, 1); - return; - } - } - }; - - var updatePointer = function updatePointer(e) { - var p = pointers.filter(function (p) { - return p.event.pointerId === e.pointerId; - })[0]; - - p.event = e; - p.touch = makeTouch(e); - }; - - var addTouchesToEvent = function addTouchesToEvent(e) { - e.touches = pointers.map(function (p) { - return p.touch; - }); - }; - - var pointerIsMouse = function pointerIsMouse(e) { - return e.pointerType === 'mouse' || e.pointerType === 4; - }; - - r.registerBinding(r.container, 'pointerdown', function (e) { - if (pointerIsMouse(e)) { - return; - } // mouse already handled - - e.preventDefault(); - - addPointer(e); - - addTouchesToEvent(e); - touchstartHandler(e); - }); - - r.registerBinding(r.container, 'pointerup', function (e) { - if (pointerIsMouse(e)) { - return; - } // mouse already handled - - removePointer(e); - - addTouchesToEvent(e); - touchendHandler(e); - }); - - r.registerBinding(r.container, 'pointercancel', function (e) { - if (pointerIsMouse(e)) { - return; - } // mouse already handled - - removePointer(e); - - addTouchesToEvent(e); - touchcancelHandler(e); - }); - - r.registerBinding(r.container, 'pointermove', function (e) { - if (pointerIsMouse(e)) { - return; - } // mouse already handled - - e.preventDefault(); - - updatePointer(e); - - addTouchesToEvent(e); - touchmoveHandler(e); - }); - } -}; - -module.exports = BRp; - -/***/ }), -/* 100 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var math = __webpack_require__(2); - -var BRp = {}; - -BRp.generatePolygon = function (name, points) { - return this.nodeShapes[name] = { - renderer: this, - - name: name, - - points: points, - - draw: function draw(context, centerX, centerY, width, height) { - this.renderer.nodeShapeImpl('polygon', context, centerX, centerY, width, height, this.points); - }, - - intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { - return math.polygonIntersectLine(x, y, this.points, nodeX, nodeY, width / 2, height / 2, padding); - }, - - checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { - return math.pointInsidePolygon(x, y, this.points, centerX, centerY, width, height, [0, -1], padding); - } - }; -}; - -BRp.generateEllipse = function () { - return this.nodeShapes['ellipse'] = { - renderer: this, - - name: 'ellipse', - - draw: function draw(context, centerX, centerY, width, height) { - this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); - }, - - intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { - return math.intersectLineEllipse(x, y, nodeX, nodeY, width / 2 + padding, height / 2 + padding); - }, - - checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { - return math.checkInEllipse(x, y, width, height, centerX, centerY, padding); - } - }; -}; - -BRp.generateRoundRectangle = function () { - return this.nodeShapes['roundrectangle'] = { - renderer: this, - - name: 'roundrectangle', - - points: math.generateUnitNgonPointsFitToSquare(4, 0), - - draw: function draw(context, centerX, centerY, width, height) { - this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); - }, - - intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { - return math.roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding); - }, - - checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { - - var cornerRadius = math.getRoundRectangleRadius(width, height); - var diam = cornerRadius * 2; - - // Check hBox - if (math.pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - diam, [0, -1], padding)) { - return true; - } - - // Check vBox - if (math.pointInsidePolygon(x, y, this.points, centerX, centerY, width - diam, height, [0, -1], padding)) { - return true; - } - - // Check top left quarter circle - if (math.checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY - height / 2 + cornerRadius, padding)) { - - return true; - } - - // Check top right quarter circle - if (math.checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY - height / 2 + cornerRadius, padding)) { - - return true; - } - - // Check bottom right quarter circle - if (math.checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY + height / 2 - cornerRadius, padding)) { - - return true; - } - - // Check bottom left quarter circle - if (math.checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY + height / 2 - cornerRadius, padding)) { - - return true; - } - - return false; - } - }; -}; - -BRp.generateCutRectangle = function () { - return this.nodeShapes['cutrectangle'] = { - renderer: this, - - name: 'cutrectangle', - - cornerLength: math.getCutRectangleCornerLength(), - - points: math.generateUnitNgonPointsFitToSquare(4, 0), - - draw: function draw(context, centerX, centerY, width, height) { - this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); - }, - - generateCutTrianglePts: function generateCutTrianglePts(width, height, centerX, centerY) { - var cl = this.cornerLength; - var hh = height / 2; - var hw = width / 2; - var xBegin = centerX - hw; - var xEnd = centerX + hw; - var yBegin = centerY - hh; - var yEnd = centerY + hh; - - // points are in clockwise order, inner (imaginary) triangle pt on [4, 5] - return { - topLeft: [xBegin, yBegin + cl, xBegin + cl, yBegin, xBegin + cl, yBegin + cl], - topRight: [xEnd - cl, yBegin, xEnd, yBegin + cl, xEnd - cl, yBegin + cl], - bottomRight: [xEnd, yEnd - cl, xEnd - cl, yEnd, xEnd - cl, yEnd - cl], - bottomLeft: [xBegin + cl, yEnd, xBegin, yEnd - cl, xBegin + cl, yEnd - cl] - }; - }, - - intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { - var cPts = this.generateCutTrianglePts(width + 2 * padding, height + 2 * padding, nodeX, nodeY); - var pts = [].concat.apply([], [cPts.topLeft.splice(0, 4), cPts.topRight.splice(0, 4), cPts.bottomRight.splice(0, 4), cPts.bottomLeft.splice(0, 4)]); - - return math.polygonIntersectLine(x, y, pts, nodeX, nodeY); - }, - - checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { - // Check hBox - if (math.pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - 2 * this.cornerLength, [0, -1], padding)) { - return true; - } - - // Check vBox - if (math.pointInsidePolygon(x, y, this.points, centerX, centerY, width - 2 * this.cornerLength, height, [0, -1], padding)) { - return true; - } - var cutTrianglePts = this.generateCutTrianglePts(width, height, centerX, centerY); - return math.pointInsidePolygonPoints(x, y, cutTrianglePts.topLeft) || math.pointInsidePolygonPoints(x, y, cutTrianglePts.topRight) || math.pointInsidePolygonPoints(x, y, cutTrianglePts.bottomRight) || math.pointInsidePolygonPoints(x, y, cutTrianglePts.bottomLeft); - } - - }; -}; - -BRp.generateBarrel = function () { - return this.nodeShapes['barrel'] = { - renderer: this, - - name: 'barrel', - - points: math.generateUnitNgonPointsFitToSquare(4, 0), - - draw: function draw(context, centerX, centerY, width, height) { - this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); - }, - - intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { - var bPts = this.generateBarrelBezierPts(width + 2 * padding, height + 2 * padding, nodeX, nodeY); - - var pts = [].concat(bPts.topLeft, bPts.topRight, bPts.bottomRight, bPts.bottomLeft); - - return math.polygonIntersectLine(x, y, pts, nodeX, nodeY); - }, - - generateBarrelBezierPts: function generateBarrelBezierPts(width, height, centerX, centerY) { - var hh = height / 2; - var hw = width / 2; - var xBegin = centerX - hw; - var xEnd = centerX + hw; - var yBegin = centerY - hh; - var yEnd = centerY + hh; - - var curveConstants = math.getBarrelCurveConstants(width, height); - var hOffset = curveConstants.heightOffset; - var wOffset = curveConstants.widthOffset; - var ctrlPtXOffset = curveConstants.ctrlPtOffsetPct * width; - - // points are in clockwise order, inner (imaginary) control pt on [4, 5] - var pts = { - topLeft: [xBegin, yBegin + hOffset, xBegin + ctrlPtXOffset, yBegin, xBegin + wOffset, yBegin], - topRight: [xEnd - wOffset, yBegin, xEnd - ctrlPtXOffset, yBegin, xEnd, yBegin + hOffset], - bottomRight: [xEnd, yEnd - hOffset, xEnd - ctrlPtXOffset, yEnd, xEnd - wOffset, yEnd], - bottomLeft: [xBegin + wOffset, yEnd, xBegin + ctrlPtXOffset, yEnd, xBegin, yEnd - hOffset] - }; - - pts.topLeft.isTop = true; - pts.topRight.isTop = true; - pts.bottomLeft.isBottom = true; - pts.bottomRight.isBottom = true; - - return pts; - }, - - checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { - - var curveConstants = math.getBarrelCurveConstants(width, height); - var hOffset = curveConstants.heightOffset; - var wOffset = curveConstants.widthOffset; - - // Check hBox - if (math.pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - 2 * hOffset, [0, -1], padding)) { - return true; - } - - // Check vBox - if (math.pointInsidePolygon(x, y, this.points, centerX, centerY, width - 2 * wOffset, height, [0, -1], padding)) { - return true; - } - - var barrelCurvePts = this.generateBarrelBezierPts(width, height, centerX, centerY); - - var getCurveT = function getCurveT(x, y, curvePts) { - var x0 = curvePts[4]; - var x1 = curvePts[2]; - var x2 = curvePts[0]; - var y0 = curvePts[5]; - // var y1 = curvePts[ 3 ]; - var y2 = curvePts[1]; - - var xMin = Math.min(x0, x2); - var xMax = Math.max(x0, x2); - var yMin = Math.min(y0, y2); - var yMax = Math.max(y0, y2); - - if (xMin <= x && x <= xMax && yMin <= y && y <= yMax) { - var coeff = math.bezierPtsToQuadCoeff(x0, x1, x2); - var roots = math.solveQuadratic(coeff[0], coeff[1], coeff[2], x); - - var validRoots = roots.filter(function (r) { - return 0 <= r && r <= 1; - }); - - if (validRoots.length > 0) { - return validRoots[0]; - } - } - return null; - }; - - var curveRegions = Object.keys(barrelCurvePts); - for (var i = 0; i < curveRegions.length; i++) { - var corner = curveRegions[i]; - var cornerPts = barrelCurvePts[corner]; - var t = getCurveT(x, y, cornerPts); - - if (t == null) { - continue; - } - - var y0 = cornerPts[5]; - var y1 = cornerPts[3]; - var y2 = cornerPts[1]; - var bezY = math.qbezierAt(y0, y1, y2, t); - - if (cornerPts.isTop && bezY <= y) { - return true; - } - if (cornerPts.isBottom && y <= bezY) { - return true; - } - } - return false; - } - }; -}; - -BRp.generateBottomRoundrectangle = function () { - return this.nodeShapes['bottomroundrectangle'] = { - renderer: this, - - name: 'bottomroundrectangle', - - points: math.generateUnitNgonPointsFitToSquare(4, 0), - - draw: function draw(context, centerX, centerY, width, height) { - this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); - }, - - intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { - var topStartX = nodeX - (width / 2 + padding); - var topStartY = nodeY - (height / 2 + padding); - var topEndY = topStartY; - var topEndX = nodeX + (width / 2 + padding); - - var topIntersections = math.finiteLinesIntersect(x, y, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false); - if (topIntersections.length > 0) { - return topIntersections; - } - - return math.roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding); - }, - - checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { - - var cornerRadius = math.getRoundRectangleRadius(width, height); - var diam = 2 * cornerRadius; - - // Check hBox - if (math.pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - diam, [0, -1], padding)) { - return true; - } - - // Check vBox - if (math.pointInsidePolygon(x, y, this.points, centerX, centerY, width - diam, height, [0, -1], padding)) { - return true; - } - - // check non-rounded top side - var outerWidth = width / 2 + 2 * padding; - var outerHeight = height / 2 + 2 * padding; - var points = [centerX - outerWidth, centerY - outerHeight, centerX - outerWidth, centerY, centerX + outerWidth, centerY, centerX + outerWidth, centerY - outerHeight]; - if (math.pointInsidePolygonPoints(x, y, points)) { - return true; - } - - // Check bottom right quarter circle - if (math.checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY + height / 2 - cornerRadius, padding)) { - - return true; - } - - // Check bottom left quarter circle - if (math.checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY + height / 2 - cornerRadius, padding)) { - - return true; - } - - return false; - } - }; -}; - -BRp.registerNodeShapes = function () { - var nodeShapes = this.nodeShapes = {}; - var renderer = this; - - this.generateEllipse(); - - this.generatePolygon('triangle', math.generateUnitNgonPointsFitToSquare(3, 0)); - - this.generatePolygon('rectangle', math.generateUnitNgonPointsFitToSquare(4, 0)); - nodeShapes['square'] = nodeShapes['rectangle']; - - this.generateRoundRectangle(); - - this.generateCutRectangle(); - - this.generateBarrel(); - - this.generateBottomRoundrectangle(); - - this.generatePolygon('diamond', [0, 1, 1, 0, 0, -1, -1, 0]); - - this.generatePolygon('pentagon', math.generateUnitNgonPointsFitToSquare(5, 0)); - - this.generatePolygon('hexagon', math.generateUnitNgonPointsFitToSquare(6, 0)); - - this.generatePolygon('heptagon', math.generateUnitNgonPointsFitToSquare(7, 0)); - - this.generatePolygon('octagon', math.generateUnitNgonPointsFitToSquare(8, 0)); - - var star5Points = new Array(20); - { - var outerPoints = math.generateUnitNgonPoints(5, 0); - var innerPoints = math.generateUnitNgonPoints(5, Math.PI / 5); - - // Outer radius is 1; inner radius of star is smaller - var innerRadius = 0.5 * (3 - Math.sqrt(5)); - innerRadius *= 1.57; - - for (var i = 0; i < innerPoints.length / 2; i++) { - innerPoints[i * 2] *= innerRadius; - innerPoints[i * 2 + 1] *= innerRadius; - } - - for (var i = 0; i < 20 / 4; i++) { - star5Points[i * 4] = outerPoints[i * 2]; - star5Points[i * 4 + 1] = outerPoints[i * 2 + 1]; - - star5Points[i * 4 + 2] = innerPoints[i * 2]; - star5Points[i * 4 + 3] = innerPoints[i * 2 + 1]; - } - } - - star5Points = math.fitPolygonToSquare(star5Points); - - this.generatePolygon('star', star5Points); - - this.generatePolygon('vee', [-1, -1, 0, -0.333, 1, -1, 0, 1]); - - this.generatePolygon('rhomboid', [-1, -1, 0.333, -1, 1, 1, -0.333, 1]); - - this.generatePolygon('concavehexagon', [-1, -0.95, -0.75, 0, -1, 0.95, 1, 0.95, 0.75, 0, 1, -0.95]); - - this.generatePolygon('tag', [-1, -1, 0.25, -1, 1, 0, 0.25, 1, -1, 1]); - - nodeShapes.makePolygon = function (points) { - - // use caching on user-specified polygons so they are as fast as native shapes - - var key = points.join('$'); - var name = 'polygon-' + key; - var shape; - - if (shape = this[name]) { - // got cached shape - return shape; - } - - // create and cache new shape - return renderer.generatePolygon(name, points); - }; -}; - -module.exports = BRp; - -/***/ }), -/* 101 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); - -var BRp = {}; - -BRp.timeToRender = function () { - return this.redrawTotalTime / this.redrawCount; -}; - -BRp.redraw = function (options) { - options = options || util.staticEmptyObject(); - - var r = this; - - if (r.averageRedrawTime === undefined) { - r.averageRedrawTime = 0; - } - if (r.lastRedrawTime === undefined) { - r.lastRedrawTime = 0; - } - if (r.lastDrawTime === undefined) { - r.lastDrawTime = 0; - } - - r.requestedFrame = true; - r.renderOptions = options; -}; - -BRp.beforeRender = function (fn, priority) { - // the renderer can't add tick callbacks when destroyed - if (this.destroyed) { - return; - } - - priority = priority || 0; - - var cbs = this.beforeRenderCallbacks; - - cbs.push({ fn: fn, priority: priority }); - - // higher priority callbacks executed first - cbs.sort(function (a, b) { - return b.priority - a.priority; - }); -}; - -var beforeRenderCallbacks = function beforeRenderCallbacks(r, willDraw, startTime) { - var cbs = r.beforeRenderCallbacks; - - for (var i = 0; i < cbs.length; i++) { - cbs[i].fn(willDraw, startTime); - } -}; - -BRp.startRenderLoop = function () { - var r = this; - - if (r.renderLoopStarted) { - return; - } else { - r.renderLoopStarted = true; - } - - var renderFn = function renderFn(requestTime) { - if (r.destroyed) { - return; - } - - if (r.requestedFrame && !r.skipFrame) { - beforeRenderCallbacks(r, true, requestTime); - - var startTime = util.performanceNow(); - - r.render(r.renderOptions); - - var endTime = r.lastDrawTime = util.performanceNow(); - - if (r.averageRedrawTime === undefined) { - r.averageRedrawTime = endTime - startTime; - } - - if (r.redrawCount === undefined) { - r.redrawCount = 0; - } - - r.redrawCount++; - - if (r.redrawTotalTime === undefined) { - r.redrawTotalTime = 0; - } - - var duration = endTime - startTime; - - r.redrawTotalTime += duration; - r.lastRedrawTime = duration; - - // use a weighted average with a bias from the previous average so we don't spike so easily - r.averageRedrawTime = r.averageRedrawTime / 2 + duration / 2; - - r.requestedFrame = false; - } else { - beforeRenderCallbacks(r, false, requestTime); - } - - r.skipFrame = false; - - util.requestAnimationFrame(renderFn); - }; - - util.requestAnimationFrame(renderFn); -}; - -module.exports = BRp; - -/***/ }), -/* 102 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var CRp = {}; - -var impl; - -CRp.arrowShapeImpl = function (name) { - return (impl || (impl = { - 'polygon': function polygon(context, points) { - for (var i = 0; i < points.length; i++) { - var pt = points[i]; - - context.lineTo(pt.x, pt.y); - } - }, - - 'triangle-backcurve': function triangleBackcurve(context, points, controlPoint) { - var firstPt; - - for (var i = 0; i < points.length; i++) { - var pt = points[i]; - - if (i === 0) { - firstPt = pt; - } - - context.lineTo(pt.x, pt.y); - } - - context.quadraticCurveTo(controlPoint.x, controlPoint.y, firstPt.x, firstPt.y); - }, - - 'triangle-tee': function triangleTee(context, trianglePoints, teePoints) { - if (context.beginPath) { - context.beginPath(); - } - - var triPts = trianglePoints; - for (var i = 0; i < triPts.length; i++) { - var pt = triPts[i]; - - context.lineTo(pt.x, pt.y); - } - - if (context.closePath) { - context.closePath(); - } - - if (context.beginPath) { - context.beginPath(); - } - - var teePts = teePoints; - var firstTeePt = teePoints[0]; - context.moveTo(firstTeePt.x, firstTeePt.y); - - for (var i = 0; i < teePts.length; i++) { - var pt = teePts[i]; - - context.lineTo(pt.x, pt.y); - } - if (context.closePath) { - context.closePath(); - } - }, - - 'triangle-cross': function triangleCross(context, trianglePoints, crossLinePoints) { - if (context.beginPath) { - context.beginPath(); - } - - var triPts = trianglePoints; - for (var i = 0; i < triPts.length; i++) { - var pt = triPts[i]; - - context.lineTo(pt.x, pt.y); - } - - if (context.closePath) { - context.closePath(); - } - - if (context.beginPath) { - context.beginPath(); - } - - var teePts = crossLinePoints; - var firstTeePt = crossLinePoints[0]; - context.moveTo(firstTeePt.x, firstTeePt.y); - - for (var i = 0; i < teePts.length; i++) { - var pt = teePts[i]; - - context.lineTo(pt.x, pt.y); - } - if (context.closePath) { - context.closePath(); - } - }, - - 'circle': function circle(context, rx, ry, r) { - context.arc(rx, ry, r, 0, Math.PI * 2, false); - } - }))[name]; -}; - -module.exports = CRp; - -/***/ }), -/* 103 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var CRp = {}; - -CRp.drawEdge = function (context, edge, shiftToOriginWithBb, drawLabel) { - var r = this; - var rs = edge._private.rscratch; - var usePaths = r.usePaths(); - - // if bezier ctrl pts can not be calculated, then die - if (rs.badLine || isNaN(rs.allpts[0])) { - // isNaN in case edge is impossible and browser bugs (e.g. safari) - return; - } - - if (!edge.visible()) { - return; - } - - var bb = void 0; - if (shiftToOriginWithBb) { - bb = shiftToOriginWithBb; - - context.translate(-bb.x1, -bb.y1); - } - - var overlayPadding = edge.pstyle('overlay-padding').pfValue; - var overlayWidth = 2 * overlayPadding; - var overlayOpacity = edge.pstyle('overlay-opacity').value; - var overlayColor = edge.pstyle('overlay-color').value; - var lineColor = edge.pstyle('line-color').value; - var opacity = edge.pstyle('opacity').value; - var lineStyle = edge.pstyle('line-style').value; - var edgeWidth = edge.pstyle('width').pfValue; - - var drawLine = function drawLine() { - var strokeOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : opacity; - - context.lineWidth = edgeWidth; - context.lineCap = 'butt'; - - r.strokeStyle(context, lineColor[0], lineColor[1], lineColor[2], strokeOpacity); - - r.drawEdgePath(edge, context, rs.allpts, lineStyle); - }; - - var drawOverlay = function drawOverlay() { - var strokeOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : overlayOpacity; - - context.lineWidth = overlayWidth; - - if (rs.edgeType === 'self' && !usePaths) { - context.lineCap = 'butt'; - } else { - context.lineCap = 'round'; - } - - r.strokeStyle(context, overlayColor[0], overlayColor[1], overlayColor[2], strokeOpacity); - - r.drawEdgePath(edge, context, rs.allpts, 'solid'); - }; - - var drawArrows = function drawArrows() { - var arrowOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : opacity; - - r.drawArrowheads(context, edge, arrowOpacity); - }; - - var drawText = function drawText() { - r.drawElementText(context, edge, drawLabel); - }; - - context.lineJoin = 'round'; - - var ghost = edge.pstyle('ghost').value === 'yes'; - - if (ghost) { - var gx = edge.pstyle('ghost-offset-x').pfValue; - var gy = edge.pstyle('ghost-offset-y').pfValue; - var ghostOpacity = edge.pstyle('ghost-opacity').value; - var effectiveGhostOpacity = opacity * ghostOpacity; - - context.translate(gx, gy); - - drawLine(effectiveGhostOpacity); - drawArrows(effectiveGhostOpacity); - - context.translate(-gx, -gy); - } - - drawLine(); - drawArrows(); - drawOverlay(); - drawText(); - - if (shiftToOriginWithBb) { - context.translate(bb.x1, bb.y1); - } -}; - -CRp.drawEdgePath = function (edge, context, pts, type) { - var rs = edge._private.rscratch; - var canvasCxt = context; - var path = void 0; - var pathCacheHit = false; - var usePaths = this.usePaths(); - - if (usePaths) { - var pathCacheKey = pts.join('$'); - var keyMatches = rs.pathCacheKey && rs.pathCacheKey === pathCacheKey; - - if (keyMatches) { - path = context = rs.pathCache; - pathCacheHit = true; - } else { - path = context = new Path2D(); // eslint-disable-line no-undef - rs.pathCacheKey = pathCacheKey; - rs.pathCache = path; - } - } - - if (canvasCxt.setLineDash) { - // for very outofdate browsers - switch (type) { - case 'dotted': - canvasCxt.setLineDash([1, 1]); - break; - - case 'dashed': - canvasCxt.setLineDash([6, 3]); - break; - - case 'solid': - canvasCxt.setLineDash([]); - break; - } - } - - if (!pathCacheHit && !rs.badLine) { - if (context.beginPath) { - context.beginPath(); - } - context.moveTo(pts[0], pts[1]); - - switch (rs.edgeType) { - case 'bezier': - case 'self': - case 'compound': - case 'multibezier': - for (var i = 2; i + 3 < pts.length; i += 4) { - context.quadraticCurveTo(pts[i], pts[i + 1], pts[i + 2], pts[i + 3]); - } - break; - - case 'straight': - case 'segments': - case 'haystack': - for (var _i = 2; _i + 1 < pts.length; _i += 2) { - context.lineTo(pts[_i], pts[_i + 1]); - } - break; - } - } - - context = canvasCxt; - if (usePaths) { - context.stroke(path); - } else { - context.stroke(); - } - - // reset any line dashes - if (context.setLineDash) { - // for very outofdate browsers - context.setLineDash([]); - } -}; - -CRp.drawArrowheads = function (context, edge, opacity) { - var rs = edge._private.rscratch; - var isHaystack = rs.edgeType === 'haystack'; - - if (!isHaystack) { - this.drawArrowhead(context, edge, 'source', rs.arrowStartX, rs.arrowStartY, rs.srcArrowAngle, opacity); - } - - this.drawArrowhead(context, edge, 'mid-target', rs.midX, rs.midY, rs.midtgtArrowAngle, opacity); - - this.drawArrowhead(context, edge, 'mid-source', rs.midX, rs.midY, rs.midsrcArrowAngle, opacity); - - if (!isHaystack) { - this.drawArrowhead(context, edge, 'target', rs.arrowEndX, rs.arrowEndY, rs.tgtArrowAngle, opacity); - } -}; - -CRp.drawArrowhead = function (context, edge, prefix, x, y, angle, opacity) { - if (isNaN(x) || x == null || isNaN(y) || y == null || isNaN(angle) || angle == null) { - return; - } - - var self = this; - var arrowShape = edge.pstyle(prefix + '-arrow-shape').value; - if (arrowShape === 'none') { - return; - } - - var arrowClearFill = edge.pstyle(prefix + '-arrow-fill').value === 'hollow' ? 'both' : 'filled'; - var arrowFill = edge.pstyle(prefix + '-arrow-fill').value; - var edgeWidth = edge.pstyle('width').pfValue; - var edgeOpacity = edge.pstyle('opacity').value; - - if (opacity === undefined) { - opacity = edgeOpacity; - } - - var gco = context.globalCompositeOperation; - - if (opacity !== 1 || arrowFill === 'hollow') { - // then extra clear is needed - context.globalCompositeOperation = 'destination-out'; - - self.fillStyle(context, 255, 255, 255, 1); - self.strokeStyle(context, 255, 255, 255, 1); - - self.drawArrowShape(edge, prefix, context, arrowClearFill, edgeWidth, arrowShape, x, y, angle); - - context.globalCompositeOperation = gco; - } // otherwise, the opaque arrow clears it for free :) - - var color = edge.pstyle(prefix + '-arrow-color').value; - self.fillStyle(context, color[0], color[1], color[2], opacity); - self.strokeStyle(context, color[0], color[1], color[2], opacity); - - self.drawArrowShape(edge, prefix, context, arrowFill, edgeWidth, arrowShape, x, y, angle); -}; - -CRp.drawArrowShape = function (edge, arrowType, context, fill, edgeWidth, shape, x, y, angle) { - var r = this; - var usePaths = this.usePaths(); - var rs = edge._private.rscratch; - var pathCacheHit = false; - var path = void 0; - var canvasContext = context; - var translation = { x: x, y: y }; - var scale = edge.pstyle('arrow-scale').value; - var size = this.getArrowWidth(edgeWidth, scale); - var shapeImpl = r.arrowShapes[shape]; - - if (usePaths) { - var pathCacheKey = size + '$' + shape + '$' + angle + '$' + x + '$' + y; - rs.arrowPathCacheKey = rs.arrowPathCacheKey || {}; - rs.arrowPathCache = rs.arrowPathCache || {}; - - var alreadyCached = rs.arrowPathCacheKey[arrowType] === pathCacheKey; - if (alreadyCached) { - path = context = rs.arrowPathCache[arrowType]; - pathCacheHit = true; - } else { - path = context = new Path2D(); // eslint-disable-line no-undef - rs.arrowPathCacheKey[arrowType] = pathCacheKey; - rs.arrowPathCache[arrowType] = path; - } - } - - if (context.beginPath) { - context.beginPath(); - } - - if (!pathCacheHit) { - shapeImpl.draw(context, size, angle, translation, edgeWidth); - } - - if (!shapeImpl.leavePathOpen && context.closePath) { - context.closePath(); - } - - context = canvasContext; - - if (fill === 'filled' || fill === 'both') { - if (usePaths) { - context.fill(path); - } else { - context.fill(); - } - } - - if (fill === 'hollow' || fill === 'both') { - context.lineWidth = shapeImpl.matchEdgeWidth ? edgeWidth : 1; - context.lineJoin = 'miter'; - - if (usePaths) { - context.stroke(path); - } else { - context.stroke(); - } - } -}; - -module.exports = CRp; - -/***/ }), -/* 104 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var math = __webpack_require__(2); - -var CRp = {}; - -CRp.drawElement = function (context, ele, shiftToOriginWithBb, showLabel) { - var r = this; - - if (ele.isNode()) { - r.drawNode(context, ele, shiftToOriginWithBb, showLabel); - } else { - r.drawEdge(context, ele, shiftToOriginWithBb, showLabel); - } -}; - -CRp.drawCachedElement = function (context, ele, pxRatio, extent) { - var r = this; - var bb = ele.boundingBox(); - - if (bb.w === 0 || bb.h === 0) { - return; - } - - if (!extent || math.boundingBoxesIntersect(bb, extent)) { - var cache = r.data.eleTxrCache.getElement(ele, bb, pxRatio); - - if (cache != null) { - context.drawImage(cache.texture.canvas, cache.x, 0, cache.width, cache.height, bb.x1, bb.y1, bb.w, bb.h); - } else { - // if the element is not cacheable, then draw directly - r.drawElement(context, ele); - } - } -}; - -CRp.drawElements = function (context, eles) { - var r = this; - - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - - r.drawElement(context, ele); - } -}; - -CRp.drawCachedElements = function (context, eles, pxRatio, extent) { - var r = this; - - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - - r.drawCachedElement(context, ele, pxRatio, extent); - } -}; - -CRp.drawCachedNodes = function (context, eles, pxRatio, extent) { - var r = this; - - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - - if (!ele.isNode()) { - continue; - } - - r.drawCachedElement(context, ele, pxRatio, extent); - } -}; - -CRp.drawLayeredElements = function (context, eles, pxRatio, extent) { - var r = this; - - var layers = r.data.lyrTxrCache.getLayers(eles, pxRatio); - - if (layers) { - for (var i = 0; i < layers.length; i++) { - var layer = layers[i]; - var bb = layer.bb; - - if (bb.w === 0 || bb.h === 0) { - continue; - } - - context.drawImage(layer.canvas, bb.x1, bb.y1, bb.w, bb.h); - } - } else { - // fall back on plain caching if no layers - r.drawCachedElements(context, eles, pxRatio, extent); - } -}; - -CRp.drawDebugPoints = function (context, eles) { - var draw = function draw(x, y, color) { - context.fillStyle = color; - context.fillRect(x - 1, y - 1, 3, 3); - }; - - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - var rs = ele._private.rscratch; - - if (ele.isNode()) { - var p = ele.position(); - - draw(p.x, p.y, 'magenta'); - } else { - var pts = rs.allpts; - - for (var j = 0; j + 1 < pts.length; j += 2) { - var x = pts[j]; - var y = pts[j + 1]; - - draw(x, y, 'cyan'); - } - - draw(rs.midX, rs.midY, 'yellow'); - } - } -}; - -module.exports = CRp; - -/***/ }), -/* 105 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var CRp = {}; - -CRp.safeDrawImage = function (context, img, ix, iy, iw, ih, x, y, w, h) { - var r = this; - - // detect problematic cases for old browsers with bad images (cheaper than try-catch) - if (iw <= 0 || ih <= 0 || w <= 0 || h <= 0) { - return; - } - - context.drawImage(img, ix, iy, iw, ih, x, y, w, h); -}; - -CRp.drawInscribedImage = function (context, img, node, index, nodeOpacity) { - var r = this; - var pos = node.position(); - var nodeX = pos.x; - var nodeY = pos.y; - var styleObj = node.cy().style(); - var getIndexedStyle = styleObj.getIndexedStyle.bind(styleObj); - var fit = getIndexedStyle(node, 'background-fit', 'value', index); - var repeat = getIndexedStyle(node, 'background-repeat', 'value', index); - var nodeW = node.width(); - var nodeH = node.height(); - var paddingX2 = node.padding() * 2; - var nodeTW = nodeW + (getIndexedStyle(node, 'background-width-relative-to', 'value', index) === 'inner' ? 0 : paddingX2); - var nodeTH = nodeH + (getIndexedStyle(node, 'background-height-relative-to', 'value', index) === 'inner' ? 0 : paddingX2); - var rs = node._private.rscratch; - var clip = node.pstyle('background-clip').value; - var shouldClip = clip === 'node'; - var imgOpacity = getIndexedStyle(node, 'background-image-opacity', 'value', index) * nodeOpacity; - - var imgW = img.width || img.cachedW; - var imgH = img.height || img.cachedH; - - // workaround for broken browsers like ie - if (null == imgW || null == imgH) { - document.body.appendChild(img); // eslint-disable-line no-undef - - imgW = img.cachedW = img.width || img.offsetWidth; - imgH = img.cachedH = img.height || img.offsetHeight; - - document.body.removeChild(img); // eslint-disable-line no-undef - } - - var w = imgW; - var h = imgH; - - if (getIndexedStyle(node, 'background-width', 'value', index) !== 'auto') { - if (getIndexedStyle(node, 'background-width', 'units', index) === '%') { - w = getIndexedStyle(node, 'background-width', 'pfValue', index) * nodeTW; - } else { - w = getIndexedStyle(node, 'background-width', 'pfValue', index); - } - } - - if (getIndexedStyle(node, 'background-height', 'value', index) !== 'auto') { - if (getIndexedStyle(node, 'background-height', 'units', index) === '%') { - h = getIndexedStyle(node, 'background-height', 'pfValue', index) * nodeTH; - } else { - h = getIndexedStyle(node, 'background-height', 'pfValue', index); - } - } - - if (w === 0 || h === 0) { - return; // no point in drawing empty image (and chrome is broken in this case) - } - - if (fit === 'contain') { - var scale = Math.min(nodeTW / w, nodeTH / h); - - w *= scale; - h *= scale; - } else if (fit === 'cover') { - var scale = Math.max(nodeTW / w, nodeTH / h); - - w *= scale; - h *= scale; - } - - var x = nodeX - nodeTW / 2; // left - if (getIndexedStyle(node, 'background-position-x', 'units', index) === '%') { - x += (nodeTW - w) * getIndexedStyle(node, 'background-position-x', 'pfValue', index); - } else { - x += getIndexedStyle(node, 'background-position-x', 'pfValue', index); - } - - var y = nodeY - nodeTH / 2; // top - if (getIndexedStyle(node, 'background-position-y', 'units', index) === '%') { - y += (nodeTH - h) * getIndexedStyle(node, 'background-position-y', 'pfValue', index); - } else { - y += getIndexedStyle(node, 'background-position-y', 'pfValue', index); - } - - if (rs.pathCache) { - x -= nodeX; - y -= nodeY; - - nodeX = 0; - nodeY = 0; - } - - var gAlpha = context.globalAlpha; - - context.globalAlpha = imgOpacity; - - if (repeat === 'no-repeat') { - - if (shouldClip) { - context.save(); - - if (rs.pathCache) { - context.clip(rs.pathCache); - } else { - r.nodeShapes[r.getNodeShape(node)].draw(context, nodeX, nodeY, nodeTW, nodeTH); - - context.clip(); - } - } - - r.safeDrawImage(context, img, 0, 0, imgW, imgH, x, y, w, h); - - if (shouldClip) { - context.restore(); - } - } else { - var pattern = context.createPattern(img, repeat); - context.fillStyle = pattern; - - r.nodeShapes[r.getNodeShape(node)].draw(context, nodeX, nodeY, nodeTW, nodeTH); - - context.translate(x, y); - context.fill(); - context.translate(-x, -y); - } - - context.globalAlpha = gAlpha; -}; - -module.exports = CRp; - -/***/ }), -/* 106 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var math = __webpack_require__(2); - -var CRp = {}; - -CRp.eleTextBiggerThanMin = function (ele, scale) { - if (!scale) { - var zoom = ele.cy().zoom(); - var pxRatio = this.getPixelRatio(); - var lvl = Math.ceil(math.log2(zoom * pxRatio)); // the effective texture level - - scale = Math.pow(2, lvl); - } - - var computedSize = ele.pstyle('font-size').pfValue * scale; - var minSize = ele.pstyle('min-zoomed-font-size').pfValue; - - if (computedSize < minSize) { - return false; - } - - return true; -}; - -CRp.drawElementText = function (context, ele, force) { - var r = this; - - if (force === undefined) { - if (!r.eleTextBiggerThanMin(ele)) { - return; - } - } else { - if (!force) { - return; - } - } - - if (ele.isNode()) { - var label = ele.pstyle('label'); - - if (!label || !label.value) { - return; - } - - var textHalign = ele.pstyle('text-halign').strValue; - var textValign = ele.pstyle('text-valign').strValue; - - switch (textHalign) { - case 'left': - context.textAlign = 'right'; - break; - - case 'right': - context.textAlign = 'left'; - break; - - default: - // e.g. center - context.textAlign = 'center'; - } - - context.textBaseline = 'bottom'; - } else { - var label = ele.pstyle('label'); - var srcLabel = ele.pstyle('source-label'); - var tgtLabel = ele.pstyle('target-label'); - - if ((!label || !label.value) && (!srcLabel || !srcLabel.value) && (!tgtLabel || !tgtLabel.value)) { - return; - } - - context.textAlign = 'center'; - context.textBaseline = 'bottom'; - } - - r.drawText(context, ele); - - if (ele.isEdge()) { - r.drawText(context, ele, 'source'); - - r.drawText(context, ele, 'target'); - } -}; - -CRp.drawNodeText = CRp.drawEdgeText = CRp.drawElementText; - -CRp.getFontCache = function (context) { - var cache; - - this.fontCaches = this.fontCaches || []; - - for (var i = 0; i < this.fontCaches.length; i++) { - cache = this.fontCaches[i]; - - if (cache.context === context) { - return cache; - } - } - - cache = { - context: context - }; - this.fontCaches.push(cache); - - return cache; -}; - -// set up canvas context with font -// returns transformed text string -CRp.setupTextStyle = function (context, ele) { - // Font style - var parentOpacity = ele.effectiveOpacity(); - var labelStyle = ele.pstyle('font-style').strValue; - var labelSize = ele.pstyle('font-size').pfValue + 'px'; - var labelFamily = ele.pstyle('font-family').strValue; - var labelWeight = ele.pstyle('font-weight').strValue; - var opacity = ele.pstyle('text-opacity').value * ele.pstyle('opacity').value * parentOpacity; - var outlineOpacity = ele.pstyle('text-outline-opacity').value * opacity; - var color = ele.pstyle('color').value; - var outlineColor = ele.pstyle('text-outline-color').value; - - var fontCacheKey = ele._private.fontKey; - var cache = this.getFontCache(context); - - if (cache.key !== fontCacheKey) { - context.font = labelStyle + ' ' + labelWeight + ' ' + labelSize + ' ' + labelFamily; - - cache.key = fontCacheKey; - } - - // Calculate text draw position based on text alignment - - // so text outlines aren't jagged - context.lineJoin = 'round'; - - this.fillStyle(context, color[0], color[1], color[2], opacity); - - this.strokeStyle(context, outlineColor[0], outlineColor[1], outlineColor[2], outlineOpacity); -}; - -function roundRect(ctx, x, y, width, height, radius) { - var radius = radius || 5; - ctx.beginPath(); - ctx.moveTo(x + radius, y); - ctx.lineTo(x + width - radius, y); - ctx.quadraticCurveTo(x + width, y, x + width, y + radius); - ctx.lineTo(x + width, y + height - radius); - ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height); - ctx.lineTo(x + radius, y + height); - ctx.quadraticCurveTo(x, y + height, x, y + height - radius); - ctx.lineTo(x, y + radius); - ctx.quadraticCurveTo(x, y, x + radius, y); - ctx.closePath(); - ctx.fill(); -} - -// Draw text -CRp.drawText = function (context, ele, prefix) { - var _p = ele._private; - var rscratch = _p.rscratch; - var parentOpacity = ele.effectiveOpacity(); - if (parentOpacity === 0 || ele.pstyle('text-opacity').value === 0) { - return; - } - - var textX = util.getPrefixedProperty(rscratch, 'labelX', prefix); - var textY = util.getPrefixedProperty(rscratch, 'labelY', prefix); - var text = this.getLabelText(ele, prefix); - - if (text != null && text !== '' && !isNaN(textX) && !isNaN(textY)) { - this.setupTextStyle(context, ele); - - var pdash = prefix ? prefix + '-' : ''; - var textW = util.getPrefixedProperty(rscratch, 'labelWidth', prefix); - var textH = util.getPrefixedProperty(rscratch, 'labelHeight', prefix); - var textAngle = util.getPrefixedProperty(rscratch, 'labelAngle', prefix); - var marginX = ele.pstyle(pdash + 'text-margin-x').pfValue; - var marginY = ele.pstyle(pdash + 'text-margin-y').pfValue; - - var isEdge = ele.isEdge(); - var isNode = ele.isNode(); - - var halign = ele.pstyle('text-halign').value; - var valign = ele.pstyle('text-valign').value; - - if (isEdge) { - halign = 'center'; - valign = 'center'; - } - - textX += marginX; - textY += marginY; - - var rotation = ele.pstyle('text-rotation'); - var theta; - - if (rotation.strValue === 'autorotate') { - theta = isEdge ? textAngle : 0; - } else if (rotation.strValue === 'none') { - theta = 0; - } else { - theta = rotation.pfValue; - } - - if (theta !== 0) { - var orgTextX = textX; - var orgTextY = textY; - - context.translate(orgTextX, orgTextY); - context.rotate(theta); - - textX = 0; - textY = 0; - } - - switch (valign) { - case 'top': - break; - case 'center': - textY += textH / 2; - break; - case 'bottom': - textY += textH; - break; - } - - var backgroundOpacity = ele.pstyle('text-background-opacity').value; - var borderOpacity = ele.pstyle('text-border-opacity').value; - var textBorderWidth = ele.pstyle('text-border-width').pfValue; - var backgroundPadding = ele.pstyle('text-background-padding').pfValue; - - if (backgroundOpacity > 0 || textBorderWidth > 0 && borderOpacity > 0) { - var bgX = textX - backgroundPadding; - - switch (halign) { - case 'left': - bgX -= textW; - break; - case 'center': - bgX -= textW / 2; - break; - case 'right': - break; - } - - var bgY = textY - textH - backgroundPadding; - var bgW = textW + 2 * backgroundPadding; - var bgH = textH + 2 * backgroundPadding; - - if (backgroundOpacity > 0) { - var textFill = context.fillStyle; - var textBackgroundColor = ele.pstyle('text-background-color').value; - - context.fillStyle = 'rgba(' + textBackgroundColor[0] + ',' + textBackgroundColor[1] + ',' + textBackgroundColor[2] + ',' + backgroundOpacity * parentOpacity + ')'; - var styleShape = ele.pstyle('text-background-shape').strValue; - if (styleShape == 'roundrectangle') { - roundRect(context, bgX, bgY, bgW, bgH, 2); - } else { - context.fillRect(bgX, bgY, bgW, bgH); - } - context.fillStyle = textFill; - } - - if (textBorderWidth > 0 && borderOpacity > 0) { - var textStroke = context.strokeStyle; - var textLineWidth = context.lineWidth; - var textBorderColor = ele.pstyle('text-border-color').value; - var textBorderStyle = ele.pstyle('text-border-style').value; - - context.strokeStyle = 'rgba(' + textBorderColor[0] + ',' + textBorderColor[1] + ',' + textBorderColor[2] + ',' + borderOpacity * parentOpacity + ')'; - context.lineWidth = textBorderWidth; - - if (context.setLineDash) { - // for very outofdate browsers - switch (textBorderStyle) { - case 'dotted': - context.setLineDash([1, 1]); - break; - case 'dashed': - context.setLineDash([4, 2]); - break; - case 'double': - context.lineWidth = textBorderWidth / 4; // 50% reserved for white between the two borders - context.setLineDash([]); - break; - case 'solid': - context.setLineDash([]); - break; - } - } - - context.strokeRect(bgX, bgY, bgW, bgH); - - if (textBorderStyle === 'double') { - var whiteWidth = textBorderWidth / 2; - - context.strokeRect(bgX + whiteWidth, bgY + whiteWidth, bgW - whiteWidth * 2, bgH - whiteWidth * 2); - } - - if (context.setLineDash) { - // for very outofdate browsers - context.setLineDash([]); - } - context.lineWidth = textLineWidth; - context.strokeStyle = textStroke; - } - } - - var lineWidth = 2 * ele.pstyle('text-outline-width').pfValue; // *2 b/c the stroke is drawn centred on the middle - - if (lineWidth > 0) { - context.lineWidth = lineWidth; - } - - if (ele.pstyle('text-wrap').value === 'wrap') { - var lines = util.getPrefixedProperty(rscratch, 'labelWrapCachedLines', prefix); - var lineHeight = textH / lines.length; - - switch (valign) { - case 'top': - textY -= (lines.length - 1) * lineHeight; - break; - case 'center': - case 'bottom': - textY -= (lines.length - 1) * lineHeight; - break; - } - - for (var l = 0; l < lines.length; l++) { - if (lineWidth > 0) { - context.strokeText(lines[l], textX, textY); - } - - context.fillText(lines[l], textX, textY); - - textY += lineHeight; - } - } else { - if (lineWidth > 0) { - context.strokeText(text, textX, textY); - } - - context.fillText(text, textX, textY); - } - - if (theta !== 0) { - context.rotate(-theta); - context.translate(-orgTextX, -orgTextY); - } - } -}; - -module.exports = CRp; - -/***/ }), -/* 107 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/* global Path2D */ - -var is = __webpack_require__(0); - -var CRp = {}; - -CRp.drawNode = function (context, node, shiftToOriginWithBb, drawLabel) { - var r = this; - var nodeWidth = void 0, - nodeHeight = void 0; - var _p = node._private; - var rs = _p.rscratch; - var pos = node.position(); - - if (!is.number(pos.x) || !is.number(pos.y)) { - return; // can't draw node with undefined position - } - - if (!node.visible()) { - return; - } - - var parentOpacity = node.effectiveOpacity(); - - var usePaths = r.usePaths(); - var path = void 0; - var pathCacheHit = false; - - var padding = node.padding(); - - nodeWidth = node.width() + 2 * padding; - nodeHeight = node.height() + 2 * padding; - - // - // setup shift - - var bb = void 0; - if (shiftToOriginWithBb) { - bb = shiftToOriginWithBb; - - context.translate(-bb.x1, -bb.y1); - } - - // - // load bg image - - var bgImgProp = node.pstyle('background-image'); - var urls = bgImgProp.value; - var urlDefined = new Array(urls.length); - var image = new Array(urls.length); - var numImages = 0; - for (var i = 0; i < urls.length; i++) { - var url = urls[i]; - var defd = urlDefined[i] = url != null && url !== 'none'; - - if (defd) { - var bgImgCrossOrigin = node.cy().style().getIndexedStyle(node, 'background-image-crossorigin', 'value', i); - - numImages++; - - // get image, and if not loaded then ask to redraw when later loaded - image[i] = r.getCachedImage(url, bgImgCrossOrigin, function () { - node.emitAndNotify('background'); - }); - } - } - - // - // setup styles - - var darkness = node.pstyle('background-blacken').value; - var borderWidth = node.pstyle('border-width').pfValue; - var bgColor = node.pstyle('background-color').value; - var bgOpacity = node.pstyle('background-opacity').value * parentOpacity; - var borderColor = node.pstyle('border-color').value; - var borderStyle = node.pstyle('border-style').value; - var borderOpacity = node.pstyle('border-opacity').value * parentOpacity; - - context.lineJoin = 'miter'; // so borders are square with the node shape - - var setupShapeColor = function setupShapeColor() { - var bgOpy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : bgOpacity; - - r.fillStyle(context, bgColor[0], bgColor[1], bgColor[2], bgOpy); - }; - - var setupBorderColor = function setupBorderColor() { - var bdrOpy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : borderOpacity; - - r.strokeStyle(context, borderColor[0], borderColor[1], borderColor[2], bdrOpy); - }; - - // - // setup shape - - var styleShape = node.pstyle('shape').strValue; - var shapePts = node.pstyle('shape-polygon-points').pfValue; - - if (usePaths) { - var pathCacheKey = styleShape + '$' + nodeWidth + '$' + nodeHeight + (styleShape === 'polygon' ? '$' + shapePts.join('$') : ''); - - context.translate(pos.x, pos.y); - - if (rs.pathCacheKey === pathCacheKey) { - path = rs.pathCache; - pathCacheHit = true; - } else { - path = new Path2D(); - rs.pathCacheKey = pathCacheKey; - rs.pathCache = path; - } - } - - var drawShape = function drawShape() { - if (!pathCacheHit) { - - var npos = pos; - - if (usePaths) { - npos = { - x: 0, - y: 0 - }; - } - - r.nodeShapes[r.getNodeShape(node)].draw(path || context, npos.x, npos.y, nodeWidth, nodeHeight); - } - - if (usePaths) { - context.fill(path); - } else { - context.fill(); - } - }; - - var drawImages = function drawImages() { - var nodeOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : parentOpacity; - - var prevBging = _p.backgrounding; - var totalCompleted = 0; - - for (var _i = 0; _i < image.length; _i++) { - if (urlDefined[_i] && image[_i].complete && !image[_i].error) { - totalCompleted++; - r.drawInscribedImage(context, image[_i], node, _i, nodeOpacity); - } - } - - _p.backgrounding = !(totalCompleted === numImages); - if (prevBging !== _p.backgrounding) { - // update style b/c :backgrounding state changed - node.updateStyle(false); - } - }; - - var drawPie = function drawPie() { - var redrawShape = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - var pieOpacity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : parentOpacity; - - if (r.hasPie(node)) { - r.drawPie(context, node, pieOpacity); - - // redraw/restore path if steps after pie need it - if (redrawShape) { - - if (!usePaths) { - r.nodeShapes[r.getNodeShape(node)].draw(context, pos.x, pos.y, nodeWidth, nodeHeight); - } - } - } - }; - - var darken = function darken() { - var darkenOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : parentOpacity; - - var opacity = (darkness > 0 ? darkness : -darkness) * darkenOpacity; - var c = darkness > 0 ? 0 : 255; - - if (darkness !== 0) { - r.fillStyle(context, c, c, c, opacity); - - if (usePaths) { - context.fill(path); - } else { - context.fill(); - } - } - }; - - var drawBorder = function drawBorder() { - if (borderWidth > 0) { - - context.lineWidth = borderWidth; - context.lineCap = 'butt'; - - if (context.setLineDash) { - // for very outofdate browsers - switch (borderStyle) { - case 'dotted': - context.setLineDash([1, 1]); - break; - - case 'dashed': - context.setLineDash([4, 2]); - break; - - case 'solid': - case 'double': - context.setLineDash([]); - break; - } - } - - if (usePaths) { - context.stroke(path); - } else { - context.stroke(); - } - - if (borderStyle === 'double') { - context.lineWidth = borderWidth / 3; - - var gco = context.globalCompositeOperation; - context.globalCompositeOperation = 'destination-out'; - - if (usePaths) { - context.stroke(path); - } else { - context.stroke(); - } - - context.globalCompositeOperation = gco; - } - - // reset in case we changed the border style - if (context.setLineDash) { - // for very outofdate browsers - context.setLineDash([]); - } - } - }; - - var drawOverlay = function drawOverlay() { - var overlayPadding = node.pstyle('overlay-padding').pfValue; - var overlayOpacity = node.pstyle('overlay-opacity').value; - var overlayColor = node.pstyle('overlay-color').value; - - if (overlayOpacity > 0) { - r.fillStyle(context, overlayColor[0], overlayColor[1], overlayColor[2], overlayOpacity); - - r.nodeShapes['roundrectangle'].draw(context, pos.x, pos.y, nodeWidth + overlayPadding * 2, nodeHeight + overlayPadding * 2); - - context.fill(); - } - }; - - var drawText = function drawText() { - r.drawElementText(context, node, drawLabel); - }; - - var ghost = node.pstyle('ghost').value === 'yes'; - - if (ghost) { - var gx = node.pstyle('ghost-offset-x').pfValue; - var gy = node.pstyle('ghost-offset-y').pfValue; - var ghostOpacity = node.pstyle('ghost-opacity').value; - var effGhostOpacity = ghostOpacity * parentOpacity; - - context.translate(gx, gy); - - setupShapeColor(ghostOpacity * bgOpacity); - drawShape(); - drawImages(effGhostOpacity); - drawPie(darkness !== 0 || borderWidth !== 0); - darken(effGhostOpacity); - setupBorderColor(ghostOpacity * borderOpacity); - drawBorder(); - - context.translate(-gx, -gy); - } - - setupShapeColor(); - drawShape(); - drawImages(); - drawPie(darkness !== 0 || borderWidth !== 0); - darken(); - setupBorderColor(); - drawBorder(); - - if (usePaths) { - context.translate(-pos.x, -pos.y); - } - - drawText(); - drawOverlay(); - - // - // clean up shift - - if (shiftToOriginWithBb) { - context.translate(bb.x1, bb.y1); - } -}; - -// does the node have at least one pie piece? -CRp.hasPie = function (node) { - node = node[0]; // ensure ele ref - - return node._private.hasPie; -}; - -CRp.drawPie = function (context, node, nodeOpacity, pos) { - node = node[0]; // ensure ele ref - pos = pos || node.position(); - - var cyStyle = node.cy().style(); - var pieSize = node.pstyle('pie-size'); - var x = pos.x; - var y = pos.y; - var nodeW = node.width(); - var nodeH = node.height(); - var radius = Math.min(nodeW, nodeH) / 2; // must fit in node - var lastPercent = 0; // what % to continue drawing pie slices from on [0, 1] - var usePaths = this.usePaths(); - - if (usePaths) { - x = 0; - y = 0; - } - - if (pieSize.units === '%') { - radius = radius * pieSize.pfValue; - } else if (pieSize.pfValue !== undefined) { - radius = pieSize.pfValue / 2; - } - - for (var i = 1; i <= cyStyle.pieBackgroundN; i++) { - // 1..N - var size = node.pstyle('pie-' + i + '-background-size').value; - var color = node.pstyle('pie-' + i + '-background-color').value; - var opacity = node.pstyle('pie-' + i + '-background-opacity').value * nodeOpacity; - var percent = size / 100; // map integer range [0, 100] to [0, 1] - - // percent can't push beyond 1 - if (percent + lastPercent > 1) { - percent = 1 - lastPercent; - } - - var angleStart = 1.5 * Math.PI + 2 * Math.PI * lastPercent; // start at 12 o'clock and go clockwise - var angleDelta = 2 * Math.PI * percent; - var angleEnd = angleStart + angleDelta; - - // ignore if - // - zero size - // - we're already beyond the full circle - // - adding the current slice would go beyond the full circle - if (size === 0 || lastPercent >= 1 || lastPercent + percent > 1) { - continue; - } - - context.beginPath(); - context.moveTo(x, y); - context.arc(x, y, radius, angleStart, angleEnd); - context.closePath(); - - this.fillStyle(context, color[0], color[1], color[2], opacity); - - context.fill(); - - lastPercent += percent; - } -}; - -module.exports = CRp; - -/***/ }), -/* 108 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var CRp = {}; - -var util = __webpack_require__(1); - -var motionBlurDelay = 100; - -// var isFirefox = typeof InstallTrigger !== 'undefined'; - -CRp.getPixelRatio = function () { - var context = this.data.contexts[0]; - - if (this.forcedPixelRatio != null) { - return this.forcedPixelRatio; - } - - var backingStore = context.backingStorePixelRatio || context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1; - - return (window.devicePixelRatio || 1) / backingStore; // eslint-disable-line no-undef -}; - -CRp.paintCache = function (context) { - var caches = this.paintCaches = this.paintCaches || []; - var needToCreateCache = true; - var cache; - - for (var i = 0; i < caches.length; i++) { - cache = caches[i]; - - if (cache.context === context) { - needToCreateCache = false; - break; - } - } - - if (needToCreateCache) { - cache = { - context: context - }; - caches.push(cache); - } - - return cache; -}; - -CRp.fillStyle = function (context, r, g, b, a) { - context.fillStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')'; - - // turn off for now, seems context does its own caching - - // var cache = this.paintCache(context); - - // var fillStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')'; - - // if( cache.fillStyle !== fillStyle ){ - // context.fillStyle = cache.fillStyle = fillStyle; - // } -}; - -CRp.strokeStyle = function (context, r, g, b, a) { - context.strokeStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')'; - - // turn off for now, seems context does its own caching - - // var cache = this.paintCache(context); - - // var strokeStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')'; - - // if( cache.strokeStyle !== strokeStyle ){ - // context.strokeStyle = cache.strokeStyle = strokeStyle; - // } -}; - -// Resize canvas -CRp.matchCanvasSize = function (container) { - var r = this; - var data = r.data; - var bb = r.findContainerClientCoords(); - var width = bb[2]; - var height = bb[3]; - var pixelRatio = r.getPixelRatio(); - var mbPxRatio = r.motionBlurPxRatio; - - if (container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE] || container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG]) { - pixelRatio = mbPxRatio; - } - - var canvasWidth = width * pixelRatio; - var canvasHeight = height * pixelRatio; - var canvas; - - if (canvasWidth === r.canvasWidth && canvasHeight === r.canvasHeight) { - return; // save cycles if same - } - - r.fontCaches = null; // resizing resets the style - - var canvasContainer = data.canvasContainer; - canvasContainer.style.width = width + 'px'; - canvasContainer.style.height = height + 'px'; - - for (var i = 0; i < r.CANVAS_LAYERS; i++) { - canvas = data.canvases[i]; - - canvas.width = canvasWidth; - canvas.height = canvasHeight; - - canvas.style.width = width + 'px'; - canvas.style.height = height + 'px'; - } - - for (var i = 0; i < r.BUFFER_COUNT; i++) { - canvas = data.bufferCanvases[i]; - - canvas.width = canvasWidth; - canvas.height = canvasHeight; - - canvas.style.width = width + 'px'; - canvas.style.height = height + 'px'; - } - - r.textureMult = 1; - if (pixelRatio <= 1) { - canvas = data.bufferCanvases[r.TEXTURE_BUFFER]; - - r.textureMult = 2; - canvas.width = canvasWidth * r.textureMult; - canvas.height = canvasHeight * r.textureMult; - } - - r.canvasWidth = canvasWidth; - r.canvasHeight = canvasHeight; -}; - -CRp.renderTo = function (cxt, zoom, pan, pxRatio) { - this.render({ - forcedContext: cxt, - forcedZoom: zoom, - forcedPan: pan, - drawAllLayers: true, - forcedPxRatio: pxRatio - }); -}; - -CRp.render = function (options) { - options = options || util.staticEmptyObject(); - - var forcedContext = options.forcedContext; - var drawAllLayers = options.drawAllLayers; - var drawOnlyNodeLayer = options.drawOnlyNodeLayer; - var forcedZoom = options.forcedZoom; - var forcedPan = options.forcedPan; - var r = this; - var pixelRatio = options.forcedPxRatio === undefined ? this.getPixelRatio() : options.forcedPxRatio; - var cy = r.cy;var data = r.data; - var needDraw = data.canvasNeedsRedraw; - var textureDraw = r.textureOnViewport && !forcedContext && (r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming); - var motionBlur = options.motionBlur !== undefined ? options.motionBlur : r.motionBlur; - var mbPxRatio = r.motionBlurPxRatio; - var hasCompoundNodes = cy.hasCompoundNodes(); - var inNodeDragGesture = r.hoverData.draggingEles; - var inBoxSelection = r.hoverData.selecting || r.touchData.selecting ? true : false; - motionBlur = motionBlur && !forcedContext && r.motionBlurEnabled && !inBoxSelection; - var motionBlurFadeEffect = motionBlur; - - if (!forcedContext) { - if (r.prevPxRatio !== pixelRatio) { - r.invalidateContainerClientCoordsCache(); - r.matchCanvasSize(r.container); - - r.redrawHint('eles', true); - r.redrawHint('drag', true); - } - - r.prevPxRatio = pixelRatio; - } - - if (!forcedContext && r.motionBlurTimeout) { - clearTimeout(r.motionBlurTimeout); - } - - if (motionBlur) { - if (r.mbFrames == null) { - r.mbFrames = 0; - } - - r.mbFrames++; - - if (r.mbFrames < 3) { - // need several frames before even high quality motionblur - motionBlurFadeEffect = false; - } - - // go to lower quality blurry frames when several m/b frames have been rendered (avoids flashing) - if (r.mbFrames > r.minMbLowQualFrames) { - //r.fullQualityMb = false; - r.motionBlurPxRatio = r.mbPxRBlurry; - } - } - - if (r.clearingMotionBlur) { - r.motionBlurPxRatio = 1; - } - - // b/c drawToContext() may be async w.r.t. redraw(), keep track of last texture frame - // because a rogue async texture frame would clear needDraw - if (r.textureDrawLastFrame && !textureDraw) { - needDraw[r.NODE] = true; - needDraw[r.SELECT_BOX] = true; - } - - var coreStyle = cy.style()._private.coreStyle; - - var zoom = cy.zoom(); - var effectiveZoom = forcedZoom !== undefined ? forcedZoom : zoom; - var pan = cy.pan(); - var effectivePan = { - x: pan.x, - y: pan.y - }; - - var vp = { - zoom: zoom, - pan: { - x: pan.x, - y: pan.y - } - }; - var prevVp = r.prevViewport; - var viewportIsDiff = prevVp === undefined || vp.zoom !== prevVp.zoom || vp.pan.x !== prevVp.pan.x || vp.pan.y !== prevVp.pan.y; - - // we want the low quality motionblur only when the viewport is being manipulated etc (where it's not noticed) - if (!viewportIsDiff && !(inNodeDragGesture && !hasCompoundNodes)) { - r.motionBlurPxRatio = 1; - } - - if (forcedPan) { - effectivePan = forcedPan; - } - - // apply pixel ratio - - effectiveZoom *= pixelRatio; - effectivePan.x *= pixelRatio; - effectivePan.y *= pixelRatio; - - var eles = r.getCachedZSortedEles(); - - function mbclear(context, x, y, w, h) { - var gco = context.globalCompositeOperation; - - context.globalCompositeOperation = 'destination-out'; - r.fillStyle(context, 255, 255, 255, r.motionBlurTransparency); - context.fillRect(x, y, w, h); - - context.globalCompositeOperation = gco; - } - - function setContextTransform(context, clear) { - var ePan, eZoom, w, h; - - if (!r.clearingMotionBlur && (context === data.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] || context === data.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG])) { - ePan = { - x: pan.x * mbPxRatio, - y: pan.y * mbPxRatio - }; - - eZoom = zoom * mbPxRatio; - - w = r.canvasWidth * mbPxRatio; - h = r.canvasHeight * mbPxRatio; - } else { - ePan = effectivePan; - eZoom = effectiveZoom; - - w = r.canvasWidth; - h = r.canvasHeight; - } - - context.setTransform(1, 0, 0, 1, 0, 0); - - if (clear === 'motionBlur') { - mbclear(context, 0, 0, w, h); - } else if (!forcedContext && (clear === undefined || clear)) { - context.clearRect(0, 0, w, h); - } - - if (!drawAllLayers) { - context.translate(ePan.x, ePan.y); - context.scale(eZoom, eZoom); - } - if (forcedPan) { - context.translate(forcedPan.x, forcedPan.y); - } - if (forcedZoom) { - context.scale(forcedZoom, forcedZoom); - } - } - - if (!textureDraw) { - r.textureDrawLastFrame = false; - } - - if (textureDraw) { - r.textureDrawLastFrame = true; - - var bb; - - if (!r.textureCache) { - r.textureCache = {}; - - bb = r.textureCache.bb = cy.mutableElements().boundingBox(); - - r.textureCache.texture = r.data.bufferCanvases[r.TEXTURE_BUFFER]; - - var cxt = r.data.bufferContexts[r.TEXTURE_BUFFER]; - - cxt.setTransform(1, 0, 0, 1, 0, 0); - cxt.clearRect(0, 0, r.canvasWidth * r.textureMult, r.canvasHeight * r.textureMult); - - r.render({ - forcedContext: cxt, - drawOnlyNodeLayer: true, - forcedPxRatio: pixelRatio * r.textureMult - }); - - var vp = r.textureCache.viewport = { - zoom: cy.zoom(), - pan: cy.pan(), - width: r.canvasWidth, - height: r.canvasHeight - }; - - vp.mpan = { - x: (0 - vp.pan.x) / vp.zoom, - y: (0 - vp.pan.y) / vp.zoom - }; - } - - needDraw[r.DRAG] = false; - needDraw[r.NODE] = false; - - var context = data.contexts[r.NODE]; - - var texture = r.textureCache.texture; - var vp = r.textureCache.viewport; - bb = r.textureCache.bb; - - context.setTransform(1, 0, 0, 1, 0, 0); - - if (motionBlur) { - mbclear(context, 0, 0, vp.width, vp.height); - } else { - context.clearRect(0, 0, vp.width, vp.height); - } - - var outsideBgColor = coreStyle['outside-texture-bg-color'].value; - var outsideBgOpacity = coreStyle['outside-texture-bg-opacity'].value; - r.fillStyle(context, outsideBgColor[0], outsideBgColor[1], outsideBgColor[2], outsideBgOpacity); - context.fillRect(0, 0, vp.width, vp.height); - - var zoom = cy.zoom(); - - setContextTransform(context, false); - - context.clearRect(vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio); - context.drawImage(texture, vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio); - } else if (r.textureOnViewport && !forcedContext) { - // clear the cache since we don't need it - r.textureCache = null; - } - - var extent = cy.extent(); - var vpManip = r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming || r.hoverData.draggingEles; - var hideEdges = r.hideEdgesOnViewport && vpManip; - - var needMbClear = []; - - needMbClear[r.NODE] = !needDraw[r.NODE] && motionBlur && !r.clearedForMotionBlur[r.NODE] || r.clearingMotionBlur; - if (needMbClear[r.NODE]) { - r.clearedForMotionBlur[r.NODE] = true; - } - - needMbClear[r.DRAG] = !needDraw[r.DRAG] && motionBlur && !r.clearedForMotionBlur[r.DRAG] || r.clearingMotionBlur; - if (needMbClear[r.DRAG]) { - r.clearedForMotionBlur[r.DRAG] = true; - } - - if (needDraw[r.NODE] || drawAllLayers || drawOnlyNodeLayer || needMbClear[r.NODE]) { - var useBuffer = motionBlur && !needMbClear[r.NODE] && mbPxRatio !== 1; - var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] : data.contexts[r.NODE]); - var clear = motionBlur && !useBuffer ? 'motionBlur' : undefined; - - setContextTransform(context, clear); - - if (hideEdges) { - r.drawCachedNodes(context, eles.nondrag, pixelRatio, extent); - } else { - r.drawLayeredElements(context, eles.nondrag, pixelRatio, extent); - } - - if (r.debug) { - r.drawDebugPoints(context, eles.nondrag); - } - - if (!drawAllLayers && !motionBlur) { - needDraw[r.NODE] = false; - } - } - - if (!drawOnlyNodeLayer && (needDraw[r.DRAG] || drawAllLayers || needMbClear[r.DRAG])) { - var useBuffer = motionBlur && !needMbClear[r.DRAG] && mbPxRatio !== 1; - var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG] : data.contexts[r.DRAG]); - - setContextTransform(context, motionBlur && !useBuffer ? 'motionBlur' : undefined); - - if (hideEdges) { - r.drawCachedNodes(context, eles.drag, pixelRatio, extent); - } else { - r.drawCachedElements(context, eles.drag, pixelRatio, extent); - } - - if (r.debug) { - r.drawDebugPoints(context, eles.drag); - } - - if (!drawAllLayers && !motionBlur) { - needDraw[r.DRAG] = false; - } - } - - if (r.showFps || !drawOnlyNodeLayer && needDraw[r.SELECT_BOX] && !drawAllLayers) { - var context = forcedContext || data.contexts[r.SELECT_BOX]; - - setContextTransform(context); - - if (r.selection[4] == 1 && (r.hoverData.selecting || r.touchData.selecting)) { - var zoom = r.cy.zoom(); - var borderWidth = coreStyle['selection-box-border-width'].value / zoom; - - context.lineWidth = borderWidth; - context.fillStyle = 'rgba(' + coreStyle['selection-box-color'].value[0] + ',' + coreStyle['selection-box-color'].value[1] + ',' + coreStyle['selection-box-color'].value[2] + ',' + coreStyle['selection-box-opacity'].value + ')'; - - context.fillRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]); - - if (borderWidth > 0) { - context.strokeStyle = 'rgba(' + coreStyle['selection-box-border-color'].value[0] + ',' + coreStyle['selection-box-border-color'].value[1] + ',' + coreStyle['selection-box-border-color'].value[2] + ',' + coreStyle['selection-box-opacity'].value + ')'; - - context.strokeRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]); - } - } - - if (data.bgActivePosistion && !r.hoverData.selecting) { - var zoom = r.cy.zoom(); - var pos = data.bgActivePosistion; - - context.fillStyle = 'rgba(' + coreStyle['active-bg-color'].value[0] + ',' + coreStyle['active-bg-color'].value[1] + ',' + coreStyle['active-bg-color'].value[2] + ',' + coreStyle['active-bg-opacity'].value + ')'; - - context.beginPath(); - context.arc(pos.x, pos.y, coreStyle['active-bg-size'].pfValue / zoom, 0, 2 * Math.PI); - context.fill(); - } - - var timeToRender = r.lastRedrawTime; - if (r.showFps && timeToRender) { - timeToRender = Math.round(timeToRender); - var fps = Math.round(1000 / timeToRender); - - context.setTransform(1, 0, 0, 1, 0, 0); - - context.fillStyle = 'rgba(255, 0, 0, 0.75)'; - context.strokeStyle = 'rgba(255, 0, 0, 0.75)'; - context.lineWidth = 1; - context.fillText('1 frame = ' + timeToRender + ' ms = ' + fps + ' fps', 0, 20); - - var maxFps = 60; - context.strokeRect(0, 30, 250, 20); - context.fillRect(0, 30, 250 * Math.min(fps / maxFps, 1), 20); - } - - if (!drawAllLayers) { - needDraw[r.SELECT_BOX] = false; - } - } - - // motionblur: blit rendered blurry frames - if (motionBlur && mbPxRatio !== 1) { - var cxtNode = data.contexts[r.NODE]; - var txtNode = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE]; - - var cxtDrag = data.contexts[r.DRAG]; - var txtDrag = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG]; - - var drawMotionBlur = function drawMotionBlur(cxt, txt, needClear) { - cxt.setTransform(1, 0, 0, 1, 0, 0); - - if (needClear || !motionBlurFadeEffect) { - cxt.clearRect(0, 0, r.canvasWidth, r.canvasHeight); - } else { - mbclear(cxt, 0, 0, r.canvasWidth, r.canvasHeight); - } - - var pxr = mbPxRatio; - - cxt.drawImage(txt, // img - 0, 0, // sx, sy - r.canvasWidth * pxr, r.canvasHeight * pxr, // sw, sh - 0, 0, // x, y - r.canvasWidth, r.canvasHeight // w, h - ); - }; - - if (needDraw[r.NODE] || needMbClear[r.NODE]) { - drawMotionBlur(cxtNode, txtNode, needMbClear[r.NODE]); - needDraw[r.NODE] = false; - } - - if (needDraw[r.DRAG] || needMbClear[r.DRAG]) { - drawMotionBlur(cxtDrag, txtDrag, needMbClear[r.DRAG]); - needDraw[r.DRAG] = false; - } - } - - r.prevViewport = vp; - - if (r.clearingMotionBlur) { - r.clearingMotionBlur = false; - r.motionBlurCleared = true; - r.motionBlur = true; - } - - if (motionBlur) { - r.motionBlurTimeout = setTimeout(function () { - r.motionBlurTimeout = null; - - r.clearedForMotionBlur[r.NODE] = false; - r.clearedForMotionBlur[r.DRAG] = false; - r.motionBlur = false; - r.clearingMotionBlur = !textureDraw; - r.mbFrames = 0; - - needDraw[r.NODE] = true; - needDraw[r.DRAG] = true; - - r.redraw(); - }, motionBlurDelay); - } - - if (!forcedContext) { - cy.emit('render'); - } -}; - -module.exports = CRp; - -/***/ }), -/* 109 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var math = __webpack_require__(2); - -var CRp = {}; - -// @O Polygon drawing -CRp.drawPolygonPath = function (context, x, y, width, height, points) { - - var halfW = width / 2; - var halfH = height / 2; - - if (context.beginPath) { - context.beginPath(); - } - - context.moveTo(x + halfW * points[0], y + halfH * points[1]); - - for (var i = 1; i < points.length / 2; i++) { - context.lineTo(x + halfW * points[i * 2], y + halfH * points[i * 2 + 1]); - } - - context.closePath(); -}; - -// Round rectangle drawing -CRp.drawRoundRectanglePath = function (context, x, y, width, height) { - - var halfWidth = width / 2; - var halfHeight = height / 2; - var cornerRadius = math.getRoundRectangleRadius(width, height); - - if (context.beginPath) { - context.beginPath(); - } - - // Start at top middle - context.moveTo(x, y - halfHeight); - // Arc from middle top to right side - context.arcTo(x + halfWidth, y - halfHeight, x + halfWidth, y, cornerRadius); - // Arc from right side to bottom - context.arcTo(x + halfWidth, y + halfHeight, x, y + halfHeight, cornerRadius); - // Arc from bottom to left side - context.arcTo(x - halfWidth, y + halfHeight, x - halfWidth, y, cornerRadius); - // Arc from left side to topBorder - context.arcTo(x - halfWidth, y - halfHeight, x, y - halfHeight, cornerRadius); - // Join line - context.lineTo(x, y - halfHeight); - - context.closePath(); -}; - -CRp.drawBottomRoundRectanglePath = function (context, x, y, width, height) { - - var halfWidth = width / 2; - var halfHeight = height / 2; - var cornerRadius = math.getRoundRectangleRadius(width, height); - - if (context.beginPath) { - context.beginPath(); - } - - // Start at top middle - context.moveTo(x, y - halfHeight); - context.lineTo(x + halfWidth, y - halfHeight); - context.lineTo(x + halfWidth, y); - - context.arcTo(x + halfWidth, y + halfHeight, x, y + halfHeight, cornerRadius); - context.arcTo(x - halfWidth, y + halfHeight, x - halfWidth, y, cornerRadius); - - context.lineTo(x - halfWidth, y - halfHeight); - context.lineTo(x, y - halfHeight); - - context.closePath(); -}; - -CRp.drawCutRectanglePath = function (context, x, y, width, height) { - - var halfWidth = width / 2; - var halfHeight = height / 2; - var cornerLength = math.getCutRectangleCornerLength(); - - if (context.beginPath) { - context.beginPath(); - } - - context.moveTo(x - halfWidth + cornerLength, y - halfHeight); - - context.lineTo(x + halfWidth - cornerLength, y - halfHeight); - context.lineTo(x + halfWidth, y - halfHeight + cornerLength); - context.lineTo(x + halfWidth, y + halfHeight - cornerLength); - context.lineTo(x + halfWidth - cornerLength, y + halfHeight); - context.lineTo(x - halfWidth + cornerLength, y + halfHeight); - context.lineTo(x - halfWidth, y + halfHeight - cornerLength); - context.lineTo(x - halfWidth, y - halfHeight + cornerLength); - - context.closePath(); -}; - -CRp.drawBarrelPath = function (context, x, y, width, height) { - - var halfWidth = width / 2; - var halfHeight = height / 2; - - var xBegin = x - halfWidth; - var xEnd = x + halfWidth; - var yBegin = y - halfHeight; - var yEnd = y + halfHeight; - - var barrelCurveConstants = math.getBarrelCurveConstants(width, height); - var wOffset = barrelCurveConstants.widthOffset; - var hOffset = barrelCurveConstants.heightOffset; - var ctrlPtXOffset = barrelCurveConstants.ctrlPtOffsetPct * wOffset; - - if (context.beginPath) { - context.beginPath(); - } - - context.moveTo(xBegin, yBegin + hOffset); - - context.lineTo(xBegin, yEnd - hOffset); - context.quadraticCurveTo(xBegin + ctrlPtXOffset, yEnd, xBegin + wOffset, yEnd); - - context.lineTo(xEnd - wOffset, yEnd); - context.quadraticCurveTo(xEnd - ctrlPtXOffset, yEnd, xEnd, yEnd - hOffset); - - context.lineTo(xEnd, yBegin + hOffset); - context.quadraticCurveTo(xEnd - ctrlPtXOffset, yBegin, xEnd - wOffset, yBegin); - - context.lineTo(xBegin + wOffset, yBegin); - context.quadraticCurveTo(xBegin + ctrlPtXOffset, yBegin, xBegin, yBegin + hOffset); - - context.closePath(); -}; - -var sin0 = Math.sin(0); -var cos0 = Math.cos(0); - -var sin = {}; -var cos = {}; - -var ellipseStepSize = Math.PI / 40; - -for (var i = 0 * Math.PI; i < 2 * Math.PI; i += ellipseStepSize) { - sin[i] = Math.sin(i); - cos[i] = Math.cos(i); -} - -CRp.drawEllipsePath = function (context, centerX, centerY, width, height) { - if (context.beginPath) { - context.beginPath(); - } - - if (context.ellipse) { - context.ellipse(centerX, centerY, width / 2, height / 2, 0, 0, 2 * Math.PI); - } else { - var xPos, yPos; - var rw = width / 2; - var rh = height / 2; - for (var i = 0 * Math.PI; i < 2 * Math.PI; i += ellipseStepSize) { - xPos = centerX - rw * sin[i] * sin0 + rw * cos[i] * cos0; - yPos = centerY + rh * cos[i] * sin0 + rh * sin[i] * cos0; - - if (i === 0) { - context.moveTo(xPos, yPos); - } else { - context.lineTo(xPos, yPos); - } - } - } - - context.closePath(); -}; - -module.exports = CRp; - -/***/ }), -/* 110 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var math = __webpack_require__(2); -var util = __webpack_require__(1); -var Heap = __webpack_require__(8); -var defs = __webpack_require__(16); - -var minTxrH = 25; // the size of the texture cache for small height eles (special case) -var txrStepH = 50; // the min size of the regular cache, and the size it increases with each step up -var minLvl = -4; // when scaling smaller than that we don't need to re-render -var maxLvl = 2; // when larger than this scale just render directly (caching is not helpful) -var maxZoom = 3.99; // beyond this zoom level, layered textures are not used -var eleTxrSpacing = 8; // spacing between elements on textures to avoid blitting overlaps -var defTxrWidth = 1024; // default/minimum texture width -var maxTxrW = 1024; // the maximum width of a texture -var maxTxrH = 1024; // the maximum height of a texture -var minUtility = 0.5; // if usage of texture is less than this, it is retired -var maxFullness = 0.8; // fullness of texture after which queue removal is checked -var maxFullnessChecks = 10; // dequeued after this many checks -var allowEdgeTxrCaching = false; // whether edges can be cached as textures (TODO maybe better on if webgl supported?) -var allowParentTxrCaching = false; // whether parent nodes can be cached as textures (TODO maybe better on if webgl supported?) -var deqCost = 0.15; // % of add'l rendering cost allowed for dequeuing ele caches each frame -var deqAvgCost = 0.1; // % of add'l rendering cost compared to average overall redraw time -var deqNoDrawCost = 0.9; // % of avg frame time that can be used for dequeueing when not drawing -var deqFastCost = 0.9; // % of frame time to be used when >60fps -var deqRedrawThreshold = 100; // time to batch redraws together from dequeueing to allow more dequeueing calcs to happen in the meanwhile -var maxDeqSize = 1; // number of eles to dequeue and render at higher texture in each batch - -var getTxrReasons = { - dequeue: 'dequeue', - downscale: 'downscale', - highQuality: 'highQuality' -}; - -var ElementTextureCache = function ElementTextureCache(renderer) { - var self = this; - - self.renderer = renderer; - self.onDequeues = []; - - self.setupDequeueing(); -}; - -var ETCp = ElementTextureCache.prototype; - -ETCp.reasons = getTxrReasons; - -// the list of textures in which new subtextures for elements can be placed -ETCp.getTextureQueue = function (txrH) { - var self = this; - self.eleImgCaches = self.eleImgCaches || {}; - - return self.eleImgCaches[txrH] = self.eleImgCaches[txrH] || []; -}; - -// the list of usused textures which can be recycled (in use in texture queue) -ETCp.getRetiredTextureQueue = function (txrH) { - var self = this; - - var rtxtrQs = self.eleImgCaches.retired = self.eleImgCaches.retired || {}; - var rtxtrQ = rtxtrQs[txrH] = rtxtrQs[txrH] || []; - - return rtxtrQ; -}; - -// queue of element draw requests at different scale levels -ETCp.getElementQueue = function () { - var self = this; - - var q = self.eleCacheQueue = self.eleCacheQueue || new Heap(function (a, b) { - return b.reqs - a.reqs; - }); - - return q; -}; - -// queue of element draw requests at different scale levels (element id lookup) -ETCp.getElementIdToQueue = function () { - var self = this; - - var id2q = self.eleIdToCacheQueue = self.eleIdToCacheQueue || {}; - - return id2q; -}; - -ETCp.getElement = function (ele, bb, pxRatio, lvl, reason) { - var self = this; - var r = this.renderer; - var rs = ele._private.rscratch; - var zoom = r.cy.zoom(); - - if (bb.w === 0 || bb.h === 0 || !ele.visible()) { - return null; - } - - if (lvl == null) { - lvl = Math.ceil(math.log2(zoom * pxRatio)); - } - - if (lvl < minLvl) { - lvl = minLvl; - } else if (zoom >= maxZoom || lvl > maxLvl) { - return null; - } - - var scale = Math.pow(2, lvl); - var eleScaledH = bb.h * scale; - var eleScaledW = bb.w * scale; - var caches = rs.imgCaches = rs.imgCaches || {}; - var eleCache = caches[lvl]; - - if (eleCache) { - return eleCache; - } - - var txrH; // which texture height this ele belongs to - - if (eleScaledH <= minTxrH) { - txrH = minTxrH; - } else if (eleScaledH <= txrStepH) { - txrH = txrStepH; - } else { - txrH = Math.ceil(eleScaledH / txrStepH) * txrStepH; - } - - if (eleScaledH > maxTxrH || eleScaledW > maxTxrW || !allowEdgeTxrCaching && ele.isEdge() || !allowParentTxrCaching && ele.isParent()) { - return null; // caching large elements is not efficient - } - - var txrQ = self.getTextureQueue(txrH); - - // first try the second last one in case it has space at the end - var txr = txrQ[txrQ.length - 2]; - - var addNewTxr = function addNewTxr() { - return self.recycleTexture(txrH, eleScaledW) || self.addTexture(txrH, eleScaledW); - }; - - // try the last one if there is no second last one - if (!txr) { - txr = txrQ[txrQ.length - 1]; - } - - // if the last one doesn't exist, we need a first one - if (!txr) { - txr = addNewTxr(); - } - - // if there's no room in the current texture, we need a new one - if (txr.width - txr.usedWidth < eleScaledW) { - txr = addNewTxr(); - } - - var scaledLabelShown = r.eleTextBiggerThanMin(ele, scale); - var scalableFrom = function scalableFrom(otherCache) { - return otherCache && otherCache.scaledLabelShown === scaledLabelShown; - }; - - var deqing = reason && reason === getTxrReasons.dequeue; - var highQualityReq = reason && reason === getTxrReasons.highQuality; - var downscaleReq = reason && reason === getTxrReasons.downscale; - - var higherCache; // the nearest cache with a higher level - for (var l = lvl + 1; l <= maxLvl; l++) { - var c = caches[l]; - - if (c) { - higherCache = c;break; - } - } - - var oneUpCache = higherCache && higherCache.level === lvl + 1 ? higherCache : null; - - var downscale = function downscale() { - txr.context.drawImage(oneUpCache.texture.canvas, oneUpCache.x, 0, oneUpCache.width, oneUpCache.height, txr.usedWidth, 0, eleScaledW, eleScaledH); - }; - - // reset ele area in texture - txr.context.setTransform(1, 0, 0, 1, 0, 0); - txr.context.clearRect(txr.usedWidth, 0, eleScaledW, txrH); - - if (scalableFrom(oneUpCache)) { - // then we can relatively cheaply rescale the existing image w/o rerendering - downscale(); - } else if (scalableFrom(higherCache)) { - // then use the higher cache for now and queue the next level down - // to cheaply scale towards the smaller level - - if (highQualityReq) { - for (var l = higherCache.level; l > lvl; l--) { - oneUpCache = self.getElement(ele, bb, pxRatio, l, getTxrReasons.downscale); - } - - downscale(); - } else { - self.queueElement(ele, bb, higherCache.level - 1); - - return higherCache; - } - } else { - - var lowerCache; // the nearest cache with a lower level - if (!deqing && !highQualityReq && !downscaleReq) { - for (var l = lvl - 1; l >= minLvl; l--) { - var c = caches[l]; - - if (c) { - lowerCache = c;break; - } - } - } - - if (scalableFrom(lowerCache)) { - // then use the lower quality cache for now and queue the better one for later - - self.queueElement(ele, bb, lvl); - - return lowerCache; - } - - txr.context.translate(txr.usedWidth, 0); - txr.context.scale(scale, scale); - - r.drawElement(txr.context, ele, bb, scaledLabelShown); - - txr.context.scale(1 / scale, 1 / scale); - txr.context.translate(-txr.usedWidth, 0); - } - - eleCache = caches[lvl] = { - ele: ele, - x: txr.usedWidth, - texture: txr, - level: lvl, - scale: scale, - width: eleScaledW, - height: eleScaledH, - scaledLabelShown: scaledLabelShown - }; - - txr.usedWidth += Math.ceil(eleScaledW + eleTxrSpacing); - - txr.eleCaches.push(eleCache); - - self.checkTextureFullness(txr); - - return eleCache; -}; - -ETCp.invalidateElement = function (ele) { - var self = this; - var caches = ele._private.rscratch.imgCaches; - - if (caches) { - for (var lvl = minLvl; lvl <= maxLvl; lvl++) { - var cache = caches[lvl]; - - if (cache) { - var txr = cache.texture; - - // remove space from the texture it belongs to - txr.invalidatedWidth += cache.width; - - // remove refs with the element - caches[lvl] = null; - util.removeFromArray(txr.eleCaches, cache); - - // might have to remove the entire texture if it's not efficiently using its space - self.checkTextureUtility(txr); - } - } - } -}; - -ETCp.checkTextureUtility = function (txr) { - // invalidate all entries in the cache if the cache size is small - if (txr.invalidatedWidth >= minUtility * txr.width) { - this.retireTexture(txr); - } -}; - -ETCp.checkTextureFullness = function (txr) { - // if texture has been mostly filled and passed over several times, remove - // it from the queue so we don't need to waste time looking at it to put new things - - var self = this; - var txrQ = self.getTextureQueue(txr.height); - - if (txr.usedWidth / txr.width > maxFullness && txr.fullnessChecks >= maxFullnessChecks) { - util.removeFromArray(txrQ, txr); - } else { - txr.fullnessChecks++; - } -}; - -ETCp.retireTexture = function (txr) { - var self = this; - var txrH = txr.height; - var txrQ = self.getTextureQueue(txrH); - - // retire the texture from the active / searchable queue: - - util.removeFromArray(txrQ, txr); - - txr.retired = true; - - // remove the refs from the eles to the caches: - - var eleCaches = txr.eleCaches; - - for (var i = 0; i < eleCaches.length; i++) { - var eleCache = eleCaches[i]; - var ele = eleCache.ele; - var lvl = eleCache.level; - var imgCaches = ele._private.rscratch.imgCaches; - - if (imgCaches) { - imgCaches[lvl] = null; - } - } - - util.clearArray(eleCaches); - - // add the texture to a retired queue so it can be recycled in future: - - var rtxtrQ = self.getRetiredTextureQueue(txrH); - - rtxtrQ.push(txr); -}; - -ETCp.addTexture = function (txrH, minW) { - var self = this; - var txrQ = self.getTextureQueue(txrH); - var txr = {}; - - txrQ.push(txr); - - txr.eleCaches = []; - - txr.height = txrH; - txr.width = Math.max(defTxrWidth, minW); - txr.usedWidth = 0; - txr.invalidatedWidth = 0; - txr.fullnessChecks = 0; - - txr.canvas = document.createElement('canvas'); // eslint-disable-line no-undef - txr.canvas.width = txr.width; - txr.canvas.height = txr.height; - - txr.context = txr.canvas.getContext('2d'); - - return txr; -}; - -ETCp.recycleTexture = function (txrH, minW) { - var self = this; - var txrQ = self.getTextureQueue(txrH); - var rtxtrQ = self.getRetiredTextureQueue(txrH); - - for (var i = 0; i < rtxtrQ.length; i++) { - var txr = rtxtrQ[i]; - - if (txr.width >= minW) { - txr.retired = false; - - txr.usedWidth = 0; - txr.invalidatedWidth = 0; - txr.fullnessChecks = 0; - - util.clearArray(txr.eleCaches); - - txr.context.setTransform(1, 0, 0, 1, 0, 0); - txr.context.clearRect(0, 0, txr.width, txr.height); - - util.removeFromArray(rtxtrQ, txr); - txrQ.push(txr); - - return txr; - } - } -}; - -ETCp.queueElement = function (ele, bb, lvl) { - var self = this; - var q = self.getElementQueue(); - var id2q = self.getElementIdToQueue(); - var id = ele.id(); - var existingReq = id2q[id]; - - if (existingReq) { - // use the max lvl b/c in between lvls are cheap to make - existingReq.level = Math.max(existingReq.level, lvl); - existingReq.reqs++; - - q.updateItem(existingReq); - } else { - var req = { - ele: ele, - bb: bb, - position: math.copyPosition(ele.position()), - level: lvl, - reqs: 1 - }; - - if (ele.isEdge()) { - req.positions = { - source: math.copyPosition(ele.source().position()), - target: math.copyPosition(ele.target().position()) - }; - } - - q.push(req); - - id2q[id] = req; - } -}; - -ETCp.dequeue = function (pxRatio /*, extent*/) { - var self = this; - var q = self.getElementQueue(); - var id2q = self.getElementIdToQueue(); - var dequeued = []; - - for (var i = 0; i < maxDeqSize; i++) { - if (q.size() > 0) { - var req = q.pop(); - - id2q[req.ele.id()] = null; - - dequeued.push(req); - - var ele = req.ele; - var bb; - - if (ele.isEdge() && (!math.arePositionsSame(ele.source().position(), req.positions.source) || !math.arePositionsSame(ele.target().position(), req.positions.target)) || !math.arePositionsSame(ele.position(), req.position)) { - bb = ele.boundingBox(); - } else { - bb = req.bb; - } - - self.getElement(req.ele, bb, pxRatio, req.level, getTxrReasons.dequeue); - } else { - break; - } - } - - return dequeued; -}; - -ETCp.onDequeue = function (fn) { - this.onDequeues.push(fn); -}; -ETCp.offDequeue = function (fn) { - util.removeFromArray(this.onDequeues, fn); -}; - -ETCp.setupDequeueing = defs.setupDequeueing({ - deqRedrawThreshold: deqRedrawThreshold, - deqCost: deqCost, - deqAvgCost: deqAvgCost, - deqNoDrawCost: deqNoDrawCost, - deqFastCost: deqFastCost, - deq: function deq(self, pxRatio, extent) { - return self.dequeue(pxRatio, extent); - }, - onDeqd: function onDeqd(self, deqd) { - for (var i = 0; i < self.onDequeues.length; i++) { - var fn = self.onDequeues[i]; - - fn(deqd); - } - }, - shouldRedraw: function shouldRedraw(self, deqd, pxRatio, extent) { - for (var i = 0; i < deqd.length; i++) { - var bb = deqd[i].bb; - - if (math.boundingBoxesIntersect(bb, extent)) { - return true; - } - } - - return false; - }, - priority: function priority(self) { - return self.renderer.beforeRenderPriorities.eleTxrDeq; - } -}); - -module.exports = ElementTextureCache; - -/***/ }), -/* 111 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); - -var CRp = {}; - -CRp.createBuffer = function (w, h) { - var buffer = document.createElement('canvas'); // eslint-disable-line no-undef - buffer.width = w; - buffer.height = h; - - return [buffer, buffer.getContext('2d')]; -}; - -CRp.bufferCanvasImage = function (options) { - var cy = this.cy; - var eles = cy.mutableElements(); - var bb = eles.boundingBox(); - var ctrRect = this.findContainerClientCoords(); - var width = options.full ? Math.ceil(bb.w) : ctrRect[2]; - var height = options.full ? Math.ceil(bb.h) : ctrRect[3]; - var specdMaxDims = is.number(options.maxWidth) || is.number(options.maxHeight); - var pxRatio = this.getPixelRatio(); - var scale = 1; - - if (options.scale !== undefined) { - width *= options.scale; - height *= options.scale; - - scale = options.scale; - } else if (specdMaxDims) { - var maxScaleW = Infinity; - var maxScaleH = Infinity; - - if (is.number(options.maxWidth)) { - maxScaleW = scale * options.maxWidth / width; - } - - if (is.number(options.maxHeight)) { - maxScaleH = scale * options.maxHeight / height; - } - - scale = Math.min(maxScaleW, maxScaleH); - - width *= scale; - height *= scale; - } - - if (!specdMaxDims) { - width *= pxRatio; - height *= pxRatio; - scale *= pxRatio; - } - - var buffCanvas = document.createElement('canvas'); // eslint-disable-line no-undef - - buffCanvas.width = width; - buffCanvas.height = height; - - buffCanvas.style.width = width + 'px'; - buffCanvas.style.height = height + 'px'; - - var buffCxt = buffCanvas.getContext('2d'); - - // Rasterize the layers, but only if container has nonzero size - if (width > 0 && height > 0) { - - buffCxt.clearRect(0, 0, width, height); - - buffCxt.globalCompositeOperation = 'source-over'; - - var zsortedEles = this.getCachedZSortedEles(); - - if (options.full) { - // draw the full bounds of the graph - buffCxt.translate(-bb.x1 * scale, -bb.y1 * scale); - buffCxt.scale(scale, scale); - - this.drawElements(buffCxt, zsortedEles); - - buffCxt.scale(1 / scale, 1 / scale); - buffCxt.translate(bb.x1 * scale, bb.y1 * scale); - } else { - // draw the current view - var pan = cy.pan(); - - var translation = { - x: pan.x * scale, - y: pan.y * scale - }; - - scale *= cy.zoom(); - - buffCxt.translate(translation.x, translation.y); - buffCxt.scale(scale, scale); - - this.drawElements(buffCxt, zsortedEles); - - buffCxt.scale(1 / scale, 1 / scale); - buffCxt.translate(-translation.x, -translation.y); - } - - // need to fill bg at end like this in order to fill cleared transparent pixels in jpgs - if (options.bg) { - buffCxt.globalCompositeOperation = 'destination-over'; - - buffCxt.fillStyle = options.bg; - buffCxt.rect(0, 0, width, height); - buffCxt.fill(); - } - } - - return buffCanvas; -}; - -function b64ToBlob(b64, mimeType) { - var bytes = atob(b64); - var buff = new ArrayBuffer(bytes.length); - var buffUint8 = new Uint8Array(buff); - - for (var i = 0; i < bytes.length; i++) { - buffUint8[i] = bytes.charCodeAt(i); - } - - return new Blob([buff], { type: mimeType }); -} - -function b64UriToB64(b64uri) { - var i = b64uri.indexOf(','); - - return b64uri.substr(i + 1); -}; - -function output(options, canvas, mimeType) { - var b64Uri = canvas.toDataURL(mimeType, options.quality); - - switch (options.output) { - case 'blob': - return b64ToBlob(b64UriToB64(b64Uri), mimeType); - - case 'base64': - return b64UriToB64(b64Uri); - - case 'base64uri': - default: - return b64Uri; - } -} - -CRp.png = function (options) { - return output(options, this.bufferCanvasImage(options), 'image/png'); -}; - -CRp.jpg = function (options) { - return output(options, this.bufferCanvasImage(options), 'image/jpeg'); -}; - -module.exports = CRp; - -/***/ }), -/* 112 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/* -The canvas renderer was written by Yue Dong. - -Modifications tracked on Github. -*/ - -var util = __webpack_require__(1); -var is = __webpack_require__(0); -var ElementTextureCache = __webpack_require__(110); -var LayeredTextureCache = __webpack_require__(113); - -var CR = CanvasRenderer; -var CRp = CanvasRenderer.prototype; - -CRp.CANVAS_LAYERS = 3; -// -CRp.SELECT_BOX = 0; -CRp.DRAG = 1; -CRp.NODE = 2; - -CRp.BUFFER_COUNT = 3; -// -CRp.TEXTURE_BUFFER = 0; -CRp.MOTIONBLUR_BUFFER_NODE = 1; -CRp.MOTIONBLUR_BUFFER_DRAG = 2; - -function CanvasRenderer(options) { - var r = this; - - r.data = { - canvases: new Array(CRp.CANVAS_LAYERS), - contexts: new Array(CRp.CANVAS_LAYERS), - canvasNeedsRedraw: new Array(CRp.CANVAS_LAYERS), - - bufferCanvases: new Array(CRp.BUFFER_COUNT), - bufferContexts: new Array(CRp.CANVAS_LAYERS) - }; - - var tapHlOff = '-webkit-tap-highlight-color: rgba(0,0,0,0);'; - - r.data.canvasContainer = document.createElement('div'); // eslint-disable-line no-undef - var containerStyle = r.data.canvasContainer.style; - r.data.canvasContainer.setAttribute('style', tapHlOff); - containerStyle.position = 'relative'; - containerStyle.zIndex = '0'; - containerStyle.overflow = 'hidden'; - - var container = options.cy.container(); - container.appendChild(r.data.canvasContainer); - - if ((container.getAttribute('style') || '').indexOf(tapHlOff) < 0) { - container.setAttribute('style', (container.getAttribute('style') || '') + tapHlOff); - } - - for (var i = 0; i < CRp.CANVAS_LAYERS; i++) { - var canvas = r.data.canvases[i] = document.createElement('canvas'); // eslint-disable-line no-undef - r.data.contexts[i] = canvas.getContext('2d'); - canvas.setAttribute('style', '-webkit-user-select: none; -moz-user-select: -moz-none; user-select: none; -webkit-tap-highlight-color: rgba(0,0,0,0); outline-style: none;' + (is.ms() ? ' -ms-touch-action: none; touch-action: none; ' : '')); - canvas.style.position = 'absolute'; - canvas.setAttribute('data-id', 'layer' + i); - canvas.style.zIndex = String(CRp.CANVAS_LAYERS - i); - r.data.canvasContainer.appendChild(canvas); - - r.data.canvasNeedsRedraw[i] = false; - } - r.data.topCanvas = r.data.canvases[0]; - - r.data.canvases[CRp.NODE].setAttribute('data-id', 'layer' + CRp.NODE + '-node'); - r.data.canvases[CRp.SELECT_BOX].setAttribute('data-id', 'layer' + CRp.SELECT_BOX + '-selectbox'); - r.data.canvases[CRp.DRAG].setAttribute('data-id', 'layer' + CRp.DRAG + '-drag'); - - for (var i = 0; i < CRp.BUFFER_COUNT; i++) { - r.data.bufferCanvases[i] = document.createElement('canvas'); // eslint-disable-line no-undef - r.data.bufferContexts[i] = r.data.bufferCanvases[i].getContext('2d'); - r.data.bufferCanvases[i].style.position = 'absolute'; - r.data.bufferCanvases[i].setAttribute('data-id', 'buffer' + i); - r.data.bufferCanvases[i].style.zIndex = String(-i - 1); - r.data.bufferCanvases[i].style.visibility = 'hidden'; - //r.data.canvasContainer.appendChild(r.data.bufferCanvases[i]); - } - - r.pathsEnabled = true; - - r.data.eleTxrCache = new ElementTextureCache(r); - r.data.lyrTxrCache = new LayeredTextureCache(r, r.data.eleTxrCache); - - r.onUpdateEleCalcs(function invalidateTextureCaches(willDraw, eles) { - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - var rs = ele._private.rstyle; - var de = rs.dirtyEvents; - - if (ele.isNode() && de && de.length === 1 && de['position']) { - // then keep cached ele texture - } else { - r.data.eleTxrCache.invalidateElement(ele); - } - } - - if (eles.length > 0) { - r.data.lyrTxrCache.invalidateElements(eles); - } - }); -} - -CRp.redrawHint = function (group, bool) { - var r = this; - - switch (group) { - case 'eles': - r.data.canvasNeedsRedraw[CRp.NODE] = bool; - break; - case 'drag': - r.data.canvasNeedsRedraw[CRp.DRAG] = bool; - break; - case 'select': - r.data.canvasNeedsRedraw[CRp.SELECT_BOX] = bool; - break; - } -}; - -// whether to use Path2D caching for drawing -var pathsImpld = typeof Path2D !== 'undefined'; - -CRp.path2dEnabled = function (on) { - if (on === undefined) { - return this.pathsEnabled; - } - - this.pathsEnabled = on ? true : false; -}; - -CRp.usePaths = function () { - return pathsImpld && this.pathsEnabled; -}; - -[__webpack_require__(102), __webpack_require__(104), __webpack_require__(103), __webpack_require__(105), __webpack_require__(106), __webpack_require__(107), __webpack_require__(108), __webpack_require__(109), __webpack_require__(111), __webpack_require__(114)].forEach(function (props) { - util.extend(CRp, props); -}); - -module.exports = CR; - -/***/ }), -/* 113 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var math = __webpack_require__(2); -var Heap = __webpack_require__(8); -var is = __webpack_require__(0); -var defs = __webpack_require__(16); - -var defNumLayers = 1; // default number of layers to use -var minLvl = -4; // when scaling smaller than that we don't need to re-render -var maxLvl = 2; // when larger than this scale just render directly (caching is not helpful) -var maxZoom = 3.99; // beyond this zoom level, layered textures are not used -var deqRedrawThreshold = 50; // time to batch redraws together from dequeueing to allow more dequeueing calcs to happen in the meanwhile -var refineEleDebounceTime = 50; // time to debounce sharper ele texture updates -var disableEleImgSmoothing = true; // when drawing eles on layers from an ele cache ; crisper and more performant when true -var deqCost = 0.15; // % of add'l rendering cost allowed for dequeuing ele caches each frame -var deqAvgCost = 0.1; // % of add'l rendering cost compared to average overall redraw time -var deqNoDrawCost = 0.9; // % of avg frame time that can be used for dequeueing when not drawing -var deqFastCost = 0.9; // % of frame time to be used when >60fps -var maxDeqSize = 1; // number of eles to dequeue and render at higher texture in each batch -var invalidThreshold = 250; // time threshold for disabling b/c of invalidations -var maxLayerArea = 4000 * 4000; // layers can't be bigger than this -var alwaysQueue = true; // never draw all the layers in a level on a frame; draw directly until all dequeued -var useHighQualityEleTxrReqs = true; // whether to use high quality ele txr requests (generally faster and cheaper in the longterm) - -var useEleTxrCaching = true; // whether to use individual ele texture caching underneath this cache - -// var log = function(){ console.log.apply( console, arguments ); }; - -var LayeredTextureCache = function LayeredTextureCache(renderer, eleTxrCache) { - var self = this; - - var r = self.renderer = renderer; - - self.layersByLevel = {}; // e.g. 2 => [ layer1, layer2, ..., layerN ] - - self.firstGet = true; - - self.lastInvalidationTime = util.performanceNow() - 2 * invalidThreshold; - - self.skipping = false; - - r.beforeRender(function (willDraw, now) { - if (now - self.lastInvalidationTime <= invalidThreshold) { - self.skipping = true; - } else { - self.skipping = false; - } - }); - - var qSort = function qSort(a, b) { - return b.reqs - a.reqs; - }; - - self.layersQueue = new Heap(qSort); - - self.eleTxrCache = eleTxrCache; - - self.setupEleCacheInvalidation(); - - self.setupDequeueing(); -}; - -var LTCp = LayeredTextureCache.prototype; - -var layerIdPool = 0; -var MAX_INT = Math.pow(2, 53) - 1; - -LTCp.makeLayer = function (bb, lvl) { - var scale = Math.pow(2, lvl); - - var w = Math.ceil(bb.w * scale); - var h = Math.ceil(bb.h * scale); - - var canvas = document.createElement('canvas'); // eslint-disable-line no-undef - - canvas.width = w; - canvas.height = h; - - var layer = { - id: layerIdPool = ++layerIdPool % MAX_INT, - bb: bb, - level: lvl, - width: w, - height: h, - canvas: canvas, - context: canvas.getContext('2d'), - eles: [], - elesQueue: [], - reqs: 0 - }; - - // log('make layer %s with w %s and h %s and lvl %s', layer.id, layer.width, layer.height, layer.level); - - var cxt = layer.context; - var dx = -layer.bb.x1; - var dy = -layer.bb.y1; - - // do the transform on creation to save cycles (it's the same for all eles) - cxt.scale(scale, scale); - cxt.translate(dx, dy); - - return layer; -}; - -LTCp.getLayers = function (eles, pxRatio, lvl) { - var self = this; - var r = self.renderer; - var cy = r.cy; - var zoom = cy.zoom(); - var firstGet = self.firstGet; - - self.firstGet = false; - - // log('--\nget layers with %s eles', eles.length); - //log eles.map(function(ele){ return ele.id() }) ); - - if (lvl == null) { - lvl = Math.ceil(math.log2(zoom * pxRatio)); - - if (lvl < minLvl) { - lvl = minLvl; - } else if (zoom >= maxZoom || lvl > maxLvl) { - return null; - } - } - - self.validateLayersElesOrdering(lvl, eles); - - var layersByLvl = self.layersByLevel; - var scale = Math.pow(2, lvl); - var layers = layersByLvl[lvl] = layersByLvl[lvl] || []; - var bb; - - var lvlComplete = self.levelIsComplete(lvl, eles); - var tmpLayers; - - var checkTempLevels = function checkTempLevels() { - var canUseAsTmpLvl = function canUseAsTmpLvl(l) { - self.validateLayersElesOrdering(l, eles); - - if (self.levelIsComplete(l, eles)) { - tmpLayers = layersByLvl[l]; - return true; - } - }; - - var checkLvls = function checkLvls(dir) { - if (tmpLayers) { - return; - } - - for (var l = lvl + dir; minLvl <= l && l <= maxLvl; l += dir) { - if (canUseAsTmpLvl(l)) { - break; - } - } - }; - - checkLvls(+1); - checkLvls(-1); - - // remove the invalid layers; they will be replaced as needed later in this function - for (var i = layers.length - 1; i >= 0; i--) { - var layer = layers[i]; - - if (layer.invalid) { - util.removeFromArray(layers, layer); - } - } - }; - - if (!lvlComplete) { - // if the current level is incomplete, then use the closest, best quality layerset temporarily - // and later queue the current layerset so we can get the proper quality level soon - - checkTempLevels(); - } else { - // log('level complete, using existing layers\n--'); - return layers; - } - - var getBb = function getBb() { - if (!bb) { - bb = math.makeBoundingBox(); - - for (var i = 0; i < eles.length; i++) { - math.updateBoundingBox(bb, eles[i].boundingBox()); - } - } - - return bb; - }; - - var makeLayer = function makeLayer(opts) { - opts = opts || {}; - - var after = opts.after; - - getBb(); - - var area = bb.w * scale * (bb.h * scale); - - if (area > maxLayerArea) { - return null; - } - - var layer = self.makeLayer(bb, lvl); - - if (after != null) { - var index = layers.indexOf(after) + 1; - - layers.splice(index, 0, layer); - } else if (opts.insert === undefined || opts.insert) { - // no after specified => first layer made so put at start - layers.unshift(layer); - } - - // if( tmpLayers ){ - //self.queueLayer( layer ); - // } - - return layer; - }; - - if (self.skipping && !firstGet) { - // log('skip layers'); - return null; - } - - // log('do layers'); - - var layer = null; - var maxElesPerLayer = eles.length / defNumLayers; - var allowLazyQueueing = alwaysQueue && !firstGet; - - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - var rs = ele._private.rscratch; - var caches = rs.imgLayerCaches = rs.imgLayerCaches || {}; - - // log('look at ele', ele.id()); - - var existingLayer = caches[lvl]; - - if (existingLayer) { - // reuse layer for later eles - // log('reuse layer for', ele.id()); - layer = existingLayer; - continue; - } - - if (!layer || layer.eles.length >= maxElesPerLayer || !math.boundingBoxInBoundingBox(layer.bb, ele.boundingBox())) { - // log('make new layer for ele %s', ele.id()); - - layer = makeLayer({ insert: true, after: layer }); - - // if now layer can be built then we can't use layers at this level - if (!layer) { - return null; - } - - // log('new layer with id %s', layer.id); - } - - if (tmpLayers || allowLazyQueueing) { - // log('queue ele %s in layer %s', ele.id(), layer.id); - self.queueLayer(layer, ele); - } else { - // log('draw ele %s in layer %s', ele.id(), layer.id); - self.drawEleInLayer(layer, ele, lvl, pxRatio); - } - - layer.eles.push(ele); - - caches[lvl] = layer; - } - - // log('--'); - - if (tmpLayers) { - // then we only queued the current layerset and can't draw it yet - return tmpLayers; - } - - if (allowLazyQueueing) { - // log('lazy queue level', lvl); - return null; - } - - return layers; -}; - -// a layer may want to use an ele cache of a higher level to avoid blurriness -// so the layer level might not equal the ele level -LTCp.getEleLevelForLayerLevel = function (lvl, pxRatio) { - return lvl; -}; - -function imgSmoothing(context, bool) { - if (context.imageSmoothingEnabled != null) { - context.imageSmoothingEnabled = bool; - } else { - context.webkitImageSmoothingEnabled = bool; - context.mozImageSmoothingEnabled = bool; - context.msImageSmoothingEnabled = bool; - } -} - -LTCp.drawEleInLayer = function (layer, ele, lvl, pxRatio) { - var self = this; - var r = this.renderer; - var context = layer.context; - var bb = ele.boundingBox(); - - if (bb.w === 0 || bb.h === 0 || !ele.visible()) { - return; - } - - var eleCache = self.eleTxrCache; - var reason = useHighQualityEleTxrReqs ? eleCache.reasons.highQuality : undefined; - - lvl = self.getEleLevelForLayerLevel(lvl, pxRatio); - - var cache = useEleTxrCaching ? eleCache.getElement(ele, bb, null, lvl, reason) : null; - - if (cache) { - if (disableEleImgSmoothing) { - imgSmoothing(context, false); - } - - context.drawImage(cache.texture.canvas, cache.x, 0, cache.width, cache.height, bb.x1, bb.y1, bb.w, bb.h); - - if (disableEleImgSmoothing) { - imgSmoothing(context, true); - } - } else { - // if the element is not cacheable, then draw directly - r.drawElement(context, ele); - } -}; - -LTCp.levelIsComplete = function (lvl, eles) { - var self = this; - var layers = self.layersByLevel[lvl]; - - if (!layers || layers.length === 0) { - return false; - } - - var numElesInLayers = 0; - - for (var i = 0; i < layers.length; i++) { - var layer = layers[i]; - - // if there are any eles needed to be drawn yet, the level is not complete - if (layer.reqs > 0) { - return false; - } - - // if the layer is invalid, the level is not complete - if (layer.invalid) { - return false; - } - - numElesInLayers += layer.eles.length; - } - - // we should have exactly the number of eles passed in to be complete - if (numElesInLayers !== eles.length) { - return false; - } - - return true; -}; - -LTCp.validateLayersElesOrdering = function (lvl, eles) { - var layers = this.layersByLevel[lvl]; - - if (!layers) { - return; - } - - // if in a layer the eles are not in the same order, then the layer is invalid - // (i.e. there is an ele in between the eles in the layer) - - for (var i = 0; i < layers.length; i++) { - var layer = layers[i]; - var offset = -1; - - // find the offset - for (var j = 0; j < eles.length; j++) { - if (layer.eles[0] === eles[j]) { - offset = j; - break; - } - } - - if (offset < 0) { - // then the layer has nonexistant elements and is invalid - this.invalidateLayer(layer); - continue; - } - - // the eles in the layer must be in the same continuous order, else the layer is invalid - - var o = offset; - - for (var j = 0; j < layer.eles.length; j++) { - if (layer.eles[j] !== eles[o + j]) { - // log('invalidate based on ordering', layer.id); - - this.invalidateLayer(layer); - break; - } - } - } -}; - -LTCp.updateElementsInLayers = function (eles, update) { - var self = this; - var isEles = is.element(eles[0]); - - // collect udpated elements (cascaded from the layers) and update each - // layer itself along the way - for (var i = 0; i < eles.length; i++) { - var req = isEles ? null : eles[i]; - var ele = isEles ? eles[i] : eles[i].ele; - var rs = ele._private.rscratch; - var caches = rs.imgLayerCaches = rs.imgLayerCaches || {}; - - for (var l = minLvl; l <= maxLvl; l++) { - var layer = caches[l]; - - if (!layer) { - continue; - } - - // if update is a request from the ele cache, then it affects only - // the matching level - if (req && self.getEleLevelForLayerLevel(layer.level) !== req.level) { - continue; - } - - update(layer, ele, req); - } - } -}; - -LTCp.haveLayers = function () { - var self = this; - var haveLayers = false; - - for (var l = minLvl; l <= maxLvl; l++) { - var layers = self.layersByLevel[l]; - - if (layers && layers.length > 0) { - haveLayers = true; - break; - } - } - - return haveLayers; -}; - -LTCp.invalidateElements = function (eles) { - var self = this; - - self.lastInvalidationTime = util.performanceNow(); - - // log('update invalidate layer time from eles'); - - if (eles.length === 0 || !self.haveLayers()) { - return; - } - - self.updateElementsInLayers(eles, function invalAssocLayers(layer, ele, req) { - self.invalidateLayer(layer); - }); -}; - -LTCp.invalidateLayer = function (layer) { - // log('update invalidate layer time'); - - this.lastInvalidationTime = util.performanceNow(); - - if (layer.invalid) { - return; - } // save cycles - - var lvl = layer.level; - var eles = layer.eles; - var layers = this.layersByLevel[lvl]; - - // log('invalidate layer', layer.id ); - - util.removeFromArray(layers, layer); - // layer.eles = []; - - layer.elesQueue = []; - - layer.invalid = true; - - if (layer.replacement) { - layer.replacement.invalid = true; - } - - for (var i = 0; i < eles.length; i++) { - var caches = eles[i]._private.rscratch.imgLayerCaches; - - if (caches) { - caches[lvl] = null; - } - } -}; - -LTCp.refineElementTextures = function (eles) { - var self = this; - - // log('refine', eles.length); - - self.updateElementsInLayers(eles, function refineEachEle(layer, ele, req) { - var rLyr = layer.replacement; - - if (!rLyr) { - rLyr = layer.replacement = self.makeLayer(layer.bb, layer.level); - rLyr.replaces = layer; - rLyr.eles = layer.eles; - - // log('make replacement layer %s for %s with level %s', rLyr.id, layer.id, rLyr.level); - } - - if (!rLyr.reqs) { - for (var i = 0; i < rLyr.eles.length; i++) { - self.queueLayer(rLyr, rLyr.eles[i]); - } - - // log('queue replacement layer refinement', rLyr.id); - } - }); -}; - -LTCp.setupEleCacheInvalidation = function () { - var self = this; - var eleDeqs = []; - - if (!useEleTxrCaching) { - return; - } - - var updatedElesInLayers = util.debounce(function () { - self.refineElementTextures(eleDeqs); - - eleDeqs = []; - }, refineEleDebounceTime); - - self.eleTxrCache.onDequeue(function (reqs) { - for (var i = 0; i < reqs.length; i++) { - eleDeqs.push(reqs[i]); - } - - updatedElesInLayers(); - }); -}; - -LTCp.queueLayer = function (layer, ele) { - var self = this; - var q = self.layersQueue; - var elesQ = layer.elesQueue; - var hasId = elesQ.hasId = elesQ.hasId || {}; - - // if a layer is going to be replaced, queuing is a waste of time - if (layer.replacement) { - return; - } - - if (ele) { - if (hasId[ele.id()]) { - return; - } - - elesQ.push(ele); - hasId[ele.id()] = true; - } - - if (layer.reqs) { - layer.reqs++; - - q.updateItem(layer); - } else { - layer.reqs = 1; - - q.push(layer); - } -}; - -LTCp.dequeue = function (pxRatio) { - var self = this; - var q = self.layersQueue; - var deqd = []; - var eleDeqs = 0; - - while (eleDeqs < maxDeqSize) { - if (q.size() === 0) { - break; - } - - var layer = q.peek(); - - // if a layer has been or will be replaced, then don't waste time with it - if (layer.replacement) { - // log('layer %s in queue skipped b/c it already has a replacement', layer.id); - q.pop(); - continue; - } - - // if this is a replacement layer that has been superceded, then forget it - if (layer.replaces && layer !== layer.replaces.replacement) { - // log('layer is no longer the most uptodate replacement; dequeued', layer.id) - q.pop(); - continue; - } - - if (layer.invalid) { - // log('replacement layer %s is invalid; dequeued', layer.id); - q.pop(); - continue; - } - - var ele = layer.elesQueue.shift(); - - if (ele) { - // log('dequeue layer %s', layer.id); - - self.drawEleInLayer(layer, ele, layer.level, pxRatio); - - eleDeqs++; - } - - if (deqd.length === 0) { - // we need only one entry in deqd to queue redrawing etc - deqd.push(true); - } - - // if the layer has all its eles done, then remove from the queue - if (layer.elesQueue.length === 0) { - q.pop(); - - layer.reqs = 0; - - // log('dequeue of layer %s complete', layer.id); - - // when a replacement layer is dequeued, it replaces the old layer in the level - if (layer.replaces) { - self.applyLayerReplacement(layer); - } - - self.requestRedraw(); - } - } - - return deqd; -}; - -LTCp.applyLayerReplacement = function (layer) { - var self = this; - var layersInLevel = self.layersByLevel[layer.level]; - var replaced = layer.replaces; - var index = layersInLevel.indexOf(replaced); - - // if the replaced layer is not in the active list for the level, then replacing - // refs would be a mistake (i.e. overwriting the true active layer) - if (index < 0 || replaced.invalid) { - // log('replacement layer would have no effect', layer.id); - return; - } - - layersInLevel[index] = layer; // replace level ref - - // replace refs in eles - for (var i = 0; i < layer.eles.length; i++) { - var _p = layer.eles[i]._private; - var cache = _p.imgLayerCaches = _p.imgLayerCaches || {}; - - if (cache) { - cache[layer.level] = layer; - } - } - - // log('apply replacement layer %s over %s', layer.id, replaced.id); - - self.requestRedraw(); -}; - -LTCp.requestRedraw = util.debounce(function () { - var r = this.renderer; - - r.redrawHint('eles', true); - r.redrawHint('drag', true); - r.redraw(); -}, 100); - -LTCp.setupDequeueing = defs.setupDequeueing({ - deqRedrawThreshold: deqRedrawThreshold, - deqCost: deqCost, - deqAvgCost: deqAvgCost, - deqNoDrawCost: deqNoDrawCost, - deqFastCost: deqFastCost, - deq: function deq(self, pxRatio) { - return self.dequeue(pxRatio); - }, - onDeqd: util.noop, - shouldRedraw: util.trueify, - priority: function priority(self) { - return self.renderer.beforeRenderPriorities.lyrTxrDeq; - } -}); - -module.exports = LayeredTextureCache; - -/***/ }), -/* 114 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var CRp = {}; - -CRp.nodeShapeImpl = function (name, context, centerX, centerY, width, height, points) { - switch (name) { - case 'ellipse': - return this.drawEllipsePath(context, centerX, centerY, width, height); - case 'polygon': - return this.drawPolygonPath(context, centerX, centerY, width, height, points); - case 'roundrectangle': - return this.drawRoundRectanglePath(context, centerX, centerY, width, height); - case 'cutrectangle': - return this.drawCutRectanglePath(context, centerX, centerY, width, height); - case 'bottomroundrectangle': - return this.drawBottomRoundRectanglePath(context, centerX, centerY, width, height); - case 'barrel': - return this.drawBarrelPath(context, centerX, centerY, width, height); - } -}; - -module.exports = CRp; - -/***/ }), -/* 115 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = [{ name: 'null', impl: __webpack_require__(116) }, { name: 'base', impl: __webpack_require__(98) }, { name: 'canvas', impl: __webpack_require__(112) }]; - -/***/ }), -/* 116 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -function NullRenderer(options) { - this.options = options; - this.notifications = 0; // for testing -} - -var noop = function noop() {}; - -NullRenderer.prototype = { - recalculateRenderedStyle: noop, - notify: function notify() { - this.notifications++; - }, - init: noop -}; - -module.exports = NullRenderer; - -/***/ }), -/* 117 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); -var Core = __webpack_require__(12); -var extension = __webpack_require__(21); -var Stylesheet = __webpack_require__(22); - -var cytoscape = function cytoscape(options) { - // jshint ignore:line - // if no options specified, use default - if (options === undefined) { - options = {}; - } - - // create instance - if (is.plainObject(options)) { - return new Core(options); - } - - // allow for registration of extensions - else if (is.string(options)) { - return extension.apply(extension, arguments); - } -}; - -// e.g. cytoscape.use( require('cytoscape-foo'), bar ) -cytoscape.use = function (ext) { - var args = Array.prototype.slice.call(arguments, 1); // args to pass to ext - - args.unshift(cytoscape); // cytoscape is first arg to ext - - ext.apply(null, args); - - return this; -}; - -// replaced by build system -cytoscape.version = __webpack_require__(23); - -// expose public apis (mostly for extensions) -cytoscape.stylesheet = cytoscape.Stylesheet = Stylesheet; - -module.exports = cytoscape; - -/***/ }), -/* 118 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -function ObjectMap() { - this._obj = {}; -} - -var p = ObjectMap.prototype; - -p.set = function (key, val) { - this._obj[key] = val; -}; - -p.delete = function (key) { - this._obj[key] = null; -}; - -p.has = function (key) { - return this._obj[key] != null; -}; - -p.get = function (key) { - return this._obj[key]; -}; - -// TODO use the stdlib Map in future... -// module.exports = typeof Map !== 'undefined' ? Map : ObjectMap; -module.exports = ObjectMap; - -/***/ }), -/* 119 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); - -var _require = __webpack_require__(17), - stateSelectorRegex = _require.stateSelectorRegex; - -var tokens = __webpack_require__(122); -var util = __webpack_require__(1); -var newQuery = __webpack_require__(11); - -// when a token like a variable has escaped meta characters, we need to clean the backslashes out -// so that values get compared properly in Selector.filter() -var cleanMetaChars = function cleanMetaChars(str) { - return str.replace(new RegExp('\\\\(' + tokens.metaChar + ')', 'g'), function (match, $1) { - return $1; - }); -}; - -var replaceLastQuery = function replaceLastQuery(selector, examiningQuery, replacementQuery) { - if (examiningQuery === selector[selector.length - 1]) { - selector[selector.length - 1] = replacementQuery; - } -}; - -// NOTE: add new expression syntax here to have it recognised by the parser; -// - a query contains all adjacent (i.e. no separator in between) expressions; -// - the current query is stored in selector[i] --- you can use the reference to `this` in the populate function; -// - you need to check the query objects in Selector.filter() for it actually filter properly, but that's pretty straight forward -// - when you add something here, also add to Selector.toString() -var exprs = [{ - name: 'group', - query: true, - regex: '(' + tokens.group + ')', - populate: function populate(selector, query, _ref) { - var _ref2 = _slicedToArray(_ref, 1), - group = _ref2[0]; - - query.group = group === '*' ? group : group + 's'; - } -}, { - name: 'state', - query: true, - regex: stateSelectorRegex, - populate: function populate(selector, query, _ref3) { - var _ref4 = _slicedToArray(_ref3, 1), - state = _ref4[0]; - - query.colonSelectors.push(state); - } -}, { - name: 'id', - query: true, - regex: '\\#(' + tokens.id + ')', - populate: function populate(selector, query, _ref5) { - var _ref6 = _slicedToArray(_ref5, 1), - id = _ref6[0]; - - query.ids.push(cleanMetaChars(id)); - } -}, { - name: 'className', - query: true, - regex: '\\.(' + tokens.className + ')', - populate: function populate(selector, query, _ref7) { - var _ref8 = _slicedToArray(_ref7, 1), - className = _ref8[0]; - - query.classes.push(cleanMetaChars(className)); - } -}, { - name: 'dataExists', - query: true, - regex: '\\[\\s*(' + tokens.variable + ')\\s*\\]', - populate: function populate(selector, query, _ref9) { - var _ref10 = _slicedToArray(_ref9, 1), - variable = _ref10[0]; - - query.data.push({ - field: cleanMetaChars(variable) - }); - } -}, { - name: 'dataCompare', - query: true, - regex: '\\[\\s*(' + tokens.variable + ')\\s*(' + tokens.comparatorOp + ')\\s*(' + tokens.value + ')\\s*\\]', - populate: function populate(selector, query, _ref11) { - var _ref12 = _slicedToArray(_ref11, 3), - variable = _ref12[0], - comparatorOp = _ref12[1], - value = _ref12[2]; - - var valueIsString = new RegExp('^' + tokens.string + '$').exec(value) != null; - - if (valueIsString) { - value = value.substring(1, value.length - 1); - } else { - value = parseFloat(value); - } - - query.data.push({ - field: cleanMetaChars(variable), - operator: comparatorOp, - value: value - }); - } -}, { - name: 'dataBool', - query: true, - regex: '\\[\\s*(' + tokens.boolOp + ')\\s*(' + tokens.variable + ')\\s*\\]', - populate: function populate(selector, query, _ref13) { - var _ref14 = _slicedToArray(_ref13, 2), - boolOp = _ref14[0], - variable = _ref14[1]; - - query.data.push({ - field: cleanMetaChars(variable), - operator: boolOp - }); - } -}, { - name: 'metaCompare', - query: true, - regex: '\\[\\[\\s*(' + tokens.meta + ')\\s*(' + tokens.comparatorOp + ')\\s*(' + tokens.number + ')\\s*\\]\\]', - populate: function populate(selector, query, _ref15) { - var _ref16 = _slicedToArray(_ref15, 3), - meta = _ref16[0], - comparatorOp = _ref16[1], - number = _ref16[2]; - - query.meta.push({ - field: cleanMetaChars(meta), - operator: comparatorOp, - value: parseFloat(number) - }); - } -}, { - name: 'nextQuery', - separator: true, - regex: tokens.separator, - populate: function populate(selector) { - // go on to next query - var nextQuery = selector[selector.length++] = newQuery(); - selector.currentSubject = null; - - return nextQuery; - } -}, { - name: 'directedEdge', - separator: true, - regex: tokens.directedEdge, - populate: function populate(selector, query) { - var edgeQuery = newQuery(); - var source = query; - var target = newQuery(); - - edgeQuery.group = 'edges'; - edgeQuery.target = target; - edgeQuery.source = source; - edgeQuery.subject = selector.currentSubject; - - // the query in the selector should be the edge rather than the source - replaceLastQuery(selector, query, edgeQuery); - - // we're now populating the target query with expressions that follow - return target; - } -}, { - name: 'undirectedEdge', - separator: true, - regex: tokens.undirectedEdge, - populate: function populate(selector, query) { - var edgeQuery = newQuery(); - var source = query; - var target = newQuery(); - - edgeQuery.group = 'edges'; - edgeQuery.connectedNodes = [source, target]; - edgeQuery.subject = selector.currentSubject; - - // the query in the selector should be the edge rather than the source - replaceLastQuery(selector, query, edgeQuery); - - // we're now populating the target query with expressions that follow - return target; - } -}, { - name: 'child', - separator: true, - regex: tokens.child, - populate: function populate(selector, query) { - // this query is the parent of the following query - var childQuery = newQuery(); - childQuery.parent = query; - childQuery.subject = selector.currentSubject; - - // it's cheaper to compare children first and go up so replace the parent - replaceLastQuery(selector, query, childQuery); - - // we're now populating the child query with expressions that follow - return childQuery; - } -}, { - name: 'descendant', - separator: true, - regex: tokens.descendant, - populate: function populate(selector, query) { - // this query is the ancestor of the following query - var descendantQuery = newQuery(); - descendantQuery.ancestor = query; - descendantQuery.subject = selector.currentSubject; - - // it's cheaper to compare descendants first and go up so replace the ancestor - replaceLastQuery(selector, query, descendantQuery); - - // we're now populating the descendant query with expressions that follow - return descendantQuery; - } -}, { - name: 'subject', - modifier: true, - regex: tokens.subject, - populate: function populate(selector, query) { - if (selector.currentSubject != null && query.subject != query) { - util.error('Redefinition of subject in selector `' + selector.toString() + '`'); - return false; - } - - selector.currentSubject = query; - query.subject = query; - selector[selector.length - 1].subject = query; - } -}]; - -exprs.forEach(function (e) { - return e.regexObj = new RegExp('^' + e.regex); -}); - -module.exports = exprs; - -/***/ }), -/* 120 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _require = __webpack_require__(17), - stateSelectorMatches = _require.stateSelectorMatches; - -var is = __webpack_require__(0); - -// generic checking for data/metadata -var operandsMatch = function operandsMatch(query, params) { - var allDataMatches = true; - for (var k = 0; k < query[params.name].length; k++) { - var data = query[params.name][k]; - var operator = data.operator; - var value = data.value; - var field = data.field; - var _matches = void 0; - var fieldVal = params.fieldValue(field); - - if (operator != null && value != null) { - var fieldStr = !is.string(fieldVal) && !is.number(fieldVal) ? '' : '' + fieldVal; - var valStr = '' + value; - - var caseInsensitive = false; - if (operator.indexOf('@') >= 0) { - fieldStr = fieldStr.toLowerCase(); - valStr = valStr.toLowerCase(); - - operator = operator.replace('@', ''); - caseInsensitive = true; - } - - var notExpr = false; - if (operator.indexOf('!') >= 0) { - operator = operator.replace('!', ''); - notExpr = true; - } - - // if we're doing a case insensitive comparison, then we're using a STRING comparison - // even if we're comparing numbers - if (caseInsensitive) { - value = valStr.toLowerCase(); - fieldVal = fieldStr.toLowerCase(); - } - - var isIneqCmp = false; - - switch (operator) { - case '*=': - _matches = fieldStr.indexOf(valStr) >= 0; - break; - case '$=': - _matches = fieldStr.indexOf(valStr, fieldStr.length - valStr.length) >= 0; - break; - case '^=': - _matches = fieldStr.indexOf(valStr) === 0; - break; - case '=': - _matches = fieldVal === value; - break; - case '>': - isIneqCmp = true; - _matches = fieldVal > value; - break; - case '>=': - isIneqCmp = true; - _matches = fieldVal >= value; - break; - case '<': - isIneqCmp = true; - _matches = fieldVal < value; - break; - case '<=': - isIneqCmp = true; - _matches = fieldVal <= value; - break; - default: - _matches = false; - break; - } - - // apply the not op, but null vals for inequalities should always stay non-matching - if (notExpr && (fieldVal != null || !isIneqCmp)) { - _matches = !_matches; - } - } else if (operator != null) { - switch (operator) { - case '?': - _matches = fieldVal ? true : false; - break; - case '!': - _matches = fieldVal ? false : true; - break; - case '^': - _matches = fieldVal === undefined; - break; - } - } else { - _matches = fieldVal !== undefined; - } - - if (!_matches) { - allDataMatches = false; - break; - } - } // for - - return allDataMatches; -}; // operandsMatch - -// check parent/child relations -var confirmRelations = function confirmRelations(query, isNecessary, eles) { - if (query != null) { - var _matches2 = false; - - if (!isNecessary) { - return false; - } - - eles = eles(); // save cycles if query == null - - // query must match for at least one element (may be recursive) - for (var i = 0; i < eles.length; i++) { - if (queryMatches(query, eles[i])) { - _matches2 = true; - break; - } - } - - return _matches2; - } else { - return true; - } -}; - -var queryMatches = function queryMatches(query, ele) { - // make single group-only selectors really cheap to check since they're the most common ones - if (query.groupOnly) { - return query.group === '*' || query.group === ele.group(); - } - - // check group - if (query.group != null && query.group != '*' && query.group != ele.group()) { - return false; - } - - var cy = ele.cy(); - var k = void 0; - - // check colon selectors - var allColonSelectorsMatch = true; - for (k = 0; k < query.colonSelectors.length; k++) { - var sel = query.colonSelectors[k]; - - allColonSelectorsMatch = stateSelectorMatches(sel, ele); - - if (!allColonSelectorsMatch) break; - } - if (!allColonSelectorsMatch) return false; - - // check id - var allIdsMatch = true; - for (k = 0; k < query.ids.length; k++) { - var id = query.ids[k]; - var actualId = ele.id(); - - allIdsMatch = allIdsMatch && id == actualId; - - if (!allIdsMatch) break; - } - if (!allIdsMatch) return false; - - // check classes - var allClassesMatch = true; - for (k = 0; k < query.classes.length; k++) { - var cls = query.classes[k]; - - allClassesMatch = allClassesMatch && ele.hasClass(cls); - - if (!allClassesMatch) break; - } - if (!allClassesMatch) return false; - - // check data matches - var allDataMatches = operandsMatch(query, { - name: 'data', - fieldValue: function fieldValue(field) { - return ele.data(field); - } - }); - - if (!allDataMatches) { - return false; - } - - // check metadata matches - var allMetaMatches = operandsMatch(query, { - name: 'meta', - fieldValue: function fieldValue(field) { - return ele[field](); - } - }); - - if (!allMetaMatches) { - return false; - } - - // check collection - if (query.collection != null) { - var matchesAny = query.collection.hasElementWithId(ele.id()); - - if (!matchesAny) { - return false; - } - } - - // check filter function - if (query.filter != null && ele.collection().some(query.filter)) { - return false; - } - - var isCompound = cy.hasCompoundNodes(); - var getSource = function getSource() { - return ele.source(); - }; - var getTarget = function getTarget() { - return ele.target(); - }; - - if (!confirmRelations(query.parent, isCompound, function () { - return ele.parent(); - })) { - return false; - } - - if (!confirmRelations(query.ancestor, isCompound, function () { - return ele.parents(); - })) { - return false; - } - - if (!confirmRelations(query.child, isCompound, function () { - return ele.children(); - })) { - return false; - } - - if (!confirmRelations(query.descendant, isCompound, function () { - return ele.descendants(); - })) { - return false; - } - - if (!confirmRelations(query.source, true, getSource)) { - return false; - } - - if (!confirmRelations(query.target, true, getTarget)) { - return false; - } - - if (query.connectedNodes) { - var q0 = query.connectedNodes[0]; - var q1 = query.connectedNodes[1]; - - if (confirmRelations(q0, true, getSource) && confirmRelations(q1, true, getTarget)) { - // match - } else if (confirmRelations(q0, true, getTarget) && confirmRelations(q1, true, getSource)) { - // match - } else { - return false; - } - } - - // we've reached the end, so we've matched everything for this query - return true; -}; // queryMatches - -// filter an existing collection -var filter = function filter(collection) { - var self = this; - var cy = collection.cy(); - - // don't bother trying if it's invalid - if (self.invalid()) { - return cy.collection(); - } - - // for 1 id #foo queries, just get the element - if (self.length === 1 && self[0].length === 1 && self[0].ids.length === 1) { - return collection.getElementById(self[0].ids[0]).collection(); - } - - var selectorFunction = function selectorFunction(element) { - for (var j = 0; j < self.length; j++) { - var query = self[j]; - - if (queryMatches(query, element)) { - return true; - } - } - - return false; - }; - - if (self.text() == null) { - selectorFunction = function selectorFunction() { - return true; - }; - } - - var filteredCollection = collection.filter(selectorFunction); - - return filteredCollection; -}; // filter - -// does selector match a single element? -var matches = function matches(ele) { - var self = this; - - // don't bother trying if it's invalid - if (self.invalid()) { - return false; - } - - for (var j = 0; j < self.length; j++) { - var query = self[j]; - - if (queryMatches(query, ele)) { - return true; - } - } - - return false; -}; // filter - -module.exports = { matches: matches, filter: filter }; - -/***/ }), -/* 121 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var exprs = __webpack_require__(119); -var newQuery = __webpack_require__(11); - -// of all the expressions, find the first match in the remaining text -var consumeExpr = function consumeExpr(remaining) { - var expr = void 0; - var match = void 0; - var name = void 0; - - for (var j = 0; j < exprs.length; j++) { - var e = exprs[j]; - var n = e.name; - - var m = remaining.match(e.regexObj); - - if (m != null) { - match = m; - expr = e; - name = n; - - var consumed = m[0]; - remaining = remaining.substring(consumed.length); - - break; // we've consumed one expr, so we can return now - } - } - - return { - expr: expr, - match: match, - name: name, - remaining: remaining - }; -}; - -// consume all leading whitespace -var consumeWhitespace = function consumeWhitespace(remaining) { - var match = remaining.match(/^\s+/); - - if (match) { - var consumed = match[0]; - remaining = remaining.substring(consumed.length); - } - - return remaining; -}; - -var parse = function parse(selector) { - var self = this; - - var remaining = self._private.selectorText = selector; - - var currentQuery = self[0] = newQuery(); - self.length = 1; - - remaining = consumeWhitespace(remaining); // get rid of leading whitespace - - for (;;) { - var check = consumeExpr(remaining); - - if (check.expr == null) { - util.error('The selector `' + selector + '`is invalid'); - return false; - } else { - var args = check.match.slice(1); - - // let the token populate the selector object in currentQuery - var ret = check.expr.populate(self, currentQuery, args); - - if (ret === false) { - return false; // exit if population failed - } else if (ret != null) { - currentQuery = ret; // change the current query to be filled if the expr specifies - } - } - - remaining = check.remaining; - - // we're done when there's nothing left to parse - if (remaining.match(/^\s*$/)) { - break; - } - } - - // adjust references for subject - for (var j = 0; j < self.length; j++) { - var query = self[j]; - - if (query.subject != null) { - // go up the tree until we reach the subject - for (;;) { - if (query.subject === query) { - break; - } // done if subject is self - - if (query.parent != null) { - // swap parent/child reference - var parent = query.parent; - var child = query; - - child.parent = null; - parent.child = child; - - query = parent; // go up the tree - } else if (query.ancestor != null) { - // swap ancestor/descendant - var ancestor = query.ancestor; - var descendant = query; - - descendant.ancestor = null; - ancestor.descendant = descendant; - - query = ancestor; // go up the tree - } else if (query.source || query.target || query.connectedNodes) { - util.error('The selector `' + self.text() + '` can not contain a subject selector that applies to the source or target of an edge selector'); - return false; - } else { - util.error('When adjusting references for the selector `' + self.text() + '`, neither parent nor ancestor was found'); - return false; - } - } // for - - self[j] = query.subject; // subject should be the root query - } // if - } // for - - return true; // success -}; - -module.exports = { parse: parse }; - -/***/ }), -/* 122 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); - -// tokens in the query language -var tokens = { - metaChar: '[\\!\\"\\#\\$\\%\\&\\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]', // chars we need to escape in let names, etc - comparatorOp: '=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=', // binary comparison op (used in data selectors) - boolOp: '\\?|\\!|\\^', // boolean (unary) operators (used in data selectors) - string: '"(?:\\\\"|[^"])*"' + '|' + "'(?:\\\\'|[^'])*'", // string literals (used in data selectors) -- doublequotes | singlequotes - number: util.regex.number, // number literal (used in data selectors) --- e.g. 0.1234, 1234, 12e123 - meta: 'degree|indegree|outdegree', // allowed metadata fields (i.e. allowed functions to use from Collection) - separator: '\\s*,\\s*', // queries are separated by commas, e.g. edge[foo = 'bar'], node.someClass - descendant: '\\s+', - child: '\\s+>\\s+', - subject: '\\$', - group: 'node|edge|\\*', - directedEdge: '\\s+->\\s+', - undirectedEdge: '\\s+<->\\s+' -}; -tokens.variable = '(?:[\\w-]|(?:\\\\' + tokens.metaChar + '))+'; // a variable name -tokens.value = tokens.string + '|' + tokens.number; // a value literal, either a string or number -tokens.className = tokens.variable; // a class name (follows variable conventions) -tokens.id = tokens.variable; // an element id (follows variable conventions) - -(function () { - var ops = void 0, - op = void 0, - i = void 0; - - // add @ variants to comparatorOp - ops = tokens.comparatorOp.split('|'); - for (i = 0; i < ops.length; i++) { - op = ops[i]; - tokens.comparatorOp += '|@' + op; - } - - // add ! variants to comparatorOp - ops = tokens.comparatorOp.split('|'); - for (i = 0; i < ops.length; i++) { - op = ops[i]; - - if (op.indexOf('!') >= 0) { - continue; - } // skip ops that explicitly contain ! - if (op === '=') { - continue; - } // skip = b/c != is explicitly defined - - tokens.comparatorOp += '|\\!' + op; - } -})(); - -module.exports = tokens; - -/***/ }), -/* 123 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var is = __webpack_require__(0); -var Promise = __webpack_require__(5); - -var styfn = {}; - -// (potentially expensive calculation) -// apply the style to the element based on -// - its bypass -// - what selectors match it -styfn.apply = function (eles) { - var self = this; - var _p = self._private; - var cy = _p.cy; - var updatedEles = cy.collection(); - - if (_p.newStyle) { - // clear style caches - _p.contextStyles = {}; - _p.propDiffs = {}; - - self.cleanElements(eles, true); - } - - for (var ie = 0; ie < eles.length; ie++) { - var ele = eles[ie]; - - var cxtMeta = self.getContextMeta(ele); - - if (cxtMeta.empty) { - continue; - } else { - updatedEles.merge(ele); - } - - var cxtStyle = self.getContextStyle(cxtMeta); - var app = self.applyContextStyle(cxtMeta, cxtStyle, ele); - - if (!_p.newStyle) { - self.updateTransitions(ele, app.diffProps); - } - - self.updateStyleHints(ele); - } // for elements - - _p.newStyle = false; - - return updatedEles; -}; - -styfn.getPropertiesDiff = function (oldCxtKey, newCxtKey) { - var self = this; - var cache = self._private.propDiffs = self._private.propDiffs || {}; - var dualCxtKey = oldCxtKey + '-' + newCxtKey; - var cachedVal = cache[dualCxtKey]; - - if (cachedVal) { - return cachedVal; - } - - var diffProps = []; - var addedProp = {}; - - for (var i = 0; i < self.length; i++) { - var cxt = self[i]; - var oldHasCxt = oldCxtKey[i] === 't'; - var newHasCxt = newCxtKey[i] === 't'; - var cxtHasDiffed = oldHasCxt !== newHasCxt; - var cxtHasMappedProps = cxt.mappedProperties.length > 0; - - if (cxtHasDiffed || cxtHasMappedProps) { - var props = void 0; - - if (cxtHasDiffed && cxtHasMappedProps) { - props = cxt.properties; // suffices b/c mappedProperties is a subset of properties - } else if (cxtHasDiffed) { - props = cxt.properties; // need to check them all - } else if (cxtHasMappedProps) { - props = cxt.mappedProperties; // only need to check mapped - } - - for (var j = 0; j < props.length; j++) { - var prop = props[j]; - var name = prop.name; - - // if a later context overrides this property, then the fact that this context has switched/diffed doesn't matter - // (semi expensive check since it makes this function O(n^2) on context length, but worth it since overall result - // is cached) - var laterCxtOverrides = false; - for (var k = i + 1; k < self.length; k++) { - var laterCxt = self[k]; - var hasLaterCxt = newCxtKey[k] === 't'; - - if (!hasLaterCxt) { - continue; - } // can't override unless the context is active - - laterCxtOverrides = laterCxt.properties[prop.name] != null; - - if (laterCxtOverrides) { - break; - } // exit early as long as one later context overrides - } - - if (!addedProp[name] && !laterCxtOverrides) { - addedProp[name] = true; - diffProps.push(name); - } - } // for props - } // if - } // for contexts - - cache[dualCxtKey] = diffProps; - return diffProps; -}; - -styfn.getContextMeta = function (ele) { - var self = this; - var cxtKey = ''; - var diffProps = void 0; - var prevKey = ele._private.styleCxtKey || ''; - - if (self._private.newStyle) { - prevKey = ''; // since we need to apply all style if a fresh stylesheet - } - - // get the cxt key - for (var i = 0; i < self.length; i++) { - var context = self[i]; - var contextSelectorMatches = context.selector && context.selector.matches(ele); // NB: context.selector may be null for 'core' - - if (contextSelectorMatches) { - cxtKey += 't'; - } else { - cxtKey += 'f'; - } - } // for context - - diffProps = self.getPropertiesDiff(prevKey, cxtKey); - - ele._private.styleCxtKey = cxtKey; - - return { - key: cxtKey, - diffPropNames: diffProps, - empty: diffProps.length === 0 - }; -}; - -// gets a computed ele style object based on matched contexts -styfn.getContextStyle = function (cxtMeta) { - var cxtKey = cxtMeta.key; - var self = this; - var cxtStyles = this._private.contextStyles = this._private.contextStyles || {}; - - // if already computed style, returned cached copy - if (cxtStyles[cxtKey]) { - return cxtStyles[cxtKey]; - } - - var style = { - _private: { - key: cxtKey - } - }; - - for (var i = 0; i < self.length; i++) { - var cxt = self[i]; - var hasCxt = cxtKey[i] === 't'; - - if (!hasCxt) { - continue; - } - - for (var j = 0; j < cxt.properties.length; j++) { - var prop = cxt.properties[j]; - - style[prop.name] = prop; - } - } - - cxtStyles[cxtKey] = style; - return style; -}; - -styfn.applyContextStyle = function (cxtMeta, cxtStyle, ele) { - var self = this; - var diffProps = cxtMeta.diffPropNames; - var retDiffProps = {}; - - for (var i = 0; i < diffProps.length; i++) { - var diffPropName = diffProps[i]; - var cxtProp = cxtStyle[diffPropName]; - var eleProp = ele.pstyle(diffPropName); - - if (!cxtProp) { - // no context prop means delete - if (!eleProp) { - continue; // no existing prop means nothing needs to be removed - // nb affects initial application on mapped values like control-point-distances - } else if (eleProp.bypass) { - cxtProp = { name: diffPropName, deleteBypassed: true }; - } else { - cxtProp = { name: diffPropName, delete: true }; - } - } - - // save cycles when the context prop doesn't need to be applied - if (eleProp === cxtProp) { - continue; - } - - var retDiffProp = retDiffProps[diffPropName] = { - prev: eleProp - }; - - self.applyParsedProperty(ele, cxtProp); - - retDiffProp.next = ele.pstyle(diffPropName); - - if (retDiffProp.next && retDiffProp.next.bypass) { - retDiffProp.next = retDiffProp.next.bypassed; - } - } - - return { - diffProps: retDiffProps - }; -}; - -styfn.updateStyleHints = function (ele) { - var _p = ele._private; - var self = this; - - if (ele.removed()) { - return; - } - - // set whether has pie or not; for greater efficiency - var hasPie = false; - if (_p.group === 'nodes') { - for (var i = 1; i <= self.pieBackgroundN; i++) { - // 1..N - var _size = ele.pstyle('pie-' + i + '-background-size').value; - - if (_size > 0) { - hasPie = true; - break; - } - } - } - - _p.hasPie = hasPie; - - var transform = ele.pstyle('text-transform').strValue; - var content = ele.pstyle('label').strValue; - var srcContent = ele.pstyle('source-label').strValue; - var tgtContent = ele.pstyle('target-label').strValue; - var fStyle = ele.pstyle('font-style').strValue; - var size = ele.pstyle('font-size').pfValue + 'px'; - var family = ele.pstyle('font-family').strValue; - // let letiant = style['font-letiant'].strValue; - var weight = ele.pstyle('font-weight').strValue; - var valign = ele.pstyle('text-valign').strValue; - var halign = ele.pstyle('text-valign').strValue; - var oWidth = ele.pstyle('text-outline-width').pfValue; - var wrap = ele.pstyle('text-wrap').strValue; - var wrapW = ele.pstyle('text-max-width').pfValue; - var labelStyleKey = fStyle + '$' + size + '$' + family + '$' + weight + '$' + transform + '$' + valign + '$' + halign + '$' + oWidth + '$' + wrap + '$' + wrapW; - _p.labelStyleKey = labelStyleKey; - _p.sourceLabelKey = labelStyleKey + '$' + srcContent; - _p.targetLabelKey = labelStyleKey + '$' + tgtContent; - _p.labelKey = labelStyleKey + '$' + content; - _p.fontKey = fStyle + '$' + weight + '$' + size + '$' + family; - - _p.styleKey = Date.now(); -}; - -// apply a property to the style (for internal use) -// returns whether application was successful -// -// now, this function flattens the property, and here's how: -// -// for parsedProp:{ bypass: true, deleteBypass: true } -// no property is generated, instead the bypass property in the -// element's style is replaced by what's pointed to by the `bypassed` -// field in the bypass property (i.e. restoring the property the -// bypass was overriding) -// -// for parsedProp:{ mapped: truthy } -// the generated flattenedProp:{ mapping: prop } -// -// for parsedProp:{ bypass: true } -// the generated flattenedProp:{ bypassed: parsedProp } -styfn.applyParsedProperty = function (ele, parsedProp) { - var self = this; - var prop = parsedProp; - var style = ele._private.style; - var fieldVal = void 0, - flatProp = void 0; - var types = self.types; - var type = self.properties[prop.name].type; - var propIsBypass = prop.bypass; - var origProp = style[prop.name]; - var origPropIsBypass = origProp && origProp.bypass; - var _p = ele._private; - var flatPropMapping = 'mapping'; - - var checkZOrder = function checkZOrder() { - self.checkZOrderTrigger(ele, prop.name, origProp ? origProp.value : null, prop.value); - }; - - // edges connected to compound nodes can not be haystacks - if (parsedProp.name === 'curve-style' && parsedProp.value === 'haystack' && ele.isEdge() && (ele.isLoop() || ele.source().isParent() || ele.target().isParent())) { - prop = parsedProp = this.parse(parsedProp.name, 'bezier', propIsBypass); - } - - if (prop.delete) { - // delete the property and use the default value on falsey value - style[prop.name] = undefined; - - checkZOrder(); - - return true; - } - - if (prop.deleteBypassed) { - // delete the property that the - if (!origProp) { - checkZOrder(); - - return true; // can't delete if no prop - } else if (origProp.bypass) { - // delete bypassed - origProp.bypassed = undefined; - - checkZOrder(); - - return true; - } else { - return false; // we're unsuccessful deleting the bypassed - } - } - - // check if we need to delete the current bypass - if (prop.deleteBypass) { - // then this property is just here to indicate we need to delete - if (!origProp) { - checkZOrder(); - - return true; // property is already not defined - } else if (origProp.bypass) { - // then replace the bypass property with the original - // because the bypassed property was already applied (and therefore parsed), we can just replace it (no reapplying necessary) - style[prop.name] = origProp.bypassed; - - checkZOrder(); - - return true; - } else { - return false; // we're unsuccessful deleting the bypass - } - } - - var printMappingErr = function printMappingErr() { - util.error('Do not assign mappings to elements without corresponding data (e.g. ele `' + ele.id() + '` for property `' + prop.name + '` with data field `' + prop.field + '`); try a `[' + prop.field + ']` selector to limit scope to elements with `' + prop.field + '` defined'); - }; - - // put the property in the style objects - switch (prop.mapped) {// flatten the property if mapped - case types.mapData: - { - // flatten the field (e.g. data.foo.bar) - var fields = prop.field.split('.'); - var _fieldVal = _p.data; - - for (var i = 0; i < fields.length && _fieldVal; i++) { - var field = fields[i]; - _fieldVal = _fieldVal[field]; - } - - var percent = void 0; - if (!is.number(_fieldVal)) { - // then keep the mapping but assume 0% for now - percent = 0; - } else { - percent = (_fieldVal - prop.fieldMin) / (prop.fieldMax - prop.fieldMin); - } - - // make sure to bound percent value - if (percent < 0) { - percent = 0; - } else if (percent > 1) { - percent = 1; - } - - if (type.color) { - var r1 = prop.valueMin[0]; - var r2 = prop.valueMax[0]; - var g1 = prop.valueMin[1]; - var g2 = prop.valueMax[1]; - var b1 = prop.valueMin[2]; - var b2 = prop.valueMax[2]; - var a1 = prop.valueMin[3] == null ? 1 : prop.valueMin[3]; - var a2 = prop.valueMax[3] == null ? 1 : prop.valueMax[3]; - - var clr = [Math.round(r1 + (r2 - r1) * percent), Math.round(g1 + (g2 - g1) * percent), Math.round(b1 + (b2 - b1) * percent), Math.round(a1 + (a2 - a1) * percent)]; - - flatProp = { // colours are simple, so just create the flat property instead of expensive string parsing - bypass: prop.bypass, // we're a bypass if the mapping property is a bypass - name: prop.name, - value: clr, - strValue: 'rgb(' + clr[0] + ', ' + clr[1] + ', ' + clr[2] + ')' - }; - } else if (type.number) { - var calcValue = prop.valueMin + (prop.valueMax - prop.valueMin) * percent; - flatProp = this.parse(prop.name, calcValue, prop.bypass, flatPropMapping); - } else { - return false; // can only map to colours and numbers - } - - if (!flatProp) { - // if we can't flatten the property, then use the origProp so we still keep the mapping itself - flatProp = this.parse(prop.name, origProp.strValue, prop.bypass, flatPropMapping); - } - - if (!flatProp) { - printMappingErr(); - } - flatProp.mapping = prop; // keep a reference to the mapping - prop = flatProp; // the flattened (mapped) property is the one we want - - break; - } - - // direct mapping - case types.data: - { - // flatten the field (e.g. data.foo.bar) - var _fields = prop.field.split('.'); - var _fieldVal2 = _p.data; - - if (_fieldVal2) { - for (var _i = 0; _i < _fields.length; _i++) { - var _field = _fields[_i]; - _fieldVal2 = _fieldVal2[_field]; - } - } - - flatProp = this.parse(prop.name, _fieldVal2, prop.bypass, flatPropMapping); - - if (!flatProp) { - // if we can't flatten the property, then use the origProp so we still keep the mapping itself - var flatPropVal = origProp ? origProp.strValue : ''; - - flatProp = this.parse(prop.name, flatPropVal, prop.bypass, flatPropMapping); - } - - if (!flatProp) { - printMappingErr(); - } - flatProp.mapping = prop; // keep a reference to the mapping - prop = flatProp; // the flattened (mapped) property is the one we want - - break; - } - - case types.fn: - { - var fn = prop.value; - var fnRetVal = fn(ele); - - flatProp = this.parse(prop.name, fnRetVal, prop.bypass, flatPropMapping); - flatProp.mapping = prop; // keep a reference to the mapping - prop = flatProp; // the flattened (mapped) property is the one we want - - break; - } - - case undefined: - break; // just set the property - - default: - return false; // not a valid mapping - } - - // if the property is a bypass property, then link the resultant property to the original one - if (propIsBypass) { - if (origPropIsBypass) { - // then this bypass overrides the existing one - prop.bypassed = origProp.bypassed; // steal bypassed prop from old bypass - } else { - // then link the orig prop to the new bypass - prop.bypassed = origProp; - } - - style[prop.name] = prop; // and set - } else { - // prop is not bypass - if (origPropIsBypass) { - // then keep the orig prop (since it's a bypass) and link to the new prop - origProp.bypassed = prop; - } else { - // then just replace the old prop with the new one - style[prop.name] = prop; - } - } - - checkZOrder(); - - return true; -}; - -styfn.cleanElements = function (eles, keepBypasses) { - var self = this; - var props = self.properties; - - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - - if (!keepBypasses) { - ele._private.style = {}; - } else { - var style = ele._private.style; - - for (var j = 0; j < props.length; j++) { - var prop = props[j]; - var eleProp = style[prop.name]; - - if (eleProp) { - if (eleProp.bypass) { - eleProp.bypassed = null; - } else { - style[prop.name] = null; - } - } - } - } - } -}; - -// updates the visual style for all elements (useful for manual style modification after init) -styfn.update = function () { - var cy = this._private.cy; - var eles = cy.mutableElements(); - - eles.updateStyle(); -}; - -// just update the functional properties (i.e. mappings) in the elements' -// styles (less expensive than recalculation) -styfn.updateMappers = function (eles) { - var self = this; - var cy = this._private.cy; - var updatedEles = cy.collection(); - - for (var i = 0; i < eles.length; i++) { - // for each ele - var ele = eles[i]; - var style = ele._private.style; - var updatedEle = false; - - for (var j = 0; j < self.properties.length; j++) { - // for each prop - var prop = self.properties[j]; - var propInStyle = style[prop.name]; - - if (propInStyle && propInStyle.mapping) { - var mapping = propInStyle.mapping; - - this.applyParsedProperty(ele, mapping); // reapply the mapping property - - updatedEle = true; - } - } - - if (updatedEle) { - this.updateStyleHints(ele); - - updatedEles.merge(ele); - } - } - - return updatedEles; -}; - -// diffProps : { name => { prev, next } } -styfn.updateTransitions = function (ele, diffProps, isBypass) { - var self = this; - var _p = ele._private; - var props = ele.pstyle('transition-property').value; - var duration = ele.pstyle('transition-duration').pfValue; - var delay = ele.pstyle('transition-delay').pfValue; - - if (props.length > 0 && duration > 0) { - - var style = {}; - - // build up the style to animate towards - var anyPrev = false; - for (var i = 0; i < props.length; i++) { - var prop = props[i]; - var styProp = ele.pstyle(prop); - var diffProp = diffProps[prop]; - - if (!diffProp) { - continue; - } - - var prevProp = diffProp.prev; - var fromProp = prevProp; - var toProp = diffProp.next != null ? diffProp.next : styProp; - var diff = false; - var initVal = void 0; - var initDt = 0.000001; // delta time % value for initVal (allows animating out of init zero opacity) - - if (!fromProp) { - continue; - } - - // consider px values - if (is.number(fromProp.pfValue) && is.number(toProp.pfValue)) { - diff = toProp.pfValue - fromProp.pfValue; // nonzero is truthy - initVal = fromProp.pfValue + initDt * diff; - - // consider numerical values - } else if (is.number(fromProp.value) && is.number(toProp.value)) { - diff = toProp.value - fromProp.value; // nonzero is truthy - initVal = fromProp.value + initDt * diff; - - // consider colour values - } else if (is.array(fromProp.value) && is.array(toProp.value)) { - diff = fromProp.value[0] !== toProp.value[0] || fromProp.value[1] !== toProp.value[1] || fromProp.value[2] !== toProp.value[2]; - - initVal = fromProp.strValue; - } - - // the previous value is good for an animation only if it's different - if (diff) { - style[prop] = toProp.strValue; // to val - this.applyBypass(ele, prop, initVal); // from val - anyPrev = true; - } - } // end if props allow ani - - // can't transition if there's nothing previous to transition from - if (!anyPrev) { - return; - } - - _p.transitioning = true; - - new Promise(function (resolve) { - if (delay > 0) { - ele.delayAnimation(delay).play().promise().then(resolve); - } else { - resolve(); - } - }).then(function () { - return ele.animation({ - style: style, - duration: duration, - easing: ele.pstyle('transition-timing-function').value, - queue: false - }).play().promise(); - }).then(function () { - // if( !isBypass ){ - self.removeBypasses(ele, props); - ele.emitAndNotify('style'); - // } - - _p.transitioning = false; - }); - } else if (_p.transitioning) { - this.removeBypasses(ele, props); - ele.emitAndNotify('style'); - - _p.transitioning = false; - } -}; - -styfn.checkZOrderTrigger = function (ele, name, fromValue, toValue) { - var prop = this.properties[name]; - - if (prop.triggersZOrder != null && (fromValue == null || prop.triggersZOrder(fromValue, toValue))) { - this._private.cy.notify({ - type: 'zorder', - eles: ele - }); - } -}; - -module.exports = styfn; - -/***/ }), -/* 124 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); -var util = __webpack_require__(1); - -var styfn = {}; - -// bypasses are applied to an existing style on an element, and just tacked on temporarily -// returns true iff application was successful for at least 1 specified property -styfn.applyBypass = function (eles, name, value, updateTransitions) { - var self = this; - var props = []; - var isBypass = true; - - // put all the properties (can specify one or many) in an array after parsing them - if (name === '*' || name === '**') { - // apply to all property names - - if (value !== undefined) { - for (var i = 0; i < self.properties.length; i++) { - var prop = self.properties[i]; - var _name = prop.name; - - var parsedProp = this.parse(_name, value, true); - - if (parsedProp) { - props.push(parsedProp); - } - } - } - } else if (is.string(name)) { - // then parse the single property - var _parsedProp = this.parse(name, value, true); - - if (_parsedProp) { - props.push(_parsedProp); - } - } else if (is.plainObject(name)) { - // then parse each property - var specifiedProps = name; - updateTransitions = value; - - var names = Object.keys(specifiedProps); - - for (var _i = 0; _i < names.length; _i++) { - var _name2 = names[_i]; - var _prop = self.properties[_name2]; - var _value = specifiedProps[_name2]; - - if (_value === undefined) { - // try camel case name too - _value = specifiedProps[util.dash2camel(_name2)]; - } - - if (_value !== undefined) { - var _parsedProp2 = this.parse(_name2, _value, true); - - if (_parsedProp2) { - props.push(_parsedProp2); - } - } - } - } else { - // can't do anything without well defined properties - return false; - } - - // we've failed if there are no valid properties - if (props.length === 0) { - return false; - } - - // now, apply the bypass properties on the elements - var ret = false; // return true if at least one succesful bypass applied - for (var _i2 = 0; _i2 < eles.length; _i2++) { - // for each ele - var ele = eles[_i2]; - var diffProps = {}; - var diffProp = void 0; - - for (var j = 0; j < props.length; j++) { - // for each prop - var _prop2 = props[j]; - - if (updateTransitions) { - var prevProp = ele.pstyle(_prop2.name); - diffProp = diffProps[_prop2.name] = { prev: prevProp }; - } - - ret = this.applyParsedProperty(ele, _prop2) || ret; - - if (updateTransitions) { - diffProp.next = ele.pstyle(_prop2.name); - } - } // for props - - if (ret) { - this.updateStyleHints(ele); - } - - if (updateTransitions) { - this.updateTransitions(ele, diffProps, isBypass); - } - } // for eles - - return ret; -}; - -// only useful in specific cases like animation -styfn.overrideBypass = function (eles, name, value) { - name = util.camel2dash(name); - - for (var i = 0; i < eles.length; i++) { - var ele = eles[i]; - var prop = ele._private.style[name]; - var type = this.properties[name].type; - var isColor = type.color; - var isMulti = type.mutiple; - - if (!prop || !prop.bypass) { - // need a bypass if one doesn't exist - this.applyBypass(ele, name, value); - continue; - } - - var oldValue = prop.pfValue != null ? prop.pfValue : prop.value; - - prop.value = value; - - if (prop.pfValue != null) { - prop.pfValue = value; - } - - if (isColor) { - prop.strValue = 'rgb(' + value.join(',') + ')'; - } else if (isMulti) { - prop.strValue = value.join(' '); - } else { - prop.strValue = '' + value; - } - - this.checkZOrderTrigger(ele, name, oldValue, value); - } -}; - -styfn.removeAllBypasses = function (eles, updateTransitions) { - return this.removeBypasses(eles, this.propertyNames, updateTransitions); -}; - -styfn.removeBypasses = function (eles, props, updateTransitions) { - var isBypass = true; - - for (var j = 0; j < eles.length; j++) { - var ele = eles[j]; - var diffProps = {}; - - for (var i = 0; i < props.length; i++) { - var name = props[i]; - var prop = this.properties[name]; - var prevProp = ele.pstyle(prop.name); - - if (!prevProp || !prevProp.bypass) { - // if a bypass doesn't exist for the prop, nothing needs to be removed - continue; - } - - var value = ''; // empty => remove bypass - var parsedProp = this.parse(name, value, true); - var diffProp = diffProps[prop.name] = { prev: prevProp }; - - this.applyParsedProperty(ele, parsedProp); - - diffProp.next = ele.pstyle(prop.name); - } // for props - - this.updateStyleHints(ele); - - if (updateTransitions) { - this.updateTransitions(ele, diffProps, isBypass); - } - } // for eles -}; - -module.exports = styfn; - -/***/ }), -/* 125 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var window = __webpack_require__(4); - -var styfn = {}; - -// gets what an em size corresponds to in pixels relative to a dom element -styfn.getEmSizeInPixels = function () { - var px = this.containerCss('font-size'); - - if (px != null) { - return parseFloat(px); - } else { - return 1; // for headless - } -}; - -// gets css property from the core container -styfn.containerCss = function (propName) { - var cy = this._private.cy; - var domElement = cy.container(); - - if (window && domElement && window.getComputedStyle) { - return window.getComputedStyle(domElement).getPropertyValue(propName); - } -}; - -module.exports = styfn; - -/***/ }), -/* 126 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var is = __webpack_require__(0); - -var styfn = {}; - -// gets the rendered style for an element -styfn.getRenderedStyle = function (ele, prop) { - if (prop) { - return this.getStylePropertyValue(ele, prop, true); - } else { - return this.getRawStyle(ele, true); - } -}; - -// gets the raw style for an element -styfn.getRawStyle = function (ele, isRenderedVal) { - var self = this; - - ele = ele[0]; // insure it's an element - - if (ele) { - var rstyle = {}; - - for (var i = 0; i < self.properties.length; i++) { - var prop = self.properties[i]; - var val = self.getStylePropertyValue(ele, prop.name, isRenderedVal); - - if (val != null) { - rstyle[prop.name] = val; - rstyle[util.dash2camel(prop.name)] = val; - } - } - - return rstyle; - } -}; - -styfn.getIndexedStyle = function (ele, property, subproperty, index) { - var pstyle = ele.pstyle(property)[subproperty][index]; - return pstyle != null ? pstyle : ele.cy().style().getDefaultProperty(property)[subproperty][0]; -}; - -styfn.getStylePropertyValue = function (ele, propName, isRenderedVal) { - var self = this; - - ele = ele[0]; // insure it's an element - - if (ele) { - var prop = self.properties[propName]; - - if (prop.alias) { - prop = prop.pointsTo; - } - - var type = prop.type; - var styleProp = ele.pstyle(prop.name); - var zoom = ele.cy().zoom(); - - if (styleProp) { - var units = styleProp.units ? type.implicitUnits || 'px' : null; - var val = units ? [].concat(styleProp.pfValue).map(function (pfValue) { - return pfValue * (isRenderedVal ? zoom : 1) + units; - }).join(' ') : styleProp.strValue; - - return val; - } - } -}; - -styfn.getAnimationStartStyle = function (ele, aniProps) { - var rstyle = {}; - - for (var i = 0; i < aniProps.length; i++) { - var aniProp = aniProps[i]; - var name = aniProp.name; - - var styleProp = ele.pstyle(name); - - if (styleProp !== undefined) { - // then make a prop of it - if (is.plainObject(styleProp)) { - styleProp = this.parse(name, styleProp.strValue); - } else { - styleProp = this.parse(name, styleProp); - } - } - - if (styleProp) { - rstyle[name] = styleProp; - } - } - - return rstyle; -}; - -styfn.getPropsList = function (propsObj) { - var self = this; - var rstyle = []; - var style = propsObj; - var props = self.properties; - - if (style) { - var names = Object.keys(style); - - for (var i = 0; i < names.length; i++) { - var name = names[i]; - var val = style[name]; - var prop = props[name] || props[util.camel2dash(name)]; - var styleProp = this.parse(prop.name, val); - - if (styleProp) { - rstyle.push(styleProp); - } - } - } - - return rstyle; -}; - -module.exports = styfn; - -/***/ }), -/* 127 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var styfn = {}; - -styfn.appendFromJson = function (json) { - var style = this; - - for (var i = 0; i < json.length; i++) { - var context = json[i]; - var selector = context.selector; - var props = context.style || context.css; - var names = Object.keys(props); - - style.selector(selector); // apply selector - - for (var j = 0; j < names.length; j++) { - var name = names[j]; - var value = props[name]; - - style.css(name, value); // apply property - } - } - - return style; -}; - -// accessible cy.style() function -styfn.fromJson = function (json) { - var style = this; - - style.resetToDefault(); - style.appendFromJson(json); - - return style; -}; - -// get json from cy.style() api -styfn.json = function () { - var json = []; - - for (var i = this.defaultLength; i < this.length; i++) { - var cxt = this[i]; - var selector = cxt.selector; - var props = cxt.properties; - var css = {}; - - for (var j = 0; j < props.length; j++) { - var prop = props[j]; - css[prop.name] = prop.strValue; - } - - json.push({ - selector: !selector ? 'core' : selector.toString(), - style: css - }); - } - - return json; -}; - -module.exports = styfn; - -/***/ }), -/* 128 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var is = __webpack_require__(0); -var math = __webpack_require__(2); - -var styfn = {}; - -// a caching layer for property parsing -styfn.parse = function (name, value, propIsBypass, propIsFlat) { - var self = this; - - // function values can't be cached in all cases, and there isn't much benefit of caching them anyway - if (is.fn(value)) { - return self.parseImplWarn(name, value, propIsBypass, propIsFlat); - } - - var flatKey = propIsFlat === 'mapping' || propIsFlat === true || propIsFlat === false || propIsFlat == null ? 'dontcare' : propIsFlat; - var argHash = [name, value, propIsBypass, flatKey].join('$'); - var propCache = self.propCache = self.propCache || {}; - var ret = void 0; - - if (!(ret = propCache[argHash])) { - ret = propCache[argHash] = self.parseImplWarn(name, value, propIsBypass, propIsFlat); - } - - // - bypasses can't be shared b/c the value can be changed by animations or otherwise overridden - // - mappings can't be shared b/c mappings are per-element - if (propIsBypass || propIsFlat === 'mapping') { - // need a copy since props are mutated later in their lifecycles - ret = util.copy(ret); - - if (ret) { - ret.value = util.copy(ret.value); // because it could be an array, e.g. colour - } - } - - return ret; -}; - -styfn.parseImplWarn = function (name, value, propIsBypass, propIsFlat) { - var prop = this.parseImpl(name, value, propIsBypass, propIsFlat); - - if (!prop && value != null) { - util.error('The style property `%s: %s` is invalid', name, value); - } - - return prop; -}; - -// parse a property; return null on invalid; return parsed property otherwise -// fields : -// - name : the name of the property -// - value : the parsed, native-typed value of the property -// - strValue : a string value that represents the property value in valid css -// - bypass : true iff the property is a bypass property -styfn.parseImpl = function (name, value, propIsBypass, propIsFlat) { - var self = this; - - name = util.camel2dash(name); // make sure the property name is in dash form (e.g. 'property-name' not 'propertyName') - - var property = self.properties[name]; - var passedValue = value; - var types = self.types; - - if (!property) { - return null; - } // return null on property of unknown name - if (value === undefined || value === null) { - return null; - } // can't assign null - - // the property may be an alias - if (property.alias) { - property = property.pointsTo; - name = property.name; - } - - var valueIsString = is.string(value); - if (valueIsString) { - // trim the value to make parsing easier - value = value.trim(); - } - - var type = property.type; - if (!type) { - return null; - } // no type, no luck - - // check if bypass is null or empty string (i.e. indication to delete bypass property) - if (propIsBypass && (value === '' || value === null)) { - return { - name: name, - value: value, - bypass: true, - deleteBypass: true - }; - } - - // check if value is a function used as a mapper - if (is.fn(value)) { - return { - name: name, - value: value, - strValue: 'fn', - mapped: types.fn, - bypass: propIsBypass - }; - } - - // check if value is mapped - var data = void 0, - mapData = void 0; - if (!valueIsString || propIsFlat) { - // then don't bother to do the expensive regex checks - - } else if (data = new RegExp(types.data.regex).exec(value)) { - if (propIsBypass) { - return false; - } // mappers not allowed in bypass - - var mapped = types.data; - - return { - name: name, - value: data, - strValue: '' + value, - mapped: mapped, - field: data[1], - bypass: propIsBypass - }; - } else if (mapData = new RegExp(types.mapData.regex).exec(value)) { - if (propIsBypass) { - return false; - } // mappers not allowed in bypass - if (type.multiple) { - return false; - } // impossible to map to num - - var _mapped = types.mapData; - - // we can map only if the type is a colour or a number - if (!(type.color || type.number)) { - return false; - } - - var valueMin = this.parse(name, mapData[4]); // parse to validate - if (!valueMin || valueMin.mapped) { - return false; - } // can't be invalid or mapped - - var valueMax = this.parse(name, mapData[5]); // parse to validate - if (!valueMax || valueMax.mapped) { - return false; - } // can't be invalid or mapped - - // check if valueMin and valueMax are the same - if (valueMin.value === valueMax.value) { - return false; // can't make much of a mapper without a range - } else if (type.color) { - var c1 = valueMin.value; - var c2 = valueMax.value; - - var same = c1[0] === c2[0] // red - && c1[1] === c2[1] // green - && c1[2] === c2[2] // blue - && ( // optional alpha - c1[3] === c2[3] // same alpha outright - || (c1[3] == null || c1[3] === 1) && ( // full opacity for colour 1? - c2[3] == null || c2[3] === 1) // full opacity for colour 2? - ); - - if (same) { - return false; - } // can't make a mapper without a range - } - - return { - name: name, - value: mapData, - strValue: '' + value, - mapped: _mapped, - field: mapData[1], - fieldMin: parseFloat(mapData[2]), // min & max are numeric - fieldMax: parseFloat(mapData[3]), - valueMin: valueMin.value, - valueMax: valueMax.value, - bypass: propIsBypass - }; - } - - if (type.multiple && propIsFlat !== 'multiple') { - var vals = void 0; - - if (valueIsString) { - vals = value.split(/\s+/); - } else if (is.array(value)) { - vals = value; - } else { - vals = [value]; - } - - if (type.evenMultiple && vals.length % 2 !== 0) { - return null; - } - - var valArr = []; - var unitsArr = []; - var pfValArr = []; - var hasEnum = false; - - for (var i = 0; i < vals.length; i++) { - var p = self.parse(name, vals[i], propIsBypass, 'multiple'); - - hasEnum = hasEnum || is.string(p.value); - - valArr.push(p.value); - pfValArr.push(p.pfValue != null ? p.pfValue : p.value); - unitsArr.push(p.units); - } - - if (type.validate && !type.validate(valArr, unitsArr)) { - return null; - } - - if (type.singleEnum && hasEnum) { - if (valArr.length === 1 && is.string(valArr[0])) { - return { - name: name, - value: valArr[0], - strValue: valArr[0], - bypass: propIsBypass - }; - } else { - return null; - } - } - - return { - name: name, - value: valArr, - pfValue: pfValArr, - strValue: valArr.join(' '), - bypass: propIsBypass, - units: unitsArr - }; - } - - // several types also allow enums - var checkEnums = function checkEnums() { - for (var _i = 0; _i < type.enums.length; _i++) { - var en = type.enums[_i]; - - if (en === value) { - return { - name: name, - value: value, - strValue: '' + value, - bypass: propIsBypass - }; - } - } - - return null; - }; - - // check the type and return the appropriate object - if (type.number) { - var units = void 0; - var implicitUnits = 'px'; // not set => px - - if (type.units) { - // use specified units if set - units = type.units; - } - - if (type.implicitUnits) { - implicitUnits = type.implicitUnits; - } - - if (!type.unitless) { - if (valueIsString) { - var unitsRegex = 'px|em' + (type.allowPercent ? '|\\%' : ''); - if (units) { - unitsRegex = units; - } // only allow explicit units if so set - var match = value.match('^(' + util.regex.number + ')(' + unitsRegex + ')?' + '$'); - - if (match) { - value = match[1]; - units = match[2] || implicitUnits; - } - } else if (!units || type.implicitUnits) { - units = implicitUnits; // implicitly px if unspecified - } - } - - value = parseFloat(value); - - // if not a number and enums not allowed, then the value is invalid - if (isNaN(value) && type.enums === undefined) { - return null; - } - - // check if this number type also accepts special keywords in place of numbers - // (i.e. `left`, `auto`, etc) - if (isNaN(value) && type.enums !== undefined) { - value = passedValue; - - return checkEnums(); - } - - // check if value must be an integer - if (type.integer && !is.integer(value)) { - return null; - } - - // check value is within range - if (type.min !== undefined && (value < type.min || type.strictMin && value === type.min) || type.max !== undefined && (value > type.max || type.strictMax && value === type.max)) { - return null; - } - - var ret = { - name: name, - value: value, - strValue: '' + value + (units ? units : ''), - units: units, - bypass: propIsBypass - }; - - // normalise value in pixels - if (type.unitless || units !== 'px' && units !== 'em') { - ret.pfValue = value; - } else { - ret.pfValue = units === 'px' || !units ? value : this.getEmSizeInPixels() * value; - } - - // normalise value in ms - if (units === 'ms' || units === 's') { - ret.pfValue = units === 'ms' ? value : 1000 * value; - } - - // normalise value in rad - if (units === 'deg' || units === 'rad') { - ret.pfValue = units === 'rad' ? value : math.deg2rad(value); - } - - // normalize value in % - if (units === '%') { - ret.pfValue = value / 100; - } - - return ret; - } else if (type.propList) { - - var props = []; - var propsStr = '' + value; - - if (propsStr === 'none') { - // leave empty - - } else { - // go over each prop - - var propsSplit = propsStr.split(','); - for (var _i2 = 0; _i2 < propsSplit.length; _i2++) { - var propName = propsSplit[_i2].trim(); - - if (self.properties[propName]) { - props.push(propName); - } - } - - if (props.length === 0) { - return null; - } - } - - return { - name: name, - value: props, - strValue: props.length === 0 ? 'none' : props.join(', '), - bypass: propIsBypass - }; - } else if (type.color) { - var tuple = util.color2tuple(value); - - if (!tuple) { - return null; - } - - return { - name: name, - value: tuple, - pfValue: tuple, - strValue: '' + value, - bypass: propIsBypass - }; - } else if (type.regex || type.regexes) { - - // first check enums - if (type.enums) { - var enumProp = checkEnums(); - - if (enumProp) { - return enumProp; - } - } - - var regexes = type.regexes ? type.regexes : [type.regex]; - - for (var _i3 = 0; _i3 < regexes.length; _i3++) { - var regex = new RegExp(regexes[_i3]); // make a regex from the type string - var m = regex.exec(value); - - if (m) { - // regex matches - return { - name: name, - value: type.singleRegexMatchValue ? m[1] : m, - strValue: '' + value, - bypass: propIsBypass - }; - } - } - - return null; // didn't match any - } else if (type.string) { - // just return - return { - name: name, - value: '' + value, - strValue: '' + value, - bypass: propIsBypass - }; - } else if (type.enums) { - // check enums last because it's a combo type in others - return checkEnums(); - } else { - return null; // not a type we can handle - } -}; - -module.exports = styfn; - -/***/ }), -/* 129 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var is = __webpack_require__(0); - -var styfn = {}; - -(function () { - var number = util.regex.number; - var rgba = util.regex.rgbaNoBackRefs; - var hsla = util.regex.hslaNoBackRefs; - var hex3 = util.regex.hex3; - var hex6 = util.regex.hex6; - var data = function data(prefix) { - return '^' + prefix + '\\s*\\(\\s*([\\w\\.]+)\\s*\\)$'; - }; - var mapData = function mapData(prefix) { - var mapArg = number + '|\\w+|' + rgba + '|' + hsla + '|' + hex3 + '|' + hex6; - return '^' + prefix + '\\s*\\(([\\w\\.]+)\\s*\\,\\s*(' + number + ')\\s*\\,\\s*(' + number + ')\\s*,\\s*(' + mapArg + ')\\s*\\,\\s*(' + mapArg + ')\\)$'; - }; - var urlRegexes = ['^url\\s*\\(\\s*[\'"]?(.+?)[\'"]?\\s*\\)$', '^(none)$', '^(.+)$']; - - // each visual style property has a type and needs to be validated according to it - styfn.types = { - time: { number: true, min: 0, units: 's|ms', implicitUnits: 'ms' }, - percent: { number: true, min: 0, max: 100, units: '%', implicitUnits: '%' }, - zeroOneNumber: { number: true, min: 0, max: 1, unitless: true }, - zeroOneNumbers: { number: true, min: 0, max: 1, unitless: true, multiple: true }, - nOneOneNumber: { number: true, min: -1, max: 1, unitless: true }, - nonNegativeInt: { number: true, min: 0, integer: true, unitless: true }, - position: { enums: ['parent', 'origin'] }, - nodeSize: { number: true, min: 0, enums: ['label'] }, - number: { number: true, unitless: true }, - numbers: { number: true, unitless: true, multiple: true }, - positiveNumber: { number: true, unitless: true, min: 0, strictMin: true }, - size: { number: true, min: 0 }, - bidirectionalSize: { number: true }, // allows negative - bidirectionalSizes: { number: true, multiple: true }, // allows negative - sizeMaybePercent: { number: true, min: 0, allowPercent: true }, - paddingRelativeTo: { enums: ['width', 'height', 'average', 'min', 'max'] }, - bgWH: { number: true, min: 0, allowPercent: true, enums: ['auto'], multiple: true }, - bgPos: { number: true, allowPercent: true, multiple: true }, - bgRelativeTo: { enums: ['inner', 'include-padding'], multiple: true }, - bgRepeat: { enums: ['repeat', 'repeat-x', 'repeat-y', 'no-repeat'], multiple: true }, - bgFit: { enums: ['none', 'contain', 'cover'], multiple: true }, - bgCrossOrigin: { enums: ['anonymous', 'use-credentials'], multiple: true }, - bgClip: { enums: ['none', 'node'] }, - color: { color: true }, - bool: { enums: ['yes', 'no'] }, - lineStyle: { enums: ['solid', 'dotted', 'dashed'] }, - borderStyle: { enums: ['solid', 'dotted', 'dashed', 'double'] }, - curveStyle: { enums: ['bezier', 'unbundled-bezier', 'haystack', 'segments'] }, - fontFamily: { regex: '^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$' }, - fontletiant: { enums: ['small-caps', 'normal'] }, - fontStyle: { enums: ['italic', 'normal', 'oblique'] }, - fontWeight: { enums: ['normal', 'bold', 'bolder', 'lighter', '100', '200', '300', '400', '500', '600', '800', '900', 100, 200, 300, 400, 500, 600, 700, 800, 900] }, - textDecoration: { enums: ['none', 'underline', 'overline', 'line-through'] }, - textTransform: { enums: ['none', 'uppercase', 'lowercase'] }, - textWrap: { enums: ['none', 'wrap', 'ellipsis'] }, - textBackgroundShape: { enums: ['rectangle', 'roundrectangle'] }, - nodeShape: { enums: ['rectangle', 'roundrectangle', 'cutrectangle', 'bottomroundrectangle', 'barrel', 'ellipse', 'triangle', 'square', 'pentagon', 'hexagon', 'concavehexagon', 'heptagon', 'octagon', 'tag', 'star', 'diamond', 'vee', 'rhomboid', 'polygon'] }, - compoundIncludeLabels: { enums: ['include', 'exclude'] }, - arrowShape: { enums: ['tee', 'triangle', 'triangle-tee', 'triangle-cross', 'triangle-backcurve', 'half-triangle-overshot', 'vee', 'square', 'circle', 'diamond', 'none'] }, - arrowFill: { enums: ['filled', 'hollow'] }, - display: { enums: ['element', 'none'] }, - visibility: { enums: ['hidden', 'visible'] }, - zCompoundDepth: { enums: ['bottom', 'orphan', 'auto', 'top'] }, - zIndexCompare: { enums: ['auto', 'manual'] }, - valign: { enums: ['top', 'center', 'bottom'] }, - halign: { enums: ['left', 'center', 'right'] }, - text: { string: true }, - data: { mapping: true, regex: data('data') }, - layoutData: { mapping: true, regex: data('layoutData') }, - scratch: { mapping: true, regex: data('scratch') }, - mapData: { mapping: true, regex: mapData('mapData') }, - mapLayoutData: { mapping: true, regex: mapData('mapLayoutData') }, - mapScratch: { mapping: true, regex: mapData('mapScratch') }, - fn: { mapping: true, fn: true }, - url: { regexes: urlRegexes, singleRegexMatchValue: true }, - urls: { regexes: urlRegexes, singleRegexMatchValue: true, multiple: true }, - propList: { propList: true }, - angle: { number: true, units: 'deg|rad', implicitUnits: 'rad' }, - textRotation: { number: true, units: 'deg|rad', implicitUnits: 'rad', enums: ['none', 'autorotate'] }, - polygonPointList: { number: true, multiple: true, evenMultiple: true, min: -1, max: 1, unitless: true }, - edgeDistances: { enums: ['intersection', 'node-position'] }, - edgeEndpoint: { - number: true, multiple: true, units: '%|px|em|deg|rad', implicitUnits: 'px', - enums: ['inside-to-node', 'outside-to-node', 'outside-to-line'], singleEnum: true, - validate: function validate(valArr, unitsArr) { - switch (valArr.length) { - case 2: - // can be % or px only - return unitsArr[0] !== 'deg' && unitsArr[0] !== 'rad' && unitsArr[1] !== 'deg' && unitsArr[1] !== 'rad'; - case 1: - // can be enum, deg, or rad only - return is.string(valArr[0]) || unitsArr[0] === 'deg' || unitsArr[0] === 'rad'; - default: - return false; - } - } - }, - easing: { - regexes: ['^(spring)\\s*\\(\\s*(' + number + ')\\s*,\\s*(' + number + ')\\s*\\)$', '^(cubic-bezier)\\s*\\(\\s*(' + number + ')\\s*,\\s*(' + number + ')\\s*,\\s*(' + number + ')\\s*,\\s*(' + number + ')\\s*\\)$'], - enums: ['linear', 'ease', 'ease-in', 'ease-out', 'ease-in-out', 'ease-in-sine', 'ease-out-sine', 'ease-in-out-sine', 'ease-in-quad', 'ease-out-quad', 'ease-in-out-quad', 'ease-in-cubic', 'ease-out-cubic', 'ease-in-out-cubic', 'ease-in-quart', 'ease-out-quart', 'ease-in-out-quart', 'ease-in-quint', 'ease-out-quint', 'ease-in-out-quint', 'ease-in-expo', 'ease-out-expo', 'ease-in-out-expo', 'ease-in-circ', 'ease-out-circ', 'ease-in-out-circ'] - } - }; - - var zOrderDiff = { - zeroNonZero: function zeroNonZero(val1, val2) { - if (val1 === 0 && val2 !== 0) { - return true; - } else if (val1 !== 0 && val2 === 0) { - return true; - } else { - return false; - } - }, - anyDiff: function anyDiff(val1, val2) { - return val1 !== val2; - } - }; - - var zd = zOrderDiff; - - // define visual style properties - var t = styfn.types; - var props = styfn.properties = [ - // main label - { name: 'label', type: t.text }, { name: 'text-rotation', type: t.textRotation }, { name: 'text-margin-x', type: t.bidirectionalSize }, { name: 'text-margin-y', type: t.bidirectionalSize }, - - // source label - { name: 'source-label', type: t.text }, { name: 'source-text-rotation', type: t.textRotation }, { name: 'source-text-margin-x', type: t.bidirectionalSize }, { name: 'source-text-margin-y', type: t.bidirectionalSize }, { name: 'source-text-offset', type: t.size }, - - // target label - { name: 'target-label', type: t.text }, { name: 'target-text-rotation', type: t.textRotation }, { name: 'target-text-margin-x', type: t.bidirectionalSize }, { name: 'target-text-margin-y', type: t.bidirectionalSize }, { name: 'target-text-offset', type: t.size }, - - // common label style - { name: 'text-valign', type: t.valign }, { name: 'text-halign', type: t.halign }, { name: 'color', type: t.color }, { name: 'text-outline-color', type: t.color }, { name: 'text-outline-width', type: t.size }, { name: 'text-outline-opacity', type: t.zeroOneNumber }, { name: 'text-opacity', type: t.zeroOneNumber }, { name: 'text-background-color', type: t.color }, { name: 'text-background-opacity', type: t.zeroOneNumber }, { name: 'text-background-padding', type: t.size }, { name: 'text-border-opacity', type: t.zeroOneNumber }, { name: 'text-border-color', type: t.color }, { name: 'text-border-width', type: t.size }, { name: 'text-border-style', type: t.borderStyle }, { name: 'text-background-shape', type: t.textBackgroundShape }, - // { name: 'text-decoration', type: t.textDecoration }, // not supported in canvas - { name: 'text-transform', type: t.textTransform }, { name: 'text-wrap', type: t.textWrap }, { name: 'text-max-width', type: t.size }, { name: 'text-events', type: t.bool }, { name: 'font-family', type: t.fontFamily }, { name: 'font-style', type: t.fontStyle }, - // { name: 'font-letiant', type: t.fontletiant }, // not useful - { name: 'font-weight', type: t.fontWeight }, { name: 'font-size', type: t.size }, { name: 'min-zoomed-font-size', type: t.size }, - - // behaviour - { name: 'events', type: t.bool }, - - // visibility - { name: 'display', type: t.display, triggersZOrder: zd.anyDiff }, { name: 'visibility', type: t.visibility, triggersZOrder: zd.anyDiff }, { name: 'opacity', type: t.zeroOneNumber, triggersZOrder: zd.zeroNonZero }, { name: 'z-compound-depth', type: t.zCompoundDepth, triggersZOrder: zd.anyDiff }, { name: 'z-index-compare', type: t.zIndexCompare, triggersZOrder: zd.anyDiff }, { name: 'z-index', type: t.nonNegativeInt, triggersZOrder: zd.anyDiff }, - - // overlays - { name: 'overlay-padding', type: t.size }, { name: 'overlay-color', type: t.color }, { name: 'overlay-opacity', type: t.zeroOneNumber }, - - // transition anis - { name: 'transition-property', type: t.propList }, { name: 'transition-duration', type: t.time }, { name: 'transition-delay', type: t.time }, { name: 'transition-timing-function', type: t.easing }, - - // node body - { name: 'height', type: t.nodeSize }, { name: 'width', type: t.nodeSize }, { name: 'shape', type: t.nodeShape }, { name: 'shape-polygon-points', type: t.polygonPointList }, { name: 'background-color', type: t.color }, { name: 'background-opacity', type: t.zeroOneNumber }, { name: 'background-blacken', type: t.nOneOneNumber }, { name: 'padding', type: t.sizeMaybePercent }, { name: 'padding-relative-to', type: t.paddingRelativeTo }, - - // node border - { name: 'border-color', type: t.color }, { name: 'border-opacity', type: t.zeroOneNumber }, { name: 'border-width', type: t.size }, { name: 'border-style', type: t.borderStyle }, - - // node background images - { name: 'background-image', type: t.urls }, { name: 'background-image-crossorigin', type: t.bgCrossOrigin }, { name: 'background-image-opacity', type: t.zeroOneNumbers }, { name: 'background-position-x', type: t.bgPos }, { name: 'background-position-y', type: t.bgPos }, { name: 'background-width-relative-to', type: t.bgRelativeTo }, { name: 'background-height-relative-to', type: t.bgRelativeTo }, { name: 'background-repeat', type: t.bgRepeat }, { name: 'background-fit', type: t.bgFit }, { name: 'background-clip', type: t.bgClip }, { name: 'background-width', type: t.bgWH }, { name: 'background-height', type: t.bgWH }, - - // compound props - { name: 'position', type: t.position }, { name: 'compound-sizing-wrt-labels', type: t.compoundIncludeLabels }, { name: 'min-width', type: t.size }, { name: 'min-width-bias-left', type: t.sizeMaybePercent }, { name: 'min-width-bias-right', type: t.sizeMaybePercent }, { name: 'min-height', type: t.size }, { name: 'min-height-bias-top', type: t.sizeMaybePercent }, { name: 'min-height-bias-bottom', type: t.sizeMaybePercent }, - - // edge line - { name: 'line-style', type: t.lineStyle }, { name: 'line-color', type: t.color }, { name: 'curve-style', type: t.curveStyle }, { name: 'haystack-radius', type: t.zeroOneNumber }, { name: 'source-endpoint', type: t.edgeEndpoint }, { name: 'target-endpoint', type: t.edgeEndpoint }, { name: 'control-point-step-size', type: t.size }, { name: 'control-point-distances', type: t.bidirectionalSizes }, { name: 'control-point-weights', type: t.numbers }, { name: 'segment-distances', type: t.bidirectionalSizes }, { name: 'segment-weights', type: t.numbers }, { name: 'edge-distances', type: t.edgeDistances }, { name: 'arrow-scale', type: t.positiveNumber }, { name: 'loop-direction', type: t.angle }, { name: 'loop-sweep', type: t.angle }, { name: 'source-distance-from-node', type: t.size }, { name: 'target-distance-from-node', type: t.size }, - - // ghost properties - { name: 'ghost', type: t.bool }, { name: 'ghost-offset-x', type: t.bidirectionalSize }, { name: 'ghost-offset-y', type: t.bidirectionalSize }, { name: 'ghost-opacity', type: t.zeroOneNumber }, - - // these are just for the core - { name: 'selection-box-color', type: t.color }, { name: 'selection-box-opacity', type: t.zeroOneNumber }, { name: 'selection-box-border-color', type: t.color }, { name: 'selection-box-border-width', type: t.size }, { name: 'active-bg-color', type: t.color }, { name: 'active-bg-opacity', type: t.zeroOneNumber }, { name: 'active-bg-size', type: t.size }, { name: 'outside-texture-bg-color', type: t.color }, { name: 'outside-texture-bg-opacity', type: t.zeroOneNumber }]; - - // define aliases - var aliases = styfn.aliases = [{ name: 'content', pointsTo: 'label' }, { name: 'control-point-distance', pointsTo: 'control-point-distances' }, { name: 'control-point-weight', pointsTo: 'control-point-weights' }, { name: 'edge-text-rotation', pointsTo: 'text-rotation' }, { name: 'padding-left', pointsTo: 'padding' }, { name: 'padding-right', pointsTo: 'padding' }, { name: 'padding-top', pointsTo: 'padding' }, { name: 'padding-bottom', pointsTo: 'padding' }]; - - // pie backgrounds for nodes - styfn.pieBackgroundN = 16; // because the pie properties are numbered, give access to a constant N (for renderer use) - props.push({ name: 'pie-size', type: t.sizeMaybePercent }); - for (var i = 1; i <= styfn.pieBackgroundN; i++) { - props.push({ name: 'pie-' + i + '-background-color', type: t.color }); - props.push({ name: 'pie-' + i + '-background-size', type: t.percent }); - props.push({ name: 'pie-' + i + '-background-opacity', type: t.zeroOneNumber }); - } - - // edge arrows - var arrowPrefixes = styfn.arrowPrefixes = ['source', 'mid-source', 'target', 'mid-target']; - [{ name: 'arrow-shape', type: t.arrowShape }, { name: 'arrow-color', type: t.color }, { name: 'arrow-fill', type: t.arrowFill }].forEach(function (prop) { - arrowPrefixes.forEach(function (prefix) { - var name = prefix + '-' + prop.name; - var type = prop.type; - - props.push({ name: name, type: type }); - }); - }, {}); - - // list of property names - styfn.propertyNames = props.map(function (p) { - return p.name; - }); - - // allow access of properties by name ( e.g. style.properties.height ) - for (var _i = 0; _i < props.length; _i++) { - var prop = props[_i]; - - props[prop.name] = prop; // allow lookup by name - } - - // map aliases - for (var _i2 = 0; _i2 < aliases.length; _i2++) { - var alias = aliases[_i2]; - var pointsToProp = props[alias.pointsTo]; - var aliasProp = { - name: alias.name, - alias: true, - pointsTo: pointsToProp - }; - - // add alias prop for parsing - props.push(aliasProp); - - props[alias.name] = aliasProp; // allow lookup by name - } -})(); - -styfn.getDefaultProperty = function (name) { - return this.getDefaultProperties()[name]; -}; - -styfn.getDefaultProperties = util.memoize(function () { - var rawProps = util.extend({ - // common node/edge props - 'events': 'yes', - 'text-events': 'no', - 'text-valign': 'top', - 'text-halign': 'center', - 'color': '#000', - 'text-outline-color': '#000', - 'text-outline-width': 0, - 'text-outline-opacity': 1, - 'text-opacity': 1, - 'text-decoration': 'none', - 'text-transform': 'none', - 'text-wrap': 'none', - 'text-max-width': 9999, - 'text-background-color': '#000', - 'text-background-opacity': 0, - 'text-background-shape': 'rectangle', - 'text-background-padding': 0, - 'text-border-opacity': 0, - 'text-border-width': 0, - 'text-border-style': 'solid', - 'text-border-color': '#000', - 'font-family': 'Helvetica Neue, Helvetica, sans-serif', - 'font-style': 'normal', - // 'font-letiant': fontletiant, - 'font-weight': 'normal', - 'font-size': 16, - 'min-zoomed-font-size': 0, - 'text-rotation': 'none', - 'source-text-rotation': 'none', - 'target-text-rotation': 'none', - 'visibility': 'visible', - 'display': 'element', - 'opacity': 1, - 'z-compound-depth': 'auto', - 'z-index-compare': 'auto', - 'z-index': 0, - 'label': '', - 'text-margin-x': 0, - 'text-margin-y': 0, - 'source-label': '', - 'source-text-offset': 0, - 'source-text-margin-x': 0, - 'source-text-margin-y': 0, - 'target-label': '', - 'target-text-offset': 0, - 'target-text-margin-x': 0, - 'target-text-margin-y': 0, - 'overlay-opacity': 0, - 'overlay-color': '#000', - 'overlay-padding': 10, - 'transition-property': 'none', - 'transition-duration': 0, - 'transition-delay': 0, - 'transition-timing-function': 'linear', - - // node props - 'background-blacken': 0, - 'background-color': '#999', - 'background-opacity': 1, - 'background-image': 'none', - 'background-image-crossorigin': 'anonymous', - 'background-image-opacity': 1, - 'background-position-x': '50%', - 'background-position-y': '50%', - 'background-width-relative-to': 'include-padding', - 'background-height-relative-to': 'include-padding', - 'background-repeat': 'no-repeat', - 'background-fit': 'none', - 'background-clip': 'node', - 'background-width': 'auto', - 'background-height': 'auto', - 'border-color': '#000', - 'border-opacity': 1, - 'border-width': 0, - 'border-style': 'solid', - 'height': 30, - 'width': 30, - 'shape': 'ellipse', - 'shape-polygon-points': '-1, -1, 1, -1, 1, 1, -1, 1', - - // ghost props - 'ghost': 'no', - 'ghost-offset-y': 0, - 'ghost-offset-x': 0, - 'ghost-opacity': 0, - - // compound props - 'padding': 0, - 'padding-relative-to': 'width', - 'position': 'origin', - 'compound-sizing-wrt-labels': 'include', - 'min-width': 0, - 'min-width-bias-left': 0, - 'min-width-bias-right': 0, - 'min-height': 0, - 'min-height-bias-top': 0, - 'min-height-bias-bottom': 0 - }, { - // node pie bg - 'pie-size': '100%' - }, [{ name: 'pie-{{i}}-background-color', value: 'black' }, { name: 'pie-{{i}}-background-size', value: '0%' }, { name: 'pie-{{i}}-background-opacity', value: 1 }].reduce(function (css, prop) { - for (var i = 1; i <= styfn.pieBackgroundN; i++) { - var name = prop.name.replace('{{i}}', i); - var val = prop.value; - - css[name] = val; - } - - return css; - }, {}), { - // edge props - 'line-style': 'solid', - 'line-color': '#999', - 'control-point-step-size': 40, - 'control-point-weights': 0.5, - 'segment-weights': 0.5, - 'segment-distances': 20, - 'edge-distances': 'intersection', - 'curve-style': 'bezier', - 'haystack-radius': 0, - 'arrow-scale': 1, - 'loop-direction': '-45deg', - 'loop-sweep': '-90deg', - 'source-distance-from-node': 0, - 'target-distance-from-node': 0, - 'source-endpoint': 'outside-to-node', - 'target-endpoint': 'outside-to-node' - }, [{ name: 'arrow-shape', value: 'none' }, { name: 'arrow-color', value: '#999' }, { name: 'arrow-fill', value: 'filled' }].reduce(function (css, prop) { - styfn.arrowPrefixes.forEach(function (prefix) { - var name = prefix + '-' + prop.name; - var val = prop.value; - - css[name] = val; - }); - - return css; - }, {})); - - var parsedProps = {}; - - for (var i = 0; i < this.properties.length; i++) { - var prop = this.properties[i]; - - if (prop.pointsTo) { - continue; - } - - var name = prop.name; - var val = rawProps[name]; - var parsedProp = this.parse(name, val); - - parsedProps[name] = parsedProp; - } - - return parsedProps; -}); - -styfn.addDefaultStylesheet = function () { - this.selector('$node > node') // compound (parent) node properties - .css({ - 'shape': 'rectangle', - 'padding': 10, - 'background-color': '#eee', - 'border-color': '#ccc', - 'border-width': 1 - }).selector('edge') // just edge properties - .css({ - 'width': 3, - 'curve-style': 'haystack' - }).selector(':parent <-> node').css({ - 'curve-style': 'bezier', - 'source-endpoint': 'outside-to-line', - 'target-endpoint': 'outside-to-line' - }).selector(':selected').css({ - 'background-color': '#0169D9', - 'line-color': '#0169D9', - 'source-arrow-color': '#0169D9', - 'target-arrow-color': '#0169D9', - 'mid-source-arrow-color': '#0169D9', - 'mid-target-arrow-color': '#0169D9' - }).selector('node:parent:selected').css({ - 'background-color': '#CCE1F9', - 'border-color': '#aec8e5' - }).selector(':active').css({ - 'overlay-color': 'black', - 'overlay-padding': 10, - 'overlay-opacity': 0.25 - }).selector('core') // just core properties - .css({ - 'selection-box-color': '#ddd', - 'selection-box-opacity': 0.65, - 'selection-box-border-color': '#aaa', - 'selection-box-border-width': 1, - 'active-bg-color': 'black', - 'active-bg-opacity': 0.15, - 'active-bg-size': 30, - 'outside-texture-bg-color': '#000', - 'outside-texture-bg-opacity': 0.125 - }); - - this.defaultLength = this.length; -}; - -module.exports = styfn; - -/***/ }), -/* 130 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(1); -var Selector = __webpack_require__(6); - -var styfn = {}; - -styfn.appendFromString = function (string) { - var self = this; - var style = this; - var remaining = '' + string; - var selAndBlockStr = void 0; - var blockRem = void 0; - var propAndValStr = void 0; - - // remove comments from the style string - remaining = remaining.replace(/[/][*](\s|.)+?[*][/]/g, ''); - - function removeSelAndBlockFromRemaining() { - // remove the parsed selector and block from the remaining text to parse - if (remaining.length > selAndBlockStr.length) { - remaining = remaining.substr(selAndBlockStr.length); - } else { - remaining = ''; - } - } - - function removePropAndValFromRem() { - // remove the parsed property and value from the remaining block text to parse - if (blockRem.length > propAndValStr.length) { - blockRem = blockRem.substr(propAndValStr.length); - } else { - blockRem = ''; - } - } - - while (true) { - var nothingLeftToParse = remaining.match(/^\s*$/); - if (nothingLeftToParse) { - break; - } - - var selAndBlock = remaining.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/); - - if (!selAndBlock) { - util.error('Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: ' + remaining); - break; - } - - selAndBlockStr = selAndBlock[0]; - - // parse the selector - var selectorStr = selAndBlock[1]; - if (selectorStr !== 'core') { - var selector = new Selector(selectorStr); - if (selector._private.invalid) { - util.error('Skipping parsing of block: Invalid selector found in string stylesheet: ' + selectorStr); - - // skip this selector and block - removeSelAndBlockFromRemaining(); - continue; - } - } - - // parse the block of properties and values - var blockStr = selAndBlock[2]; - var invalidBlock = false; - blockRem = blockStr; - var props = []; - - while (true) { - var _nothingLeftToParse = blockRem.match(/^\s*$/); - if (_nothingLeftToParse) { - break; - } - - var propAndVal = blockRem.match(/^\s*(.+?)\s*:\s*(.+?)\s*;/); - - if (!propAndVal) { - util.error('Skipping parsing of block: Invalid formatting of style property and value definitions found in:' + blockStr); - invalidBlock = true; - break; - } - - propAndValStr = propAndVal[0]; - var propStr = propAndVal[1]; - var valStr = propAndVal[2]; - - var prop = self.properties[propStr]; - if (!prop) { - util.error('Skipping property: Invalid property name in: ' + propAndValStr); - - // skip this property in the block - removePropAndValFromRem(); - continue; - } - - var parsedProp = style.parse(propStr, valStr); - - if (!parsedProp) { - util.error('Skipping property: Invalid property definition in: ' + propAndValStr); - - // skip this property in the block - removePropAndValFromRem(); - continue; - } - - props.push({ - name: propStr, - val: valStr - }); - removePropAndValFromRem(); - } - - if (invalidBlock) { - removeSelAndBlockFromRemaining(); - break; - } - - // put the parsed block in the style - style.selector(selectorStr); - for (var i = 0; i < props.length; i++) { - var _prop = props[i]; - style.css(_prop.name, _prop.val); - } - - removeSelAndBlockFromRemaining(); - } - - return style; -}; - -styfn.fromString = function (string) { - var style = this; - - style.resetToDefault(); - style.appendFromString(string); - - return style; -}; - -module.exports = styfn; - -/***/ }), -/* 131 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); - -module.exports = { - // get [r, g, b] from #abc or #aabbcc - hex2tuple: function hex2tuple(hex) { - if (!(hex.length === 4 || hex.length === 7) || hex[0] !== '#') { - return; - } - - var shortHex = hex.length === 4; - var r = void 0, - g = void 0, - b = void 0; - var base = 16; - - if (shortHex) { - r = parseInt(hex[1] + hex[1], base); - g = parseInt(hex[2] + hex[2], base); - b = parseInt(hex[3] + hex[3], base); - } else { - r = parseInt(hex[1] + hex[2], base); - g = parseInt(hex[3] + hex[4], base); - b = parseInt(hex[5] + hex[6], base); - } - - return [r, g, b]; - }, - - // get [r, g, b, a] from hsl(0, 0, 0) or hsla(0, 0, 0, 0) - hsl2tuple: function hsl2tuple(hsl) { - var ret = void 0; - var h = void 0, - s = void 0, - l = void 0, - a = void 0, - r = void 0, - g = void 0, - b = void 0; - function hue2rgb(p, q, t) { - if (t < 0) t += 1; - if (t > 1) t -= 1; - if (t < 1 / 6) return p + (q - p) * 6 * t; - if (t < 1 / 2) return q; - if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; - return p; - } - - var m = new RegExp('^' + this.regex.hsla + '$').exec(hsl); - if (m) { - - // get hue - h = parseInt(m[1]); - if (h < 0) { - h = (360 - -1 * h % 360) % 360; - } else if (h > 360) { - h = h % 360; - } - h /= 360; // normalise on [0, 1] - - s = parseFloat(m[2]); - if (s < 0 || s > 100) { - return; - } // saturation is [0, 100] - s = s / 100; // normalise on [0, 1] - - l = parseFloat(m[3]); - if (l < 0 || l > 100) { - return; - } // lightness is [0, 100] - l = l / 100; // normalise on [0, 1] - - a = m[4]; - if (a !== undefined) { - a = parseFloat(a); - - if (a < 0 || a > 1) { - return; - } // alpha is [0, 1] - } - - // now, convert to rgb - // code from http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript - if (s === 0) { - r = g = b = Math.round(l * 255); // achromatic - } else { - var q = l < 0.5 ? l * (1 + s) : l + s - l * s; - var p = 2 * l - q; - r = Math.round(255 * hue2rgb(p, q, h + 1 / 3)); - g = Math.round(255 * hue2rgb(p, q, h)); - b = Math.round(255 * hue2rgb(p, q, h - 1 / 3)); - } - - ret = [r, g, b, a]; - } - - return ret; - }, - - // get [r, g, b, a] from rgb(0, 0, 0) or rgba(0, 0, 0, 0) - rgb2tuple: function rgb2tuple(rgb) { - var ret = void 0; - - var m = new RegExp('^' + this.regex.rgba + '$').exec(rgb); - if (m) { - ret = []; - - var isPct = []; - for (var i = 1; i <= 3; i++) { - var channel = m[i]; - - if (channel[channel.length - 1] === '%') { - isPct[i] = true; - } - channel = parseFloat(channel); - - if (isPct[i]) { - channel = channel / 100 * 255; // normalise to [0, 255] - } - - if (channel < 0 || channel > 255) { - return; - } // invalid channel value - - ret.push(Math.floor(channel)); - } - - var atLeastOneIsPct = isPct[1] || isPct[2] || isPct[3]; - var allArePct = isPct[1] && isPct[2] && isPct[3]; - if (atLeastOneIsPct && !allArePct) { - return; - } // must all be percent values if one is - - var alpha = m[4]; - if (alpha !== undefined) { - alpha = parseFloat(alpha); - - if (alpha < 0 || alpha > 1) { - return; - } // invalid alpha value - - ret.push(alpha); - } - } - - return ret; - }, - - colorname2tuple: function colorname2tuple(color) { - return this.colors[color.toLowerCase()]; - }, - - color2tuple: function color2tuple(color) { - return (is.array(color) ? color : null) || this.colorname2tuple(color) || this.hex2tuple(color) || this.rgb2tuple(color) || this.hsl2tuple(color); - }, - - colors: { - // special colour names - transparent: [0, 0, 0, 0], // NB alpha === 0 - - // regular colours - aliceblue: [240, 248, 255], - antiquewhite: [250, 235, 215], - aqua: [0, 255, 255], - aquamarine: [127, 255, 212], - azure: [240, 255, 255], - beige: [245, 245, 220], - bisque: [255, 228, 196], - black: [0, 0, 0], - blanchedalmond: [255, 235, 205], - blue: [0, 0, 255], - blueviolet: [138, 43, 226], - brown: [165, 42, 42], - burlywood: [222, 184, 135], - cadetblue: [95, 158, 160], - chartreuse: [127, 255, 0], - chocolate: [210, 105, 30], - coral: [255, 127, 80], - cornflowerblue: [100, 149, 237], - cornsilk: [255, 248, 220], - crimson: [220, 20, 60], - cyan: [0, 255, 255], - darkblue: [0, 0, 139], - darkcyan: [0, 139, 139], - darkgoldenrod: [184, 134, 11], - darkgray: [169, 169, 169], - darkgreen: [0, 100, 0], - darkgrey: [169, 169, 169], - darkkhaki: [189, 183, 107], - darkmagenta: [139, 0, 139], - darkolivegreen: [85, 107, 47], - darkorange: [255, 140, 0], - darkorchid: [153, 50, 204], - darkred: [139, 0, 0], - darksalmon: [233, 150, 122], - darkseagreen: [143, 188, 143], - darkslateblue: [72, 61, 139], - darkslategray: [47, 79, 79], - darkslategrey: [47, 79, 79], - darkturquoise: [0, 206, 209], - darkviolet: [148, 0, 211], - deeppink: [255, 20, 147], - deepskyblue: [0, 191, 255], - dimgray: [105, 105, 105], - dimgrey: [105, 105, 105], - dodgerblue: [30, 144, 255], - firebrick: [178, 34, 34], - floralwhite: [255, 250, 240], - forestgreen: [34, 139, 34], - fuchsia: [255, 0, 255], - gainsboro: [220, 220, 220], - ghostwhite: [248, 248, 255], - gold: [255, 215, 0], - goldenrod: [218, 165, 32], - gray: [128, 128, 128], - grey: [128, 128, 128], - green: [0, 128, 0], - greenyellow: [173, 255, 47], - honeydew: [240, 255, 240], - hotpink: [255, 105, 180], - indianred: [205, 92, 92], - indigo: [75, 0, 130], - ivory: [255, 255, 240], - khaki: [240, 230, 140], - lavender: [230, 230, 250], - lavenderblush: [255, 240, 245], - lawngreen: [124, 252, 0], - lemonchiffon: [255, 250, 205], - lightblue: [173, 216, 230], - lightcoral: [240, 128, 128], - lightcyan: [224, 255, 255], - lightgoldenrodyellow: [250, 250, 210], - lightgray: [211, 211, 211], - lightgreen: [144, 238, 144], - lightgrey: [211, 211, 211], - lightpink: [255, 182, 193], - lightsalmon: [255, 160, 122], - lightseagreen: [32, 178, 170], - lightskyblue: [135, 206, 250], - lightslategray: [119, 136, 153], - lightslategrey: [119, 136, 153], - lightsteelblue: [176, 196, 222], - lightyellow: [255, 255, 224], - lime: [0, 255, 0], - limegreen: [50, 205, 50], - linen: [250, 240, 230], - magenta: [255, 0, 255], - maroon: [128, 0, 0], - mediumaquamarine: [102, 205, 170], - mediumblue: [0, 0, 205], - mediumorchid: [186, 85, 211], - mediumpurple: [147, 112, 219], - mediumseagreen: [60, 179, 113], - mediumslateblue: [123, 104, 238], - mediumspringgreen: [0, 250, 154], - mediumturquoise: [72, 209, 204], - mediumvioletred: [199, 21, 133], - midnightblue: [25, 25, 112], - mintcream: [245, 255, 250], - mistyrose: [255, 228, 225], - moccasin: [255, 228, 181], - navajowhite: [255, 222, 173], - navy: [0, 0, 128], - oldlace: [253, 245, 230], - olive: [128, 128, 0], - olivedrab: [107, 142, 35], - orange: [255, 165, 0], - orangered: [255, 69, 0], - orchid: [218, 112, 214], - palegoldenrod: [238, 232, 170], - palegreen: [152, 251, 152], - paleturquoise: [175, 238, 238], - palevioletred: [219, 112, 147], - papayawhip: [255, 239, 213], - peachpuff: [255, 218, 185], - peru: [205, 133, 63], - pink: [255, 192, 203], - plum: [221, 160, 221], - powderblue: [176, 224, 230], - purple: [128, 0, 128], - red: [255, 0, 0], - rosybrown: [188, 143, 143], - royalblue: [65, 105, 225], - saddlebrown: [139, 69, 19], - salmon: [250, 128, 114], - sandybrown: [244, 164, 96], - seagreen: [46, 139, 87], - seashell: [255, 245, 238], - sienna: [160, 82, 45], - silver: [192, 192, 192], - skyblue: [135, 206, 235], - slateblue: [106, 90, 205], - slategray: [112, 128, 144], - slategrey: [112, 128, 144], - snow: [255, 250, 250], - springgreen: [0, 255, 127], - steelblue: [70, 130, 180], - tan: [210, 180, 140], - teal: [0, 128, 128], - thistle: [216, 191, 216], - tomato: [255, 99, 71], - turquoise: [64, 224, 208], - violet: [238, 130, 238], - wheat: [245, 222, 179], - white: [255, 255, 255], - whitesmoke: [245, 245, 245], - yellow: [255, 255, 0], - yellowgreen: [154, 205, 50] - } -}; - -/***/ }), -/* 132 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var is = __webpack_require__(0); - -module.exports = { - // has anything been set in the map - mapEmpty: function mapEmpty(map) { - var empty = true; - - if (map != null) { - return Object.keys(map).length === 0; - } - - return empty; - }, - - // pushes to the array at the end of a map (map may not be built) - pushMap: function pushMap(options) { - var array = this.getMap(options); - - if (array == null) { - // if empty, put initial array - this.setMap(this.extend({}, options, { - value: [options.value] - })); - } else { - array.push(options.value); - } - }, - - // sets the value in a map (map may not be built) - setMap: function setMap(options) { - var obj = options.map; - var key = void 0; - var keys = options.keys; - var l = keys.length; - - for (var i = 0; i < l; i++) { - var _key = keys[i]; - - if (is.plainObject(_key)) { - this.error('Tried to set map with object key'); - } - - if (i < keys.length - 1) { - - // extend the map if necessary - if (obj[_key] == null) { - obj[_key] = {}; - } - - obj = obj[_key]; - } else { - // set the value - obj[_key] = options.value; - } - } - }, - - // gets the value in a map even if it's not built in places - getMap: function getMap(options) { - var obj = options.map; - var keys = options.keys; - var l = keys.length; - - for (var i = 0; i < l; i++) { - var key = keys[i]; - - if (is.plainObject(key)) { - this.error('Tried to get map with object key'); - } - - obj = obj[key]; - - if (obj == null) { - return obj; - } - } - - return obj; - }, - - // deletes the entry in the map - deleteMap: function deleteMap(options) { - var obj = options.map; - var keys = options.keys; - var l = keys.length; - var keepChildren = options.keepChildren; - - for (var i = 0; i < l; i++) { - var key = keys[i]; - - if (is.plainObject(key)) { - this.error('Tried to delete map with object key'); - } - - var lastKey = i === options.keys.length - 1; - if (lastKey) { - - if (keepChildren) { - // then only delete child fields not in keepChildren - var children = Object.keys(obj); - - for (var j = 0; j < children.length; j++) { - var child = children[j]; - - if (!keepChildren[child]) { - obj[child] = undefined; - } - } - } else { - obj[key] = undefined; - } - } else { - obj = obj[key]; - } - } - } -}; - -/***/ }), -/* 133 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var number = '(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))'; - -var rgba = 'rgb[a]?\\((' + number + '[%]?)\\s*,\\s*(' + number + '[%]?)\\s*,\\s*(' + number + '[%]?)(?:\\s*,\\s*(' + number + '))?\\)'; -var rgbaNoBackRefs = 'rgb[a]?\\((?:' + number + '[%]?)\\s*,\\s*(?:' + number + '[%]?)\\s*,\\s*(?:' + number + '[%]?)(?:\\s*,\\s*(?:' + number + '))?\\)'; - -var hsla = 'hsl[a]?\\((' + number + ')\\s*,\\s*(' + number + '[%])\\s*,\\s*(' + number + '[%])(?:\\s*,\\s*(' + number + '))?\\)'; -var hslaNoBackRefs = 'hsl[a]?\\((?:' + number + ')\\s*,\\s*(?:' + number + '[%])\\s*,\\s*(?:' + number + '[%])(?:\\s*,\\s*(?:' + number + '))?\\)'; - -var hex3 = '\\#[0-9a-fA-F]{3}'; -var hex6 = '\\#[0-9a-fA-F]{6}'; - -module.exports = { - regex: { - number: number, - rgba: rgba, - rgbaNoBackRefs: rgbaNoBackRefs, - hsla: hsla, - hslaNoBackRefs: hslaNoBackRefs, - hex3: hex3, - hex6: hex6 - } -}; - -/***/ }), -/* 134 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -function ascending(a, b) { - if (a < b) { - return -1; - } else if (a > b) { - return 1; - } else { - return 0; - } -} - -function descending(a, b) { - return -1 * ascending(a, b); -} - -module.exports = { - sort: { - ascending: ascending, - descending: descending - } -}; - -/***/ }), -/* 135 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var memoize = __webpack_require__(19); -var is = __webpack_require__(0); - -module.exports = { - - camel2dash: memoize(function (str) { - return str.replace(/([A-Z])/g, function (v) { - return '-' + v.toLowerCase(); - }); - }), - - dash2camel: memoize(function (str) { - return str.replace(/(-\w)/g, function (v) { - return v[1].toUpperCase(); - }); - }), - - prependCamel: memoize(function (prefix, str) { - return prefix + str[0].toUpperCase() + str.substring(1); - }, function (prefix, str) { - return prefix + '$' + str; - }), - - capitalize: function capitalize(str) { - if (is.emptyString(str)) { - return str; - } - - return str.charAt(0).toUpperCase() + str.substring(1); - } - -}; - -/***/ }), -/* 136 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var window = __webpack_require__(4); -var performance = window ? window.performance : null; - -var util = {}; - -var pnow = performance && performance.now ? function () { - return performance.now(); -} : function () { - return Date.now(); -}; - -var raf = function () { - if (window) { - if (window.requestAnimationFrame) { - return function (fn) { - window.requestAnimationFrame(fn); - }; - } else if (window.mozRequestAnimationFrame) { - return function (fn) { - window.mozRequestAnimationFrame(fn); - }; - } else if (window.webkitRequestAnimationFrame) { - return function (fn) { - window.webkitRequestAnimationFrame(fn); - }; - } else if (window.msRequestAnimationFrame) { - return function (fn) { - window.msRequestAnimationFrame(fn); - }; - } - } - - return function (fn) { - if (fn) { - setTimeout(function () { - fn(pnow()); - }, 1000 / 60); - } - }; -}(); - -util.requestAnimationFrame = function (fn) { - raf(fn); -}; - -util.performanceNow = pnow; - -util.debounce = __webpack_require__(139); - -util.now = function () { - return Date.now(); -}; - -module.exports = util; - -/***/ }), -/* 137 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(138); - - -/***/ }), -/* 138 */ -/***/ (function(module, exports, __webpack_require__) { - -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// Generated by CoffeeScript 1.8.0 -(function() { - var Heap, defaultCmp, floor, heapify, heappop, heappush, heappushpop, heapreplace, insort, min, nlargest, nsmallest, updateItem, _siftdown, _siftup; - - floor = Math.floor, min = Math.min; - - - /* - Default comparison function to be used - */ - - defaultCmp = function(x, y) { - if (x < y) { - return -1; - } - if (x > y) { - return 1; - } - return 0; - }; - - - /* - Insert item x in list a, and keep it sorted assuming a is sorted. - - If x is already in a, insert it to the right of the rightmost x. - - Optional args lo (default 0) and hi (default a.length) bound the slice - of a to be searched. - */ - - insort = function(a, x, lo, hi, cmp) { - var mid; - if (lo == null) { - lo = 0; - } - if (cmp == null) { - cmp = defaultCmp; - } - if (lo < 0) { - throw new Error('lo must be non-negative'); - } - if (hi == null) { - hi = a.length; - } - while (lo < hi) { - mid = floor((lo + hi) / 2); - if (cmp(x, a[mid]) < 0) { - hi = mid; - } else { - lo = mid + 1; - } - } - return ([].splice.apply(a, [lo, lo - lo].concat(x)), x); - }; - - - /* - Push item onto heap, maintaining the heap invariant. - */ - - heappush = function(array, item, cmp) { - if (cmp == null) { - cmp = defaultCmp; - } - array.push(item); - return _siftdown(array, 0, array.length - 1, cmp); - }; - - - /* - Pop the smallest item off the heap, maintaining the heap invariant. - */ - - heappop = function(array, cmp) { - var lastelt, returnitem; - if (cmp == null) { - cmp = defaultCmp; - } - lastelt = array.pop(); - if (array.length) { - returnitem = array[0]; - array[0] = lastelt; - _siftup(array, 0, cmp); - } else { - returnitem = lastelt; - } - return returnitem; - }; - - - /* - Pop and return the current smallest value, and add the new item. - - This is more efficient than heappop() followed by heappush(), and can be - more appropriate when using a fixed size heap. Note that the value - returned may be larger than item! That constrains reasonable use of - this routine unless written as part of a conditional replacement: - if item > array[0] - item = heapreplace(array, item) - */ - - heapreplace = function(array, item, cmp) { - var returnitem; - if (cmp == null) { - cmp = defaultCmp; - } - returnitem = array[0]; - array[0] = item; - _siftup(array, 0, cmp); - return returnitem; - }; - - - /* - Fast version of a heappush followed by a heappop. - */ - - heappushpop = function(array, item, cmp) { - var _ref; - if (cmp == null) { - cmp = defaultCmp; - } - if (array.length && cmp(array[0], item) < 0) { - _ref = [array[0], item], item = _ref[0], array[0] = _ref[1]; - _siftup(array, 0, cmp); - } - return item; - }; - - - /* - Transform list into a heap, in-place, in O(array.length) time. - */ - - heapify = function(array, cmp) { - var i, _i, _j, _len, _ref, _ref1, _results, _results1; - if (cmp == null) { - cmp = defaultCmp; - } - _ref1 = (function() { - _results1 = []; - for (var _j = 0, _ref = floor(array.length / 2); 0 <= _ref ? _j < _ref : _j > _ref; 0 <= _ref ? _j++ : _j--){ _results1.push(_j); } - return _results1; - }).apply(this).reverse(); - _results = []; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - i = _ref1[_i]; - _results.push(_siftup(array, i, cmp)); - } - return _results; - }; - - - /* - Update the position of the given item in the heap. - This function should be called every time the item is being modified. - */ - - updateItem = function(array, item, cmp) { - var pos; - if (cmp == null) { - cmp = defaultCmp; - } - pos = array.indexOf(item); - if (pos === -1) { - return; - } - _siftdown(array, 0, pos, cmp); - return _siftup(array, pos, cmp); - }; - - - /* - Find the n largest elements in a dataset. - */ - - nlargest = function(array, n, cmp) { - var elem, result, _i, _len, _ref; - if (cmp == null) { - cmp = defaultCmp; - } - result = array.slice(0, n); - if (!result.length) { - return result; - } - heapify(result, cmp); - _ref = array.slice(n); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - elem = _ref[_i]; - heappushpop(result, elem, cmp); - } - return result.sort(cmp).reverse(); - }; - - - /* - Find the n smallest elements in a dataset. - */ - - nsmallest = function(array, n, cmp) { - var elem, i, los, result, _i, _j, _len, _ref, _ref1, _results; - if (cmp == null) { - cmp = defaultCmp; - } - if (n * 10 <= array.length) { - result = array.slice(0, n).sort(cmp); - if (!result.length) { - return result; - } - los = result[result.length - 1]; - _ref = array.slice(n); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - elem = _ref[_i]; - if (cmp(elem, los) < 0) { - insort(result, elem, 0, null, cmp); - result.pop(); - los = result[result.length - 1]; - } - } - return result; - } - heapify(array, cmp); - _results = []; - for (i = _j = 0, _ref1 = min(n, array.length); 0 <= _ref1 ? _j < _ref1 : _j > _ref1; i = 0 <= _ref1 ? ++_j : --_j) { - _results.push(heappop(array, cmp)); - } - return _results; - }; - - _siftdown = function(array, startpos, pos, cmp) { - var newitem, parent, parentpos; - if (cmp == null) { - cmp = defaultCmp; - } - newitem = array[pos]; - while (pos > startpos) { - parentpos = (pos - 1) >> 1; - parent = array[parentpos]; - if (cmp(newitem, parent) < 0) { - array[pos] = parent; - pos = parentpos; - continue; - } - break; - } - return array[pos] = newitem; - }; - - _siftup = function(array, pos, cmp) { - var childpos, endpos, newitem, rightpos, startpos; - if (cmp == null) { - cmp = defaultCmp; - } - endpos = array.length; - startpos = pos; - newitem = array[pos]; - childpos = 2 * pos + 1; - while (childpos < endpos) { - rightpos = childpos + 1; - if (rightpos < endpos && !(cmp(array[childpos], array[rightpos]) < 0)) { - childpos = rightpos; - } - array[pos] = array[childpos]; - pos = childpos; - childpos = 2 * pos + 1; - } - array[pos] = newitem; - return _siftdown(array, startpos, pos, cmp); - }; - - Heap = (function() { - Heap.push = heappush; - - Heap.pop = heappop; - - Heap.replace = heapreplace; - - Heap.pushpop = heappushpop; - - Heap.heapify = heapify; - - Heap.updateItem = updateItem; - - Heap.nlargest = nlargest; - - Heap.nsmallest = nsmallest; - - function Heap(cmp) { - this.cmp = cmp != null ? cmp : defaultCmp; - this.nodes = []; - } - - Heap.prototype.push = function(x) { - return heappush(this.nodes, x, this.cmp); - }; - - Heap.prototype.pop = function() { - return heappop(this.nodes, this.cmp); - }; - - Heap.prototype.peek = function() { - return this.nodes[0]; - }; - - Heap.prototype.contains = function(x) { - return this.nodes.indexOf(x) !== -1; - }; - - Heap.prototype.replace = function(x) { - return heapreplace(this.nodes, x, this.cmp); - }; - - Heap.prototype.pushpop = function(x) { - return heappushpop(this.nodes, x, this.cmp); - }; - - Heap.prototype.heapify = function() { - return heapify(this.nodes, this.cmp); - }; - - Heap.prototype.updateItem = function(x) { - return updateItem(this.nodes, x, this.cmp); - }; - - Heap.prototype.clear = function() { - return this.nodes = []; - }; - - Heap.prototype.empty = function() { - return this.nodes.length === 0; - }; - - Heap.prototype.size = function() { - return this.nodes.length; - }; - - Heap.prototype.clone = function() { - var heap; - heap = new Heap(); - heap.nodes = this.nodes.slice(0); - return heap; - }; - - Heap.prototype.toArray = function() { - return this.nodes.slice(0); - }; - - Heap.prototype.insert = Heap.prototype.push; - - Heap.prototype.top = Heap.prototype.peek; - - Heap.prototype.front = Heap.prototype.peek; - - Heap.prototype.has = Heap.prototype.contains; - - Heap.prototype.copy = Heap.prototype.clone; - - return Heap; - - })(); - - (function(root, factory) { - if (true) { - return !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else if (typeof exports === 'object') { - return module.exports = factory(); - } else { - return root.Heap = factory(); - } - })(this, function() { - return Heap; - }); - -}).call(this); - - -/***/ }), -/* 139 */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global) {/** - * lodash (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright jQuery Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ - -/** Used as the `TypeError` message for "Functions" methods. */ -var FUNC_ERROR_TEXT = 'Expected a function'; - -/** Used as references for various `Number` constants. */ -var NAN = 0 / 0; - -/** `Object#toString` result references. */ -var symbolTag = '[object Symbol]'; - -/** Used to match leading and trailing whitespace. */ -var reTrim = /^\s+|\s+$/g; - -/** Used to detect bad signed hexadecimal string values. */ -var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - -/** Used to detect binary string values. */ -var reIsBinary = /^0b[01]+$/i; - -/** Used to detect octal string values. */ -var reIsOctal = /^0o[0-7]+$/i; - -/** Built-in method references without a dependency on `root`. */ -var freeParseInt = parseInt; - -/** Detect free variable `global` from Node.js. */ -var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; - -/** Detect free variable `self`. */ -var freeSelf = typeof self == 'object' && self && self.Object === Object && self; - -/** Used as a reference to the global object. */ -var root = freeGlobal || freeSelf || Function('return this')(); - -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ -var objectToString = objectProto.toString; - -/* Built-in method references for those with the same name as other `lodash` methods. */ -var nativeMax = Math.max, - nativeMin = Math.min; - -/** - * Gets the timestamp of the number of milliseconds that have elapsed since - * the Unix epoch (1 January 1970 00:00:00 UTC). - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Date - * @returns {number} Returns the timestamp. - * @example - * - * _.defer(function(stamp) { - * console.log(_.now() - stamp); - * }, _.now()); - * // => Logs the number of milliseconds it took for the deferred invocation. - */ -var now = function() { - return root.Date.now(); -}; - -/** - * Creates a debounced function that delays invoking `func` until after `wait` - * milliseconds have elapsed since the last time the debounced function was - * invoked. The debounced function comes with a `cancel` method to cancel - * delayed `func` invocations and a `flush` method to immediately invoke them. - * Provide `options` to indicate whether `func` should be invoked on the - * leading and/or trailing edge of the `wait` timeout. The `func` is invoked - * with the last arguments provided to the debounced function. Subsequent - * calls to the debounced function return the result of the last `func` - * invocation. - * - * **Note:** If `leading` and `trailing` options are `true`, `func` is - * invoked on the trailing edge of the timeout only if the debounced function - * is invoked more than once during the `wait` timeout. - * - * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred - * until to the next tick, similar to `setTimeout` with a timeout of `0`. - * - * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) - * for details over the differences between `_.debounce` and `_.throttle`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to debounce. - * @param {number} [wait=0] The number of milliseconds to delay. - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=false] - * Specify invoking on the leading edge of the timeout. - * @param {number} [options.maxWait] - * The maximum time `func` is allowed to be delayed before it's invoked. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. - * @returns {Function} Returns the new debounced function. - * @example - * - * // Avoid costly calculations while the window size is in flux. - * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); - * - * // Invoke `sendMail` when clicked, debouncing subsequent calls. - * jQuery(element).on('click', _.debounce(sendMail, 300, { - * 'leading': true, - * 'trailing': false - * })); - * - * // Ensure `batchLog` is invoked once after 1 second of debounced calls. - * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); - * var source = new EventSource('/stream'); - * jQuery(source).on('message', debounced); - * - * // Cancel the trailing debounced invocation. - * jQuery(window).on('popstate', debounced.cancel); - */ -function debounce(func, wait, options) { - var lastArgs, - lastThis, - maxWait, - result, - timerId, - lastCallTime, - lastInvokeTime = 0, - leading = false, - maxing = false, - trailing = true; - - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - wait = toNumber(wait) || 0; - if (isObject(options)) { - leading = !!options.leading; - maxing = 'maxWait' in options; - maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; - trailing = 'trailing' in options ? !!options.trailing : trailing; - } - - function invokeFunc(time) { - var args = lastArgs, - thisArg = lastThis; - - lastArgs = lastThis = undefined; - lastInvokeTime = time; - result = func.apply(thisArg, args); - return result; - } - - function leadingEdge(time) { - // Reset any `maxWait` timer. - lastInvokeTime = time; - // Start the timer for the trailing edge. - timerId = setTimeout(timerExpired, wait); - // Invoke the leading edge. - return leading ? invokeFunc(time) : result; - } - - function remainingWait(time) { - var timeSinceLastCall = time - lastCallTime, - timeSinceLastInvoke = time - lastInvokeTime, - result = wait - timeSinceLastCall; - - return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result; - } - - function shouldInvoke(time) { - var timeSinceLastCall = time - lastCallTime, - timeSinceLastInvoke = time - lastInvokeTime; - - // Either this is the first call, activity has stopped and we're at the - // trailing edge, the system time has gone backwards and we're treating - // it as the trailing edge, or we've hit the `maxWait` limit. - return (lastCallTime === undefined || (timeSinceLastCall >= wait) || - (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); - } - - function timerExpired() { - var time = now(); - if (shouldInvoke(time)) { - return trailingEdge(time); - } - // Restart the timer. - timerId = setTimeout(timerExpired, remainingWait(time)); - } - - function trailingEdge(time) { - timerId = undefined; - - // Only invoke if we have `lastArgs` which means `func` has been - // debounced at least once. - if (trailing && lastArgs) { - return invokeFunc(time); - } - lastArgs = lastThis = undefined; - return result; - } - - function cancel() { - if (timerId !== undefined) { - clearTimeout(timerId); - } - lastInvokeTime = 0; - lastArgs = lastCallTime = lastThis = timerId = undefined; - } - - function flush() { - return timerId === undefined ? result : trailingEdge(now()); - } - - function debounced() { - var time = now(), - isInvoking = shouldInvoke(time); - - lastArgs = arguments; - lastThis = this; - lastCallTime = time; - - if (isInvoking) { - if (timerId === undefined) { - return leadingEdge(lastCallTime); - } - if (maxing) { - // Handle invocations in a tight loop. - timerId = setTimeout(timerExpired, wait); - return invokeFunc(lastCallTime); - } - } - if (timerId === undefined) { - timerId = setTimeout(timerExpired, wait); - } - return result; - } - debounced.cancel = cancel; - debounced.flush = flush; - return debounced; -} - -/** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -/** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ -function isObjectLike(value) { - return !!value && typeof value == 'object'; -} - -/** - * Checks if `value` is classified as a `Symbol` primitive or object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. - * @example - * - * _.isSymbol(Symbol.iterator); - * // => true - * - * _.isSymbol('abc'); - * // => false - */ -function isSymbol(value) { - return typeof value == 'symbol' || - (isObjectLike(value) && objectToString.call(value) == symbolTag); -} - -/** - * Converts `value` to a number. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to process. - * @returns {number} Returns the number. - * @example - * - * _.toNumber(3.2); - * // => 3.2 - * - * _.toNumber(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toNumber(Infinity); - * // => Infinity - * - * _.toNumber('3.2'); - * // => 3.2 - */ -function toNumber(value) { - if (typeof value == 'number') { - return value; - } - if (isSymbol(value)) { - return NAN; - } - if (isObject(value)) { - var other = typeof value.valueOf == 'function' ? value.valueOf() : value; - value = isObject(other) ? (other + '') : other; - } - if (typeof value != 'string') { - return value === 0 ? value : +value; - } - value = value.replace(reTrim, ''); - var isBinary = reIsBinary.test(value); - return (isBinary || reIsOctal.test(value)) - ? freeParseInt(value.slice(2), isBinary ? 2 : 8) - : (reIsBadHex.test(value) ? NAN : +value); -} - -module.exports = debounce; - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(20))) - -/***/ }), -/* 140 */ -/***/ (function(module, exports) { - -// shim for using process in browser -var process = module.exports = {}; - -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; - -function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); -} -function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); -} -(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } -} ()) -function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - - -} -function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - - - -} -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; - -function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} - -function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); -} - -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; - -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; - -process.listeners = function (name) { return [] } - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - - -/***/ }), -/* 141 */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) { - "use strict"; - - if (global.setImmediate) { - return; - } - - var nextHandle = 1; // Spec says greater than zero - var tasksByHandle = {}; - var currentlyRunningATask = false; - var doc = global.document; - var registerImmediate; - - function setImmediate(callback) { - // Callback can either be a function or a string - if (typeof callback !== "function") { - callback = new Function("" + callback); - } - // Copy function arguments - var args = new Array(arguments.length - 1); - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i + 1]; - } - // Store and register the task - var task = { callback: callback, args: args }; - tasksByHandle[nextHandle] = task; - registerImmediate(nextHandle); - return nextHandle++; - } - - function clearImmediate(handle) { - delete tasksByHandle[handle]; - } - - function run(task) { - var callback = task.callback; - var args = task.args; - switch (args.length) { - case 0: - callback(); - break; - case 1: - callback(args[0]); - break; - case 2: - callback(args[0], args[1]); - break; - case 3: - callback(args[0], args[1], args[2]); - break; - default: - callback.apply(undefined, args); - break; - } - } - - function runIfPresent(handle) { - // From the spec: "Wait until any invocations of this algorithm started before this one have completed." - // So if we're currently running a task, we'll need to delay this invocation. - if (currentlyRunningATask) { - // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a - // "too much recursion" error. - setTimeout(runIfPresent, 0, handle); - } else { - var task = tasksByHandle[handle]; - if (task) { - currentlyRunningATask = true; - try { - run(task); - } finally { - clearImmediate(handle); - currentlyRunningATask = false; - } - } - } - } - - function installNextTickImplementation() { - registerImmediate = function(handle) { - process.nextTick(function () { runIfPresent(handle); }); - }; - } - - function canUsePostMessage() { - // The test against `importScripts` prevents this implementation from being installed inside a web worker, - // where `global.postMessage` means something completely different and can't be used for this purpose. - if (global.postMessage && !global.importScripts) { - var postMessageIsAsynchronous = true; - var oldOnMessage = global.onmessage; - global.onmessage = function() { - postMessageIsAsynchronous = false; - }; - global.postMessage("", "*"); - global.onmessage = oldOnMessage; - return postMessageIsAsynchronous; - } - } - - function installPostMessageImplementation() { - // Installs an event handler on `global` for the `message` event: see - // * https://developer.mozilla.org/en/DOM/window.postMessage - // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages - - var messagePrefix = "setImmediate$" + Math.random() + "$"; - var onGlobalMessage = function(event) { - if (event.source === global && - typeof event.data === "string" && - event.data.indexOf(messagePrefix) === 0) { - runIfPresent(+event.data.slice(messagePrefix.length)); - } - }; - - if (global.addEventListener) { - global.addEventListener("message", onGlobalMessage, false); - } else { - global.attachEvent("onmessage", onGlobalMessage); - } - - registerImmediate = function(handle) { - global.postMessage(messagePrefix + handle, "*"); - }; - } - - function installMessageChannelImplementation() { - var channel = new MessageChannel(); - channel.port1.onmessage = function(event) { - var handle = event.data; - runIfPresent(handle); - }; - - registerImmediate = function(handle) { - channel.port2.postMessage(handle); - }; - } - - function installReadyStateChangeImplementation() { - var html = doc.documentElement; - registerImmediate = function(handle) { - // Create a - - - - - -
- - - - diff --git a/frontend/taxonomy/cytoscape/taxonomyRelations.html b/frontend/taxonomy/cytoscape/taxonomyRelations.html index e3f03a5..7e690a6 100644 --- a/frontend/taxonomy/cytoscape/taxonomyRelations.html +++ b/frontend/taxonomy/cytoscape/taxonomyRelations.html @@ -75,12 +75,11 @@
-
- - - - - +
+ + + +
@@ -1125,7 +1124,7 @@


layout: { name: 'preset', zoom: 1, - pan: {x: !!isInterDimensional ? ($(window).width() - 300) : 0, y: !!isInterDimensional ? $(window).height() : 0} + pan: {x: !!isInterDimensional ? ($(window).width() - 300) : 0, y: !!isInterDimensional ? $(window).height() + 200 : 0} //rows: 3 }, style: STYLES @@ -1562,7 +1561,7 @@


right: '', }, fireSearch: function(value) { - return value.length > 3; + return value.length > 0; } }); }); diff --git a/frontend/taxonomy/cytoscape/taxonomyRelations.json b/frontend/taxonomy/cytoscape/taxonomyRelations.json deleted file mode 100644 index ac770ff..0000000 --- a/frontend/taxonomy/cytoscape/taxonomyRelations.json +++ /dev/null @@ -1,256 +0,0 @@ - /* - var cy = cytoscape({ - container: document.getElementById('cy'), - elements: [ - // nodes - // Attack View - {data: { id: 'Attack View' }, classes: 'parentNode' }, - { data: { id: 'Tools', parent: 'Attack View', width: 50 }, classes: 'childNode' }, - { data: { id: 'Disassembler', parent: 'Attack View', width: 120 }, classes: 'childNode' }, - { data: { id: 'Debugger', parent: 'Attack View', width: 80 }, classes: 'childNode' }, - { data: { id: 'Tracer', parent: 'Attack View', width: 60 }, classes: 'childNode' }, - { data: { id: 'Emulator', parent: 'Attack View', width: 80 }, classes: 'childNode' }, - { data: { id: 'Reverse Engineering', parent: 'Attack View', width: 110 }, classes: 'childNode' }, - { data: { id: 'Attacker', parent: 'Attack View', width: 80 }, classes: 'childNode' }, - { data: { id: 'Discovery', parent: 'Attack View', width: 90 }, classes: 'childNode' }, - { data: { id: 'Attack', parent: 'Attack View', width: 60 }, classes: 'childNode' }, - { data: { id: 'No root', parent: 'Attack View', width: 70 }, classes: 'childNode' }, - { data: { id: 'Pattern matching', parent: 'Attack View', width: 160 }, classes: 'childNode' }, - { data: { id: 'Taint analysis', parent: 'Attack View', width: 140 }, classes: 'childNode' }, - { data: { id: 'Graph-based analysis', parent: 'Attack View', width: 200 }, classes: 'childNode' }, - { data: { id: 'Symbolic execution', parent: 'Attack View', width: 180 }, classes: 'childNode' }, - { data: { id: 'Binary patching', parent: 'Attack View', width: 150 }, classes: 'childNode' }, - { data: { id: 'Process memory patching', parent: 'Attack View', width: 230 }, classes: 'childNode' }, - { data: { id: 'Runtime data manipulation', parent: 'Attack View', width: 250 }, classes: 'childNode' }, - { data: { id: 'Call interposition', parent: 'Attack View', width: 180 }, classes: 'childNode' }, - { data: { id: 'Control flow hijacking', parent: 'Attack View', width: 220 }, classes: 'childNode' }, - // edges - { - data: { - id: 'Disassembler_Tools', - source: 'Disassembler', - target: 'Tools' - }, - classes: 'aggregation' - }, - { - data: { - id: 'Debugger_Tools', - source: 'Debugger', - target: 'Tools' - }, - classes: 'aggregation' - }, - { - data: { - id: 'Tracer_Tools', - source: 'Tracer', - target: 'Tools' - }, - classes: 'aggregation' - }, - { - data: { - id: 'Emulator_Tools', - source: 'Emulator', - target: 'Tools' - }, - classes: 'aggregation' - }, - { - data: { - id: 'Tools_ReverseEngineering', - source: 'Tools', - target: 'Reverse Engineering' - }, - classes: 'composition' - }, - { - data: { - id: 'Attacker_ReverseEngineering', - source: 'Attacker', - target: 'Reverse Engineering' - }, - classes: 'composition' - }, - { - data: { - id: 'Discovery_ReverseEngineering', - source: 'Discovery', - target: 'Reverse Engineering' - }, - classes: 'composition' - }, - { - data: { - id: 'Attack_ReverseEngineering', - source: 'Attack', - target: 'Reverse Engineering' - }, - classes: 'composition' - }, - { - data: { - id: 'NoRoot_Attacker', - source: 'No root', - target: 'Attacker' - }, - classes: 'inheritance' - }, - { - data: { - id: 'PatternMatching_Discovery', - source: 'Pattern matching', - target: 'Discovery' - }, - classes: 'inheritance' - }, - { - data: { - id: 'TaintAnalysis_Discovery', - source: 'Taint analysis', - target: 'Discovery' - }, - classes: 'inheritance' - }, - { - data: { - id: 'Graph-basedAnalysis_Discovery', - source: 'Graph-based analysis', - target: 'Discovery' - }, - classes: 'inheritance' - }, - { - data: { - id: 'SymbolicExecution_Discovery', - source: 'Symbolic execution', - target: 'Discovery' - }, - classes: 'inheritance' - }, - { - data: { - id: 'Binary patching_Attack', - source: 'Binary patching', - target: 'Attack' - }, - classes: 'inheritance' - }, - { - data: { - id: 'ProcessMemoryPatching_Attack', - source: 'Process memory patching', - target: 'Attack' - }, - classes: 'inheritance' - }, - { - data: { - id: 'RuntimeDataManipulation_Attack', - source: 'Runtime data manipulation', - target: 'Attack' - }, - classes: 'inheritance' - }, - { - data: { - id: 'CallInterposition_Attack', - source: 'Call interposition', - target: 'Attack' - }, - classes: 'inheritance' - }, - { - data: { - id: 'ControlFlowHijacking_Attack', - source: 'Control flow hijacking', - target: 'Attack' - }, - classes: 'inheritance' - } -], - // Defense View - {data: { id: 'Defense View' }, classes: 'parentNode' }, - { data: { id: 'Measure', parent: 'Defense View', width: 70 }, classes: 'childNode' }, - { data: { id: 'Overhead', parent: 'Defense View', width: 80 }, classes: 'childNode' }, - { data: { id: 'Trust anchor', parent: 'Defense View', width: 120 }, classes: 'childNode' }, - { data: { id: 'Protection level', parent: 'Defense View', width: 160 }, classes: 'childNode' }, - { data: { id: 'Fair', parent: 'Defense View', width: 40 }, classes: 'childNode' }, - { data: { id: 'Medium', parent: 'Defense View', width: 60 }, classes: 'childNode' }, - { data: { id: 'High', parent: 'Defense View', width: 40 }, classes: 'childNode' }, - { data: { id: 'N/A', parent: 'Defense View', width: 30 }, classes: 'childNode' }, - { data: { id: 'Software', parent: 'Defense View', width: 80 }, classes: 'childNode' }, - { data: { id: 'Dongle', parent: 'Defense View', width: 60 }, classes: 'childNode' }, - { data: { id: 'TPM', parent: 'Defense View', width: 30 }, classes: 'childNode' }, - { data: { id: 'SGX', parent: 'Defense View', width: 30 }, classes: 'childNode' }, - { data: { id: 'Other', parent: 'Defense View', width: 50 }, classes: 'childNode' }, - { data: { id: 'Symbolic execution', parent: 'Defense View', width: 180 }, classes: 'childNode' }, - { data: { id: 'Binary patching', parent: 'Defense View', width: 150 }, classes: 'childNode' }, - { data: { id: 'Process memory patching', parent: 'Defense View', width: 230 }, classes: 'childNode' }, - { data: { id: 'Runtime data manipulation', parent: 'Defense View', width: 250 }, classes: 'childNode' }, - { data: { id: 'Call interposition', parent: 'Defense View', width: 180 }, classes: 'childNode' }, - { data: { id: 'Control flow hijacking', parent: 'Defense View', width: 220 }, classes: 'childNode' }, - style: [ - { - selector: '.childNode', - style: { - width: 'data(width)', - height: '50px', - color: 'black', - shape: 'roundrectangle', - 'background-color': 'lightblue', - label: 'data(id)', - 'text-valign': 'center', - 'text-halign': 'center' - } - }, - { - selector: '.parentNode', - style: { - 'background-color': 'lightgrey', - label: 'data(id)', - 'text-valign': 'top', - 'text-halign': 'right', - 'text-margin-x': '-100px', - 'text-margin-y': '30px' - } - }, - { - selector: 'edge', - style: { - 'curve-style': 'bezier', - 'width': 5, - 'target-arrow-color': 'white', // #ccc - 'line-color': 'white' - } - }, - { - selector: '.composition', - style: { - 'target-arrow-shape': 'diamond', - 'target-arrow-fill': 'filled', - 'arrow-scale': 2, - } - }, - { - selector: '.aggregation', - style: { - 'target-arrow-shape': 'diamond', - 'target-arrow-fill': 'hollow', - 'arrow-scale': 2, - } - }, - { - selector: '.inheritance', - style: { - 'target-arrow-shape': 'triangle', - 'target-arrow-fill': 'hollow', - 'arrow-scale': 1.5 - } - }], - layout: { - name: 'breadthfirst' - } - }); - */ \ No newline at end of file diff --git a/frontend/taxonomy/hierarchy/circlePacking.html b/frontend/taxonomy/hierarchy/circlePacking.html index 76aa3be..46cbae8 100644 --- a/frontend/taxonomy/hierarchy/circlePacking.html +++ b/frontend/taxonomy/hierarchy/circlePacking.html @@ -63,18 +63,29 @@
-
-
- - - - - + +
+
+
+
+ + +
+
+
+
+ + + + +
-
+
+ +
- - - - - - - - - - - - - - - - - - - - -
- - - - diff --git a/frontend/taxonomy/hierarchy/treeMap2.html b/frontend/taxonomy/hierarchy/treeMap2.html deleted file mode 100644 index 379cca7..0000000 --- a/frontend/taxonomy/hierarchy/treeMap2.html +++ /dev/null @@ -1,356 +0,0 @@ - - - - Treemap - - - - - - - - - - - - - - - - - - - - - -
- - - - diff --git a/frontend/taxonomy/treemap.html b/frontend/taxonomy/treemap.html deleted file mode 100644 index 8bc8b6d..0000000 --- a/frontend/taxonomy/treemap.html +++ /dev/null @@ -1,345 +0,0 @@ - - - -Zoomable Treemaps - - - - - - - - - - - - - - - - - - - - - - - - -

- - - \ No newline at end of file diff --git a/frontend/taxonomy/uml/mermaid.core.js b/frontend/taxonomy/uml/mermaid.core.js deleted file mode 100644 index 8190551..0000000 --- a/frontend/taxonomy/uml/mermaid.core.js +++ /dev/null @@ -1,11704 +0,0 @@ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(require("moment"), require("lodash/each"), require("he"), require("d3"), require("dagre-d3-renderer"), require("dagre-layout"), require("lodash/extend"), require("lodash/isArray"), require("lodash/find"), require("lodash/isString"), require("lodash/orderBy"), require("lodash/map"), require("lodash/uniqBy"), require("lodash/maxBy")); - else if(typeof define === 'function' && define.amd) - define(["moment", "lodash/each", "he", "d3", "dagre-d3-renderer", "dagre-layout", "lodash/extend", "lodash/isArray", "lodash/find", "lodash/isString", "lodash/orderBy", "lodash/map", "lodash/uniqBy", "lodash/maxBy"], factory); - else if(typeof exports === 'object') - exports["mermaid"] = factory(require("moment"), require("lodash/each"), require("he"), require("d3"), require("dagre-d3-renderer"), require("dagre-layout"), require("lodash/extend"), require("lodash/isArray"), require("lodash/find"), require("lodash/isString"), require("lodash/orderBy"), require("lodash/map"), require("lodash/uniqBy"), require("lodash/maxBy")); - else - root["mermaid"] = factory(root["moment"], root["lodash/each"], root["he"], root["d3"], root["dagre-d3-renderer"], root["dagre-layout"], root["lodash/extend"], root["lodash/isArray"], root["lodash/find"], root["lodash/isString"], root["lodash/orderBy"], root["lodash/map"], root["lodash/uniqBy"], root["lodash/maxBy"]); -})(this, function(__WEBPACK_EXTERNAL_MODULE_7__, __WEBPACK_EXTERNAL_MODULE_21__, __WEBPACK_EXTERNAL_MODULE_26__, __WEBPACK_EXTERNAL_MODULE_28__, __WEBPACK_EXTERNAL_MODULE_30__, __WEBPACK_EXTERNAL_MODULE_36__, __WEBPACK_EXTERNAL_MODULE_38__, __WEBPACK_EXTERNAL_MODULE_39__, __WEBPACK_EXTERNAL_MODULE_40__, __WEBPACK_EXTERNAL_MODULE_41__, __WEBPACK_EXTERNAL_MODULE_42__, __WEBPACK_EXTERNAL_MODULE_43__, __WEBPACK_EXTERNAL_MODULE_44__, __WEBPACK_EXTERNAL_MODULE_45__) { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 24); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.setLogLevel = exports.logger = exports.LEVELS = undefined; - -var _moment = __webpack_require__(7); - -var _moment2 = _interopRequireDefault(_moment); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var LEVELS = exports.LEVELS = { - debug: 1, - info: 2, - warn: 3, - error: 4, - fatal: 5 -}; - -var logger = exports.logger = { - debug: function debug() {}, - info: function info() {}, - warn: function warn() {}, - error: function error() {}, - fatal: function fatal() {} -}; - -var setLogLevel = exports.setLogLevel = function setLogLevel(level) { - logger.debug = function () {}; - logger.info = function () {}; - logger.warn = function () {}; - logger.error = function () {}; - logger.fatal = function () {}; - if (level <= LEVELS.fatal) { - logger.fatal = console.log.bind(console, '\x1b[35m', format('FATAL')); - } - if (level <= LEVELS.error) { - logger.error = console.log.bind(console, '\x1b[31m', format('ERROR')); - } - if (level <= LEVELS.warn) { - logger.warn = console.log.bind(console, '\x1B[33m', format('WARN')); - } - if (level <= LEVELS.info) { - logger.info = console.log.bind(console, '\x1b[34m', format('INFO')); - } - if (level <= LEVELS.debug) { - logger.debug = console.log.bind(console, '\x1b[32m', format('DEBUG')); - } -}; - -var format = function format(level) { - var time = (0, _moment2.default)().format('HH:mm:ss.SSS'); - return time + ' : ' + level + ' : '; -}; - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -var _d = __webpack_require__(28); - -var _d2 = _interopRequireDefault(_d); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/* - D3 Text Wrap - By Vijith Assar - http://www.vijithassar.com - http://www.github.com/vijithassar - @vijithassar - - Detailed instructions at http://www.github.com/vijithassar/d3textwrap - */ - -(function () { - // set this variable to a string value to always force a particular - // wrap method for development purposes, for example to check tspan - // rendering using a foreignobject-enabled browser. set to 'tspan' to - // use tspans and 'foreignobject' to use foreignobject - var forceWrapMethod = false; // by default no wrap method is forced - forceWrapMethod = 'tspans'; // uncomment this statement to force tspans - // force_wrap_method = 'foreignobjects'; // uncomment this statement to force foreignobjects - - // exit immediately if something in this location - // has already been defined; the plugin will defer to whatever - // else you're doing in your code - if (_d2.default.selection.prototype.textwrap) { - return false; - } - - // double check the force_wrap_method flag - // and reset if someone screwed up the above - // settings - if (typeof forceWrapMethod === 'undefined') { - forceWrapMethod = false; - } - - // create the plugin method twice, both for regular use - // and again for use inside the enter() selection - _d2.default.selection.prototype.textwrap = _d2.default.selection.enter.prototype.textwrap = function (bounds, padding) { - // default value of padding is zero if it's undefined - padding = parseInt(padding) || 0; - - // save callee into a variable so we can continue to refer to it - // as the function scope changes - var selection = this; - - // create a variable to store desired return values in - var returnValue; - - // extract wrap boundaries from any d3-selected rect and return them - // in a format that matches the simpler object argument option - var extractBounds = function extractBounds(bounds) { - // discard the nested array wrappers added by d3 - var boundingRect = bounds[0][0]; - // sanitize the svg element name so we can test against it - var elementType = boundingRect.tagName.toString(); - // if it's not a rect, exit - if (elementType !== 'rect') { - return false; - // if it's a rect, proceed to extracting the position attributes - } else { - var boundsExtracted = {}; - boundsExtracted.x = _d2.default.select(boundingRect).attr('x') || 0; - boundsExtracted.y = _d2.default.select(boundingRect).attr('y') || 0; - boundsExtracted.width = _d2.default.select(boundingRect).attr('width') || 0; - boundsExtracted.height = _d2.default.select(boundingRect).attr('height') || 0; - // also pass along the getter function - boundsExtracted.attr = bounds.attr; - } - return boundsExtracted; - }; - - // double check the input argument for the wrapping - // boundaries to make sure it actually contains all - // the information we'll need in order to wrap successfully - var verifyBounds = function verifyBounds(bounds) { - // quickly add a simple getter method so you can use either - // bounds.x or bounds.attr('x') as your notation, - // the latter being a common convention among D3 - // developers - if (!bounds.attr) { - bounds.attr = function (property) { - if (this[property]) { - return this[property]; - } - }; - } - // if it's an associative array, make sure it has all the - // necessary properties represented directly - if ((typeof bounds === 'undefined' ? 'undefined' : _typeof(bounds)) === 'object' && typeof bounds.x !== 'undefined' && typeof bounds.y !== 'undefined' && typeof bounds.width !== 'undefined' && typeof bounds.height !== 'undefined' - // if that's the case, then the bounds are fine - ) { - // return the lightly modified bounds - return bounds; - // if it's a numerically indexed array, assume it's a - // d3-selected rect and try to extract the positions - } else if ( - // first try to make sure it's an array using Array.isArray - typeof Array.isArray === 'function' && Array.isArray(bounds) || - // but since Array.isArray isn't always supported, fall - // back to casting to the object to string when it's not - Object.prototype.toString.call(bounds) === '[object Array]') { - // once you're sure it's an array, extract the boundaries - // from the rect - var extractedBounds = extractBounds(bounds); - return extractedBounds; - } else { - // but if the bounds are neither an object nor a numerical - // array, then the bounds argument is invalid and you'll - // need to fix it - return false; - } - }; - - var applyPadding = function applyPadding(bounds, padding) { - var paddedBounds = bounds; - if (padding !== 0) { - paddedBounds.x = parseInt(paddedBounds.x) + padding; - paddedBounds.y = parseInt(paddedBounds.y) + padding; - paddedBounds.width -= padding * 2; - paddedBounds.height -= padding * 2; - } - return paddedBounds; - }; - - // verify bounds - var verifiedBounds = verifyBounds(bounds); - - // modify bounds if a padding value is provided - if (padding) { - verifiedBounds = applyPadding(verifiedBounds, padding); - } - - // check that we have the necessary conditions for this function to operate properly - if ( - // selection it's operating on cannot be not empty - selection.length === 0 || - // d3 must be available - !_d2.default || - // desired wrapping bounds must be provided as an input argument - !bounds || - // input bounds must validate - !verifiedBounds) { - // try to return the calling selection if possible - // so as not to interfere with methods downstream in the - // chain - if (selection) { - return selection; - // if all else fails, just return false. if you hit this point then you're - // almost certainly trying to call the textwrap() method on something that - // doesn't make sense! - } else { - return false; - } - // if we've validated everything then we can finally proceed - // to the meat of this operation - } else { - // reassign the verified bounds as the set we want - // to work with from here on; this ensures that we're - // using the same data structure for our bounds regardless - // of whether the input argument was a simple object or - // a d3 selection - bounds = verifiedBounds; - - // wrap using html and foreignObjects if they are supported - var wrapWithForeignobjects = function wrapWithForeignobjects(item) { - // establish variables to quickly reference target nodes later - var parent = _d2.default.select(item[0].parentNode); - var textNode = parent.select('text'); - var styledLineHeight = textNode.style('line-height'); - // extract our desired content from the single text element - var textToWrap = textNode.text(); - // remove the text node and replace with a foreign object - textNode.remove(); - var foreignObject = parent.append('foreignObject'); - // add foreign object and set dimensions, position, etc - foreignObject.attr('requiredFeatures', 'http://www.w3.org/TR/SVG11/feature#Extensibility').attr('x', bounds.x).attr('y', bounds.y).attr('width', bounds.width).attr('height', bounds.height); - // insert an HTML div - var wrapDiv = foreignObject.append('xhtml:div') - // this class is currently hardcoded - // probably not necessary but easy to - // override using .classed() and for now - // it's nice to avoid a litany of input - // arguments - .attr('class', 'wrapped'); - // set div to same dimensions as foreign object - wrapDiv.style('height', bounds.height).style('width', bounds.width) - // insert text content - .html(textToWrap); - if (styledLineHeight) { - wrapDiv.style('line-height', styledLineHeight); - } - returnValue = parent.select('foreignObject'); - }; - - // wrap with tspans if foreignObject is undefined - var wrapWithTspans = function wrapWithTspans(item) { - // operate on the first text item in the selection - var textNode = item[0]; - var parent = textNode.parentNode; - var textNodeSelected = _d2.default.select(textNode); - // measure initial size of the text node as rendered - var textNodeHeight = textNode.getBBox().height; - var textNodeWidth = textNode.getBBox().width; - // figure out the line height, either from rendered height - // of the font or attached styling - var lineHeight; - var renderedLineHeight = textNodeHeight; - var styledLineHeight = textNodeSelected.style('line-height'); - if (styledLineHeight && parseInt(styledLineHeight)) { - lineHeight = parseInt(styledLineHeight.replace('px', '')); - } else { - lineHeight = renderedLineHeight; - } - // only fire the rest of this if the text content - // overflows the desired dimensions - if (textNodeWidth > bounds.width) { - // store whatever is inside the text node - // in a variable and then zero out the - // initial content; we'll reinsert in a moment - // using tspan elements. - var textToWrap = textNodeSelected.text(); - textNodeSelected.text(''); - if (textToWrap) { - // keep track of whether we are splitting by spaces - // so we know whether to reinsert those spaces later - var breakDelimiter; - // split at spaces to create an array of individual words - var textToWrapArray; - if (textToWrap.indexOf(' ') !== -1) { - breakDelimiter = ' '; - textToWrapArray = textToWrap.split(' '); - } else { - // if there are no spaces, figure out the split - // points by comparing rendered text width against - // bounds and translating that into character position - // cuts - breakDelimiter = ''; - var stringLength = textToWrap.length; - var numberOfSubstrings = Math.ceil(textNodeWidth / bounds.width); - var spliceInterval = Math.floor(stringLength / numberOfSubstrings); - if (!(spliceInterval * numberOfSubstrings >= stringLength)) { - numberOfSubstrings++; - } - textToWrapArray = []; - var substring; - var startPosition; - for (var i = 0; i < numberOfSubstrings; i++) { - startPosition = i * spliceInterval; - substring = textToWrap.substr(startPosition, spliceInterval); - textToWrapArray.push(substring); - } - } - - // new array where we'll store the words re-assembled into - // substrings that have been tested against the desired - // maximum wrapping width - var substrings = []; - // computed text length is arguably incorrectly reported for - // all tspans after the first one, in that they will include - // the width of previous separate tspans. to compensate we need - // to manually track the computed text length of all those - // previous tspans and substrings, and then use that to offset - // the miscalculation. this then gives us the actual correct - // position we want to use in rendering the text in the SVG. - var totalOffset = 0; - // object for storing the results of text length computations later - var temp = {}; - // loop through the words and test the computed text length - // of the string against the maximum desired wrapping width - for (i = 0; i < textToWrapArray.length; i++) { - var word = textToWrapArray[i]; - var previousString = textNodeSelected.text(); - var previousWidth = textNode.getComputedTextLength(); - // initialize the current word as the first word - // or append to the previous string if one exists - var newstring; - if (previousString) { - newstring = previousString + breakDelimiter + word; - } else { - newstring = word; - } - // add the newest substring back to the text node and - // measure the length - textNodeSelected.text(newstring); - var newWidth = textNode.getComputedTextLength(); - // adjust the length by the offset we've tracked - // due to the misreported length discussed above - - // if our latest version of the string is too - // big for the bounds, use the previous - // version of the string (without the newest word - // added) and use the latest word to restart the - // process with a new tspan - if (newWidth > bounds.width) { - if (previousString && previousString !== '') { - totalOffset = totalOffset + previousWidth; - temp = { string: previousString, width: previousWidth, offset: totalOffset }; - substrings.push(temp); - textNodeSelected.text(''); - textNodeSelected.text(word); - // Handle case where there is just one more word to be wrapped - if (i === textToWrapArray.length - 1) { - newstring = word; - textNodeSelected.text(newstring); - newWidth = textNode.getComputedTextLength(); - } - } - } - // if we're up to the last word in the array, - // get the computed length as is without - // appending anything further to it - if (i === textToWrapArray.length - 1) { - textNodeSelected.text(''); - var finalString = newstring; - if (finalString && finalString !== '') { - if (newWidth - totalOffset > 0) { - newWidth = newWidth - totalOffset; - } - temp = { string: finalString, width: newWidth, offset: totalOffset }; - substrings.push(temp); - } - } - } - - // append each substring as a tspan - var currentTspan; - // var tspanCount - // double check that the text content has been removed - // before we start appending tspans - textNodeSelected.text(''); - for (i = 0; i < substrings.length; i++) { - substring = substrings[i].string; - // only append if we're sure it won't make the tspans - // overflow the bounds. - if (i * lineHeight < bounds.height - lineHeight * 1.5) { - currentTspan = textNodeSelected.append('tspan').text(substring); - // vertical shift to all tspans after the first one - currentTspan.attr('dy', function (d) { - if (i > 0) { - return lineHeight; - } - }); - // shift left from default position, which - // is probably based on the full length of the - // text string until we make this adjustment - currentTspan.attr('x', function () { - var xOffset = bounds.x; - if (padding) { - xOffset += padding; - } - return xOffset; - }); - } - } - } - } - // position the overall text node, whether wrapped or not - textNodeSelected.attr('y', function () { - var yOffset = bounds.y; - // shift by line-height to move the baseline into - // the bounds – otherwise the text baseline would be - // at the top of the bounds - if (lineHeight) { - yOffset += lineHeight; - } - // shift by padding, if it's there - if (padding) { - yOffset += padding; - } - return yOffset; - }); - // shift to the right by the padding value - textNodeSelected.attr('x', function () { - var xOffset = bounds.x; - if (padding) { - xOffset += padding; - } - return xOffset; - }); - - // assign our modified text node with tspans - // to the return value - returnValue = _d2.default.select(parent).selectAll('text'); - }; - - // variable used to hold the functions that let us - // switch between the wrap methods - var wrapMethod; - - // if a wrap method if being forced, assign that - // function - if (forceWrapMethod) { - if (forceWrapMethod === 'foreignobjects') { - wrapMethod = wrapWithForeignobjects; - } else if (forceWrapMethod === 'tspans') { - wrapMethod = wrapWithTspans; - } - } - - // if no wrap method is being forced, then instead - // test for browser support of foreignobject and - // use whichever wrap method makes sense accordingly - if (!forceWrapMethod) { - if (typeof SVGForeignObjectElement !== 'undefined') { - wrapMethod = wrapWithForeignobjects; - } else { - wrapMethod = wrapWithTspans; - } - } - - // run the desired wrap function for each item - // in the d3 selection that called .textwrap() - for (var i = 0; i < selection.length; i++) { - var item = selection[i]; - wrapMethod(item); - } - - // return the modified nodes so we can chain other - // methods to them. - return returnValue; - } - }; -})(); - -exports.default = _d2.default; - -/***/ }), -/* 2 */ -/***/ (function(module, exports) { - -// shim for using process in browser -var process = module.exports = {}; - -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; - -function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); -} -function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); -} -(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } -} ()) -function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - - -} -function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - - - -} -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; - -function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} - -function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); -} - -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; - -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; - -process.listeners = function (name) { return [] } - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - - -/***/ }), -/* 3 */ -/***/ (function(module, exports) { - -module.exports = function(module) { - if(!module.webpackPolyfill) { - module.deprecate = function() {}; - module.paths = []; - // module.parent = undefined by default - if(!module.children) module.children = []; - Object.defineProperty(module, "loaded", { - enumerable: true, - get: function() { - return module.l; - } - }); - Object.defineProperty(module, "id", { - enumerable: true, - get: function() { - return module.i; - } - }); - module.webpackPolyfill = 1; - } - return module; -}; - - -/***/ }), -/* 4 */ -/***/ (function(module, exports) { - - - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// resolves . and .. elements in a path array with directory names there -// must be no slashes, empty elements, or device names (c:\) in the array -// (so also no leading and trailing slashes - it does not distinguish -// relative and absolute paths) -function normalizeArray(parts, allowAboveRoot) { - // if the path tries to go above the root, `up` ends up > 0 - var up = 0; - for (var i = parts.length - 1; i >= 0; i--) { - var last = parts[i]; - if (last === '.') { - parts.splice(i, 1); - } else if (last === '..') { - parts.splice(i, 1); - up++; - } else if (up) { - parts.splice(i, 1); - up--; - } - } - - // if the path is allowed to go above the root, restore leading ..s - if (allowAboveRoot) { - for (; up--; up) { - parts.unshift('..'); - } - } - - return parts; -} - -// Split a filename into [root, dir, basename, ext], unix version -// 'root' is just a slash, or nothing. -var splitPathRe = - /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; -var splitPath = function(filename) { - return splitPathRe.exec(filename).slice(1); -}; - -// path.resolve([from ...], to) -// posix version -exports.resolve = function() { - var resolvedPath = '', - resolvedAbsolute = false; - - for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = (i >= 0) ? arguments[i] : process.cwd(); - - // Skip empty and invalid entries - if (typeof path !== 'string') { - throw new TypeError('Arguments to path.resolve must be strings'); - } else if (!path) { - continue; - } - - resolvedPath = path + '/' + resolvedPath; - resolvedAbsolute = path.charAt(0) === '/'; - } - - // At this point the path should be resolved to a full absolute path, but - // handle relative paths to be safe (might happen when process.cwd() fails) - - // Normalize the path - resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { - return !!p; - }), !resolvedAbsolute).join('/'); - - return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; -}; - -// path.normalize(path) -// posix version -exports.normalize = function(path) { - var isAbsolute = exports.isAbsolute(path), - trailingSlash = substr(path, -1) === '/'; - - // Normalize the path - path = normalizeArray(filter(path.split('/'), function(p) { - return !!p; - }), !isAbsolute).join('/'); - - if (!path && !isAbsolute) { - path = '.'; - } - if (path && trailingSlash) { - path += '/'; - } - - return (isAbsolute ? '/' : '') + path; -}; - -// posix version -exports.isAbsolute = function(path) { - return path.charAt(0) === '/'; -}; - -// posix version -exports.join = function() { - var paths = Array.prototype.slice.call(arguments, 0); - return exports.normalize(filter(paths, function(p, index) { - if (typeof p !== 'string') { - throw new TypeError('Arguments to path.join must be strings'); - } - return p; - }).join('/')); -}; - - -// path.relative(from, to) -// posix version -exports.relative = function(from, to) { - from = exports.resolve(from).substr(1); - to = exports.resolve(to).substr(1); - - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== '') break; - } - - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== '') break; - } - - if (start > end) return []; - return arr.slice(start, end - start + 1); - } - - var fromParts = trim(from.split('/')); - var toParts = trim(to.split('/')); - - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } - } - - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push('..'); - } - - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - - return outputParts.join('/'); -}; - -exports.sep = '/'; -exports.delimiter = ':'; - -exports.dirname = function(path) { - var result = splitPath(path), - root = result[0], - dir = result[1]; - - if (!root && !dir) { - // No dirname whatsoever - return '.'; - } - - if (dir) { - // It has a dirname, strip trailing slash - dir = dir.substr(0, dir.length - 1); - } - - return root + dir; -}; - - -exports.basename = function(path, ext) { - var f = splitPath(path)[2]; - // TODO: make this comparison case-insensitive on windows? - if (ext && f.substr(-1 * ext.length) === ext) { - f = f.substr(0, f.length - ext.length); - } - return f; -}; - - -exports.extname = function(path) { - return splitPath(path)[3]; -}; - -function filter (xs, f) { - if (xs.filter) return xs.filter(f); - var res = []; - for (var i = 0; i < xs.length; i++) { - if (f(xs[i], i, xs)) res.push(xs[i]); - } - return res; -} - -// String.prototype.substr - negative index don't work in IE8 -var substr = 'ab'.substr(-1) === 'b' - ? function (str, start, len) { return str.substr(start, len) } - : function (str, start, len) { - if (start < 0) start = str.length + start; - return str.substr(start, len); - } -; - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2))) - -/***/ }), -/* 6 */ -/***/ (function(module, exports) { - -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ -// css base code, injected by the css-loader -module.exports = function(useSourceMap) { - var list = []; - - // return the list of modules as css string - list.toString = function toString() { - return this.map(function (item) { - var content = cssWithMappingToString(item, useSourceMap); - if(item[2]) { - return "@media " + item[2] + "{" + content + "}"; - } else { - return content; - } - }).join(""); - }; - - // import a list of modules into the list - list.i = function(modules, mediaQuery) { - if(typeof modules === "string") - modules = [[null, modules, ""]]; - var alreadyImportedModules = {}; - for(var i = 0; i < this.length; i++) { - var id = this[i][0]; - if(typeof id === "number") - alreadyImportedModules[id] = true; - } - for(i = 0; i < modules.length; i++) { - var item = modules[i]; - // skip already imported module - // this implementation is not 100% perfect for weird media query combinations - // when a module is imported multiple times with different media queries. - // I hope this will never occur (Hey this way we have smaller bundles) - if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) { - if(mediaQuery && !item[2]) { - item[2] = mediaQuery; - } else if(mediaQuery) { - item[2] = "(" + item[2] + ") and (" + mediaQuery + ")"; - } - list.push(item); - } - } - }; - return list; -}; - -function cssWithMappingToString(item, useSourceMap) { - var content = item[1] || ''; - var cssMapping = item[3]; - if (!cssMapping) { - return content; - } - - if (useSourceMap && typeof btoa === 'function') { - var sourceMapping = toComment(cssMapping); - var sourceURLs = cssMapping.sources.map(function (source) { - return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */' - }); - - return [content].concat(sourceURLs).concat([sourceMapping]).join('\n'); - } - - return [content].join('\n'); -} - -// Adapted from convert-source-map (MIT) -function toComment(sourceMap) { - // eslint-disable-next-line no-undef - var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); - var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64; - - return '/*# ' + data + ' */'; -} - - -/***/ }), -/* 7 */ -/***/ (function(module, exports) { - -module.exports = require("moment"); - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getSubGraphs = exports.indexNodes = exports.getDepthFirstPos = exports.addSubGraph = exports.defaultStyle = exports.clear = exports.getClasses = exports.getEdges = exports.getVertices = exports.getDirection = exports.bindFunctions = exports.setClickEvent = exports.getTooltip = exports.setClass = exports.setDirection = exports.addClass = exports.updateLink = exports.updateLinkInterpolate = exports.addLink = exports.addVertex = undefined; - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -var _logger = __webpack_require__(0); - -var _utils = __webpack_require__(9); - -var _utils2 = _interopRequireDefault(_utils); - -var _d = __webpack_require__(1); - -var _d2 = _interopRequireDefault(_d); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var vertices = {}; -var edges = []; -var classes = []; -var subGraphs = []; -var tooltips = {}; -var subCount = 0; -var direction; -// Functions to be run after graph rendering -var funs = []; -/** - * Function called by parser when a node definition has been found - * @param id - * @param text - * @param type - * @param style - */ -var addVertex = exports.addVertex = function addVertex(id, text, type, style) { - var txt; - - if (typeof id === 'undefined') { - return; - } - if (id.trim().length === 0) { - return; - } - - if (typeof vertices[id] === 'undefined') { - vertices[id] = { id: id, styles: [], classes: [] }; - } - if (typeof text !== 'undefined') { - txt = text.trim(); - - // strip quotes if string starts and exnds with a quote - if (txt[0] === '"' && txt[txt.length - 1] === '"') { - txt = txt.substring(1, txt.length - 1); - } - - vertices[id].text = txt; - } - if (typeof type !== 'undefined') { - vertices[id].type = type; - } - if (typeof type !== 'undefined') { - vertices[id].type = type; - } - if (typeof style !== 'undefined') { - if (style !== null) { - style.forEach(function (s) { - vertices[id].styles.push(s); - }); - } - } -}; - -/** - * Function called by parser when a link/edge definition has been found - * @param start - * @param end - * @param type - * @param linktext - */ -var addLink = exports.addLink = function addLink(start, end, type, linktext) { - _logger.logger.info('Got edge...', start, end); - var edge = { start: start, end: end, type: undefined, text: '' }; - linktext = type.text; - - if (typeof linktext !== 'undefined') { - edge.text = linktext.trim(); - - // strip quotes if string starts and exnds with a quote - if (edge.text[0] === '"' && edge.text[edge.text.length - 1] === '"') { - edge.text = edge.text.substring(1, edge.text.length - 1); - } - } - - if (typeof type !== 'undefined') { - edge.type = type.type; - edge.stroke = type.stroke; - } - edges.push(edge); -}; - -/** - * Updates a link's line interpolation algorithm - * @param pos - * @param interpolate - */ -var updateLinkInterpolate = exports.updateLinkInterpolate = function updateLinkInterpolate(pos, interp) { - if (pos === 'default') { - edges.defaultInterpolate = interp; - } else { - edges[pos].interpolate = interp; - } -}; - -/** - * Updates a link with a style - * @param pos - * @param style - */ -var updateLink = exports.updateLink = function updateLink(pos, style) { - if (pos === 'default') { - edges.defaultStyle = style; - } else { - if (_utils2.default.isSubstringInArray('fill', style) === -1) { - style.push('fill:none'); - } - edges[pos].style = style; - } -}; - -var addClass = exports.addClass = function addClass(id, style) { - if (typeof classes[id] === 'undefined') { - classes[id] = { id: id, styles: [] }; - } - - if (typeof style !== 'undefined') { - if (style !== null) { - style.forEach(function (s) { - classes[id].styles.push(s); - }); - } - } -}; - -/** - * Called by parser when a graph definition is found, stores the direction of the chart. - * @param dir - */ -var setDirection = exports.setDirection = function setDirection(dir) { - direction = dir; -}; - -/** - * Called by parser when a graph definition is found, stores the direction of the chart. - * @param dir - */ -var setClass = exports.setClass = function setClass(id, className) { - if (id.indexOf(',') > 0) { - id.split(',').forEach(function (id2) { - if (typeof vertices[id2] !== 'undefined') { - vertices[id2].classes.push(className); - } - }); - } else { - if (typeof vertices[id] !== 'undefined') { - vertices[id].classes.push(className); - } - } -}; - -var setTooltip = function setTooltip(id, tooltip) { - if (typeof tooltip !== 'undefined') { - tooltips[id] = tooltip; - } -}; - -var setClickFun = function setClickFun(id, functionName) { - if (typeof functionName === 'undefined') { - return; - } - if (typeof vertices[id] !== 'undefined') { - funs.push(function (element) { - var elem = _d2.default.select(element).select('#' + id); - if (elem !== null) { - elem.on('click', function () { - window[functionName](id); - }); - } - }); - } -}; - -var setLink = function setLink(id, linkStr) { - if (typeof linkStr === 'undefined') { - return; - } - if (typeof vertices[id] !== 'undefined') { - funs.push(function (element) { - var elem = _d2.default.select(element).select('#' + id); - if (elem !== null) { - elem.on('click', function () { - window.open(linkStr, 'newTab'); - }); - } - }); - } -}; -var getTooltip = exports.getTooltip = function getTooltip(id) { - return tooltips[id]; -}; - -/** - * Called by parser when a graph definition is found, stores the direction of the chart. - * @param dir - */ -var setClickEvent = exports.setClickEvent = function setClickEvent(id, functionName, link, tooltip) { - if (id.indexOf(',') > 0) { - id.split(',').forEach(function (id2) { - setTooltip(id2, tooltip); - setClickFun(id2, functionName); - setLink(id2, link); - }); - } else { - setTooltip(id, tooltip); - setClickFun(id, functionName); - setLink(id, link); - } -}; - -var bindFunctions = exports.bindFunctions = function bindFunctions(element) { - funs.forEach(function (fun) { - fun(element); - }); -}; -var getDirection = exports.getDirection = function getDirection() { - return direction; -}; -/** - * Retrieval function for fetching the found nodes after parsing has completed. - * @returns {{}|*|vertices} - */ -var getVertices = exports.getVertices = function getVertices() { - return vertices; -}; - -/** - * Retrieval function for fetching the found links after parsing has completed. - * @returns {{}|*|edges} - */ -var getEdges = exports.getEdges = function getEdges() { - return edges; -}; - -/** - * Retrieval function for fetching the found class definitions after parsing has completed. - * @returns {{}|*|classes} - */ -var getClasses = exports.getClasses = function getClasses() { - return classes; -}; - -var setupToolTips = function setupToolTips(element) { - var tooltipElem = _d2.default.select('.mermaidTooltip'); - if (tooltipElem[0][0] === null) { - tooltipElem = _d2.default.select('body').append('div').attr('class', 'mermaidTooltip').style('opacity', 0); - } - - var svg = _d2.default.select(element).select('svg'); - - var nodes = svg.selectAll('g.node'); - nodes.on('mouseover', function () { - var el = _d2.default.select(this); - var title = el.attr('title'); - // Dont try to draw a tooltip if no data is provided - if (title === null) { - return; - } - var rect = this.getBoundingClientRect(); - - tooltipElem.transition().duration(200).style('opacity', '.9'); - tooltipElem.html(el.attr('title')).style('left', rect.left + (rect.right - rect.left) / 2 + 'px').style('top', rect.top - 14 + document.body.scrollTop + 'px'); - el.classed('hover', true); - }).on('mouseout', function () { - tooltipElem.transition().duration(500).style('opacity', 0); - var el = _d2.default.select(this); - el.classed('hover', false); - }); -}; -funs.push(setupToolTips); - -/** - * Clears the internal graph db so that a new graph can be parsed. - */ -var clear = exports.clear = function clear() { - vertices = {}; - classes = {}; - edges = []; - funs = []; - funs.push(setupToolTips); - subGraphs = []; - subCount = 0; - tooltips = []; -}; -/** - * - * @returns {string} - */ -var defaultStyle = exports.defaultStyle = function defaultStyle() { - return 'fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;'; -}; - -/** - * Clears the internal graph db so that a new graph can be parsed. - */ -var addSubGraph = exports.addSubGraph = function addSubGraph(list, title) { - function uniq(a) { - var prims = { 'boolean': {}, 'number': {}, 'string': {} }; - var objs = []; - - return a.filter(function (item) { - var type = typeof item === 'undefined' ? 'undefined' : _typeof(item); - if (item === ' ') { - return false; - } - if (type in prims) { - return prims[type].hasOwnProperty(item) ? false : prims[type][item] = true; - } else { - return objs.indexOf(item) >= 0 ? false : objs.push(item); - } - }); - } - - var nodeList = []; - - nodeList = uniq(nodeList.concat.apply(nodeList, list)); - - var subGraph = { id: 'subGraph' + subCount, nodes: nodeList, title: title }; - subGraphs.push(subGraph); - subCount = subCount + 1; - return subGraph.id; -}; - -var getPosForId = function getPosForId(id) { - var i; - for (i = 0; i < subGraphs.length; i++) { - if (subGraphs[i].id === id) { - return i; - } - } - return -1; -}; -var secCount = -1; -var posCrossRef = []; -var indexNodes2 = function indexNodes2(id, pos) { - var nodes = subGraphs[pos].nodes; - secCount = secCount + 1; - if (secCount > 2000) { - return; - } - posCrossRef[secCount] = pos; - // Check if match - if (subGraphs[pos].id === id) { - return { - result: true, - count: 0 - }; - } - - var count = 0; - var posCount = 1; - while (count < nodes.length) { - var childPos = getPosForId(nodes[count]); - // Ignore regular nodes (pos will be -1) - if (childPos >= 0) { - var res = indexNodes2(id, childPos); - if (res.result) { - return { - result: true, - count: posCount + res.count - }; - } else { - posCount = posCount + res.count; - } - } - count = count + 1; - } - - return { - result: false, - count: posCount - }; -}; - -var getDepthFirstPos = exports.getDepthFirstPos = function getDepthFirstPos(pos) { - return posCrossRef[pos]; -}; -var indexNodes = exports.indexNodes = function indexNodes() { - secCount = -1; - if (subGraphs.length > 0) { - indexNodes2('none', subGraphs.length - 1, 0); - } -}; - -var getSubGraphs = exports.getSubGraphs = function getSubGraphs() { - return subGraphs; -}; - -exports.default = { - addVertex: addVertex, - addLink: addLink, - updateLinkInterpolate: updateLinkInterpolate, - updateLink: updateLink, - addClass: addClass, - setDirection: setDirection, - setClass: setClass, - getTooltip: getTooltip, - setClickEvent: setClickEvent, - bindFunctions: bindFunctions, - getDirection: getDirection, - getVertices: getVertices, - getEdges: getEdges, - getClasses: getClasses, - clear: clear, - defaultStyle: defaultStyle, - addSubGraph: addSubGraph, - getDepthFirstPos: getDepthFirstPos, - indexNodes: indexNodes, - getSubGraphs: getSubGraphs -}; - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.isSubstringInArray = exports.detectType = undefined; - -var _logger = __webpack_require__(0); - -/** - * @function detectType - * Detects the type of the graph text. - * ```mermaid - * graph LR - * a-->b - * b-->c - * c-->d - * d-->e - * e-->f - * f-->g - * g-->h - * ``` - * - * @param {string} text The text defining the graph - * @returns {string} A graph definition key - */ -var detectType = exports.detectType = function detectType(text) { - text = text.replace(/^\s*%%.*\n/g, '\n'); - if (text.match(/^\s*sequenceDiagram/)) { - return 'sequenceDiagram'; - } - - if (text.match(/^\s*digraph/)) { - return 'dotGraph'; - } - - if (text.match(/^\s*info/)) { - return 'info'; - } - - if (text.match(/^\s*gantt/)) { - return 'gantt'; - } - - if (text.match(/^\s*classDiagram/)) { - _logger.logger.debug('Detected classDiagram syntax'); - return 'classDiagram'; - } - - if (text.match(/^\s*gitGraph/)) { - _logger.logger.debug('Detected gitGraph syntax'); - return 'gitGraph'; - } - return 'graph'; -}; - -/** - * @function isSubstringInArray - * Detects whether a substring in present in a given array - * @param {string} str The substring to detect - * @param {array} arr The array to search - * @returns {number} the array index containing the substring or -1 if not present - **/ -var isSubstringInArray = exports.isSubstringInArray = function isSubstringInArray(str, arr) { - for (var i = 0; i < arr.length; i++) { - if (arr[i].match(str)) return i; - } - return -1; -}; - -exports.default = { - detectType: detectType, - isSubstringInArray: isSubstringInArray -}; - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process, module) { - -/* parser generated by jison 0.4.17 */ -/* - Returns a Parser object of the following structure: - - Parser: { - yy: {} - } - - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } - - - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } - - - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -var parser = function () { - var o = function o(k, v, _o, l) { - for (_o = _o || {}, l = k.length; l--; _o[k[l]] = v) {}return _o; - }, - $V0 = [1, 4], - $V1 = [1, 3], - $V2 = [1, 5], - $V3 = [1, 8, 9, 10, 11, 13, 18, 30, 46, 71, 72, 73, 74, 75, 81, 86, 88, 89, 91, 92, 94, 95, 96, 97, 98], - $V4 = [2, 2], - $V5 = [1, 12], - $V6 = [1, 13], - $V7 = [1, 14], - $V8 = [1, 15], - $V9 = [1, 31], - $Va = [1, 33], - $Vb = [1, 22], - $Vc = [1, 34], - $Vd = [1, 24], - $Ve = [1, 25], - $Vf = [1, 26], - $Vg = [1, 27], - $Vh = [1, 28], - $Vi = [1, 38], - $Vj = [1, 40], - $Vk = [1, 35], - $Vl = [1, 39], - $Vm = [1, 45], - $Vn = [1, 44], - $Vo = [1, 36], - $Vp = [1, 37], - $Vq = [1, 41], - $Vr = [1, 42], - $Vs = [1, 43], - $Vt = [1, 8, 9, 10, 11, 13, 18, 30, 32, 46, 71, 72, 73, 74, 75, 81, 86, 88, 89, 91, 92, 94, 95, 96, 97, 98], - $Vu = [1, 53], - $Vv = [1, 52], - $Vw = [1, 54], - $Vx = [1, 72], - $Vy = [1, 80], - $Vz = [1, 81], - $VA = [1, 66], - $VB = [1, 65], - $VC = [1, 85], - $VD = [1, 84], - $VE = [1, 82], - $VF = [1, 83], - $VG = [1, 73], - $VH = [1, 68], - $VI = [1, 67], - $VJ = [1, 63], - $VK = [1, 75], - $VL = [1, 76], - $VM = [1, 77], - $VN = [1, 78], - $VO = [1, 79], - $VP = [1, 70], - $VQ = [1, 69], - $VR = [8, 9, 11], - $VS = [8, 9, 11, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64], - $VT = [1, 115], - $VU = [8, 9, 10, 11, 13, 15, 18, 36, 38, 40, 42, 46, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 81, 86, 88, 89, 91, 92, 94, 95, 96, 97, 98], - $VV = [8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 30, 32, 36, 37, 38, 39, 40, 41, 42, 43, 46, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 71, 72, 73, 74, 75, 78, 81, 84, 86, 88, 89, 91, 92, 94, 95, 96, 97, 98], - $VW = [1, 117], - $VX = [1, 118], - $VY = [8, 9, 10, 11, 13, 18, 30, 32, 46, 71, 72, 73, 74, 75, 81, 86, 88, 89, 91, 92, 94, 95, 96, 97, 98], - $VZ = [8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 30, 32, 37, 39, 41, 43, 46, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 71, 72, 73, 74, 75, 78, 81, 84, 86, 88, 89, 91, 92, 94, 95, 96, 97, 98], - $V_ = [13, 18, 46, 81, 86, 88, 89, 91, 92, 94, 95, 96, 97, 98], - $V$ = [13, 18, 46, 49, 65, 81, 86, 88, 89, 91, 92, 94, 95, 96, 97, 98], - $V01 = [1, 191], - $V11 = [1, 188], - $V21 = [1, 195], - $V31 = [1, 192], - $V41 = [1, 189], - $V51 = [1, 196], - $V61 = [1, 186], - $V71 = [1, 187], - $V81 = [1, 190], - $V91 = [1, 193], - $Va1 = [1, 194], - $Vb1 = [1, 213], - $Vc1 = [8, 9, 11, 86], - $Vd1 = [8, 9, 10, 11, 46, 71, 80, 81, 84, 86, 88, 89, 90, 91, 92]; - var parser = { trace: function trace() {}, - yy: {}, - symbols_: { "error": 2, "mermaidDoc": 3, "graphConfig": 4, "document": 5, "line": 6, "statement": 7, "SEMI": 8, "NEWLINE": 9, "SPACE": 10, "EOF": 11, "GRAPH": 12, "DIR": 13, "FirstStmtSeperator": 14, "TAGEND": 15, "TAGSTART": 16, "UP": 17, "DOWN": 18, "ending": 19, "endToken": 20, "spaceList": 21, "spaceListNewline": 22, "verticeStatement": 23, "separator": 24, "styleStatement": 25, "linkStyleStatement": 26, "classDefStatement": 27, "classStatement": 28, "clickStatement": 29, "subgraph": 30, "text": 31, "end": 32, "vertex": 33, "link": 34, "alphaNum": 35, "SQS": 36, "SQE": 37, "PS": 38, "PE": 39, "(-": 40, "-)": 41, "DIAMOND_START": 42, "DIAMOND_STOP": 43, "alphaNumStatement": 44, "alphaNumToken": 45, "MINUS": 46, "linkStatement": 47, "arrowText": 48, "TESTSTR": 49, "--": 50, "ARROW_POINT": 51, "ARROW_CIRCLE": 52, "ARROW_CROSS": 53, "ARROW_OPEN": 54, "-.": 55, "DOTTED_ARROW_POINT": 56, "DOTTED_ARROW_CIRCLE": 57, "DOTTED_ARROW_CROSS": 58, "DOTTED_ARROW_OPEN": 59, "==": 60, "THICK_ARROW_POINT": 61, "THICK_ARROW_CIRCLE": 62, "THICK_ARROW_CROSS": 63, "THICK_ARROW_OPEN": 64, "PIPE": 65, "textToken": 66, "STR": 67, "commentText": 68, "commentToken": 69, "keywords": 70, "STYLE": 71, "LINKSTYLE": 72, "CLASSDEF": 73, "CLASS": 74, "CLICK": 75, "textNoTags": 76, "textNoTagsToken": 77, "DEFAULT": 78, "stylesOpt": 79, "HEX": 80, "NUM": 81, "INTERPOLATE": 82, "commentStatement": 83, "PCT": 84, "style": 85, "COMMA": 86, "styleComponent": 87, "ALPHA": 88, "COLON": 89, "UNIT": 90, "BRKT": 91, "DOT": 92, "graphCodeTokens": 93, "PUNCTUATION": 94, "UNICODE_TEXT": 95, "PLUS": 96, "EQUALS": 97, "MULT": 98, "TAG_START": 99, "TAG_END": 100, "QUOTE": 101, "$accept": 0, "$end": 1 }, - terminals_: { 2: "error", 8: "SEMI", 9: "NEWLINE", 10: "SPACE", 11: "EOF", 12: "GRAPH", 13: "DIR", 15: "TAGEND", 16: "TAGSTART", 17: "UP", 18: "DOWN", 30: "subgraph", 32: "end", 36: "SQS", 37: "SQE", 38: "PS", 39: "PE", 40: "(-", 41: "-)", 42: "DIAMOND_START", 43: "DIAMOND_STOP", 46: "MINUS", 49: "TESTSTR", 50: "--", 51: "ARROW_POINT", 52: "ARROW_CIRCLE", 53: "ARROW_CROSS", 54: "ARROW_OPEN", 55: "-.", 56: "DOTTED_ARROW_POINT", 57: "DOTTED_ARROW_CIRCLE", 58: "DOTTED_ARROW_CROSS", 59: "DOTTED_ARROW_OPEN", 60: "==", 61: "THICK_ARROW_POINT", 62: "THICK_ARROW_CIRCLE", 63: "THICK_ARROW_CROSS", 64: "THICK_ARROW_OPEN", 65: "PIPE", 67: "STR", 71: "STYLE", 72: "LINKSTYLE", 73: "CLASSDEF", 74: "CLASS", 75: "CLICK", 78: "DEFAULT", 80: "HEX", 81: "NUM", 82: "INTERPOLATE", 84: "PCT", 86: "COMMA", 88: "ALPHA", 89: "COLON", 90: "UNIT", 91: "BRKT", 92: "DOT", 94: "PUNCTUATION", 95: "UNICODE_TEXT", 96: "PLUS", 97: "EQUALS", 98: "MULT", 99: "TAG_START", 100: "TAG_END", 101: "QUOTE" }, - productions_: [0, [3, 2], [5, 0], [5, 2], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [4, 2], [4, 2], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [19, 2], [19, 1], [20, 1], [20, 1], [20, 1], [14, 1], [14, 1], [14, 2], [22, 2], [22, 2], [22, 1], [22, 1], [21, 2], [21, 1], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [7, 5], [7, 4], [24, 1], [24, 1], [24, 1], [23, 3], [23, 1], [33, 4], [33, 5], [33, 6], [33, 7], [33, 4], [33, 5], [33, 4], [33, 5], [33, 4], [33, 5], [33, 4], [33, 5], [33, 1], [33, 2], [35, 1], [35, 2], [44, 1], [44, 1], [44, 1], [44, 1], [34, 2], [34, 3], [34, 3], [34, 1], [34, 3], [34, 3], [34, 3], [34, 3], [34, 3], [34, 3], [34, 3], [34, 3], [34, 3], [34, 3], [34, 3], [34, 3], [47, 1], [47, 1], [47, 1], [47, 1], [47, 1], [47, 1], [47, 1], [47, 1], [47, 1], [47, 1], [47, 1], [47, 1], [48, 3], [31, 1], [31, 2], [31, 1], [68, 1], [68, 2], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [76, 1], [76, 2], [27, 5], [27, 5], [28, 5], [29, 5], [29, 7], [29, 5], [29, 7], [25, 5], [25, 5], [26, 5], [26, 5], [26, 9], [26, 9], [26, 7], [26, 7], [83, 3], [79, 1], [79, 3], [85, 1], [85, 2], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [69, 1], [69, 1], [66, 1], [66, 1], [66, 1], [66, 1], [66, 1], [66, 1], [66, 1], [77, 1], [77, 1], [77, 1], [77, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [93, 1], [93, 1], [93, 1], [93, 1], [93, 1], [93, 1], [93, 1], [93, 1], [93, 1], [93, 1], [93, 1], [93, 1], [93, 1], [93, 1], [93, 1]], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { - /* this == yyval */ - - var $0 = $$.length - 1; - switch (yystate) { - case 2: - this.$ = []; - break; - case 3: - - if ($$[$0] !== []) { - $$[$0 - 1].push($$[$0]); - } - this.$ = $$[$0 - 1]; - break; - case 4:case 57:case 59:case 60:case 92:case 94:case 95:case 108: - this.$ = $$[$0]; - break; - case 11: - yy.setDirection($$[$0 - 1]);this.$ = $$[$0 - 1]; - break; - case 12: - yy.setDirection("LR");this.$ = $$[$0 - 1]; - break; - case 13: - yy.setDirection("RL");this.$ = $$[$0 - 1]; - break; - case 14: - yy.setDirection("BT");this.$ = $$[$0 - 1]; - break; - case 15: - yy.setDirection("TB");this.$ = $$[$0 - 1]; - break; - case 30: - this.$ = $$[$0 - 1]; - break; - case 31:case 32:case 33:case 34:case 35: - this.$ = []; - break; - case 36: - this.$ = yy.addSubGraph($$[$0 - 1], $$[$0 - 3]); - break; - case 37: - this.$ = yy.addSubGraph($$[$0 - 1], undefined); - break; - case 41: - yy.addLink($$[$0 - 2], $$[$0], $$[$0 - 1]);this.$ = [$$[$0 - 2], $$[$0]]; - break; - case 42: - this.$ = [$$[$0]]; - break; - case 43: - this.$ = $$[$0 - 3];yy.addVertex($$[$0 - 3], $$[$0 - 1], 'square'); - break; - case 44: - this.$ = $$[$0 - 4];yy.addVertex($$[$0 - 4], $$[$0 - 2], 'square'); - break; - case 45: - this.$ = $$[$0 - 5];yy.addVertex($$[$0 - 5], $$[$0 - 2], 'circle'); - break; - case 46: - this.$ = $$[$0 - 6];yy.addVertex($$[$0 - 6], $$[$0 - 3], 'circle'); - break; - case 47: - this.$ = $$[$0 - 3];yy.addVertex($$[$0 - 3], $$[$0 - 1], 'ellipse'); - break; - case 48: - this.$ = $$[$0 - 4];yy.addVertex($$[$0 - 4], $$[$0 - 2], 'ellipse'); - break; - case 49: - this.$ = $$[$0 - 3];yy.addVertex($$[$0 - 3], $$[$0 - 1], 'round'); - break; - case 50: - this.$ = $$[$0 - 4];yy.addVertex($$[$0 - 4], $$[$0 - 2], 'round'); - break; - case 51: - this.$ = $$[$0 - 3];yy.addVertex($$[$0 - 3], $$[$0 - 1], 'diamond'); - break; - case 52: - this.$ = $$[$0 - 4];yy.addVertex($$[$0 - 4], $$[$0 - 2], 'diamond'); - break; - case 53: - this.$ = $$[$0 - 3];yy.addVertex($$[$0 - 3], $$[$0 - 1], 'odd'); - break; - case 54: - this.$ = $$[$0 - 4];yy.addVertex($$[$0 - 4], $$[$0 - 2], 'odd'); - break; - case 55: - this.$ = $$[$0];yy.addVertex($$[$0]); - break; - case 56: - this.$ = $$[$0 - 1];yy.addVertex($$[$0 - 1]); - break; - case 58:case 93:case 96:case 109: - this.$ = $$[$0 - 1] + '' + $$[$0]; - break; - case 61: - this.$ = 'v'; - break; - case 62: - this.$ = '-'; - break; - case 63: - $$[$0 - 1].text = $$[$0];this.$ = $$[$0 - 1]; - break; - case 64:case 65: - $$[$0 - 2].text = $$[$0 - 1];this.$ = $$[$0 - 2]; - break; - case 66: - this.$ = $$[$0]; - break; - case 67: - this.$ = { "type": "arrow", "stroke": "normal", "text": $$[$0 - 1] }; - break; - case 68: - this.$ = { "type": "arrow_circle", "stroke": "normal", "text": $$[$0 - 1] }; - break; - case 69: - this.$ = { "type": "arrow_cross", "stroke": "normal", "text": $$[$0 - 1] }; - break; - case 70: - this.$ = { "type": "arrow_open", "stroke": "normal", "text": $$[$0 - 1] }; - break; - case 71: - this.$ = { "type": "arrow", "stroke": "dotted", "text": $$[$0 - 1] }; - break; - case 72: - this.$ = { "type": "arrow_circle", "stroke": "dotted", "text": $$[$0 - 1] }; - break; - case 73: - this.$ = { "type": "arrow_cross", "stroke": "dotted", "text": $$[$0 - 1] }; - break; - case 74: - this.$ = { "type": "arrow_open", "stroke": "dotted", "text": $$[$0 - 1] }; - break; - case 75: - this.$ = { "type": "arrow", "stroke": "thick", "text": $$[$0 - 1] }; - break; - case 76: - this.$ = { "type": "arrow_circle", "stroke": "thick", "text": $$[$0 - 1] }; - break; - case 77: - this.$ = { "type": "arrow_cross", "stroke": "thick", "text": $$[$0 - 1] }; - break; - case 78: - this.$ = { "type": "arrow_open", "stroke": "thick", "text": $$[$0 - 1] }; - break; - case 79: - this.$ = { "type": "arrow", "stroke": "normal" }; - break; - case 80: - this.$ = { "type": "arrow_circle", "stroke": "normal" }; - break; - case 81: - this.$ = { "type": "arrow_cross", "stroke": "normal" }; - break; - case 82: - this.$ = { "type": "arrow_open", "stroke": "normal" }; - break; - case 83: - this.$ = { "type": "arrow", "stroke": "dotted" }; - break; - case 84: - this.$ = { "type": "arrow_circle", "stroke": "dotted" }; - break; - case 85: - this.$ = { "type": "arrow_cross", "stroke": "dotted" }; - break; - case 86: - this.$ = { "type": "arrow_open", "stroke": "dotted" }; - break; - case 87: - this.$ = { "type": "arrow", "stroke": "thick" }; - break; - case 88: - this.$ = { "type": "arrow_circle", "stroke": "thick" }; - break; - case 89: - this.$ = { "type": "arrow_cross", "stroke": "thick" }; - break; - case 90: - this.$ = { "type": "arrow_open", "stroke": "thick" }; - break; - case 91: - this.$ = $$[$0 - 1]; - break; - case 110:case 111: - this.$ = $$[$0 - 4];yy.addClass($$[$0 - 2], $$[$0]); - break; - case 112: - this.$ = $$[$0 - 4];yy.setClass($$[$0 - 2], $$[$0]); - break; - case 113: - this.$ = $$[$0 - 4];yy.setClickEvent($$[$0 - 2], $$[$0], undefined, undefined); - break; - case 114: - this.$ = $$[$0 - 6];yy.setClickEvent($$[$0 - 4], $$[$0 - 2], undefined, $$[$0]); - break; - case 115: - this.$ = $$[$0 - 4];yy.setClickEvent($$[$0 - 2], undefined, $$[$0], undefined); - break; - case 116: - this.$ = $$[$0 - 6];yy.setClickEvent($$[$0 - 4], undefined, $$[$0 - 2], $$[$0]); - break; - case 117: - this.$ = $$[$0 - 4];yy.addVertex($$[$0 - 2], undefined, undefined, $$[$0]); - break; - case 118:case 119:case 120: - this.$ = $$[$0 - 4];yy.updateLink($$[$0 - 2], $$[$0]); - break; - case 121:case 122: - this.$ = $$[$0 - 8];yy.updateLinkInterpolate($$[$0 - 6], $$[$0 - 2]);yy.updateLink($$[$0 - 6], $$[$0]); - break; - case 123:case 124: - this.$ = $$[$0 - 6];yy.updateLinkInterpolate($$[$0 - 4], $$[$0]); - break; - case 126: - this.$ = [$$[$0]]; - break; - case 127: - $$[$0 - 2].push($$[$0]);this.$ = $$[$0 - 2]; - break; - case 129: - this.$ = $$[$0 - 1] + $$[$0]; - break; - } - }, - table: [{ 3: 1, 4: 2, 9: $V0, 10: $V1, 12: $V2 }, { 1: [3] }, o($V3, $V4, { 5: 6 }), { 4: 7, 9: $V0, 10: $V1, 12: $V2 }, { 4: 8, 9: $V0, 10: $V1, 12: $V2 }, { 10: [1, 9] }, { 1: [2, 1], 6: 10, 7: 11, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 13: $V9, 18: $Va, 23: 16, 25: 17, 26: 18, 27: 19, 28: 20, 29: 21, 30: $Vb, 33: 23, 35: 29, 44: 30, 45: 32, 46: $Vc, 71: $Vd, 72: $Ve, 73: $Vf, 74: $Vg, 75: $Vh, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($V3, [2, 9]), o($V3, [2, 10]), { 13: [1, 46], 15: [1, 47], 16: [1, 48], 17: [1, 49], 18: [1, 50] }, o($Vt, [2, 3]), o($Vt, [2, 4]), o($Vt, [2, 5]), o($Vt, [2, 6]), o($Vt, [2, 7]), o($Vt, [2, 8]), { 8: $Vu, 9: $Vv, 11: $Vw, 24: 51 }, { 8: $Vu, 9: $Vv, 11: $Vw, 24: 55 }, { 8: $Vu, 9: $Vv, 11: $Vw, 24: 56 }, { 8: $Vu, 9: $Vv, 11: $Vw, 24: 57 }, { 8: $Vu, 9: $Vv, 11: $Vw, 24: 58 }, { 8: $Vu, 9: $Vv, 11: $Vw, 24: 59 }, { 8: $Vu, 9: $Vv, 10: $Vx, 11: $Vw, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 24: 61, 30: $VE, 31: 60, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 62, 67: $VJ, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($VR, [2, 42], { 34: 86, 47: 87, 50: [1, 88], 51: [1, 91], 52: [1, 92], 53: [1, 93], 54: [1, 94], 55: [1, 89], 56: [1, 95], 57: [1, 96], 58: [1, 97], 59: [1, 98], 60: [1, 90], 61: [1, 99], 62: [1, 100], 63: [1, 101], 64: [1, 102] }), { 10: [1, 103] }, { 10: [1, 104] }, { 10: [1, 105] }, { 10: [1, 106] }, { 10: [1, 107] }, o($VS, [2, 55], { 45: 32, 21: 113, 44: 114, 10: $VT, 13: $V9, 15: [1, 112], 18: $Va, 36: [1, 108], 38: [1, 109], 40: [1, 110], 42: [1, 111], 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }), o($VU, [2, 57]), o($VU, [2, 59]), o($VU, [2, 60]), o($VU, [2, 61]), o($VU, [2, 62]), o($VV, [2, 154]), o($VV, [2, 155]), o($VV, [2, 156]), o($VV, [2, 157]), o($VV, [2, 158]), o($VV, [2, 159]), o($VV, [2, 160]), o($VV, [2, 161]), o($VV, [2, 162]), o($VV, [2, 163]), o($VV, [2, 164]), { 8: $VW, 9: $VX, 10: $VT, 14: 116, 21: 119 }, { 8: $VW, 9: $VX, 10: $VT, 14: 120, 21: 119 }, { 8: $VW, 9: $VX, 10: $VT, 14: 121, 21: 119 }, { 8: $VW, 9: $VX, 10: $VT, 14: 122, 21: 119 }, { 8: $VW, 9: $VX, 10: $VT, 14: 123, 21: 119 }, o($Vt, [2, 30]), o($Vt, [2, 38]), o($Vt, [2, 39]), o($Vt, [2, 40]), o($Vt, [2, 31]), o($Vt, [2, 32]), o($Vt, [2, 33]), o($Vt, [2, 34]), o($Vt, [2, 35]), { 8: $Vu, 9: $Vv, 10: $Vx, 11: $Vw, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 24: 124, 30: $VE, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 125, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($VY, $V4, { 5: 126 }), o($VZ, [2, 92]), o($VZ, [2, 94]), o($VZ, [2, 143]), o($VZ, [2, 144]), o($VZ, [2, 145]), o($VZ, [2, 146]), o($VZ, [2, 147]), o($VZ, [2, 148]), o($VZ, [2, 149]), o($VZ, [2, 150]), o($VZ, [2, 151]), o($VZ, [2, 152]), o($VZ, [2, 153]), o($VZ, [2, 97]), o($VZ, [2, 98]), o($VZ, [2, 99]), o($VZ, [2, 100]), o($VZ, [2, 101]), o($VZ, [2, 102]), o($VZ, [2, 103]), o($VZ, [2, 104]), o($VZ, [2, 105]), o($VZ, [2, 106]), o($VZ, [2, 107]), { 13: $V9, 18: $Va, 33: 127, 35: 29, 44: 30, 45: 32, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($V_, [2, 66], { 48: 128, 49: [1, 129], 65: [1, 130] }), { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 31: 131, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 62, 67: $VJ, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 31: 132, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 62, 67: $VJ, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 31: 133, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 62, 67: $VJ, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($V$, [2, 79]), o($V$, [2, 80]), o($V$, [2, 81]), o($V$, [2, 82]), o($V$, [2, 83]), o($V$, [2, 84]), o($V$, [2, 85]), o($V$, [2, 86]), o($V$, [2, 87]), o($V$, [2, 88]), o($V$, [2, 89]), o($V$, [2, 90]), { 13: $V9, 18: $Va, 35: 134, 44: 30, 45: 32, 46: $Vc, 80: [1, 135], 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 78: [1, 136], 81: [1, 137] }, { 13: $V9, 18: $Va, 35: 139, 44: 30, 45: 32, 46: $Vc, 78: [1, 138], 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 13: $V9, 18: $Va, 35: 140, 44: 30, 45: 32, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 13: $V9, 18: $Va, 35: 141, 44: 30, 45: 32, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 31: 142, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 62, 67: $VJ, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 31: 144, 32: $VF, 38: [1, 143], 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 62, 67: $VJ, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 31: 145, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 62, 67: $VJ, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 31: 146, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 62, 67: $VJ, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 31: 147, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 62, 67: $VJ, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($VS, [2, 56]), o($VU, [2, 58]), o($VS, [2, 29], { 21: 148, 10: $VT }), o($V3, [2, 11]), o($V3, [2, 21]), o($V3, [2, 22]), { 9: [1, 149] }, o($V3, [2, 12]), o($V3, [2, 13]), o($V3, [2, 14]), o($V3, [2, 15]), o($VY, $V4, { 5: 150 }), o($VZ, [2, 93]), { 6: 10, 7: 11, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 13: $V9, 18: $Va, 23: 16, 25: 17, 26: 18, 27: 19, 28: 20, 29: 21, 30: $Vb, 32: [1, 151], 33: 23, 35: 29, 44: 30, 45: 32, 46: $Vc, 71: $Vd, 72: $Ve, 73: $Vf, 74: $Vg, 75: $Vh, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($VR, [2, 41]), o($V_, [2, 63], { 10: [1, 152] }), { 10: [1, 153] }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 31: 154, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 62, 67: $VJ, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 32: $VF, 45: 71, 46: $VG, 50: $VH, 51: [1, 155], 52: [1, 156], 53: [1, 157], 54: [1, 158], 60: $VI, 66: 125, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 32: $VF, 45: 71, 46: $VG, 50: $VH, 56: [1, 159], 57: [1, 160], 58: [1, 161], 59: [1, 162], 60: $VI, 66: 125, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 61: [1, 163], 62: [1, 164], 63: [1, 165], 64: [1, 166], 66: 125, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: [1, 167], 13: $V9, 18: $Va, 44: 114, 45: 32, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: [1, 168] }, { 10: [1, 169] }, { 10: [1, 170] }, { 10: [1, 171] }, { 10: [1, 172], 13: $V9, 18: $Va, 44: 114, 45: 32, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: [1, 173], 13: $V9, 18: $Va, 44: 114, 45: 32, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: [1, 174], 13: $V9, 18: $Va, 44: 114, 45: 32, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 32: $VF, 37: [1, 175], 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 125, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 31: 176, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 62, 67: $VJ, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 32: $VF, 39: [1, 177], 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 125, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 32: $VF, 41: [1, 178], 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 125, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 32: $VF, 43: [1, 179], 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 125, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 32: $VF, 37: [1, 180], 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 125, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($VS, [2, 28]), o($V3, [2, 23]), { 6: 10, 7: 11, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 13: $V9, 18: $Va, 23: 16, 25: 17, 26: 18, 27: 19, 28: 20, 29: 21, 30: $Vb, 32: [1, 181], 33: 23, 35: 29, 44: 30, 45: 32, 46: $Vc, 71: $Vd, 72: $Ve, 73: $Vf, 74: $Vg, 75: $Vh, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($Vt, [2, 37]), o($V_, [2, 65]), o($V_, [2, 64]), { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 32: $VF, 45: 71, 46: $VG, 50: $VH, 60: $VI, 65: [1, 182], 66: 125, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($V_, [2, 67]), o($V_, [2, 68]), o($V_, [2, 69]), o($V_, [2, 70]), o($V_, [2, 71]), o($V_, [2, 72]), o($V_, [2, 73]), o($V_, [2, 74]), o($V_, [2, 75]), o($V_, [2, 76]), o($V_, [2, 77]), o($V_, [2, 78]), { 10: $V01, 46: $V11, 71: $V21, 79: 183, 80: $V31, 81: $V41, 84: $V51, 85: 184, 87: 185, 88: $V61, 89: $V71, 90: $V81, 91: $V91, 92: $Va1 }, { 10: $V01, 46: $V11, 71: $V21, 79: 197, 80: $V31, 81: $V41, 84: $V51, 85: 184, 87: 185, 88: $V61, 89: $V71, 90: $V81, 91: $V91, 92: $Va1 }, { 10: $V01, 46: $V11, 71: $V21, 79: 198, 80: $V31, 81: $V41, 82: [1, 199], 84: $V51, 85: 184, 87: 185, 88: $V61, 89: $V71, 90: $V81, 91: $V91, 92: $Va1 }, { 10: $V01, 46: $V11, 71: $V21, 79: 200, 80: $V31, 81: $V41, 82: [1, 201], 84: $V51, 85: 184, 87: 185, 88: $V61, 89: $V71, 90: $V81, 91: $V91, 92: $Va1 }, { 10: $V01, 46: $V11, 71: $V21, 79: 202, 80: $V31, 81: $V41, 84: $V51, 85: 184, 87: 185, 88: $V61, 89: $V71, 90: $V81, 91: $V91, 92: $Va1 }, { 10: $V01, 46: $V11, 71: $V21, 79: 203, 80: $V31, 81: $V41, 84: $V51, 85: 184, 87: 185, 88: $V61, 89: $V71, 90: $V81, 91: $V91, 92: $Va1 }, { 13: $V9, 18: $Va, 35: 204, 44: 30, 45: 32, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 13: $V9, 18: $Va, 35: 205, 44: 30, 45: 32, 46: $Vc, 67: [1, 206], 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($VS, [2, 43], { 21: 207, 10: $VT }), { 10: $Vx, 12: $Vy, 13: $Vz, 15: $VA, 16: $VB, 17: $VC, 18: $VD, 30: $VE, 32: $VF, 39: [1, 208], 45: 71, 46: $VG, 50: $VH, 60: $VI, 66: 125, 70: 74, 71: $VK, 72: $VL, 73: $VM, 74: $VN, 75: $VO, 77: 64, 78: $VP, 81: $Vi, 84: $VQ, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, o($VS, [2, 49], { 21: 209, 10: $VT }), o($VS, [2, 47], { 21: 210, 10: $VT }), o($VS, [2, 51], { 21: 211, 10: $VT }), o($VS, [2, 53], { 21: 212, 10: $VT }), o($Vt, [2, 36]), o([10, 13, 18, 46, 81, 86, 88, 89, 91, 92, 94, 95, 96, 97, 98], [2, 91]), o($VR, [2, 117], { 86: $Vb1 }), o($Vc1, [2, 126], { 87: 214, 10: $V01, 46: $V11, 71: $V21, 80: $V31, 81: $V41, 84: $V51, 88: $V61, 89: $V71, 90: $V81, 91: $V91, 92: $Va1 }), o($Vd1, [2, 128]), o($Vd1, [2, 130]), o($Vd1, [2, 131]), o($Vd1, [2, 132]), o($Vd1, [2, 133]), o($Vd1, [2, 134]), o($Vd1, [2, 135]), o($Vd1, [2, 136]), o($Vd1, [2, 137]), o($Vd1, [2, 138]), o($Vd1, [2, 139]), o($Vd1, [2, 140]), o($VR, [2, 118], { 86: $Vb1 }), o($VR, [2, 119], { 86: $Vb1 }), { 10: [1, 215] }, o($VR, [2, 120], { 86: $Vb1 }), { 10: [1, 216] }, o($VR, [2, 110], { 86: $Vb1 }), o($VR, [2, 111], { 86: $Vb1 }), o($VR, [2, 112], { 45: 32, 44: 114, 13: $V9, 18: $Va, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }), o($VR, [2, 113], { 45: 32, 44: 114, 10: [1, 217], 13: $V9, 18: $Va, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }), o($VR, [2, 115], { 10: [1, 218] }), o($VS, [2, 44]), { 39: [1, 219] }, o($VS, [2, 50]), o($VS, [2, 48]), o($VS, [2, 52]), o($VS, [2, 54]), { 10: $V01, 46: $V11, 71: $V21, 80: $V31, 81: $V41, 84: $V51, 85: 220, 87: 185, 88: $V61, 89: $V71, 90: $V81, 91: $V91, 92: $Va1 }, o($Vd1, [2, 129]), { 13: $V9, 18: $Va, 35: 221, 44: 30, 45: 32, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 13: $V9, 18: $Va, 35: 222, 44: 30, 45: 32, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }, { 67: [1, 223] }, { 67: [1, 224] }, o($VS, [2, 45], { 21: 225, 10: $VT }), o($Vc1, [2, 127], { 87: 214, 10: $V01, 46: $V11, 71: $V21, 80: $V31, 81: $V41, 84: $V51, 88: $V61, 89: $V71, 90: $V81, 91: $V91, 92: $Va1 }), o($VR, [2, 123], { 45: 32, 44: 114, 10: [1, 226], 13: $V9, 18: $Va, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }), o($VR, [2, 124], { 45: 32, 44: 114, 10: [1, 227], 13: $V9, 18: $Va, 46: $Vc, 81: $Vi, 86: $Vj, 88: $Vk, 89: $Vl, 91: $Vm, 92: $Vn, 94: $Vo, 95: $Vp, 96: $Vq, 97: $Vr, 98: $Vs }), o($VR, [2, 114]), o($VR, [2, 116]), o($VS, [2, 46]), { 10: $V01, 46: $V11, 71: $V21, 79: 228, 80: $V31, 81: $V41, 84: $V51, 85: 184, 87: 185, 88: $V61, 89: $V71, 90: $V81, 91: $V91, 92: $Va1 }, { 10: $V01, 46: $V11, 71: $V21, 79: 229, 80: $V31, 81: $V41, 84: $V51, 85: 184, 87: 185, 88: $V61, 89: $V71, 90: $V81, 91: $V91, 92: $Va1 }, o($VR, [2, 121], { 86: $Vb1 }), o($VR, [2, 122], { 86: $Vb1 })], - defaultActions: {}, - parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var _parseError = function _parseError(msg, hash) { - this.message = msg; - this.hash = hash; - }; - - _parseError.prototype = Error; - - throw new _parseError(str, hash); - } - }, - parse: function parse(input) { - var self = this, - stack = [0], - tstack = [], - vstack = [null], - lstack = [], - table = this.table, - yytext = '', - yylineno = 0, - yyleng = 0, - recovering = 0, - TERROR = 2, - EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer; - sharedState.yy.parser = this; - if (typeof lexer.yylloc == 'undefined') { - lexer.yylloc = {}; - } - var yyloc = lexer.yylloc; - lstack.push(yyloc); - var ranges = lexer.options && lexer.options.ranges; - if (typeof sharedState.yy.parseError === 'function') { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function popStack(n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - function lex() { - var token; - token = tstack.pop() || lexer.lex() || EOF; - if (typeof token !== 'number') { - if (token instanceof Array) { - tstack = token; - token = tstack.pop(); - } - token = self.symbols_[token] || token; - } - return token; - } - var symbol, - preErrorSymbol, - state, - action, - a, - r, - yyval = {}, - p, - len, - newState, - expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == 'undefined') { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === 'undefined' || !action.length || !action[0]) { - var errStr = ''; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push('\'' + this.terminals_[p] + '\''); - } - } - if (lexer.showPosition) { - errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; - } else { - errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); - } - this.parseError(errStr, { - text: lexer.match, - token: this.terminals_[symbol] || symbol, - line: lexer.yylineno, - loc: yyloc, - expected: expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer.yytext); - lstack.push(lexer.yylloc); - stack.push(action[1]); - symbol = null; - if (!preErrorSymbol) { - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - if (recovering > 0) { - recovering--; - } - } else { - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]]; - } - r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); - if (typeof r !== 'undefined') { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } }; - - /* generated by jison-lex 0.3.4 */ - var lexer = function () { - var lexer = { - - EOF: 1, - - parseError: function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - - // resets the lexer, sets new input - setInput: function setInput(input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0, 0]; - } - this.offset = 0; - return this; - }, - - // consumes and returns one char from the input - input: function input() { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - - this._input = this._input.slice(1); - return ch; - }, - - // unshifts one char (or a string) into the input - unput: function unput(ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len - }; - - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - - // When called from action, caches matched text and appends it on next action - more: function more() { - this._more = true; - return this; - }, - - // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. - reject: function reject() { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - return this; - }, - - // retain first n characters of the match - less: function less(n) { - this.unput(this.match.slice(n)); - }, - - // displays already matched input, i.e. for error messages - pastInput: function pastInput() { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, ""); - }, - - // displays upcoming input, i.e. for error messages - upcomingInput: function upcomingInput() { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20 - next.length); - } - return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); - }, - - // displays the character position where the lexing error occurred, i.e. for error messages - showPosition: function showPosition() { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - - // test the lexed token: return FALSE when not a match, otherwise return token - test_match: function test_match(match, indexed_rule) { - var token, lines, backup; - - if (this.options.backtrack_lexer) { - // save context - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - // recover context - for (var k in backup) { - this[k] = backup[k]; - } - return false; // rule action called reject() implying the next rule should be tested instead. - } - return false; - }, - - // return next match in input - next: function next() { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - - var token, match, tempMatch, index; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; // rule action called reject() implying a rule MISmatch. - } else { - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - - // return next match that has a token - lex: function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - - // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) - begin: function begin(condition) { - this.conditionStack.push(condition); - }, - - // pop the previously active lexer condition state off the condition stack - popState: function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - - // produce the lexer rule set which is active for the currently active lexer condition state - _currentRules: function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - - // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available - topState: function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - - // alias for begin(condition) - pushState: function pushState(condition) { - this.begin(condition); - }, - - // return the number of states currently on the stack - stateStackSize: function stateStackSize() { - return this.conditionStack.length; - }, - options: {}, - performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { - var YYSTATE = YY_START; - switch ($avoiding_name_collisions) { - case 0: - /* do nothing */ - break; - case 1: - this.begin("string"); - break; - case 2: - this.popState(); - break; - case 3: - return "STR"; - break; - case 4: - return 71; - break; - case 5: - return 78; - break; - case 6: - return 72; - break; - case 7: - return 82; - break; - case 8: - return 73; - break; - case 9: - return 74; - break; - case 10: - return 75; - break; - case 11: - return 12; - break; - case 12: - return 30; - break; - case 13: - return 32; - break; - case 14: - return 13; - break; - case 15: - return 13; - break; - case 16: - return 13; - break; - case 17: - return 13; - break; - case 18: - return 13; - break; - case 19: - return 13; - break; - case 20: - return 81; - break; - case 21: - return 91; - break; - case 22: - return 89; - break; - case 23: - return 8; - break; - case 24: - return 86; - break; - case 25: - return 98; - break; - case 26: - return 16; - break; - case 27: - return 15; - break; - case 28: - return 17; - break; - case 29: - return 18; - break; - case 30: - return 53; - break; - case 31: - return 51; - break; - case 32: - return 52; - break; - case 33: - return 54; - break; - case 34: - return 58; - break; - case 35: - return 56; - break; - case 36: - return 57; - break; - case 37: - return 59; - break; - case 38: - return 58; - break; - case 39: - return 56; - break; - case 40: - return 57; - break; - case 41: - return 59; - break; - case 42: - return 63; - break; - case 43: - return 61; - break; - case 44: - return 62; - break; - case 45: - return 64; - break; - case 46: - return 50; - break; - case 47: - return 55; - break; - case 48: - return 60; - break; - case 49: - return 40; - break; - case 50: - return 41; - break; - case 51: - return 46; - break; - case 52: - return 92; - break; - case 53: - return 96; - break; - case 54: - return 84; - break; - case 55: - return 97; - break; - case 56: - return 97; - break; - case 57: - return 88; - break; - case 58: - return 94; - break; - case 59: - return 95; - break; - case 60: - return 65; - break; - case 61: - return 38; - break; - case 62: - return 39; - break; - case 63: - return 36; - break; - case 64: - return 37; - break; - case 65: - return 42; - break; - case 66: - return 43; - break; - case 67: - return 101; - break; - case 68: - return 9; - break; - case 69: - return 10; - break; - case 70: - return 11; - break; - } - }, - rules: [/^(?:%%[^\n]*)/, /^(?:["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:style\b)/, /^(?:default\b)/, /^(?:linkStyle\b)/, /^(?:interpolate\b)/, /^(?:classDef\b)/, /^(?:class\b)/, /^(?:click\b)/, /^(?:graph\b)/, /^(?:subgraph\b)/, /^(?:end\b\s*)/, /^(?:LR\b)/, /^(?:RL\b)/, /^(?:TB\b)/, /^(?:BT\b)/, /^(?:TD\b)/, /^(?:BR\b)/, /^(?:[0-9]+)/, /^(?:#)/, /^(?::)/, /^(?:;)/, /^(?:,)/, /^(?:\*)/, /^(?:<)/, /^(?:>)/, /^(?:\^)/, /^(?:v\b)/, /^(?:\s*--[x]\s*)/, /^(?:\s*-->\s*)/, /^(?:\s*--[o]\s*)/, /^(?:\s*---\s*)/, /^(?:\s*-\.-[x]\s*)/, /^(?:\s*-\.->\s*)/, /^(?:\s*-\.-[o]\s*)/, /^(?:\s*-\.-\s*)/, /^(?:\s*.-[x]\s*)/, /^(?:\s*\.->\s*)/, /^(?:\s*\.-[o]\s*)/, /^(?:\s*\.-\s*)/, /^(?:\s*==[x]\s*)/, /^(?:\s*==>\s*)/, /^(?:\s*==[o]\s*)/, /^(?:\s*==[\=]\s*)/, /^(?:\s*--\s*)/, /^(?:\s*-\.\s*)/, /^(?:\s*==\s*)/, /^(?:\(-)/, /^(?:-\))/, /^(?:-)/, /^(?:\.)/, /^(?:\+)/, /^(?:%)/, /^(?:=)/, /^(?:=)/, /^(?:[A-Za-z]+)/, /^(?:[!"#$%&'*+,-.`?\\_\/])/, /^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/, /^(?:\|)/, /^(?:\()/, /^(?:\))/, /^(?:\[)/, /^(?:\])/, /^(?:\{)/, /^(?:\})/, /^(?:")/, /^(?:\n+)/, /^(?:\s)/, /^(?:$)/], - conditions: { "string": { "rules": [2, 3], "inclusive": false }, "INITIAL": { "rules": [0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "inclusive": true } } - }; - return lexer; - }(); - parser.lexer = lexer; - function Parser() { - this.yy = {}; - } - Parser.prototype = parser;parser.Parser = Parser; - return new Parser(); -}(); - -if (true) { - exports.parser = parser; - exports.Parser = parser.Parser; - exports.parse = function () { - return parser.parse.apply(parser, arguments); - }; - exports.main = function commonjsMain(args) { - if (!args[1]) { - console.log('Usage: ' + args[0] + ' FILE'); - process.exit(1); - } - var source = __webpack_require__(4).readFileSync(__webpack_require__(5).normalize(args[1]), "utf8"); - return exports.parser.parse(source); - }; - if (typeof module !== 'undefined' && __webpack_require__.c[__webpack_require__.s] === module) { - exports.main(process.argv.slice(1)); - } -} -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2), __webpack_require__(3)(module))) - -/***/ }), -/* 11 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process, module) { - -/* parser generated by jison 0.4.17 */ -/* - Returns a Parser object of the following structure: - - Parser: { - yy: {} - } - - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } - - - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } - - - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -var parser = function () { - var o = function o(k, v, _o, l) { - for (_o = _o || {}, l = k.length; l--; _o[k[l]] = v) {}return _o; - }, - $V0 = [1, 5], - $V1 = [1, 6], - $V2 = [1, 12], - $V3 = [1, 13], - $V4 = [1, 14], - $V5 = [1, 15], - $V6 = [1, 16], - $V7 = [1, 17], - $V8 = [1, 18], - $V9 = [1, 19], - $Va = [1, 20], - $Vb = [1, 21], - $Vc = [1, 22], - $Vd = [8, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], - $Ve = [1, 37], - $Vf = [1, 33], - $Vg = [1, 34], - $Vh = [1, 35], - $Vi = [1, 36], - $Vj = [8, 10, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 32, 37, 39, 40, 45, 57, 58], - $Vk = [10, 28], - $Vl = [10, 28, 37, 57, 58], - $Vm = [2, 49], - $Vn = [1, 45], - $Vo = [1, 48], - $Vp = [1, 49], - $Vq = [1, 52], - $Vr = [2, 65], - $Vs = [1, 65], - $Vt = [1, 66], - $Vu = [1, 67], - $Vv = [1, 68], - $Vw = [1, 69], - $Vx = [1, 70], - $Vy = [1, 71], - $Vz = [1, 72], - $VA = [1, 73], - $VB = [8, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 47], - $VC = [10, 28, 37]; - var parser = { trace: function trace() {}, - yy: {}, - symbols_: { "error": 2, "expressions": 3, "graph": 4, "EOF": 5, "graphStatement": 6, "idStatement": 7, "{": 8, "stmt_list": 9, "}": 10, "strict": 11, "GRAPH": 12, "DIGRAPH": 13, "textNoTags": 14, "textNoTagsToken": 15, "ALPHA": 16, "NUM": 17, "COLON": 18, "PLUS": 19, "EQUALS": 20, "MULT": 21, "DOT": 22, "BRKT": 23, "SPACE": 24, "MINUS": 25, "keywords": 26, "stmt": 27, ";": 28, "node_stmt": 29, "edge_stmt": 30, "attr_stmt": 31, "=": 32, "subgraph": 33, "attr_list": 34, "NODE": 35, "EDGE": 36, "[": 37, "a_list": 38, "]": 39, ",": 40, "edgeRHS": 41, "node_id": 42, "edgeop": 43, "port": 44, ":": 45, "compass_pt": 46, "SUBGRAPH": 47, "n": 48, "ne": 49, "e": 50, "se": 51, "s": 52, "sw": 53, "w": 54, "nw": 55, "c": 56, "ARROW_POINT": 57, "ARROW_OPEN": 58, "$accept": 0, "$end": 1 }, - terminals_: { 2: "error", 5: "EOF", 8: "{", 10: "}", 11: "strict", 12: "GRAPH", 13: "DIGRAPH", 16: "ALPHA", 17: "NUM", 18: "COLON", 19: "PLUS", 20: "EQUALS", 21: "MULT", 22: "DOT", 23: "BRKT", 24: "SPACE", 25: "MINUS", 26: "keywords", 28: ";", 32: "=", 35: "NODE", 36: "EDGE", 37: "[", 39: "]", 40: ",", 45: ":", 47: "SUBGRAPH", 48: "n", 49: "ne", 50: "e", 51: "se", 52: "s", 53: "sw", 54: "w", 55: "nw", 56: "c", 57: "ARROW_POINT", 58: "ARROW_OPEN" }, - productions_: [0, [3, 2], [4, 5], [4, 6], [4, 4], [6, 1], [6, 1], [7, 1], [14, 1], [14, 2], [15, 1], [15, 1], [15, 1], [15, 1], [15, 1], [15, 1], [15, 1], [15, 1], [15, 1], [15, 1], [15, 1], [9, 1], [9, 3], [27, 1], [27, 1], [27, 1], [27, 3], [27, 1], [31, 2], [31, 2], [31, 2], [34, 4], [34, 3], [34, 3], [34, 2], [38, 5], [38, 5], [38, 3], [30, 3], [30, 3], [30, 2], [30, 2], [41, 3], [41, 3], [41, 2], [41, 2], [29, 2], [29, 1], [42, 2], [42, 1], [44, 4], [44, 2], [44, 2], [33, 5], [33, 4], [33, 3], [46, 1], [46, 1], [46, 1], [46, 1], [46, 1], [46, 1], [46, 1], [46, 1], [46, 1], [46, 0], [43, 1], [43, 1]], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { - /* this == yyval */ - - var $0 = $$.length - 1; - switch (yystate) { - case 1: - this.$ = $$[$0 - 1]; - break; - case 2: - this.$ = $$[$0 - 4]; - break; - case 3: - this.$ = $$[$0 - 5]; - break; - case 4: - this.$ = $$[$0 - 3]; - break; - case 8:case 10:case 11: - this.$ = $$[$0]; - break; - case 9: - this.$ = $$[$0 - 1] + '' + $$[$0]; - break; - case 12:case 13:case 14:case 15:case 16:case 18:case 19:case 20: - this.$ = $$[$0]; - break; - case 17: - this.$ = '
'; - break; - case 39: - this.$ = 'oy'; - break; - case 40: - - yy.addLink($$[$0 - 1], $$[$0].id, $$[$0].op); - this.$ = 'oy'; - break; - case 42: - - yy.addLink($$[$0 - 1], $$[$0].id, $$[$0].op); - this.$ = { op: $$[$0 - 2], id: $$[$0 - 1] }; - - break; - case 44: - - this.$ = { op: $$[$0 - 1], id: $$[$0] }; - - break; - case 48: - yy.addVertex($$[$0 - 1]);this.$ = $$[$0 - 1]; - break; - case 49: - yy.addVertex($$[$0]);this.$ = $$[$0]; - break; - case 66: - this.$ = 'arrow'; - break; - case 67: - this.$ = 'arrow_open'; - break; - } - }, - table: [{ 3: 1, 4: 2, 6: 3, 11: [1, 4], 12: $V0, 13: $V1 }, { 1: [3] }, { 5: [1, 7] }, { 7: 8, 8: [1, 9], 14: 10, 15: 11, 16: $V2, 17: $V3, 18: $V4, 19: $V5, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: $Vb, 26: $Vc }, { 6: 23, 12: $V0, 13: $V1 }, o($Vd, [2, 5]), o($Vd, [2, 6]), { 1: [2, 1] }, { 8: [1, 24] }, { 7: 30, 8: $Ve, 9: 25, 12: $Vf, 14: 10, 15: 11, 16: $V2, 17: $V3, 18: $V4, 19: $V5, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: 26, 29: 27, 30: 28, 31: 29, 33: 31, 35: $Vg, 36: $Vh, 42: 32, 47: $Vi }, o([8, 10, 28, 32, 37, 39, 40, 45, 57, 58], [2, 7], { 15: 38, 16: $V2, 17: $V3, 18: $V4, 19: $V5, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: $Vb, 26: $Vc }), o($Vj, [2, 8]), o($Vj, [2, 10]), o($Vj, [2, 11]), o($Vj, [2, 12]), o($Vj, [2, 13]), o($Vj, [2, 14]), o($Vj, [2, 15]), o($Vj, [2, 16]), o($Vj, [2, 17]), o($Vj, [2, 18]), o($Vj, [2, 19]), o($Vj, [2, 20]), { 7: 39, 14: 10, 15: 11, 16: $V2, 17: $V3, 18: $V4, 19: $V5, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: $Vb, 26: $Vc }, { 7: 30, 8: $Ve, 9: 40, 12: $Vf, 14: 10, 15: 11, 16: $V2, 17: $V3, 18: $V4, 19: $V5, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: 26, 29: 27, 30: 28, 31: 29, 33: 31, 35: $Vg, 36: $Vh, 42: 32, 47: $Vi }, { 10: [1, 41] }, { 10: [2, 21], 28: [1, 42] }, o($Vk, [2, 23]), o($Vk, [2, 24]), o($Vk, [2, 25]), o($Vl, $Vm, { 44: 44, 32: [1, 43], 45: $Vn }), o($Vk, [2, 27], { 41: 46, 43: 47, 57: $Vo, 58: $Vp }), o($Vk, [2, 47], { 43: 47, 34: 50, 41: 51, 37: $Vq, 57: $Vo, 58: $Vp }), { 34: 53, 37: $Vq }, { 34: 54, 37: $Vq }, { 34: 55, 37: $Vq }, { 7: 56, 8: [1, 57], 14: 10, 15: 11, 16: $V2, 17: $V3, 18: $V4, 19: $V5, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: $Vb, 26: $Vc }, { 7: 30, 8: $Ve, 9: 58, 12: $Vf, 14: 10, 15: 11, 16: $V2, 17: $V3, 18: $V4, 19: $V5, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: 26, 29: 27, 30: 28, 31: 29, 33: 31, 35: $Vg, 36: $Vh, 42: 32, 47: $Vi }, o($Vj, [2, 9]), { 8: [1, 59] }, { 10: [1, 60] }, { 5: [2, 4] }, { 7: 30, 8: $Ve, 9: 61, 12: $Vf, 14: 10, 15: 11, 16: $V2, 17: $V3, 18: $V4, 19: $V5, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: 26, 29: 27, 30: 28, 31: 29, 33: 31, 35: $Vg, 36: $Vh, 42: 32, 47: $Vi }, { 7: 62, 14: 10, 15: 11, 16: $V2, 17: $V3, 18: $V4, 19: $V5, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: $Vb, 26: $Vc }, o($Vl, [2, 48]), o($Vl, $Vr, { 14: 10, 15: 11, 7: 63, 46: 64, 16: $V2, 17: $V3, 18: $V4, 19: $V5, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: $Vb, 26: $Vc, 48: $Vs, 49: $Vt, 50: $Vu, 51: $Vv, 52: $Vw, 53: $Vx, 54: $Vy, 55: $Vz, 56: $VA }), o($Vk, [2, 41], { 34: 74, 37: $Vq }), { 7: 77, 8: $Ve, 14: 10, 15: 11, 16: $V2, 17: $V3, 18: $V4, 19: $V5, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: $Vb, 26: $Vc, 33: 76, 42: 75, 47: $Vi }, o($VB, [2, 66]), o($VB, [2, 67]), o($Vk, [2, 46]), o($Vk, [2, 40], { 34: 78, 37: $Vq }), { 7: 81, 14: 10, 15: 11, 16: $V2, 17: $V3, 18: $V4, 19: $V5, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: $Vb, 26: $Vc, 38: 79, 39: [1, 80] }, o($Vk, [2, 28]), o($Vk, [2, 29]), o($Vk, [2, 30]), { 8: [1, 82] }, { 7: 30, 8: $Ve, 9: 83, 12: $Vf, 14: 10, 15: 11, 16: $V2, 17: $V3, 18: $V4, 19: $V5, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: 26, 29: 27, 30: 28, 31: 29, 33: 31, 35: $Vg, 36: $Vh, 42: 32, 47: $Vi }, { 10: [1, 84] }, { 7: 30, 8: $Ve, 9: 85, 12: $Vf, 14: 10, 15: 11, 16: $V2, 17: $V3, 18: $V4, 19: $V5, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: 26, 29: 27, 30: 28, 31: 29, 33: 31, 35: $Vg, 36: $Vh, 42: 32, 47: $Vi }, { 5: [2, 2] }, { 10: [2, 22] }, o($Vk, [2, 26]), o($Vl, [2, 51], { 45: [1, 86] }), o($Vl, [2, 52]), o($Vl, [2, 56]), o($Vl, [2, 57]), o($Vl, [2, 58]), o($Vl, [2, 59]), o($Vl, [2, 60]), o($Vl, [2, 61]), o($Vl, [2, 62]), o($Vl, [2, 63]), o($Vl, [2, 64]), o($Vk, [2, 38]), o($VC, [2, 44], { 43: 47, 41: 87, 57: $Vo, 58: $Vp }), o($VC, [2, 45], { 43: 47, 41: 88, 57: $Vo, 58: $Vp }), o($Vl, $Vm, { 44: 44, 45: $Vn }), o($Vk, [2, 39]), { 39: [1, 89] }, o($Vk, [2, 34], { 34: 90, 37: $Vq }), { 32: [1, 91] }, { 7: 30, 8: $Ve, 9: 92, 12: $Vf, 14: 10, 15: 11, 16: $V2, 17: $V3, 18: $V4, 19: $V5, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: 26, 29: 27, 30: 28, 31: 29, 33: 31, 35: $Vg, 36: $Vh, 42: 32, 47: $Vi }, { 10: [1, 93] }, o($Vl, [2, 55]), { 10: [1, 94] }, o($Vl, $Vr, { 46: 95, 48: $Vs, 49: $Vt, 50: $Vu, 51: $Vv, 52: $Vw, 53: $Vx, 54: $Vy, 55: $Vz, 56: $VA }), o($VC, [2, 42]), o($VC, [2, 43]), o($Vk, [2, 33], { 34: 96, 37: $Vq }), o($Vk, [2, 32]), { 7: 97, 14: 10, 15: 11, 16: $V2, 17: $V3, 18: $V4, 19: $V5, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: $Vb, 26: $Vc }, { 10: [1, 98] }, o($Vl, [2, 54]), { 5: [2, 3] }, o($Vl, [2, 50]), o($Vk, [2, 31]), { 28: [1, 99], 39: [2, 37], 40: [1, 100] }, o($Vl, [2, 53]), { 7: 81, 14: 10, 15: 11, 16: $V2, 17: $V3, 18: $V4, 19: $V5, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: $Vb, 26: $Vc, 38: 101 }, { 7: 81, 14: 10, 15: 11, 16: $V2, 17: $V3, 18: $V4, 19: $V5, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: $Vb, 26: $Vc, 38: 102 }, { 39: [2, 35] }, { 39: [2, 36] }], - defaultActions: { 7: [2, 1], 41: [2, 4], 60: [2, 2], 61: [2, 22], 94: [2, 3], 101: [2, 35], 102: [2, 36] }, - parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var _parseError = function _parseError(msg, hash) { - this.message = msg; - this.hash = hash; - }; - - _parseError.prototype = Error; - - throw new _parseError(str, hash); - } - }, - parse: function parse(input) { - var self = this, - stack = [0], - tstack = [], - vstack = [null], - lstack = [], - table = this.table, - yytext = '', - yylineno = 0, - yyleng = 0, - recovering = 0, - TERROR = 2, - EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer; - sharedState.yy.parser = this; - if (typeof lexer.yylloc == 'undefined') { - lexer.yylloc = {}; - } - var yyloc = lexer.yylloc; - lstack.push(yyloc); - var ranges = lexer.options && lexer.options.ranges; - if (typeof sharedState.yy.parseError === 'function') { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function popStack(n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - function lex() { - var token; - token = tstack.pop() || lexer.lex() || EOF; - if (typeof token !== 'number') { - if (token instanceof Array) { - tstack = token; - token = tstack.pop(); - } - token = self.symbols_[token] || token; - } - return token; - } - var symbol, - preErrorSymbol, - state, - action, - a, - r, - yyval = {}, - p, - len, - newState, - expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == 'undefined') { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === 'undefined' || !action.length || !action[0]) { - var errStr = ''; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push('\'' + this.terminals_[p] + '\''); - } - } - if (lexer.showPosition) { - errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; - } else { - errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); - } - this.parseError(errStr, { - text: lexer.match, - token: this.terminals_[symbol] || symbol, - line: lexer.yylineno, - loc: yyloc, - expected: expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer.yytext); - lstack.push(lexer.yylloc); - stack.push(action[1]); - symbol = null; - if (!preErrorSymbol) { - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - if (recovering > 0) { - recovering--; - } - } else { - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]]; - } - r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); - if (typeof r !== 'undefined') { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } }; - - /* generated by jison-lex 0.3.4 */ - var lexer = function () { - var lexer = { - - EOF: 1, - - parseError: function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - - // resets the lexer, sets new input - setInput: function setInput(input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0, 0]; - } - this.offset = 0; - return this; - }, - - // consumes and returns one char from the input - input: function input() { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - - this._input = this._input.slice(1); - return ch; - }, - - // unshifts one char (or a string) into the input - unput: function unput(ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len - }; - - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - - // When called from action, caches matched text and appends it on next action - more: function more() { - this._more = true; - return this; - }, - - // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. - reject: function reject() { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - return this; - }, - - // retain first n characters of the match - less: function less(n) { - this.unput(this.match.slice(n)); - }, - - // displays already matched input, i.e. for error messages - pastInput: function pastInput() { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, ""); - }, - - // displays upcoming input, i.e. for error messages - upcomingInput: function upcomingInput() { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20 - next.length); - } - return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); - }, - - // displays the character position where the lexing error occurred, i.e. for error messages - showPosition: function showPosition() { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - - // test the lexed token: return FALSE when not a match, otherwise return token - test_match: function test_match(match, indexed_rule) { - var token, lines, backup; - - if (this.options.backtrack_lexer) { - // save context - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - // recover context - for (var k in backup) { - this[k] = backup[k]; - } - return false; // rule action called reject() implying the next rule should be tested instead. - } - return false; - }, - - // return next match in input - next: function next() { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - - var token, match, tempMatch, index; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; // rule action called reject() implying a rule MISmatch. - } else { - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - - // return next match that has a token - lex: function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - - // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) - begin: function begin(condition) { - this.conditionStack.push(condition); - }, - - // pop the previously active lexer condition state off the condition stack - popState: function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - - // produce the lexer rule set which is active for the currently active lexer condition state - _currentRules: function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - - // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available - topState: function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - - // alias for begin(condition) - pushState: function pushState(condition) { - this.begin(condition); - }, - - // return the number of states currently on the stack - stateStackSize: function stateStackSize() { - return this.conditionStack.length; - }, - options: {}, - performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { - var YYSTATE = YY_START; - switch ($avoiding_name_collisions) { - case 0: - return 'STYLE'; - break; - case 1: - return 'LINKSTYLE'; - break; - case 2: - return 'CLASSDEF'; - break; - case 3: - return 'CLASS'; - break; - case 4: - return 'CLICK'; - break; - case 5: - return 12; - break; - case 6: - return 13; - break; - case 7: - return 47; - break; - case 8: - return 35; - break; - case 9: - return 36; - break; - case 10: - return 'DIR'; - break; - case 11: - return 'DIR'; - break; - case 12: - return 'DIR'; - break; - case 13: - return 'DIR'; - break; - case 14: - return 'DIR'; - break; - case 15: - return 'DIR'; - break; - case 16: - return 17; - break; - case 17: - return 23; - break; - case 18: - return 18; - break; - case 19: - return 28; - break; - case 20: - return 40; - break; - case 21: - return 32; - break; - case 22: - return 21; - break; - case 23: - return 22; - break; - case 24: - return 'ARROW_CROSS'; - break; - case 25: - return 57; - break; - case 26: - return 'ARROW_CIRCLE'; - break; - case 27: - return 58; - break; - case 28: - return 25; - break; - case 29: - return 19; - break; - case 30: - return 20; - break; - case 31: - return 16; - break; - case 32: - return 'PIPE'; - break; - case 33: - return 'PS'; - break; - case 34: - return 'PE'; - break; - case 35: - return 37; - break; - case 36: - return 39; - break; - case 37: - return 8; - break; - case 38: - return 10; - break; - case 39: - return 'QUOTE'; - break; - case 40: - return 24; - break; - case 41: - return 'NEWLINE'; - break; - case 42: - return 5; - break; - } - }, - rules: [/^(?:style\b)/, /^(?:linkStyle\b)/, /^(?:classDef\b)/, /^(?:class\b)/, /^(?:click\b)/, /^(?:graph\b)/, /^(?:digraph\b)/, /^(?:subgraph\b)/, /^(?:node\b)/, /^(?:edge\b)/, /^(?:LR\b)/, /^(?:RL\b)/, /^(?:TB\b)/, /^(?:BT\b)/, /^(?:TD\b)/, /^(?:BR\b)/, /^(?:[0-9])/, /^(?:#)/, /^(?::)/, /^(?:;)/, /^(?:,)/, /^(?:=)/, /^(?:\*)/, /^(?:\.)/, /^(?:--[x])/, /^(?:->)/, /^(?:--[o])/, /^(?:--)/, /^(?:-)/, /^(?:\+)/, /^(?:=)/, /^(?:[\u0021-\u0027\u002A-\u002E\u003F\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC_])/, /^(?:\|)/, /^(?:\()/, /^(?:\))/, /^(?:\[)/, /^(?:\])/, /^(?:\{)/, /^(?:\})/, /^(?:")/, /^(?:\s)/, /^(?:\n)/, /^(?:$)/], - conditions: { "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42], "inclusive": true } } - }; - return lexer; - }(); - parser.lexer = lexer; - function Parser() { - this.yy = {}; - } - Parser.prototype = parser;parser.Parser = Parser; - return new Parser(); -}(); - -if (true) { - exports.parser = parser; - exports.Parser = parser.Parser; - exports.parse = function () { - return parser.parse.apply(parser, arguments); - }; - exports.main = function commonjsMain(args) { - if (!args[1]) { - console.log('Usage: ' + args[0] + ' FILE'); - process.exit(1); - } - var source = __webpack_require__(4).readFileSync(__webpack_require__(5).normalize(args[1]), "utf8"); - return exports.parser.parse(source); - }; - if (typeof module !== 'undefined' && __webpack_require__.c[__webpack_require__.s] === module) { - exports.main(process.argv.slice(1)); - } -} -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2), __webpack_require__(3)(module))) - -/***/ }), -/* 12 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process, module) { - -/* parser generated by jison 0.4.17 */ -/* - Returns a Parser object of the following structure: - - Parser: { - yy: {} - } - - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } - - - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } - - - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -var parser = function () { - var o = function o(k, v, _o, l) { - for (_o = _o || {}, l = k.length; l--; _o[k[l]] = v) {}return _o; - }, - $V0 = [1, 2], - $V1 = [1, 3], - $V2 = [1, 4], - $V3 = [2, 4], - $V4 = [1, 9], - $V5 = [1, 11], - $V6 = [1, 12], - $V7 = [1, 14], - $V8 = [1, 15], - $V9 = [1, 17], - $Va = [1, 18], - $Vb = [1, 19], - $Vc = [1, 20], - $Vd = [1, 21], - $Ve = [1, 23], - $Vf = [1, 24], - $Vg = [1, 4, 5, 10, 15, 16, 18, 20, 21, 22, 23, 24, 25, 27, 28, 39], - $Vh = [1, 32], - $Vi = [4, 5, 10, 15, 16, 18, 20, 21, 22, 23, 25, 28, 39], - $Vj = [4, 5, 10, 15, 16, 18, 20, 21, 22, 23, 25, 27, 28, 39], - $Vk = [37, 38, 39]; - var parser = { trace: function trace() {}, - yy: {}, - symbols_: { "error": 2, "start": 3, "SPACE": 4, "NL": 5, "SD": 6, "document": 7, "line": 8, "statement": 9, "participant": 10, "actor": 11, "AS": 12, "restOfLine": 13, "signal": 14, "activate": 15, "deactivate": 16, "note_statement": 17, "title": 18, "text2": 19, "loop": 20, "end": 21, "opt": 22, "alt": 23, "else": 24, "par": 25, "par_sections": 26, "and": 27, "note": 28, "placement": 29, "over": 30, "actor_pair": 31, "spaceList": 32, ",": 33, "left_of": 34, "right_of": 35, "signaltype": 36, "+": 37, "-": 38, "ACTOR": 39, "SOLID_OPEN_ARROW": 40, "DOTTED_OPEN_ARROW": 41, "SOLID_ARROW": 42, "DOTTED_ARROW": 43, "SOLID_CROSS": 44, "DOTTED_CROSS": 45, "TXT": 46, "$accept": 0, "$end": 1 }, - terminals_: { 2: "error", 4: "SPACE", 5: "NL", 6: "SD", 10: "participant", 12: "AS", 13: "restOfLine", 15: "activate", 16: "deactivate", 18: "title", 20: "loop", 21: "end", 22: "opt", 23: "alt", 24: "else", 25: "par", 27: "and", 28: "note", 30: "over", 33: ",", 34: "left_of", 35: "right_of", 37: "+", 38: "-", 39: "ACTOR", 40: "SOLID_OPEN_ARROW", 41: "DOTTED_OPEN_ARROW", 42: "SOLID_ARROW", 43: "DOTTED_ARROW", 44: "SOLID_CROSS", 45: "DOTTED_CROSS", 46: "TXT" }, - productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [8, 1], [8, 1], [9, 5], [9, 3], [9, 2], [9, 3], [9, 3], [9, 2], [9, 3], [9, 4], [9, 4], [9, 7], [9, 4], [26, 1], [26, 4], [17, 4], [17, 4], [32, 2], [32, 1], [31, 3], [31, 1], [29, 1], [29, 1], [14, 5], [14, 5], [14, 4], [11, 1], [36, 1], [36, 1], [36, 1], [36, 1], [36, 1], [36, 1], [19, 1]], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { - /* this == yyval */ - - var $0 = $$.length - 1; - switch (yystate) { - case 3: - yy.apply($$[$0]);return $$[$0]; - break; - case 4: - this.$ = []; - break; - case 5: - $$[$0 - 1].push($$[$0]);this.$ = $$[$0 - 1]; - break; - case 6:case 7: - this.$ = $$[$0]; - break; - case 8: - this.$ = []; - break; - case 9: - $$[$0 - 3].description = $$[$0 - 1];this.$ = $$[$0 - 3]; - break; - case 10: - this.$ = $$[$0 - 1]; - break; - case 12: - this.$ = { type: 'activeStart', signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] }; - break; - case 13: - this.$ = { type: 'activeEnd', signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 1] }; - break; - case 15: - this.$ = [{ type: 'setTitle', text: $$[$0 - 1] }]; - break; - case 16: - - $$[$0 - 1].unshift({ type: 'loopStart', loopText: $$[$0 - 2], signalType: yy.LINETYPE.LOOP_START }); - $$[$0 - 1].push({ type: 'loopEnd', loopText: $$[$0 - 2], signalType: yy.LINETYPE.LOOP_END }); - this.$ = $$[$0 - 1]; - break; - case 17: - - $$[$0 - 1].unshift({ type: 'optStart', optText: $$[$0 - 2], signalType: yy.LINETYPE.OPT_START }); - $$[$0 - 1].push({ type: 'optEnd', optText: $$[$0 - 2], signalType: yy.LINETYPE.OPT_END }); - this.$ = $$[$0 - 1]; - break; - case 18: - - // Alt start - $$[$0 - 4].unshift({ type: 'altStart', altText: $$[$0 - 5], signalType: yy.LINETYPE.ALT_START }); - // Content in alt is already in $$[$0-4] - // Else - $$[$0 - 4].push({ type: 'else', altText: $$[$0 - 2], signalType: yy.LINETYPE.ALT_ELSE }); - // Content in other alt - $$[$0 - 4] = $$[$0 - 4].concat($$[$0 - 1]); - // End - $$[$0 - 4].push({ type: 'altEnd', signalType: yy.LINETYPE.ALT_END }); - - this.$ = $$[$0 - 4]; - break; - case 19: - - // Parallel start - $$[$0 - 1].unshift({ type: 'parStart', parText: $$[$0 - 2], signalType: yy.LINETYPE.PAR_START }); - // Content in par is already in $$[$0-1] - // End - $$[$0 - 1].push({ type: 'parEnd', signalType: yy.LINETYPE.PAR_END }); - this.$ = $$[$0 - 1]; - break; - case 21: - this.$ = $$[$0 - 3].concat([{ type: 'and', parText: $$[$0 - 1], signalType: yy.LINETYPE.PAR_AND }, $$[$0]]); - break; - case 22: - - this.$ = [$$[$0 - 1], { type: 'addNote', placement: $$[$0 - 2], actor: $$[$0 - 1].actor, text: $$[$0] }]; - break; - case 23: - - // Coerce actor_pair into a [to, from, ...] array - $$[$0 - 2] = [].concat($$[$0 - 1], $$[$0 - 1]).slice(0, 2); - $$[$0 - 2][0] = $$[$0 - 2][0].actor; - $$[$0 - 2][1] = $$[$0 - 2][1].actor; - this.$ = [$$[$0 - 1], { type: 'addNote', placement: yy.PLACEMENT.OVER, actor: $$[$0 - 2].slice(0, 2), text: $$[$0] }]; - break; - case 26: - this.$ = [$$[$0 - 2], $$[$0]]; - break; - case 27: - this.$ = $$[$0]; - break; - case 28: - this.$ = yy.PLACEMENT.LEFTOF; - break; - case 29: - this.$ = yy.PLACEMENT.RIGHTOF; - break; - case 30: - this.$ = [$$[$0 - 4], $$[$0 - 1], { type: 'addMessage', from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0] }, { type: 'activeStart', signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] }]; - break; - case 31: - this.$ = [$$[$0 - 4], $$[$0 - 1], { type: 'addMessage', from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0] }, { type: 'activeEnd', signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 4] }]; - break; - case 32: - this.$ = [$$[$0 - 3], $$[$0 - 1], { type: 'addMessage', from: $$[$0 - 3].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 2], msg: $$[$0] }]; - break; - case 33: - this.$ = { type: 'addActor', actor: $$[$0] }; - break; - case 34: - this.$ = yy.LINETYPE.SOLID_OPEN; - break; - case 35: - this.$ = yy.LINETYPE.DOTTED_OPEN; - break; - case 36: - this.$ = yy.LINETYPE.SOLID; - break; - case 37: - this.$ = yy.LINETYPE.DOTTED; - break; - case 38: - this.$ = yy.LINETYPE.SOLID_CROSS; - break; - case 39: - this.$ = yy.LINETYPE.DOTTED_CROSS; - break; - case 40: - this.$ = $$[$0].substring(1).trim().replace(/\\n/gm, "\n"); - break; - } - }, - table: [{ 3: 1, 4: $V0, 5: $V1, 6: $V2 }, { 1: [3] }, { 3: 5, 4: $V0, 5: $V1, 6: $V2 }, { 3: 6, 4: $V0, 5: $V1, 6: $V2 }, o([1, 4, 5, 10, 15, 16, 18, 20, 22, 23, 25, 28, 39], $V3, { 7: 7 }), { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3], 4: $V4, 5: $V5, 8: 8, 9: 10, 10: $V6, 11: 22, 14: 13, 15: $V7, 16: $V8, 17: 16, 18: $V9, 20: $Va, 22: $Vb, 23: $Vc, 25: $Vd, 28: $Ve, 39: $Vf }, o($Vg, [2, 5]), { 9: 25, 10: $V6, 11: 22, 14: 13, 15: $V7, 16: $V8, 17: 16, 18: $V9, 20: $Va, 22: $Vb, 23: $Vc, 25: $Vd, 28: $Ve, 39: $Vf }, o($Vg, [2, 7]), o($Vg, [2, 8]), { 11: 26, 39: $Vf }, { 5: [1, 27] }, { 11: 28, 39: $Vf }, { 11: 29, 39: $Vf }, { 5: [1, 30] }, { 19: 31, 46: $Vh }, { 13: [1, 33] }, { 13: [1, 34] }, { 13: [1, 35] }, { 13: [1, 36] }, { 36: 37, 40: [1, 38], 41: [1, 39], 42: [1, 40], 43: [1, 41], 44: [1, 42], 45: [1, 43] }, { 29: 44, 30: [1, 45], 34: [1, 46], 35: [1, 47] }, o([5, 12, 33, 40, 41, 42, 43, 44, 45, 46], [2, 33]), o($Vg, [2, 6]), { 5: [1, 49], 12: [1, 48] }, o($Vg, [2, 11]), { 5: [1, 50] }, { 5: [1, 51] }, o($Vg, [2, 14]), { 5: [1, 52] }, { 5: [2, 40] }, o($Vi, $V3, { 7: 53 }), o($Vi, $V3, { 7: 54 }), o([4, 5, 10, 15, 16, 18, 20, 22, 23, 24, 25, 28, 39], $V3, { 7: 55 }), o($Vj, $V3, { 26: 56, 7: 57 }), { 11: 60, 37: [1, 58], 38: [1, 59], 39: $Vf }, o($Vk, [2, 34]), o($Vk, [2, 35]), o($Vk, [2, 36]), o($Vk, [2, 37]), o($Vk, [2, 38]), o($Vk, [2, 39]), { 11: 61, 39: $Vf }, { 11: 63, 31: 62, 39: $Vf }, { 39: [2, 28] }, { 39: [2, 29] }, { 13: [1, 64] }, o($Vg, [2, 10]), o($Vg, [2, 12]), o($Vg, [2, 13]), o($Vg, [2, 15]), { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: $V6, 11: 22, 14: 13, 15: $V7, 16: $V8, 17: 16, 18: $V9, 20: $Va, 21: [1, 65], 22: $Vb, 23: $Vc, 25: $Vd, 28: $Ve, 39: $Vf }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: $V6, 11: 22, 14: 13, 15: $V7, 16: $V8, 17: 16, 18: $V9, 20: $Va, 21: [1, 66], 22: $Vb, 23: $Vc, 25: $Vd, 28: $Ve, 39: $Vf }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: $V6, 11: 22, 14: 13, 15: $V7, 16: $V8, 17: 16, 18: $V9, 20: $Va, 22: $Vb, 23: $Vc, 24: [1, 67], 25: $Vd, 28: $Ve, 39: $Vf }, { 21: [1, 68] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: $V6, 11: 22, 14: 13, 15: $V7, 16: $V8, 17: 16, 18: $V9, 20: $Va, 21: [2, 20], 22: $Vb, 23: $Vc, 25: $Vd, 27: [1, 69], 28: $Ve, 39: $Vf }, { 11: 70, 39: $Vf }, { 11: 71, 39: $Vf }, { 19: 72, 46: $Vh }, { 19: 73, 46: $Vh }, { 19: 74, 46: $Vh }, { 33: [1, 75], 46: [2, 27] }, { 5: [1, 76] }, o($Vg, [2, 16]), o($Vg, [2, 17]), { 13: [1, 77] }, o($Vg, [2, 19]), { 13: [1, 78] }, { 19: 79, 46: $Vh }, { 19: 80, 46: $Vh }, { 5: [2, 32] }, { 5: [2, 22] }, { 5: [2, 23] }, { 11: 81, 39: $Vf }, o($Vg, [2, 9]), o($Vi, $V3, { 7: 82 }), o($Vj, $V3, { 7: 57, 26: 83 }), { 5: [2, 30] }, { 5: [2, 31] }, { 46: [2, 26] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: $V6, 11: 22, 14: 13, 15: $V7, 16: $V8, 17: 16, 18: $V9, 20: $Va, 21: [1, 84], 22: $Vb, 23: $Vc, 25: $Vd, 28: $Ve, 39: $Vf }, { 21: [2, 21] }, o($Vg, [2, 18])], - defaultActions: { 5: [2, 1], 6: [2, 2], 32: [2, 40], 46: [2, 28], 47: [2, 29], 72: [2, 32], 73: [2, 22], 74: [2, 23], 79: [2, 30], 80: [2, 31], 81: [2, 26], 83: [2, 21] }, - parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var _parseError = function _parseError(msg, hash) { - this.message = msg; - this.hash = hash; - }; - - _parseError.prototype = Error; - - throw new _parseError(str, hash); - } - }, - parse: function parse(input) { - var self = this, - stack = [0], - tstack = [], - vstack = [null], - lstack = [], - table = this.table, - yytext = '', - yylineno = 0, - yyleng = 0, - recovering = 0, - TERROR = 2, - EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer; - sharedState.yy.parser = this; - if (typeof lexer.yylloc == 'undefined') { - lexer.yylloc = {}; - } - var yyloc = lexer.yylloc; - lstack.push(yyloc); - var ranges = lexer.options && lexer.options.ranges; - if (typeof sharedState.yy.parseError === 'function') { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function popStack(n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - function lex() { - var token; - token = tstack.pop() || lexer.lex() || EOF; - if (typeof token !== 'number') { - if (token instanceof Array) { - tstack = token; - token = tstack.pop(); - } - token = self.symbols_[token] || token; - } - return token; - } - var symbol, - preErrorSymbol, - state, - action, - a, - r, - yyval = {}, - p, - len, - newState, - expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == 'undefined') { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === 'undefined' || !action.length || !action[0]) { - var errStr = ''; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push('\'' + this.terminals_[p] + '\''); - } - } - if (lexer.showPosition) { - errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; - } else { - errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); - } - this.parseError(errStr, { - text: lexer.match, - token: this.terminals_[symbol] || symbol, - line: lexer.yylineno, - loc: yyloc, - expected: expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer.yytext); - lstack.push(lexer.yylloc); - stack.push(action[1]); - symbol = null; - if (!preErrorSymbol) { - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - if (recovering > 0) { - recovering--; - } - } else { - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]]; - } - r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); - if (typeof r !== 'undefined') { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } }; - - /* generated by jison-lex 0.3.4 */ - var lexer = function () { - var lexer = { - - EOF: 1, - - parseError: function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - - // resets the lexer, sets new input - setInput: function setInput(input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0, 0]; - } - this.offset = 0; - return this; - }, - - // consumes and returns one char from the input - input: function input() { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - - this._input = this._input.slice(1); - return ch; - }, - - // unshifts one char (or a string) into the input - unput: function unput(ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len - }; - - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - - // When called from action, caches matched text and appends it on next action - more: function more() { - this._more = true; - return this; - }, - - // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. - reject: function reject() { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - return this; - }, - - // retain first n characters of the match - less: function less(n) { - this.unput(this.match.slice(n)); - }, - - // displays already matched input, i.e. for error messages - pastInput: function pastInput() { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, ""); - }, - - // displays upcoming input, i.e. for error messages - upcomingInput: function upcomingInput() { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20 - next.length); - } - return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); - }, - - // displays the character position where the lexing error occurred, i.e. for error messages - showPosition: function showPosition() { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - - // test the lexed token: return FALSE when not a match, otherwise return token - test_match: function test_match(match, indexed_rule) { - var token, lines, backup; - - if (this.options.backtrack_lexer) { - // save context - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - // recover context - for (var k in backup) { - this[k] = backup[k]; - } - return false; // rule action called reject() implying the next rule should be tested instead. - } - return false; - }, - - // return next match in input - next: function next() { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - - var token, match, tempMatch, index; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; // rule action called reject() implying a rule MISmatch. - } else { - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - - // return next match that has a token - lex: function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - - // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) - begin: function begin(condition) { - this.conditionStack.push(condition); - }, - - // pop the previously active lexer condition state off the condition stack - popState: function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - - // produce the lexer rule set which is active for the currently active lexer condition state - _currentRules: function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - - // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available - topState: function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - - // alias for begin(condition) - pushState: function pushState(condition) { - this.begin(condition); - }, - - // return the number of states currently on the stack - stateStackSize: function stateStackSize() { - return this.conditionStack.length; - }, - options: { "case-insensitive": true }, - performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { - var YYSTATE = YY_START; - switch ($avoiding_name_collisions) { - case 0: - return 5; - break; - case 1: - /* skip all whitespace */ - break; - case 2: - /* skip same-line whitespace */ - break; - case 3: - /* skip comments */ - break; - case 4: - /* skip comments */ - break; - case 5: - this.begin('ID');return 10; - break; - case 6: - this.begin('ALIAS');return 39; - break; - case 7: - this.popState();this.popState();this.begin('LINE');return 12; - break; - case 8: - this.popState();this.popState();return 5; - break; - case 9: - this.begin('LINE');return 20; - break; - case 10: - this.begin('LINE');return 22; - break; - case 11: - this.begin('LINE');return 23; - break; - case 12: - this.begin('LINE');return 24; - break; - case 13: - this.begin('LINE');return 25; - break; - case 14: - this.begin('LINE');return 27; - break; - case 15: - this.popState();return 13; - break; - case 16: - return 21; - break; - case 17: - return 34; - break; - case 18: - return 35; - break; - case 19: - return 30; - break; - case 20: - return 28; - break; - case 21: - this.begin('ID');return 15; - break; - case 22: - this.begin('ID');return 16; - break; - case 23: - return 18; - break; - case 24: - return 6; - break; - case 25: - return 33; - break; - case 26: - return 5; - break; - case 27: - yy_.yytext = yy_.yytext.trim();return 39; - break; - case 28: - return 42; - break; - case 29: - return 43; - break; - case 30: - return 40; - break; - case 31: - return 41; - break; - case 32: - return 44; - break; - case 33: - return 45; - break; - case 34: - return 46; - break; - case 35: - return 37; - break; - case 36: - return 38; - break; - case 37: - return 5; - break; - case 38: - return 'INVALID'; - break; - } - }, - rules: [/^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:((?!\n)\s)+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:participant\b)/i, /^(?:[^\->:\n,;]+?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i, /^(?:as\b)/i, /^(?:(?:))/i, /^(?:loop\b)/i, /^(?:opt\b)/i, /^(?:alt\b)/i, /^(?:else\b)/i, /^(?:par\b)/i, /^(?:and\b)/i, /^(?:[^#\n;]*)/i, /^(?:end\b)/i, /^(?:left of\b)/i, /^(?:right of\b)/i, /^(?:over\b)/i, /^(?:note\b)/i, /^(?:activate\b)/i, /^(?:deactivate\b)/i, /^(?:title\b)/i, /^(?:sequenceDiagram\b)/i, /^(?:,)/i, /^(?:;)/i, /^(?:[^\+\->:\n,;]+)/i, /^(?:->>)/i, /^(?:-->>)/i, /^(?:->)/i, /^(?:-->)/i, /^(?:-[x])/i, /^(?:--[x])/i, /^(?::[^#\n;]+)/i, /^(?:\+)/i, /^(?:-)/i, /^(?:$)/i, /^(?:.)/i], - conditions: { "LINE": { "rules": [2, 3, 15], "inclusive": false }, "ALIAS": { "rules": [2, 3, 7, 8], "inclusive": false }, "ID": { "rules": [2, 3, 6], "inclusive": false }, "INITIAL": { "rules": [0, 1, 3, 4, 5, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38], "inclusive": true } } - }; - return lexer; - }(); - parser.lexer = lexer; - function Parser() { - this.yy = {}; - } - Parser.prototype = parser;parser.Parser = Parser; - return new Parser(); -}(); - -if (true) { - exports.parser = parser; - exports.Parser = parser.Parser; - exports.parse = function () { - return parser.parse.apply(parser, arguments); - }; - exports.main = function commonjsMain(args) { - if (!args[1]) { - console.log('Usage: ' + args[0] + ' FILE'); - process.exit(1); - } - var source = __webpack_require__(4).readFileSync(__webpack_require__(5).normalize(args[1]), "utf8"); - return exports.parser.parse(source); - }; - if (typeof module !== 'undefined' && __webpack_require__.c[__webpack_require__.s] === module) { - exports.main(process.argv.slice(1)); - } -} -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2), __webpack_require__(3)(module))) - -/***/ }), -/* 13 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.apply = exports.setTitle = exports.addNote = exports.PLACEMENT = exports.ARROWTYPE = exports.LINETYPE = exports.clear = exports.getTitle = exports.getActorKeys = exports.getActor = exports.getActors = exports.getMessages = exports.addSignal = exports.addMessage = exports.addActor = undefined; - -var _logger = __webpack_require__(0); - -var actors = {}; -var messages = []; -var notes = []; -var title = ''; - -var addActor = exports.addActor = function addActor(id, name, description) { - // Don't allow description nulling - var old = actors[id]; - if (old && name === old.name && description == null) return; - - // Don't allow null descriptions, either - if (description == null) description = name; - - actors[id] = { name: name, description: description }; -}; - -var addMessage = exports.addMessage = function addMessage(idFrom, idTo, message, answer) { - messages.push({ from: idFrom, to: idTo, message: message, answer: answer }); -}; - -var addSignal = exports.addSignal = function addSignal(idFrom, idTo, message, messageType) { - _logger.logger.debug('Adding message from=' + idFrom + ' to=' + idTo + ' message=' + message + ' type=' + messageType); - messages.push({ from: idFrom, to: idTo, message: message, type: messageType }); -}; - -var getMessages = exports.getMessages = function getMessages() { - return messages; -}; - -var getActors = exports.getActors = function getActors() { - return actors; -}; -var getActor = exports.getActor = function getActor(id) { - return actors[id]; -}; -var getActorKeys = exports.getActorKeys = function getActorKeys() { - return Object.keys(actors); -}; -var getTitle = exports.getTitle = function getTitle() { - return title; -}; - -var clear = exports.clear = function clear() { - actors = {}; - messages = []; -}; - -var LINETYPE = exports.LINETYPE = { - SOLID: 0, - DOTTED: 1, - NOTE: 2, - SOLID_CROSS: 3, - DOTTED_CROSS: 4, - SOLID_OPEN: 5, - DOTTED_OPEN: 6, - LOOP_START: 10, - LOOP_END: 11, - ALT_START: 12, - ALT_ELSE: 13, - ALT_END: 14, - OPT_START: 15, - OPT_END: 16, - ACTIVE_START: 17, - ACTIVE_END: 18, - PAR_START: 19, - PAR_AND: 20, - PAR_END: 21 -}; - -var ARROWTYPE = exports.ARROWTYPE = { - FILLED: 0, - OPEN: 1 -}; - -var PLACEMENT = exports.PLACEMENT = { - LEFTOF: 0, - RIGHTOF: 1, - OVER: 2 -}; - -var addNote = exports.addNote = function addNote(actor, placement, message) { - var note = { actor: actor, placement: placement, message: message - - // Coerce actor into a [to, from, ...] array - };var actors = [].concat(actor, actor); - - notes.push(note); - messages.push({ from: actors[0], to: actors[1], message: message, type: LINETYPE.NOTE, placement: placement }); -}; - -var setTitle = exports.setTitle = function setTitle(titleText) { - title = titleText; -}; - -var apply = exports.apply = function apply(param) { - if (param instanceof Array) { - param.forEach(function (item) { - apply(item); - }); - } else { - switch (param.type) { - case 'addActor': - addActor(param.actor, param.actor, param.description); - break; - case 'activeStart': - addSignal(param.actor, undefined, undefined, param.signalType); - break; - case 'activeEnd': - addSignal(param.actor, undefined, undefined, param.signalType); - break; - case 'addNote': - addNote(param.actor, param.placement, param.text); - break; - case 'addMessage': - addSignal(param.from, param.to, param.msg, param.signalType); - break; - case 'loopStart': - addSignal(undefined, undefined, param.loopText, param.signalType); - break; - case 'loopEnd': - addSignal(undefined, undefined, undefined, param.signalType); - break; - case 'optStart': - addSignal(undefined, undefined, param.optText, param.signalType); - break; - case 'optEnd': - addSignal(undefined, undefined, undefined, param.signalType); - break; - case 'altStart': - addSignal(undefined, undefined, param.altText, param.signalType); - break; - case 'else': - addSignal(undefined, undefined, param.altText, param.signalType); - break; - case 'altEnd': - addSignal(undefined, undefined, undefined, param.signalType); - break; - case 'setTitle': - setTitle(param.text); - break; - case 'parStart': - addSignal(undefined, undefined, param.parText, param.signalType); - break; - case 'and': - addSignal(undefined, undefined, param.parText, param.signalType); - break; - case 'parEnd': - addSignal(undefined, undefined, undefined, param.signalType); - break; - } - } -}; - -exports.default = { - addActor: addActor, - addMessage: addMessage, - addSignal: addSignal, - getMessages: getMessages, - getActors: getActors, - getActor: getActor, - getActorKeys: getActorKeys, - getTitle: getTitle, - clear: clear, - LINETYPE: LINETYPE, - ARROWTYPE: ARROWTYPE, - PLACEMENT: PLACEMENT, - addNote: addNote, - setTitle: setTitle, - apply: apply -}; - -/***/ }), -/* 14 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getInfo = exports.setInfo = exports.getMessage = exports.setMessage = undefined; - -var _logger = __webpack_require__(0); - -var message = ''; -var info = false; - -var setMessage = exports.setMessage = function setMessage(txt) { - _logger.logger.debug('Setting message to: ' + txt); - message = txt; -}; - -var getMessage = exports.getMessage = function getMessage() { - return message; -}; - -var setInfo = exports.setInfo = function setInfo(inf) { - info = inf; -}; - -var getInfo = exports.getInfo = function getInfo() { - return info; -}; - -exports.default = { - setMessage: setMessage, - getMessage: getMessage, - setInfo: setInfo, - getInfo: getInfo -}; - -/***/ }), -/* 15 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process, module) { - -/* parser generated by jison 0.4.17 */ -/* - Returns a Parser object of the following structure: - - Parser: { - yy: {} - } - - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } - - - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } - - - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -var parser = function () { - var o = function o(k, v, _o, l) { - for (_o = _o || {}, l = k.length; l--; _o[k[l]] = v) {}return _o; - }, - $V0 = [6, 9, 10, 12]; - var parser = { trace: function trace() {}, - yy: {}, - symbols_: { "error": 2, "start": 3, "info": 4, "document": 5, "EOF": 6, "line": 7, "statement": 8, "NL": 9, "showInfo": 10, "message": 11, "say": 12, "TXT": 13, "$accept": 0, "$end": 1 }, - terminals_: { 2: "error", 4: "info", 6: "EOF", 9: "NL", 10: "showInfo", 12: "say", 13: "TXT" }, - productions_: [0, [3, 3], [5, 0], [5, 2], [7, 1], [7, 1], [8, 1], [8, 1], [11, 2]], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { - /* this == yyval */ - - var $0 = $$.length - 1; - switch (yystate) { - case 1: - return yy; - break; - case 4: - - break; - case 6: - yy.setInfo(true); - break; - case 7: - yy.setMessage($$[$0]); - break; - case 8: - this.$ = $$[$0 - 1].substring(1).trim().replace(/\\n/gm, "\n"); - break; - } - }, - table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: 6, 9: [1, 7], 10: [1, 8], 11: 9, 12: [1, 10] }, { 1: [2, 1] }, o($V0, [2, 3]), o($V0, [2, 4]), o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 7]), { 13: [1, 11] }, o($V0, [2, 8])], - defaultActions: { 4: [2, 1] }, - parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var _parseError = function _parseError(msg, hash) { - this.message = msg; - this.hash = hash; - }; - - _parseError.prototype = Error; - - throw new _parseError(str, hash); - } - }, - parse: function parse(input) { - var self = this, - stack = [0], - tstack = [], - vstack = [null], - lstack = [], - table = this.table, - yytext = '', - yylineno = 0, - yyleng = 0, - recovering = 0, - TERROR = 2, - EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer; - sharedState.yy.parser = this; - if (typeof lexer.yylloc == 'undefined') { - lexer.yylloc = {}; - } - var yyloc = lexer.yylloc; - lstack.push(yyloc); - var ranges = lexer.options && lexer.options.ranges; - if (typeof sharedState.yy.parseError === 'function') { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function popStack(n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - function lex() { - var token; - token = tstack.pop() || lexer.lex() || EOF; - if (typeof token !== 'number') { - if (token instanceof Array) { - tstack = token; - token = tstack.pop(); - } - token = self.symbols_[token] || token; - } - return token; - } - var symbol, - preErrorSymbol, - state, - action, - a, - r, - yyval = {}, - p, - len, - newState, - expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == 'undefined') { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === 'undefined' || !action.length || !action[0]) { - var errStr = ''; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push('\'' + this.terminals_[p] + '\''); - } - } - if (lexer.showPosition) { - errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; - } else { - errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); - } - this.parseError(errStr, { - text: lexer.match, - token: this.terminals_[symbol] || symbol, - line: lexer.yylineno, - loc: yyloc, - expected: expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer.yytext); - lstack.push(lexer.yylloc); - stack.push(action[1]); - symbol = null; - if (!preErrorSymbol) { - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - if (recovering > 0) { - recovering--; - } - } else { - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]]; - } - r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); - if (typeof r !== 'undefined') { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } }; - - /* generated by jison-lex 0.3.4 */ - var lexer = function () { - var lexer = { - - EOF: 1, - - parseError: function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - - // resets the lexer, sets new input - setInput: function setInput(input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0, 0]; - } - this.offset = 0; - return this; - }, - - // consumes and returns one char from the input - input: function input() { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - - this._input = this._input.slice(1); - return ch; - }, - - // unshifts one char (or a string) into the input - unput: function unput(ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len - }; - - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - - // When called from action, caches matched text and appends it on next action - more: function more() { - this._more = true; - return this; - }, - - // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. - reject: function reject() { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - return this; - }, - - // retain first n characters of the match - less: function less(n) { - this.unput(this.match.slice(n)); - }, - - // displays already matched input, i.e. for error messages - pastInput: function pastInput() { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, ""); - }, - - // displays upcoming input, i.e. for error messages - upcomingInput: function upcomingInput() { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20 - next.length); - } - return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); - }, - - // displays the character position where the lexing error occurred, i.e. for error messages - showPosition: function showPosition() { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - - // test the lexed token: return FALSE when not a match, otherwise return token - test_match: function test_match(match, indexed_rule) { - var token, lines, backup; - - if (this.options.backtrack_lexer) { - // save context - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - // recover context - for (var k in backup) { - this[k] = backup[k]; - } - return false; // rule action called reject() implying the next rule should be tested instead. - } - return false; - }, - - // return next match in input - next: function next() { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - - var token, match, tempMatch, index; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; // rule action called reject() implying a rule MISmatch. - } else { - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - - // return next match that has a token - lex: function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - - // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) - begin: function begin(condition) { - this.conditionStack.push(condition); - }, - - // pop the previously active lexer condition state off the condition stack - popState: function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - - // produce the lexer rule set which is active for the currently active lexer condition state - _currentRules: function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - - // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available - topState: function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - - // alias for begin(condition) - pushState: function pushState(condition) { - this.begin(condition); - }, - - // return the number of states currently on the stack - stateStackSize: function stateStackSize() { - return this.conditionStack.length; - }, - options: { "case-insensitive": true }, - performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { - // Pre-lexer code can go here - - var YYSTATE = YY_START; - switch ($avoiding_name_collisions) { - case 0: - return 9; - break; - case 1: - return 10; - break; - case 2: - return 4; - break; - case 3: - return 12; - break; - case 4: - return 13; - break; - case 5: - return 6; - break; - case 6: - return 'INVALID'; - break; - } - }, - rules: [/^(?:[\n]+)/i, /^(?:showInfo\b)/i, /^(?:info\b)/i, /^(?:say\b)/i, /^(?::[^#\n;]+)/i, /^(?:$)/i, /^(?:.)/i], - conditions: { "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6], "inclusive": true } } - }; - return lexer; - }(); - parser.lexer = lexer; - function Parser() { - this.yy = {}; - } - Parser.prototype = parser;parser.Parser = Parser; - return new Parser(); -}(); - -if (true) { - exports.parser = parser; - exports.Parser = parser.Parser; - exports.parse = function () { - return parser.parse.apply(parser, arguments); - }; - exports.main = function commonjsMain(args) { - if (!args[1]) { - console.log('Usage: ' + args[0] + ' FILE'); - process.exit(1); - } - var source = __webpack_require__(4).readFileSync(__webpack_require__(5).normalize(args[1]), "utf8"); - return exports.parser.parse(source); - }; - if (typeof module !== 'undefined' && __webpack_require__.c[__webpack_require__.s] === module) { - exports.main(process.argv.slice(1)); - } -} -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2), __webpack_require__(3)(module))) - -/***/ }), -/* 16 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process, module) { - -/* parser generated by jison 0.4.17 */ -/* - Returns a Parser object of the following structure: - - Parser: { - yy: {} - } - - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } - - - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } - - - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -var parser = function () { - var o = function o(k, v, _o, l) { - for (_o = _o || {}, l = k.length; l--; _o[k[l]] = v) {}return _o; - }, - $V0 = [6, 8, 10, 11, 12, 13, 14], - $V1 = [1, 9], - $V2 = [1, 10], - $V3 = [1, 11], - $V4 = [1, 12]; - var parser = { trace: function trace() {}, - yy: {}, - symbols_: { "error": 2, "start": 3, "gantt": 4, "document": 5, "EOF": 6, "line": 7, "SPACE": 8, "statement": 9, "NL": 10, "dateFormat": 11, "title": 12, "section": 13, "taskTxt": 14, "taskData": 15, "$accept": 0, "$end": 1 }, - terminals_: { 2: "error", 4: "gantt", 6: "EOF", 8: "SPACE", 10: "NL", 11: "dateFormat", 12: "title", 13: "section", 14: "taskTxt", 15: "taskData" }, - productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 1], [9, 1], [9, 1], [9, 2]], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { - /* this == yyval */ - - var $0 = $$.length - 1; - switch (yystate) { - case 1: - return $$[$0 - 1]; - break; - case 2: - this.$ = []; - break; - case 3: - $$[$0 - 1].push($$[$0]);this.$ = $$[$0 - 1]; - break; - case 4:case 5: - this.$ = $$[$0]; - break; - case 6:case 7: - this.$ = []; - break; - case 8: - yy.setDateFormat($$[$0].substr(11));this.$ = $$[$0].substr(11); - break; - case 9: - yy.setTitle($$[$0].substr(6));this.$ = $$[$0].substr(6); - break; - case 10: - yy.addSection($$[$0].substr(8));this.$ = $$[$0].substr(8); - break; - case 11: - yy.addTask($$[$0 - 1], $$[$0]);this.$ = 'task'; - break; - } - }, - table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: $V1, 12: $V2, 13: $V3, 14: $V4 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 13, 11: $V1, 12: $V2, 13: $V3, 14: $V4 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 8]), o($V0, [2, 9]), o($V0, [2, 10]), { 15: [1, 14] }, o($V0, [2, 4]), o($V0, [2, 11])], - defaultActions: {}, - parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var _parseError = function _parseError(msg, hash) { - this.message = msg; - this.hash = hash; - }; - - _parseError.prototype = Error; - - throw new _parseError(str, hash); - } - }, - parse: function parse(input) { - var self = this, - stack = [0], - tstack = [], - vstack = [null], - lstack = [], - table = this.table, - yytext = '', - yylineno = 0, - yyleng = 0, - recovering = 0, - TERROR = 2, - EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer; - sharedState.yy.parser = this; - if (typeof lexer.yylloc == 'undefined') { - lexer.yylloc = {}; - } - var yyloc = lexer.yylloc; - lstack.push(yyloc); - var ranges = lexer.options && lexer.options.ranges; - if (typeof sharedState.yy.parseError === 'function') { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function popStack(n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - function lex() { - var token; - token = tstack.pop() || lexer.lex() || EOF; - if (typeof token !== 'number') { - if (token instanceof Array) { - tstack = token; - token = tstack.pop(); - } - token = self.symbols_[token] || token; - } - return token; - } - var symbol, - preErrorSymbol, - state, - action, - a, - r, - yyval = {}, - p, - len, - newState, - expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == 'undefined') { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === 'undefined' || !action.length || !action[0]) { - var errStr = ''; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push('\'' + this.terminals_[p] + '\''); - } - } - if (lexer.showPosition) { - errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; - } else { - errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); - } - this.parseError(errStr, { - text: lexer.match, - token: this.terminals_[symbol] || symbol, - line: lexer.yylineno, - loc: yyloc, - expected: expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer.yytext); - lstack.push(lexer.yylloc); - stack.push(action[1]); - symbol = null; - if (!preErrorSymbol) { - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - if (recovering > 0) { - recovering--; - } - } else { - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]]; - } - r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); - if (typeof r !== 'undefined') { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } }; - - /* generated by jison-lex 0.3.4 */ - var lexer = function () { - var lexer = { - - EOF: 1, - - parseError: function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - - // resets the lexer, sets new input - setInput: function setInput(input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0, 0]; - } - this.offset = 0; - return this; - }, - - // consumes and returns one char from the input - input: function input() { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - - this._input = this._input.slice(1); - return ch; - }, - - // unshifts one char (or a string) into the input - unput: function unput(ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len - }; - - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - - // When called from action, caches matched text and appends it on next action - more: function more() { - this._more = true; - return this; - }, - - // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. - reject: function reject() { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - return this; - }, - - // retain first n characters of the match - less: function less(n) { - this.unput(this.match.slice(n)); - }, - - // displays already matched input, i.e. for error messages - pastInput: function pastInput() { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, ""); - }, - - // displays upcoming input, i.e. for error messages - upcomingInput: function upcomingInput() { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20 - next.length); - } - return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); - }, - - // displays the character position where the lexing error occurred, i.e. for error messages - showPosition: function showPosition() { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - - // test the lexed token: return FALSE when not a match, otherwise return token - test_match: function test_match(match, indexed_rule) { - var token, lines, backup; - - if (this.options.backtrack_lexer) { - // save context - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - // recover context - for (var k in backup) { - this[k] = backup[k]; - } - return false; // rule action called reject() implying the next rule should be tested instead. - } - return false; - }, - - // return next match in input - next: function next() { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - - var token, match, tempMatch, index; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; // rule action called reject() implying a rule MISmatch. - } else { - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - - // return next match that has a token - lex: function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - - // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) - begin: function begin(condition) { - this.conditionStack.push(condition); - }, - - // pop the previously active lexer condition state off the condition stack - popState: function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - - // produce the lexer rule set which is active for the currently active lexer condition state - _currentRules: function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - - // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available - topState: function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - - // alias for begin(condition) - pushState: function pushState(condition) { - this.begin(condition); - }, - - // return the number of states currently on the stack - stateStackSize: function stateStackSize() { - return this.conditionStack.length; - }, - options: { "case-insensitive": true }, - performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { - // Pre-lexer code can go here - - var YYSTATE = YY_START; - switch ($avoiding_name_collisions) { - case 0: - return 10; - break; - case 1: - /* skip whitespace */ - break; - case 2: - /* skip comments */ - break; - case 3: - /* skip comments */ - break; - case 4: - return 4; - break; - case 5: - return 11; - break; - case 6: - return 'date'; - break; - case 7: - return 12; - break; - case 8: - return 13; - break; - case 9: - return 14; - break; - case 10: - return 15; - break; - case 11: - return ':'; - break; - case 12: - return 6; - break; - case 13: - return 'INVALID'; - break; - } - }, - rules: [/^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:gantt\b)/i, /^(?:dateFormat\s[^#\n;]+)/i, /^(?:\d\d\d\d-\d\d-\d\d\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:section\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i], - conditions: { "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "inclusive": true } } - }; - return lexer; - }(); - parser.lexer = lexer; - function Parser() { - this.yy = {}; - } - Parser.prototype = parser;parser.Parser = Parser; - return new Parser(); -}(); - -if (true) { - exports.parser = parser; - exports.Parser = parser.Parser; - exports.parse = function () { - return parser.parse.apply(parser, arguments); - }; - exports.main = function commonjsMain(args) { - if (!args[1]) { - console.log('Usage: ' + args[0] + ' FILE'); - process.exit(1); - } - var source = __webpack_require__(4).readFileSync(__webpack_require__(5).normalize(args[1]), "utf8"); - return exports.parser.parse(source); - }; - if (typeof module !== 'undefined' && __webpack_require__.c[__webpack_require__.s] === module) { - exports.main(process.argv.slice(1)); - } -} -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2), __webpack_require__(3)(module))) - -/***/ }), -/* 17 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.addTaskOrg = exports.findTaskById = exports.addTask = exports.getTasks = exports.addSection = exports.getTitle = exports.setTitle = exports.getDateFormat = exports.setDateFormat = exports.clear = undefined; - -var _moment = __webpack_require__(7); - -var _moment2 = _interopRequireDefault(_moment); - -var _logger = __webpack_require__(0); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var dateFormat = ''; -var title = ''; -var sections = []; -var tasks = []; -var currentSection = ''; - -var clear = exports.clear = function clear() { - sections = []; - tasks = []; - currentSection = ''; - title = ''; - taskCnt = 0; - lastTask = undefined; - lastTaskID = undefined; - rawTasks = []; -}; - -var setDateFormat = exports.setDateFormat = function setDateFormat(txt) { - dateFormat = txt; -}; - -var getDateFormat = exports.getDateFormat = function getDateFormat() { - return dateFormat; -}; -var setTitle = exports.setTitle = function setTitle(txt) { - title = txt; -}; - -var getTitle = exports.getTitle = function getTitle() { - return title; -}; - -var addSection = exports.addSection = function addSection(txt) { - currentSection = txt; - sections.push(txt); -}; - -var getTasks = exports.getTasks = function getTasks() { - var allItemsPricessed = compileTasks(); - var maxDepth = 10; - var iterationCount = 0; - while (!allItemsPricessed && iterationCount < maxDepth) { - allItemsPricessed = compileTasks(); - iterationCount++; - } - - tasks = rawTasks; - - return tasks; -}; - -var getStartDate = function getStartDate(prevTime, dateFormat, str) { - str = str.trim(); - - // Test for after - var re = /^after\s+([\d\w-]+)/; - var afterStatement = re.exec(str.trim()); - - if (afterStatement !== null) { - var task = findTaskById(afterStatement[1]); - - if (typeof task === 'undefined') { - var dt = new Date(); - dt.setHours(0, 0, 0, 0); - return dt; - } - return task.endTime; - } - - // Check for actual date set - if ((0, _moment2.default)(str, dateFormat.trim(), true).isValid()) { - return (0, _moment2.default)(str, dateFormat.trim(), true).toDate(); - } else { - _logger.logger.debug('Invalid date:' + str); - _logger.logger.debug('With date format:' + dateFormat.trim()); - } - - // Default date - now - return new Date(); -}; - -var getEndDate = function getEndDate(prevTime, dateFormat, str) { - str = str.trim(); - - // Check for actual date - if ((0, _moment2.default)(str, dateFormat.trim(), true).isValid()) { - return (0, _moment2.default)(str, dateFormat.trim()).toDate(); - } - - var d = (0, _moment2.default)(prevTime); - // Check for length - var re = /^([\d]+)([wdhms])/; - var durationStatement = re.exec(str.trim()); - - if (durationStatement !== null) { - switch (durationStatement[2]) { - case 's': - d.add(durationStatement[1], 'seconds'); - break; - case 'm': - d.add(durationStatement[1], 'minutes'); - break; - case 'h': - d.add(durationStatement[1], 'hours'); - break; - case 'd': - d.add(durationStatement[1], 'days'); - break; - case 'w': - d.add(durationStatement[1], 'weeks'); - break; - } - return d.toDate(); - } - // Default date - now - return d.toDate(); -}; - -var taskCnt = 0; -var parseId = function parseId(idStr) { - if (typeof idStr === 'undefined') { - taskCnt = taskCnt + 1; - return 'task' + taskCnt; - } - return idStr; -}; -// id, startDate, endDate -// id, startDate, length -// id, after x, endDate -// id, after x, length -// startDate, endDate -// startDate, length -// after x, endDate -// after x, length -// endDate -// length - -var compileData = function compileData(prevTask, dataStr) { - var ds; - - if (dataStr.substr(0, 1) === ':') { - ds = dataStr.substr(1, dataStr.length); - } else { - ds = dataStr; - } - - var data = ds.split(','); - - var task = {}; - var df = getDateFormat(); - - // Get tags like active, done cand crit - var matchFound = true; - while (matchFound) { - matchFound = false; - if (data[0].match(/^\s*active\s*$/)) { - task.active = true; - data.shift(1); - matchFound = true; - } - if (data[0].match(/^\s*done\s*$/)) { - task.done = true; - data.shift(1); - matchFound = true; - } - if (data[0].match(/^\s*crit\s*$/)) { - task.crit = true; - data.shift(1); - matchFound = true; - } - } - var i; - for (i = 0; i < data.length; i++) { - data[i] = data[i].trim(); - } - - switch (data.length) { - case 1: - task.id = parseId(); - task.startTime = prevTask.endTime; - task.endTime = getEndDate(task.startTime, df, data[0]); - break; - case 2: - task.id = parseId(); - task.startTime = getStartDate(undefined, df, data[0]); - task.endTime = getEndDate(task.startTime, df, data[1]); - break; - case 3: - task.id = parseId(data[0]); - task.startTime = getStartDate(undefined, df, data[1]); - task.endTime = getEndDate(task.startTime, df, data[2]); - break; - default: - } - - return task; -}; - -var parseData = function parseData(prevTaskId, dataStr) { - var ds; - - if (dataStr.substr(0, 1) === ':') { - ds = dataStr.substr(1, dataStr.length); - } else { - ds = dataStr; - } - - var data = ds.split(','); - - var task = {}; - - // Get tags like active, done cand crit - var matchFound = true; - while (matchFound) { - matchFound = false; - if (data[0].match(/^\s*active\s*$/)) { - task.active = true; - data.shift(1); - matchFound = true; - } - if (data[0].match(/^\s*done\s*$/)) { - task.done = true; - data.shift(1); - matchFound = true; - } - if (data[0].match(/^\s*crit\s*$/)) { - task.crit = true; - data.shift(1); - matchFound = true; - } - } - var i; - for (i = 0; i < data.length; i++) { - data[i] = data[i].trim(); - } - - switch (data.length) { - case 1: - task.id = parseId(); - task.startTime = { type: 'prevTaskEnd', id: prevTaskId }; - task.endTime = { data: data[0] }; - break; - case 2: - task.id = parseId(); - task.startTime = { type: 'getStartDate', startData: data[0] }; - task.endTime = { data: data[1] }; - break; - case 3: - task.id = parseId(data[0]); - task.startTime = { type: 'getStartDate', startData: data[1] }; - task.endTime = { data: data[2] }; - break; - default: - } - - return task; -}; - -var lastTask; -var lastTaskID; -var rawTasks = []; -var taskDb = {}; -var addTask = exports.addTask = function addTask(descr, data) { - var rawTask = { - section: currentSection, - type: currentSection, - processed: false, - raw: { data: data }, - task: descr - }; - var taskInfo = parseData(lastTaskID, data); - rawTask.raw.startTime = taskInfo.startTime; - rawTask.raw.endTime = taskInfo.endTime; - rawTask.id = taskInfo.id; - rawTask.prevTaskId = lastTaskID; - rawTask.active = taskInfo.active; - rawTask.done = taskInfo.done; - rawTask.crit = taskInfo.crit; - - var pos = rawTasks.push(rawTask); - - lastTaskID = rawTask.id; - // Store cross ref - taskDb[rawTask.id] = pos - 1; -}; - -var findTaskById = exports.findTaskById = function findTaskById(id) { - var pos = taskDb[id]; - return rawTasks[pos]; -}; - -var addTaskOrg = exports.addTaskOrg = function addTaskOrg(descr, data) { - var newTask = { - section: currentSection, - type: currentSection, - description: descr, - task: descr - }; - var taskInfo = compileData(lastTask, data); - newTask.startTime = taskInfo.startTime; - newTask.endTime = taskInfo.endTime; - newTask.id = taskInfo.id; - newTask.active = taskInfo.active; - newTask.done = taskInfo.done; - newTask.crit = taskInfo.crit; - lastTask = newTask; - tasks.push(newTask); -}; - -var compileTasks = function compileTasks() { - var df = getDateFormat(); - - var compileTask = function compileTask(pos) { - var task = rawTasks[pos]; - var startTime = ''; - switch (rawTasks[pos].raw.startTime.type) { - case 'prevTaskEnd': - var prevTask = findTaskById(task.prevTaskId); - task.startTime = prevTask.endTime; - break; - case 'getStartDate': - startTime = getStartDate(undefined, df, rawTasks[pos].raw.startTime.startData); - if (startTime) { - rawTasks[pos].startTime = startTime; - } - break; - } - - if (rawTasks[pos].startTime) { - rawTasks[pos].endTime = getEndDate(rawTasks[pos].startTime, df, rawTasks[pos].raw.endTime.data); - if (rawTasks[pos].endTime) { - rawTasks[pos].processed = true; - } - } - - return rawTasks[pos].processed; - }; - - var i; - var allProcessed = true; - for (i = 0; i < rawTasks.length; i++) { - compileTask(i); - - allProcessed = allProcessed && rawTasks[i].processed; - } - return allProcessed; -}; - -exports.default = { - clear: clear, - setDateFormat: setDateFormat, - getDateFormat: getDateFormat, - setTitle: setTitle, - getTitle: getTitle, - addSection: addSection, - getTasks: getTasks, - addTask: addTask, - findTaskById: findTaskById, - addTaskOrg: addTaskOrg -}; - -/***/ }), -/* 18 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process, module) { - -/* parser generated by jison 0.4.17 */ -/* - Returns a Parser object of the following structure: - - Parser: { - yy: {} - } - - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } - - - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } - - - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -var parser = function () { - var o = function o(k, v, _o, l) { - for (_o = _o || {}, l = k.length; l--; _o[k[l]] = v) {}return _o; - }, - $V0 = [1, 11], - $V1 = [1, 12], - $V2 = [1, 13], - $V3 = [1, 15], - $V4 = [1, 16], - $V5 = [1, 17], - $V6 = [6, 8], - $V7 = [1, 26], - $V8 = [1, 27], - $V9 = [1, 28], - $Va = [1, 29], - $Vb = [1, 30], - $Vc = [1, 31], - $Vd = [6, 8, 13, 17, 23, 26, 27, 28, 29, 30, 31], - $Ve = [6, 8, 13, 17, 23, 26, 27, 28, 29, 30, 31, 45, 46, 47], - $Vf = [23, 45, 46, 47], - $Vg = [23, 30, 31, 45, 46, 47], - $Vh = [23, 26, 27, 28, 29, 45, 46, 47], - $Vi = [6, 8, 13], - $Vj = [1, 46]; - var parser = { trace: function trace() {}, - yy: {}, - symbols_: { "error": 2, "mermaidDoc": 3, "graphConfig": 4, "CLASS_DIAGRAM": 5, "NEWLINE": 6, "statements": 7, "EOF": 8, "statement": 9, "className": 10, "alphaNumToken": 11, "relationStatement": 12, "LABEL": 13, "classStatement": 14, "methodStatement": 15, "CLASS": 16, "STRUCT_START": 17, "members": 18, "STRUCT_STOP": 19, "MEMBER": 20, "SEPARATOR": 21, "relation": 22, "STR": 23, "relationType": 24, "lineType": 25, "AGGREGATION": 26, "EXTENSION": 27, "COMPOSITION": 28, "DEPENDENCY": 29, "LINE": 30, "DOTTED_LINE": 31, "commentToken": 32, "textToken": 33, "graphCodeTokens": 34, "textNoTagsToken": 35, "TAGSTART": 36, "TAGEND": 37, "==": 38, "--": 39, "PCT": 40, "DEFAULT": 41, "SPACE": 42, "MINUS": 43, "keywords": 44, "UNICODE_TEXT": 45, "NUM": 46, "ALPHA": 47, "$accept": 0, "$end": 1 }, - terminals_: { 2: "error", 5: "CLASS_DIAGRAM", 6: "NEWLINE", 8: "EOF", 13: "LABEL", 16: "CLASS", 17: "STRUCT_START", 19: "STRUCT_STOP", 20: "MEMBER", 21: "SEPARATOR", 23: "STR", 26: "AGGREGATION", 27: "EXTENSION", 28: "COMPOSITION", 29: "DEPENDENCY", 30: "LINE", 31: "DOTTED_LINE", 34: "graphCodeTokens", 36: "TAGSTART", 37: "TAGEND", 38: "==", 39: "--", 40: "PCT", 41: "DEFAULT", 42: "SPACE", 43: "MINUS", 44: "keywords", 45: "UNICODE_TEXT", 46: "NUM", 47: "ALPHA" }, - productions_: [0, [3, 1], [4, 4], [7, 1], [7, 3], [10, 2], [10, 1], [9, 1], [9, 2], [9, 1], [9, 1], [14, 2], [14, 5], [18, 1], [18, 2], [15, 1], [15, 2], [15, 1], [15, 1], [12, 3], [12, 4], [12, 4], [12, 5], [22, 3], [22, 2], [22, 2], [22, 1], [24, 1], [24, 1], [24, 1], [24, 1], [25, 1], [25, 1], [32, 1], [32, 1], [33, 1], [33, 1], [33, 1], [33, 1], [33, 1], [33, 1], [33, 1], [35, 1], [35, 1], [35, 1], [35, 1], [11, 1], [11, 1], [11, 1]], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { - /* this == yyval */ - - var $0 = $$.length - 1; - switch (yystate) { - case 5: - this.$ = $$[$0 - 1] + $$[$0]; - break; - case 6: - this.$ = $$[$0]; - break; - case 7: - yy.addRelation($$[$0]); - break; - case 8: - $$[$0 - 1].title = yy.cleanupLabel($$[$0]);yy.addRelation($$[$0 - 1]); - break; - case 12: - /*console.log($$[$0-3],JSON.stringify($$[$0-1]));*/yy.addMembers($$[$0 - 3], $$[$0 - 1]); - break; - case 13: - this.$ = [$$[$0]]; - break; - case 14: - $$[$0].push($$[$0 - 1]);this.$ = $$[$0]; - break; - case 15: - /*console.log('Rel found',$$[$0]);*/ - break; - case 16: - yy.addMembers($$[$0 - 1], yy.cleanupLabel($$[$0])); - break; - case 17: - console.warn('Member', $$[$0]); - break; - case 18: - /*console.log('sep found',$$[$0]);*/ - break; - case 19: - this.$ = { 'id1': $$[$0 - 2], 'id2': $$[$0], relation: $$[$0 - 1], relationTitle1: 'none', relationTitle2: 'none' }; - break; - case 20: - this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 1], relationTitle1: $$[$0 - 2], relationTitle2: 'none' }; - break; - case 21: - this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: 'none', relationTitle2: $$[$0 - 1] }; - break; - case 22: - this.$ = { id1: $$[$0 - 4], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: $$[$0 - 3], relationTitle2: $$[$0 - 1] }; - break; - case 23: - this.$ = { type1: $$[$0 - 2], type2: $$[$0], lineType: $$[$0 - 1] }; - break; - case 24: - this.$ = { type1: 'none', type2: $$[$0], lineType: $$[$0 - 1] }; - break; - case 25: - this.$ = { type1: $$[$0 - 1], type2: 'none', lineType: $$[$0] }; - break; - case 26: - this.$ = { type1: 'none', type2: 'none', lineType: $$[$0] }; - break; - case 27: - this.$ = yy.relationType.AGGREGATION; - break; - case 28: - this.$ = yy.relationType.EXTENSION; - break; - case 29: - this.$ = yy.relationType.COMPOSITION; - break; - case 30: - this.$ = yy.relationType.DEPENDENCY; - break; - case 31: - this.$ = yy.lineType.LINE; - break; - case 32: - this.$ = yy.lineType.DOTTED_LINE; - break; - } - }, - table: [{ 3: 1, 4: 2, 5: [1, 3] }, { 1: [3] }, { 1: [2, 1] }, { 6: [1, 4] }, { 7: 5, 9: 6, 10: 10, 11: 14, 12: 7, 14: 8, 15: 9, 16: $V0, 20: $V1, 21: $V2, 45: $V3, 46: $V4, 47: $V5 }, { 8: [1, 18] }, { 6: [1, 19], 8: [2, 3] }, o($V6, [2, 7], { 13: [1, 20] }), o($V6, [2, 9]), o($V6, [2, 10]), o($V6, [2, 15], { 22: 21, 24: 24, 25: 25, 13: [1, 23], 23: [1, 22], 26: $V7, 27: $V8, 28: $V9, 29: $Va, 30: $Vb, 31: $Vc }), { 10: 32, 11: 14, 45: $V3, 46: $V4, 47: $V5 }, o($V6, [2, 17]), o($V6, [2, 18]), o($Vd, [2, 6], { 11: 14, 10: 33, 45: $V3, 46: $V4, 47: $V5 }), o($Ve, [2, 46]), o($Ve, [2, 47]), o($Ve, [2, 48]), { 1: [2, 2] }, { 7: 34, 9: 6, 10: 10, 11: 14, 12: 7, 14: 8, 15: 9, 16: $V0, 20: $V1, 21: $V2, 45: $V3, 46: $V4, 47: $V5 }, o($V6, [2, 8]), { 10: 35, 11: 14, 23: [1, 36], 45: $V3, 46: $V4, 47: $V5 }, { 22: 37, 24: 24, 25: 25, 26: $V7, 27: $V8, 28: $V9, 29: $Va, 30: $Vb, 31: $Vc }, o($V6, [2, 16]), { 25: 38, 30: $Vb, 31: $Vc }, o($Vf, [2, 26], { 24: 39, 26: $V7, 27: $V8, 28: $V9, 29: $Va }), o($Vg, [2, 27]), o($Vg, [2, 28]), o($Vg, [2, 29]), o($Vg, [2, 30]), o($Vh, [2, 31]), o($Vh, [2, 32]), o($V6, [2, 11], { 17: [1, 40] }), o($Vd, [2, 5]), { 8: [2, 4] }, o($Vi, [2, 19]), { 10: 41, 11: 14, 45: $V3, 46: $V4, 47: $V5 }, { 10: 42, 11: 14, 23: [1, 43], 45: $V3, 46: $V4, 47: $V5 }, o($Vf, [2, 25], { 24: 44, 26: $V7, 27: $V8, 28: $V9, 29: $Va }), o($Vf, [2, 24]), { 18: 45, 20: $Vj }, o($Vi, [2, 21]), o($Vi, [2, 20]), { 10: 47, 11: 14, 45: $V3, 46: $V4, 47: $V5 }, o($Vf, [2, 23]), { 19: [1, 48] }, { 18: 49, 19: [2, 13], 20: $Vj }, o($Vi, [2, 22]), o($V6, [2, 12]), { 19: [2, 14] }], - defaultActions: { 2: [2, 1], 18: [2, 2], 34: [2, 4], 49: [2, 14] }, - parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var _parseError = function _parseError(msg, hash) { - this.message = msg; - this.hash = hash; - }; - - _parseError.prototype = Error; - - throw new _parseError(str, hash); - } - }, - parse: function parse(input) { - var self = this, - stack = [0], - tstack = [], - vstack = [null], - lstack = [], - table = this.table, - yytext = '', - yylineno = 0, - yyleng = 0, - recovering = 0, - TERROR = 2, - EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer; - sharedState.yy.parser = this; - if (typeof lexer.yylloc == 'undefined') { - lexer.yylloc = {}; - } - var yyloc = lexer.yylloc; - lstack.push(yyloc); - var ranges = lexer.options && lexer.options.ranges; - if (typeof sharedState.yy.parseError === 'function') { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function popStack(n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - function lex() { - var token; - token = tstack.pop() || lexer.lex() || EOF; - if (typeof token !== 'number') { - if (token instanceof Array) { - tstack = token; - token = tstack.pop(); - } - token = self.symbols_[token] || token; - } - return token; - } - var symbol, - preErrorSymbol, - state, - action, - a, - r, - yyval = {}, - p, - len, - newState, - expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == 'undefined') { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === 'undefined' || !action.length || !action[0]) { - var errStr = ''; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push('\'' + this.terminals_[p] + '\''); - } - } - if (lexer.showPosition) { - errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; - } else { - errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); - } - this.parseError(errStr, { - text: lexer.match, - token: this.terminals_[symbol] || symbol, - line: lexer.yylineno, - loc: yyloc, - expected: expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer.yytext); - lstack.push(lexer.yylloc); - stack.push(action[1]); - symbol = null; - if (!preErrorSymbol) { - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - if (recovering > 0) { - recovering--; - } - } else { - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]]; - } - r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); - if (typeof r !== 'undefined') { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } }; - - /* generated by jison-lex 0.3.4 */ - var lexer = function () { - var lexer = { - - EOF: 1, - - parseError: function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - - // resets the lexer, sets new input - setInput: function setInput(input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0, 0]; - } - this.offset = 0; - return this; - }, - - // consumes and returns one char from the input - input: function input() { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - - this._input = this._input.slice(1); - return ch; - }, - - // unshifts one char (or a string) into the input - unput: function unput(ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len - }; - - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - - // When called from action, caches matched text and appends it on next action - more: function more() { - this._more = true; - return this; - }, - - // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. - reject: function reject() { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - return this; - }, - - // retain first n characters of the match - less: function less(n) { - this.unput(this.match.slice(n)); - }, - - // displays already matched input, i.e. for error messages - pastInput: function pastInput() { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, ""); - }, - - // displays upcoming input, i.e. for error messages - upcomingInput: function upcomingInput() { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20 - next.length); - } - return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); - }, - - // displays the character position where the lexing error occurred, i.e. for error messages - showPosition: function showPosition() { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - - // test the lexed token: return FALSE when not a match, otherwise return token - test_match: function test_match(match, indexed_rule) { - var token, lines, backup; - - if (this.options.backtrack_lexer) { - // save context - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - // recover context - for (var k in backup) { - this[k] = backup[k]; - } - return false; // rule action called reject() implying the next rule should be tested instead. - } - return false; - }, - - // return next match in input - next: function next() { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - - var token, match, tempMatch, index; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; // rule action called reject() implying a rule MISmatch. - } else { - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - - // return next match that has a token - lex: function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - - // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) - begin: function begin(condition) { - this.conditionStack.push(condition); - }, - - // pop the previously active lexer condition state off the condition stack - popState: function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - - // produce the lexer rule set which is active for the currently active lexer condition state - _currentRules: function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - - // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available - topState: function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - - // alias for begin(condition) - pushState: function pushState(condition) { - this.begin(condition); - }, - - // return the number of states currently on the stack - stateStackSize: function stateStackSize() { - return this.conditionStack.length; - }, - options: {}, - performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { - var YYSTATE = YY_START; - switch ($avoiding_name_collisions) { - case 0: - /* do nothing */ - break; - case 1: - return 6; - break; - case 2: - /* skip whitespace */ - break; - case 3: - return 5; - break; - case 4: - this.begin("struct"); /*console.log('Starting struct');*/return 17; - break; - case 5: - /*console.log('Ending struct');*/this.popState();return 19; - break; - case 6: - /* nothing */ - break; - case 7: - /*console.log('lex-member: ' + yy_.yytext);*/return "MEMBER"; - break; - case 8: - return 16; - break; - case 9: - this.begin("string"); - break; - case 10: - this.popState(); - break; - case 11: - return "STR"; - break; - case 12: - return 27; - break; - case 13: - return 27; - break; - case 14: - return 29; - break; - case 15: - return 29; - break; - case 16: - return 28; - break; - case 17: - return 26; - break; - case 18: - return 30; - break; - case 19: - return 31; - break; - case 20: - return 13; - break; - case 21: - return 43; - break; - case 22: - return 'DOT'; - break; - case 23: - return 'PLUS'; - break; - case 24: - return 40; - break; - case 25: - return 'EQUALS'; - break; - case 26: - return 'EQUALS'; - break; - case 27: - return 47; - break; - case 28: - return 'PUNCTUATION'; - break; - case 29: - return 46; - break; - case 30: - return 45; - break; - case 31: - return 42; - break; - case 32: - return 8; - break; - } - }, - rules: [/^(?:%%[^\n]*)/, /^(?:\n+)/, /^(?:\s+)/, /^(?:classDiagram\b)/, /^(?:[\{])/, /^(?:\})/, /^(?:[\n])/, /^(?:[^\{\}\n]*)/, /^(?:class\b)/, /^(?:["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:\s*<\|)/, /^(?:\s*\|>)/, /^(?:\s*>)/, /^(?:\s*<)/, /^(?:\s*\*)/, /^(?:\s*o\b)/, /^(?:--)/, /^(?:\.\.)/, /^(?::[^#\n;]+)/, /^(?:-)/, /^(?:\.)/, /^(?:\+)/, /^(?:%)/, /^(?:=)/, /^(?:=)/, /^(?:[A-Za-z]+)/, /^(?:[!"#$%&'*+,-.`?\\_\/])/, /^(?:[0-9]+)/, /^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/, /^(?:\s)/, /^(?:$)/], - conditions: { "string": { "rules": [10, 11], "inclusive": false }, "struct": { "rules": [5, 6, 7], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32], "inclusive": true } } - }; - return lexer; - }(); - parser.lexer = lexer; - function Parser() { - this.yy = {}; - } - Parser.prototype = parser;parser.Parser = Parser; - return new Parser(); -}(); - -if (true) { - exports.parser = parser; - exports.Parser = parser.Parser; - exports.parse = function () { - return parser.parse.apply(parser, arguments); - }; - exports.main = function commonjsMain(args) { - if (!args[1]) { - console.log('Usage: ' + args[0] + ' FILE'); - process.exit(1); - } - var source = __webpack_require__(4).readFileSync(__webpack_require__(5).normalize(args[1]), "utf8"); - return exports.parser.parse(source); - }; - if (typeof module !== 'undefined' && __webpack_require__.c[__webpack_require__.s] === module) { - exports.main(process.argv.slice(1)); - } -} -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2), __webpack_require__(3)(module))) - -/***/ }), -/* 19 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.relationType = exports.lineType = exports.cleanupLabel = exports.addMembers = exports.addRelation = exports.getRelations = exports.getClasses = exports.getClass = exports.clear = exports.addClass = undefined; - -var _logger = __webpack_require__(0); - -var relations = []; - -var classes; -classes = {}; - -/** - * Function called by parser when a node definition has been found. - * @param id - * @param text - * @param type - * @param style - */ -var addClass = exports.addClass = function addClass(id) { - if (typeof classes[id] === 'undefined') { - classes[id] = { - id: id, - methods: [], - members: [] - }; - } -}; - -var clear = exports.clear = function clear() { - relations = []; - classes = {}; -}; - -var getClass = exports.getClass = function getClass(id) { - return classes[id]; -}; -var getClasses = exports.getClasses = function getClasses() { - return classes; -}; - -var getRelations = exports.getRelations = function getRelations() { - return relations; -}; - -var addRelation = exports.addRelation = function addRelation(relation) { - _logger.logger.warn('Adding relation: ' + JSON.stringify(relation)); - addClass(relation.id1); - addClass(relation.id2); - relations.push(relation); -}; - -var addMembers = exports.addMembers = function addMembers(className, MembersArr) { - var theClass = classes[className]; - if (typeof MembersArr === 'string') { - if (MembersArr.substr(-1) === ')') { - theClass.methods.push(MembersArr); - } else { - theClass.members.push(MembersArr); - } - } -}; - -var cleanupLabel = exports.cleanupLabel = function cleanupLabel(label) { - if (label.substring(0, 1) === ':') { - return label.substr(2).trim(); - } else { - return label.trim(); - } -}; - -var lineType = exports.lineType = { - LINE: 0, - DOTTED_LINE: 1 -}; - -var relationType = exports.relationType = { - AGGREGATION: 0, - EXTENSION: 1, - COMPOSITION: 2, - DEPENDENCY: 3 -}; - -exports.default = { - addClass: addClass, - clear: clear, - getClass: getClass, - getClasses: getClasses, - getRelations: getRelations, - addRelation: addRelation, - addMembers: addMembers, - cleanupLabel: cleanupLabel, - lineType: lineType, - relationType: relationType -}; - -/***/ }), -/* 20 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process, module) { - -/* parser generated by jison 0.4.17 */ -/* - Returns a Parser object of the following structure: - - Parser: { - yy: {} - } - - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } - - - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } - - - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -var parser = function () { - var o = function o(k, v, _o, l) { - for (_o = _o || {}, l = k.length; l--; _o[k[l]] = v) {}return _o; - }, - $V0 = [2, 3], - $V1 = [1, 7], - $V2 = [7, 12, 15, 17, 19, 20, 21], - $V3 = [7, 11, 12, 15, 17, 19, 20, 21], - $V4 = [2, 20], - $V5 = [1, 32]; - var parser = { trace: function trace() {}, - yy: {}, - symbols_: { "error": 2, "start": 3, "GG": 4, ":": 5, "document": 6, "EOF": 7, "DIR": 8, "options": 9, "body": 10, "OPT": 11, "NL": 12, "line": 13, "statement": 14, "COMMIT": 15, "commit_arg": 16, "BRANCH": 17, "ID": 18, "CHECKOUT": 19, "MERGE": 20, "RESET": 21, "reset_arg": 22, "STR": 23, "HEAD": 24, "reset_parents": 25, "CARET": 26, "$accept": 0, "$end": 1 }, - terminals_: { 2: "error", 4: "GG", 5: ":", 7: "EOF", 8: "DIR", 11: "OPT", 12: "NL", 15: "COMMIT", 17: "BRANCH", 18: "ID", 19: "CHECKOUT", 20: "MERGE", 21: "RESET", 23: "STR", 24: "HEAD", 26: "CARET" }, - productions_: [0, [3, 4], [3, 5], [6, 0], [6, 2], [9, 2], [9, 1], [10, 0], [10, 2], [13, 2], [13, 1], [14, 2], [14, 2], [14, 2], [14, 2], [14, 2], [16, 0], [16, 1], [22, 2], [22, 2], [25, 0], [25, 2]], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { - /* this == yyval */ - - var $0 = $$.length - 1; - switch (yystate) { - case 1: - return $$[$0 - 1]; - break; - case 2: - yy.setDirection($$[$0 - 3]);return $$[$0 - 1]; - break; - case 4: - yy.setOptions($$[$0 - 1]);this.$ = $$[$0]; - break; - case 5: - $$[$0 - 1] += $$[$0];this.$ = $$[$0 - 1]; - break; - case 7: - this.$ = []; - break; - case 8: - $$[$0 - 1].push($$[$0]);this.$ = $$[$0 - 1]; - break; - case 9: - this.$ = $$[$0 - 1]; - break; - case 11: - yy.commit($$[$0]); - break; - case 12: - yy.branch($$[$0]); - break; - case 13: - yy.checkout($$[$0]); - break; - case 14: - yy.merge($$[$0]); - break; - case 15: - yy.reset($$[$0]); - break; - case 16: - this.$ = ""; - break; - case 17: - this.$ = $$[$0]; - break; - case 18: - this.$ = $$[$0 - 1] + ":" + $$[$0]; - break; - case 19: - this.$ = $$[$0 - 1] + ":" + yy.count;yy.count = 0; - break; - case 20: - yy.count = 0; - break; - case 21: - yy.count += 1; - break; - } - }, - table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, { 5: [1, 3], 8: [1, 4] }, { 6: 5, 7: $V0, 9: 6, 12: $V1 }, { 5: [1, 8] }, { 7: [1, 9] }, o($V2, [2, 7], { 10: 10, 11: [1, 11] }), o($V3, [2, 6]), { 6: 12, 7: $V0, 9: 6, 12: $V1 }, { 1: [2, 1] }, { 7: [2, 4], 12: [1, 15], 13: 13, 14: 14, 15: [1, 16], 17: [1, 17], 19: [1, 18], 20: [1, 19], 21: [1, 20] }, o($V3, [2, 5]), { 7: [1, 21] }, o($V2, [2, 8]), { 12: [1, 22] }, o($V2, [2, 10]), { 12: [2, 16], 16: 23, 23: [1, 24] }, { 18: [1, 25] }, { 18: [1, 26] }, { 18: [1, 27] }, { 18: [1, 30], 22: 28, 24: [1, 29] }, { 1: [2, 2] }, o($V2, [2, 9]), { 12: [2, 11] }, { 12: [2, 17] }, { 12: [2, 12] }, { 12: [2, 13] }, { 12: [2, 14] }, { 12: [2, 15] }, { 12: $V4, 25: 31, 26: $V5 }, { 12: $V4, 25: 33, 26: $V5 }, { 12: [2, 18] }, { 12: $V4, 25: 34, 26: $V5 }, { 12: [2, 19] }, { 12: [2, 21] }], - defaultActions: { 9: [2, 1], 21: [2, 2], 23: [2, 11], 24: [2, 17], 25: [2, 12], 26: [2, 13], 27: [2, 14], 28: [2, 15], 31: [2, 18], 33: [2, 19], 34: [2, 21] }, - parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var _parseError = function _parseError(msg, hash) { - this.message = msg; - this.hash = hash; - }; - - _parseError.prototype = Error; - - throw new _parseError(str, hash); - } - }, - parse: function parse(input) { - var self = this, - stack = [0], - tstack = [], - vstack = [null], - lstack = [], - table = this.table, - yytext = '', - yylineno = 0, - yyleng = 0, - recovering = 0, - TERROR = 2, - EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer; - sharedState.yy.parser = this; - if (typeof lexer.yylloc == 'undefined') { - lexer.yylloc = {}; - } - var yyloc = lexer.yylloc; - lstack.push(yyloc); - var ranges = lexer.options && lexer.options.ranges; - if (typeof sharedState.yy.parseError === 'function') { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function popStack(n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - function lex() { - var token; - token = tstack.pop() || lexer.lex() || EOF; - if (typeof token !== 'number') { - if (token instanceof Array) { - tstack = token; - token = tstack.pop(); - } - token = self.symbols_[token] || token; - } - return token; - } - var symbol, - preErrorSymbol, - state, - action, - a, - r, - yyval = {}, - p, - len, - newState, - expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == 'undefined') { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === 'undefined' || !action.length || !action[0]) { - var errStr = ''; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push('\'' + this.terminals_[p] + '\''); - } - } - if (lexer.showPosition) { - errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; - } else { - errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); - } - this.parseError(errStr, { - text: lexer.match, - token: this.terminals_[symbol] || symbol, - line: lexer.yylineno, - loc: yyloc, - expected: expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer.yytext); - lstack.push(lexer.yylloc); - stack.push(action[1]); - symbol = null; - if (!preErrorSymbol) { - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - if (recovering > 0) { - recovering--; - } - } else { - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]]; - } - r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); - if (typeof r !== 'undefined') { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } }; - /* generated by jison-lex 0.3.4 */ - var lexer = function () { - var lexer = { - - EOF: 1, - - parseError: function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - - // resets the lexer, sets new input - setInput: function setInput(input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0, 0]; - } - this.offset = 0; - return this; - }, - - // consumes and returns one char from the input - input: function input() { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - - this._input = this._input.slice(1); - return ch; - }, - - // unshifts one char (or a string) into the input - unput: function unput(ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len - }; - - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - - // When called from action, caches matched text and appends it on next action - more: function more() { - this._more = true; - return this; - }, - - // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. - reject: function reject() { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - return this; - }, - - // retain first n characters of the match - less: function less(n) { - this.unput(this.match.slice(n)); - }, - - // displays already matched input, i.e. for error messages - pastInput: function pastInput() { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, ""); - }, - - // displays upcoming input, i.e. for error messages - upcomingInput: function upcomingInput() { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20 - next.length); - } - return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); - }, - - // displays the character position where the lexing error occurred, i.e. for error messages - showPosition: function showPosition() { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - - // test the lexed token: return FALSE when not a match, otherwise return token - test_match: function test_match(match, indexed_rule) { - var token, lines, backup; - - if (this.options.backtrack_lexer) { - // save context - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - // recover context - for (var k in backup) { - this[k] = backup[k]; - } - return false; // rule action called reject() implying the next rule should be tested instead. - } - return false; - }, - - // return next match in input - next: function next() { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - - var token, match, tempMatch, index; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; // rule action called reject() implying a rule MISmatch. - } else { - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - - // return next match that has a token - lex: function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - - // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) - begin: function begin(condition) { - this.conditionStack.push(condition); - }, - - // pop the previously active lexer condition state off the condition stack - popState: function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - - // produce the lexer rule set which is active for the currently active lexer condition state - _currentRules: function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - - // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available - topState: function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - - // alias for begin(condition) - pushState: function pushState(condition) { - this.begin(condition); - }, - - // return the number of states currently on the stack - stateStackSize: function stateStackSize() { - return this.conditionStack.length; - }, - options: { "case-insensitive": true }, - performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { - var YYSTATE = YY_START; - switch ($avoiding_name_collisions) { - case 0: - return 12; - break; - case 1: - /* skip all whitespace */ - break; - case 2: - /* skip comments */ - break; - case 3: - /* skip comments */ - break; - case 4: - return 4; - break; - case 5: - return 15; - break; - case 6: - return 17; - break; - case 7: - return 20; - break; - case 8: - return 21; - break; - case 9: - return 19; - break; - case 10: - return 8; - break; - case 11: - return 8; - break; - case 12: - return 5; - break; - case 13: - return 26; - break; - case 14: - this.begin("options"); - break; - case 15: - this.popState(); - break; - case 16: - return 11; - break; - case 17: - this.begin("string"); - break; - case 18: - this.popState(); - break; - case 19: - return 23; - break; - case 20: - return 18; - break; - case 21: - return 7; - break; - } - }, - rules: [/^(?:(\r?\n)+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:gitGraph\b)/i, /^(?:commit\b)/i, /^(?:branch\b)/i, /^(?:merge\b)/i, /^(?:reset\b)/i, /^(?:checkout\b)/i, /^(?:LR\b)/i, /^(?:BT\b)/i, /^(?::)/i, /^(?:\^)/i, /^(?:options\r?\n)/i, /^(?:end\r?\n)/i, /^(?:[^\n]+\r?\n)/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[a-zA-Z][a-zA-Z0-9_]+)/i, /^(?:$)/i], - conditions: { "options": { "rules": [15, 16], "inclusive": false }, "string": { "rules": [18, 19], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 20, 21], "inclusive": true } } - }; - return lexer; - }(); - parser.lexer = lexer; - function Parser() { - this.yy = {}; - } - Parser.prototype = parser;parser.Parser = Parser; - return new Parser(); -}(); - -if (true) { - exports.parser = parser; - exports.Parser = parser.Parser; - exports.parse = function () { - return parser.parse.apply(parser, arguments); - }; - exports.main = function commonjsMain(args) { - if (!args[1]) { - console.log('Usage: ' + args[0] + ' FILE'); - process.exit(1); - } - var source = __webpack_require__(4).readFileSync(__webpack_require__(5).normalize(args[1]), "utf8"); - return exports.parser.parse(source); - }; - if (typeof module !== 'undefined' && __webpack_require__.c[__webpack_require__.s] === module) { - exports.main(process.argv.slice(1)); - } -} -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2), __webpack_require__(3)(module))) - -/***/ }), -/* 21 */ -/***/ (function(module, exports) { - -module.exports = require("lodash/each"); - -/***/ }), -/* 22 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getHead = exports.getDirection = exports.getCurrentBranch = exports.getCommitsArray = exports.getCommits = exports.getBranches = exports.getBranchesAsObjArray = exports.clear = exports.prettyPrint = exports.reset = exports.checkout = exports.merge = exports.branch = exports.commit = exports.getOptions = exports.setOptions = exports.setDirection = undefined; - -var _orderBy2 = __webpack_require__(42); - -var _orderBy3 = _interopRequireDefault(_orderBy2); - -var _map2 = __webpack_require__(43); - -var _map3 = _interopRequireDefault(_map2); - -var _uniqBy2 = __webpack_require__(44); - -var _uniqBy3 = _interopRequireDefault(_uniqBy2); - -var _each2 = __webpack_require__(21); - -var _each3 = _interopRequireDefault(_each2); - -var _maxBy2 = __webpack_require__(45); - -var _maxBy3 = _interopRequireDefault(_maxBy2); - -var _logger = __webpack_require__(0); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var commits = {}; -var head = null; -var branches = { 'master': head }; -var curBranch = 'master'; -var direction = 'LR'; -var seq = 0; - -function getRandomInt(min, max) { - return Math.floor(Math.random() * (max - min)) + min; -} - -function getId() { - var pool = '0123456789abcdef'; - var id = ''; - for (var i = 0; i < 7; i++) { - id += pool[getRandomInt(0, 16)]; - } - return id; -} - -function isfastforwardable(currentCommit, otherCommit) { - _logger.logger.debug('Entering isfastforwardable:', currentCommit.id, otherCommit.id); - while (currentCommit.seq <= otherCommit.seq && currentCommit !== otherCommit) { - // only if other branch has more commits - if (otherCommit.parent == null) break; - if (Array.isArray(otherCommit.parent)) { - _logger.logger.debug('In merge commit:', otherCommit.parent); - return isfastforwardable(currentCommit, commits[otherCommit.parent[0]]) || isfastforwardable(currentCommit, commits[otherCommit.parent[1]]); - } else { - otherCommit = commits[otherCommit.parent]; - } - } - _logger.logger.debug(currentCommit.id, otherCommit.id); - return currentCommit.id === otherCommit.id; -} - -function isReachableFrom(currentCommit, otherCommit) { - var currentSeq = currentCommit.seq; - var otherSeq = otherCommit.seq; - if (currentSeq > otherSeq) return isfastforwardable(otherCommit, currentCommit); - return false; -} - -var setDirection = exports.setDirection = function setDirection(dir) { - direction = dir; -}; -var options = {}; -var setOptions = exports.setOptions = function setOptions(rawOptString) { - _logger.logger.debug('options str', rawOptString); - rawOptString = rawOptString && rawOptString.trim(); - rawOptString = rawOptString || '{}'; - try { - options = JSON.parse(rawOptString); - } catch (e) { - _logger.logger.error('error while parsing gitGraph options', e.message); - } -}; - -var getOptions = exports.getOptions = function getOptions() { - return options; -}; - -var commit = exports.commit = function commit(msg) { - var commit = { - id: getId(), - message: msg, - seq: seq++, - parent: head == null ? null : head.id - }; - head = commit; - commits[commit.id] = commit; - branches[curBranch] = commit.id; - _logger.logger.debug('in pushCommit ' + commit.id); -}; - -var branch = exports.branch = function branch(name) { - branches[name] = head != null ? head.id : null; - _logger.logger.debug('in createBranch'); -}; - -var merge = exports.merge = function merge(otherBranch) { - var currentCommit = commits[branches[curBranch]]; - var otherCommit = commits[branches[otherBranch]]; - if (isReachableFrom(currentCommit, otherCommit)) { - _logger.logger.debug('Already merged'); - return; - } - if (isfastforwardable(currentCommit, otherCommit)) { - branches[curBranch] = branches[otherBranch]; - head = commits[branches[curBranch]]; - } else { - // create merge commit - var commit = { - id: getId(), - message: 'merged branch ' + otherBranch + ' into ' + curBranch, - seq: seq++, - parent: [head == null ? null : head.id, branches[otherBranch]] - }; - head = commit; - commits[commit.id] = commit; - branches[curBranch] = commit.id; - } - _logger.logger.debug(branches); - _logger.logger.debug('in mergeBranch'); -}; - -var checkout = exports.checkout = function checkout(branch) { - _logger.logger.debug('in checkout'); - curBranch = branch; - var id = branches[curBranch]; - head = commits[id]; -}; - -var reset = exports.reset = function reset(commitRef) { - _logger.logger.debug('in reset', commitRef); - var ref = commitRef.split(':')[0]; - var parentCount = parseInt(commitRef.split(':')[1]); - var commit = ref === 'HEAD' ? head : commits[branches[ref]]; - _logger.logger.debug(commit, parentCount); - while (parentCount > 0) { - commit = commits[commit.parent]; - parentCount--; - if (!commit) { - var err = 'Critical error - unique parent commit not found during reset'; - _logger.logger.error(err); - throw err; - } - } - head = commit; - branches[curBranch] = commit.id; -}; - -function upsert(arr, key, newval) { - var index = arr.indexOf(key); - if (index === -1) { - arr.push(newval); - } else { - arr.splice(index, 1, newval); - } -} - -function prettyPrintCommitHistory(commitArr) { - var commit = (0, _maxBy3.default)(commitArr, 'seq'); - var line = ''; - commitArr.forEach(function (c) { - if (c === commit) { - line += '\t*'; - } else { - line += '\t|'; - } - }); - var label = [line, commit.id, commit.seq]; - (0, _each3.default)(branches, function (value, key) { - if (value === commit.id) label.push(key); - }); - _logger.logger.debug(label.join(' ')); - if (Array.isArray(commit.parent)) { - var newCommit = commits[commit.parent[0]]; - upsert(commitArr, commit, newCommit); - commitArr.push(commits[commit.parent[1]]); - } else if (commit.parent == null) { - return; - } else { - var nextCommit = commits[commit.parent]; - upsert(commitArr, commit, nextCommit); - } - commitArr = (0, _uniqBy3.default)(commitArr, 'id'); - prettyPrintCommitHistory(commitArr); -} - -var prettyPrint = exports.prettyPrint = function prettyPrint() { - _logger.logger.debug(commits); - var node = getCommitsArray()[0]; - prettyPrintCommitHistory([node]); -}; - -var clear = exports.clear = function clear() { - commits = {}; - head = null; - branches = { 'master': head }; - curBranch = 'master'; - seq = 0; -}; - -var getBranchesAsObjArray = exports.getBranchesAsObjArray = function getBranchesAsObjArray() { - var branchArr = (0, _map3.default)(branches, function (value, key) { - return { 'name': key, 'commit': commits[value] }; - }); - return branchArr; -}; - -var getBranches = exports.getBranches = function getBranches() { - return branches; -}; -var getCommits = exports.getCommits = function getCommits() { - return commits; -}; -var getCommitsArray = exports.getCommitsArray = function getCommitsArray() { - var commitArr = Object.keys(commits).map(function (key) { - return commits[key]; - }); - commitArr.forEach(function (o) { - _logger.logger.debug(o.id); - }); - return (0, _orderBy3.default)(commitArr, ['seq'], ['desc']); -}; -var getCurrentBranch = exports.getCurrentBranch = function getCurrentBranch() { - return curBranch; -}; -var getDirection = exports.getDirection = function getDirection() { - return direction; -}; -var getHead = exports.getHead = function getHead() { - return head; -}; - -exports.default = { - setDirection: setDirection, - setOptions: setOptions, - getOptions: getOptions, - commit: commit, - branch: branch, - merge: merge, - checkout: checkout, - reset: reset, - prettyPrint: prettyPrint, - clear: clear, - getBranchesAsObjArray: getBranchesAsObjArray, - getBranches: getBranches, - getCommits: getCommits, - getCommitsArray: getCommitsArray, - getCurrentBranch: getCurrentBranch, - getDirection: getDirection, - getHead: getHead -}; - -/***/ }), -/* 23 */ -/***/ (function(module, exports) { - -module.exports = {"name":"mermaid","version":"7.1.0","description":"Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.","main":"dist/mermaid.core.js","keywords":["diagram","markdown","flowchart","sequence diagram","gantt","class diagram","git graph"],"scripts":{"build":"node -r babel-register ./node_modules/.bin/webpack --progress --colors","build:watch":"yarn build --watch","release":"yarn build -p --config webpack.config.prod.js","upgrade":"yarn upgrade --latest && yarn remove d3 && yarn add d3@3.5.17","lint":"standard","karma":"node -r babel-register node_modules/.bin/karma start karma.conf.js --single-run","test":"yarn lint && yarn karma","jison":"node -r babel-register node_modules/.bin/gulp jison","prepublishOnly":"yarn build && yarn release && yarn test"},"repository":{"type":"git","url":"https://github.com/knsv/mermaid"},"author":"Knut Sveidqvist","license":"MIT","standard":{"ignore":["**/parser/*.js","dist/**/*.js"]},"dependencies":{"d3":"3.5.17","dagre-d3-renderer":"^0.4.24","dagre-layout":"^0.8.0","he":"^1.1.1","lodash":"^4.17.4","moment":"^2.18.1"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-lodash":"^3.2.11","babel-preset-env":"^1.6.0","babel-preset-es2015":"^6.24.1","codeclimate-test-reporter":"^0.5.0","css-loader":"^0.28.7","css-to-string-loader":"^0.1.3","extract-text-webpack-plugin":"^3.0.0","gulp":"^3.9.1","gulp-filelog":"^0.4.1","gulp-jison":"^1.2.0","inject-loader":"^3.0.1","jasmine":"^2.8.0","jasmine-es6":"^0.4.1","jison":"^0.4.18","karma":"^1.7.1","karma-chrome-launcher":"^2.2.0","karma-jasmine":"^1.1.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^2.0.4","less":"^2.7.2","less-loader":"^4.0.5","puppeteer":"^0.10.2","standard":"^10.0.3","style-loader":"^0.18.2","webpack":"^3.5.6","webpack-node-externals":"^1.6.0"},"files":["dist","src"]} - -/***/ }), -/* 24 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _he = __webpack_require__(26); - -var _he2 = _interopRequireDefault(_he); - -var _mermaidAPI = __webpack_require__(27); - -var _mermaidAPI2 = _interopRequireDefault(_mermaidAPI); - -var _logger = __webpack_require__(0); - -var _package = __webpack_require__(23); - -var _package2 = _interopRequireDefault(_package); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Web page integration module for the mermaid framework. It uses the mermaidAPI for mermaid functionality and to render - * the diagrams to svg code. - */ -var nextId = 0; - -/** - * ## init - * Function that goes through the document to find the chart definitions in there and render them. - * - * The function tags the processed attributes with the attribute data-processed and ignores found elements with the - * attribute already set. This way the init function can be triggered several times. - * - * Optionally, `init` can accept in the second argument one of the following: - * - a DOM Node - * - an array of DOM nodes (as would come from a jQuery selector) - * - a W3C selector, a la `.mermaid` - * - * ```mermaid - * graph LR; - * a(Find elements)-->b{Processed} - * b-->|Yes|c(Leave element) - * b-->|No |d(Transform) - * ``` - * Renders the mermaid diagrams - * @param nodes a css selector or an array of nodes - */ -var init = function init() { - var conf = _mermaidAPI2.default.getConfig(); - _logger.logger.debug('Starting rendering diagrams'); - var nodes; - if (arguments.length >= 2) { - /*! sequence config was passed as #1 */ - if (typeof arguments[0] !== 'undefined') { - mermaid.sequenceConfig = arguments[0]; - } - - nodes = arguments[1]; - } else { - nodes = arguments[0]; - } - - // if last argument is a function this is the callback function - var callback; - if (typeof arguments[arguments.length - 1] === 'function') { - callback = arguments[arguments.length - 1]; - _logger.logger.debug('Callback function found'); - } else { - if (typeof conf.mermaid !== 'undefined') { - if (typeof conf.mermaid.callback === 'function') { - callback = conf.mermaid.callback; - _logger.logger.debug('Callback function found'); - } else { - _logger.logger.debug('No Callback function found'); - } - } - } - nodes = nodes === undefined ? document.querySelectorAll('.mermaid') : typeof nodes === 'string' ? document.querySelectorAll(nodes) : nodes instanceof window.Node ? [nodes] : nodes; // Last case - sequence config was passed pick next - - if (typeof global.mermaid_config !== 'undefined') { - _mermaidAPI2.default.initialize(global.mermaid_config); - } - _logger.logger.debug('Start On Load before: ' + mermaid.startOnLoad); - if (typeof mermaid.startOnLoad !== 'undefined') { - _logger.logger.debug('Start On Load inner: ' + mermaid.startOnLoad); - _mermaidAPI2.default.initialize({ startOnLoad: mermaid.startOnLoad }); - } - - if (typeof mermaid.ganttConfig !== 'undefined') { - _mermaidAPI2.default.initialize({ gantt: mermaid.ganttConfig }); - } - - var txt; - var insertSvg = function insertSvg(svgCode, bindFunctions) { - element.innerHTML = svgCode; - if (typeof callback !== 'undefined') { - callback(id); - } - bindFunctions(element); - }; - - for (var i = 0; i < nodes.length; i++) { - var element = nodes[i]; - - /*! Check if previously processed */ - if (!element.getAttribute('data-processed')) { - element.setAttribute('data-processed', true); - } else { - continue; - } - - var id = 'mermaidChart' + nextId++; - - // Fetch the graph definition including tags - txt = element.innerHTML; - - // transforms the html to pure text - txt = _he2.default.decode(txt).trim(); - - _mermaidAPI2.default.render(id, txt, insertSvg, element); - } -}; - -var version = function version() { - return 'v' + _package2.default.version; -}; - -var initialize = function initialize(config) { - _logger.logger.debug('Initializing mermaid'); - if (typeof config.mermaid !== 'undefined') { - if (typeof config.mermaid.startOnLoad !== 'undefined') { - mermaid.startOnLoad = config.mermaid.startOnLoad; - } - if (typeof config.mermaid.htmlLabels !== 'undefined') { - mermaid.htmlLabels = config.mermaid.htmlLabels; - } - } - _mermaidAPI2.default.initialize(config); -}; - -/** - * ##contentLoaded - * Callback function that is called when page is loaded. This functions fetches configuration for mermaid rendering and - * calls init for rendering the mermaid diagrams on the page. - */ -var contentLoaded = function contentLoaded() { - var config; - // Check state of start config mermaid namespace - if (typeof global.mermaid_config !== 'undefined') { - if (global.mermaid_config.htmlLabels === false) { - mermaid.htmlLabels = false; - } - } - - if (mermaid.startOnLoad) { - // For backwards compatability reasons also check mermaid_config variable - if (typeof global.mermaid_config !== 'undefined') { - // Check if property startOnLoad is set - if (global.mermaid_config.startOnLoad === true) { - mermaid.init(); - } - } else { - // No config found, do check API config - config = _mermaidAPI2.default.getConfig(); - if (config.startOnLoad) { - mermaid.init(); - } - } - } else { - if (typeof mermaid.startOnLoad === 'undefined') { - _logger.logger.debug('In start, no config'); - config = _mermaidAPI2.default.getConfig(); - if (config.startOnLoad) { - mermaid.init(); - } - } - } -}; - -if (typeof document !== 'undefined') { - /*! - * Wait for document loaded before starting the execution - */ - window.addEventListener('load', function () { - contentLoaded(); - }, false); -} - -var mermaid = { - startOnLoad: true, - htmlLabels: true, - - mermaidAPI: _mermaidAPI2.default, - parse: _mermaidAPI2.default.parse, - render: _mermaidAPI2.default.render, - - init: init, - initialize: initialize, - version: version, - - contentLoaded: contentLoaded -}; - -exports.default = mermaid; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(25))) - -/***/ }), -/* 25 */ -/***/ (function(module, exports) { - -var g; - -// This works in non-strict mode -g = (function() { - return this; -})(); - -try { - // This works if eval is allowed (see CSP) - g = g || Function("return this")() || (1,eval)("this"); -} catch(e) { - // This works if the window reference is available - if(typeof window === "object") - g = window; -} - -// g can still be undefined, but nothing to do about it... -// We return undefined, instead of nothing here, so it's -// easier to handle this case. if(!global) { ...} - -module.exports = g; - - -/***/ }), -/* 26 */ -/***/ (function(module, exports) { - -module.exports = require("he"); - -/***/ }), -/* 27 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.decodeEntities = exports.encodeEntities = exports.version = undefined; - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /** - * --- - * title: mermaidAPI - * order: 5 - * --- - * # mermaidAPI - * This is the api to be used when handling the integration with the web page instead of using the default integration - * (mermaid.js). - * - * The core of this api is the **render** function that given a graph definitionas text renders the graph/diagram and - * returns a svg element for the graph. It is is then up to the user of the API to make use of the svg, either insert it - * somewhere in the page or something completely different. - */ - - -var _logger = __webpack_require__(0); - -var _graphDb = __webpack_require__(8); - -var _graphDb2 = _interopRequireDefault(_graphDb); - -var _utils = __webpack_require__(9); - -var _utils2 = _interopRequireDefault(_utils); - -var _flowRenderer = __webpack_require__(29); - -var _flowRenderer2 = _interopRequireDefault(_flowRenderer); - -var _sequenceRenderer = __webpack_require__(31); - -var _sequenceRenderer2 = _interopRequireDefault(_sequenceRenderer); - -var _exampleRenderer = __webpack_require__(33); - -var _exampleRenderer2 = _interopRequireDefault(_exampleRenderer); - -var _example = __webpack_require__(15); - -var _example2 = _interopRequireDefault(_example); - -var _flow = __webpack_require__(10); - -var _flow2 = _interopRequireDefault(_flow); - -var _dot = __webpack_require__(11); - -var _dot2 = _interopRequireDefault(_dot); - -var _sequenceDiagram = __webpack_require__(12); - -var _sequenceDiagram2 = _interopRequireDefault(_sequenceDiagram); - -var _sequenceDb = __webpack_require__(13); - -var _sequenceDb2 = _interopRequireDefault(_sequenceDb); - -var _exampleDb = __webpack_require__(14); - -var _exampleDb2 = _interopRequireDefault(_exampleDb); - -var _ganttRenderer = __webpack_require__(34); - -var _ganttRenderer2 = _interopRequireDefault(_ganttRenderer); - -var _gantt = __webpack_require__(16); - -var _gantt2 = _interopRequireDefault(_gantt); - -var _ganttDb = __webpack_require__(17); - -var _ganttDb2 = _interopRequireDefault(_ganttDb); - -var _classDiagram = __webpack_require__(18); - -var _classDiagram2 = _interopRequireDefault(_classDiagram); - -var _classRenderer = __webpack_require__(35); - -var _classRenderer2 = _interopRequireDefault(_classRenderer); - -var _classDb = __webpack_require__(19); - -var _classDb2 = _interopRequireDefault(_classDb); - -var _gitGraph = __webpack_require__(20); - -var _gitGraph2 = _interopRequireDefault(_gitGraph); - -var _gitGraphRenderer = __webpack_require__(37); - -var _gitGraphRenderer2 = _interopRequireDefault(_gitGraphRenderer); - -var _gitGraphAst = __webpack_require__(22); - -var _gitGraphAst2 = _interopRequireDefault(_gitGraphAst); - -var _d = __webpack_require__(1); - -var _d2 = _interopRequireDefault(_d); - -var _package = __webpack_require__(23); - -var _package2 = _interopRequireDefault(_package); - -var _mermaid = __webpack_require__(46); - -var _mermaid2 = _interopRequireDefault(_mermaid); - -var _mermaid3 = __webpack_require__(48); - -var _mermaid4 = _interopRequireDefault(_mermaid3); - -var _mermaid5 = __webpack_require__(50); - -var _mermaid6 = _interopRequireDefault(_mermaid5); - -var _mermaid7 = __webpack_require__(52); - -var _mermaid8 = _interopRequireDefault(_mermaid7); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var themes = { - dark: _mermaid2.default, - default: _mermaid4.default, - forest: _mermaid6.default, - neutral: _mermaid8.default - - /** - * ## Configuration - * These are the default options which can be overridden with the initialization call as in the example below: - * ``` - * mermaid.initialize({ - * flowchart:{ - * htmlLabels: false - * } - * }); - * ``` - */ -};var config = { - theme: _mermaid4.default, - - /** - * logLevel , decides the amount of logging to be used. - * * debug: 1 - * * info: 2 - * * warn: 3 - * * error: 4 - * * fatal: 5 - */ - logLevel: 5, - - /** - * **startOnLoad** - This options controls whether or mermaid starts when the page loads - */ - startOnLoad: true, - - /** - * **arrowMarkerAbsolute** - This options controls whether or arrow markers in html code will be absolute paths or - * an anchor, #. This matters if you are using base tag settings. - */ - arrowMarkerAbsolute: false, - - /** - * ### flowchart - * *The object containing configurations specific for flowcharts* - */ - flowchart: { - /** - * **htmlLabels** - Flag for setting whether or not a html tag should be used for rendering labels - * on the edges - */ - htmlLabels: true, - /** - * **useMaxWidth** - Flag for setting whether or not a all available width should be used for - * the diagram. - */ - useMaxWidth: true - }, - - /** - * ### sequenceDiagram - * The object containing configurations specific for sequence diagrams - */ - sequenceDiagram: { - - /** - * **diagramMarginX** - margin to the right and left of the sequence diagram - */ - diagramMarginX: 50, - - /** - * **diagramMarginY** - margin to the over and under the sequence diagram - */ - diagramMarginY: 10, - - /** - * **actorMargin** - Margin between actors - */ - actorMargin: 50, - - /** - * **width** - Width of actor boxes - */ - width: 150, - - /** - * **height** - Height of actor boxes - */ - height: 65, - - /** - * **boxMargin** - Margin around loop boxes - */ - boxMargin: 10, - - /** - * **boxTextMargin** - margin around the text in loop/alt/opt boxes - */ - boxTextMargin: 5, - - /** - * **noteMargin** - margin around notes - */ - noteMargin: 10, - - /** - * **messageMargin** - Space between messages - */ - messageMargin: 35, - - /** - * **mirrorActors** - mirror actors under diagram - */ - mirrorActors: true, - - /** - * **bottomMarginAdj** - Depending on css styling this might need adjustment. - * Prolongs the edge of the diagram downwards - */ - bottomMarginAdj: 1, - - /** - * **useMaxWidth** - when this flag is set the height and width is set to 100% and is then scaling with the - * available space if not the absolute space required is used - */ - useMaxWidth: true - }, - - /** ### gantt - * The object containing configurations specific for gantt diagrams* - */ - gantt: { - /** - * **titleTopMargin** - margin top for the text over the gantt diagram - */ - titleTopMargin: 25, - - /** - * **barHeight** - the height of the bars in the graph - */ - barHeight: 20, - - /** - * **barGap** - the margin between the different activities in the gantt diagram - */ - barGap: 4, - - /** - * **topPadding** - margin between title and gantt diagram and between axis and gantt diagram. - */ - topPadding: 50, - - /** - * **leftPadding** - the space allocated for the section name to the left of the activities. - */ - leftPadding: 75, - - /** - * **gridLineStartPadding** - Vertical starting position of the grid lines - */ - gridLineStartPadding: 35, - - /** - * **fontSize** - font size ... - */ - fontSize: 11, - - /** - * **fontFamily** - font family ... - */ - fontFamily: '"Open-Sans", "sans-serif"', - - /** - * **numberSectionStyles** - the number of alternating section styles - */ - numberSectionStyles: 3, - - /** - * **axisFormatter** - formatting of the axis, this might need adjustment to match your locale and preferences - */ - axisFormatter: [ - // Within a day - ['%I:%M', function (d) { - return d.getHours(); - }], - // Monday a week - ['w. %U', function (d) { - return d.getDay() === 1; - }], - // Day within a week (not monday) - ['%a %d', function (d) { - return d.getDay() && d.getDate() !== 1; - }], - // within a month - ['%b %d', function (d) { - return d.getDate() !== 1; - }], - // Month - ['%m-%y', function (d) { - return d.getMonth(); - }]] - }, - classDiagram: {}, - gitGraph: {}, - info: {} -}; - -(0, _logger.setLogLevel)(config.logLevel); - -function parse(text) { - var graphType = _utils2.default.detectType(text); - var parser; - - switch (graphType) { - case 'gitGraph': - parser = _gitGraph2.default; - parser.parser.yy = _gitGraphAst2.default; - break; - case 'graph': - parser = _flow2.default; - parser.parser.yy = _graphDb2.default; - break; - case 'dotGraph': - parser = _dot2.default; - parser.parser.yy = _graphDb2.default; - break; - case 'sequenceDiagram': - parser = _sequenceDiagram2.default; - parser.parser.yy = _sequenceDb2.default; - break; - case 'info': - parser = _example2.default; - parser.parser.yy = _exampleDb2.default; - break; - case 'gantt': - parser = _gantt2.default; - parser.parser.yy = _ganttDb2.default; - break; - case 'classDiagram': - parser = _classDiagram2.default; - parser.parser.yy = _classDb2.default; - break; - } - - parser.parser.yy.parseError = function (str, hash) { - var error = { str: str, hash: hash }; - throw error; - }; - - parser.parse(text); -} - -/** - * ## version - * Function returning version information - * @returns {string} A string containing the version info - */ -var version = exports.version = function version() { - return _package2.default.version; -}; - -var encodeEntities = exports.encodeEntities = function encodeEntities(text) { - var txt = text; - - txt = txt.replace(/style.*:\S*#.*;/g, function (s) { - var innerTxt = s.substring(0, s.length - 1); - return innerTxt; - }); - txt = txt.replace(/classDef.*:\S*#.*;/g, function (s) { - var innerTxt = s.substring(0, s.length - 1); - return innerTxt; - }); - - txt = txt.replace(/#\w+;/g, function (s) { - var innerTxt = s.substring(1, s.length - 1); - - var isInt = /^\+?\d+$/.test(innerTxt); - if (isInt) { - return 'fl°°' + innerTxt + '¶ß'; - } else { - return 'fl°' + innerTxt + '¶ß'; - } - }); - - return txt; -}; - -var decodeEntities = exports.decodeEntities = function decodeEntities(text) { - var txt = text; - - txt = txt.replace(/fl°°/g, function () { - return '&#'; - }); - txt = txt.replace(/fl°/g, function () { - return '&'; - }); - txt = txt.replace(/¶ß/g, function () { - return ';'; - }); - - return txt; -}; -/** - * ##render - * Function that renders an svg with a graph from a chart definition. Usage example below. - * - * ``` - * mermaidAPI.initialize({ - * startOnLoad:true - * }); - * $(function(){ - * var graphDefinition = 'graph TB\na-->b'; - * var cb = function(svgGraph){ - * console.log(svgGraph); - * }; - * mermaidAPI.render('id1',graphDefinition,cb); - * }); - *``` - * @param id the id of the element to be rendered - * @param txt the graph definition - * @param cb callback which is called after rendering is finished with the svg code as inparam. - * @param container selector to element in which a div with the graph temporarily will be inserted. In one is - * provided a hidden div will be inserted in the body of the page instead. The element will be removed when rendering is - * completed. - */ -var render = function render(id, txt, cb, container) { - if (typeof container !== 'undefined') { - container.innerHTML = ''; - - _d2.default.select(container).append('div').attr('id', 'd' + id).append('svg').attr('id', id).attr('width', '100%').attr('xmlns', 'http://www.w3.org/2000/svg').append('g'); - } else { - var _element = document.querySelector('#' + 'd' + id); - if (_element) { - _element.innerHTML = ''; - } - - _d2.default.select('body').append('div').attr('id', 'd' + id).append('svg').attr('id', id).attr('width', '100%').attr('xmlns', 'http://www.w3.org/2000/svg').append('g'); - } - - window.txt = txt; - txt = encodeEntities(txt); - - var element = _d2.default.select('#d' + id).node(); - var graphType = _utils2.default.detectType(txt); - switch (graphType) { - case 'gitGraph': - config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute; - _gitGraphRenderer2.default.setConf(config.gitGraph); - _gitGraphRenderer2.default.draw(txt, id, false); - break; - case 'graph': - config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute; - _flowRenderer2.default.setConf(config.flowchart); - _flowRenderer2.default.draw(txt, id, false); - break; - case 'dotGraph': - config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute; - _flowRenderer2.default.setConf(config.flowchart); - _flowRenderer2.default.draw(txt, id, true); - break; - case 'sequenceDiagram': - config.sequenceDiagram.arrowMarkerAbsolute = config.arrowMarkerAbsolute; - _sequenceRenderer2.default.setConf(config.sequenceDiagram); - _sequenceRenderer2.default.draw(txt, id); - break; - case 'gantt': - config.gantt.arrowMarkerAbsolute = config.arrowMarkerAbsolute; - _ganttRenderer2.default.setConf(config.gantt); - _ganttRenderer2.default.draw(txt, id); - break; - case 'classDiagram': - config.classDiagram.arrowMarkerAbsolute = config.arrowMarkerAbsolute; - _classRenderer2.default.setConf(config.classDiagram); - _classRenderer2.default.draw(txt, id); - break; - case 'info': - config.info.arrowMarkerAbsolute = config.arrowMarkerAbsolute; - _exampleRenderer2.default.draw(txt, id, version()); - break; - } - - // insert inline style into svg - var svg = element.firstChild; - var s = document.createElement('style'); - var cs = window.getComputedStyle(svg); - s.innerHTML = '\n ' + (themes[config.theme] || _mermaid4.default) + '\nsvg {\n color: ' + cs.color + ';\n font: ' + cs.font + ';\n}\n '; - svg.insertBefore(s, svg.firstChild); - - _d2.default.select('#d' + id).selectAll('foreignobject div').attr('xmlns', 'http://www.w3.org/1999/xhtml'); - - var url = ''; - if (config.arrowMarkerAbsolute) { - url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search; - url = url.replace(/\(/g, '\\('); - url = url.replace(/\)/g, '\\)'); - } - - // Fix for when the base tag is used - var svgCode = _d2.default.select('#d' + id).node().innerHTML.replace(/url\(#arrowhead/g, 'url(' + url + '#arrowhead', 'g'); - - svgCode = decodeEntities(svgCode); - - if (typeof cb !== 'undefined') { - cb(svgCode, _graphDb2.default.bindFunctions); - } else { - _logger.logger.warn('CB = undefined!'); - } - - var node = _d2.default.select('#d' + id).node(); - if (node !== null && typeof node.remove === 'function') { - _d2.default.select('#d' + id).node().remove(); - } - - return svgCode; -}; - -function render2(id, text, cb, containerElement) { - try { - if (arguments.length === 1) { - text = id; - id = 'mermaidId0'; - } - - if (typeof document === 'undefined') { - // Todo handle rendering serverside using phantomjs - } else { - // In browser - return render(id, text, cb, containerElement); - } - } catch (e) { - _logger.logger.warn(e); - } -} - -var setConf = function setConf(cnf) { - // Top level initially mermaid, gflow, sequenceDiagram and gantt - var lvl1Keys = Object.keys(cnf); - var i; - for (i = 0; i < lvl1Keys.length; i++) { - if (_typeof(cnf[lvl1Keys[i]]) === 'object') { - var lvl2Keys = Object.keys(cnf[lvl1Keys[i]]); - - var j; - for (j = 0; j < lvl2Keys.length; j++) { - _logger.logger.debug('Setting conf ', lvl1Keys[i], '-', lvl2Keys[j]); - if (typeof config[lvl1Keys[i]] === 'undefined') { - config[lvl1Keys[i]] = {}; - } - _logger.logger.debug('Setting config: ' + lvl1Keys[i] + ' ' + lvl2Keys[j] + ' to ' + cnf[lvl1Keys[i]][lvl2Keys[j]]); - config[lvl1Keys[i]][lvl2Keys[j]] = cnf[lvl1Keys[i]][lvl2Keys[j]]; - } - } else { - config[lvl1Keys[i]] = cnf[lvl1Keys[i]]; - } - } -}; - -function initialize(options) { - _logger.logger.debug('Initializing mermaidAPI'); - // Update default config with options supplied at initialization - if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') { - setConf(options); - } - (0, _logger.setLogLevel)(config.logLevel); -} - -function getConfig() { - return config; -} - -var mermaidAPI = { - render: render2, - parse: parse, - initialize: initialize, - detectType: _utils2.default.detectType, - getConfig: getConfig -}; - -exports.default = mermaidAPI; - -/***/ }), -/* 28 */ -/***/ (function(module, exports) { - -module.exports = require("d3"); - -/***/ }), -/* 29 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.draw = exports.getClasses = exports.addEdges = exports.addVertices = exports.setConf = undefined; - -var _graphDb = __webpack_require__(8); - -var _graphDb2 = _interopRequireDefault(_graphDb); - -var _flow = __webpack_require__(10); - -var _flow2 = _interopRequireDefault(_flow); - -var _dot = __webpack_require__(11); - -var _dot2 = _interopRequireDefault(_dot); - -var _d = __webpack_require__(1); - -var _d2 = _interopRequireDefault(_d); - -var _dagreD3Renderer = __webpack_require__(30); - -var _dagreD3Renderer2 = _interopRequireDefault(_dagreD3Renderer); - -var _logger = __webpack_require__(0); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var conf = {}; -var setConf = exports.setConf = function setConf(cnf) { - var keys = Object.keys(cnf); - var i; - for (i = 0; i < keys.length; i++) { - conf[keys[i]] = cnf[keys[i]]; - } -}; - -/** - * Function that adds the vertices found in the graph definition to the graph to be rendered. - * @param vert Object containing the vertices. - * @param g The graph that is to be drawn. - */ -var addVertices = exports.addVertices = function addVertices(vert, g) { - var keys = Object.keys(vert); - - var styleFromStyleArr = function styleFromStyleArr(styleStr, arr) { - var i; - // Create a compound style definition from the style definitions found for the node in the graph definition - for (i = 0; i < arr.length; i++) { - if (typeof arr[i] !== 'undefined') { - styleStr = styleStr + arr[i] + ';'; - } - } - - return styleStr; - }; - - // Iterate through each item in the vertice object (containing all the vertices found) in the graph definition - keys.forEach(function (id) { - var vertice = vert[id]; - var verticeText; - - /** - * Variable for storing the classes for the vertice - * @type {string} - */ - var classStr = ''; - - if (vertice.classes.length > 0) { - classStr = vertice.classes.join(' '); - } - - /** - * Variable for storing the extracted style for the vertice - * @type {string} - */ - var style = ''; - // Create a compound style definition from the style definitions found for the node in the graph definition - style = styleFromStyleArr(style, vertice.styles); - - // Use vertice id as text in the box if no text is provided by the graph definition - if (typeof vertice.text === 'undefined') { - verticeText = vertice.id; - } else { - verticeText = vertice.text; - } - - var labelTypeStr = ''; - if (conf.htmlLabels) { - labelTypeStr = 'html'; - verticeText = verticeText.replace(/fa:fa[\w-]+/g, function (s) { - return ''; - }); - } else { - var svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text'); - - var rows = verticeText.split(/
/); - - var j = 0; - for (j = 0; j < rows.length; j++) { - var tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan'); - tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve'); - tspan.setAttribute('dy', '1em'); - tspan.setAttribute('x', '1'); - tspan.textContent = rows[j]; - svgLabel.appendChild(tspan); - } - - labelTypeStr = 'svg'; - verticeText = svgLabel; - } - - var radious = 0; - var _shape = ''; - - // Set the shape based parameters - switch (vertice.type) { - case 'round': - radious = 5; - _shape = 'rect'; - break; - case 'square': - _shape = 'rect'; - break; - case 'diamond': - _shape = 'question'; - break; - case 'odd': - _shape = 'rect_left_inv_arrow'; - break; - case 'odd_right': - _shape = 'rect_left_inv_arrow'; - break; - case 'circle': - _shape = 'circle'; - break; - case 'ellipse': - _shape = 'ellipse'; - break; - case 'group': - _shape = 'rect'; - // Need to create a text node if using svg labels, see #367 - verticeText = conf.htmlLabels ? '' : document.createElementNS('http://www.w3.org/2000/svg', 'text'); - break; - default: - _shape = 'rect'; - } - // Add the node - g.setNode(vertice.id, { labelType: labelTypeStr, shape: _shape, label: verticeText, rx: radious, ry: radious, 'class': classStr, style: style, id: vertice.id }); - }); -}; - -/** - * Add edges to graph based on parsed graph defninition - * @param {Object} edges The edges to add to the graph - * @param {Object} g The graph object - */ -var addEdges = exports.addEdges = function addEdges(edges, g) { - var cnt = 0; - - var defaultStyle; - if (typeof edges.defaultStyle !== 'undefined') { - defaultStyle = edges.defaultStyle.toString().replace(/,/g, ';'); - } - - edges.forEach(function (edge) { - cnt++; - var edgeData = {}; - - // Set link type for rendering - if (edge.type === 'arrow_open') { - edgeData.arrowhead = 'none'; - } else { - edgeData.arrowhead = 'normal'; - } - - var style = ''; - - if (typeof edge.style !== 'undefined') { - edge.style.forEach(function (s) { - style = style + s + ';'; - }); - } else { - switch (edge.stroke) { - case 'normal': - style = 'fill:none'; - if (typeof defaultStyle !== 'undefined') { - style = defaultStyle; - } - break; - case 'dotted': - style = 'stroke: #333; fill:none;stroke-width:2px;stroke-dasharray:3;'; - break; - case 'thick': - style = 'stroke: #333; stroke-width: 3.5px;fill:none'; - break; - } - } - edgeData.style = style; - - if (typeof edge.interpolate !== 'undefined') { - edgeData.lineInterpolate = edge.interpolate; - } else { - if (typeof edges.defaultInterpolate !== 'undefined') { - edgeData.lineInterpolate = edges.defaultInterpolate; - } - } - - if (typeof edge.text === 'undefined') { - if (typeof edge.style !== 'undefined') { - edgeData.arrowheadStyle = 'fill: #333'; - } - } else { - edgeData.arrowheadStyle = 'fill: #333'; - if (typeof edge.style === 'undefined') { - edgeData.labelpos = 'c'; - if (conf.htmlLabels) { - edgeData.labelType = 'html'; - edgeData.label = '' + edge.text + ''; - } else { - edgeData.labelType = 'text'; - edgeData.style = 'stroke: #333; stroke-width: 1.5px;fill:none'; - edgeData.label = edge.text.replace(/
/g, '\n'); - } - } else { - edgeData.label = edge.text.replace(/
/g, '\n'); - } - } - // Add the edge to the graph - g.setEdge(edge.start, edge.end, edgeData, cnt); - }); -}; - -/** - * Returns the all the styles from classDef statements in the graph definition. - * @returns {object} classDef styles - */ -var getClasses = exports.getClasses = function getClasses(text, isDot) { - var parser; - _graphDb2.default.clear(); - if (isDot) { - parser = _dot2.default.parser; - } else { - parser = _flow2.default.parser; - } - parser.yy = _graphDb2.default; - - // Parse the graph definition - parser.parse(text); - - var classes = _graphDb2.default.getClasses(); - - // Add default class if undefined - if (typeof classes.default === 'undefined') { - classes.default = { id: 'default' }; - classes.default.styles = []; - classes.default.clusterStyles = ['rx:4px', 'fill: rgb(255, 255, 222)', 'rx: 4px', 'stroke: rgb(170, 170, 51)', 'stroke-width: 1px']; - classes.default.nodeLabelStyles = ['fill:#000', 'stroke:none', 'font-weight:300', 'font-family:"Helvetica Neue",Helvetica,Arial,sans-serf', 'font-size:14px']; - classes.default.edgeLabelStyles = ['fill:#000', 'stroke:none', 'font-weight:300', 'font-family:"Helvetica Neue",Helvetica,Arial,sans-serf', 'font-size:14px']; - } - return classes; -}; - -/** - * Draws a flowchart in the tag with id: id based on the graph definition in text. - * @param text - * @param id - */ -var draw = exports.draw = function draw(text, id, isDot) { - _logger.logger.debug('Drawing flowchart'); - var parser; - _graphDb2.default.clear(); - if (isDot) { - parser = _dot2.default.parser; - } else { - parser = _flow2.default.parser; - } - parser.yy = _graphDb2.default; - - // Parse the graph definition - try { - parser.parse(text); - } catch (err) { - _logger.logger.debug('Parsing failed'); - } - - // Fetch the default direction, use TD if none was found - var dir; - dir = _graphDb2.default.getDirection(); - if (typeof dir === 'undefined') { - dir = 'TD'; - } - - // Create the input mermaid.graph - var g = new _dagreD3Renderer2.default.graphlib.Graph({ - multigraph: true, - compound: true - }).setGraph({ - rankdir: dir, - marginx: 20, - marginy: 20 - - }).setDefaultEdgeLabel(function () { - return {}; - }); - - var subG; - var subGraphs = _graphDb2.default.getSubGraphs(); - var i = 0; - for (i = subGraphs.length - 1; i >= 0; i--) { - subG = subGraphs[i]; - _graphDb2.default.addVertex(subG.id, subG.title, 'group', undefined); - } - - // Fetch the verices/nodes and edges/links from the parsed graph definition - var vert = _graphDb2.default.getVertices(); - - var edges = _graphDb2.default.getEdges(); - - i = 0; - var j; - for (i = subGraphs.length - 1; i >= 0; i--) { - subG = subGraphs[i]; - - _d2.default.selectAll('cluster').append('text'); - - for (j = 0; j < subG.nodes.length; j++) { - g.setParent(subG.nodes[j], subG.id); - } - } - addVertices(vert, g); - addEdges(edges, g); - - // Create the renderer - var Render = _dagreD3Renderer2.default.render; - var render = new Render(); - - // Add custom shape for rhombus type of boc (decision) - render.shapes().question = function (parent, bbox, node) { - var w = bbox.width; - var h = bbox.height; - var s = (w + h) * 0.8; - var points = [{ x: s / 2, y: 0 }, { x: s, y: -s / 2 }, { x: s / 2, y: -s }, { x: 0, y: -s / 2 }]; - var shapeSvg = parent.insert('polygon', ':first-child').attr('points', points.map(function (d) { - return d.x + ',' + d.y; - }).join(' ')).attr('rx', 5).attr('ry', 5).attr('transform', 'translate(' + -s / 2 + ',' + s * 2 / 4 + ')'); - node.intersect = function (point) { - return _dagreD3Renderer2.default.intersect.polygon(node, points, point); - }; - return shapeSvg; - }; - - // Add custom shape for box with inverted arrow on left side - render.shapes().rect_left_inv_arrow = function (parent, bbox, node) { - var w = bbox.width; - var h = bbox.height; - var points = [{ x: -h / 2, y: 0 }, { x: w, y: 0 }, { x: w, y: -h }, { x: -h / 2, y: -h }, { x: 0, y: -h / 2 }]; - var shapeSvg = parent.insert('polygon', ':first-child').attr('points', points.map(function (d) { - return d.x + ',' + d.y; - }).join(' ')).attr('transform', 'translate(' + -w / 2 + ',' + h * 2 / 4 + ')'); - node.intersect = function (point) { - return _dagreD3Renderer2.default.intersect.polygon(node, points, point); - }; - return shapeSvg; - }; - - // Add custom shape for box with inverted arrow on right side - render.shapes().rect_right_inv_arrow = function (parent, bbox, node) { - var w = bbox.width; - var h = bbox.height; - var points = [{ x: 0, y: 0 }, { x: w + h / 2, y: 0 }, { x: w, y: -h / 2 }, { x: w + h / 2, y: -h }, { x: 0, y: -h }]; - var shapeSvg = parent.insert('polygon', ':first-child').attr('points', points.map(function (d) { - return d.x + ',' + d.y; - }).join(' ')).attr('transform', 'translate(' + -w / 2 + ',' + h * 2 / 4 + ')'); - node.intersect = function (point) { - return _dagreD3Renderer2.default.intersect.polygon(node, points, point); - }; - return shapeSvg; - }; - - // Add our custom arrow - an empty arrowhead - render.arrows().none = function normal(parent, id, edge, type) { - var marker = parent.append('marker').attr('id', id).attr('viewBox', '0 0 10 10').attr('refX', 9).attr('refY', 5).attr('markerUnits', 'strokeWidth').attr('markerWidth', 8).attr('markerHeight', 6).attr('orient', 'auto'); - - var path = marker.append('path').attr('d', 'M 0 0 L 0 0 L 0 0 z'); - _dagreD3Renderer2.default.util.applyStyle(path, edge[type + 'Style']); - }; - - // Override normal arrowhead defined in d3. Remove style & add class to allow css styling. - render.arrows().normal = function normal(parent, id, edge, type) { - var marker = parent.append('marker').attr('id', id).attr('viewBox', '0 0 10 10').attr('refX', 9).attr('refY', 5).attr('markerUnits', 'strokeWidth').attr('markerWidth', 8).attr('markerHeight', 6).attr('orient', 'auto'); - - marker.append('path').attr('d', 'M 0 0 L 10 5 L 0 10 z').attr('class', 'arrowheadPath').style('stroke-width', 1).style('stroke-dasharray', '1,0'); - }; - - // Set up an SVG group so that we can translate the final graph. - var svg = _d2.default.select('#' + id); - - // Run the renderer. This is what draws the final graph. - var element = _d2.default.select('#' + id + ' g'); - render(element, g); - - element.selectAll('g.node').attr('title', function () { - return _graphDb2.default.getTooltip(this.id); - }); - - if (conf.useMaxWidth) { - // Center the graph - svg.attr('height', '100%'); - svg.attr('width', conf.width); - svg.attr('viewBox', '0 0 ' + (g.graph().width + 20) + ' ' + (g.graph().height + 20)); - svg.attr('style', 'max-width:' + (g.graph().width + 20) + 'px;'); - } else { - // Center the graph - svg.attr('height', g.graph().height); - if (typeof conf.width === 'undefined') { - svg.attr('width', g.graph().width); - } else { - svg.attr('width', conf.width); - } - svg.attr('viewBox', '0 0 ' + (g.graph().width + 20) + ' ' + (g.graph().height + 20)); - } - - // Index nodes - _graphDb2.default.indexNodes('subGraph' + i); - - for (i = 0; i < subGraphs.length; i++) { - subG = subGraphs[i]; - - if (subG.title !== 'undefined') { - var clusterRects = document.querySelectorAll('#' + id + ' #' + subG.id + ' rect'); - var clusterEl = document.querySelectorAll('#' + id + ' #' + subG.id); - - var xPos = clusterRects[0].x.baseVal.value; - var yPos = clusterRects[0].y.baseVal.value; - var width = clusterRects[0].width.baseVal.value; - var cluster = _d2.default.select(clusterEl[0]); - var te = cluster.append('text'); - te.attr('x', xPos + width / 2); - te.attr('y', yPos + 14); - te.attr('fill', 'black'); - te.attr('stroke', 'none'); - te.attr('id', id + 'Text'); - te.style('text-anchor', 'middle'); - - if (typeof subG.title === 'undefined') { - te.text('Undef'); - } else { - te.text(subG.title); - } - } - } - - // Add label rects for non html labels - if (!conf.htmlLabels) { - var labels = document.querySelectorAll('#' + id + ' .edgeLabel .label'); - var k; - for (k = 0; k < labels.length; k++) { - var label = labels[i]; - - // Get dimensions of label - var dim = label.getBBox(); - - var rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect'); - rect.setAttribute('rx', 0); - rect.setAttribute('ry', 0); - rect.setAttribute('width', dim.width); - rect.setAttribute('height', dim.height); - rect.setAttribute('style', 'fill:#e8e8e8;'); - - label.insertBefore(rect, label.firstChild); - } - } -}; - -exports.default = { - setConf: setConf, - addVertices: addVertices, - addEdges: addEdges, - getClasses: getClasses, - draw: draw -}; - -/***/ }), -/* 30 */ -/***/ (function(module, exports) { - -module.exports = require("dagre-d3-renderer"); - -/***/ }), -/* 31 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.draw = exports.setConf = exports.drawActors = exports.bounds = undefined; - -var _svgDraw = __webpack_require__(32); - -var _svgDraw2 = _interopRequireDefault(_svgDraw); - -var _logger = __webpack_require__(0); - -var _d = __webpack_require__(1); - -var _d2 = _interopRequireDefault(_d); - -var _sequenceDiagram = __webpack_require__(12); - -var _sequenceDb = __webpack_require__(13); - -var _sequenceDb2 = _interopRequireDefault(_sequenceDb); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -_sequenceDiagram.parser.yy = _sequenceDb2.default; - -var conf = { - - diagramMarginX: 50, - diagramMarginY: 30, - // Margin between actors - actorMargin: 50, - // Width of actor boxes - width: 150, - // Height of actor boxes - height: 65, - // Margin around loop boxes - boxMargin: 10, - boxTextMargin: 5, - noteMargin: 10, - // Space between messages - messageMargin: 35, - // mirror actors under diagram - mirrorActors: false, - // Depending on css styling this might need adjustment - // Prolongs the edge of the diagram downwards - bottomMarginAdj: 1, - - // width of activation box - activationWidth: 10, - - // text placement as: tspan | fo | old only text as before - textPlacement: 'tspan' -}; - -var bounds = exports.bounds = { - data: { - startx: undefined, - stopx: undefined, - starty: undefined, - stopy: undefined - }, - verticalPos: 0, - - sequenceItems: [], - activations: [], - init: function init() { - this.sequenceItems = []; - this.activations = []; - this.data = { - startx: undefined, - stopx: undefined, - starty: undefined, - stopy: undefined - }; - this.verticalPos = 0; - }, - updateVal: function updateVal(obj, key, val, fun) { - if (typeof obj[key] === 'undefined') { - obj[key] = val; - } else { - obj[key] = fun(val, obj[key]); - } - }, - updateBounds: function updateBounds(startx, starty, stopx, stopy) { - var _self = this; - var cnt = 0; - function updateFn(type) { - return function updateItemBounds(item) { - cnt++; - // The loop sequenceItems is a stack so the biggest margins in the beginning of the sequenceItems - var n = _self.sequenceItems.length - cnt + 1; - - _self.updateVal(item, 'starty', starty - n * conf.boxMargin, Math.min); - _self.updateVal(item, 'stopy', stopy + n * conf.boxMargin, Math.max); - - _self.updateVal(bounds.data, 'startx', startx - n * conf.boxMargin, Math.min); - _self.updateVal(bounds.data, 'stopx', stopx + n * conf.boxMargin, Math.max); - - if (!(type === 'activation')) { - _self.updateVal(item, 'startx', startx - n * conf.boxMargin, Math.min); - _self.updateVal(item, 'stopx', stopx + n * conf.boxMargin, Math.max); - - _self.updateVal(bounds.data, 'starty', starty - n * conf.boxMargin, Math.min); - _self.updateVal(bounds.data, 'stopy', stopy + n * conf.boxMargin, Math.max); - } - }; - } - - this.sequenceItems.forEach(updateFn()); - this.activations.forEach(updateFn('activation')); - }, - insert: function insert(startx, starty, stopx, stopy) { - var _startx, _starty, _stopx, _stopy; - - _startx = Math.min(startx, stopx); - _stopx = Math.max(startx, stopx); - _starty = Math.min(starty, stopy); - _stopy = Math.max(starty, stopy); - - this.updateVal(bounds.data, 'startx', _startx, Math.min); - this.updateVal(bounds.data, 'starty', _starty, Math.min); - this.updateVal(bounds.data, 'stopx', _stopx, Math.max); - this.updateVal(bounds.data, 'stopy', _stopy, Math.max); - - this.updateBounds(_startx, _starty, _stopx, _stopy); - }, - newActivation: function newActivation(message, diagram) { - var actorRect = _sequenceDiagram.parser.yy.getActors()[message.from.actor]; - var stackedSize = actorActivations(message.from.actor).length; - var x = actorRect.x + conf.width / 2 + (stackedSize - 1) * conf.activationWidth / 2; - this.activations.push({ - startx: x, - starty: this.verticalPos + 2, - stopx: x + conf.activationWidth, - stopy: undefined, - actor: message.from.actor, - anchored: _svgDraw2.default.anchorElement(diagram) - }); - }, - endActivation: function endActivation(message) { - // find most recent activation for given actor - var lastActorActivationIdx = this.activations.map(function (activation) { - return activation.actor; - }).lastIndexOf(message.from.actor); - var activation = this.activations.splice(lastActorActivationIdx, 1)[0]; - return activation; - }, - newLoop: function newLoop(title) { - this.sequenceItems.push({ startx: undefined, starty: this.verticalPos, stopx: undefined, stopy: undefined, title: title }); - }, - endLoop: function endLoop() { - var loop = this.sequenceItems.pop(); - return loop; - }, - addSectionToLoop: function addSectionToLoop(message) { - var loop = this.sequenceItems.pop(); - loop.sections = loop.sections || []; - loop.sectionTitles = loop.sectionTitles || []; - loop.sections.push(bounds.getVerticalPos()); - loop.sectionTitles.push(message); - this.sequenceItems.push(loop); - }, - bumpVerticalPos: function bumpVerticalPos(bump) { - this.verticalPos = this.verticalPos + bump; - this.data.stopy = this.verticalPos; - }, - getVerticalPos: function getVerticalPos() { - return this.verticalPos; - }, - getBounds: function getBounds() { - return this.data; - } - - /** - * Draws an actor in the diagram with the attaced line - * @param center - The center of the the actor - * @param pos The position if the actor in the liost of actors - * @param description The text in the box - */ -};var drawNote = function drawNote(elem, startx, verticalPos, msg, forceWidth) { - var rect = _svgDraw2.default.getNoteRect(); - rect.x = startx; - rect.y = verticalPos; - rect.width = forceWidth || conf.width; - rect.class = 'note'; - - var g = elem.append('g'); - var rectElem = _svgDraw2.default.drawRect(g, rect); - - var textObj = _svgDraw2.default.getTextObj(); - textObj.x = startx - 4; - textObj.y = verticalPos - 13; - textObj.textMargin = conf.noteMargin; - textObj.dy = '1em'; - textObj.text = msg.message; - textObj.class = 'noteText'; - - var textElem = _svgDraw2.default.drawText(g, textObj, rect.width - conf.noteMargin); - - var textHeight = textElem[0][0].getBBox().height; - if (!forceWidth && textHeight > conf.width) { - textElem.remove(); - g = elem.append('g'); - - textElem = _svgDraw2.default.drawText(g, textObj, 2 * rect.width - conf.noteMargin); - textHeight = textElem[0][0].getBBox().height; - rectElem.attr('width', 2 * rect.width); - bounds.insert(startx, verticalPos, startx + 2 * rect.width, verticalPos + 2 * conf.noteMargin + textHeight); - } else { - bounds.insert(startx, verticalPos, startx + rect.width, verticalPos + 2 * conf.noteMargin + textHeight); - } - - rectElem.attr('height', textHeight + 2 * conf.noteMargin); - bounds.bumpVerticalPos(textHeight + 2 * conf.noteMargin); -}; - -/** - * Draws a message - * @param elem - * @param startx - * @param stopx - * @param verticalPos - * @param txtCenter - * @param msg - */ -var drawMessage = function drawMessage(elem, startx, stopx, verticalPos, msg) { - var g = elem.append('g'); - var txtCenter = startx + (stopx - startx) / 2; - - var textElem = g.append('text') // text label for the x axis - .attr('x', txtCenter).attr('y', verticalPos - 7).style('text-anchor', 'middle').attr('class', 'messageText').text(msg.message); - - var textWidth; - - if (typeof textElem[0][0].getBBox !== 'undefined') { - textWidth = textElem[0][0].getBBox().width; - } else { - textWidth = textElem[0][0].getBoundingClientRect(); - } - - var line; - - if (startx === stopx) { - line = g.append('path').attr('d', 'M ' + startx + ',' + verticalPos + ' C ' + (startx + 60) + ',' + (verticalPos - 10) + ' ' + (startx + 60) + ',' + (verticalPos + 30) + ' ' + startx + ',' + (verticalPos + 20)); - - bounds.bumpVerticalPos(30); - var dx = Math.max(textWidth / 2, 100); - bounds.insert(startx - dx, bounds.getVerticalPos() - 10, stopx + dx, bounds.getVerticalPos()); - } else { - line = g.append('line'); - line.attr('x1', startx); - line.attr('y1', verticalPos); - line.attr('x2', stopx); - line.attr('y2', verticalPos); - bounds.insert(startx, bounds.getVerticalPos() - 10, stopx, bounds.getVerticalPos()); - } - // Make an SVG Container - // Draw the line - if (msg.type === _sequenceDiagram.parser.yy.LINETYPE.DOTTED || msg.type === _sequenceDiagram.parser.yy.LINETYPE.DOTTED_CROSS || msg.type === _sequenceDiagram.parser.yy.LINETYPE.DOTTED_OPEN) { - line.style('stroke-dasharray', '3, 3'); - line.attr('class', 'messageLine1'); - } else { - line.attr('class', 'messageLine0'); - } - - var url = ''; - if (conf.arrowMarkerAbsolute) { - url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search; - url = url.replace(/\(/g, '\\('); - url = url.replace(/\)/g, '\\)'); - } - - line.attr('stroke-width', 2); - line.attr('stroke', 'black'); - line.style('fill', 'none'); // remove any fill colour - if (msg.type === _sequenceDiagram.parser.yy.LINETYPE.SOLID || msg.type === _sequenceDiagram.parser.yy.LINETYPE.DOTTED) { - line.attr('marker-end', 'url(' + url + '#arrowhead)'); - } - - if (msg.type === _sequenceDiagram.parser.yy.LINETYPE.SOLID_CROSS || msg.type === _sequenceDiagram.parser.yy.LINETYPE.DOTTED_CROSS) { - line.attr('marker-end', 'url(' + url + '#crosshead)'); - } -}; - -var drawActors = exports.drawActors = function drawActors(diagram, actors, actorKeys, verticalPos) { - var i; - // Draw the actors - for (i = 0; i < actorKeys.length; i++) { - var key = actorKeys[i]; - - // Add some rendering data to the object - actors[key].x = i * conf.actorMargin + i * conf.width; - actors[key].y = verticalPos; - actors[key].width = conf.diagramMarginX; - actors[key].height = conf.diagramMarginY; - - // Draw the box with the attached line - _svgDraw2.default.drawActor(diagram, actors[key].x, verticalPos, actors[key].description, conf); - bounds.insert(actors[key].x, verticalPos, actors[key].x + conf.width, conf.height); - } - - // Add a margin between the actor boxes and the first arrow - bounds.bumpVerticalPos(conf.height); -}; - -var setConf = exports.setConf = function setConf(cnf) { - var keys = Object.keys(cnf); - - keys.forEach(function (key) { - conf[key] = cnf[key]; - }); -}; - -var actorActivations = function actorActivations(actor) { - return bounds.activations.filter(function (activation) { - return activation.actor === actor; - }); -}; - -var actorFlowVerticaBounds = function actorFlowVerticaBounds(actor) { - // handle multiple stacked activations for same actor - var actors = _sequenceDiagram.parser.yy.getActors(); - var activations = actorActivations(actor); - - var left = activations.reduce(function (acc, activation) { - return Math.min(acc, activation.startx); - }, actors[actor].x + conf.width / 2); - var right = activations.reduce(function (acc, activation) { - return Math.max(acc, activation.stopx); - }, actors[actor].x + conf.width / 2); - return [left, right]; -}; - -/** - * Draws a flowchart in the tag with id: id based on the graph definition in text. - * @param text - * @param id - */ -var draw = exports.draw = function draw(text, id) { - _sequenceDiagram.parser.yy.clear(); - _sequenceDiagram.parser.parse(text + '\n'); - - bounds.init(); - var diagram = _d2.default.select('#' + id); - - var startx; - var stopx; - var forceWidth; - - // Fetch data from the parsing - var actors = _sequenceDiagram.parser.yy.getActors(); - var actorKeys = _sequenceDiagram.parser.yy.getActorKeys(); - var messages = _sequenceDiagram.parser.yy.getMessages(); - var title = _sequenceDiagram.parser.yy.getTitle(); - drawActors(diagram, actors, actorKeys, 0); - - // The arrow head definition is attached to the svg once - _svgDraw2.default.insertArrowHead(diagram); - _svgDraw2.default.insertArrowCrossHead(diagram); - - function activeEnd(msg, verticalPos) { - var activationData = bounds.endActivation(msg); - if (activationData.starty + 18 > verticalPos) { - activationData.starty = verticalPos - 6; - verticalPos += 12; - } - _svgDraw2.default.drawActivation(diagram, activationData, verticalPos, conf); - - bounds.insert(activationData.startx, verticalPos - 10, activationData.stopx, verticalPos); - } - - // var lastMsg - - // Draw the messages/signals - messages.forEach(function (msg) { - var loopData; - - switch (msg.type) { - case _sequenceDiagram.parser.yy.LINETYPE.NOTE: - bounds.bumpVerticalPos(conf.boxMargin); - - startx = actors[msg.from].x; - stopx = actors[msg.to].x; - - if (msg.placement === _sequenceDiagram.parser.yy.PLACEMENT.RIGHTOF) { - drawNote(diagram, startx + (conf.width + conf.actorMargin) / 2, bounds.getVerticalPos(), msg); - } else if (msg.placement === _sequenceDiagram.parser.yy.PLACEMENT.LEFTOF) { - drawNote(diagram, startx - (conf.width + conf.actorMargin) / 2, bounds.getVerticalPos(), msg); - } else if (msg.to === msg.from) { - // Single-actor over - drawNote(diagram, startx, bounds.getVerticalPos(), msg); - } else { - // Multi-actor over - forceWidth = Math.abs(startx - stopx) + conf.actorMargin; - drawNote(diagram, (startx + stopx + conf.width - forceWidth) / 2, bounds.getVerticalPos(), msg, forceWidth); - } - break; - case _sequenceDiagram.parser.yy.LINETYPE.ACTIVE_START: - bounds.newActivation(msg, diagram); - break; - case _sequenceDiagram.parser.yy.LINETYPE.ACTIVE_END: - activeEnd(msg, bounds.getVerticalPos()); - break; - case _sequenceDiagram.parser.yy.LINETYPE.LOOP_START: - bounds.bumpVerticalPos(conf.boxMargin); - bounds.newLoop(msg.message); - bounds.bumpVerticalPos(conf.boxMargin + conf.boxTextMargin); - break; - case _sequenceDiagram.parser.yy.LINETYPE.LOOP_END: - loopData = bounds.endLoop(); - - _svgDraw2.default.drawLoop(diagram, loopData, 'loop', conf); - bounds.bumpVerticalPos(conf.boxMargin); - break; - case _sequenceDiagram.parser.yy.LINETYPE.OPT_START: - bounds.bumpVerticalPos(conf.boxMargin); - bounds.newLoop(msg.message); - bounds.bumpVerticalPos(conf.boxMargin + conf.boxTextMargin); - break; - case _sequenceDiagram.parser.yy.LINETYPE.OPT_END: - loopData = bounds.endLoop(); - - _svgDraw2.default.drawLoop(diagram, loopData, 'opt', conf); - bounds.bumpVerticalPos(conf.boxMargin); - break; - case _sequenceDiagram.parser.yy.LINETYPE.ALT_START: - bounds.bumpVerticalPos(conf.boxMargin); - bounds.newLoop(msg.message); - bounds.bumpVerticalPos(conf.boxMargin + conf.boxTextMargin); - break; - case _sequenceDiagram.parser.yy.LINETYPE.ALT_ELSE: - bounds.bumpVerticalPos(conf.boxMargin); - loopData = bounds.addSectionToLoop(msg.message); - bounds.bumpVerticalPos(conf.boxMargin); - break; - case _sequenceDiagram.parser.yy.LINETYPE.ALT_END: - loopData = bounds.endLoop(); - - _svgDraw2.default.drawLoop(diagram, loopData, 'alt', conf); - bounds.bumpVerticalPos(conf.boxMargin); - break; - case _sequenceDiagram.parser.yy.LINETYPE.PAR_START: - bounds.bumpVerticalPos(conf.boxMargin); - bounds.newLoop(msg.message); - bounds.bumpVerticalPos(conf.boxMargin + conf.boxTextMargin); - break; - case _sequenceDiagram.parser.yy.LINETYPE.PAR_AND: - bounds.bumpVerticalPos(conf.boxMargin); - loopData = bounds.addSectionToLoop(msg.message); - bounds.bumpVerticalPos(conf.boxMargin); - break; - case _sequenceDiagram.parser.yy.LINETYPE.PAR_END: - loopData = bounds.endLoop(); - _svgDraw2.default.drawLoop(diagram, loopData, 'par', conf); - bounds.bumpVerticalPos(conf.boxMargin); - break; - default: - try { - // lastMsg = msg - bounds.bumpVerticalPos(conf.messageMargin); - var fromBounds = actorFlowVerticaBounds(msg.from); - var toBounds = actorFlowVerticaBounds(msg.to); - var fromIdx = fromBounds[0] <= toBounds[0] ? 1 : 0; - var toIdx = fromBounds[0] < toBounds[0] ? 0 : 1; - startx = fromBounds[fromIdx]; - stopx = toBounds[toIdx]; - - var verticalPos = bounds.getVerticalPos(); - drawMessage(diagram, startx, stopx, verticalPos, msg); - var allBounds = fromBounds.concat(toBounds); - bounds.insert(Math.min.apply(null, allBounds), verticalPos, Math.max.apply(null, allBounds), verticalPos); - } catch (e) { - console.error('error while drawing message', e); - } - } - }); - - if (conf.mirrorActors) { - // Draw actors below diagram - bounds.bumpVerticalPos(conf.boxMargin * 2); - drawActors(diagram, actors, actorKeys, bounds.getVerticalPos()); - } - - var box = bounds.getBounds(); - - // Adjust line height of actor lines now that the height of the diagram is known - _logger.logger.debug('For line height fix Querying: #' + id + ' .actor-line'); - var actorLines = _d2.default.selectAll('#' + id + ' .actor-line'); - actorLines.attr('y2', box.stopy); - - var height = box.stopy - box.starty + 2 * conf.diagramMarginY; - - if (conf.mirrorActors) { - height = height - conf.boxMargin + conf.bottomMarginAdj; - } - - var width = box.stopx - box.startx + 2 * conf.diagramMarginX; - - if (title) { - diagram.append('text').text(title).attr('x', (box.stopx - box.startx) / 2 - 2 * conf.diagramMarginX).attr('y', -25); - } - - if (conf.useMaxWidth) { - diagram.attr('height', '100%'); - diagram.attr('width', '100%'); - diagram.attr('style', 'max-width:' + width + 'px;'); - } else { - diagram.attr('height', height); - diagram.attr('width', width); - } - var extraVertForTitle = title ? 40 : 0; - diagram.attr('viewBox', box.startx - conf.diagramMarginX + ' -' + (conf.diagramMarginY + extraVertForTitle) + ' ' + width + ' ' + (height + extraVertForTitle)); -}; - -exports.default = { - bounds: bounds, - drawActors: drawActors, - setConf: setConf, - draw: draw -}; - -/***/ }), -/* 32 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var drawRect = exports.drawRect = function drawRect(elem, rectData) { - var rectElem = elem.append('rect'); - rectElem.attr('x', rectData.x); - rectElem.attr('y', rectData.y); - rectElem.attr('fill', rectData.fill); - rectElem.attr('stroke', rectData.stroke); - rectElem.attr('width', rectData.width); - rectElem.attr('height', rectData.height); - rectElem.attr('rx', rectData.rx); - rectElem.attr('ry', rectData.ry); - - if (typeof rectData.class !== 'undefined') { - rectElem.attr('class', rectData.class); - } - - return rectElem; -}; - -var drawText = exports.drawText = function drawText(elem, textData, width) { - // Remove and ignore br:s - var nText = textData.text.replace(//ig, ' '); - - var textElem = elem.append('text'); - textElem.attr('x', textData.x); - textElem.attr('y', textData.y); - textElem.style('text-anchor', textData.anchor); - textElem.attr('fill', textData.fill); - if (typeof textData.class !== 'undefined') { - textElem.attr('class', textData.class); - } - - var span = textElem.append('tspan'); - span.attr('x', textData.x + textData.textMargin * 2); - span.attr('fill', textData.fill); - span.text(nText); - if (typeof textElem.textwrap !== 'undefined') { - textElem.textwrap({ - x: textData.x, // bounding box is 300 pixels from the left - y: textData.y, // bounding box is 400 pixels from the top - width: width, // bounding box is 500 pixels across - height: 1800 // bounding box is 600 pixels tall - }, textData.textMargin); - } - - return textElem; -}; - -var drawLabel = exports.drawLabel = function drawLabel(elem, txtObject) { - function genPoints(x, y, width, height, cut) { - return x + ',' + y + ' ' + (x + width) + ',' + y + ' ' + (x + width) + ',' + (y + height - cut) + ' ' + (x + width - cut * 1.2) + ',' + (y + height) + ' ' + x + ',' + (y + height); - } - var polygon = elem.append('polygon'); - polygon.attr('points', genPoints(txtObject.x, txtObject.y, 50, 20, 7)); - polygon.attr('class', 'labelBox'); - - txtObject.y = txtObject.y + txtObject.labelMargin; - txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin; - drawText(elem, txtObject); -}; -var actorCnt = -1; -/** - * Draws an actor in the diagram with the attaced line - * @param center - The center of the the actor - * @param pos The position if the actor in the liost of actors - * @param description The text in the box - */ -var drawActor = exports.drawActor = function drawActor(elem, left, verticalPos, description, conf) { - var center = left + conf.width / 2; - var g = elem.append('g'); - if (verticalPos === 0) { - actorCnt++; - g.append('line').attr('id', 'actor' + actorCnt).attr('x1', center).attr('y1', 5).attr('x2', center).attr('y2', 2000).attr('class', 'actor-line').attr('stroke-width', '0.5px').attr('stroke', '#999'); - } - - var rect = getNoteRect(); - rect.x = left; - rect.y = verticalPos; - rect.fill = '#eaeaea'; - rect.width = conf.width; - rect.height = conf.height; - rect.class = 'actor'; - rect.rx = 3; - rect.ry = 3; - drawRect(g, rect); - - _drawTextCandidateFunc(conf)(description, g, rect.x, rect.y, rect.width, rect.height, { 'class': 'actor' }); -}; - -var anchorElement = exports.anchorElement = function anchorElement(elem) { - return elem.append('g'); -}; -/** - * Draws an actor in the diagram with the attaced line - * @param elem - element to append activation rect - * @param bounds - activation box bounds - * @param verticalPos - precise y cooridnate of bottom activation box edge - */ -var drawActivation = exports.drawActivation = function drawActivation(elem, bounds, verticalPos) { - var rect = getNoteRect(); - var g = bounds.anchored; - rect.x = bounds.startx; - rect.y = bounds.starty; - rect.fill = '#f4f4f4'; - rect.width = bounds.stopx - bounds.startx; - rect.height = verticalPos - bounds.starty; - drawRect(g, rect); -}; - -/** - * Draws an actor in the diagram with the attaced line - * @param center - The center of the the actor - * @param pos The position if the actor in the list of actors - * @param description The text in the box - */ -var drawLoop = exports.drawLoop = function drawLoop(elem, bounds, labelText, conf) { - var g = elem.append('g'); - var drawLoopLine = function drawLoopLine(startx, starty, stopx, stopy) { - return g.append('line').attr('x1', startx).attr('y1', starty).attr('x2', stopx).attr('y2', stopy).attr('class', 'loopLine'); - }; - drawLoopLine(bounds.startx, bounds.starty, bounds.stopx, bounds.starty); - drawLoopLine(bounds.stopx, bounds.starty, bounds.stopx, bounds.stopy); - drawLoopLine(bounds.startx, bounds.stopy, bounds.stopx, bounds.stopy); - drawLoopLine(bounds.startx, bounds.starty, bounds.startx, bounds.stopy); - if (typeof bounds.sections !== 'undefined') { - bounds.sections.forEach(function (item) { - drawLoopLine(bounds.startx, item, bounds.stopx, item).style('stroke-dasharray', '3, 3'); - }); - } - - var txt = getTextObj(); - txt.text = labelText; - txt.x = bounds.startx; - txt.y = bounds.starty; - txt.labelMargin = 1.5 * 10; // This is the small box that says "loop" - txt.class = 'labelText'; // Its size & position are fixed. - - drawLabel(g, txt); - - txt = getTextObj(); - txt.text = '[ ' + bounds.title + ' ]'; - txt.x = bounds.startx + (bounds.stopx - bounds.startx) / 2; - txt.y = bounds.starty + 1.5 * conf.boxMargin; - txt.anchor = 'middle'; - txt.class = 'loopText'; - - drawText(g, txt); - - if (typeof bounds.sectionTitles !== 'undefined') { - bounds.sectionTitles.forEach(function (item, idx) { - if (item !== '') { - txt.text = '[ ' + item + ' ]'; - txt.y = bounds.sections[idx] + 1.5 * conf.boxMargin; - drawText(g, txt); - } - }); - } -}; - -/** - * Setup arrow head and define the marker. The result is appended to the svg. - */ -var insertArrowHead = exports.insertArrowHead = function insertArrowHead(elem) { - elem.append('defs').append('marker').attr('id', 'arrowhead').attr('refX', 5).attr('refY', 2).attr('markerWidth', 6).attr('markerHeight', 4).attr('orient', 'auto').append('path').attr('d', 'M 0,0 V 4 L6,2 Z'); // this is actual shape for arrowhead -}; -/** - * Setup arrow head and define the marker. The result is appended to the svg. - */ -var insertArrowCrossHead = exports.insertArrowCrossHead = function insertArrowCrossHead(elem) { - var defs = elem.append('defs'); - var marker = defs.append('marker').attr('id', 'crosshead').attr('markerWidth', 15).attr('markerHeight', 8).attr('orient', 'auto').attr('refX', 16).attr('refY', 4); - - // The arrow - marker.append('path').attr('fill', 'black').attr('stroke', '#000000').style('stroke-dasharray', '0, 0').attr('stroke-width', '1px').attr('d', 'M 9,2 V 6 L16,4 Z'); - - // The cross - marker.append('path').attr('fill', 'none').attr('stroke', '#000000').style('stroke-dasharray', '0, 0').attr('stroke-width', '1px').attr('d', 'M 0,1 L 6,7 M 6,1 L 0,7'); - // this is actual shape for arrowhead -}; - -var getTextObj = exports.getTextObj = function getTextObj() { - var txt = { - x: 0, - y: 0, - 'fill': 'black', - 'text-anchor': 'start', - style: '#666', - width: 100, - height: 100, - textMargin: 0, - rx: 0, - ry: 0 - }; - return txt; -}; - -var getNoteRect = exports.getNoteRect = function getNoteRect() { - var rect = { - x: 0, - y: 0, - fill: '#EDF2AE', - stroke: '#666', - width: 100, - anchor: 'start', - height: 100, - rx: 0, - ry: 0 - }; - return rect; -}; - -var _drawTextCandidateFunc = function () { - function byText(content, g, x, y, width, height, textAttrs) { - var text = g.append('text').attr('x', x + width / 2).attr('y', y + height / 2 + 5).style('text-anchor', 'middle').text(content); - _setTextAttrs(text, textAttrs); - } - - function byTspan(content, g, x, y, width, height, textAttrs) { - var text = g.append('text').attr('x', x + width / 2).attr('y', y).style('text-anchor', 'middle'); - text.append('tspan').attr('x', x + width / 2).attr('dy', '0').text(content); - - if (typeof text.textwrap !== 'undefined') { - text.textwrap({ // d3textwrap - x: x + width / 2, y: y, width: width, height: height - }, 0); - // vertical aligment after d3textwrap expans tspan to multiple tspans - var tspans = text.selectAll('tspan'); - if (tspans.length > 0 && tspans[0].length > 0) { - tspans = tspans[0]; - // set y of to the mid y of the first line - text.attr('y', y + (height / 2.0 - text[0][0].getBBox().height * (1 - 1.0 / tspans.length) / 2.0)).attr('dominant-baseline', 'central').attr('alignment-baseline', 'central'); - } - } - _setTextAttrs(text, textAttrs); - } - - function byFo(content, g, x, y, width, height, textAttrs) { - var s = g.append('switch'); - var f = s.append('foreignObject').attr('x', x).attr('y', y).attr('width', width).attr('height', height); - - var text = f.append('div').style('display', 'table').style('height', '100%').style('width', '100%'); - - text.append('div').style('display', 'table-cell').style('text-align', 'center').style('vertical-align', 'middle').text(content); - - byTspan(content, s, x, y, width, height, textAttrs); - _setTextAttrs(text, textAttrs); - } - - function _setTextAttrs(toText, fromTextAttrsDict) { - for (var key in fromTextAttrsDict) { - if (fromTextAttrsDict.hasOwnProperty(key)) { - toText.attr(key, fromTextAttrsDict[key]); - } - } - } - - return function (conf) { - return conf.textPlacement === 'fo' ? byFo : conf.textPlacement === 'old' ? byText : byTspan; - }; -}(); - -exports.default = { - drawRect: drawRect, - drawText: drawText, - drawLabel: drawLabel, - drawActor: drawActor, - anchorElement: anchorElement, - drawActivation: drawActivation, - drawLoop: drawLoop, - insertArrowHead: insertArrowHead, - insertArrowCrossHead: insertArrowCrossHead, - getTextObj: getTextObj, - getNoteRect: getNoteRect -}; - -/***/ }), -/* 33 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.draw = undefined; - -var _exampleDb = __webpack_require__(14); - -var _exampleDb2 = _interopRequireDefault(_exampleDb); - -var _example = __webpack_require__(15); - -var _example2 = _interopRequireDefault(_example); - -var _d = __webpack_require__(1); - -var _d2 = _interopRequireDefault(_d); - -var _logger = __webpack_require__(0); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Draws a an info picture in the tag with id: id based on the graph definition in text. - * @param text - * @param id - */ -var draw = exports.draw = function draw(txt, id, ver) { - var parser; - parser = _example2.default.parser; - parser.yy = _exampleDb2.default; - _logger.logger.debug('Renering example diagram'); - // Parse the graph definition - parser.parse(txt); - - // Fetch the default direction, use TD if none was found - var svg = _d2.default.select('#' + id); - - var g = svg.append('g'); - - g.append('text') // text label for the x axis - .attr('x', 100).attr('y', 40).attr('class', 'version').attr('font-size', '32px').style('text-anchor', 'middle').text('mermaid ' + ver); - - svg.attr('height', 100); - svg.attr('width', 400); -}; - -exports.default = { - draw: draw -}; - -/***/ }), -/* 34 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.draw = exports.setConf = undefined; - -var _moment = __webpack_require__(7); - -var _moment2 = _interopRequireDefault(_moment); - -var _gantt = __webpack_require__(16); - -var _ganttDb = __webpack_require__(17); - -var _ganttDb2 = _interopRequireDefault(_ganttDb); - -var _d = __webpack_require__(1); - -var _d2 = _interopRequireDefault(_d); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -_gantt.parser.yy = _ganttDb2.default; - -var daysInChart; -var conf = { - titleTopMargin: 25, - barHeight: 20, - barGap: 4, - topPadding: 50, - rightPadding: 75, - leftPadding: 75, - gridLineStartPadding: 35, - fontSize: 11, - fontFamily: '"Open-Sans", "sans-serif"' -}; -var setConf = exports.setConf = function setConf(cnf) { - var keys = Object.keys(cnf); - - keys.forEach(function (key) { - conf[key] = cnf[key]; - }); -}; -var w; -var draw = exports.draw = function draw(text, id) { - _gantt.parser.yy.clear(); - _gantt.parser.parse(text); - - var elem = document.getElementById(id); - w = elem.parentElement.offsetWidth; - - if (typeof w === 'undefined') { - w = 1200; - } - - if (typeof conf.useWidth !== 'undefined') { - w = conf.useWidth; - } - - var taskArray = _gantt.parser.yy.getTasks(); - - // Set height based on number of tasks - var h = taskArray.length * (conf.barHeight + conf.barGap) + 2 * conf.topPadding; - - elem.setAttribute('height', '100%'); - // Set viewBox - elem.setAttribute('viewBox', '0 0 ' + w + ' ' + h); - var svg = _d2.default.select('#' + id); - - var startDate = _d2.default.min(taskArray, function (d) { - return d.startTime; - }); - var endDate = _d2.default.max(taskArray, function (d) { - return d.endTime; - }); - - // Set timescale - var timeScale = _d2.default.time.scale().domain([_d2.default.min(taskArray, function (d) { - return d.startTime; - }), _d2.default.max(taskArray, function (d) { - return d.endTime; - })]).rangeRound([0, w - conf.leftPadding - conf.rightPadding]); - - var categories = []; - - daysInChart = _moment2.default.duration(endDate - startDate).asDays(); - - for (var i = 0; i < taskArray.length; i++) { - categories.push(taskArray[i].type); - } - - var catsUnfiltered = categories; // for vert labels - - categories = checkUnique(categories); - - makeGant(taskArray, w, h); - if (typeof conf.useWidth !== 'undefined') { - elem.setAttribute('width', w); - } - - svg.append('text').text(_gantt.parser.yy.getTitle()).attr('x', w / 2).attr('y', conf.titleTopMargin).attr('class', 'titleText'); - - function makeGant(tasks, pageWidth, pageHeight) { - var barHeight = conf.barHeight; - var gap = barHeight + conf.barGap; - var topPadding = conf.topPadding; - var leftPadding = conf.leftPadding; - - var colorScale = _d2.default.scale.linear().domain([0, categories.length]).range(['#00B9FA', '#F95002']).interpolate(_d2.default.interpolateHcl); - - makeGrid(leftPadding, topPadding, pageWidth, pageHeight); - drawRects(tasks, gap, topPadding, leftPadding, barHeight, colorScale, pageWidth, pageHeight); - vertLabels(gap, topPadding, leftPadding, barHeight, colorScale); - drawToday(leftPadding, topPadding, pageWidth, pageHeight); - } - - function drawRects(theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w, h) { - svg.append('g').selectAll('rect').data(theArray).enter().append('rect').attr('x', 0).attr('y', function (d, i) { - return i * theGap + theTopPad - 2; - }).attr('width', function () { - return w - conf.rightPadding / 2; - }).attr('height', theGap).attr('class', function (d) { - for (var i = 0; i < categories.length; i++) { - if (d.type === categories[i]) { - return 'section section' + i % conf.numberSectionStyles; - } - } - return 'section section0'; - }); - - var rectangles = svg.append('g').selectAll('rect').data(theArray).enter(); - - rectangles.append('rect').attr('rx', 3).attr('ry', 3).attr('x', function (d) { - return timeScale(d.startTime) + theSidePad; - }).attr('y', function (d, i) { - return i * theGap + theTopPad; - }).attr('width', function (d) { - return timeScale(d.endTime) - timeScale(d.startTime); - }).attr('height', theBarHeight).attr('class', function (d) { - var res = 'task '; - - var secNum = 0; - for (var i = 0; i < categories.length; i++) { - if (d.type === categories[i]) { - secNum = i % conf.numberSectionStyles; - } - } - - if (d.active) { - if (d.crit) { - return res + ' activeCrit' + secNum; - } else { - return res + ' active' + secNum; - } - } - - if (d.done) { - if (d.crit) { - return res + ' doneCrit' + secNum; - } else { - return res + ' done' + secNum; - } - } - - if (d.crit) { - return res + ' crit' + secNum; - } - - return res + ' task' + secNum; - }); - - rectangles.append('text').text(function (d) { - return d.task; - }).attr('font-size', conf.fontSize).attr('x', function (d) { - var startX = timeScale(d.startTime); - var endX = timeScale(d.endTime); - var textWidth = this.getBBox().width; - - // Check id text width > width of rectangle - if (textWidth > endX - startX) { - if (endX + textWidth + 1.5 * conf.leftPadding > w) { - return startX + theSidePad - 5; - } else { - return endX + theSidePad + 5; - } - } else { - return (endX - startX) / 2 + startX + theSidePad; - } - }).attr('y', function (d, i) { - return i * theGap + conf.barHeight / 2 + (conf.fontSize / 2 - 2) + theTopPad; - }).attr('text-height', theBarHeight).attr('class', function (d) { - var startX = timeScale(d.startTime); - var endX = timeScale(d.endTime); - var textWidth = this.getBBox().width; - var secNum = 0; - for (var i = 0; i < categories.length; i++) { - if (d.type === categories[i]) { - secNum = i % conf.numberSectionStyles; - } - } - - var taskType = ''; - if (d.active) { - if (d.crit) { - taskType = 'activeCritText' + secNum; - } else { - taskType = 'activeText' + secNum; - } - } - - if (d.done) { - if (d.crit) { - taskType = taskType + ' doneCritText' + secNum; - } else { - taskType = taskType + ' doneText' + secNum; - } - } else { - if (d.crit) { - taskType = taskType + ' critText' + secNum; - } - } - - // Check id text width > width of rectangle - if (textWidth > endX - startX) { - if (endX + textWidth + 1.5 * conf.leftPadding > w) { - return 'taskTextOutsideLeft taskTextOutside' + secNum + ' ' + taskType; - } else { - return 'taskTextOutsideRight taskTextOutside' + secNum + ' ' + taskType; - } - } else { - return 'taskText taskText' + secNum + ' ' + taskType; - } - }); - } - - function makeGrid(theSidePad, theTopPad, w, h) { - var pre = [['.%L', function (d) { - return d.getMilliseconds(); - }], [':%S', function (d) { - return d.getSeconds(); - }], - // Within a hour - ['h1 %I:%M', function (d) { - return d.getMinutes(); - }]]; - var post = [['%Y', function () { - return true; - }]]; - - var mid = [ - // Within a day - ['%I:%M', function (d) { - return d.getHours(); - }], - // Day within a week (not monday) - ['%a %d', function (d) { - return d.getDay() && d.getDate() !== 1; - }], - // within a month - ['%b %d', function (d) { - return d.getDate() !== 1; - }], - // Month - ['%B', function (d) { - return d.getMonth(); - }]]; - var formatter; - if (typeof conf.axisFormatter !== 'undefined') { - mid = []; - conf.axisFormatter.forEach(function (item) { - var n = []; - n[0] = item[0]; - n[1] = item[1]; - mid.push(n); - }); - } - formatter = pre.concat(mid).concat(post); - - var xAxis = _d2.default.svg.axis().scale(timeScale).orient('bottom').tickSize(-h + theTopPad + conf.gridLineStartPadding, 0, 0).tickFormat(_d2.default.time.format.multi(formatter)); - - if (daysInChart > 7 && daysInChart < 230) { - xAxis = xAxis.ticks(_d2.default.time.monday.range); - } - - svg.append('g').attr('class', 'grid').attr('transform', 'translate(' + theSidePad + ', ' + (h - 50) + ')').call(xAxis).selectAll('text').style('text-anchor', 'middle').attr('fill', '#000').attr('stroke', 'none').attr('font-size', 10).attr('dy', '1em'); - } - - function vertLabels(theGap, theTopPad) { - var numOccurances = []; - var prevGap = 0; - - for (var i = 0; i < categories.length; i++) { - numOccurances[i] = [categories[i], getCount(categories[i], catsUnfiltered)]; - } - - svg.append('g') // without doing this, impossible to put grid lines behind text - .selectAll('text').data(numOccurances).enter().append('text').text(function (d) { - return d[0]; - }).attr('x', 10).attr('y', function (d, i) { - if (i > 0) { - for (var j = 0; j < i; j++) { - prevGap += numOccurances[i - 1][1]; - return d[1] * theGap / 2 + prevGap * theGap + theTopPad; - } - } else { - return d[1] * theGap / 2 + theTopPad; - } - }).attr('class', function (d) { - for (var i = 0; i < categories.length; i++) { - if (d[0] === categories[i]) { - return 'sectionTitle sectionTitle' + i % conf.numberSectionStyles; - } - } - return 'sectionTitle'; - }); - } - - function drawToday(theSidePad, theTopPad, w, h) { - var todayG = svg.append('g').attr('class', 'today'); - - var today = new Date(); - - todayG.append('line').attr('x1', timeScale(today) + theSidePad).attr('x2', timeScale(today) + theSidePad).attr('y1', conf.titleTopMargin).attr('y2', h - conf.titleTopMargin).attr('class', 'today'); - } - - // from this stackexchange question: http://stackoverflow.com/questions/1890203/unique-for-arrays-in-javascript - function checkUnique(arr) { - var hash = {}; - var result = []; - for (var i = 0, l = arr.length; i < l; ++i) { - if (!hash.hasOwnProperty(arr[i])) { - // it works with objects! in FF, at least - hash[arr[i]] = true; - result.push(arr[i]); - } - } - return result; - } - - // from this stackexchange question: http://stackoverflow.com/questions/14227981/count-how-many-strings-in-an-array-have-duplicates-in-the-same-array - function getCounts(arr) { - var i = arr.length; // var to loop over - var obj = {}; // obj to store results - while (i) { - obj[arr[--i]] = (obj[arr[i]] || 0) + 1; // count occurrences - } - return obj; - } - - // get specific from everything - function getCount(word, arr) { - return getCounts(arr)[word] || 0; - } -}; - -exports.default = { - setConf: setConf, - draw: draw -}; - -/***/ }), -/* 35 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.draw = exports.setConf = undefined; - -var _dagreLayout = __webpack_require__(36); - -var _dagreLayout2 = _interopRequireDefault(_dagreLayout); - -var _classDb = __webpack_require__(19); - -var _classDb2 = _interopRequireDefault(_classDb); - -var _d = __webpack_require__(1); - -var _d2 = _interopRequireDefault(_d); - -var _logger = __webpack_require__(0); - -var _classDiagram = __webpack_require__(18); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -_classDiagram.parser.yy = _classDb2.default; - -var idCache; -idCache = {}; - -var classCnt = 0; -var conf = { - dividerMargin: 10, - padding: 5, - textHeight: 10 - - // Todo optimize -};var getGraphId = function getGraphId(label) { - var keys = Object.keys(idCache); - - var i; - for (i = 0; i < keys.length; i++) { - if (idCache[keys[i]].label === label) { - return keys[i]; - } - } - - return undefined; -}; - -/** - * Setup arrow head and define the marker. The result is appended to the svg. - */ -var insertMarkers = function insertMarkers(elem) { - elem.append('defs').append('marker').attr('id', 'extensionStart').attr('class', 'extension').attr('refX', 0).attr('refY', 7).attr('markerWidth', 190).attr('markerHeight', 240).attr('orient', 'auto').append('path').attr('d', 'M 1,7 L18,13 V 1 Z'); - - elem.append('defs').append('marker').attr('id', 'extensionEnd').attr('refX', 19).attr('refY', 7).attr('markerWidth', 20).attr('markerHeight', 28).attr('orient', 'auto').append('path').attr('d', 'M 1,1 V 13 L18,7 Z'); // this is actual shape for arrowhead - - elem.append('defs').append('marker').attr('id', 'compositionStart').attr('class', 'extension').attr('refX', 0).attr('refY', 7).attr('markerWidth', 190).attr('markerHeight', 240).attr('orient', 'auto').append('path').attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z'); - - elem.append('defs').append('marker').attr('id', 'compositionEnd').attr('refX', 19).attr('refY', 7).attr('markerWidth', 20).attr('markerHeight', 28).attr('orient', 'auto').append('path').attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z'); - - elem.append('defs').append('marker').attr('id', 'aggregationStart').attr('class', 'extension').attr('refX', 0).attr('refY', 7).attr('markerWidth', 190).attr('markerHeight', 240).attr('orient', 'auto').append('path').attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z'); - - elem.append('defs').append('marker').attr('id', 'aggregationEnd').attr('refX', 19).attr('refY', 7).attr('markerWidth', 20).attr('markerHeight', 28).attr('orient', 'auto').append('path').attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z'); - - elem.append('defs').append('marker').attr('id', 'dependencyStart').attr('class', 'extension').attr('refX', 0).attr('refY', 7).attr('markerWidth', 190).attr('markerHeight', 240).attr('orient', 'auto').append('path').attr('d', 'M 5,7 L9,13 L1,7 L9,1 Z'); - - elem.append('defs').append('marker').attr('id', 'dependencyEnd').attr('refX', 19).attr('refY', 7).attr('markerWidth', 20).attr('markerHeight', 28).attr('orient', 'auto').append('path').attr('d', 'M 18,7 L9,13 L14,7 L9,1 Z'); -}; - -var edgeCount = 0; -var drawEdge = function drawEdge(elem, path, relation) { - var getRelationType = function getRelationType(type) { - switch (type) { - case _classDb2.default.relationType.AGGREGATION: - return 'aggregation'; - case _classDb2.default.relationType.EXTENSION: - return 'extension'; - case _classDb2.default.relationType.COMPOSITION: - return 'composition'; - case _classDb2.default.relationType.DEPENDENCY: - return 'dependency'; - } - }; - - // The data for our line - var lineData = path.points; - - // This is the accessor function we talked about above - var lineFunction = _d2.default.svg.line().x(function (d) { - return d.x; - }).y(function (d) { - return d.y; - }).interpolate('basis'); - - var svgPath = elem.append('path').attr('d', lineFunction(lineData)).attr('id', 'edge' + edgeCount).attr('class', 'relation'); - var url = ''; - if (conf.arrowMarkerAbsolute) { - url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search; - url = url.replace(/\(/g, '\\('); - url = url.replace(/\)/g, '\\)'); - } - - if (relation.relation.type1 !== 'none') { - svgPath.attr('marker-start', 'url(' + url + '#' + getRelationType(relation.relation.type1) + 'Start' + ')'); - } - if (relation.relation.type2 !== 'none') { - svgPath.attr('marker-end', 'url(' + url + '#' + getRelationType(relation.relation.type2) + 'End' + ')'); - } - - var x, y; - var l = path.points.length; - if (l % 2 !== 0) { - var p1 = path.points[Math.floor(l / 2)]; - var p2 = path.points[Math.ceil(l / 2)]; - x = (p1.x + p2.x) / 2; - y = (p1.y + p2.y) / 2; - } else { - var p = path.points[Math.floor(l / 2)]; - x = p.x; - y = p.y; - } - - if (typeof relation.title !== 'undefined') { - var g = elem.append('g').attr('class', 'classLabel'); - var label = g.append('text').attr('class', 'label').attr('x', x).attr('y', y).attr('fill', 'red').attr('text-anchor', 'middle').text(relation.title); - - window.label = label; - var bounds = label.node().getBBox(); - - g.insert('rect', ':first-child').attr('class', 'box').attr('x', bounds.x - conf.padding / 2).attr('y', bounds.y - conf.padding / 2).attr('width', bounds.width + conf.padding).attr('height', bounds.height + conf.padding); - } - - edgeCount++; -}; - -var drawClass = function drawClass(elem, classDef) { - _logger.logger.info('Rendering class ' + classDef); - - var addTspan = function addTspan(textEl, txt, isFirst) { - var tSpan = textEl.append('tspan').attr('x', conf.padding).text(txt); - if (!isFirst) { - tSpan.attr('dy', conf.textHeight); - } - }; - - var id = 'classId' + classCnt; - var classInfo = { - id: id, - label: classDef.id, - width: 0, - height: 0 - }; - - var g = elem.append('g').attr('id', id).attr('class', 'classGroup'); - var title = g.append('text').attr('x', conf.padding).attr('y', conf.textHeight + conf.padding).text(classDef.id); - - var titleHeight = title.node().getBBox().height; - - var membersLine = g.append('line') // text label for the x axis - .attr('x1', 0).attr('y1', conf.padding + titleHeight + conf.dividerMargin / 2).attr('y2', conf.padding + titleHeight + conf.dividerMargin / 2); - - var members = g.append('text') // text label for the x axis - .attr('x', conf.padding).attr('y', titleHeight + conf.dividerMargin + conf.textHeight).attr('fill', 'white').attr('class', 'classText'); - - var isFirst = true; - - classDef.members.forEach(function (member) { - addTspan(members, member, isFirst); - isFirst = false; - }); - - var membersBox = members.node().getBBox(); - - var methodsLine = g.append('line') // text label for the x axis - .attr('x1', 0).attr('y1', conf.padding + titleHeight + conf.dividerMargin + membersBox.height).attr('y2', conf.padding + titleHeight + conf.dividerMargin + membersBox.height); - - var methods = g.append('text') // text label for the x axis - .attr('x', conf.padding).attr('y', titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight).attr('fill', 'white').attr('class', 'classText'); - - isFirst = true; - - classDef.methods.forEach(function (method) { - addTspan(methods, method, isFirst); - isFirst = false; - }); - - var classBox = g.node().getBBox(); - g.insert('rect', ':first-child').attr('x', 0).attr('y', 0).attr('width', classBox.width + 2 * conf.padding).attr('height', classBox.height + conf.padding + 0.5 * conf.dividerMargin); - - membersLine.attr('x2', classBox.width + 2 * conf.padding); - methodsLine.attr('x2', classBox.width + 2 * conf.padding); - - classInfo.width = classBox.width + 2 * conf.padding; - classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin; - - idCache[id] = classInfo; - classCnt++; - return classInfo; -}; - -var setConf = exports.setConf = function setConf(cnf) { - var keys = Object.keys(cnf); - - keys.forEach(function (key) { - conf[key] = cnf[key]; - }); -}; -/** - * Draws a flowchart in the tag with id: id based on the graph definition in text. - * @param text - * @param id - */ -var draw = exports.draw = function draw(text, id) { - _classDiagram.parser.yy.clear(); - _classDiagram.parser.parse(text); - - _logger.logger.info('Rendering diagram ' + text); - - /// / Fetch the default direction, use TD if none was found - var diagram = _d2.default.select('#' + id); - insertMarkers(diagram); - - // Layout graph, Create a new directed graph - var g = new _dagreLayout2.default.graphlib.Graph({ - multigraph: true - }); - - // Set an object for the graph label - g.setGraph({ - isMultiGraph: true - }); - - // Default to assigning a new object as a label for each new edge. - g.setDefaultEdgeLabel(function () { - return {}; - }); - - var classes = _classDb2.default.getClasses(); - var keys = Object.keys(classes); - var i; - for (i = 0; i < keys.length; i++) { - var classDef = classes[keys[i]]; - var node = drawClass(diagram, classDef); - // Add nodes to the graph. The first argument is the node id. The second is - // metadata about the node. In this case we're going to add labels to each of - // our nodes. - g.setNode(node.id, node); - _logger.logger.info('Org height: ' + node.height); - } - - var relations = _classDb2.default.getRelations(); - relations.forEach(function (relation) { - _logger.logger.info('tjoho' + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation)); - g.setEdge(getGraphId(relation.id1), getGraphId(relation.id2), { relation: relation }); - }); - _dagreLayout2.default.layout(g); - g.nodes().forEach(function (v) { - if (typeof v !== 'undefined') { - _logger.logger.debug('Node ' + v + ': ' + JSON.stringify(g.node(v))); - _d2.default.select('#' + v).attr('transform', 'translate(' + (g.node(v).x - g.node(v).width / 2) + ',' + (g.node(v).y - g.node(v).height / 2) + ' )'); - } - }); - g.edges().forEach(function (e) { - _logger.logger.debug('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(g.edge(e))); - drawEdge(diagram, g.edge(e), g.edge(e).relation); - }); - - diagram.attr('height', '100%'); - diagram.attr('width', '100%'); - diagram.attr('viewBox', '0 0 ' + (g.graph().width + 20) + ' ' + (g.graph().height + 20)); -}; - -exports.default = { - setConf: setConf, - draw: draw -}; - -/***/ }), -/* 36 */ -/***/ (function(module, exports) { - -module.exports = require("dagre-layout"); - -/***/ }), -/* 37 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.draw = exports.setConf = undefined; - -var _each2 = __webpack_require__(21); - -var _each3 = _interopRequireDefault(_each2); - -var _extend2 = __webpack_require__(38); - -var _extend3 = _interopRequireDefault(_extend2); - -var _isArray2 = __webpack_require__(39); - -var _isArray3 = _interopRequireDefault(_isArray2); - -var _find2 = __webpack_require__(40); - -var _find3 = _interopRequireDefault(_find2); - -var _isString2 = __webpack_require__(41); - -var _isString3 = _interopRequireDefault(_isString2); - -var _gitGraphAst = __webpack_require__(22); - -var _gitGraphAst2 = _interopRequireDefault(_gitGraphAst); - -var _gitGraph = __webpack_require__(20); - -var _gitGraph2 = _interopRequireDefault(_gitGraph); - -var _d = __webpack_require__(1); - -var _d2 = _interopRequireDefault(_d); - -var _logger = __webpack_require__(0); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var allCommitsDict = {}; -var branchNum; -var config = { - nodeSpacing: 150, - nodeFillColor: 'yellow', - nodeStrokeWidth: 2, - nodeStrokeColor: 'grey', - lineStrokeWidth: 4, - branchOffset: 50, - lineColor: 'grey', - leftMargin: 50, - branchColors: ['#442f74', '#983351', '#609732', '#AA9A39'], - nodeRadius: 10, - nodeLabel: { - width: 75, - height: 100, - x: -25, - y: 0 - } -}; -var apiConfig = {}; -var setConf = exports.setConf = function setConf(c) { - apiConfig = c; -}; - -function svgCreateDefs(svg) { - svg.append('defs').append('g').attr('id', 'def-commit').append('circle').attr('r', config.nodeRadius).attr('cx', 0).attr('cy', 0); - svg.select('#def-commit').append('foreignObject').attr('width', config.nodeLabel.width).attr('height', config.nodeLabel.height).attr('x', config.nodeLabel.x).attr('y', config.nodeLabel.y).attr('class', 'node-label').attr('requiredFeatures', 'http://www.w3.org/TR/SVG11/feature#Extensibility').append('xhtml:p').html(''); -} - -function svgDrawLine(svg, points, colorIdx, interpolate) { - interpolate = interpolate || 'basis'; - var color = config.branchColors[colorIdx % config.branchColors.length]; - var lineGen = _d2.default.svg.line().x(function (d) { - return Math.round(d.x); - }).y(function (d) { - return Math.round(d.y); - }).interpolate(interpolate); - - svg.append('svg:path').attr('d', lineGen(points)).style('stroke', color).style('stroke-width', config.lineStrokeWidth).style('fill', 'none'); -} -// Pass in the element and its pre-transform coords -function getElementCoords(element, coords) { - coords = coords || element.node().getBBox(); - var ctm = element.node().getCTM(); - var xn = ctm.e + coords.x * ctm.a; - var yn = ctm.f + coords.y * ctm.d; - return { - left: xn, - top: yn, - width: coords.width, - height: coords.height - }; -} - -function svgDrawLineForCommits(svg, fromId, toId, direction, color) { - _logger.logger.debug('svgDrawLineForCommits: ', fromId, toId); - var fromBbox = getElementCoords(svg.select('#node-' + fromId + ' circle')); - var toBbox = getElementCoords(svg.select('#node-' + toId + ' circle')); - switch (direction) { - case 'LR': - // (toBbox) - // +-------- - // + (fromBbox) - if (fromBbox.left - toBbox.left > config.nodeSpacing) { - var lineStart = { x: fromBbox.left - config.nodeSpacing, y: toBbox.top + toBbox.height / 2 }; - var lineEnd = { x: toBbox.left + toBbox.width, y: toBbox.top + toBbox.height / 2 }; - svgDrawLine(svg, [lineStart, lineEnd], color, 'linear'); - svgDrawLine(svg, [{ x: fromBbox.left, y: fromBbox.top + fromBbox.height / 2 }, { x: fromBbox.left - config.nodeSpacing / 2, y: fromBbox.top + fromBbox.height / 2 }, { x: fromBbox.left - config.nodeSpacing / 2, y: lineStart.y }, lineStart], color); - } else { - svgDrawLine(svg, [{ - 'x': fromBbox.left, - 'y': fromBbox.top + fromBbox.height / 2 - }, { - 'x': fromBbox.left - config.nodeSpacing / 2, - 'y': fromBbox.top + fromBbox.height / 2 - }, { - 'x': fromBbox.left - config.nodeSpacing / 2, - 'y': toBbox.top + toBbox.height / 2 - }, { - 'x': toBbox.left + toBbox.width, - 'y': toBbox.top + toBbox.height / 2 - }], color); - } - break; - case 'BT': - // + (fromBbox) - // | - // | - // + (toBbox) - if (toBbox.top - fromBbox.top > config.nodeSpacing) { - lineStart = { x: toBbox.left + toBbox.width / 2, y: fromBbox.top + fromBbox.height + config.nodeSpacing }; - lineEnd = { x: toBbox.left + toBbox.width / 2, y: toBbox.top }; - svgDrawLine(svg, [lineStart, lineEnd], color, 'linear'); - svgDrawLine(svg, [{ x: fromBbox.left + fromBbox.width / 2, y: fromBbox.top + fromBbox.height }, { x: fromBbox.left + fromBbox.width / 2, y: fromBbox.top + fromBbox.height + config.nodeSpacing / 2 }, { x: toBbox.left + toBbox.width / 2, y: lineStart.y - config.nodeSpacing / 2 }, lineStart], color); - } else { - svgDrawLine(svg, [{ - 'x': fromBbox.left + fromBbox.width / 2, - 'y': fromBbox.top + fromBbox.height - }, { - 'x': fromBbox.left + fromBbox.width / 2, - 'y': fromBbox.top + config.nodeSpacing / 2 - }, { - 'x': toBbox.left + toBbox.width / 2, - 'y': toBbox.top - config.nodeSpacing / 2 - }, { - 'x': toBbox.left + toBbox.width / 2, - 'y': toBbox.top - }], color); - } - break; - } -} - -function cloneNode(svg, selector) { - return svg.select(selector).node().cloneNode(true); -} - -function renderCommitHistory(svg, commitid, branches, direction) { - var commit; - var numCommits = Object.keys(allCommitsDict).length; - if ((0, _isString3.default)(commitid)) { - do { - commit = allCommitsDict[commitid]; - _logger.logger.debug('in renderCommitHistory', commit.id, commit.seq); - if (svg.select('#node-' + commitid).size() > 0) { - return; - } - svg.append(function () { - return cloneNode(svg, '#def-commit'); - }).attr('class', 'commit').attr('id', function () { - return 'node-' + commit.id; - }).attr('transform', function () { - switch (direction) { - case 'LR': - return 'translate(' + (commit.seq * config.nodeSpacing + config.leftMargin) + ', ' + branchNum * config.branchOffset + ')'; - case 'BT': - return 'translate(' + (branchNum * config.branchOffset + config.leftMargin) + ', ' + (numCommits - commit.seq) * config.nodeSpacing + ')'; - } - }).attr('fill', config.nodeFillColor).attr('stroke', config.nodeStrokeColor).attr('stroke-width', config.nodeStrokeWidth); - - var branch = (0, _find3.default)(branches, ['commit', commit]); - if (branch) { - _logger.logger.debug('found branch ', branch.name); - svg.select('#node-' + commit.id + ' p').append('xhtml:span').attr('class', 'branch-label').text(branch.name + ', '); - } - svg.select('#node-' + commit.id + ' p').append('xhtml:span').attr('class', 'commit-id').text(commit.id); - if (commit.message !== '' && direction === 'BT') { - svg.select('#node-' + commit.id + ' p').append('xhtml:span').attr('class', 'commit-msg').text(', ' + commit.message); - } - commitid = commit.parent; - } while (commitid && allCommitsDict[commitid]); - } - - if ((0, _isArray3.default)(commitid)) { - _logger.logger.debug('found merge commmit', commitid); - renderCommitHistory(svg, commitid[0], branches, direction); - branchNum++; - renderCommitHistory(svg, commitid[1], branches, direction); - branchNum--; - } -} - -function renderLines(svg, commit, direction, branchColor) { - branchColor = branchColor || 0; - while (commit.seq > 0 && !commit.lineDrawn) { - if ((0, _isString3.default)(commit.parent)) { - svgDrawLineForCommits(svg, commit.id, commit.parent, direction, branchColor); - commit.lineDrawn = true; - commit = allCommitsDict[commit.parent]; - } else if ((0, _isArray3.default)(commit.parent)) { - svgDrawLineForCommits(svg, commit.id, commit.parent[0], direction, branchColor); - svgDrawLineForCommits(svg, commit.id, commit.parent[1], direction, branchColor + 1); - renderLines(svg, allCommitsDict[commit.parent[1]], direction, branchColor + 1); - commit.lineDrawn = true; - commit = allCommitsDict[commit.parent[0]]; - } - } -} - -var draw = exports.draw = function draw(txt, id, ver) { - try { - var parser; - parser = _gitGraph2.default.parser; - parser.yy = _gitGraphAst2.default; - - _logger.logger.debug('in gitgraph renderer', txt, id, ver); - // Parse the graph definition - parser.parse(txt + '\n'); - - config = (0, _extend3.default)(config, apiConfig, _gitGraphAst2.default.getOptions()); - _logger.logger.debug('effective options', config); - var direction = _gitGraphAst2.default.getDirection(); - allCommitsDict = _gitGraphAst2.default.getCommits(); - var branches = _gitGraphAst2.default.getBranchesAsObjArray(); - if (direction === 'BT') { - config.nodeLabel.x = branches.length * config.branchOffset; - config.nodeLabel.width = '100%'; - config.nodeLabel.y = -1 * 2 * config.nodeRadius; - } - var svg = _d2.default.select('#' + id); - svgCreateDefs(svg); - branchNum = 1; - (0, _each3.default)(branches, function (v) { - renderCommitHistory(svg, v.commit.id, branches, direction); - renderLines(svg, v.commit, direction); - branchNum++; - }); - svg.attr('height', function () { - if (direction === 'BT') return Object.keys(allCommitsDict).length * config.nodeSpacing; - return (branches.length + 1) * config.branchOffset; - }); - } catch (e) { - _logger.logger.error('Error while rendering gitgraph'); - _logger.logger.error(e.message); - } -}; - -exports.default = { - setConf: setConf, - draw: draw -}; - -/***/ }), -/* 38 */ -/***/ (function(module, exports) { - -module.exports = require("lodash/extend"); - -/***/ }), -/* 39 */ -/***/ (function(module, exports) { - -module.exports = require("lodash/isArray"); - -/***/ }), -/* 40 */ -/***/ (function(module, exports) { - -module.exports = require("lodash/find"); - -/***/ }), -/* 41 */ -/***/ (function(module, exports) { - -module.exports = require("lodash/isString"); - -/***/ }), -/* 42 */ -/***/ (function(module, exports) { - -module.exports = require("lodash/orderBy"); - -/***/ }), -/* 43 */ -/***/ (function(module, exports) { - -module.exports = require("lodash/map"); - -/***/ }), -/* 44 */ -/***/ (function(module, exports) { - -module.exports = require("lodash/uniqBy"); - -/***/ }), -/* 45 */ -/***/ (function(module, exports) { - -module.exports = require("lodash/maxBy"); - -/***/ }), -/* 46 */ -/***/ (function(module, exports, __webpack_require__) { - -// css-to-string-loader: transforms styles from css-loader to a string output - -// Get the styles -var styles = __webpack_require__(47); - -if (typeof styles === 'string') { - // Return an existing string - module.exports = styles; -} else { - // Call the custom toString method from css-loader module - module.exports = styles.toString(); -} - -/***/ }), -/* 47 */ -/***/ (function(module, exports, __webpack_require__) { - -exports = module.exports = __webpack_require__(6)(undefined); -// imports - - -// module -exports.push([module.i, "/* Flowchart variables */\n/* Sequence Diagram variables */\n/* Gantt chart variables */\n.mermaid .label {\n color: #323D47;\n}\n.node rect,\n.node circle,\n.node ellipse,\n.node polygon {\n fill: #BDD5EA;\n stroke: #81B1DB;\n stroke-width: 1px;\n}\n.arrowheadPath {\n fill: lightgrey;\n}\n.edgePath .path {\n stroke: lightgrey;\n}\n.edgeLabel {\n background-color: #e8e8e8;\n}\n.cluster rect {\n fill: #6D6D65 !important;\n rx: 4 !important;\n stroke: rgba(255, 255, 255, 0.25) !important;\n stroke-width: 1px !important;\n}\n.cluster text {\n fill: #F9FFFE;\n}\n.actor {\n stroke: #81B1DB;\n fill: #BDD5EA;\n}\ntext.actor {\n fill: black;\n stroke: none;\n}\n.actor-line {\n stroke: lightgrey;\n}\n.messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: \"2 2\";\n marker-end: \"url(#arrowhead)\";\n stroke: lightgrey;\n}\n.messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: \"2 2\";\n stroke: lightgrey;\n}\n#arrowhead {\n fill: lightgrey !important;\n}\n#crosshead path {\n fill: lightgrey !important;\n stroke: lightgrey !important;\n}\n.messageText {\n fill: lightgrey;\n stroke: none;\n}\n.labelBox {\n stroke: #81B1DB;\n fill: #BDD5EA;\n}\n.labelText {\n fill: #323D47;\n stroke: none;\n}\n.loopText {\n fill: lightgrey;\n stroke: none;\n}\n.loopLine {\n stroke-width: 2;\n stroke-dasharray: \"2 2\";\n marker-end: \"url(#arrowhead)\";\n stroke: #81B1DB;\n}\n.note {\n stroke: rgba(255, 255, 255, 0.25);\n fill: #fff5ad;\n}\n.noteText {\n fill: black;\n stroke: none;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 14px;\n}\n/** Section styling */\n.section {\n stroke: none;\n opacity: 0.2;\n}\n.section0 {\n fill: rgba(255, 255, 255, 0.3);\n}\n.section2 {\n fill: #EAE8B9;\n}\n.section1,\n.section3 {\n fill: white;\n opacity: 0.2;\n}\n.sectionTitle0 {\n fill: #F9FFFE;\n}\n.sectionTitle1 {\n fill: #F9FFFE;\n}\n.sectionTitle2 {\n fill: #F9FFFE;\n}\n.sectionTitle3 {\n fill: #F9FFFE;\n}\n.sectionTitle {\n text-anchor: start;\n font-size: 11px;\n text-height: 14px;\n}\n/* Grid and axis */\n.grid .tick {\n stroke: rgba(255, 255, 255, 0.3);\n opacity: 0.3;\n shape-rendering: crispEdges;\n}\n.grid .tick text {\n fill: lightgrey;\n opacity: 0.5;\n}\n.grid path {\n stroke-width: 0;\n}\n/* Today line */\n.today {\n fill: none;\n stroke: #DB5757;\n stroke-width: 2px;\n}\n/* Task styling */\n/* Default task */\n.task {\n stroke-width: 1;\n}\n.taskText {\n text-anchor: middle;\n font-size: 11px;\n}\n.taskTextOutsideRight {\n fill: #323D47;\n text-anchor: start;\n font-size: 11px;\n}\n.taskTextOutsideLeft {\n fill: #323D47;\n text-anchor: end;\n font-size: 11px;\n}\n/* Specific task settings for the sections*/\n.taskText0,\n.taskText1,\n.taskText2,\n.taskText3 {\n fill: #323D47;\n}\n.task0,\n.task1,\n.task2,\n.task3 {\n fill: #BDD5EA;\n stroke: rgba(255, 255, 255, 0.5);\n}\n.taskTextOutside0,\n.taskTextOutside2 {\n fill: lightgrey;\n}\n.taskTextOutside1,\n.taskTextOutside3 {\n fill: lightgrey;\n}\n/* Active task */\n.active0,\n.active1,\n.active2,\n.active3 {\n fill: #81B1DB;\n stroke: rgba(255, 255, 255, 0.5);\n}\n.activeText0,\n.activeText1,\n.activeText2,\n.activeText3 {\n fill: #323D47 !important;\n}\n/* Completed task */\n.done0,\n.done1,\n.done2,\n.done3 {\n fill: lightgrey;\n}\n.doneText0,\n.doneText1,\n.doneText2,\n.doneText3 {\n fill: #323D47 !important;\n}\n/* Tasks on the critical line */\n.crit0,\n.crit1,\n.crit2,\n.crit3 {\n stroke: #E83737;\n fill: #E83737;\n stroke-width: 2;\n}\n.activeCrit0,\n.activeCrit1,\n.activeCrit2,\n.activeCrit3 {\n stroke: #E83737;\n fill: #81B1DB;\n stroke-width: 2;\n}\n.doneCrit0,\n.doneCrit1,\n.doneCrit2,\n.doneCrit3 {\n stroke: #E83737;\n fill: lightgrey;\n stroke-width: 1;\n cursor: pointer;\n shape-rendering: crispEdges;\n}\n.doneCritText0,\n.doneCritText1,\n.doneCritText2,\n.doneCritText3 {\n fill: lightgrey !important;\n}\n.activeCritText0,\n.activeCritText1,\n.activeCritText2,\n.activeCritText3 {\n fill: #323D47 !important;\n}\n.titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: lightgrey;\n}\ng.classGroup text {\n fill: purple;\n stroke: none;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 10px;\n}\ng.classGroup rect {\n fill: #BDD5EA;\n stroke: purple;\n}\ng.classGroup line {\n stroke: purple;\n stroke-width: 1;\n}\nsvg .classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: #BDD5EA;\n opacity: 0.5;\n}\nsvg .classLabel .label {\n fill: purple;\n font-size: 10px;\n}\n.relation {\n stroke: purple;\n stroke-width: 1;\n fill: none;\n}\n.composition {\n fill: purple;\n stroke: purple;\n stroke-width: 1;\n}\n#compositionStart {\n fill: purple;\n stroke: purple;\n stroke-width: 1;\n}\n#compositionEnd {\n fill: purple;\n stroke: purple;\n stroke-width: 1;\n}\n.aggregation {\n fill: #BDD5EA;\n stroke: purple;\n stroke-width: 1;\n}\n#aggregationStart {\n fill: #BDD5EA;\n stroke: purple;\n stroke-width: 1;\n}\n#aggregationEnd {\n fill: #BDD5EA;\n stroke: purple;\n stroke-width: 1;\n}\n#dependencyStart {\n fill: purple;\n stroke: purple;\n stroke-width: 1;\n}\n#dependencyEnd {\n fill: purple;\n stroke: purple;\n stroke-width: 1;\n}\n#extensionStart {\n fill: purple;\n stroke: purple;\n stroke-width: 1;\n}\n#extensionEnd {\n fill: purple;\n stroke: purple;\n stroke-width: 1;\n}\n.commit-id,\n.commit-msg,\n.branch-label {\n fill: lightgrey;\n color: lightgrey;\n}\n.node text {\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 14px;\n}\ndiv.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 12px;\n background: #6D6D65;\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n}\n", ""]); - -// exports - - -/***/ }), -/* 48 */ -/***/ (function(module, exports, __webpack_require__) { - -// css-to-string-loader: transforms styles from css-loader to a string output - -// Get the styles -var styles = __webpack_require__(49); - -if (typeof styles === 'string') { - // Return an existing string - module.exports = styles; -} else { - // Call the custom toString method from css-loader module - module.exports = styles.toString(); -} - -/***/ }), -/* 49 */ -/***/ (function(module, exports, __webpack_require__) { - -exports = module.exports = __webpack_require__(6)(undefined); -// imports - - -// module -exports.push([module.i, "/* Flowchart variables */\n/* Sequence Diagram variables */\n/* Gantt chart variables */\n.mermaid .label {\n color: #333;\n}\n.node rect,\n.node circle,\n.node ellipse,\n.node polygon {\n fill: #ECECFF;\n stroke: #CCCCFF;\n stroke-width: 1px;\n}\n.arrowheadPath {\n fill: #333333;\n}\n.edgePath .path {\n stroke: #333333;\n}\n.edgeLabel {\n background-color: #e8e8e8;\n}\n.cluster rect {\n fill: #ffffde !important;\n rx: 4 !important;\n stroke: #aaaa33 !important;\n stroke-width: 1px !important;\n}\n.cluster text {\n fill: #333;\n}\n.actor {\n stroke: #CCCCFF;\n fill: #ECECFF;\n}\ntext.actor {\n fill: black;\n stroke: none;\n}\n.actor-line {\n stroke: grey;\n}\n.messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: \"2 2\";\n marker-end: \"url(#arrowhead)\";\n stroke: #333;\n}\n.messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: \"2 2\";\n stroke: #333;\n}\n#arrowhead {\n fill: #333;\n}\n#crosshead path {\n fill: #333 !important;\n stroke: #333 !important;\n}\n.messageText {\n fill: #333;\n stroke: none;\n}\n.labelBox {\n stroke: #CCCCFF;\n fill: #ECECFF;\n}\n.labelText {\n fill: black;\n stroke: none;\n}\n.loopText {\n fill: black;\n stroke: none;\n}\n.loopLine {\n stroke-width: 2;\n stroke-dasharray: \"2 2\";\n marker-end: \"url(#arrowhead)\";\n stroke: #CCCCFF;\n}\n.note {\n stroke: #aaaa33;\n fill: #fff5ad;\n}\n.noteText {\n fill: black;\n stroke: none;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 14px;\n}\n/** Section styling */\n.section {\n stroke: none;\n opacity: 0.2;\n}\n.section0 {\n fill: rgba(102, 102, 255, 0.49);\n}\n.section2 {\n fill: #fff400;\n}\n.section1,\n.section3 {\n fill: white;\n opacity: 0.2;\n}\n.sectionTitle0 {\n fill: #333;\n}\n.sectionTitle1 {\n fill: #333;\n}\n.sectionTitle2 {\n fill: #333;\n}\n.sectionTitle3 {\n fill: #333;\n}\n.sectionTitle {\n text-anchor: start;\n font-size: 11px;\n text-height: 14px;\n}\n/* Grid and axis */\n.grid .tick {\n stroke: lightgrey;\n opacity: 0.3;\n shape-rendering: crispEdges;\n}\n.grid path {\n stroke-width: 0;\n}\n/* Today line */\n.today {\n fill: none;\n stroke: red;\n stroke-width: 2px;\n}\n/* Task styling */\n/* Default task */\n.task {\n stroke-width: 2;\n}\n.taskText {\n text-anchor: middle;\n font-size: 11px;\n}\n.taskTextOutsideRight {\n fill: black;\n text-anchor: start;\n font-size: 11px;\n}\n.taskTextOutsideLeft {\n fill: black;\n text-anchor: end;\n font-size: 11px;\n}\n/* Specific task settings for the sections*/\n.taskText0,\n.taskText1,\n.taskText2,\n.taskText3 {\n fill: white;\n}\n.task0,\n.task1,\n.task2,\n.task3 {\n fill: #8a90dd;\n stroke: #534fbc;\n}\n.taskTextOutside0,\n.taskTextOutside2 {\n fill: black;\n}\n.taskTextOutside1,\n.taskTextOutside3 {\n fill: black;\n}\n/* Active task */\n.active0,\n.active1,\n.active2,\n.active3 {\n fill: #bfc7ff;\n stroke: #534fbc;\n}\n.activeText0,\n.activeText1,\n.activeText2,\n.activeText3 {\n fill: black !important;\n}\n/* Completed task */\n.done0,\n.done1,\n.done2,\n.done3 {\n stroke: grey;\n fill: lightgrey;\n stroke-width: 2;\n}\n.doneText0,\n.doneText1,\n.doneText2,\n.doneText3 {\n fill: black !important;\n}\n/* Tasks on the critical line */\n.crit0,\n.crit1,\n.crit2,\n.crit3 {\n stroke: #ff8888;\n fill: red;\n stroke-width: 2;\n}\n.activeCrit0,\n.activeCrit1,\n.activeCrit2,\n.activeCrit3 {\n stroke: #ff8888;\n fill: #bfc7ff;\n stroke-width: 2;\n}\n.doneCrit0,\n.doneCrit1,\n.doneCrit2,\n.doneCrit3 {\n stroke: #ff8888;\n fill: lightgrey;\n stroke-width: 2;\n cursor: pointer;\n shape-rendering: crispEdges;\n}\n.doneCritText0,\n.doneCritText1,\n.doneCritText2,\n.doneCritText3 {\n fill: black !important;\n}\n.activeCritText0,\n.activeCritText1,\n.activeCritText2,\n.activeCritText3 {\n fill: black !important;\n}\n.titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: black;\n}\ng.classGroup text {\n fill: #9370DB;\n stroke: none;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 10px;\n}\ng.classGroup rect {\n fill: #ECECFF;\n stroke: #9370DB;\n}\ng.classGroup line {\n stroke: #9370DB;\n stroke-width: 1;\n}\nsvg .classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: #ECECFF;\n opacity: 0.5;\n}\nsvg .classLabel .label {\n fill: #9370DB;\n font-size: 10px;\n}\n.relation {\n stroke: #9370DB;\n stroke-width: 1;\n fill: none;\n}\n.composition {\n fill: #9370DB;\n stroke: #9370DB;\n stroke-width: 1;\n}\n#compositionStart {\n fill: #9370DB;\n stroke: #9370DB;\n stroke-width: 1;\n}\n#compositionEnd {\n fill: #9370DB;\n stroke: #9370DB;\n stroke-width: 1;\n}\n.aggregation {\n fill: #ECECFF;\n stroke: #9370DB;\n stroke-width: 1;\n}\n#aggregationStart {\n fill: #ECECFF;\n stroke: #9370DB;\n stroke-width: 1;\n}\n#aggregationEnd {\n fill: #ECECFF;\n stroke: #9370DB;\n stroke-width: 1;\n}\n#dependencyStart {\n fill: #9370DB;\n stroke: #9370DB;\n stroke-width: 1;\n}\n#dependencyEnd {\n fill: #9370DB;\n stroke: #9370DB;\n stroke-width: 1;\n}\n#extensionStart {\n fill: #9370DB;\n stroke: #9370DB;\n stroke-width: 1;\n}\n#extensionEnd {\n fill: #9370DB;\n stroke: #9370DB;\n stroke-width: 1;\n}\n.node text {\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 14px;\n}\ndiv.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 12px;\n background: #ffffde;\n border: 1px solid #aaaa33;\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n}\n", ""]); - -// exports - - -/***/ }), -/* 50 */ -/***/ (function(module, exports, __webpack_require__) { - -// css-to-string-loader: transforms styles from css-loader to a string output - -// Get the styles -var styles = __webpack_require__(51); - -if (typeof styles === 'string') { - // Return an existing string - module.exports = styles; -} else { - // Call the custom toString method from css-loader module - module.exports = styles.toString(); -} - -/***/ }), -/* 51 */ -/***/ (function(module, exports, __webpack_require__) { - -exports = module.exports = __webpack_require__(6)(undefined); -// imports - - -// module -exports.push([module.i, "/* Flowchart variables */\n/* Sequence Diagram variables */\n/* Gantt chart variables */\n.mermaid .label {\n font-family: 'trebuchet ms', verdana, arial;\n color: #333;\n}\n.node rect,\n.node circle,\n.node ellipse,\n.node polygon {\n fill: #cde498;\n stroke: #13540c;\n stroke-width: 1px;\n}\n.arrowheadPath {\n fill: green;\n}\n.edgePath .path {\n stroke: green;\n stroke-width: 1.5px;\n}\n.edgeLabel {\n background-color: #e8e8e8;\n}\n.cluster rect {\n fill: #cdffb2 !important;\n rx: 4 !important;\n stroke: #6eaa49 !important;\n stroke-width: 1px !important;\n}\n.cluster text {\n fill: #333;\n}\n.actor {\n stroke: #13540c;\n fill: #cde498;\n}\ntext.actor {\n fill: black;\n stroke: none;\n}\n.actor-line {\n stroke: grey;\n}\n.messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: \"2 2\";\n marker-end: \"url(#arrowhead)\";\n stroke: #333;\n}\n.messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: \"2 2\";\n stroke: #333;\n}\n#arrowhead {\n fill: #333;\n}\n#crosshead path {\n fill: #333 !important;\n stroke: #333 !important;\n}\n.messageText {\n fill: #333;\n stroke: none;\n}\n.labelBox {\n stroke: #326932;\n fill: #cde498;\n}\n.labelText {\n fill: black;\n stroke: none;\n}\n.loopText {\n fill: black;\n stroke: none;\n}\n.loopLine {\n stroke-width: 2;\n stroke-dasharray: \"2 2\";\n marker-end: \"url(#arrowhead)\";\n stroke: #326932;\n}\n.note {\n stroke: #6eaa49;\n fill: #fff5ad;\n}\n.noteText {\n fill: black;\n stroke: none;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 14px;\n}\n/** Section styling */\n.section {\n stroke: none;\n opacity: 0.2;\n}\n.section0 {\n fill: #6eaa49;\n}\n.section2 {\n fill: #6eaa49;\n}\n.section1,\n.section3 {\n fill: white;\n opacity: 0.2;\n}\n.sectionTitle0 {\n fill: #333;\n}\n.sectionTitle1 {\n fill: #333;\n}\n.sectionTitle2 {\n fill: #333;\n}\n.sectionTitle3 {\n fill: #333;\n}\n.sectionTitle {\n text-anchor: start;\n font-size: 11px;\n text-height: 14px;\n}\n/* Grid and axis */\n.grid .tick {\n stroke: lightgrey;\n opacity: 0.3;\n shape-rendering: crispEdges;\n}\n.grid path {\n stroke-width: 0;\n}\n/* Today line */\n.today {\n fill: none;\n stroke: red;\n stroke-width: 2px;\n}\n/* Task styling */\n/* Default task */\n.task {\n stroke-width: 2;\n}\n.taskText {\n text-anchor: middle;\n font-size: 11px;\n}\n.taskTextOutsideRight {\n fill: black;\n text-anchor: start;\n font-size: 11px;\n}\n.taskTextOutsideLeft {\n fill: black;\n text-anchor: end;\n font-size: 11px;\n}\n/* Specific task settings for the sections*/\n.taskText0,\n.taskText1,\n.taskText2,\n.taskText3 {\n fill: white;\n}\n.task0,\n.task1,\n.task2,\n.task3 {\n fill: #487e3a;\n stroke: #13540c;\n}\n.taskTextOutside0,\n.taskTextOutside2 {\n fill: black;\n}\n.taskTextOutside1,\n.taskTextOutside3 {\n fill: black;\n}\n/* Active task */\n.active0,\n.active1,\n.active2,\n.active3 {\n fill: #cde498;\n stroke: #13540c;\n}\n.activeText0,\n.activeText1,\n.activeText2,\n.activeText3 {\n fill: black !important;\n}\n/* Completed task */\n.done0,\n.done1,\n.done2,\n.done3 {\n stroke: grey;\n fill: lightgrey;\n stroke-width: 2;\n}\n.doneText0,\n.doneText1,\n.doneText2,\n.doneText3 {\n fill: black !important;\n}\n/* Tasks on the critical line */\n.crit0,\n.crit1,\n.crit2,\n.crit3 {\n stroke: #ff8888;\n fill: red;\n stroke-width: 2;\n}\n.activeCrit0,\n.activeCrit1,\n.activeCrit2,\n.activeCrit3 {\n stroke: #ff8888;\n fill: #cde498;\n stroke-width: 2;\n}\n.doneCrit0,\n.doneCrit1,\n.doneCrit2,\n.doneCrit3 {\n stroke: #ff8888;\n fill: lightgrey;\n stroke-width: 2;\n cursor: pointer;\n shape-rendering: crispEdges;\n}\n.doneCritText0,\n.doneCritText1,\n.doneCritText2,\n.doneCritText3 {\n fill: black !important;\n}\n.activeCritText0,\n.activeCritText1,\n.activeCritText2,\n.activeCritText3 {\n fill: black !important;\n}\n.titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: black;\n}\ng.classGroup text {\n fill: #13540c;\n stroke: none;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 10px;\n}\ng.classGroup rect {\n fill: #cde498;\n stroke: #13540c;\n}\ng.classGroup line {\n stroke: #13540c;\n stroke-width: 1;\n}\nsvg .classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: #cde498;\n opacity: 0.5;\n}\nsvg .classLabel .label {\n fill: #13540c;\n font-size: 10px;\n}\n.relation {\n stroke: #13540c;\n stroke-width: 1;\n fill: none;\n}\n.composition {\n fill: #13540c;\n stroke: #13540c;\n stroke-width: 1;\n}\n#compositionStart {\n fill: #13540c;\n stroke: #13540c;\n stroke-width: 1;\n}\n#compositionEnd {\n fill: #13540c;\n stroke: #13540c;\n stroke-width: 1;\n}\n.aggregation {\n fill: #cde498;\n stroke: #13540c;\n stroke-width: 1;\n}\n#aggregationStart {\n fill: #cde498;\n stroke: #13540c;\n stroke-width: 1;\n}\n#aggregationEnd {\n fill: #cde498;\n stroke: #13540c;\n stroke-width: 1;\n}\n#dependencyStart {\n fill: #13540c;\n stroke: #13540c;\n stroke-width: 1;\n}\n#dependencyEnd {\n fill: #13540c;\n stroke: #13540c;\n stroke-width: 1;\n}\n#extensionStart {\n fill: #13540c;\n stroke: #13540c;\n stroke-width: 1;\n}\n#extensionEnd {\n fill: #13540c;\n stroke: #13540c;\n stroke-width: 1;\n}\n.node text {\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 14px;\n}\ndiv.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 12px;\n background: #cdffb2;\n border: 1px solid #6eaa49;\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n}\n", ""]); - -// exports - - -/***/ }), -/* 52 */ -/***/ (function(module, exports, __webpack_require__) { - -// css-to-string-loader: transforms styles from css-loader to a string output - -// Get the styles -var styles = __webpack_require__(53); - -if (typeof styles === 'string') { - // Return an existing string - module.exports = styles; -} else { - // Call the custom toString method from css-loader module - module.exports = styles.toString(); -} - -/***/ }), -/* 53 */ -/***/ (function(module, exports, __webpack_require__) { - -exports = module.exports = __webpack_require__(6)(undefined); -// imports - - -// module -exports.push([module.i, "/* Flowchart variables */\n/* Sequence Diagram variables */\n/* Gantt chart variables */\n.mermaid .label {\n color: #333;\n}\n.node rect,\n.node circle,\n.node ellipse,\n.node polygon {\n fill: #eee;\n stroke: #999;\n stroke-width: 1px;\n}\n.edgePath .path {\n stroke: #666;\n stroke-width: 1.5px;\n}\n.edgeLabel {\n background-color: white;\n}\n.cluster rect {\n fill: #eaf2fb !important;\n rx: 4 !important;\n stroke: #26a !important;\n stroke-width: 1px !important;\n}\n.cluster text {\n fill: #333;\n}\n.actor {\n stroke: #999;\n fill: #eee;\n}\ntext.actor {\n fill: #333;\n stroke: none;\n}\n.actor-line {\n stroke: #666;\n}\n.messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: \"2 2\";\n marker-end: \"url(#arrowhead)\";\n stroke: #333;\n}\n.messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: \"2 2\";\n stroke: #333;\n}\n#arrowhead {\n fill: #333;\n}\n#crosshead path {\n fill: #333 !important;\n stroke: #333 !important;\n}\n.messageText {\n fill: #333;\n stroke: none;\n}\n.labelBox {\n stroke: #999;\n fill: #eee;\n}\n.labelText {\n fill: white;\n stroke: none;\n}\n.loopText {\n fill: white;\n stroke: none;\n}\n.loopLine {\n stroke-width: 2;\n stroke-dasharray: \"2 2\";\n marker-end: \"url(#arrowhead)\";\n stroke: #999;\n}\n.note {\n stroke: #777700;\n fill: #ffa;\n}\n.noteText {\n fill: black;\n stroke: none;\n font-family: Arial, Helvetica, sans-serif;\n font-size: 14px;\n}\n/** Section styling */\n.section {\n stroke: none;\n opacity: 0.2;\n}\n.section0 {\n fill: #7fb2e6;\n}\n.section2 {\n fill: #7fb2e6;\n}\n.section1,\n.section3 {\n fill: white;\n opacity: 0.2;\n}\n.sectionTitle0 {\n fill: #333;\n}\n.sectionTitle1 {\n fill: #333;\n}\n.sectionTitle2 {\n fill: #333;\n}\n.sectionTitle3 {\n fill: #333;\n}\n.sectionTitle {\n text-anchor: start;\n font-size: 11px;\n text-height: 14px;\n}\n/* Grid and axis */\n.grid .tick {\n stroke: #e5e5e5;\n opacity: 0.3;\n shape-rendering: crispEdges;\n}\n.grid path {\n stroke-width: 0;\n}\n/* Today line */\n.today {\n fill: none;\n stroke: #d42;\n stroke-width: 2px;\n}\n/* Task styling */\n/* Default task */\n.task {\n stroke-width: 2;\n}\n.taskText {\n text-anchor: middle;\n font-size: 11px;\n}\n.taskTextOutsideRight {\n fill: #333;\n text-anchor: start;\n font-size: 11px;\n}\n.taskTextOutsideLeft {\n fill: #333;\n text-anchor: end;\n font-size: 11px;\n}\n/* Specific task settings for the sections*/\n.taskText0,\n.taskText1,\n.taskText2,\n.taskText3 {\n fill: white;\n}\n.task0,\n.task1,\n.task2,\n.task3 {\n fill: #26a;\n stroke: #194c7f;\n}\n.taskTextOutside0,\n.taskTextOutside2 {\n fill: #333;\n}\n.taskTextOutside1,\n.taskTextOutside3 {\n fill: #333;\n}\n/* Active task */\n.active0,\n.active1,\n.active2,\n.active3 {\n fill: #eee;\n stroke: #194c7f;\n}\n.activeText0,\n.activeText1,\n.activeText2,\n.activeText3 {\n fill: #333 !important;\n}\n/* Completed task */\n.done0,\n.done1,\n.done2,\n.done3 {\n stroke: #666;\n fill: #bbb;\n stroke-width: 2;\n}\n.doneText0,\n.doneText1,\n.doneText2,\n.doneText3 {\n fill: #333 !important;\n}\n/* Tasks on the critical line */\n.crit0,\n.crit1,\n.crit2,\n.crit3 {\n stroke: #b1361b;\n fill: #d42;\n stroke-width: 2;\n}\n.activeCrit0,\n.activeCrit1,\n.activeCrit2,\n.activeCrit3 {\n stroke: #b1361b;\n fill: #eee;\n stroke-width: 2;\n}\n.doneCrit0,\n.doneCrit1,\n.doneCrit2,\n.doneCrit3 {\n stroke: #b1361b;\n fill: #bbb;\n stroke-width: 2;\n cursor: pointer;\n}\n.doneCritText0,\n.doneCritText1,\n.doneCritText2,\n.doneCritText3 {\n fill: #333 !important;\n}\n.activeCritText0,\n.activeCritText1,\n.activeCritText2,\n.activeCritText3 {\n fill: #333 !important;\n}\n.titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: #333;\n}\ng.classGroup text {\n fill: #999;\n stroke: none;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 10px;\n}\ng.classGroup rect {\n fill: #eee;\n stroke: #999;\n}\ng.classGroup line {\n stroke: #999;\n stroke-width: 1;\n}\nsvg .classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: #eee;\n opacity: 0.5;\n}\nsvg .classLabel .label {\n fill: #999;\n font-size: 10px;\n}\n.relation {\n stroke: #999;\n stroke-width: 1;\n fill: none;\n}\n.composition {\n fill: #999;\n stroke: #999;\n stroke-width: 1;\n}\n#compositionStart {\n fill: #999;\n stroke: #999;\n stroke-width: 1;\n}\n#compositionEnd {\n fill: #999;\n stroke: #999;\n stroke-width: 1;\n}\n.aggregation {\n fill: #eee;\n stroke: #999;\n stroke-width: 1;\n}\n#aggregationStart {\n fill: #eee;\n stroke: #999;\n stroke-width: 1;\n}\n#aggregationEnd {\n fill: #eee;\n stroke: #999;\n stroke-width: 1;\n}\n#dependencyStart {\n fill: #999;\n stroke: #999;\n stroke-width: 1;\n}\n#dependencyEnd {\n fill: #999;\n stroke: #999;\n stroke-width: 1;\n}\n#extensionStart {\n fill: #999;\n stroke: #999;\n stroke-width: 1;\n}\n#extensionEnd {\n fill: #999;\n stroke: #999;\n stroke-width: 1;\n}\n.node text {\n font-family: Arial, Helvetica, sans-serif;\n font-size: 14px;\n}\ndiv.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: Arial, Helvetica, sans-serif;\n font-size: 12px;\n background: #eaf2fb;\n border: 1px solid #26a;\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n}\n", ""]); - -// exports - - -/***/ }) -/******/ ])["default"]; -}); \ No newline at end of file diff --git a/frontend/taxonomy/uml/mermaid.html b/frontend/taxonomy/uml/mermaid.html deleted file mode 100644 index 6b37fad..0000000 --- a/frontend/taxonomy/uml/mermaid.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - Mermaid Quick Test Page - - - -

-classDiagram -Class01 <|-- AveryLongClass : Cool -Tools *-- Disassembler -Tools *-- Debugger -Tools *-- Tracer -Tools *-- Emulator -Class05 o-- Class06 -Class07 .. Class08 -Class09 --> C2 : Where am i? -Class09 --* C3 -Class09 --|> Class07 -Class07 : equals() -Class07 : Object[] elementData -Class01 : size() -Class01 : int chimp -Class01 : int gorilla -Class08 <--> C2: Cool label -
- - - - diff --git a/frontend/taxonomy/uml/mermaid.js b/frontend/taxonomy/uml/mermaid.js deleted file mode 100644 index 502bc79..0000000 --- a/frontend/taxonomy/uml/mermaid.js +++ /dev/null @@ -1,66382 +0,0 @@ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["mermaid"] = factory(); - else - root["mermaid"] = factory(); -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 200); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(module) {//! moment.js -//! version : 2.18.1 -//! authors : Tim Wood, Iskren Chernev, Moment.js contributors -//! license : MIT -//! momentjs.com - -;(function (global, factory) { - true ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - global.moment = factory() -}(this, (function () { 'use strict'; - -var hookCallback; - -function hooks () { - return hookCallback.apply(null, arguments); -} - -// This is done to register the method called with moment() -// without creating circular dependencies. -function setHookCallback (callback) { - hookCallback = callback; -} - -function isArray(input) { - return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]'; -} - -function isObject(input) { - // IE8 will treat undefined and null as object if it wasn't for - // input != null - return input != null && Object.prototype.toString.call(input) === '[object Object]'; -} - -function isObjectEmpty(obj) { - var k; - for (k in obj) { - // even if its not own property I'd still call it non-empty - return false; - } - return true; -} - -function isUndefined(input) { - return input === void 0; -} - -function isNumber(input) { - return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]'; -} - -function isDate(input) { - return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; -} - -function map(arr, fn) { - var res = [], i; - for (i = 0; i < arr.length; ++i) { - res.push(fn(arr[i], i)); - } - return res; -} - -function hasOwnProp(a, b) { - return Object.prototype.hasOwnProperty.call(a, b); -} - -function extend(a, b) { - for (var i in b) { - if (hasOwnProp(b, i)) { - a[i] = b[i]; - } - } - - if (hasOwnProp(b, 'toString')) { - a.toString = b.toString; - } - - if (hasOwnProp(b, 'valueOf')) { - a.valueOf = b.valueOf; - } - - return a; -} - -function createUTC (input, format, locale, strict) { - return createLocalOrUTC(input, format, locale, strict, true).utc(); -} - -function defaultParsingFlags() { - // We need to deep clone this object. - return { - empty : false, - unusedTokens : [], - unusedInput : [], - overflow : -2, - charsLeftOver : 0, - nullInput : false, - invalidMonth : null, - invalidFormat : false, - userInvalidated : false, - iso : false, - parsedDateParts : [], - meridiem : null, - rfc2822 : false, - weekdayMismatch : false - }; -} - -function getParsingFlags(m) { - if (m._pf == null) { - m._pf = defaultParsingFlags(); - } - return m._pf; -} - -var some; -if (Array.prototype.some) { - some = Array.prototype.some; -} else { - some = function (fun) { - var t = Object(this); - var len = t.length >>> 0; - - for (var i = 0; i < len; i++) { - if (i in t && fun.call(this, t[i], i, t)) { - return true; - } - } - - return false; - }; -} - -var some$1 = some; - -function isValid(m) { - if (m._isValid == null) { - var flags = getParsingFlags(m); - var parsedParts = some$1.call(flags.parsedDateParts, function (i) { - return i != null; - }); - var isNowValid = !isNaN(m._d.getTime()) && - flags.overflow < 0 && - !flags.empty && - !flags.invalidMonth && - !flags.invalidWeekday && - !flags.nullInput && - !flags.invalidFormat && - !flags.userInvalidated && - (!flags.meridiem || (flags.meridiem && parsedParts)); - - if (m._strict) { - isNowValid = isNowValid && - flags.charsLeftOver === 0 && - flags.unusedTokens.length === 0 && - flags.bigHour === undefined; - } - - if (Object.isFrozen == null || !Object.isFrozen(m)) { - m._isValid = isNowValid; - } - else { - return isNowValid; - } - } - return m._isValid; -} - -function createInvalid (flags) { - var m = createUTC(NaN); - if (flags != null) { - extend(getParsingFlags(m), flags); - } - else { - getParsingFlags(m).userInvalidated = true; - } - - return m; -} - -// Plugins that add properties should also add the key here (null value), -// so we can properly clone ourselves. -var momentProperties = hooks.momentProperties = []; - -function copyConfig(to, from) { - var i, prop, val; - - if (!isUndefined(from._isAMomentObject)) { - to._isAMomentObject = from._isAMomentObject; - } - if (!isUndefined(from._i)) { - to._i = from._i; - } - if (!isUndefined(from._f)) { - to._f = from._f; - } - if (!isUndefined(from._l)) { - to._l = from._l; - } - if (!isUndefined(from._strict)) { - to._strict = from._strict; - } - if (!isUndefined(from._tzm)) { - to._tzm = from._tzm; - } - if (!isUndefined(from._isUTC)) { - to._isUTC = from._isUTC; - } - if (!isUndefined(from._offset)) { - to._offset = from._offset; - } - if (!isUndefined(from._pf)) { - to._pf = getParsingFlags(from); - } - if (!isUndefined(from._locale)) { - to._locale = from._locale; - } - - if (momentProperties.length > 0) { - for (i = 0; i < momentProperties.length; i++) { - prop = momentProperties[i]; - val = from[prop]; - if (!isUndefined(val)) { - to[prop] = val; - } - } - } - - return to; -} - -var updateInProgress = false; - -// Moment prototype object -function Moment(config) { - copyConfig(this, config); - this._d = new Date(config._d != null ? config._d.getTime() : NaN); - if (!this.isValid()) { - this._d = new Date(NaN); - } - // Prevent infinite loop in case updateOffset creates new moment - // objects. - if (updateInProgress === false) { - updateInProgress = true; - hooks.updateOffset(this); - updateInProgress = false; - } -} - -function isMoment (obj) { - return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); -} - -function absFloor (number) { - if (number < 0) { - // -0 -> 0 - return Math.ceil(number) || 0; - } else { - return Math.floor(number); - } -} - -function toInt(argumentForCoercion) { - var coercedNumber = +argumentForCoercion, - value = 0; - - if (coercedNumber !== 0 && isFinite(coercedNumber)) { - value = absFloor(coercedNumber); - } - - return value; -} - -// compare two arrays, return the number of differences -function compareArrays(array1, array2, dontConvert) { - var len = Math.min(array1.length, array2.length), - lengthDiff = Math.abs(array1.length - array2.length), - diffs = 0, - i; - for (i = 0; i < len; i++) { - if ((dontConvert && array1[i] !== array2[i]) || - (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { - diffs++; - } - } - return diffs + lengthDiff; -} - -function warn(msg) { - if (hooks.suppressDeprecationWarnings === false && - (typeof console !== 'undefined') && console.warn) { - console.warn('Deprecation warning: ' + msg); - } -} - -function deprecate(msg, fn) { - var firstTime = true; - - return extend(function () { - if (hooks.deprecationHandler != null) { - hooks.deprecationHandler(null, msg); - } - if (firstTime) { - var args = []; - var arg; - for (var i = 0; i < arguments.length; i++) { - arg = ''; - if (typeof arguments[i] === 'object') { - arg += '\n[' + i + '] '; - for (var key in arguments[0]) { - arg += key + ': ' + arguments[0][key] + ', '; - } - arg = arg.slice(0, -2); // Remove trailing comma and space - } else { - arg = arguments[i]; - } - args.push(arg); - } - warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack); - firstTime = false; - } - return fn.apply(this, arguments); - }, fn); -} - -var deprecations = {}; - -function deprecateSimple(name, msg) { - if (hooks.deprecationHandler != null) { - hooks.deprecationHandler(name, msg); - } - if (!deprecations[name]) { - warn(msg); - deprecations[name] = true; - } -} - -hooks.suppressDeprecationWarnings = false; -hooks.deprecationHandler = null; - -function isFunction(input) { - return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; -} - -function set (config) { - var prop, i; - for (i in config) { - prop = config[i]; - if (isFunction(prop)) { - this[i] = prop; - } else { - this['_' + i] = prop; - } - } - this._config = config; - // Lenient ordinal parsing accepts just a number in addition to - // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. - // TODO: Remove "ordinalParse" fallback in next major release. - this._dayOfMonthOrdinalParseLenient = new RegExp( - (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + - '|' + (/\d{1,2}/).source); -} - -function mergeConfigs(parentConfig, childConfig) { - var res = extend({}, parentConfig), prop; - for (prop in childConfig) { - if (hasOwnProp(childConfig, prop)) { - if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { - res[prop] = {}; - extend(res[prop], parentConfig[prop]); - extend(res[prop], childConfig[prop]); - } else if (childConfig[prop] != null) { - res[prop] = childConfig[prop]; - } else { - delete res[prop]; - } - } - } - for (prop in parentConfig) { - if (hasOwnProp(parentConfig, prop) && - !hasOwnProp(childConfig, prop) && - isObject(parentConfig[prop])) { - // make sure changes to properties don't modify parent config - res[prop] = extend({}, res[prop]); - } - } - return res; -} - -function Locale(config) { - if (config != null) { - this.set(config); - } -} - -var keys; - -if (Object.keys) { - keys = Object.keys; -} else { - keys = function (obj) { - var i, res = []; - for (i in obj) { - if (hasOwnProp(obj, i)) { - res.push(i); - } - } - return res; - }; -} - -var keys$1 = keys; - -var defaultCalendar = { - sameDay : '[Today at] LT', - nextDay : '[Tomorrow at] LT', - nextWeek : 'dddd [at] LT', - lastDay : '[Yesterday at] LT', - lastWeek : '[Last] dddd [at] LT', - sameElse : 'L' -}; - -function calendar (key, mom, now) { - var output = this._calendar[key] || this._calendar['sameElse']; - return isFunction(output) ? output.call(mom, now) : output; -} - -var defaultLongDateFormat = { - LTS : 'h:mm:ss A', - LT : 'h:mm A', - L : 'MM/DD/YYYY', - LL : 'MMMM D, YYYY', - LLL : 'MMMM D, YYYY h:mm A', - LLLL : 'dddd, MMMM D, YYYY h:mm A' -}; - -function longDateFormat (key) { - var format = this._longDateFormat[key], - formatUpper = this._longDateFormat[key.toUpperCase()]; - - if (format || !formatUpper) { - return format; - } - - this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { - return val.slice(1); - }); - - return this._longDateFormat[key]; -} - -var defaultInvalidDate = 'Invalid date'; - -function invalidDate () { - return this._invalidDate; -} - -var defaultOrdinal = '%d'; -var defaultDayOfMonthOrdinalParse = /\d{1,2}/; - -function ordinal (number) { - return this._ordinal.replace('%d', number); -} - -var defaultRelativeTime = { - future : 'in %s', - past : '%s ago', - s : 'a few seconds', - ss : '%d seconds', - m : 'a minute', - mm : '%d minutes', - h : 'an hour', - hh : '%d hours', - d : 'a day', - dd : '%d days', - M : 'a month', - MM : '%d months', - y : 'a year', - yy : '%d years' -}; - -function relativeTime (number, withoutSuffix, string, isFuture) { - var output = this._relativeTime[string]; - return (isFunction(output)) ? - output(number, withoutSuffix, string, isFuture) : - output.replace(/%d/i, number); -} - -function pastFuture (diff, output) { - var format = this._relativeTime[diff > 0 ? 'future' : 'past']; - return isFunction(format) ? format(output) : format.replace(/%s/i, output); -} - -var aliases = {}; - -function addUnitAlias (unit, shorthand) { - var lowerCase = unit.toLowerCase(); - aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; -} - -function normalizeUnits(units) { - return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; -} - -function normalizeObjectUnits(inputObject) { - var normalizedInput = {}, - normalizedProp, - prop; - - for (prop in inputObject) { - if (hasOwnProp(inputObject, prop)) { - normalizedProp = normalizeUnits(prop); - if (normalizedProp) { - normalizedInput[normalizedProp] = inputObject[prop]; - } - } - } - - return normalizedInput; -} - -var priorities = {}; - -function addUnitPriority(unit, priority) { - priorities[unit] = priority; -} - -function getPrioritizedUnits(unitsObj) { - var units = []; - for (var u in unitsObj) { - units.push({unit: u, priority: priorities[u]}); - } - units.sort(function (a, b) { - return a.priority - b.priority; - }); - return units; -} - -function makeGetSet (unit, keepTime) { - return function (value) { - if (value != null) { - set$1(this, unit, value); - hooks.updateOffset(this, keepTime); - return this; - } else { - return get(this, unit); - } - }; -} - -function get (mom, unit) { - return mom.isValid() ? - mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; -} - -function set$1 (mom, unit, value) { - if (mom.isValid()) { - mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); - } -} - -// MOMENTS - -function stringGet (units) { - units = normalizeUnits(units); - if (isFunction(this[units])) { - return this[units](); - } - return this; -} - - -function stringSet (units, value) { - if (typeof units === 'object') { - units = normalizeObjectUnits(units); - var prioritized = getPrioritizedUnits(units); - for (var i = 0; i < prioritized.length; i++) { - this[prioritized[i].unit](units[prioritized[i].unit]); - } - } else { - units = normalizeUnits(units); - if (isFunction(this[units])) { - return this[units](value); - } - } - return this; -} - -function zeroFill(number, targetLength, forceSign) { - var absNumber = '' + Math.abs(number), - zerosToFill = targetLength - absNumber.length, - sign = number >= 0; - return (sign ? (forceSign ? '+' : '') : '-') + - Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; -} - -var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; - -var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; - -var formatFunctions = {}; - -var formatTokenFunctions = {}; - -// token: 'M' -// padded: ['MM', 2] -// ordinal: 'Mo' -// callback: function () { this.month() + 1 } -function addFormatToken (token, padded, ordinal, callback) { - var func = callback; - if (typeof callback === 'string') { - func = function () { - return this[callback](); - }; - } - if (token) { - formatTokenFunctions[token] = func; - } - if (padded) { - formatTokenFunctions[padded[0]] = function () { - return zeroFill(func.apply(this, arguments), padded[1], padded[2]); - }; - } - if (ordinal) { - formatTokenFunctions[ordinal] = function () { - return this.localeData().ordinal(func.apply(this, arguments), token); - }; - } -} - -function removeFormattingTokens(input) { - if (input.match(/\[[\s\S]/)) { - return input.replace(/^\[|\]$/g, ''); - } - return input.replace(/\\/g, ''); -} - -function makeFormatFunction(format) { - var array = format.match(formattingTokens), i, length; - - for (i = 0, length = array.length; i < length; i++) { - if (formatTokenFunctions[array[i]]) { - array[i] = formatTokenFunctions[array[i]]; - } else { - array[i] = removeFormattingTokens(array[i]); - } - } - - return function (mom) { - var output = '', i; - for (i = 0; i < length; i++) { - output += isFunction(array[i]) ? array[i].call(mom, format) : array[i]; - } - return output; - }; -} - -// format date using native date object -function formatMoment(m, format) { - if (!m.isValid()) { - return m.localeData().invalidDate(); - } - - format = expandFormat(format, m.localeData()); - formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); - - return formatFunctions[format](m); -} - -function expandFormat(format, locale) { - var i = 5; - - function replaceLongDateFormatTokens(input) { - return locale.longDateFormat(input) || input; - } - - localFormattingTokens.lastIndex = 0; - while (i >= 0 && localFormattingTokens.test(format)) { - format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); - localFormattingTokens.lastIndex = 0; - i -= 1; - } - - return format; -} - -var match1 = /\d/; // 0 - 9 -var match2 = /\d\d/; // 00 - 99 -var match3 = /\d{3}/; // 000 - 999 -var match4 = /\d{4}/; // 0000 - 9999 -var match6 = /[+-]?\d{6}/; // -999999 - 999999 -var match1to2 = /\d\d?/; // 0 - 99 -var match3to4 = /\d\d\d\d?/; // 999 - 9999 -var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999 -var match1to3 = /\d{1,3}/; // 0 - 999 -var match1to4 = /\d{1,4}/; // 0 - 9999 -var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 - -var matchUnsigned = /\d+/; // 0 - inf -var matchSigned = /[+-]?\d+/; // -inf - inf - -var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z -var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z - -var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 - -// any word (or two) characters or numbers including two/three word month in arabic. -// includes scottish gaelic two word and hyphenated months -var matchWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i; - - -var regexes = {}; - -function addRegexToken (token, regex, strictRegex) { - regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) { - return (isStrict && strictRegex) ? strictRegex : regex; - }; -} - -function getParseRegexForToken (token, config) { - if (!hasOwnProp(regexes, token)) { - return new RegExp(unescapeFormat(token)); - } - - return regexes[token](config._strict, config._locale); -} - -// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript -function unescapeFormat(s) { - return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { - return p1 || p2 || p3 || p4; - })); -} - -function regexEscape(s) { - return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); -} - -var tokens = {}; - -function addParseToken (token, callback) { - var i, func = callback; - if (typeof token === 'string') { - token = [token]; - } - if (isNumber(callback)) { - func = function (input, array) { - array[callback] = toInt(input); - }; - } - for (i = 0; i < token.length; i++) { - tokens[token[i]] = func; - } -} - -function addWeekParseToken (token, callback) { - addParseToken(token, function (input, array, config, token) { - config._w = config._w || {}; - callback(input, config._w, config, token); - }); -} - -function addTimeToArrayFromToken(token, input, config) { - if (input != null && hasOwnProp(tokens, token)) { - tokens[token](input, config._a, config, token); - } -} - -var YEAR = 0; -var MONTH = 1; -var DATE = 2; -var HOUR = 3; -var MINUTE = 4; -var SECOND = 5; -var MILLISECOND = 6; -var WEEK = 7; -var WEEKDAY = 8; - -var indexOf; - -if (Array.prototype.indexOf) { - indexOf = Array.prototype.indexOf; -} else { - indexOf = function (o) { - // I know - var i; - for (i = 0; i < this.length; ++i) { - if (this[i] === o) { - return i; - } - } - return -1; - }; -} - -var indexOf$1 = indexOf; - -function daysInMonth(year, month) { - return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); -} - -// FORMATTING - -addFormatToken('M', ['MM', 2], 'Mo', function () { - return this.month() + 1; -}); - -addFormatToken('MMM', 0, 0, function (format) { - return this.localeData().monthsShort(this, format); -}); - -addFormatToken('MMMM', 0, 0, function (format) { - return this.localeData().months(this, format); -}); - -// ALIASES - -addUnitAlias('month', 'M'); - -// PRIORITY - -addUnitPriority('month', 8); - -// PARSING - -addRegexToken('M', match1to2); -addRegexToken('MM', match1to2, match2); -addRegexToken('MMM', function (isStrict, locale) { - return locale.monthsShortRegex(isStrict); -}); -addRegexToken('MMMM', function (isStrict, locale) { - return locale.monthsRegex(isStrict); -}); - -addParseToken(['M', 'MM'], function (input, array) { - array[MONTH] = toInt(input) - 1; -}); - -addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { - var month = config._locale.monthsParse(input, token, config._strict); - // if we didn't find a month name, mark the date as invalid. - if (month != null) { - array[MONTH] = month; - } else { - getParsingFlags(config).invalidMonth = input; - } -}); - -// LOCALES - -var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/; -var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); -function localeMonths (m, format) { - if (!m) { - return isArray(this._months) ? this._months : - this._months['standalone']; - } - return isArray(this._months) ? this._months[m.month()] : - this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()]; -} - -var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); -function localeMonthsShort (m, format) { - if (!m) { - return isArray(this._monthsShort) ? this._monthsShort : - this._monthsShort['standalone']; - } - return isArray(this._monthsShort) ? this._monthsShort[m.month()] : - this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; -} - -function handleStrictParse(monthName, format, strict) { - var i, ii, mom, llc = monthName.toLocaleLowerCase(); - if (!this._monthsParse) { - // this is not used - this._monthsParse = []; - this._longMonthsParse = []; - this._shortMonthsParse = []; - for (i = 0; i < 12; ++i) { - mom = createUTC([2000, i]); - this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase(); - this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); - } - } - - if (strict) { - if (format === 'MMM') { - ii = indexOf$1.call(this._shortMonthsParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf$1.call(this._longMonthsParse, llc); - return ii !== -1 ? ii : null; - } - } else { - if (format === 'MMM') { - ii = indexOf$1.call(this._shortMonthsParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._longMonthsParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf$1.call(this._longMonthsParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._shortMonthsParse, llc); - return ii !== -1 ? ii : null; - } - } -} - -function localeMonthsParse (monthName, format, strict) { - var i, mom, regex; - - if (this._monthsParseExact) { - return handleStrictParse.call(this, monthName, format, strict); - } - - if (!this._monthsParse) { - this._monthsParse = []; - this._longMonthsParse = []; - this._shortMonthsParse = []; - } - - // TODO: add sorting - // Sorting makes sure if one month (or abbr) is a prefix of another - // see sorting in computeMonthsParse - for (i = 0; i < 12; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, i]); - if (strict && !this._longMonthsParse[i]) { - this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); - this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); - } - if (!strict && !this._monthsParse[i]) { - regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); - this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { - return i; - } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { - return i; - } else if (!strict && this._monthsParse[i].test(monthName)) { - return i; - } - } -} - -// MOMENTS - -function setMonth (mom, value) { - var dayOfMonth; - - if (!mom.isValid()) { - // No op - return mom; - } - - if (typeof value === 'string') { - if (/^\d+$/.test(value)) { - value = toInt(value); - } else { - value = mom.localeData().monthsParse(value); - // TODO: Another silent failure? - if (!isNumber(value)) { - return mom; - } - } - } - - dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); - mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); - return mom; -} - -function getSetMonth (value) { - if (value != null) { - setMonth(this, value); - hooks.updateOffset(this, true); - return this; - } else { - return get(this, 'Month'); - } -} - -function getDaysInMonth () { - return daysInMonth(this.year(), this.month()); -} - -var defaultMonthsShortRegex = matchWord; -function monthsShortRegex (isStrict) { - if (this._monthsParseExact) { - if (!hasOwnProp(this, '_monthsRegex')) { - computeMonthsParse.call(this); - } - if (isStrict) { - return this._monthsShortStrictRegex; - } else { - return this._monthsShortRegex; - } - } else { - if (!hasOwnProp(this, '_monthsShortRegex')) { - this._monthsShortRegex = defaultMonthsShortRegex; - } - return this._monthsShortStrictRegex && isStrict ? - this._monthsShortStrictRegex : this._monthsShortRegex; - } -} - -var defaultMonthsRegex = matchWord; -function monthsRegex (isStrict) { - if (this._monthsParseExact) { - if (!hasOwnProp(this, '_monthsRegex')) { - computeMonthsParse.call(this); - } - if (isStrict) { - return this._monthsStrictRegex; - } else { - return this._monthsRegex; - } - } else { - if (!hasOwnProp(this, '_monthsRegex')) { - this._monthsRegex = defaultMonthsRegex; - } - return this._monthsStrictRegex && isStrict ? - this._monthsStrictRegex : this._monthsRegex; - } -} - -function computeMonthsParse () { - function cmpLenRev(a, b) { - return b.length - a.length; - } - - var shortPieces = [], longPieces = [], mixedPieces = [], - i, mom; - for (i = 0; i < 12; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, i]); - shortPieces.push(this.monthsShort(mom, '')); - longPieces.push(this.months(mom, '')); - mixedPieces.push(this.months(mom, '')); - mixedPieces.push(this.monthsShort(mom, '')); - } - // Sorting makes sure if one month (or abbr) is a prefix of another it - // will match the longer piece. - shortPieces.sort(cmpLenRev); - longPieces.sort(cmpLenRev); - mixedPieces.sort(cmpLenRev); - for (i = 0; i < 12; i++) { - shortPieces[i] = regexEscape(shortPieces[i]); - longPieces[i] = regexEscape(longPieces[i]); - } - for (i = 0; i < 24; i++) { - mixedPieces[i] = regexEscape(mixedPieces[i]); - } - - this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); - this._monthsShortRegex = this._monthsRegex; - this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); - this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); -} - -// FORMATTING - -addFormatToken('Y', 0, 0, function () { - var y = this.year(); - return y <= 9999 ? '' + y : '+' + y; -}); - -addFormatToken(0, ['YY', 2], 0, function () { - return this.year() % 100; -}); - -addFormatToken(0, ['YYYY', 4], 0, 'year'); -addFormatToken(0, ['YYYYY', 5], 0, 'year'); -addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); - -// ALIASES - -addUnitAlias('year', 'y'); - -// PRIORITIES - -addUnitPriority('year', 1); - -// PARSING - -addRegexToken('Y', matchSigned); -addRegexToken('YY', match1to2, match2); -addRegexToken('YYYY', match1to4, match4); -addRegexToken('YYYYY', match1to6, match6); -addRegexToken('YYYYYY', match1to6, match6); - -addParseToken(['YYYYY', 'YYYYYY'], YEAR); -addParseToken('YYYY', function (input, array) { - array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); -}); -addParseToken('YY', function (input, array) { - array[YEAR] = hooks.parseTwoDigitYear(input); -}); -addParseToken('Y', function (input, array) { - array[YEAR] = parseInt(input, 10); -}); - -// HELPERS - -function daysInYear(year) { - return isLeapYear(year) ? 366 : 365; -} - -function isLeapYear(year) { - return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; -} - -// HOOKS - -hooks.parseTwoDigitYear = function (input) { - return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); -}; - -// MOMENTS - -var getSetYear = makeGetSet('FullYear', true); - -function getIsLeapYear () { - return isLeapYear(this.year()); -} - -function createDate (y, m, d, h, M, s, ms) { - // can't just apply() to create a date: - // https://stackoverflow.com/q/181348 - var date = new Date(y, m, d, h, M, s, ms); - - // the date constructor remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0 && isFinite(date.getFullYear())) { - date.setFullYear(y); - } - return date; -} - -function createUTCDate (y) { - var date = new Date(Date.UTC.apply(null, arguments)); - - // the Date.UTC function remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) { - date.setUTCFullYear(y); - } - return date; -} - -// start-of-first-week - start-of-year -function firstWeekOffset(year, dow, doy) { - var // first-week day -- which january is always in the first week (4 for iso, 1 for other) - fwd = 7 + dow - doy, - // first-week day local weekday -- which local weekday is fwd - fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; - - return -fwdlw + fwd - 1; -} - -// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday -function dayOfYearFromWeeks(year, week, weekday, dow, doy) { - var localWeekday = (7 + weekday - dow) % 7, - weekOffset = firstWeekOffset(year, dow, doy), - dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, - resYear, resDayOfYear; - - if (dayOfYear <= 0) { - resYear = year - 1; - resDayOfYear = daysInYear(resYear) + dayOfYear; - } else if (dayOfYear > daysInYear(year)) { - resYear = year + 1; - resDayOfYear = dayOfYear - daysInYear(year); - } else { - resYear = year; - resDayOfYear = dayOfYear; - } - - return { - year: resYear, - dayOfYear: resDayOfYear - }; -} - -function weekOfYear(mom, dow, doy) { - var weekOffset = firstWeekOffset(mom.year(), dow, doy), - week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, - resWeek, resYear; - - if (week < 1) { - resYear = mom.year() - 1; - resWeek = week + weeksInYear(resYear, dow, doy); - } else if (week > weeksInYear(mom.year(), dow, doy)) { - resWeek = week - weeksInYear(mom.year(), dow, doy); - resYear = mom.year() + 1; - } else { - resYear = mom.year(); - resWeek = week; - } - - return { - week: resWeek, - year: resYear - }; -} - -function weeksInYear(year, dow, doy) { - var weekOffset = firstWeekOffset(year, dow, doy), - weekOffsetNext = firstWeekOffset(year + 1, dow, doy); - return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; -} - -// FORMATTING - -addFormatToken('w', ['ww', 2], 'wo', 'week'); -addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); - -// ALIASES - -addUnitAlias('week', 'w'); -addUnitAlias('isoWeek', 'W'); - -// PRIORITIES - -addUnitPriority('week', 5); -addUnitPriority('isoWeek', 5); - -// PARSING - -addRegexToken('w', match1to2); -addRegexToken('ww', match1to2, match2); -addRegexToken('W', match1to2); -addRegexToken('WW', match1to2, match2); - -addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { - week[token.substr(0, 1)] = toInt(input); -}); - -// HELPERS - -// LOCALES - -function localeWeek (mom) { - return weekOfYear(mom, this._week.dow, this._week.doy).week; -} - -var defaultLocaleWeek = { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. -}; - -function localeFirstDayOfWeek () { - return this._week.dow; -} - -function localeFirstDayOfYear () { - return this._week.doy; -} - -// MOMENTS - -function getSetWeek (input) { - var week = this.localeData().week(this); - return input == null ? week : this.add((input - week) * 7, 'd'); -} - -function getSetISOWeek (input) { - var week = weekOfYear(this, 1, 4).week; - return input == null ? week : this.add((input - week) * 7, 'd'); -} - -// FORMATTING - -addFormatToken('d', 0, 'do', 'day'); - -addFormatToken('dd', 0, 0, function (format) { - return this.localeData().weekdaysMin(this, format); -}); - -addFormatToken('ddd', 0, 0, function (format) { - return this.localeData().weekdaysShort(this, format); -}); - -addFormatToken('dddd', 0, 0, function (format) { - return this.localeData().weekdays(this, format); -}); - -addFormatToken('e', 0, 0, 'weekday'); -addFormatToken('E', 0, 0, 'isoWeekday'); - -// ALIASES - -addUnitAlias('day', 'd'); -addUnitAlias('weekday', 'e'); -addUnitAlias('isoWeekday', 'E'); - -// PRIORITY -addUnitPriority('day', 11); -addUnitPriority('weekday', 11); -addUnitPriority('isoWeekday', 11); - -// PARSING - -addRegexToken('d', match1to2); -addRegexToken('e', match1to2); -addRegexToken('E', match1to2); -addRegexToken('dd', function (isStrict, locale) { - return locale.weekdaysMinRegex(isStrict); -}); -addRegexToken('ddd', function (isStrict, locale) { - return locale.weekdaysShortRegex(isStrict); -}); -addRegexToken('dddd', function (isStrict, locale) { - return locale.weekdaysRegex(isStrict); -}); - -addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { - var weekday = config._locale.weekdaysParse(input, token, config._strict); - // if we didn't get a weekday name, mark the date as invalid - if (weekday != null) { - week.d = weekday; - } else { - getParsingFlags(config).invalidWeekday = input; - } -}); - -addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { - week[token] = toInt(input); -}); - -// HELPERS - -function parseWeekday(input, locale) { - if (typeof input !== 'string') { - return input; - } - - if (!isNaN(input)) { - return parseInt(input, 10); - } - - input = locale.weekdaysParse(input); - if (typeof input === 'number') { - return input; - } - - return null; -} - -function parseIsoWeekday(input, locale) { - if (typeof input === 'string') { - return locale.weekdaysParse(input) % 7 || 7; - } - return isNaN(input) ? null : input; -} - -// LOCALES - -var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); -function localeWeekdays (m, format) { - if (!m) { - return isArray(this._weekdays) ? this._weekdays : - this._weekdays['standalone']; - } - return isArray(this._weekdays) ? this._weekdays[m.day()] : - this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()]; -} - -var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); -function localeWeekdaysShort (m) { - return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort; -} - -var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); -function localeWeekdaysMin (m) { - return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin; -} - -function handleStrictParse$1(weekdayName, format, strict) { - var i, ii, mom, llc = weekdayName.toLocaleLowerCase(); - if (!this._weekdaysParse) { - this._weekdaysParse = []; - this._shortWeekdaysParse = []; - this._minWeekdaysParse = []; - - for (i = 0; i < 7; ++i) { - mom = createUTC([2000, 1]).day(i); - this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase(); - this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase(); - this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); - } - } - - if (strict) { - if (format === 'dddd') { - ii = indexOf$1.call(this._weekdaysParse, llc); - return ii !== -1 ? ii : null; - } else if (format === 'ddd') { - ii = indexOf$1.call(this._shortWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf$1.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } - } else { - if (format === 'dddd') { - ii = indexOf$1.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._shortWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else if (format === 'ddd') { - ii = indexOf$1.call(this._shortWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf$1.call(this._minWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._shortWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } - } -} - -function localeWeekdaysParse (weekdayName, format, strict) { - var i, mom, regex; - - if (this._weekdaysParseExact) { - return handleStrictParse$1.call(this, weekdayName, format, strict); - } - - if (!this._weekdaysParse) { - this._weekdaysParse = []; - this._minWeekdaysParse = []; - this._shortWeekdaysParse = []; - this._fullWeekdaysParse = []; - } - - for (i = 0; i < 7; i++) { - // make the regex if we don't have it already - - mom = createUTC([2000, 1]).day(i); - if (strict && !this._fullWeekdaysParse[i]) { - this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i'); - this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i'); - this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i'); - } - if (!this._weekdaysParse[i]) { - regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); - this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { - return i; - } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { - return i; - } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { - return i; - } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { - return i; - } - } -} - -// MOMENTS - -function getSetDayOfWeek (input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); - if (input != null) { - input = parseWeekday(input, this.localeData()); - return this.add(input - day, 'd'); - } else { - return day; - } -} - -function getSetLocaleDayOfWeek (input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; - return input == null ? weekday : this.add(input - weekday, 'd'); -} - -function getSetISODayOfWeek (input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - - // behaves the same as moment#day except - // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) - // as a setter, sunday should belong to the previous week. - - if (input != null) { - var weekday = parseIsoWeekday(input, this.localeData()); - return this.day(this.day() % 7 ? weekday : weekday - 7); - } else { - return this.day() || 7; - } -} - -var defaultWeekdaysRegex = matchWord; -function weekdaysRegex (isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysStrictRegex; - } else { - return this._weekdaysRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysRegex')) { - this._weekdaysRegex = defaultWeekdaysRegex; - } - return this._weekdaysStrictRegex && isStrict ? - this._weekdaysStrictRegex : this._weekdaysRegex; - } -} - -var defaultWeekdaysShortRegex = matchWord; -function weekdaysShortRegex (isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysShortStrictRegex; - } else { - return this._weekdaysShortRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysShortRegex')) { - this._weekdaysShortRegex = defaultWeekdaysShortRegex; - } - return this._weekdaysShortStrictRegex && isStrict ? - this._weekdaysShortStrictRegex : this._weekdaysShortRegex; - } -} - -var defaultWeekdaysMinRegex = matchWord; -function weekdaysMinRegex (isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysMinStrictRegex; - } else { - return this._weekdaysMinRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysMinRegex')) { - this._weekdaysMinRegex = defaultWeekdaysMinRegex; - } - return this._weekdaysMinStrictRegex && isStrict ? - this._weekdaysMinStrictRegex : this._weekdaysMinRegex; - } -} - - -function computeWeekdaysParse () { - function cmpLenRev(a, b) { - return b.length - a.length; - } - - var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], - i, mom, minp, shortp, longp; - for (i = 0; i < 7; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, 1]).day(i); - minp = this.weekdaysMin(mom, ''); - shortp = this.weekdaysShort(mom, ''); - longp = this.weekdays(mom, ''); - minPieces.push(minp); - shortPieces.push(shortp); - longPieces.push(longp); - mixedPieces.push(minp); - mixedPieces.push(shortp); - mixedPieces.push(longp); - } - // Sorting makes sure if one weekday (or abbr) is a prefix of another it - // will match the longer piece. - minPieces.sort(cmpLenRev); - shortPieces.sort(cmpLenRev); - longPieces.sort(cmpLenRev); - mixedPieces.sort(cmpLenRev); - for (i = 0; i < 7; i++) { - shortPieces[i] = regexEscape(shortPieces[i]); - longPieces[i] = regexEscape(longPieces[i]); - mixedPieces[i] = regexEscape(mixedPieces[i]); - } - - this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); - this._weekdaysShortRegex = this._weekdaysRegex; - this._weekdaysMinRegex = this._weekdaysRegex; - - this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); - this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); - this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i'); -} - -// FORMATTING - -function hFormat() { - return this.hours() % 12 || 12; -} - -function kFormat() { - return this.hours() || 24; -} - -addFormatToken('H', ['HH', 2], 0, 'hour'); -addFormatToken('h', ['hh', 2], 0, hFormat); -addFormatToken('k', ['kk', 2], 0, kFormat); - -addFormatToken('hmm', 0, 0, function () { - return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); -}); - -addFormatToken('hmmss', 0, 0, function () { - return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + - zeroFill(this.seconds(), 2); -}); - -addFormatToken('Hmm', 0, 0, function () { - return '' + this.hours() + zeroFill(this.minutes(), 2); -}); - -addFormatToken('Hmmss', 0, 0, function () { - return '' + this.hours() + zeroFill(this.minutes(), 2) + - zeroFill(this.seconds(), 2); -}); - -function meridiem (token, lowercase) { - addFormatToken(token, 0, 0, function () { - return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); - }); -} - -meridiem('a', true); -meridiem('A', false); - -// ALIASES - -addUnitAlias('hour', 'h'); - -// PRIORITY -addUnitPriority('hour', 13); - -// PARSING - -function matchMeridiem (isStrict, locale) { - return locale._meridiemParse; -} - -addRegexToken('a', matchMeridiem); -addRegexToken('A', matchMeridiem); -addRegexToken('H', match1to2); -addRegexToken('h', match1to2); -addRegexToken('k', match1to2); -addRegexToken('HH', match1to2, match2); -addRegexToken('hh', match1to2, match2); -addRegexToken('kk', match1to2, match2); - -addRegexToken('hmm', match3to4); -addRegexToken('hmmss', match5to6); -addRegexToken('Hmm', match3to4); -addRegexToken('Hmmss', match5to6); - -addParseToken(['H', 'HH'], HOUR); -addParseToken(['k', 'kk'], function (input, array, config) { - var kInput = toInt(input); - array[HOUR] = kInput === 24 ? 0 : kInput; -}); -addParseToken(['a', 'A'], function (input, array, config) { - config._isPm = config._locale.isPM(input); - config._meridiem = input; -}); -addParseToken(['h', 'hh'], function (input, array, config) { - array[HOUR] = toInt(input); - getParsingFlags(config).bigHour = true; -}); -addParseToken('hmm', function (input, array, config) { - var pos = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos)); - array[MINUTE] = toInt(input.substr(pos)); - getParsingFlags(config).bigHour = true; -}); -addParseToken('hmmss', function (input, array, config) { - var pos1 = input.length - 4; - var pos2 = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos1)); - array[MINUTE] = toInt(input.substr(pos1, 2)); - array[SECOND] = toInt(input.substr(pos2)); - getParsingFlags(config).bigHour = true; -}); -addParseToken('Hmm', function (input, array, config) { - var pos = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos)); - array[MINUTE] = toInt(input.substr(pos)); -}); -addParseToken('Hmmss', function (input, array, config) { - var pos1 = input.length - 4; - var pos2 = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos1)); - array[MINUTE] = toInt(input.substr(pos1, 2)); - array[SECOND] = toInt(input.substr(pos2)); -}); - -// LOCALES - -function localeIsPM (input) { - // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays - // Using charAt should be more compatible. - return ((input + '').toLowerCase().charAt(0) === 'p'); -} - -var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; -function localeMeridiem (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'pm' : 'PM'; - } else { - return isLower ? 'am' : 'AM'; - } -} - - -// MOMENTS - -// Setting the hour should keep the time, because the user explicitly -// specified which hour he wants. So trying to maintain the same hour (in -// a new timezone) makes sense. Adding/subtracting hours does not follow -// this rule. -var getSetHour = makeGetSet('Hours', true); - -// months -// week -// weekdays -// meridiem -var baseConfig = { - calendar: defaultCalendar, - longDateFormat: defaultLongDateFormat, - invalidDate: defaultInvalidDate, - ordinal: defaultOrdinal, - dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, - relativeTime: defaultRelativeTime, - - months: defaultLocaleMonths, - monthsShort: defaultLocaleMonthsShort, - - week: defaultLocaleWeek, - - weekdays: defaultLocaleWeekdays, - weekdaysMin: defaultLocaleWeekdaysMin, - weekdaysShort: defaultLocaleWeekdaysShort, - - meridiemParse: defaultLocaleMeridiemParse -}; - -// internal storage for locale config files -var locales = {}; -var localeFamilies = {}; -var globalLocale; - -function normalizeLocale(key) { - return key ? key.toLowerCase().replace('_', '-') : key; -} - -// pick the locale from the array -// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each -// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root -function chooseLocale(names) { - var i = 0, j, next, locale, split; - - while (i < names.length) { - split = normalizeLocale(names[i]).split('-'); - j = split.length; - next = normalizeLocale(names[i + 1]); - next = next ? next.split('-') : null; - while (j > 0) { - locale = loadLocale(split.slice(0, j).join('-')); - if (locale) { - return locale; - } - if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { - //the next array item is better than a shallower substring of this one - break; - } - j--; - } - i++; - } - return null; -} - -function loadLocale(name) { - var oldLocale = null; - // TODO: Find a better way to register and load all the locales in Node - if (!locales[name] && (typeof module !== 'undefined') && - module && module.exports) { - try { - oldLocale = globalLocale._abbr; - __webpack_require__(203)("./" + name); - // because defineLocale currently also sets the global locale, we - // want to undo that for lazy loaded locales - getSetGlobalLocale(oldLocale); - } catch (e) { } - } - return locales[name]; -} - -// This function will load locale and then set the global locale. If -// no arguments are passed in, it will simply return the current global -// locale key. -function getSetGlobalLocale (key, values) { - var data; - if (key) { - if (isUndefined(values)) { - data = getLocale(key); - } - else { - data = defineLocale(key, values); - } - - if (data) { - // moment.duration._locale = moment._locale = data; - globalLocale = data; - } - } - - return globalLocale._abbr; -} - -function defineLocale (name, config) { - if (config !== null) { - var parentConfig = baseConfig; - config.abbr = name; - if (locales[name] != null) { - deprecateSimple('defineLocaleOverride', - 'use moment.updateLocale(localeName, config) to change ' + - 'an existing locale. moment.defineLocale(localeName, ' + - 'config) should only be used for creating a new locale ' + - 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'); - parentConfig = locales[name]._config; - } else if (config.parentLocale != null) { - if (locales[config.parentLocale] != null) { - parentConfig = locales[config.parentLocale]._config; - } else { - if (!localeFamilies[config.parentLocale]) { - localeFamilies[config.parentLocale] = []; - } - localeFamilies[config.parentLocale].push({ - name: name, - config: config - }); - return null; - } - } - locales[name] = new Locale(mergeConfigs(parentConfig, config)); - - if (localeFamilies[name]) { - localeFamilies[name].forEach(function (x) { - defineLocale(x.name, x.config); - }); - } - - // backwards compat for now: also set the locale - // make sure we set the locale AFTER all child locales have been - // created, so we won't end up with the child locale set. - getSetGlobalLocale(name); - - - return locales[name]; - } else { - // useful for testing - delete locales[name]; - return null; - } -} - -function updateLocale(name, config) { - if (config != null) { - var locale, parentConfig = baseConfig; - // MERGE - if (locales[name] != null) { - parentConfig = locales[name]._config; - } - config = mergeConfigs(parentConfig, config); - locale = new Locale(config); - locale.parentLocale = locales[name]; - locales[name] = locale; - - // backwards compat for now: also set the locale - getSetGlobalLocale(name); - } else { - // pass null for config to unupdate, useful for tests - if (locales[name] != null) { - if (locales[name].parentLocale != null) { - locales[name] = locales[name].parentLocale; - } else if (locales[name] != null) { - delete locales[name]; - } - } - } - return locales[name]; -} - -// returns locale data -function getLocale (key) { - var locale; - - if (key && key._locale && key._locale._abbr) { - key = key._locale._abbr; - } - - if (!key) { - return globalLocale; - } - - if (!isArray(key)) { - //short-circuit everything else - locale = loadLocale(key); - if (locale) { - return locale; - } - key = [key]; - } - - return chooseLocale(key); -} - -function listLocales() { - return keys$1(locales); -} - -function checkOverflow (m) { - var overflow; - var a = m._a; - - if (a && getParsingFlags(m).overflow === -2) { - overflow = - a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : - a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : - a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : - a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : - a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : - a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : - -1; - - if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { - overflow = DATE; - } - if (getParsingFlags(m)._overflowWeeks && overflow === -1) { - overflow = WEEK; - } - if (getParsingFlags(m)._overflowWeekday && overflow === -1) { - overflow = WEEKDAY; - } - - getParsingFlags(m).overflow = overflow; - } - - return m; -} - -// iso 8601 regex -// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) -var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; -var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; - -var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; - -var isoDates = [ - ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], - ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], - ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], - ['GGGG-[W]WW', /\d{4}-W\d\d/, false], - ['YYYY-DDD', /\d{4}-\d{3}/], - ['YYYY-MM', /\d{4}-\d\d/, false], - ['YYYYYYMMDD', /[+-]\d{10}/], - ['YYYYMMDD', /\d{8}/], - // YYYYMM is NOT allowed by the standard - ['GGGG[W]WWE', /\d{4}W\d{3}/], - ['GGGG[W]WW', /\d{4}W\d{2}/, false], - ['YYYYDDD', /\d{7}/] -]; - -// iso time formats and regexes -var isoTimes = [ - ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], - ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], - ['HH:mm:ss', /\d\d:\d\d:\d\d/], - ['HH:mm', /\d\d:\d\d/], - ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], - ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], - ['HHmmss', /\d\d\d\d\d\d/], - ['HHmm', /\d\d\d\d/], - ['HH', /\d\d/] -]; - -var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; - -// date from iso format -function configFromISO(config) { - var i, l, - string = config._i, - match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), - allowTime, dateFormat, timeFormat, tzFormat; - - if (match) { - getParsingFlags(config).iso = true; - - for (i = 0, l = isoDates.length; i < l; i++) { - if (isoDates[i][1].exec(match[1])) { - dateFormat = isoDates[i][0]; - allowTime = isoDates[i][2] !== false; - break; - } - } - if (dateFormat == null) { - config._isValid = false; - return; - } - if (match[3]) { - for (i = 0, l = isoTimes.length; i < l; i++) { - if (isoTimes[i][1].exec(match[3])) { - // match[2] should be 'T' or space - timeFormat = (match[2] || ' ') + isoTimes[i][0]; - break; - } - } - if (timeFormat == null) { - config._isValid = false; - return; - } - } - if (!allowTime && timeFormat != null) { - config._isValid = false; - return; - } - if (match[4]) { - if (tzRegex.exec(match[4])) { - tzFormat = 'Z'; - } else { - config._isValid = false; - return; - } - } - config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); - configFromStringAndFormat(config); - } else { - config._isValid = false; - } -} - -// RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 -var basicRfcRegex = /^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d?\d\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?:\d\d)?\d\d\s)(\d\d:\d\d)(\:\d\d)?(\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\d{4}))$/; - -// date and time from ref 2822 format -function configFromRFC2822(config) { - var string, match, dayFormat, - dateFormat, timeFormat, tzFormat; - var timezones = { - ' GMT': ' +0000', - ' EDT': ' -0400', - ' EST': ' -0500', - ' CDT': ' -0500', - ' CST': ' -0600', - ' MDT': ' -0600', - ' MST': ' -0700', - ' PDT': ' -0700', - ' PST': ' -0800' - }; - var military = 'YXWVUTSRQPONZABCDEFGHIKLM'; - var timezone, timezoneIndex; - - string = config._i - .replace(/\([^\)]*\)|[\n\t]/g, ' ') // Remove comments and folding whitespace - .replace(/(\s\s+)/g, ' ') // Replace multiple-spaces with a single space - .replace(/^\s|\s$/g, ''); // Remove leading and trailing spaces - match = basicRfcRegex.exec(string); - - if (match) { - dayFormat = match[1] ? 'ddd' + ((match[1].length === 5) ? ', ' : ' ') : ''; - dateFormat = 'D MMM ' + ((match[2].length > 10) ? 'YYYY ' : 'YY '); - timeFormat = 'HH:mm' + (match[4] ? ':ss' : ''); - - // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check. - if (match[1]) { // day of week given - var momentDate = new Date(match[2]); - var momentDay = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'][momentDate.getDay()]; - - if (match[1].substr(0,3) !== momentDay) { - getParsingFlags(config).weekdayMismatch = true; - config._isValid = false; - return; - } - } - - switch (match[5].length) { - case 2: // military - if (timezoneIndex === 0) { - timezone = ' +0000'; - } else { - timezoneIndex = military.indexOf(match[5][1].toUpperCase()) - 12; - timezone = ((timezoneIndex < 0) ? ' -' : ' +') + - (('' + timezoneIndex).replace(/^-?/, '0')).match(/..$/)[0] + '00'; - } - break; - case 4: // Zone - timezone = timezones[match[5]]; - break; - default: // UT or +/-9999 - timezone = timezones[' GMT']; - } - match[5] = timezone; - config._i = match.splice(1).join(''); - tzFormat = ' ZZ'; - config._f = dayFormat + dateFormat + timeFormat + tzFormat; - configFromStringAndFormat(config); - getParsingFlags(config).rfc2822 = true; - } else { - config._isValid = false; - } -} - -// date from iso format or fallback -function configFromString(config) { - var matched = aspNetJsonRegex.exec(config._i); - - if (matched !== null) { - config._d = new Date(+matched[1]); - return; - } - - configFromISO(config); - if (config._isValid === false) { - delete config._isValid; - } else { - return; - } - - configFromRFC2822(config); - if (config._isValid === false) { - delete config._isValid; - } else { - return; - } - - // Final attempt, use Input Fallback - hooks.createFromInputFallback(config); -} - -hooks.createFromInputFallback = deprecate( - 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + - 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + - 'discouraged and will be removed in an upcoming major release. Please refer to ' + - 'http://momentjs.com/guides/#/warnings/js-date/ for more info.', - function (config) { - config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); - } -); - -// Pick the first defined of two or three arguments. -function defaults(a, b, c) { - if (a != null) { - return a; - } - if (b != null) { - return b; - } - return c; -} - -function currentDateArray(config) { - // hooks is actually the exported moment object - var nowValue = new Date(hooks.now()); - if (config._useUTC) { - return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()]; - } - return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; -} - -// convert an array to a date. -// the array should mirror the parameters below -// note: all values past the year are optional and will default to the lowest possible value. -// [year, month, day , hour, minute, second, millisecond] -function configFromArray (config) { - var i, date, input = [], currentDate, yearToUse; - - if (config._d) { - return; - } - - currentDate = currentDateArray(config); - - //compute day of the year from weeks and weekdays - if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { - dayOfYearFromWeekInfo(config); - } - - //if the day of the year is set, figure out what it is - if (config._dayOfYear != null) { - yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); - - if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) { - getParsingFlags(config)._overflowDayOfYear = true; - } - - date = createUTCDate(yearToUse, 0, config._dayOfYear); - config._a[MONTH] = date.getUTCMonth(); - config._a[DATE] = date.getUTCDate(); - } - - // Default to current date. - // * if no year, month, day of month are given, default to today - // * if day of month is given, default month and year - // * if month is given, default only year - // * if year is given, don't default anything - for (i = 0; i < 3 && config._a[i] == null; ++i) { - config._a[i] = input[i] = currentDate[i]; - } - - // Zero out whatever was not defaulted, including time - for (; i < 7; i++) { - config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; - } - - // Check for 24:00:00.000 - if (config._a[HOUR] === 24 && - config._a[MINUTE] === 0 && - config._a[SECOND] === 0 && - config._a[MILLISECOND] === 0) { - config._nextDay = true; - config._a[HOUR] = 0; - } - - config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); - // Apply timezone offset from input. The actual utcOffset can be changed - // with parseZone. - if (config._tzm != null) { - config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); - } - - if (config._nextDay) { - config._a[HOUR] = 24; - } -} - -function dayOfYearFromWeekInfo(config) { - var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow; - - w = config._w; - if (w.GG != null || w.W != null || w.E != null) { - dow = 1; - doy = 4; - - // TODO: We need to take the current isoWeekYear, but that depends on - // how we interpret now (local, utc, fixed offset). So create - // a now version of current config (take local/utc/offset flags, and - // create now). - weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year); - week = defaults(w.W, 1); - weekday = defaults(w.E, 1); - if (weekday < 1 || weekday > 7) { - weekdayOverflow = true; - } - } else { - dow = config._locale._week.dow; - doy = config._locale._week.doy; - - var curWeek = weekOfYear(createLocal(), dow, doy); - - weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); - - // Default to current week. - week = defaults(w.w, curWeek.week); - - if (w.d != null) { - // weekday -- low day numbers are considered next week - weekday = w.d; - if (weekday < 0 || weekday > 6) { - weekdayOverflow = true; - } - } else if (w.e != null) { - // local weekday -- counting starts from begining of week - weekday = w.e + dow; - if (w.e < 0 || w.e > 6) { - weekdayOverflow = true; - } - } else { - // default to begining of week - weekday = dow; - } - } - if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { - getParsingFlags(config)._overflowWeeks = true; - } else if (weekdayOverflow != null) { - getParsingFlags(config)._overflowWeekday = true; - } else { - temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); - config._a[YEAR] = temp.year; - config._dayOfYear = temp.dayOfYear; - } -} - -// constant that refers to the ISO standard -hooks.ISO_8601 = function () {}; - -// constant that refers to the RFC 2822 form -hooks.RFC_2822 = function () {}; - -// date from string and format string -function configFromStringAndFormat(config) { - // TODO: Move this to another part of the creation flow to prevent circular deps - if (config._f === hooks.ISO_8601) { - configFromISO(config); - return; - } - if (config._f === hooks.RFC_2822) { - configFromRFC2822(config); - return; - } - config._a = []; - getParsingFlags(config).empty = true; - - // This array is used to make a Date, either with `new Date` or `Date.UTC` - var string = '' + config._i, - i, parsedInput, tokens, token, skipped, - stringLength = string.length, - totalParsedInputLength = 0; - - tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; - - for (i = 0; i < tokens.length; i++) { - token = tokens[i]; - parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; - // console.log('token', token, 'parsedInput', parsedInput, - // 'regex', getParseRegexForToken(token, config)); - if (parsedInput) { - skipped = string.substr(0, string.indexOf(parsedInput)); - if (skipped.length > 0) { - getParsingFlags(config).unusedInput.push(skipped); - } - string = string.slice(string.indexOf(parsedInput) + parsedInput.length); - totalParsedInputLength += parsedInput.length; - } - // don't parse if it's not a known token - if (formatTokenFunctions[token]) { - if (parsedInput) { - getParsingFlags(config).empty = false; - } - else { - getParsingFlags(config).unusedTokens.push(token); - } - addTimeToArrayFromToken(token, parsedInput, config); - } - else if (config._strict && !parsedInput) { - getParsingFlags(config).unusedTokens.push(token); - } - } - - // add remaining unparsed input length to the string - getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; - if (string.length > 0) { - getParsingFlags(config).unusedInput.push(string); - } - - // clear _12h flag if hour is <= 12 - if (config._a[HOUR] <= 12 && - getParsingFlags(config).bigHour === true && - config._a[HOUR] > 0) { - getParsingFlags(config).bigHour = undefined; - } - - getParsingFlags(config).parsedDateParts = config._a.slice(0); - getParsingFlags(config).meridiem = config._meridiem; - // handle meridiem - config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); - - configFromArray(config); - checkOverflow(config); -} - - -function meridiemFixWrap (locale, hour, meridiem) { - var isPm; - - if (meridiem == null) { - // nothing to do - return hour; - } - if (locale.meridiemHour != null) { - return locale.meridiemHour(hour, meridiem); - } else if (locale.isPM != null) { - // Fallback - isPm = locale.isPM(meridiem); - if (isPm && hour < 12) { - hour += 12; - } - if (!isPm && hour === 12) { - hour = 0; - } - return hour; - } else { - // this is not supposed to happen - return hour; - } -} - -// date from string and array of format strings -function configFromStringAndArray(config) { - var tempConfig, - bestMoment, - - scoreToBeat, - i, - currentScore; - - if (config._f.length === 0) { - getParsingFlags(config).invalidFormat = true; - config._d = new Date(NaN); - return; - } - - for (i = 0; i < config._f.length; i++) { - currentScore = 0; - tempConfig = copyConfig({}, config); - if (config._useUTC != null) { - tempConfig._useUTC = config._useUTC; - } - tempConfig._f = config._f[i]; - configFromStringAndFormat(tempConfig); - - if (!isValid(tempConfig)) { - continue; - } - - // if there is any input that was not parsed add a penalty for that format - currentScore += getParsingFlags(tempConfig).charsLeftOver; - - //or tokens - currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; - - getParsingFlags(tempConfig).score = currentScore; - - if (scoreToBeat == null || currentScore < scoreToBeat) { - scoreToBeat = currentScore; - bestMoment = tempConfig; - } - } - - extend(config, bestMoment || tempConfig); -} - -function configFromObject(config) { - if (config._d) { - return; - } - - var i = normalizeObjectUnits(config._i); - config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) { - return obj && parseInt(obj, 10); - }); - - configFromArray(config); -} - -function createFromConfig (config) { - var res = new Moment(checkOverflow(prepareConfig(config))); - if (res._nextDay) { - // Adding is smart enough around DST - res.add(1, 'd'); - res._nextDay = undefined; - } - - return res; -} - -function prepareConfig (config) { - var input = config._i, - format = config._f; - - config._locale = config._locale || getLocale(config._l); - - if (input === null || (format === undefined && input === '')) { - return createInvalid({nullInput: true}); - } - - if (typeof input === 'string') { - config._i = input = config._locale.preparse(input); - } - - if (isMoment(input)) { - return new Moment(checkOverflow(input)); - } else if (isDate(input)) { - config._d = input; - } else if (isArray(format)) { - configFromStringAndArray(config); - } else if (format) { - configFromStringAndFormat(config); - } else { - configFromInput(config); - } - - if (!isValid(config)) { - config._d = null; - } - - return config; -} - -function configFromInput(config) { - var input = config._i; - if (isUndefined(input)) { - config._d = new Date(hooks.now()); - } else if (isDate(input)) { - config._d = new Date(input.valueOf()); - } else if (typeof input === 'string') { - configFromString(config); - } else if (isArray(input)) { - config._a = map(input.slice(0), function (obj) { - return parseInt(obj, 10); - }); - configFromArray(config); - } else if (isObject(input)) { - configFromObject(config); - } else if (isNumber(input)) { - // from milliseconds - config._d = new Date(input); - } else { - hooks.createFromInputFallback(config); - } -} - -function createLocalOrUTC (input, format, locale, strict, isUTC) { - var c = {}; - - if (locale === true || locale === false) { - strict = locale; - locale = undefined; - } - - if ((isObject(input) && isObjectEmpty(input)) || - (isArray(input) && input.length === 0)) { - input = undefined; - } - // object construction must be done this way. - // https://github.com/moment/moment/issues/1423 - c._isAMomentObject = true; - c._useUTC = c._isUTC = isUTC; - c._l = locale; - c._i = input; - c._f = format; - c._strict = strict; - - return createFromConfig(c); -} - -function createLocal (input, format, locale, strict) { - return createLocalOrUTC(input, format, locale, strict, false); -} - -var prototypeMin = deprecate( - 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', - function () { - var other = createLocal.apply(null, arguments); - if (this.isValid() && other.isValid()) { - return other < this ? this : other; - } else { - return createInvalid(); - } - } -); - -var prototypeMax = deprecate( - 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', - function () { - var other = createLocal.apply(null, arguments); - if (this.isValid() && other.isValid()) { - return other > this ? this : other; - } else { - return createInvalid(); - } - } -); - -// Pick a moment m from moments so that m[fn](other) is true for all -// other. This relies on the function fn to be transitive. -// -// moments should either be an array of moment objects or an array, whose -// first element is an array of moment objects. -function pickBy(fn, moments) { - var res, i; - if (moments.length === 1 && isArray(moments[0])) { - moments = moments[0]; - } - if (!moments.length) { - return createLocal(); - } - res = moments[0]; - for (i = 1; i < moments.length; ++i) { - if (!moments[i].isValid() || moments[i][fn](res)) { - res = moments[i]; - } - } - return res; -} - -// TODO: Use [].sort instead? -function min () { - var args = [].slice.call(arguments, 0); - - return pickBy('isBefore', args); -} - -function max () { - var args = [].slice.call(arguments, 0); - - return pickBy('isAfter', args); -} - -var now = function () { - return Date.now ? Date.now() : +(new Date()); -}; - -var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; - -function isDurationValid(m) { - for (var key in m) { - if (!(ordering.indexOf(key) !== -1 && (m[key] == null || !isNaN(m[key])))) { - return false; - } - } - - var unitHasDecimal = false; - for (var i = 0; i < ordering.length; ++i) { - if (m[ordering[i]]) { - if (unitHasDecimal) { - return false; // only allow non-integers for smallest unit - } - if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { - unitHasDecimal = true; - } - } - } - - return true; -} - -function isValid$1() { - return this._isValid; -} - -function createInvalid$1() { - return createDuration(NaN); -} - -function Duration (duration) { - var normalizedInput = normalizeObjectUnits(duration), - years = normalizedInput.year || 0, - quarters = normalizedInput.quarter || 0, - months = normalizedInput.month || 0, - weeks = normalizedInput.week || 0, - days = normalizedInput.day || 0, - hours = normalizedInput.hour || 0, - minutes = normalizedInput.minute || 0, - seconds = normalizedInput.second || 0, - milliseconds = normalizedInput.millisecond || 0; - - this._isValid = isDurationValid(normalizedInput); - - // representation for dateAddRemove - this._milliseconds = +milliseconds + - seconds * 1e3 + // 1000 - minutes * 6e4 + // 1000 * 60 - hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 - // Because of dateAddRemove treats 24 hours as different from a - // day when working around DST, we need to store them separately - this._days = +days + - weeks * 7; - // It is impossible translate months into days without knowing - // which months you are are talking about, so we have to store - // it separately. - this._months = +months + - quarters * 3 + - years * 12; - - this._data = {}; - - this._locale = getLocale(); - - this._bubble(); -} - -function isDuration (obj) { - return obj instanceof Duration; -} - -function absRound (number) { - if (number < 0) { - return Math.round(-1 * number) * -1; - } else { - return Math.round(number); - } -} - -// FORMATTING - -function offset (token, separator) { - addFormatToken(token, 0, 0, function () { - var offset = this.utcOffset(); - var sign = '+'; - if (offset < 0) { - offset = -offset; - sign = '-'; - } - return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); - }); -} - -offset('Z', ':'); -offset('ZZ', ''); - -// PARSING - -addRegexToken('Z', matchShortOffset); -addRegexToken('ZZ', matchShortOffset); -addParseToken(['Z', 'ZZ'], function (input, array, config) { - config._useUTC = true; - config._tzm = offsetFromString(matchShortOffset, input); -}); - -// HELPERS - -// timezone chunker -// '+10:00' > ['10', '00'] -// '-1530' > ['-15', '30'] -var chunkOffset = /([\+\-]|\d\d)/gi; - -function offsetFromString(matcher, string) { - var matches = (string || '').match(matcher); - - if (matches === null) { - return null; - } - - var chunk = matches[matches.length - 1] || []; - var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; - var minutes = +(parts[1] * 60) + toInt(parts[2]); - - return minutes === 0 ? - 0 : - parts[0] === '+' ? minutes : -minutes; -} - -// Return a moment from input, that is local/utc/zone equivalent to model. -function cloneWithOffset(input, model) { - var res, diff; - if (model._isUTC) { - res = model.clone(); - diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); - // Use low-level api, because this fn is low-level api. - res._d.setTime(res._d.valueOf() + diff); - hooks.updateOffset(res, false); - return res; - } else { - return createLocal(input).local(); - } -} - -function getDateOffset (m) { - // On Firefox.24 Date#getTimezoneOffset returns a floating point. - // https://github.com/moment/moment/pull/1871 - return -Math.round(m._d.getTimezoneOffset() / 15) * 15; -} - -// HOOKS - -// This function will be called whenever a moment is mutated. -// It is intended to keep the offset in sync with the timezone. -hooks.updateOffset = function () {}; - -// MOMENTS - -// keepLocalTime = true means only change the timezone, without -// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> -// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset -// +0200, so we adjust the time as needed, to be valid. -// -// Keeping the time actually adds/subtracts (one hour) -// from the actual represented time. That is why we call updateOffset -// a second time. In case it wants us to change the offset again -// _changeInProgress == true case, then we have to adjust, because -// there is no such time in the given timezone. -function getSetOffset (input, keepLocalTime, keepMinutes) { - var offset = this._offset || 0, - localAdjust; - if (!this.isValid()) { - return input != null ? this : NaN; - } - if (input != null) { - if (typeof input === 'string') { - input = offsetFromString(matchShortOffset, input); - if (input === null) { - return this; - } - } else if (Math.abs(input) < 16 && !keepMinutes) { - input = input * 60; - } - if (!this._isUTC && keepLocalTime) { - localAdjust = getDateOffset(this); - } - this._offset = input; - this._isUTC = true; - if (localAdjust != null) { - this.add(localAdjust, 'm'); - } - if (offset !== input) { - if (!keepLocalTime || this._changeInProgress) { - addSubtract(this, createDuration(input - offset, 'm'), 1, false); - } else if (!this._changeInProgress) { - this._changeInProgress = true; - hooks.updateOffset(this, true); - this._changeInProgress = null; - } - } - return this; - } else { - return this._isUTC ? offset : getDateOffset(this); - } -} - -function getSetZone (input, keepLocalTime) { - if (input != null) { - if (typeof input !== 'string') { - input = -input; - } - - this.utcOffset(input, keepLocalTime); - - return this; - } else { - return -this.utcOffset(); - } -} - -function setOffsetToUTC (keepLocalTime) { - return this.utcOffset(0, keepLocalTime); -} - -function setOffsetToLocal (keepLocalTime) { - if (this._isUTC) { - this.utcOffset(0, keepLocalTime); - this._isUTC = false; - - if (keepLocalTime) { - this.subtract(getDateOffset(this), 'm'); - } - } - return this; -} - -function setOffsetToParsedOffset () { - if (this._tzm != null) { - this.utcOffset(this._tzm, false, true); - } else if (typeof this._i === 'string') { - var tZone = offsetFromString(matchOffset, this._i); - if (tZone != null) { - this.utcOffset(tZone); - } - else { - this.utcOffset(0, true); - } - } - return this; -} - -function hasAlignedHourOffset (input) { - if (!this.isValid()) { - return false; - } - input = input ? createLocal(input).utcOffset() : 0; - - return (this.utcOffset() - input) % 60 === 0; -} - -function isDaylightSavingTime () { - return ( - this.utcOffset() > this.clone().month(0).utcOffset() || - this.utcOffset() > this.clone().month(5).utcOffset() - ); -} - -function isDaylightSavingTimeShifted () { - if (!isUndefined(this._isDSTShifted)) { - return this._isDSTShifted; - } - - var c = {}; - - copyConfig(c, this); - c = prepareConfig(c); - - if (c._a) { - var other = c._isUTC ? createUTC(c._a) : createLocal(c._a); - this._isDSTShifted = this.isValid() && - compareArrays(c._a, other.toArray()) > 0; - } else { - this._isDSTShifted = false; - } - - return this._isDSTShifted; -} - -function isLocal () { - return this.isValid() ? !this._isUTC : false; -} - -function isUtcOffset () { - return this.isValid() ? this._isUTC : false; -} - -function isUtc () { - return this.isValid() ? this._isUTC && this._offset === 0 : false; -} - -// ASP.NET json date format regex -var aspNetRegex = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/; - -// from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html -// somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere -// and further modified to allow for strings containing both week and day -var isoRegex = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/; - -function createDuration (input, key) { - var duration = input, - // matching against regexp is expensive, do it on demand - match = null, - sign, - ret, - diffRes; - - if (isDuration(input)) { - duration = { - ms : input._milliseconds, - d : input._days, - M : input._months - }; - } else if (isNumber(input)) { - duration = {}; - if (key) { - duration[key] = input; - } else { - duration.milliseconds = input; - } - } else if (!!(match = aspNetRegex.exec(input))) { - sign = (match[1] === '-') ? -1 : 1; - duration = { - y : 0, - d : toInt(match[DATE]) * sign, - h : toInt(match[HOUR]) * sign, - m : toInt(match[MINUTE]) * sign, - s : toInt(match[SECOND]) * sign, - ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match - }; - } else if (!!(match = isoRegex.exec(input))) { - sign = (match[1] === '-') ? -1 : 1; - duration = { - y : parseIso(match[2], sign), - M : parseIso(match[3], sign), - w : parseIso(match[4], sign), - d : parseIso(match[5], sign), - h : parseIso(match[6], sign), - m : parseIso(match[7], sign), - s : parseIso(match[8], sign) - }; - } else if (duration == null) {// checks for null or undefined - duration = {}; - } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { - diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to)); - - duration = {}; - duration.ms = diffRes.milliseconds; - duration.M = diffRes.months; - } - - ret = new Duration(duration); - - if (isDuration(input) && hasOwnProp(input, '_locale')) { - ret._locale = input._locale; - } - - return ret; -} - -createDuration.fn = Duration.prototype; -createDuration.invalid = createInvalid$1; - -function parseIso (inp, sign) { - // We'd normally use ~~inp for this, but unfortunately it also - // converts floats to ints. - // inp may be undefined, so careful calling replace on it. - var res = inp && parseFloat(inp.replace(',', '.')); - // apply sign while we're at it - return (isNaN(res) ? 0 : res) * sign; -} - -function positiveMomentsDifference(base, other) { - var res = {milliseconds: 0, months: 0}; - - res.months = other.month() - base.month() + - (other.year() - base.year()) * 12; - if (base.clone().add(res.months, 'M').isAfter(other)) { - --res.months; - } - - res.milliseconds = +other - +(base.clone().add(res.months, 'M')); - - return res; -} - -function momentsDifference(base, other) { - var res; - if (!(base.isValid() && other.isValid())) { - return {milliseconds: 0, months: 0}; - } - - other = cloneWithOffset(other, base); - if (base.isBefore(other)) { - res = positiveMomentsDifference(base, other); - } else { - res = positiveMomentsDifference(other, base); - res.milliseconds = -res.milliseconds; - res.months = -res.months; - } - - return res; -} - -// TODO: remove 'name' arg after deprecation is removed -function createAdder(direction, name) { - return function (val, period) { - var dur, tmp; - //invert the arguments, but complain about it - if (period !== null && !isNaN(+period)) { - deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + - 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'); - tmp = val; val = period; period = tmp; - } - - val = typeof val === 'string' ? +val : val; - dur = createDuration(val, period); - addSubtract(this, dur, direction); - return this; - }; -} - -function addSubtract (mom, duration, isAdding, updateOffset) { - var milliseconds = duration._milliseconds, - days = absRound(duration._days), - months = absRound(duration._months); - - if (!mom.isValid()) { - // No op - return; - } - - updateOffset = updateOffset == null ? true : updateOffset; - - if (milliseconds) { - mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); - } - if (days) { - set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); - } - if (months) { - setMonth(mom, get(mom, 'Month') + months * isAdding); - } - if (updateOffset) { - hooks.updateOffset(mom, days || months); - } -} - -var add = createAdder(1, 'add'); -var subtract = createAdder(-1, 'subtract'); - -function getCalendarFormat(myMoment, now) { - var diff = myMoment.diff(now, 'days', true); - return diff < -6 ? 'sameElse' : - diff < -1 ? 'lastWeek' : - diff < 0 ? 'lastDay' : - diff < 1 ? 'sameDay' : - diff < 2 ? 'nextDay' : - diff < 7 ? 'nextWeek' : 'sameElse'; -} - -function calendar$1 (time, formats) { - // We want to compare the start of today, vs this. - // Getting start-of-today depends on whether we're local/utc/offset or not. - var now = time || createLocal(), - sod = cloneWithOffset(now, this).startOf('day'), - format = hooks.calendarFormat(this, sod) || 'sameElse'; - - var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]); - - return this.format(output || this.localeData().calendar(format, this, createLocal(now))); -} - -function clone () { - return new Moment(this); -} - -function isAfter (input, units) { - var localInput = isMoment(input) ? input : createLocal(input); - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); - if (units === 'millisecond') { - return this.valueOf() > localInput.valueOf(); - } else { - return localInput.valueOf() < this.clone().startOf(units).valueOf(); - } -} - -function isBefore (input, units) { - var localInput = isMoment(input) ? input : createLocal(input); - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); - if (units === 'millisecond') { - return this.valueOf() < localInput.valueOf(); - } else { - return this.clone().endOf(units).valueOf() < localInput.valueOf(); - } -} - -function isBetween (from, to, units, inclusivity) { - inclusivity = inclusivity || '()'; - return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) && - (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units)); -} - -function isSame (input, units) { - var localInput = isMoment(input) ? input : createLocal(input), - inputMs; - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(units || 'millisecond'); - if (units === 'millisecond') { - return this.valueOf() === localInput.valueOf(); - } else { - inputMs = localInput.valueOf(); - return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf(); - } -} - -function isSameOrAfter (input, units) { - return this.isSame(input, units) || this.isAfter(input,units); -} - -function isSameOrBefore (input, units) { - return this.isSame(input, units) || this.isBefore(input,units); -} - -function diff (input, units, asFloat) { - var that, - zoneDelta, - delta, output; - - if (!this.isValid()) { - return NaN; - } - - that = cloneWithOffset(input, this); - - if (!that.isValid()) { - return NaN; - } - - zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; - - units = normalizeUnits(units); - - if (units === 'year' || units === 'month' || units === 'quarter') { - output = monthDiff(this, that); - if (units === 'quarter') { - output = output / 3; - } else if (units === 'year') { - output = output / 12; - } - } else { - delta = this - that; - output = units === 'second' ? delta / 1e3 : // 1000 - units === 'minute' ? delta / 6e4 : // 1000 * 60 - units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60 - units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst - units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst - delta; - } - return asFloat ? output : absFloor(output); -} - -function monthDiff (a, b) { - // difference in months - var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), - // b is in (anchor - 1 month, anchor + 1 month) - anchor = a.clone().add(wholeMonthDiff, 'months'), - anchor2, adjust; - - if (b - anchor < 0) { - anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); - // linear across the month - adjust = (b - anchor) / (anchor - anchor2); - } else { - anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); - // linear across the month - adjust = (b - anchor) / (anchor2 - anchor); - } - - //check for negative zero, return zero if negative zero - return -(wholeMonthDiff + adjust) || 0; -} - -hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; -hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; - -function toString () { - return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); -} - -function toISOString() { - if (!this.isValid()) { - return null; - } - var m = this.clone().utc(); - if (m.year() < 0 || m.year() > 9999) { - return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); - } - if (isFunction(Date.prototype.toISOString)) { - // native implementation is ~50x faster, use it when we can - return this.toDate().toISOString(); - } - return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); -} - -/** - * Return a human readable representation of a moment that can - * also be evaluated to get a new moment which is the same - * - * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects - */ -function inspect () { - if (!this.isValid()) { - return 'moment.invalid(/* ' + this._i + ' */)'; - } - var func = 'moment'; - var zone = ''; - if (!this.isLocal()) { - func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; - zone = 'Z'; - } - var prefix = '[' + func + '("]'; - var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY'; - var datetime = '-MM-DD[T]HH:mm:ss.SSS'; - var suffix = zone + '[")]'; - - return this.format(prefix + year + datetime + suffix); -} - -function format (inputString) { - if (!inputString) { - inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat; - } - var output = formatMoment(this, inputString); - return this.localeData().postformat(output); -} - -function from (time, withoutSuffix) { - if (this.isValid() && - ((isMoment(time) && time.isValid()) || - createLocal(time).isValid())) { - return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); - } else { - return this.localeData().invalidDate(); - } -} - -function fromNow (withoutSuffix) { - return this.from(createLocal(), withoutSuffix); -} - -function to (time, withoutSuffix) { - if (this.isValid() && - ((isMoment(time) && time.isValid()) || - createLocal(time).isValid())) { - return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); - } else { - return this.localeData().invalidDate(); - } -} - -function toNow (withoutSuffix) { - return this.to(createLocal(), withoutSuffix); -} - -// If passed a locale key, it will set the locale for this -// instance. Otherwise, it will return the locale configuration -// variables for this instance. -function locale (key) { - var newLocaleData; - - if (key === undefined) { - return this._locale._abbr; - } else { - newLocaleData = getLocale(key); - if (newLocaleData != null) { - this._locale = newLocaleData; - } - return this; - } -} - -var lang = deprecate( - 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', - function (key) { - if (key === undefined) { - return this.localeData(); - } else { - return this.locale(key); - } - } -); - -function localeData () { - return this._locale; -} - -function startOf (units) { - units = normalizeUnits(units); - // the following switch intentionally omits break keywords - // to utilize falling through the cases. - switch (units) { - case 'year': - this.month(0); - /* falls through */ - case 'quarter': - case 'month': - this.date(1); - /* falls through */ - case 'week': - case 'isoWeek': - case 'day': - case 'date': - this.hours(0); - /* falls through */ - case 'hour': - this.minutes(0); - /* falls through */ - case 'minute': - this.seconds(0); - /* falls through */ - case 'second': - this.milliseconds(0); - } - - // weeks are a special case - if (units === 'week') { - this.weekday(0); - } - if (units === 'isoWeek') { - this.isoWeekday(1); - } - - // quarters are also special - if (units === 'quarter') { - this.month(Math.floor(this.month() / 3) * 3); - } - - return this; -} - -function endOf (units) { - units = normalizeUnits(units); - if (units === undefined || units === 'millisecond') { - return this; - } - - // 'date' is an alias for 'day', so it should be considered as such. - if (units === 'date') { - units = 'day'; - } - - return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); -} - -function valueOf () { - return this._d.valueOf() - ((this._offset || 0) * 60000); -} - -function unix () { - return Math.floor(this.valueOf() / 1000); -} - -function toDate () { - return new Date(this.valueOf()); -} - -function toArray () { - var m = this; - return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; -} - -function toObject () { - var m = this; - return { - years: m.year(), - months: m.month(), - date: m.date(), - hours: m.hours(), - minutes: m.minutes(), - seconds: m.seconds(), - milliseconds: m.milliseconds() - }; -} - -function toJSON () { - // new Date(NaN).toJSON() === null - return this.isValid() ? this.toISOString() : null; -} - -function isValid$2 () { - return isValid(this); -} - -function parsingFlags () { - return extend({}, getParsingFlags(this)); -} - -function invalidAt () { - return getParsingFlags(this).overflow; -} - -function creationData() { - return { - input: this._i, - format: this._f, - locale: this._locale, - isUTC: this._isUTC, - strict: this._strict - }; -} - -// FORMATTING - -addFormatToken(0, ['gg', 2], 0, function () { - return this.weekYear() % 100; -}); - -addFormatToken(0, ['GG', 2], 0, function () { - return this.isoWeekYear() % 100; -}); - -function addWeekYearFormatToken (token, getter) { - addFormatToken(0, [token, token.length], 0, getter); -} - -addWeekYearFormatToken('gggg', 'weekYear'); -addWeekYearFormatToken('ggggg', 'weekYear'); -addWeekYearFormatToken('GGGG', 'isoWeekYear'); -addWeekYearFormatToken('GGGGG', 'isoWeekYear'); - -// ALIASES - -addUnitAlias('weekYear', 'gg'); -addUnitAlias('isoWeekYear', 'GG'); - -// PRIORITY - -addUnitPriority('weekYear', 1); -addUnitPriority('isoWeekYear', 1); - - -// PARSING - -addRegexToken('G', matchSigned); -addRegexToken('g', matchSigned); -addRegexToken('GG', match1to2, match2); -addRegexToken('gg', match1to2, match2); -addRegexToken('GGGG', match1to4, match4); -addRegexToken('gggg', match1to4, match4); -addRegexToken('GGGGG', match1to6, match6); -addRegexToken('ggggg', match1to6, match6); - -addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { - week[token.substr(0, 2)] = toInt(input); -}); - -addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { - week[token] = hooks.parseTwoDigitYear(input); -}); - -// MOMENTS - -function getSetWeekYear (input) { - return getSetWeekYearHelper.call(this, - input, - this.week(), - this.weekday(), - this.localeData()._week.dow, - this.localeData()._week.doy); -} - -function getSetISOWeekYear (input) { - return getSetWeekYearHelper.call(this, - input, this.isoWeek(), this.isoWeekday(), 1, 4); -} - -function getISOWeeksInYear () { - return weeksInYear(this.year(), 1, 4); -} - -function getWeeksInYear () { - var weekInfo = this.localeData()._week; - return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); -} - -function getSetWeekYearHelper(input, week, weekday, dow, doy) { - var weeksTarget; - if (input == null) { - return weekOfYear(this, dow, doy).year; - } else { - weeksTarget = weeksInYear(input, dow, doy); - if (week > weeksTarget) { - week = weeksTarget; - } - return setWeekAll.call(this, input, week, weekday, dow, doy); - } -} - -function setWeekAll(weekYear, week, weekday, dow, doy) { - var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), - date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); - - this.year(date.getUTCFullYear()); - this.month(date.getUTCMonth()); - this.date(date.getUTCDate()); - return this; -} - -// FORMATTING - -addFormatToken('Q', 0, 'Qo', 'quarter'); - -// ALIASES - -addUnitAlias('quarter', 'Q'); - -// PRIORITY - -addUnitPriority('quarter', 7); - -// PARSING - -addRegexToken('Q', match1); -addParseToken('Q', function (input, array) { - array[MONTH] = (toInt(input) - 1) * 3; -}); - -// MOMENTS - -function getSetQuarter (input) { - return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); -} - -// FORMATTING - -addFormatToken('D', ['DD', 2], 'Do', 'date'); - -// ALIASES - -addUnitAlias('date', 'D'); - -// PRIOROITY -addUnitPriority('date', 9); - -// PARSING - -addRegexToken('D', match1to2); -addRegexToken('DD', match1to2, match2); -addRegexToken('Do', function (isStrict, locale) { - // TODO: Remove "ordinalParse" fallback in next major release. - return isStrict ? - (locale._dayOfMonthOrdinalParse || locale._ordinalParse) : - locale._dayOfMonthOrdinalParseLenient; -}); - -addParseToken(['D', 'DD'], DATE); -addParseToken('Do', function (input, array) { - array[DATE] = toInt(input.match(match1to2)[0], 10); -}); - -// MOMENTS - -var getSetDayOfMonth = makeGetSet('Date', true); - -// FORMATTING - -addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); - -// ALIASES - -addUnitAlias('dayOfYear', 'DDD'); - -// PRIORITY -addUnitPriority('dayOfYear', 4); - -// PARSING - -addRegexToken('DDD', match1to3); -addRegexToken('DDDD', match3); -addParseToken(['DDD', 'DDDD'], function (input, array, config) { - config._dayOfYear = toInt(input); -}); - -// HELPERS - -// MOMENTS - -function getSetDayOfYear (input) { - var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; - return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); -} - -// FORMATTING - -addFormatToken('m', ['mm', 2], 0, 'minute'); - -// ALIASES - -addUnitAlias('minute', 'm'); - -// PRIORITY - -addUnitPriority('minute', 14); - -// PARSING - -addRegexToken('m', match1to2); -addRegexToken('mm', match1to2, match2); -addParseToken(['m', 'mm'], MINUTE); - -// MOMENTS - -var getSetMinute = makeGetSet('Minutes', false); - -// FORMATTING - -addFormatToken('s', ['ss', 2], 0, 'second'); - -// ALIASES - -addUnitAlias('second', 's'); - -// PRIORITY - -addUnitPriority('second', 15); - -// PARSING - -addRegexToken('s', match1to2); -addRegexToken('ss', match1to2, match2); -addParseToken(['s', 'ss'], SECOND); - -// MOMENTS - -var getSetSecond = makeGetSet('Seconds', false); - -// FORMATTING - -addFormatToken('S', 0, 0, function () { - return ~~(this.millisecond() / 100); -}); - -addFormatToken(0, ['SS', 2], 0, function () { - return ~~(this.millisecond() / 10); -}); - -addFormatToken(0, ['SSS', 3], 0, 'millisecond'); -addFormatToken(0, ['SSSS', 4], 0, function () { - return this.millisecond() * 10; -}); -addFormatToken(0, ['SSSSS', 5], 0, function () { - return this.millisecond() * 100; -}); -addFormatToken(0, ['SSSSSS', 6], 0, function () { - return this.millisecond() * 1000; -}); -addFormatToken(0, ['SSSSSSS', 7], 0, function () { - return this.millisecond() * 10000; -}); -addFormatToken(0, ['SSSSSSSS', 8], 0, function () { - return this.millisecond() * 100000; -}); -addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { - return this.millisecond() * 1000000; -}); - - -// ALIASES - -addUnitAlias('millisecond', 'ms'); - -// PRIORITY - -addUnitPriority('millisecond', 16); - -// PARSING - -addRegexToken('S', match1to3, match1); -addRegexToken('SS', match1to3, match2); -addRegexToken('SSS', match1to3, match3); - -var token; -for (token = 'SSSS'; token.length <= 9; token += 'S') { - addRegexToken(token, matchUnsigned); -} - -function parseMs(input, array) { - array[MILLISECOND] = toInt(('0.' + input) * 1000); -} - -for (token = 'S'; token.length <= 9; token += 'S') { - addParseToken(token, parseMs); -} -// MOMENTS - -var getSetMillisecond = makeGetSet('Milliseconds', false); - -// FORMATTING - -addFormatToken('z', 0, 0, 'zoneAbbr'); -addFormatToken('zz', 0, 0, 'zoneName'); - -// MOMENTS - -function getZoneAbbr () { - return this._isUTC ? 'UTC' : ''; -} - -function getZoneName () { - return this._isUTC ? 'Coordinated Universal Time' : ''; -} - -var proto = Moment.prototype; - -proto.add = add; -proto.calendar = calendar$1; -proto.clone = clone; -proto.diff = diff; -proto.endOf = endOf; -proto.format = format; -proto.from = from; -proto.fromNow = fromNow; -proto.to = to; -proto.toNow = toNow; -proto.get = stringGet; -proto.invalidAt = invalidAt; -proto.isAfter = isAfter; -proto.isBefore = isBefore; -proto.isBetween = isBetween; -proto.isSame = isSame; -proto.isSameOrAfter = isSameOrAfter; -proto.isSameOrBefore = isSameOrBefore; -proto.isValid = isValid$2; -proto.lang = lang; -proto.locale = locale; -proto.localeData = localeData; -proto.max = prototypeMax; -proto.min = prototypeMin; -proto.parsingFlags = parsingFlags; -proto.set = stringSet; -proto.startOf = startOf; -proto.subtract = subtract; -proto.toArray = toArray; -proto.toObject = toObject; -proto.toDate = toDate; -proto.toISOString = toISOString; -proto.inspect = inspect; -proto.toJSON = toJSON; -proto.toString = toString; -proto.unix = unix; -proto.valueOf = valueOf; -proto.creationData = creationData; - -// Year -proto.year = getSetYear; -proto.isLeapYear = getIsLeapYear; - -// Week Year -proto.weekYear = getSetWeekYear; -proto.isoWeekYear = getSetISOWeekYear; - -// Quarter -proto.quarter = proto.quarters = getSetQuarter; - -// Month -proto.month = getSetMonth; -proto.daysInMonth = getDaysInMonth; - -// Week -proto.week = proto.weeks = getSetWeek; -proto.isoWeek = proto.isoWeeks = getSetISOWeek; -proto.weeksInYear = getWeeksInYear; -proto.isoWeeksInYear = getISOWeeksInYear; - -// Day -proto.date = getSetDayOfMonth; -proto.day = proto.days = getSetDayOfWeek; -proto.weekday = getSetLocaleDayOfWeek; -proto.isoWeekday = getSetISODayOfWeek; -proto.dayOfYear = getSetDayOfYear; - -// Hour -proto.hour = proto.hours = getSetHour; - -// Minute -proto.minute = proto.minutes = getSetMinute; - -// Second -proto.second = proto.seconds = getSetSecond; - -// Millisecond -proto.millisecond = proto.milliseconds = getSetMillisecond; - -// Offset -proto.utcOffset = getSetOffset; -proto.utc = setOffsetToUTC; -proto.local = setOffsetToLocal; -proto.parseZone = setOffsetToParsedOffset; -proto.hasAlignedHourOffset = hasAlignedHourOffset; -proto.isDST = isDaylightSavingTime; -proto.isLocal = isLocal; -proto.isUtcOffset = isUtcOffset; -proto.isUtc = isUtc; -proto.isUTC = isUtc; - -// Timezone -proto.zoneAbbr = getZoneAbbr; -proto.zoneName = getZoneName; - -// Deprecations -proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); -proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); -proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); -proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone); -proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted); - -function createUnix (input) { - return createLocal(input * 1000); -} - -function createInZone () { - return createLocal.apply(null, arguments).parseZone(); -} - -function preParsePostFormat (string) { - return string; -} - -var proto$1 = Locale.prototype; - -proto$1.calendar = calendar; -proto$1.longDateFormat = longDateFormat; -proto$1.invalidDate = invalidDate; -proto$1.ordinal = ordinal; -proto$1.preparse = preParsePostFormat; -proto$1.postformat = preParsePostFormat; -proto$1.relativeTime = relativeTime; -proto$1.pastFuture = pastFuture; -proto$1.set = set; - -// Month -proto$1.months = localeMonths; -proto$1.monthsShort = localeMonthsShort; -proto$1.monthsParse = localeMonthsParse; -proto$1.monthsRegex = monthsRegex; -proto$1.monthsShortRegex = monthsShortRegex; - -// Week -proto$1.week = localeWeek; -proto$1.firstDayOfYear = localeFirstDayOfYear; -proto$1.firstDayOfWeek = localeFirstDayOfWeek; - -// Day of Week -proto$1.weekdays = localeWeekdays; -proto$1.weekdaysMin = localeWeekdaysMin; -proto$1.weekdaysShort = localeWeekdaysShort; -proto$1.weekdaysParse = localeWeekdaysParse; - -proto$1.weekdaysRegex = weekdaysRegex; -proto$1.weekdaysShortRegex = weekdaysShortRegex; -proto$1.weekdaysMinRegex = weekdaysMinRegex; - -// Hours -proto$1.isPM = localeIsPM; -proto$1.meridiem = localeMeridiem; - -function get$1 (format, index, field, setter) { - var locale = getLocale(); - var utc = createUTC().set(setter, index); - return locale[field](utc, format); -} - -function listMonthsImpl (format, index, field) { - if (isNumber(format)) { - index = format; - format = undefined; - } - - format = format || ''; - - if (index != null) { - return get$1(format, index, field, 'month'); - } - - var i; - var out = []; - for (i = 0; i < 12; i++) { - out[i] = get$1(format, i, field, 'month'); - } - return out; -} - -// () -// (5) -// (fmt, 5) -// (fmt) -// (true) -// (true, 5) -// (true, fmt, 5) -// (true, fmt) -function listWeekdaysImpl (localeSorted, format, index, field) { - if (typeof localeSorted === 'boolean') { - if (isNumber(format)) { - index = format; - format = undefined; - } - - format = format || ''; - } else { - format = localeSorted; - index = format; - localeSorted = false; - - if (isNumber(format)) { - index = format; - format = undefined; - } - - format = format || ''; - } - - var locale = getLocale(), - shift = localeSorted ? locale._week.dow : 0; - - if (index != null) { - return get$1(format, (index + shift) % 7, field, 'day'); - } - - var i; - var out = []; - for (i = 0; i < 7; i++) { - out[i] = get$1(format, (i + shift) % 7, field, 'day'); - } - return out; -} - -function listMonths (format, index) { - return listMonthsImpl(format, index, 'months'); -} - -function listMonthsShort (format, index) { - return listMonthsImpl(format, index, 'monthsShort'); -} - -function listWeekdays (localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); -} - -function listWeekdaysShort (localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); -} - -function listWeekdaysMin (localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); -} - -getSetGlobalLocale('en', { - dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, - ordinal : function (number) { - var b = number % 10, - output = (toInt(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - } -}); - -// Side effect imports -hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale); -hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale); - -var mathAbs = Math.abs; - -function abs () { - var data = this._data; - - this._milliseconds = mathAbs(this._milliseconds); - this._days = mathAbs(this._days); - this._months = mathAbs(this._months); - - data.milliseconds = mathAbs(data.milliseconds); - data.seconds = mathAbs(data.seconds); - data.minutes = mathAbs(data.minutes); - data.hours = mathAbs(data.hours); - data.months = mathAbs(data.months); - data.years = mathAbs(data.years); - - return this; -} - -function addSubtract$1 (duration, input, value, direction) { - var other = createDuration(input, value); - - duration._milliseconds += direction * other._milliseconds; - duration._days += direction * other._days; - duration._months += direction * other._months; - - return duration._bubble(); -} - -// supports only 2.0-style add(1, 's') or add(duration) -function add$1 (input, value) { - return addSubtract$1(this, input, value, 1); -} - -// supports only 2.0-style subtract(1, 's') or subtract(duration) -function subtract$1 (input, value) { - return addSubtract$1(this, input, value, -1); -} - -function absCeil (number) { - if (number < 0) { - return Math.floor(number); - } else { - return Math.ceil(number); - } -} - -function bubble () { - var milliseconds = this._milliseconds; - var days = this._days; - var months = this._months; - var data = this._data; - var seconds, minutes, hours, years, monthsFromDays; - - // if we have a mix of positive and negative values, bubble down first - // check: https://github.com/moment/moment/issues/2166 - if (!((milliseconds >= 0 && days >= 0 && months >= 0) || - (milliseconds <= 0 && days <= 0 && months <= 0))) { - milliseconds += absCeil(monthsToDays(months) + days) * 864e5; - days = 0; - months = 0; - } - - // The following code bubbles up values, see the tests for - // examples of what that means. - data.milliseconds = milliseconds % 1000; - - seconds = absFloor(milliseconds / 1000); - data.seconds = seconds % 60; - - minutes = absFloor(seconds / 60); - data.minutes = minutes % 60; - - hours = absFloor(minutes / 60); - data.hours = hours % 24; - - days += absFloor(hours / 24); - - // convert days to months - monthsFromDays = absFloor(daysToMonths(days)); - months += monthsFromDays; - days -= absCeil(monthsToDays(monthsFromDays)); - - // 12 months -> 1 year - years = absFloor(months / 12); - months %= 12; - - data.days = days; - data.months = months; - data.years = years; - - return this; -} - -function daysToMonths (days) { - // 400 years have 146097 days (taking into account leap year rules) - // 400 years have 12 months === 4800 - return days * 4800 / 146097; -} - -function monthsToDays (months) { - // the reverse of daysToMonths - return months * 146097 / 4800; -} - -function as (units) { - if (!this.isValid()) { - return NaN; - } - var days; - var months; - var milliseconds = this._milliseconds; - - units = normalizeUnits(units); - - if (units === 'month' || units === 'year') { - days = this._days + milliseconds / 864e5; - months = this._months + daysToMonths(days); - return units === 'month' ? months : months / 12; - } else { - // handle milliseconds separately because of floating point math errors (issue #1867) - days = this._days + Math.round(monthsToDays(this._months)); - switch (units) { - case 'week' : return days / 7 + milliseconds / 6048e5; - case 'day' : return days + milliseconds / 864e5; - case 'hour' : return days * 24 + milliseconds / 36e5; - case 'minute' : return days * 1440 + milliseconds / 6e4; - case 'second' : return days * 86400 + milliseconds / 1000; - // Math.floor prevents floating point math errors here - case 'millisecond': return Math.floor(days * 864e5) + milliseconds; - default: throw new Error('Unknown unit ' + units); - } - } -} - -// TODO: Use this.as('ms')? -function valueOf$1 () { - if (!this.isValid()) { - return NaN; - } - return ( - this._milliseconds + - this._days * 864e5 + - (this._months % 12) * 2592e6 + - toInt(this._months / 12) * 31536e6 - ); -} - -function makeAs (alias) { - return function () { - return this.as(alias); - }; -} - -var asMilliseconds = makeAs('ms'); -var asSeconds = makeAs('s'); -var asMinutes = makeAs('m'); -var asHours = makeAs('h'); -var asDays = makeAs('d'); -var asWeeks = makeAs('w'); -var asMonths = makeAs('M'); -var asYears = makeAs('y'); - -function get$2 (units) { - units = normalizeUnits(units); - return this.isValid() ? this[units + 's']() : NaN; -} - -function makeGetter(name) { - return function () { - return this.isValid() ? this._data[name] : NaN; - }; -} - -var milliseconds = makeGetter('milliseconds'); -var seconds = makeGetter('seconds'); -var minutes = makeGetter('minutes'); -var hours = makeGetter('hours'); -var days = makeGetter('days'); -var months = makeGetter('months'); -var years = makeGetter('years'); - -function weeks () { - return absFloor(this.days() / 7); -} - -var round = Math.round; -var thresholds = { - ss: 44, // a few seconds to seconds - s : 45, // seconds to minute - m : 45, // minutes to hour - h : 22, // hours to day - d : 26, // days to month - M : 11 // months to year -}; - -// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize -function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { - return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); -} - -function relativeTime$1 (posNegDuration, withoutSuffix, locale) { - var duration = createDuration(posNegDuration).abs(); - var seconds = round(duration.as('s')); - var minutes = round(duration.as('m')); - var hours = round(duration.as('h')); - var days = round(duration.as('d')); - var months = round(duration.as('M')); - var years = round(duration.as('y')); - - var a = seconds <= thresholds.ss && ['s', seconds] || - seconds < thresholds.s && ['ss', seconds] || - minutes <= 1 && ['m'] || - minutes < thresholds.m && ['mm', minutes] || - hours <= 1 && ['h'] || - hours < thresholds.h && ['hh', hours] || - days <= 1 && ['d'] || - days < thresholds.d && ['dd', days] || - months <= 1 && ['M'] || - months < thresholds.M && ['MM', months] || - years <= 1 && ['y'] || ['yy', years]; - - a[2] = withoutSuffix; - a[3] = +posNegDuration > 0; - a[4] = locale; - return substituteTimeAgo.apply(null, a); -} - -// This function allows you to set the rounding function for relative time strings -function getSetRelativeTimeRounding (roundingFunction) { - if (roundingFunction === undefined) { - return round; - } - if (typeof(roundingFunction) === 'function') { - round = roundingFunction; - return true; - } - return false; -} - -// This function allows you to set a threshold for relative time strings -function getSetRelativeTimeThreshold (threshold, limit) { - if (thresholds[threshold] === undefined) { - return false; - } - if (limit === undefined) { - return thresholds[threshold]; - } - thresholds[threshold] = limit; - if (threshold === 's') { - thresholds.ss = limit - 1; - } - return true; -} - -function humanize (withSuffix) { - if (!this.isValid()) { - return this.localeData().invalidDate(); - } - - var locale = this.localeData(); - var output = relativeTime$1(this, !withSuffix, locale); - - if (withSuffix) { - output = locale.pastFuture(+this, output); - } - - return locale.postformat(output); -} - -var abs$1 = Math.abs; - -function toISOString$1() { - // for ISO strings we do not use the normal bubbling rules: - // * milliseconds bubble up until they become hours - // * days do not bubble at all - // * months bubble up until they become years - // This is because there is no context-free conversion between hours and days - // (think of clock changes) - // and also not between days and months (28-31 days per month) - if (!this.isValid()) { - return this.localeData().invalidDate(); - } - - var seconds = abs$1(this._milliseconds) / 1000; - var days = abs$1(this._days); - var months = abs$1(this._months); - var minutes, hours, years; - - // 3600 seconds -> 60 minutes -> 1 hour - minutes = absFloor(seconds / 60); - hours = absFloor(minutes / 60); - seconds %= 60; - minutes %= 60; - - // 12 months -> 1 year - years = absFloor(months / 12); - months %= 12; - - - // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js - var Y = years; - var M = months; - var D = days; - var h = hours; - var m = minutes; - var s = seconds; - var total = this.asSeconds(); - - if (!total) { - // this is the same as C#'s (Noda) and python (isodate)... - // but not other JS (goog.date) - return 'P0D'; - } - - return (total < 0 ? '-' : '') + - 'P' + - (Y ? Y + 'Y' : '') + - (M ? M + 'M' : '') + - (D ? D + 'D' : '') + - ((h || m || s) ? 'T' : '') + - (h ? h + 'H' : '') + - (m ? m + 'M' : '') + - (s ? s + 'S' : ''); -} - -var proto$2 = Duration.prototype; - -proto$2.isValid = isValid$1; -proto$2.abs = abs; -proto$2.add = add$1; -proto$2.subtract = subtract$1; -proto$2.as = as; -proto$2.asMilliseconds = asMilliseconds; -proto$2.asSeconds = asSeconds; -proto$2.asMinutes = asMinutes; -proto$2.asHours = asHours; -proto$2.asDays = asDays; -proto$2.asWeeks = asWeeks; -proto$2.asMonths = asMonths; -proto$2.asYears = asYears; -proto$2.valueOf = valueOf$1; -proto$2._bubble = bubble; -proto$2.get = get$2; -proto$2.milliseconds = milliseconds; -proto$2.seconds = seconds; -proto$2.minutes = minutes; -proto$2.hours = hours; -proto$2.days = days; -proto$2.weeks = weeks; -proto$2.months = months; -proto$2.years = years; -proto$2.humanize = humanize; -proto$2.toISOString = toISOString$1; -proto$2.toString = toISOString$1; -proto$2.toJSON = toISOString$1; -proto$2.locale = locale; -proto$2.localeData = localeData; - -// Deprecations -proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1); -proto$2.lang = lang; - -// Side effect imports - -// FORMATTING - -addFormatToken('X', 0, 0, 'unix'); -addFormatToken('x', 0, 0, 'valueOf'); - -// PARSING - -addRegexToken('x', matchSigned); -addRegexToken('X', matchTimestamp); -addParseToken('X', function (input, array, config) { - config._d = new Date(parseFloat(input, 10) * 1000); -}); -addParseToken('x', function (input, array, config) { - config._d = new Date(toInt(input)); -}); - -// Side effect imports - - -hooks.version = '2.18.1'; - -setHookCallback(createLocal); - -hooks.fn = proto; -hooks.min = min; -hooks.max = max; -hooks.now = now; -hooks.utc = createUTC; -hooks.unix = createUnix; -hooks.months = listMonths; -hooks.isDate = isDate; -hooks.locale = getSetGlobalLocale; -hooks.invalid = createInvalid; -hooks.duration = createDuration; -hooks.isMoment = isMoment; -hooks.weekdays = listWeekdays; -hooks.parseZone = createInZone; -hooks.localeData = getLocale; -hooks.isDuration = isDuration; -hooks.monthsShort = listMonthsShort; -hooks.weekdaysMin = listWeekdaysMin; -hooks.defineLocale = defineLocale; -hooks.updateLocale = updateLocale; -hooks.locales = listLocales; -hooks.weekdaysShort = listWeekdaysShort; -hooks.normalizeUnits = normalizeUnits; -hooks.relativeTimeRounding = getSetRelativeTimeRounding; -hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; -hooks.calendarFormat = getCalendarFormat; -hooks.prototype = proto; - -return hooks; - -}))); - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3)(module))) - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.setLogLevel = exports.logger = exports.LEVELS = undefined; - -var _moment = __webpack_require__(0); - -var _moment2 = _interopRequireDefault(_moment); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var LEVELS = exports.LEVELS = { - debug: 1, - info: 2, - warn: 3, - error: 4, - fatal: 5 -}; - -var logger = exports.logger = { - debug: function debug() {}, - info: function info() {}, - warn: function warn() {}, - error: function error() {}, - fatal: function fatal() {} -}; - -var setLogLevel = exports.setLogLevel = function setLogLevel(level) { - logger.debug = function () {}; - logger.info = function () {}; - logger.warn = function () {}; - logger.error = function () {}; - logger.fatal = function () {}; - if (level <= LEVELS.fatal) { - logger.fatal = console.log.bind(console, '\x1b[35m', format('FATAL')); - } - if (level <= LEVELS.error) { - logger.error = console.log.bind(console, '\x1b[31m', format('ERROR')); - } - if (level <= LEVELS.warn) { - logger.warn = console.log.bind(console, '\x1B[33m', format('WARN')); - } - if (level <= LEVELS.info) { - logger.info = console.log.bind(console, '\x1b[34m', format('INFO')); - } - if (level <= LEVELS.debug) { - logger.debug = console.log.bind(console, '\x1b[32m', format('DEBUG')); - } -}; - -var format = function format(level) { - var time = (0, _moment2.default)().format('HH:mm:ss.SSS'); - return time + ' : ' + level + ' : '; -}; - -/***/ }), -/* 2 */ -/***/ (function(module, exports) { - -/** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array, else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * _.isArray(document.body.children); - * // => false - * - * _.isArray('abc'); - * // => false - * - * _.isArray(_.noop); - * // => false - */ -var isArray = Array.isArray; - -module.exports = isArray; - - -/***/ }), -/* 3 */ -/***/ (function(module, exports) { - -module.exports = function(module) { - if(!module.webpackPolyfill) { - module.deprecate = function() {}; - module.paths = []; - // module.parent = undefined by default - if(!module.children) module.children = []; - Object.defineProperty(module, "loaded", { - enumerable: true, - get: function() { - return module.l; - } - }); - Object.defineProperty(module, "id", { - enumerable: true, - get: function() { - return module.i; - } - }); - module.webpackPolyfill = 1; - } - return module; -}; - - -/***/ }), -/* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -/* global window */ - -var lodash; - -if (true) { - try { - lodash = __webpack_require__(17); - } catch (e) {} -} - -if (!lodash) { - lodash = window._; -} - -module.exports = lodash; - - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -var freeGlobal = __webpack_require__(177); - -/** Detect free variable `self`. */ -var freeSelf = typeof self == 'object' && self && self.Object === Object && self; - -/** Used as a reference to the global object. */ -var root = freeGlobal || freeSelf || Function('return this')(); - -module.exports = root; - - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -var _d = __webpack_require__(30); - -var _d2 = _interopRequireDefault(_d); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/* - D3 Text Wrap - By Vijith Assar - http://www.vijithassar.com - http://www.github.com/vijithassar - @vijithassar - - Detailed instructions at http://www.github.com/vijithassar/d3textwrap - */ - -(function () { - // set this variable to a string value to always force a particular - // wrap method for development purposes, for example to check tspan - // rendering using a foreignobject-enabled browser. set to 'tspan' to - // use tspans and 'foreignobject' to use foreignobject - var forceWrapMethod = false; // by default no wrap method is forced - forceWrapMethod = 'tspans'; // uncomment this statement to force tspans - // force_wrap_method = 'foreignobjects'; // uncomment this statement to force foreignobjects - - // exit immediately if something in this location - // has already been defined; the plugin will defer to whatever - // else you're doing in your code - if (_d2.default.selection.prototype.textwrap) { - return false; - } - - // double check the force_wrap_method flag - // and reset if someone screwed up the above - // settings - if (typeof forceWrapMethod === 'undefined') { - forceWrapMethod = false; - } - - // create the plugin method twice, both for regular use - // and again for use inside the enter() selection - _d2.default.selection.prototype.textwrap = _d2.default.selection.enter.prototype.textwrap = function (bounds, padding) { - // default value of padding is zero if it's undefined - padding = parseInt(padding) || 0; - - // save callee into a variable so we can continue to refer to it - // as the function scope changes - var selection = this; - - // create a variable to store desired return values in - var returnValue; - - // extract wrap boundaries from any d3-selected rect and return them - // in a format that matches the simpler object argument option - var extractBounds = function extractBounds(bounds) { - // discard the nested array wrappers added by d3 - var boundingRect = bounds[0][0]; - // sanitize the svg element name so we can test against it - var elementType = boundingRect.tagName.toString(); - // if it's not a rect, exit - if (elementType !== 'rect') { - return false; - // if it's a rect, proceed to extracting the position attributes - } else { - var boundsExtracted = {}; - boundsExtracted.x = _d2.default.select(boundingRect).attr('x') || 0; - boundsExtracted.y = _d2.default.select(boundingRect).attr('y') || 0; - boundsExtracted.width = _d2.default.select(boundingRect).attr('width') || 0; - boundsExtracted.height = _d2.default.select(boundingRect).attr('height') || 0; - // also pass along the getter function - boundsExtracted.attr = bounds.attr; - } - return boundsExtracted; - }; - - // double check the input argument for the wrapping - // boundaries to make sure it actually contains all - // the information we'll need in order to wrap successfully - var verifyBounds = function verifyBounds(bounds) { - // quickly add a simple getter method so you can use either - // bounds.x or bounds.attr('x') as your notation, - // the latter being a common convention among D3 - // developers - if (!bounds.attr) { - bounds.attr = function (property) { - if (this[property]) { - return this[property]; - } - }; - } - // if it's an associative array, make sure it has all the - // necessary properties represented directly - if ((typeof bounds === 'undefined' ? 'undefined' : _typeof(bounds)) === 'object' && typeof bounds.x !== 'undefined' && typeof bounds.y !== 'undefined' && typeof bounds.width !== 'undefined' && typeof bounds.height !== 'undefined' - // if that's the case, then the bounds are fine - ) { - // return the lightly modified bounds - return bounds; - // if it's a numerically indexed array, assume it's a - // d3-selected rect and try to extract the positions - } else if ( - // first try to make sure it's an array using Array.isArray - typeof Array.isArray === 'function' && Array.isArray(bounds) || - // but since Array.isArray isn't always supported, fall - // back to casting to the object to string when it's not - Object.prototype.toString.call(bounds) === '[object Array]') { - // once you're sure it's an array, extract the boundaries - // from the rect - var extractedBounds = extractBounds(bounds); - return extractedBounds; - } else { - // but if the bounds are neither an object nor a numerical - // array, then the bounds argument is invalid and you'll - // need to fix it - return false; - } - }; - - var applyPadding = function applyPadding(bounds, padding) { - var paddedBounds = bounds; - if (padding !== 0) { - paddedBounds.x = parseInt(paddedBounds.x) + padding; - paddedBounds.y = parseInt(paddedBounds.y) + padding; - paddedBounds.width -= padding * 2; - paddedBounds.height -= padding * 2; - } - return paddedBounds; - }; - - // verify bounds - var verifiedBounds = verifyBounds(bounds); - - // modify bounds if a padding value is provided - if (padding) { - verifiedBounds = applyPadding(verifiedBounds, padding); - } - - // check that we have the necessary conditions for this function to operate properly - if ( - // selection it's operating on cannot be not empty - selection.length === 0 || - // d3 must be available - !_d2.default || - // desired wrapping bounds must be provided as an input argument - !bounds || - // input bounds must validate - !verifiedBounds) { - // try to return the calling selection if possible - // so as not to interfere with methods downstream in the - // chain - if (selection) { - return selection; - // if all else fails, just return false. if you hit this point then you're - // almost certainly trying to call the textwrap() method on something that - // doesn't make sense! - } else { - return false; - } - // if we've validated everything then we can finally proceed - // to the meat of this operation - } else { - // reassign the verified bounds as the set we want - // to work with from here on; this ensures that we're - // using the same data structure for our bounds regardless - // of whether the input argument was a simple object or - // a d3 selection - bounds = verifiedBounds; - - // wrap using html and foreignObjects if they are supported - var wrapWithForeignobjects = function wrapWithForeignobjects(item) { - // establish variables to quickly reference target nodes later - var parent = _d2.default.select(item[0].parentNode); - var textNode = parent.select('text'); - var styledLineHeight = textNode.style('line-height'); - // extract our desired content from the single text element - var textToWrap = textNode.text(); - // remove the text node and replace with a foreign object - textNode.remove(); - var foreignObject = parent.append('foreignObject'); - // add foreign object and set dimensions, position, etc - foreignObject.attr('requiredFeatures', 'http://www.w3.org/TR/SVG11/feature#Extensibility').attr('x', bounds.x).attr('y', bounds.y).attr('width', bounds.width).attr('height', bounds.height); - // insert an HTML div - var wrapDiv = foreignObject.append('xhtml:div') - // this class is currently hardcoded - // probably not necessary but easy to - // override using .classed() and for now - // it's nice to avoid a litany of input - // arguments - .attr('class', 'wrapped'); - // set div to same dimensions as foreign object - wrapDiv.style('height', bounds.height).style('width', bounds.width) - // insert text content - .html(textToWrap); - if (styledLineHeight) { - wrapDiv.style('line-height', styledLineHeight); - } - returnValue = parent.select('foreignObject'); - }; - - // wrap with tspans if foreignObject is undefined - var wrapWithTspans = function wrapWithTspans(item) { - // operate on the first text item in the selection - var textNode = item[0]; - var parent = textNode.parentNode; - var textNodeSelected = _d2.default.select(textNode); - // measure initial size of the text node as rendered - var textNodeHeight = textNode.getBBox().height; - var textNodeWidth = textNode.getBBox().width; - // figure out the line height, either from rendered height - // of the font or attached styling - var lineHeight; - var renderedLineHeight = textNodeHeight; - var styledLineHeight = textNodeSelected.style('line-height'); - if (styledLineHeight && parseInt(styledLineHeight)) { - lineHeight = parseInt(styledLineHeight.replace('px', '')); - } else { - lineHeight = renderedLineHeight; - } - // only fire the rest of this if the text content - // overflows the desired dimensions - if (textNodeWidth > bounds.width) { - // store whatever is inside the text node - // in a variable and then zero out the - // initial content; we'll reinsert in a moment - // using tspan elements. - var textToWrap = textNodeSelected.text(); - textNodeSelected.text(''); - if (textToWrap) { - // keep track of whether we are splitting by spaces - // so we know whether to reinsert those spaces later - var breakDelimiter; - // split at spaces to create an array of individual words - var textToWrapArray; - if (textToWrap.indexOf(' ') !== -1) { - breakDelimiter = ' '; - textToWrapArray = textToWrap.split(' '); - } else { - // if there are no spaces, figure out the split - // points by comparing rendered text width against - // bounds and translating that into character position - // cuts - breakDelimiter = ''; - var stringLength = textToWrap.length; - var numberOfSubstrings = Math.ceil(textNodeWidth / bounds.width); - var spliceInterval = Math.floor(stringLength / numberOfSubstrings); - if (!(spliceInterval * numberOfSubstrings >= stringLength)) { - numberOfSubstrings++; - } - textToWrapArray = []; - var substring; - var startPosition; - for (var i = 0; i < numberOfSubstrings; i++) { - startPosition = i * spliceInterval; - substring = textToWrap.substr(startPosition, spliceInterval); - textToWrapArray.push(substring); - } - } - - // new array where we'll store the words re-assembled into - // substrings that have been tested against the desired - // maximum wrapping width - var substrings = []; - // computed text length is arguably incorrectly reported for - // all tspans after the first one, in that they will include - // the width of previous separate tspans. to compensate we need - // to manually track the computed text length of all those - // previous tspans and substrings, and then use that to offset - // the miscalculation. this then gives us the actual correct - // position we want to use in rendering the text in the SVG. - var totalOffset = 0; - // object for storing the results of text length computations later - var temp = {}; - // loop through the words and test the computed text length - // of the string against the maximum desired wrapping width - for (i = 0; i < textToWrapArray.length; i++) { - var word = textToWrapArray[i]; - var previousString = textNodeSelected.text(); - var previousWidth = textNode.getComputedTextLength(); - // initialize the current word as the first word - // or append to the previous string if one exists - var newstring; - if (previousString) { - newstring = previousString + breakDelimiter + word; - } else { - newstring = word; - } - // add the newest substring back to the text node and - // measure the length - textNodeSelected.text(newstring); - var newWidth = textNode.getComputedTextLength(); - // adjust the length by the offset we've tracked - // due to the misreported length discussed above - - // if our latest version of the string is too - // big for the bounds, use the previous - // version of the string (without the newest word - // added) and use the latest word to restart the - // process with a new tspan - if (newWidth > bounds.width) { - if (previousString && previousString !== '') { - totalOffset = totalOffset + previousWidth; - temp = { string: previousString, width: previousWidth, offset: totalOffset }; - substrings.push(temp); - textNodeSelected.text(''); - textNodeSelected.text(word); - // Handle case where there is just one more word to be wrapped - if (i === textToWrapArray.length - 1) { - newstring = word; - textNodeSelected.text(newstring); - newWidth = textNode.getComputedTextLength(); - } - } - } - // if we're up to the last word in the array, - // get the computed length as is without - // appending anything further to it - if (i === textToWrapArray.length - 1) { - textNodeSelected.text(''); - var finalString = newstring; - if (finalString && finalString !== '') { - if (newWidth - totalOffset > 0) { - newWidth = newWidth - totalOffset; - } - temp = { string: finalString, width: newWidth, offset: totalOffset }; - substrings.push(temp); - } - } - } - - // append each substring as a tspan - var currentTspan; - // var tspanCount - // double check that the text content has been removed - // before we start appending tspans - textNodeSelected.text(''); - for (i = 0; i < substrings.length; i++) { - substring = substrings[i].string; - // only append if we're sure it won't make the tspans - // overflow the bounds. - if (i * lineHeight < bounds.height - lineHeight * 1.5) { - currentTspan = textNodeSelected.append('tspan').text(substring); - // vertical shift to all tspans after the first one - currentTspan.attr('dy', function (d) { - if (i > 0) { - return lineHeight; - } - }); - // shift left from default position, which - // is probably based on the full length of the - // text string until we make this adjustment - currentTspan.attr('x', function () { - var xOffset = bounds.x; - if (padding) { - xOffset += padding; - } - return xOffset; - }); - } - } - } - } - // position the overall text node, whether wrapped or not - textNodeSelected.attr('y', function () { - var yOffset = bounds.y; - // shift by line-height to move the baseline into - // the bounds – otherwise the text baseline would be - // at the top of the bounds - if (lineHeight) { - yOffset += lineHeight; - } - // shift by padding, if it's there - if (padding) { - yOffset += padding; - } - return yOffset; - }); - // shift to the right by the padding value - textNodeSelected.attr('x', function () { - var xOffset = bounds.x; - if (padding) { - xOffset += padding; - } - return xOffset; - }); - - // assign our modified text node with tspans - // to the return value - returnValue = _d2.default.select(parent).selectAll('text'); - }; - - // variable used to hold the functions that let us - // switch between the wrap methods - var wrapMethod; - - // if a wrap method if being forced, assign that - // function - if (forceWrapMethod) { - if (forceWrapMethod === 'foreignobjects') { - wrapMethod = wrapWithForeignobjects; - } else if (forceWrapMethod === 'tspans') { - wrapMethod = wrapWithTspans; - } - } - - // if no wrap method is being forced, then instead - // test for browser support of foreignobject and - // use whichever wrap method makes sense accordingly - if (!forceWrapMethod) { - if (typeof SVGForeignObjectElement !== 'undefined') { - wrapMethod = wrapWithForeignobjects; - } else { - wrapMethod = wrapWithTspans; - } - } - - // run the desired wrap function for each item - // in the d3 selection that called .textwrap() - for (var i = 0; i < selection.length; i++) { - var item = selection[i]; - wrapMethod(item); - } - - // return the modified nodes so we can chain other - // methods to them. - return returnValue; - } - }; -})(); - -exports.default = _d2.default; - -/***/ }), -/* 7 */ -/***/ (function(module, exports) { - -// shim for using process in browser -var process = module.exports = {}; - -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; - -function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); -} -function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); -} -(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } -} ()) -function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - - -} -function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - - - -} -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; - -function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} - -function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); -} - -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; - -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; - -process.listeners = function (name) { return [] } - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - - -/***/ }), -/* 8 */ -/***/ (function(module, exports) { - - - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// resolves . and .. elements in a path array with directory names there -// must be no slashes, empty elements, or device names (c:\) in the array -// (so also no leading and trailing slashes - it does not distinguish -// relative and absolute paths) -function normalizeArray(parts, allowAboveRoot) { - // if the path tries to go above the root, `up` ends up > 0 - var up = 0; - for (var i = parts.length - 1; i >= 0; i--) { - var last = parts[i]; - if (last === '.') { - parts.splice(i, 1); - } else if (last === '..') { - parts.splice(i, 1); - up++; - } else if (up) { - parts.splice(i, 1); - up--; - } - } - - // if the path is allowed to go above the root, restore leading ..s - if (allowAboveRoot) { - for (; up--; up) { - parts.unshift('..'); - } - } - - return parts; -} - -// Split a filename into [root, dir, basename, ext], unix version -// 'root' is just a slash, or nothing. -var splitPathRe = - /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; -var splitPath = function(filename) { - return splitPathRe.exec(filename).slice(1); -}; - -// path.resolve([from ...], to) -// posix version -exports.resolve = function() { - var resolvedPath = '', - resolvedAbsolute = false; - - for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = (i >= 0) ? arguments[i] : process.cwd(); - - // Skip empty and invalid entries - if (typeof path !== 'string') { - throw new TypeError('Arguments to path.resolve must be strings'); - } else if (!path) { - continue; - } - - resolvedPath = path + '/' + resolvedPath; - resolvedAbsolute = path.charAt(0) === '/'; - } - - // At this point the path should be resolved to a full absolute path, but - // handle relative paths to be safe (might happen when process.cwd() fails) - - // Normalize the path - resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { - return !!p; - }), !resolvedAbsolute).join('/'); - - return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; -}; - -// path.normalize(path) -// posix version -exports.normalize = function(path) { - var isAbsolute = exports.isAbsolute(path), - trailingSlash = substr(path, -1) === '/'; - - // Normalize the path - path = normalizeArray(filter(path.split('/'), function(p) { - return !!p; - }), !isAbsolute).join('/'); - - if (!path && !isAbsolute) { - path = '.'; - } - if (path && trailingSlash) { - path += '/'; - } - - return (isAbsolute ? '/' : '') + path; -}; - -// posix version -exports.isAbsolute = function(path) { - return path.charAt(0) === '/'; -}; - -// posix version -exports.join = function() { - var paths = Array.prototype.slice.call(arguments, 0); - return exports.normalize(filter(paths, function(p, index) { - if (typeof p !== 'string') { - throw new TypeError('Arguments to path.join must be strings'); - } - return p; - }).join('/')); -}; - - -// path.relative(from, to) -// posix version -exports.relative = function(from, to) { - from = exports.resolve(from).substr(1); - to = exports.resolve(to).substr(1); - - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== '') break; - } - - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== '') break; - } - - if (start > end) return []; - return arr.slice(start, end - start + 1); - } - - var fromParts = trim(from.split('/')); - var toParts = trim(to.split('/')); - - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } - } - - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push('..'); - } - - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - - return outputParts.join('/'); -}; - -exports.sep = '/'; -exports.delimiter = ':'; - -exports.dirname = function(path) { - var result = splitPath(path), - root = result[0], - dir = result[1]; - - if (!root && !dir) { - // No dirname whatsoever - return '.'; - } - - if (dir) { - // It has a dirname, strip trailing slash - dir = dir.substr(0, dir.length - 1); - } - - return root + dir; -}; - - -exports.basename = function(path, ext) { - var f = splitPath(path)[2]; - // TODO: make this comparison case-insensitive on windows? - if (ext && f.substr(-1 * ext.length) === ext) { - f = f.substr(0, f.length - ext.length); - } - return f; -}; - - -exports.extname = function(path) { - return splitPath(path)[3]; -}; - -function filter (xs, f) { - if (xs.filter) return xs.filter(f); - var res = []; - for (var i = 0; i < xs.length; i++) { - if (f(xs[i], i, xs)) res.push(xs[i]); - } - return res; -} - -// String.prototype.substr - negative index don't work in IE8 -var substr = 'ab'.substr(-1) === 'b' - ? function (str, start, len) { return str.substr(start, len) } - : function (str, start, len) { - if (start < 0) start = str.length + start; - return str.substr(start, len); - } -; - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(7))) - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - -var baseIsNative = __webpack_require__(245), - getValue = __webpack_require__(248); - -/** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ -function getNative(object, key) { - var value = getValue(object, key); - return baseIsNative(value) ? value : undefined; -} - -module.exports = getNative; - - -/***/ }), -/* 11 */ -/***/ (function(module, exports, __webpack_require__) { - -var Symbol = __webpack_require__(22), - getRawTag = __webpack_require__(231), - objectToString = __webpack_require__(232); - -/** `Object#toString` result references. */ -var nullTag = '[object Null]', - undefinedTag = '[object Undefined]'; - -/** Built-in value references. */ -var symToStringTag = Symbol ? Symbol.toStringTag : undefined; - -/** - * The base implementation of `getTag` without fallbacks for buggy environments. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ -function baseGetTag(value) { - if (value == null) { - return value === undefined ? undefinedTag : nullTag; - } - return (symToStringTag && symToStringTag in Object(value)) - ? getRawTag(value) - : objectToString(value); -} - -module.exports = baseGetTag; - - -/***/ }), -/* 12 */ -/***/ (function(module, exports) { - -/** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ -function isObjectLike(value) { - return value != null && typeof value == 'object'; -} - -module.exports = isObjectLike; - - -/***/ }), -/* 13 */ -/***/ (function(module, exports, __webpack_require__) { - -var isFunction = __webpack_require__(182), - isLength = __webpack_require__(34); - -/** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - * @example - * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); - * // => true - * - * _.isArrayLike(_.noop); - * // => false - */ -function isArrayLike(value) { - return value != null && isLength(value.length) && !isFunction(value); -} - -module.exports = isArrayLike; - - -/***/ }), -/* 14 */ -/***/ (function(module, exports) { - -/** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return value != null && (type == 'object' || type == 'function'); -} - -module.exports = isObject; - - -/***/ }), -/* 15 */ -/***/ (function(module, exports, __webpack_require__) { - -var baseMatches = __webpack_require__(263), - baseMatchesProperty = __webpack_require__(306), - identity = __webpack_require__(18), - isArray = __webpack_require__(2), - property = __webpack_require__(316); - -/** - * The base implementation of `_.iteratee`. - * - * @private - * @param {*} [value=_.identity] The value to convert to an iteratee. - * @returns {Function} Returns the iteratee. - */ -function baseIteratee(value) { - // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. - // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. - if (typeof value == 'function') { - return value; - } - if (value == null) { - return identity; - } - if (typeof value == 'object') { - return isArray(value) - ? baseMatchesProperty(value[0], value[1]) - : baseMatches(value); - } - return property(value); -} - -module.exports = baseIteratee; - - -/***/ }), -/* 16 */ -/***/ (function(module, exports, __webpack_require__) { - -var baseGetTag = __webpack_require__(11), - isObjectLike = __webpack_require__(12); - -/** `Object#toString` result references. */ -var symbolTag = '[object Symbol]'; - -/** - * Checks if `value` is classified as a `Symbol` primitive or object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. - * @example - * - * _.isSymbol(Symbol.iterator); - * // => true - * - * _.isSymbol('abc'); - * // => false - */ -function isSymbol(value) { - return typeof value == 'symbol' || - (isObjectLike(value) && baseGetTag(value) == symbolTag); -} - -module.exports = isSymbol; - - -/***/ }), -/* 17 */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global, module) {/** - * @license - * Lodash - * Copyright JS Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ -;(function() { - - /** Used as a safe reference for `undefined` in pre-ES5 environments. */ - var undefined; - - /** Used as the semantic version number. */ - var VERSION = '4.17.4'; - - /** Used as the size to enable large array optimizations. */ - var LARGE_ARRAY_SIZE = 200; - - /** Error message constants. */ - var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.', - FUNC_ERROR_TEXT = 'Expected a function'; - - /** Used to stand-in for `undefined` hash values. */ - var HASH_UNDEFINED = '__lodash_hash_undefined__'; - - /** Used as the maximum memoize cache size. */ - var MAX_MEMOIZE_SIZE = 500; - - /** Used as the internal argument placeholder. */ - var PLACEHOLDER = '__lodash_placeholder__'; - - /** Used to compose bitmasks for cloning. */ - var CLONE_DEEP_FLAG = 1, - CLONE_FLAT_FLAG = 2, - CLONE_SYMBOLS_FLAG = 4; - - /** Used to compose bitmasks for value comparisons. */ - var COMPARE_PARTIAL_FLAG = 1, - COMPARE_UNORDERED_FLAG = 2; - - /** Used to compose bitmasks for function metadata. */ - var WRAP_BIND_FLAG = 1, - WRAP_BIND_KEY_FLAG = 2, - WRAP_CURRY_BOUND_FLAG = 4, - WRAP_CURRY_FLAG = 8, - WRAP_CURRY_RIGHT_FLAG = 16, - WRAP_PARTIAL_FLAG = 32, - WRAP_PARTIAL_RIGHT_FLAG = 64, - WRAP_ARY_FLAG = 128, - WRAP_REARG_FLAG = 256, - WRAP_FLIP_FLAG = 512; - - /** Used as default options for `_.truncate`. */ - var DEFAULT_TRUNC_LENGTH = 30, - DEFAULT_TRUNC_OMISSION = '...'; - - /** Used to detect hot functions by number of calls within a span of milliseconds. */ - var HOT_COUNT = 800, - HOT_SPAN = 16; - - /** Used to indicate the type of lazy iteratees. */ - var LAZY_FILTER_FLAG = 1, - LAZY_MAP_FLAG = 2, - LAZY_WHILE_FLAG = 3; - - /** Used as references for various `Number` constants. */ - var INFINITY = 1 / 0, - MAX_SAFE_INTEGER = 9007199254740991, - MAX_INTEGER = 1.7976931348623157e+308, - NAN = 0 / 0; - - /** Used as references for the maximum length and index of an array. */ - var MAX_ARRAY_LENGTH = 4294967295, - MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, - HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; - - /** Used to associate wrap methods with their bit flags. */ - var wrapFlags = [ - ['ary', WRAP_ARY_FLAG], - ['bind', WRAP_BIND_FLAG], - ['bindKey', WRAP_BIND_KEY_FLAG], - ['curry', WRAP_CURRY_FLAG], - ['curryRight', WRAP_CURRY_RIGHT_FLAG], - ['flip', WRAP_FLIP_FLAG], - ['partial', WRAP_PARTIAL_FLAG], - ['partialRight', WRAP_PARTIAL_RIGHT_FLAG], - ['rearg', WRAP_REARG_FLAG] - ]; - - /** `Object#toString` result references. */ - var argsTag = '[object Arguments]', - arrayTag = '[object Array]', - asyncTag = '[object AsyncFunction]', - boolTag = '[object Boolean]', - dateTag = '[object Date]', - domExcTag = '[object DOMException]', - errorTag = '[object Error]', - funcTag = '[object Function]', - genTag = '[object GeneratorFunction]', - mapTag = '[object Map]', - numberTag = '[object Number]', - nullTag = '[object Null]', - objectTag = '[object Object]', - promiseTag = '[object Promise]', - proxyTag = '[object Proxy]', - regexpTag = '[object RegExp]', - setTag = '[object Set]', - stringTag = '[object String]', - symbolTag = '[object Symbol]', - undefinedTag = '[object Undefined]', - weakMapTag = '[object WeakMap]', - weakSetTag = '[object WeakSet]'; - - var arrayBufferTag = '[object ArrayBuffer]', - dataViewTag = '[object DataView]', - float32Tag = '[object Float32Array]', - float64Tag = '[object Float64Array]', - int8Tag = '[object Int8Array]', - int16Tag = '[object Int16Array]', - int32Tag = '[object Int32Array]', - uint8Tag = '[object Uint8Array]', - uint8ClampedTag = '[object Uint8ClampedArray]', - uint16Tag = '[object Uint16Array]', - uint32Tag = '[object Uint32Array]'; - - /** Used to match empty string literals in compiled template source. */ - var reEmptyStringLeading = /\b__p \+= '';/g, - reEmptyStringMiddle = /\b(__p \+=) '' \+/g, - reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; - - /** Used to match HTML entities and HTML characters. */ - var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, - reUnescapedHtml = /[&<>"']/g, - reHasEscapedHtml = RegExp(reEscapedHtml.source), - reHasUnescapedHtml = RegExp(reUnescapedHtml.source); - - /** Used to match template delimiters. */ - var reEscape = /<%-([\s\S]+?)%>/g, - reEvaluate = /<%([\s\S]+?)%>/g, - reInterpolate = /<%=([\s\S]+?)%>/g; - - /** Used to match property names within property paths. */ - var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, - reIsPlainProp = /^\w*$/, - reLeadingDot = /^\./, - rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; - - /** - * Used to match `RegExp` - * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). - */ - var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, - reHasRegExpChar = RegExp(reRegExpChar.source); - - /** Used to match leading and trailing whitespace. */ - var reTrim = /^\s+|\s+$/g, - reTrimStart = /^\s+/, - reTrimEnd = /\s+$/; - - /** Used to match wrap detail comments. */ - var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, - reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, - reSplitDetails = /,? & /; - - /** Used to match words composed of alphanumeric characters. */ - var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; - - /** Used to match backslashes in property paths. */ - var reEscapeChar = /\\(\\)?/g; - - /** - * Used to match - * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components). - */ - var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; - - /** Used to match `RegExp` flags from their coerced string values. */ - var reFlags = /\w*$/; - - /** Used to detect bad signed hexadecimal string values. */ - var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - - /** Used to detect binary string values. */ - var reIsBinary = /^0b[01]+$/i; - - /** Used to detect host constructors (Safari). */ - var reIsHostCtor = /^\[object .+?Constructor\]$/; - - /** Used to detect octal string values. */ - var reIsOctal = /^0o[0-7]+$/i; - - /** Used to detect unsigned integer values. */ - var reIsUint = /^(?:0|[1-9]\d*)$/; - - /** Used to match Latin Unicode letters (excluding mathematical operators). */ - var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; - - /** Used to ensure capturing order of template delimiters. */ - var reNoMatch = /($^)/; - - /** Used to match unescaped characters in compiled string literals. */ - var reUnescapedString = /['\n\r\u2028\u2029\\]/g; - - /** Used to compose unicode character classes. */ - var rsAstralRange = '\\ud800-\\udfff', - rsComboMarksRange = '\\u0300-\\u036f', - reComboHalfMarksRange = '\\ufe20-\\ufe2f', - rsComboSymbolsRange = '\\u20d0-\\u20ff', - rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, - rsDingbatRange = '\\u2700-\\u27bf', - rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff', - rsMathOpRange = '\\xac\\xb1\\xd7\\xf7', - rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf', - rsPunctuationRange = '\\u2000-\\u206f', - rsSpaceRange = ' \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000', - rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde', - rsVarRange = '\\ufe0e\\ufe0f', - rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; - - /** Used to compose unicode capture groups. */ - var rsApos = "['\u2019]", - rsAstral = '[' + rsAstralRange + ']', - rsBreak = '[' + rsBreakRange + ']', - rsCombo = '[' + rsComboRange + ']', - rsDigits = '\\d+', - rsDingbat = '[' + rsDingbatRange + ']', - rsLower = '[' + rsLowerRange + ']', - rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']', - rsFitz = '\\ud83c[\\udffb-\\udfff]', - rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', - rsNonAstral = '[^' + rsAstralRange + ']', - rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', - rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', - rsUpper = '[' + rsUpperRange + ']', - rsZWJ = '\\u200d'; - - /** Used to compose unicode regexes. */ - var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')', - rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')', - rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?', - rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?', - reOptMod = rsModifier + '?', - rsOptVar = '[' + rsVarRange + ']?', - rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', - rsOrdLower = '\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)', - rsOrdUpper = '\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)', - rsSeq = rsOptVar + reOptMod + rsOptJoin, - rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq, - rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; - - /** Used to match apostrophes. */ - var reApos = RegExp(rsApos, 'g'); - - /** - * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and - * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols). - */ - var reComboMark = RegExp(rsCombo, 'g'); - - /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ - var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); - - /** Used to match complex or compound words. */ - var reUnicodeWord = RegExp([ - rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', - rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', - rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, - rsUpper + '+' + rsOptContrUpper, - rsOrdUpper, - rsOrdLower, - rsDigits, - rsEmoji - ].join('|'), 'g'); - - /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */ - var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']'); - - /** Used to detect strings that need a more robust regexp to match words. */ - var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; - - /** Used to assign default `context` object properties. */ - var contextProps = [ - 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array', - 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object', - 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array', - 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap', - '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout' - ]; - - /** Used to make template sourceURLs easier to identify. */ - var templateCounter = -1; - - /** Used to identify `toStringTag` values of typed arrays. */ - var typedArrayTags = {}; - typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = - typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = - typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = - typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = - typedArrayTags[uint32Tag] = true; - typedArrayTags[argsTag] = typedArrayTags[arrayTag] = - typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = - typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = - typedArrayTags[errorTag] = typedArrayTags[funcTag] = - typedArrayTags[mapTag] = typedArrayTags[numberTag] = - typedArrayTags[objectTag] = typedArrayTags[regexpTag] = - typedArrayTags[setTag] = typedArrayTags[stringTag] = - typedArrayTags[weakMapTag] = false; - - /** Used to identify `toStringTag` values supported by `_.clone`. */ - var cloneableTags = {}; - cloneableTags[argsTag] = cloneableTags[arrayTag] = - cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = - cloneableTags[boolTag] = cloneableTags[dateTag] = - cloneableTags[float32Tag] = cloneableTags[float64Tag] = - cloneableTags[int8Tag] = cloneableTags[int16Tag] = - cloneableTags[int32Tag] = cloneableTags[mapTag] = - cloneableTags[numberTag] = cloneableTags[objectTag] = - cloneableTags[regexpTag] = cloneableTags[setTag] = - cloneableTags[stringTag] = cloneableTags[symbolTag] = - cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = - cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; - cloneableTags[errorTag] = cloneableTags[funcTag] = - cloneableTags[weakMapTag] = false; - - /** Used to map Latin Unicode letters to basic Latin letters. */ - var deburredLetters = { - // Latin-1 Supplement block. - '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A', - '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a', - '\xc7': 'C', '\xe7': 'c', - '\xd0': 'D', '\xf0': 'd', - '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E', - '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e', - '\xcc': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I', - '\xec': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i', - '\xd1': 'N', '\xf1': 'n', - '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O', - '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o', - '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U', - '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u', - '\xdd': 'Y', '\xfd': 'y', '\xff': 'y', - '\xc6': 'Ae', '\xe6': 'ae', - '\xde': 'Th', '\xfe': 'th', - '\xdf': 'ss', - // Latin Extended-A block. - '\u0100': 'A', '\u0102': 'A', '\u0104': 'A', - '\u0101': 'a', '\u0103': 'a', '\u0105': 'a', - '\u0106': 'C', '\u0108': 'C', '\u010a': 'C', '\u010c': 'C', - '\u0107': 'c', '\u0109': 'c', '\u010b': 'c', '\u010d': 'c', - '\u010e': 'D', '\u0110': 'D', '\u010f': 'd', '\u0111': 'd', - '\u0112': 'E', '\u0114': 'E', '\u0116': 'E', '\u0118': 'E', '\u011a': 'E', - '\u0113': 'e', '\u0115': 'e', '\u0117': 'e', '\u0119': 'e', '\u011b': 'e', - '\u011c': 'G', '\u011e': 'G', '\u0120': 'G', '\u0122': 'G', - '\u011d': 'g', '\u011f': 'g', '\u0121': 'g', '\u0123': 'g', - '\u0124': 'H', '\u0126': 'H', '\u0125': 'h', '\u0127': 'h', - '\u0128': 'I', '\u012a': 'I', '\u012c': 'I', '\u012e': 'I', '\u0130': 'I', - '\u0129': 'i', '\u012b': 'i', '\u012d': 'i', '\u012f': 'i', '\u0131': 'i', - '\u0134': 'J', '\u0135': 'j', - '\u0136': 'K', '\u0137': 'k', '\u0138': 'k', - '\u0139': 'L', '\u013b': 'L', '\u013d': 'L', '\u013f': 'L', '\u0141': 'L', - '\u013a': 'l', '\u013c': 'l', '\u013e': 'l', '\u0140': 'l', '\u0142': 'l', - '\u0143': 'N', '\u0145': 'N', '\u0147': 'N', '\u014a': 'N', - '\u0144': 'n', '\u0146': 'n', '\u0148': 'n', '\u014b': 'n', - '\u014c': 'O', '\u014e': 'O', '\u0150': 'O', - '\u014d': 'o', '\u014f': 'o', '\u0151': 'o', - '\u0154': 'R', '\u0156': 'R', '\u0158': 'R', - '\u0155': 'r', '\u0157': 'r', '\u0159': 'r', - '\u015a': 'S', '\u015c': 'S', '\u015e': 'S', '\u0160': 'S', - '\u015b': 's', '\u015d': 's', '\u015f': 's', '\u0161': 's', - '\u0162': 'T', '\u0164': 'T', '\u0166': 'T', - '\u0163': 't', '\u0165': 't', '\u0167': 't', - '\u0168': 'U', '\u016a': 'U', '\u016c': 'U', '\u016e': 'U', '\u0170': 'U', '\u0172': 'U', - '\u0169': 'u', '\u016b': 'u', '\u016d': 'u', '\u016f': 'u', '\u0171': 'u', '\u0173': 'u', - '\u0174': 'W', '\u0175': 'w', - '\u0176': 'Y', '\u0177': 'y', '\u0178': 'Y', - '\u0179': 'Z', '\u017b': 'Z', '\u017d': 'Z', - '\u017a': 'z', '\u017c': 'z', '\u017e': 'z', - '\u0132': 'IJ', '\u0133': 'ij', - '\u0152': 'Oe', '\u0153': 'oe', - '\u0149': "'n", '\u017f': 's' - }; - - /** Used to map characters to HTML entities. */ - var htmlEscapes = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - "'": ''' - }; - - /** Used to map HTML entities to characters. */ - var htmlUnescapes = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - ''': "'" - }; - - /** Used to escape characters for inclusion in compiled string literals. */ - var stringEscapes = { - '\\': '\\', - "'": "'", - '\n': 'n', - '\r': 'r', - '\u2028': 'u2028', - '\u2029': 'u2029' - }; - - /** Built-in method references without a dependency on `root`. */ - var freeParseFloat = parseFloat, - freeParseInt = parseInt; - - /** Detect free variable `global` from Node.js. */ - var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; - - /** Detect free variable `self`. */ - var freeSelf = typeof self == 'object' && self && self.Object === Object && self; - - /** Used as a reference to the global object. */ - var root = freeGlobal || freeSelf || Function('return this')(); - - /** Detect free variable `exports`. */ - var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; - - /** Detect free variable `module`. */ - var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; - - /** Detect the popular CommonJS extension `module.exports`. */ - var moduleExports = freeModule && freeModule.exports === freeExports; - - /** Detect free variable `process` from Node.js. */ - var freeProcess = moduleExports && freeGlobal.process; - - /** Used to access faster Node.js helpers. */ - var nodeUtil = (function() { - try { - return freeProcess && freeProcess.binding && freeProcess.binding('util'); - } catch (e) {} - }()); - - /* Node.js helper references. */ - var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, - nodeIsDate = nodeUtil && nodeUtil.isDate, - nodeIsMap = nodeUtil && nodeUtil.isMap, - nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, - nodeIsSet = nodeUtil && nodeUtil.isSet, - nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; - - /*--------------------------------------------------------------------------*/ - - /** - * Adds the key-value `pair` to `map`. - * - * @private - * @param {Object} map The map to modify. - * @param {Array} pair The key-value pair to add. - * @returns {Object} Returns `map`. - */ - function addMapEntry(map, pair) { - // Don't return `map.set` because it's not chainable in IE 11. - map.set(pair[0], pair[1]); - return map; - } - - /** - * Adds `value` to `set`. - * - * @private - * @param {Object} set The set to modify. - * @param {*} value The value to add. - * @returns {Object} Returns `set`. - */ - function addSetEntry(set, value) { - // Don't return `set.add` because it's not chainable in IE 11. - set.add(value); - return set; - } - - /** - * A faster alternative to `Function#apply`, this function invokes `func` - * with the `this` binding of `thisArg` and the arguments of `args`. - * - * @private - * @param {Function} func The function to invoke. - * @param {*} thisArg The `this` binding of `func`. - * @param {Array} args The arguments to invoke `func` with. - * @returns {*} Returns the result of `func`. - */ - function apply(func, thisArg, args) { - switch (args.length) { - case 0: return func.call(thisArg); - case 1: return func.call(thisArg, args[0]); - case 2: return func.call(thisArg, args[0], args[1]); - case 3: return func.call(thisArg, args[0], args[1], args[2]); - } - return func.apply(thisArg, args); - } - - /** - * A specialized version of `baseAggregator` for arrays. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} setter The function to set `accumulator` values. - * @param {Function} iteratee The iteratee to transform keys. - * @param {Object} accumulator The initial aggregated object. - * @returns {Function} Returns `accumulator`. - */ - function arrayAggregator(array, setter, iteratee, accumulator) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - var value = array[index]; - setter(accumulator, value, iteratee(value), array); - } - return accumulator; - } - - /** - * A specialized version of `_.forEach` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns `array`. - */ - function arrayEach(array, iteratee) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (iteratee(array[index], index, array) === false) { - break; - } - } - return array; - } - - /** - * A specialized version of `_.forEachRight` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns `array`. - */ - function arrayEachRight(array, iteratee) { - var length = array == null ? 0 : array.length; - - while (length--) { - if (iteratee(array[length], length, array) === false) { - break; - } - } - return array; - } - - /** - * A specialized version of `_.every` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false`. - */ - function arrayEvery(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (!predicate(array[index], index, array)) { - return false; - } - } - return true; - } - - /** - * A specialized version of `_.filter` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - */ - function arrayFilter(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length, - resIndex = 0, - result = []; - - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result[resIndex++] = value; - } - } - return result; - } - - /** - * A specialized version of `_.includes` for arrays without support for - * specifying an index to search from. - * - * @private - * @param {Array} [array] The array to inspect. - * @param {*} target The value to search for. - * @returns {boolean} Returns `true` if `target` is found, else `false`. - */ - function arrayIncludes(array, value) { - var length = array == null ? 0 : array.length; - return !!length && baseIndexOf(array, value, 0) > -1; - } - - /** - * This function is like `arrayIncludes` except that it accepts a comparator. - * - * @private - * @param {Array} [array] The array to inspect. - * @param {*} target The value to search for. - * @param {Function} comparator The comparator invoked per element. - * @returns {boolean} Returns `true` if `target` is found, else `false`. - */ - function arrayIncludesWith(array, value, comparator) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (comparator(value, array[index])) { - return true; - } - } - return false; - } - - /** - * A specialized version of `_.map` for arrays without support for iteratee - * shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ - function arrayMap(array, iteratee) { - var index = -1, - length = array == null ? 0 : array.length, - result = Array(length); - - while (++index < length) { - result[index] = iteratee(array[index], index, array); - } - return result; - } - - /** - * Appends the elements of `values` to `array`. - * - * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to append. - * @returns {Array} Returns `array`. - */ - function arrayPush(array, values) { - var index = -1, - length = values.length, - offset = array.length; - - while (++index < length) { - array[offset + index] = values[index]; - } - return array; - } - - /** - * A specialized version of `_.reduce` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @param {boolean} [initAccum] Specify using the first element of `array` as - * the initial value. - * @returns {*} Returns the accumulated value. - */ - function arrayReduce(array, iteratee, accumulator, initAccum) { - var index = -1, - length = array == null ? 0 : array.length; - - if (initAccum && length) { - accumulator = array[++index]; - } - while (++index < length) { - accumulator = iteratee(accumulator, array[index], index, array); - } - return accumulator; - } - - /** - * A specialized version of `_.reduceRight` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @param {boolean} [initAccum] Specify using the last element of `array` as - * the initial value. - * @returns {*} Returns the accumulated value. - */ - function arrayReduceRight(array, iteratee, accumulator, initAccum) { - var length = array == null ? 0 : array.length; - if (initAccum && length) { - accumulator = array[--length]; - } - while (length--) { - accumulator = iteratee(accumulator, array[length], length, array); - } - return accumulator; - } - - /** - * A specialized version of `_.some` for arrays without support for iteratee - * shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - */ - function arraySome(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (predicate(array[index], index, array)) { - return true; - } - } - return false; - } - - /** - * Gets the size of an ASCII `string`. - * - * @private - * @param {string} string The string inspect. - * @returns {number} Returns the string size. - */ - var asciiSize = baseProperty('length'); - - /** - * Converts an ASCII `string` to an array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the converted array. - */ - function asciiToArray(string) { - return string.split(''); - } - - /** - * Splits an ASCII `string` into an array of its words. - * - * @private - * @param {string} The string to inspect. - * @returns {Array} Returns the words of `string`. - */ - function asciiWords(string) { - return string.match(reAsciiWord) || []; - } - - /** - * The base implementation of methods like `_.findKey` and `_.findLastKey`, - * without support for iteratee shorthands, which iterates over `collection` - * using `eachFunc`. - * - * @private - * @param {Array|Object} collection The collection to inspect. - * @param {Function} predicate The function invoked per iteration. - * @param {Function} eachFunc The function to iterate over `collection`. - * @returns {*} Returns the found element or its key, else `undefined`. - */ - function baseFindKey(collection, predicate, eachFunc) { - var result; - eachFunc(collection, function(value, key, collection) { - if (predicate(value, key, collection)) { - result = key; - return false; - } - }); - return result; - } - - /** - * The base implementation of `_.findIndex` and `_.findLastIndex` without - * support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} predicate The function invoked per iteration. - * @param {number} fromIndex The index to search from. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseFindIndex(array, predicate, fromIndex, fromRight) { - var length = array.length, - index = fromIndex + (fromRight ? 1 : -1); - - while ((fromRight ? index-- : ++index < length)) { - if (predicate(array[index], index, array)) { - return index; - } - } - return -1; - } - - /** - * The base implementation of `_.indexOf` without `fromIndex` bounds checks. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseIndexOf(array, value, fromIndex) { - return value === value - ? strictIndexOf(array, value, fromIndex) - : baseFindIndex(array, baseIsNaN, fromIndex); - } - - /** - * This function is like `baseIndexOf` except that it accepts a comparator. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @param {Function} comparator The comparator invoked per element. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseIndexOfWith(array, value, fromIndex, comparator) { - var index = fromIndex - 1, - length = array.length; - - while (++index < length) { - if (comparator(array[index], value)) { - return index; - } - } - return -1; - } - - /** - * The base implementation of `_.isNaN` without support for number objects. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. - */ - function baseIsNaN(value) { - return value !== value; - } - - /** - * The base implementation of `_.mean` and `_.meanBy` without support for - * iteratee shorthands. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {number} Returns the mean. - */ - function baseMean(array, iteratee) { - var length = array == null ? 0 : array.length; - return length ? (baseSum(array, iteratee) / length) : NAN; - } - - /** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new accessor function. - */ - function baseProperty(key) { - return function(object) { - return object == null ? undefined : object[key]; - }; - } - - /** - * The base implementation of `_.propertyOf` without support for deep paths. - * - * @private - * @param {Object} object The object to query. - * @returns {Function} Returns the new accessor function. - */ - function basePropertyOf(object) { - return function(key) { - return object == null ? undefined : object[key]; - }; - } - - /** - * The base implementation of `_.reduce` and `_.reduceRight`, without support - * for iteratee shorthands, which iterates over `collection` using `eachFunc`. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} accumulator The initial value. - * @param {boolean} initAccum Specify using the first or last element of - * `collection` as the initial value. - * @param {Function} eachFunc The function to iterate over `collection`. - * @returns {*} Returns the accumulated value. - */ - function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { - eachFunc(collection, function(value, index, collection) { - accumulator = initAccum - ? (initAccum = false, value) - : iteratee(accumulator, value, index, collection); - }); - return accumulator; - } - - /** - * The base implementation of `_.sortBy` which uses `comparer` to define the - * sort order of `array` and replaces criteria objects with their corresponding - * values. - * - * @private - * @param {Array} array The array to sort. - * @param {Function} comparer The function to define sort order. - * @returns {Array} Returns `array`. - */ - function baseSortBy(array, comparer) { - var length = array.length; - - array.sort(comparer); - while (length--) { - array[length] = array[length].value; - } - return array; - } - - /** - * The base implementation of `_.sum` and `_.sumBy` without support for - * iteratee shorthands. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {number} Returns the sum. - */ - function baseSum(array, iteratee) { - var result, - index = -1, - length = array.length; - - while (++index < length) { - var current = iteratee(array[index]); - if (current !== undefined) { - result = result === undefined ? current : (result + current); - } - } - return result; - } - - /** - * The base implementation of `_.times` without support for iteratee shorthands - * or max array length checks. - * - * @private - * @param {number} n The number of times to invoke `iteratee`. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the array of results. - */ - function baseTimes(n, iteratee) { - var index = -1, - result = Array(n); - - while (++index < n) { - result[index] = iteratee(index); - } - return result; - } - - /** - * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array - * of key-value pairs for `object` corresponding to the property names of `props`. - * - * @private - * @param {Object} object The object to query. - * @param {Array} props The property names to get values for. - * @returns {Object} Returns the key-value pairs. - */ - function baseToPairs(object, props) { - return arrayMap(props, function(key) { - return [key, object[key]]; - }); - } - - /** - * The base implementation of `_.unary` without support for storing metadata. - * - * @private - * @param {Function} func The function to cap arguments for. - * @returns {Function} Returns the new capped function. - */ - function baseUnary(func) { - return function(value) { - return func(value); - }; - } - - /** - * The base implementation of `_.values` and `_.valuesIn` which creates an - * array of `object` property values corresponding to the property names - * of `props`. - * - * @private - * @param {Object} object The object to query. - * @param {Array} props The property names to get values for. - * @returns {Object} Returns the array of property values. - */ - function baseValues(object, props) { - return arrayMap(props, function(key) { - return object[key]; - }); - } - - /** - * Checks if a `cache` value for `key` exists. - * - * @private - * @param {Object} cache The cache to query. - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function cacheHas(cache, key) { - return cache.has(key); - } - - /** - * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol - * that is not found in the character symbols. - * - * @private - * @param {Array} strSymbols The string symbols to inspect. - * @param {Array} chrSymbols The character symbols to find. - * @returns {number} Returns the index of the first unmatched string symbol. - */ - function charsStartIndex(strSymbols, chrSymbols) { - var index = -1, - length = strSymbols.length; - - while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} - return index; - } - - /** - * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol - * that is not found in the character symbols. - * - * @private - * @param {Array} strSymbols The string symbols to inspect. - * @param {Array} chrSymbols The character symbols to find. - * @returns {number} Returns the index of the last unmatched string symbol. - */ - function charsEndIndex(strSymbols, chrSymbols) { - var index = strSymbols.length; - - while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} - return index; - } - - /** - * Gets the number of `placeholder` occurrences in `array`. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} placeholder The placeholder to search for. - * @returns {number} Returns the placeholder count. - */ - function countHolders(array, placeholder) { - var length = array.length, - result = 0; - - while (length--) { - if (array[length] === placeholder) { - ++result; - } - } - return result; - } - - /** - * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A - * letters to basic Latin letters. - * - * @private - * @param {string} letter The matched letter to deburr. - * @returns {string} Returns the deburred letter. - */ - var deburrLetter = basePropertyOf(deburredLetters); - - /** - * Used by `_.escape` to convert characters to HTML entities. - * - * @private - * @param {string} chr The matched character to escape. - * @returns {string} Returns the escaped character. - */ - var escapeHtmlChar = basePropertyOf(htmlEscapes); - - /** - * Used by `_.template` to escape characters for inclusion in compiled string literals. - * - * @private - * @param {string} chr The matched character to escape. - * @returns {string} Returns the escaped character. - */ - function escapeStringChar(chr) { - return '\\' + stringEscapes[chr]; - } - - /** - * Gets the value at `key` of `object`. - * - * @private - * @param {Object} [object] The object to query. - * @param {string} key The key of the property to get. - * @returns {*} Returns the property value. - */ - function getValue(object, key) { - return object == null ? undefined : object[key]; - } - - /** - * Checks if `string` contains Unicode symbols. - * - * @private - * @param {string} string The string to inspect. - * @returns {boolean} Returns `true` if a symbol is found, else `false`. - */ - function hasUnicode(string) { - return reHasUnicode.test(string); - } - - /** - * Checks if `string` contains a word composed of Unicode symbols. - * - * @private - * @param {string} string The string to inspect. - * @returns {boolean} Returns `true` if a word is found, else `false`. - */ - function hasUnicodeWord(string) { - return reHasUnicodeWord.test(string); - } - - /** - * Converts `iterator` to an array. - * - * @private - * @param {Object} iterator The iterator to convert. - * @returns {Array} Returns the converted array. - */ - function iteratorToArray(iterator) { - var data, - result = []; - - while (!(data = iterator.next()).done) { - result.push(data.value); - } - return result; - } - - /** - * Converts `map` to its key-value pairs. - * - * @private - * @param {Object} map The map to convert. - * @returns {Array} Returns the key-value pairs. - */ - function mapToArray(map) { - var index = -1, - result = Array(map.size); - - map.forEach(function(value, key) { - result[++index] = [key, value]; - }); - return result; - } - - /** - * Creates a unary function that invokes `func` with its argument transformed. - * - * @private - * @param {Function} func The function to wrap. - * @param {Function} transform The argument transform. - * @returns {Function} Returns the new function. - */ - function overArg(func, transform) { - return function(arg) { - return func(transform(arg)); - }; - } - - /** - * Replaces all `placeholder` elements in `array` with an internal placeholder - * and returns an array of their indexes. - * - * @private - * @param {Array} array The array to modify. - * @param {*} placeholder The placeholder to replace. - * @returns {Array} Returns the new array of placeholder indexes. - */ - function replaceHolders(array, placeholder) { - var index = -1, - length = array.length, - resIndex = 0, - result = []; - - while (++index < length) { - var value = array[index]; - if (value === placeholder || value === PLACEHOLDER) { - array[index] = PLACEHOLDER; - result[resIndex++] = index; - } - } - return result; - } - - /** - * Converts `set` to an array of its values. - * - * @private - * @param {Object} set The set to convert. - * @returns {Array} Returns the values. - */ - function setToArray(set) { - var index = -1, - result = Array(set.size); - - set.forEach(function(value) { - result[++index] = value; - }); - return result; - } - - /** - * Converts `set` to its value-value pairs. - * - * @private - * @param {Object} set The set to convert. - * @returns {Array} Returns the value-value pairs. - */ - function setToPairs(set) { - var index = -1, - result = Array(set.size); - - set.forEach(function(value) { - result[++index] = [value, value]; - }); - return result; - } - - /** - * A specialized version of `_.indexOf` which performs strict equality - * comparisons of values, i.e. `===`. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function strictIndexOf(array, value, fromIndex) { - var index = fromIndex - 1, - length = array.length; - - while (++index < length) { - if (array[index] === value) { - return index; - } - } - return -1; - } - - /** - * A specialized version of `_.lastIndexOf` which performs strict equality - * comparisons of values, i.e. `===`. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function strictLastIndexOf(array, value, fromIndex) { - var index = fromIndex + 1; - while (index--) { - if (array[index] === value) { - return index; - } - } - return index; - } - - /** - * Gets the number of symbols in `string`. - * - * @private - * @param {string} string The string to inspect. - * @returns {number} Returns the string size. - */ - function stringSize(string) { - return hasUnicode(string) - ? unicodeSize(string) - : asciiSize(string); - } - - /** - * Converts `string` to an array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the converted array. - */ - function stringToArray(string) { - return hasUnicode(string) - ? unicodeToArray(string) - : asciiToArray(string); - } - - /** - * Used by `_.unescape` to convert HTML entities to characters. - * - * @private - * @param {string} chr The matched character to unescape. - * @returns {string} Returns the unescaped character. - */ - var unescapeHtmlChar = basePropertyOf(htmlUnescapes); - - /** - * Gets the size of a Unicode `string`. - * - * @private - * @param {string} string The string inspect. - * @returns {number} Returns the string size. - */ - function unicodeSize(string) { - var result = reUnicode.lastIndex = 0; - while (reUnicode.test(string)) { - ++result; - } - return result; - } - - /** - * Converts a Unicode `string` to an array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the converted array. - */ - function unicodeToArray(string) { - return string.match(reUnicode) || []; - } - - /** - * Splits a Unicode `string` into an array of its words. - * - * @private - * @param {string} The string to inspect. - * @returns {Array} Returns the words of `string`. - */ - function unicodeWords(string) { - return string.match(reUnicodeWord) || []; - } - - /*--------------------------------------------------------------------------*/ - - /** - * Create a new pristine `lodash` function using the `context` object. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category Util - * @param {Object} [context=root] The context object. - * @returns {Function} Returns a new `lodash` function. - * @example - * - * _.mixin({ 'foo': _.constant('foo') }); - * - * var lodash = _.runInContext(); - * lodash.mixin({ 'bar': lodash.constant('bar') }); - * - * _.isFunction(_.foo); - * // => true - * _.isFunction(_.bar); - * // => false - * - * lodash.isFunction(lodash.foo); - * // => false - * lodash.isFunction(lodash.bar); - * // => true - * - * // Create a suped-up `defer` in Node.js. - * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer; - */ - var runInContext = (function runInContext(context) { - context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps)); - - /** Built-in constructor references. */ - var Array = context.Array, - Date = context.Date, - Error = context.Error, - Function = context.Function, - Math = context.Math, - Object = context.Object, - RegExp = context.RegExp, - String = context.String, - TypeError = context.TypeError; - - /** Used for built-in method references. */ - var arrayProto = Array.prototype, - funcProto = Function.prototype, - objectProto = Object.prototype; - - /** Used to detect overreaching core-js shims. */ - var coreJsData = context['__core-js_shared__']; - - /** Used to resolve the decompiled source of functions. */ - var funcToString = funcProto.toString; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** Used to generate unique IDs. */ - var idCounter = 0; - - /** Used to detect methods masquerading as native. */ - var maskSrcKey = (function() { - var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); - return uid ? ('Symbol(src)_1.' + uid) : ''; - }()); - - /** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ - var nativeObjectToString = objectProto.toString; - - /** Used to infer the `Object` constructor. */ - var objectCtorString = funcToString.call(Object); - - /** Used to restore the original `_` reference in `_.noConflict`. */ - var oldDash = root._; - - /** Used to detect if a method is native. */ - var reIsNative = RegExp('^' + - funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' - ); - - /** Built-in value references. */ - var Buffer = moduleExports ? context.Buffer : undefined, - Symbol = context.Symbol, - Uint8Array = context.Uint8Array, - allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined, - getPrototype = overArg(Object.getPrototypeOf, Object), - objectCreate = Object.create, - propertyIsEnumerable = objectProto.propertyIsEnumerable, - splice = arrayProto.splice, - spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined, - symIterator = Symbol ? Symbol.iterator : undefined, - symToStringTag = Symbol ? Symbol.toStringTag : undefined; - - var defineProperty = (function() { - try { - var func = getNative(Object, 'defineProperty'); - func({}, '', {}); - return func; - } catch (e) {} - }()); - - /** Mocked built-ins. */ - var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, - ctxNow = Date && Date.now !== root.Date.now && Date.now, - ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout; - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeCeil = Math.ceil, - nativeFloor = Math.floor, - nativeGetSymbols = Object.getOwnPropertySymbols, - nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined, - nativeIsFinite = context.isFinite, - nativeJoin = arrayProto.join, - nativeKeys = overArg(Object.keys, Object), - nativeMax = Math.max, - nativeMin = Math.min, - nativeNow = Date.now, - nativeParseInt = context.parseInt, - nativeRandom = Math.random, - nativeReverse = arrayProto.reverse; - - /* Built-in method references that are verified to be native. */ - var DataView = getNative(context, 'DataView'), - Map = getNative(context, 'Map'), - Promise = getNative(context, 'Promise'), - Set = getNative(context, 'Set'), - WeakMap = getNative(context, 'WeakMap'), - nativeCreate = getNative(Object, 'create'); - - /** Used to store function metadata. */ - var metaMap = WeakMap && new WeakMap; - - /** Used to lookup unminified function names. */ - var realNames = {}; - - /** Used to detect maps, sets, and weakmaps. */ - var dataViewCtorString = toSource(DataView), - mapCtorString = toSource(Map), - promiseCtorString = toSource(Promise), - setCtorString = toSource(Set), - weakMapCtorString = toSource(WeakMap); - - /** Used to convert symbols to primitives and strings. */ - var symbolProto = Symbol ? Symbol.prototype : undefined, - symbolValueOf = symbolProto ? symbolProto.valueOf : undefined, - symbolToString = symbolProto ? symbolProto.toString : undefined; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a `lodash` object which wraps `value` to enable implicit method - * chain sequences. Methods that operate on and return arrays, collections, - * and functions can be chained together. Methods that retrieve a single value - * or may return a primitive value will automatically end the chain sequence - * and return the unwrapped value. Otherwise, the value must be unwrapped - * with `_#value`. - * - * Explicit chain sequences, which must be unwrapped with `_#value`, may be - * enabled using `_.chain`. - * - * The execution of chained methods is lazy, that is, it's deferred until - * `_#value` is implicitly or explicitly called. - * - * Lazy evaluation allows several methods to support shortcut fusion. - * Shortcut fusion is an optimization to merge iteratee calls; this avoids - * the creation of intermediate arrays and can greatly reduce the number of - * iteratee executions. Sections of a chain sequence qualify for shortcut - * fusion if the section is applied to an array and iteratees accept only - * one argument. The heuristic for whether a section qualifies for shortcut - * fusion is subject to change. - * - * Chaining is supported in custom builds as long as the `_#value` method is - * directly or indirectly included in the build. - * - * In addition to lodash methods, wrappers have `Array` and `String` methods. - * - * The wrapper `Array` methods are: - * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` - * - * The wrapper `String` methods are: - * `replace` and `split` - * - * The wrapper methods that support shortcut fusion are: - * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, - * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, - * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` - * - * The chainable wrapper methods are: - * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, - * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, - * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, - * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, - * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, - * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, - * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, - * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, - * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, - * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, - * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, - * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, - * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, - * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, - * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, - * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, - * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, - * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, - * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, - * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, - * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, - * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, - * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, - * `zipObject`, `zipObjectDeep`, and `zipWith` - * - * The wrapper methods that are **not** chainable by default are: - * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, - * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, - * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, - * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, - * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, - * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, - * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, - * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, - * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, - * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, - * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, - * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, - * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, - * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, - * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, - * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, - * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, - * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, - * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, - * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, - * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, - * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, - * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, - * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, - * `upperFirst`, `value`, and `words` - * - * @name _ - * @constructor - * @category Seq - * @param {*} value The value to wrap in a `lodash` instance. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * function square(n) { - * return n * n; - * } - * - * var wrapped = _([1, 2, 3]); - * - * // Returns an unwrapped value. - * wrapped.reduce(_.add); - * // => 6 - * - * // Returns a wrapped value. - * var squares = wrapped.map(square); - * - * _.isArray(squares); - * // => false - * - * _.isArray(squares.value()); - * // => true - */ - function lodash(value) { - if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { - if (value instanceof LodashWrapper) { - return value; - } - if (hasOwnProperty.call(value, '__wrapped__')) { - return wrapperClone(value); - } - } - return new LodashWrapper(value); - } - - /** - * The base implementation of `_.create` without support for assigning - * properties to the created object. - * - * @private - * @param {Object} proto The object to inherit from. - * @returns {Object} Returns the new object. - */ - var baseCreate = (function() { - function object() {} - return function(proto) { - if (!isObject(proto)) { - return {}; - } - if (objectCreate) { - return objectCreate(proto); - } - object.prototype = proto; - var result = new object; - object.prototype = undefined; - return result; - }; - }()); - - /** - * The function whose prototype chain sequence wrappers inherit from. - * - * @private - */ - function baseLodash() { - // No operation performed. - } - - /** - * The base constructor for creating `lodash` wrapper objects. - * - * @private - * @param {*} value The value to wrap. - * @param {boolean} [chainAll] Enable explicit method chain sequences. - */ - function LodashWrapper(value, chainAll) { - this.__wrapped__ = value; - this.__actions__ = []; - this.__chain__ = !!chainAll; - this.__index__ = 0; - this.__values__ = undefined; - } - - /** - * By default, the template delimiters used by lodash are like those in - * embedded Ruby (ERB) as well as ES2015 template strings. Change the - * following template settings to use alternative delimiters. - * - * @static - * @memberOf _ - * @type {Object} - */ - lodash.templateSettings = { - - /** - * Used to detect `data` property values to be HTML-escaped. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - 'escape': reEscape, - - /** - * Used to detect code to be evaluated. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - 'evaluate': reEvaluate, - - /** - * Used to detect `data` property values to inject. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - 'interpolate': reInterpolate, - - /** - * Used to reference the data object in the template text. - * - * @memberOf _.templateSettings - * @type {string} - */ - 'variable': '', - - /** - * Used to import variables into the compiled template. - * - * @memberOf _.templateSettings - * @type {Object} - */ - 'imports': { - - /** - * A reference to the `lodash` function. - * - * @memberOf _.templateSettings.imports - * @type {Function} - */ - '_': lodash - } - }; - - // Ensure wrappers are instances of `baseLodash`. - lodash.prototype = baseLodash.prototype; - lodash.prototype.constructor = lodash; - - LodashWrapper.prototype = baseCreate(baseLodash.prototype); - LodashWrapper.prototype.constructor = LodashWrapper; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. - * - * @private - * @constructor - * @param {*} value The value to wrap. - */ - function LazyWrapper(value) { - this.__wrapped__ = value; - this.__actions__ = []; - this.__dir__ = 1; - this.__filtered__ = false; - this.__iteratees__ = []; - this.__takeCount__ = MAX_ARRAY_LENGTH; - this.__views__ = []; - } - - /** - * Creates a clone of the lazy wrapper object. - * - * @private - * @name clone - * @memberOf LazyWrapper - * @returns {Object} Returns the cloned `LazyWrapper` object. - */ - function lazyClone() { - var result = new LazyWrapper(this.__wrapped__); - result.__actions__ = copyArray(this.__actions__); - result.__dir__ = this.__dir__; - result.__filtered__ = this.__filtered__; - result.__iteratees__ = copyArray(this.__iteratees__); - result.__takeCount__ = this.__takeCount__; - result.__views__ = copyArray(this.__views__); - return result; - } - - /** - * Reverses the direction of lazy iteration. - * - * @private - * @name reverse - * @memberOf LazyWrapper - * @returns {Object} Returns the new reversed `LazyWrapper` object. - */ - function lazyReverse() { - if (this.__filtered__) { - var result = new LazyWrapper(this); - result.__dir__ = -1; - result.__filtered__ = true; - } else { - result = this.clone(); - result.__dir__ *= -1; - } - return result; - } - - /** - * Extracts the unwrapped value from its lazy wrapper. - * - * @private - * @name value - * @memberOf LazyWrapper - * @returns {*} Returns the unwrapped value. - */ - function lazyValue() { - var array = this.__wrapped__.value(), - dir = this.__dir__, - isArr = isArray(array), - isRight = dir < 0, - arrLength = isArr ? array.length : 0, - view = getView(0, arrLength, this.__views__), - start = view.start, - end = view.end, - length = end - start, - index = isRight ? end : (start - 1), - iteratees = this.__iteratees__, - iterLength = iteratees.length, - resIndex = 0, - takeCount = nativeMin(length, this.__takeCount__); - - if (!isArr || (!isRight && arrLength == length && takeCount == length)) { - return baseWrapperValue(array, this.__actions__); - } - var result = []; - - outer: - while (length-- && resIndex < takeCount) { - index += dir; - - var iterIndex = -1, - value = array[index]; - - while (++iterIndex < iterLength) { - var data = iteratees[iterIndex], - iteratee = data.iteratee, - type = data.type, - computed = iteratee(value); - - if (type == LAZY_MAP_FLAG) { - value = computed; - } else if (!computed) { - if (type == LAZY_FILTER_FLAG) { - continue outer; - } else { - break outer; - } - } - } - result[resIndex++] = value; - } - return result; - } - - // Ensure `LazyWrapper` is an instance of `baseLodash`. - LazyWrapper.prototype = baseCreate(baseLodash.prototype); - LazyWrapper.prototype.constructor = LazyWrapper; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a hash object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function Hash(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - - /** - * Removes all key-value entries from the hash. - * - * @private - * @name clear - * @memberOf Hash - */ - function hashClear() { - this.__data__ = nativeCreate ? nativeCreate(null) : {}; - this.size = 0; - } - - /** - * Removes `key` and its value from the hash. - * - * @private - * @name delete - * @memberOf Hash - * @param {Object} hash The hash to modify. - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function hashDelete(key) { - var result = this.has(key) && delete this.__data__[key]; - this.size -= result ? 1 : 0; - return result; - } - - /** - * Gets the hash value for `key`. - * - * @private - * @name get - * @memberOf Hash - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function hashGet(key) { - var data = this.__data__; - if (nativeCreate) { - var result = data[key]; - return result === HASH_UNDEFINED ? undefined : result; - } - return hasOwnProperty.call(data, key) ? data[key] : undefined; - } - - /** - * Checks if a hash value for `key` exists. - * - * @private - * @name has - * @memberOf Hash - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function hashHas(key) { - var data = this.__data__; - return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); - } - - /** - * Sets the hash `key` to `value`. - * - * @private - * @name set - * @memberOf Hash - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the hash instance. - */ - function hashSet(key, value) { - var data = this.__data__; - this.size += this.has(key) ? 0 : 1; - data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; - return this; - } - - // Add methods to `Hash`. - Hash.prototype.clear = hashClear; - Hash.prototype['delete'] = hashDelete; - Hash.prototype.get = hashGet; - Hash.prototype.has = hashHas; - Hash.prototype.set = hashSet; - - /*------------------------------------------------------------------------*/ - - /** - * Creates an list cache object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function ListCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - - /** - * Removes all key-value entries from the list cache. - * - * @private - * @name clear - * @memberOf ListCache - */ - function listCacheClear() { - this.__data__ = []; - this.size = 0; - } - - /** - * Removes `key` and its value from the list cache. - * - * @private - * @name delete - * @memberOf ListCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function listCacheDelete(key) { - var data = this.__data__, - index = assocIndexOf(data, key); - - if (index < 0) { - return false; - } - var lastIndex = data.length - 1; - if (index == lastIndex) { - data.pop(); - } else { - splice.call(data, index, 1); - } - --this.size; - return true; - } - - /** - * Gets the list cache value for `key`. - * - * @private - * @name get - * @memberOf ListCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function listCacheGet(key) { - var data = this.__data__, - index = assocIndexOf(data, key); - - return index < 0 ? undefined : data[index][1]; - } - - /** - * Checks if a list cache value for `key` exists. - * - * @private - * @name has - * @memberOf ListCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function listCacheHas(key) { - return assocIndexOf(this.__data__, key) > -1; - } - - /** - * Sets the list cache `key` to `value`. - * - * @private - * @name set - * @memberOf ListCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the list cache instance. - */ - function listCacheSet(key, value) { - var data = this.__data__, - index = assocIndexOf(data, key); - - if (index < 0) { - ++this.size; - data.push([key, value]); - } else { - data[index][1] = value; - } - return this; - } - - // Add methods to `ListCache`. - ListCache.prototype.clear = listCacheClear; - ListCache.prototype['delete'] = listCacheDelete; - ListCache.prototype.get = listCacheGet; - ListCache.prototype.has = listCacheHas; - ListCache.prototype.set = listCacheSet; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a map cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function MapCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - - /** - * Removes all key-value entries from the map. - * - * @private - * @name clear - * @memberOf MapCache - */ - function mapCacheClear() { - this.size = 0; - this.__data__ = { - 'hash': new Hash, - 'map': new (Map || ListCache), - 'string': new Hash - }; - } - - /** - * Removes `key` and its value from the map. - * - * @private - * @name delete - * @memberOf MapCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function mapCacheDelete(key) { - var result = getMapData(this, key)['delete'](key); - this.size -= result ? 1 : 0; - return result; - } - - /** - * Gets the map value for `key`. - * - * @private - * @name get - * @memberOf MapCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function mapCacheGet(key) { - return getMapData(this, key).get(key); - } - - /** - * Checks if a map value for `key` exists. - * - * @private - * @name has - * @memberOf MapCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function mapCacheHas(key) { - return getMapData(this, key).has(key); - } - - /** - * Sets the map `key` to `value`. - * - * @private - * @name set - * @memberOf MapCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the map cache instance. - */ - function mapCacheSet(key, value) { - var data = getMapData(this, key), - size = data.size; - - data.set(key, value); - this.size += data.size == size ? 0 : 1; - return this; - } - - // Add methods to `MapCache`. - MapCache.prototype.clear = mapCacheClear; - MapCache.prototype['delete'] = mapCacheDelete; - MapCache.prototype.get = mapCacheGet; - MapCache.prototype.has = mapCacheHas; - MapCache.prototype.set = mapCacheSet; - - /*------------------------------------------------------------------------*/ - - /** - * - * Creates an array cache object to store unique values. - * - * @private - * @constructor - * @param {Array} [values] The values to cache. - */ - function SetCache(values) { - var index = -1, - length = values == null ? 0 : values.length; - - this.__data__ = new MapCache; - while (++index < length) { - this.add(values[index]); - } - } - - /** - * Adds `value` to the array cache. - * - * @private - * @name add - * @memberOf SetCache - * @alias push - * @param {*} value The value to cache. - * @returns {Object} Returns the cache instance. - */ - function setCacheAdd(value) { - this.__data__.set(value, HASH_UNDEFINED); - return this; - } - - /** - * Checks if `value` is in the array cache. - * - * @private - * @name has - * @memberOf SetCache - * @param {*} value The value to search for. - * @returns {number} Returns `true` if `value` is found, else `false`. - */ - function setCacheHas(value) { - return this.__data__.has(value); - } - - // Add methods to `SetCache`. - SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; - SetCache.prototype.has = setCacheHas; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a stack cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function Stack(entries) { - var data = this.__data__ = new ListCache(entries); - this.size = data.size; - } - - /** - * Removes all key-value entries from the stack. - * - * @private - * @name clear - * @memberOf Stack - */ - function stackClear() { - this.__data__ = new ListCache; - this.size = 0; - } - - /** - * Removes `key` and its value from the stack. - * - * @private - * @name delete - * @memberOf Stack - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function stackDelete(key) { - var data = this.__data__, - result = data['delete'](key); - - this.size = data.size; - return result; - } - - /** - * Gets the stack value for `key`. - * - * @private - * @name get - * @memberOf Stack - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function stackGet(key) { - return this.__data__.get(key); - } - - /** - * Checks if a stack value for `key` exists. - * - * @private - * @name has - * @memberOf Stack - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function stackHas(key) { - return this.__data__.has(key); - } - - /** - * Sets the stack `key` to `value`. - * - * @private - * @name set - * @memberOf Stack - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the stack cache instance. - */ - function stackSet(key, value) { - var data = this.__data__; - if (data instanceof ListCache) { - var pairs = data.__data__; - if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { - pairs.push([key, value]); - this.size = ++data.size; - return this; - } - data = this.__data__ = new MapCache(pairs); - } - data.set(key, value); - this.size = data.size; - return this; - } - - // Add methods to `Stack`. - Stack.prototype.clear = stackClear; - Stack.prototype['delete'] = stackDelete; - Stack.prototype.get = stackGet; - Stack.prototype.has = stackHas; - Stack.prototype.set = stackSet; - - /*------------------------------------------------------------------------*/ - - /** - * Creates an array of the enumerable property names of the array-like `value`. - * - * @private - * @param {*} value The value to query. - * @param {boolean} inherited Specify returning inherited property names. - * @returns {Array} Returns the array of property names. - */ - function arrayLikeKeys(value, inherited) { - var isArr = isArray(value), - isArg = !isArr && isArguments(value), - isBuff = !isArr && !isArg && isBuffer(value), - isType = !isArr && !isArg && !isBuff && isTypedArray(value), - skipIndexes = isArr || isArg || isBuff || isType, - result = skipIndexes ? baseTimes(value.length, String) : [], - length = result.length; - - for (var key in value) { - if ((inherited || hasOwnProperty.call(value, key)) && - !(skipIndexes && ( - // Safari 9 has enumerable `arguments.length` in strict mode. - key == 'length' || - // Node.js 0.10 has enumerable non-index properties on buffers. - (isBuff && (key == 'offset' || key == 'parent')) || - // PhantomJS 2 has enumerable non-index properties on typed arrays. - (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || - // Skip index properties. - isIndex(key, length) - ))) { - result.push(key); - } - } - return result; - } - - /** - * A specialized version of `_.sample` for arrays. - * - * @private - * @param {Array} array The array to sample. - * @returns {*} Returns the random element. - */ - function arraySample(array) { - var length = array.length; - return length ? array[baseRandom(0, length - 1)] : undefined; - } - - /** - * A specialized version of `_.sampleSize` for arrays. - * - * @private - * @param {Array} array The array to sample. - * @param {number} n The number of elements to sample. - * @returns {Array} Returns the random elements. - */ - function arraySampleSize(array, n) { - return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length)); - } - - /** - * A specialized version of `_.shuffle` for arrays. - * - * @private - * @param {Array} array The array to shuffle. - * @returns {Array} Returns the new shuffled array. - */ - function arrayShuffle(array) { - return shuffleSelf(copyArray(array)); - } - - /** - * This function is like `assignValue` except that it doesn't assign - * `undefined` values. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ - function assignMergeValue(object, key, value) { - if ((value !== undefined && !eq(object[key], value)) || - (value === undefined && !(key in object))) { - baseAssignValue(object, key, value); - } - } - - /** - * Assigns `value` to `key` of `object` if the existing value is not equivalent - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ - function assignValue(object, key, value) { - var objValue = object[key]; - if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || - (value === undefined && !(key in object))) { - baseAssignValue(object, key, value); - } - } - - /** - * Gets the index at which the `key` is found in `array` of key-value pairs. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} key The key to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function assocIndexOf(array, key) { - var length = array.length; - while (length--) { - if (eq(array[length][0], key)) { - return length; - } - } - return -1; - } - - /** - * Aggregates elements of `collection` on `accumulator` with keys transformed - * by `iteratee` and values set by `setter`. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} setter The function to set `accumulator` values. - * @param {Function} iteratee The iteratee to transform keys. - * @param {Object} accumulator The initial aggregated object. - * @returns {Function} Returns `accumulator`. - */ - function baseAggregator(collection, setter, iteratee, accumulator) { - baseEach(collection, function(value, key, collection) { - setter(accumulator, value, iteratee(value), collection); - }); - return accumulator; - } - - /** - * The base implementation of `_.assign` without support for multiple sources - * or `customizer` functions. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @returns {Object} Returns `object`. - */ - function baseAssign(object, source) { - return object && copyObject(source, keys(source), object); - } - - /** - * The base implementation of `_.assignIn` without support for multiple sources - * or `customizer` functions. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @returns {Object} Returns `object`. - */ - function baseAssignIn(object, source) { - return object && copyObject(source, keysIn(source), object); - } - - /** - * The base implementation of `assignValue` and `assignMergeValue` without - * value checks. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ - function baseAssignValue(object, key, value) { - if (key == '__proto__' && defineProperty) { - defineProperty(object, key, { - 'configurable': true, - 'enumerable': true, - 'value': value, - 'writable': true - }); - } else { - object[key] = value; - } - } - - /** - * The base implementation of `_.at` without support for individual paths. - * - * @private - * @param {Object} object The object to iterate over. - * @param {string[]} paths The property paths to pick. - * @returns {Array} Returns the picked elements. - */ - function baseAt(object, paths) { - var index = -1, - length = paths.length, - result = Array(length), - skip = object == null; - - while (++index < length) { - result[index] = skip ? undefined : get(object, paths[index]); - } - return result; - } - - /** - * The base implementation of `_.clamp` which doesn't coerce arguments. - * - * @private - * @param {number} number The number to clamp. - * @param {number} [lower] The lower bound. - * @param {number} upper The upper bound. - * @returns {number} Returns the clamped number. - */ - function baseClamp(number, lower, upper) { - if (number === number) { - if (upper !== undefined) { - number = number <= upper ? number : upper; - } - if (lower !== undefined) { - number = number >= lower ? number : lower; - } - } - return number; - } - - /** - * The base implementation of `_.clone` and `_.cloneDeep` which tracks - * traversed objects. - * - * @private - * @param {*} value The value to clone. - * @param {boolean} bitmask The bitmask flags. - * 1 - Deep clone - * 2 - Flatten inherited properties - * 4 - Clone symbols - * @param {Function} [customizer] The function to customize cloning. - * @param {string} [key] The key of `value`. - * @param {Object} [object] The parent object of `value`. - * @param {Object} [stack] Tracks traversed objects and their clone counterparts. - * @returns {*} Returns the cloned value. - */ - function baseClone(value, bitmask, customizer, key, object, stack) { - var result, - isDeep = bitmask & CLONE_DEEP_FLAG, - isFlat = bitmask & CLONE_FLAT_FLAG, - isFull = bitmask & CLONE_SYMBOLS_FLAG; - - if (customizer) { - result = object ? customizer(value, key, object, stack) : customizer(value); - } - if (result !== undefined) { - return result; - } - if (!isObject(value)) { - return value; - } - var isArr = isArray(value); - if (isArr) { - result = initCloneArray(value); - if (!isDeep) { - return copyArray(value, result); - } - } else { - var tag = getTag(value), - isFunc = tag == funcTag || tag == genTag; - - if (isBuffer(value)) { - return cloneBuffer(value, isDeep); - } - if (tag == objectTag || tag == argsTag || (isFunc && !object)) { - result = (isFlat || isFunc) ? {} : initCloneObject(value); - if (!isDeep) { - return isFlat - ? copySymbolsIn(value, baseAssignIn(result, value)) - : copySymbols(value, baseAssign(result, value)); - } - } else { - if (!cloneableTags[tag]) { - return object ? value : {}; - } - result = initCloneByTag(value, tag, baseClone, isDeep); - } - } - // Check for circular references and return its corresponding clone. - stack || (stack = new Stack); - var stacked = stack.get(value); - if (stacked) { - return stacked; - } - stack.set(value, result); - - var keysFunc = isFull - ? (isFlat ? getAllKeysIn : getAllKeys) - : (isFlat ? keysIn : keys); - - var props = isArr ? undefined : keysFunc(value); - arrayEach(props || value, function(subValue, key) { - if (props) { - key = subValue; - subValue = value[key]; - } - // Recursively populate clone (susceptible to call stack limits). - assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack)); - }); - return result; - } - - /** - * The base implementation of `_.conforms` which doesn't clone `source`. - * - * @private - * @param {Object} source The object of property predicates to conform to. - * @returns {Function} Returns the new spec function. - */ - function baseConforms(source) { - var props = keys(source); - return function(object) { - return baseConformsTo(object, source, props); - }; - } - - /** - * The base implementation of `_.conformsTo` which accepts `props` to check. - * - * @private - * @param {Object} object The object to inspect. - * @param {Object} source The object of property predicates to conform to. - * @returns {boolean} Returns `true` if `object` conforms, else `false`. - */ - function baseConformsTo(object, source, props) { - var length = props.length; - if (object == null) { - return !length; - } - object = Object(object); - while (length--) { - var key = props[length], - predicate = source[key], - value = object[key]; - - if ((value === undefined && !(key in object)) || !predicate(value)) { - return false; - } - } - return true; - } - - /** - * The base implementation of `_.delay` and `_.defer` which accepts `args` - * to provide to `func`. - * - * @private - * @param {Function} func The function to delay. - * @param {number} wait The number of milliseconds to delay invocation. - * @param {Array} args The arguments to provide to `func`. - * @returns {number|Object} Returns the timer id or timeout object. - */ - function baseDelay(func, wait, args) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - return setTimeout(function() { func.apply(undefined, args); }, wait); - } - - /** - * The base implementation of methods like `_.difference` without support - * for excluding multiple arrays or iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Array} values The values to exclude. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of filtered values. - */ - function baseDifference(array, values, iteratee, comparator) { - var index = -1, - includes = arrayIncludes, - isCommon = true, - length = array.length, - result = [], - valuesLength = values.length; - - if (!length) { - return result; - } - if (iteratee) { - values = arrayMap(values, baseUnary(iteratee)); - } - if (comparator) { - includes = arrayIncludesWith; - isCommon = false; - } - else if (values.length >= LARGE_ARRAY_SIZE) { - includes = cacheHas; - isCommon = false; - values = new SetCache(values); - } - outer: - while (++index < length) { - var value = array[index], - computed = iteratee == null ? value : iteratee(value); - - value = (comparator || value !== 0) ? value : 0; - if (isCommon && computed === computed) { - var valuesIndex = valuesLength; - while (valuesIndex--) { - if (values[valuesIndex] === computed) { - continue outer; - } - } - result.push(value); - } - else if (!includes(values, computed, comparator)) { - result.push(value); - } - } - return result; - } - - /** - * The base implementation of `_.forEach` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - */ - var baseEach = createBaseEach(baseForOwn); - - /** - * The base implementation of `_.forEachRight` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - */ - var baseEachRight = createBaseEach(baseForOwnRight, true); - - /** - * The base implementation of `_.every` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false` - */ - function baseEvery(collection, predicate) { - var result = true; - baseEach(collection, function(value, index, collection) { - result = !!predicate(value, index, collection); - return result; - }); - return result; - } - - /** - * The base implementation of methods like `_.max` and `_.min` which accepts a - * `comparator` to determine the extremum value. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The iteratee invoked per iteration. - * @param {Function} comparator The comparator used to compare values. - * @returns {*} Returns the extremum value. - */ - function baseExtremum(array, iteratee, comparator) { - var index = -1, - length = array.length; - - while (++index < length) { - var value = array[index], - current = iteratee(value); - - if (current != null && (computed === undefined - ? (current === current && !isSymbol(current)) - : comparator(current, computed) - )) { - var computed = current, - result = value; - } - } - return result; - } - - /** - * The base implementation of `_.fill` without an iteratee call guard. - * - * @private - * @param {Array} array The array to fill. - * @param {*} value The value to fill `array` with. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns `array`. - */ - function baseFill(array, value, start, end) { - var length = array.length; - - start = toInteger(start); - if (start < 0) { - start = -start > length ? 0 : (length + start); - } - end = (end === undefined || end > length) ? length : toInteger(end); - if (end < 0) { - end += length; - } - end = start > end ? 0 : toLength(end); - while (start < end) { - array[start++] = value; - } - return array; - } - - /** - * The base implementation of `_.filter` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - */ - function baseFilter(collection, predicate) { - var result = []; - baseEach(collection, function(value, index, collection) { - if (predicate(value, index, collection)) { - result.push(value); - } - }); - return result; - } - - /** - * The base implementation of `_.flatten` with support for restricting flattening. - * - * @private - * @param {Array} array The array to flatten. - * @param {number} depth The maximum recursion depth. - * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. - * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. - * @param {Array} [result=[]] The initial result value. - * @returns {Array} Returns the new flattened array. - */ - function baseFlatten(array, depth, predicate, isStrict, result) { - var index = -1, - length = array.length; - - predicate || (predicate = isFlattenable); - result || (result = []); - - while (++index < length) { - var value = array[index]; - if (depth > 0 && predicate(value)) { - if (depth > 1) { - // Recursively flatten arrays (susceptible to call stack limits). - baseFlatten(value, depth - 1, predicate, isStrict, result); - } else { - arrayPush(result, value); - } - } else if (!isStrict) { - result[result.length] = value; - } - } - return result; - } - - /** - * The base implementation of `baseForOwn` which iterates over `object` - * properties returned by `keysFunc` and invokes `iteratee` for each property. - * Iteratee functions may exit iteration early by explicitly returning `false`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ - var baseFor = createBaseFor(); - - /** - * This function is like `baseFor` except that it iterates over properties - * in the opposite order. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ - var baseForRight = createBaseFor(true); - - /** - * The base implementation of `_.forOwn` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ - function baseForOwn(object, iteratee) { - return object && baseFor(object, iteratee, keys); - } - - /** - * The base implementation of `_.forOwnRight` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ - function baseForOwnRight(object, iteratee) { - return object && baseForRight(object, iteratee, keys); - } - - /** - * The base implementation of `_.functions` which creates an array of - * `object` function property names filtered from `props`. - * - * @private - * @param {Object} object The object to inspect. - * @param {Array} props The property names to filter. - * @returns {Array} Returns the function names. - */ - function baseFunctions(object, props) { - return arrayFilter(props, function(key) { - return isFunction(object[key]); - }); - } - - /** - * The base implementation of `_.get` without support for default values. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to get. - * @returns {*} Returns the resolved value. - */ - function baseGet(object, path) { - path = castPath(path, object); - - var index = 0, - length = path.length; - - while (object != null && index < length) { - object = object[toKey(path[index++])]; - } - return (index && index == length) ? object : undefined; - } - - /** - * The base implementation of `getAllKeys` and `getAllKeysIn` which uses - * `keysFunc` and `symbolsFunc` to get the enumerable property names and - * symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Function} keysFunc The function to get the keys of `object`. - * @param {Function} symbolsFunc The function to get the symbols of `object`. - * @returns {Array} Returns the array of property names and symbols. - */ - function baseGetAllKeys(object, keysFunc, symbolsFunc) { - var result = keysFunc(object); - return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); - } - - /** - * The base implementation of `getTag` without fallbacks for buggy environments. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ - function baseGetTag(value) { - if (value == null) { - return value === undefined ? undefinedTag : nullTag; - } - return (symToStringTag && symToStringTag in Object(value)) - ? getRawTag(value) - : objectToString(value); - } - - /** - * The base implementation of `_.gt` which doesn't coerce arguments. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is greater than `other`, - * else `false`. - */ - function baseGt(value, other) { - return value > other; - } - - /** - * The base implementation of `_.has` without support for deep paths. - * - * @private - * @param {Object} [object] The object to query. - * @param {Array|string} key The key to check. - * @returns {boolean} Returns `true` if `key` exists, else `false`. - */ - function baseHas(object, key) { - return object != null && hasOwnProperty.call(object, key); - } - - /** - * The base implementation of `_.hasIn` without support for deep paths. - * - * @private - * @param {Object} [object] The object to query. - * @param {Array|string} key The key to check. - * @returns {boolean} Returns `true` if `key` exists, else `false`. - */ - function baseHasIn(object, key) { - return object != null && key in Object(object); - } - - /** - * The base implementation of `_.inRange` which doesn't coerce arguments. - * - * @private - * @param {number} number The number to check. - * @param {number} start The start of the range. - * @param {number} end The end of the range. - * @returns {boolean} Returns `true` if `number` is in the range, else `false`. - */ - function baseInRange(number, start, end) { - return number >= nativeMin(start, end) && number < nativeMax(start, end); - } - - /** - * The base implementation of methods like `_.intersection`, without support - * for iteratee shorthands, that accepts an array of arrays to inspect. - * - * @private - * @param {Array} arrays The arrays to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of shared values. - */ - function baseIntersection(arrays, iteratee, comparator) { - var includes = comparator ? arrayIncludesWith : arrayIncludes, - length = arrays[0].length, - othLength = arrays.length, - othIndex = othLength, - caches = Array(othLength), - maxLength = Infinity, - result = []; - - while (othIndex--) { - var array = arrays[othIndex]; - if (othIndex && iteratee) { - array = arrayMap(array, baseUnary(iteratee)); - } - maxLength = nativeMin(array.length, maxLength); - caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120)) - ? new SetCache(othIndex && array) - : undefined; - } - array = arrays[0]; - - var index = -1, - seen = caches[0]; - - outer: - while (++index < length && result.length < maxLength) { - var value = array[index], - computed = iteratee ? iteratee(value) : value; - - value = (comparator || value !== 0) ? value : 0; - if (!(seen - ? cacheHas(seen, computed) - : includes(result, computed, comparator) - )) { - othIndex = othLength; - while (--othIndex) { - var cache = caches[othIndex]; - if (!(cache - ? cacheHas(cache, computed) - : includes(arrays[othIndex], computed, comparator)) - ) { - continue outer; - } - } - if (seen) { - seen.push(computed); - } - result.push(value); - } - } - return result; - } - - /** - * The base implementation of `_.invert` and `_.invertBy` which inverts - * `object` with values transformed by `iteratee` and set by `setter`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} setter The function to set `accumulator` values. - * @param {Function} iteratee The iteratee to transform values. - * @param {Object} accumulator The initial inverted object. - * @returns {Function} Returns `accumulator`. - */ - function baseInverter(object, setter, iteratee, accumulator) { - baseForOwn(object, function(value, key, object) { - setter(accumulator, iteratee(value), key, object); - }); - return accumulator; - } - - /** - * The base implementation of `_.invoke` without support for individual - * method arguments. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path of the method to invoke. - * @param {Array} args The arguments to invoke the method with. - * @returns {*} Returns the result of the invoked method. - */ - function baseInvoke(object, path, args) { - path = castPath(path, object); - object = parent(object, path); - var func = object == null ? object : object[toKey(last(path))]; - return func == null ? undefined : apply(func, object, args); - } - - /** - * The base implementation of `_.isArguments`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - */ - function baseIsArguments(value) { - return isObjectLike(value) && baseGetTag(value) == argsTag; - } - - /** - * The base implementation of `_.isArrayBuffer` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. - */ - function baseIsArrayBuffer(value) { - return isObjectLike(value) && baseGetTag(value) == arrayBufferTag; - } - - /** - * The base implementation of `_.isDate` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a date object, else `false`. - */ - function baseIsDate(value) { - return isObjectLike(value) && baseGetTag(value) == dateTag; - } - - /** - * The base implementation of `_.isEqual` which supports partial comparisons - * and tracks traversed objects. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @param {boolean} bitmask The bitmask flags. - * 1 - Unordered comparison - * 2 - Partial comparison - * @param {Function} [customizer] The function to customize comparisons. - * @param {Object} [stack] Tracks traversed `value` and `other` objects. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - */ - function baseIsEqual(value, other, bitmask, customizer, stack) { - if (value === other) { - return true; - } - if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { - return value !== value && other !== other; - } - return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); - } - - /** - * A specialized version of `baseIsEqual` for arrays and objects which performs - * deep comparisons and tracks traversed objects enabling objects with circular - * references to be compared. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} [stack] Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { - var objIsArr = isArray(object), - othIsArr = isArray(other), - objTag = objIsArr ? arrayTag : getTag(object), - othTag = othIsArr ? arrayTag : getTag(other); - - objTag = objTag == argsTag ? objectTag : objTag; - othTag = othTag == argsTag ? objectTag : othTag; - - var objIsObj = objTag == objectTag, - othIsObj = othTag == objectTag, - isSameTag = objTag == othTag; - - if (isSameTag && isBuffer(object)) { - if (!isBuffer(other)) { - return false; - } - objIsArr = true; - objIsObj = false; - } - if (isSameTag && !objIsObj) { - stack || (stack = new Stack); - return (objIsArr || isTypedArray(object)) - ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) - : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); - } - if (!(bitmask & COMPARE_PARTIAL_FLAG)) { - var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), - othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); - - if (objIsWrapped || othIsWrapped) { - var objUnwrapped = objIsWrapped ? object.value() : object, - othUnwrapped = othIsWrapped ? other.value() : other; - - stack || (stack = new Stack); - return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); - } - } - if (!isSameTag) { - return false; - } - stack || (stack = new Stack); - return equalObjects(object, other, bitmask, customizer, equalFunc, stack); - } - - /** - * The base implementation of `_.isMap` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a map, else `false`. - */ - function baseIsMap(value) { - return isObjectLike(value) && getTag(value) == mapTag; - } - - /** - * The base implementation of `_.isMatch` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to inspect. - * @param {Object} source The object of property values to match. - * @param {Array} matchData The property names, values, and compare flags to match. - * @param {Function} [customizer] The function to customize comparisons. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - */ - function baseIsMatch(object, source, matchData, customizer) { - var index = matchData.length, - length = index, - noCustomizer = !customizer; - - if (object == null) { - return !length; - } - object = Object(object); - while (index--) { - var data = matchData[index]; - if ((noCustomizer && data[2]) - ? data[1] !== object[data[0]] - : !(data[0] in object) - ) { - return false; - } - } - while (++index < length) { - data = matchData[index]; - var key = data[0], - objValue = object[key], - srcValue = data[1]; - - if (noCustomizer && data[2]) { - if (objValue === undefined && !(key in object)) { - return false; - } - } else { - var stack = new Stack; - if (customizer) { - var result = customizer(objValue, srcValue, key, object, source, stack); - } - if (!(result === undefined - ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) - : result - )) { - return false; - } - } - } - return true; - } - - /** - * The base implementation of `_.isNative` without bad shim checks. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, - * else `false`. - */ - function baseIsNative(value) { - if (!isObject(value) || isMasked(value)) { - return false; - } - var pattern = isFunction(value) ? reIsNative : reIsHostCtor; - return pattern.test(toSource(value)); - } - - /** - * The base implementation of `_.isRegExp` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. - */ - function baseIsRegExp(value) { - return isObjectLike(value) && baseGetTag(value) == regexpTag; - } - - /** - * The base implementation of `_.isSet` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a set, else `false`. - */ - function baseIsSet(value) { - return isObjectLike(value) && getTag(value) == setTag; - } - - /** - * The base implementation of `_.isTypedArray` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - */ - function baseIsTypedArray(value) { - return isObjectLike(value) && - isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; - } - - /** - * The base implementation of `_.iteratee`. - * - * @private - * @param {*} [value=_.identity] The value to convert to an iteratee. - * @returns {Function} Returns the iteratee. - */ - function baseIteratee(value) { - // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. - // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. - if (typeof value == 'function') { - return value; - } - if (value == null) { - return identity; - } - if (typeof value == 'object') { - return isArray(value) - ? baseMatchesProperty(value[0], value[1]) - : baseMatches(value); - } - return property(value); - } - - /** - * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function baseKeys(object) { - if (!isPrototype(object)) { - return nativeKeys(object); - } - var result = []; - for (var key in Object(object)) { - if (hasOwnProperty.call(object, key) && key != 'constructor') { - result.push(key); - } - } - return result; - } - - /** - * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function baseKeysIn(object) { - if (!isObject(object)) { - return nativeKeysIn(object); - } - var isProto = isPrototype(object), - result = []; - - for (var key in object) { - if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { - result.push(key); - } - } - return result; - } - - /** - * The base implementation of `_.lt` which doesn't coerce arguments. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is less than `other`, - * else `false`. - */ - function baseLt(value, other) { - return value < other; - } - - /** - * The base implementation of `_.map` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ - function baseMap(collection, iteratee) { - var index = -1, - result = isArrayLike(collection) ? Array(collection.length) : []; - - baseEach(collection, function(value, key, collection) { - result[++index] = iteratee(value, key, collection); - }); - return result; - } - - /** - * The base implementation of `_.matches` which doesn't clone `source`. - * - * @private - * @param {Object} source The object of property values to match. - * @returns {Function} Returns the new spec function. - */ - function baseMatches(source) { - var matchData = getMatchData(source); - if (matchData.length == 1 && matchData[0][2]) { - return matchesStrictComparable(matchData[0][0], matchData[0][1]); - } - return function(object) { - return object === source || baseIsMatch(object, source, matchData); - }; - } - - /** - * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. - * - * @private - * @param {string} path The path of the property to get. - * @param {*} srcValue The value to match. - * @returns {Function} Returns the new spec function. - */ - function baseMatchesProperty(path, srcValue) { - if (isKey(path) && isStrictComparable(srcValue)) { - return matchesStrictComparable(toKey(path), srcValue); - } - return function(object) { - var objValue = get(object, path); - return (objValue === undefined && objValue === srcValue) - ? hasIn(object, path) - : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); - }; - } - - /** - * The base implementation of `_.merge` without support for multiple sources. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @param {number} srcIndex The index of `source`. - * @param {Function} [customizer] The function to customize merged values. - * @param {Object} [stack] Tracks traversed source values and their merged - * counterparts. - */ - function baseMerge(object, source, srcIndex, customizer, stack) { - if (object === source) { - return; - } - baseFor(source, function(srcValue, key) { - if (isObject(srcValue)) { - stack || (stack = new Stack); - baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); - } - else { - var newValue = customizer - ? customizer(object[key], srcValue, (key + ''), object, source, stack) - : undefined; - - if (newValue === undefined) { - newValue = srcValue; - } - assignMergeValue(object, key, newValue); - } - }, keysIn); - } - - /** - * A specialized version of `baseMerge` for arrays and objects which performs - * deep merges and tracks traversed objects enabling objects with circular - * references to be merged. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @param {string} key The key of the value to merge. - * @param {number} srcIndex The index of `source`. - * @param {Function} mergeFunc The function to merge values. - * @param {Function} [customizer] The function to customize assigned values. - * @param {Object} [stack] Tracks traversed source values and their merged - * counterparts. - */ - function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { - var objValue = object[key], - srcValue = source[key], - stacked = stack.get(srcValue); - - if (stacked) { - assignMergeValue(object, key, stacked); - return; - } - var newValue = customizer - ? customizer(objValue, srcValue, (key + ''), object, source, stack) - : undefined; - - var isCommon = newValue === undefined; - - if (isCommon) { - var isArr = isArray(srcValue), - isBuff = !isArr && isBuffer(srcValue), - isTyped = !isArr && !isBuff && isTypedArray(srcValue); - - newValue = srcValue; - if (isArr || isBuff || isTyped) { - if (isArray(objValue)) { - newValue = objValue; - } - else if (isArrayLikeObject(objValue)) { - newValue = copyArray(objValue); - } - else if (isBuff) { - isCommon = false; - newValue = cloneBuffer(srcValue, true); - } - else if (isTyped) { - isCommon = false; - newValue = cloneTypedArray(srcValue, true); - } - else { - newValue = []; - } - } - else if (isPlainObject(srcValue) || isArguments(srcValue)) { - newValue = objValue; - if (isArguments(objValue)) { - newValue = toPlainObject(objValue); - } - else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) { - newValue = initCloneObject(srcValue); - } - } - else { - isCommon = false; - } - } - if (isCommon) { - // Recursively merge objects and arrays (susceptible to call stack limits). - stack.set(srcValue, newValue); - mergeFunc(newValue, srcValue, srcIndex, customizer, stack); - stack['delete'](srcValue); - } - assignMergeValue(object, key, newValue); - } - - /** - * The base implementation of `_.nth` which doesn't coerce arguments. - * - * @private - * @param {Array} array The array to query. - * @param {number} n The index of the element to return. - * @returns {*} Returns the nth element of `array`. - */ - function baseNth(array, n) { - var length = array.length; - if (!length) { - return; - } - n += n < 0 ? length : 0; - return isIndex(n, length) ? array[n] : undefined; - } - - /** - * The base implementation of `_.orderBy` without param guards. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by. - * @param {string[]} orders The sort orders of `iteratees`. - * @returns {Array} Returns the new sorted array. - */ - function baseOrderBy(collection, iteratees, orders) { - var index = -1; - iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(getIteratee())); - - var result = baseMap(collection, function(value, key, collection) { - var criteria = arrayMap(iteratees, function(iteratee) { - return iteratee(value); - }); - return { 'criteria': criteria, 'index': ++index, 'value': value }; - }); - - return baseSortBy(result, function(object, other) { - return compareMultiple(object, other, orders); - }); - } - - /** - * The base implementation of `_.pick` without support for individual - * property identifiers. - * - * @private - * @param {Object} object The source object. - * @param {string[]} paths The property paths to pick. - * @returns {Object} Returns the new object. - */ - function basePick(object, paths) { - return basePickBy(object, paths, function(value, path) { - return hasIn(object, path); - }); - } - - /** - * The base implementation of `_.pickBy` without support for iteratee shorthands. - * - * @private - * @param {Object} object The source object. - * @param {string[]} paths The property paths to pick. - * @param {Function} predicate The function invoked per property. - * @returns {Object} Returns the new object. - */ - function basePickBy(object, paths, predicate) { - var index = -1, - length = paths.length, - result = {}; - - while (++index < length) { - var path = paths[index], - value = baseGet(object, path); - - if (predicate(value, path)) { - baseSet(result, castPath(path, object), value); - } - } - return result; - } - - /** - * A specialized version of `baseProperty` which supports deep paths. - * - * @private - * @param {Array|string} path The path of the property to get. - * @returns {Function} Returns the new accessor function. - */ - function basePropertyDeep(path) { - return function(object) { - return baseGet(object, path); - }; - } - - /** - * The base implementation of `_.pullAllBy` without support for iteratee - * shorthands. - * - * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to remove. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns `array`. - */ - function basePullAll(array, values, iteratee, comparator) { - var indexOf = comparator ? baseIndexOfWith : baseIndexOf, - index = -1, - length = values.length, - seen = array; - - if (array === values) { - values = copyArray(values); - } - if (iteratee) { - seen = arrayMap(array, baseUnary(iteratee)); - } - while (++index < length) { - var fromIndex = 0, - value = values[index], - computed = iteratee ? iteratee(value) : value; - - while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) { - if (seen !== array) { - splice.call(seen, fromIndex, 1); - } - splice.call(array, fromIndex, 1); - } - } - return array; - } - - /** - * The base implementation of `_.pullAt` without support for individual - * indexes or capturing the removed elements. - * - * @private - * @param {Array} array The array to modify. - * @param {number[]} indexes The indexes of elements to remove. - * @returns {Array} Returns `array`. - */ - function basePullAt(array, indexes) { - var length = array ? indexes.length : 0, - lastIndex = length - 1; - - while (length--) { - var index = indexes[length]; - if (length == lastIndex || index !== previous) { - var previous = index; - if (isIndex(index)) { - splice.call(array, index, 1); - } else { - baseUnset(array, index); - } - } - } - return array; - } - - /** - * The base implementation of `_.random` without support for returning - * floating-point numbers. - * - * @private - * @param {number} lower The lower bound. - * @param {number} upper The upper bound. - * @returns {number} Returns the random number. - */ - function baseRandom(lower, upper) { - return lower + nativeFloor(nativeRandom() * (upper - lower + 1)); - } - - /** - * The base implementation of `_.range` and `_.rangeRight` which doesn't - * coerce arguments. - * - * @private - * @param {number} start The start of the range. - * @param {number} end The end of the range. - * @param {number} step The value to increment or decrement by. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Array} Returns the range of numbers. - */ - function baseRange(start, end, step, fromRight) { - var index = -1, - length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), - result = Array(length); - - while (length--) { - result[fromRight ? length : ++index] = start; - start += step; - } - return result; - } - - /** - * The base implementation of `_.repeat` which doesn't coerce arguments. - * - * @private - * @param {string} string The string to repeat. - * @param {number} n The number of times to repeat the string. - * @returns {string} Returns the repeated string. - */ - function baseRepeat(string, n) { - var result = ''; - if (!string || n < 1 || n > MAX_SAFE_INTEGER) { - return result; - } - // Leverage the exponentiation by squaring algorithm for a faster repeat. - // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details. - do { - if (n % 2) { - result += string; - } - n = nativeFloor(n / 2); - if (n) { - string += string; - } - } while (n); - - return result; - } - - /** - * The base implementation of `_.rest` which doesn't validate or coerce arguments. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @returns {Function} Returns the new function. - */ - function baseRest(func, start) { - return setToString(overRest(func, start, identity), func + ''); - } - - /** - * The base implementation of `_.sample`. - * - * @private - * @param {Array|Object} collection The collection to sample. - * @returns {*} Returns the random element. - */ - function baseSample(collection) { - return arraySample(values(collection)); - } - - /** - * The base implementation of `_.sampleSize` without param guards. - * - * @private - * @param {Array|Object} collection The collection to sample. - * @param {number} n The number of elements to sample. - * @returns {Array} Returns the random elements. - */ - function baseSampleSize(collection, n) { - var array = values(collection); - return shuffleSelf(array, baseClamp(n, 0, array.length)); - } - - /** - * The base implementation of `_.set`. - * - * @private - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {*} value The value to set. - * @param {Function} [customizer] The function to customize path creation. - * @returns {Object} Returns `object`. - */ - function baseSet(object, path, value, customizer) { - if (!isObject(object)) { - return object; - } - path = castPath(path, object); - - var index = -1, - length = path.length, - lastIndex = length - 1, - nested = object; - - while (nested != null && ++index < length) { - var key = toKey(path[index]), - newValue = value; - - if (index != lastIndex) { - var objValue = nested[key]; - newValue = customizer ? customizer(objValue, key, nested) : undefined; - if (newValue === undefined) { - newValue = isObject(objValue) - ? objValue - : (isIndex(path[index + 1]) ? [] : {}); - } - } - assignValue(nested, key, newValue); - nested = nested[key]; - } - return object; - } - - /** - * The base implementation of `setData` without support for hot loop shorting. - * - * @private - * @param {Function} func The function to associate metadata with. - * @param {*} data The metadata. - * @returns {Function} Returns `func`. - */ - var baseSetData = !metaMap ? identity : function(func, data) { - metaMap.set(func, data); - return func; - }; - - /** - * The base implementation of `setToString` without support for hot loop shorting. - * - * @private - * @param {Function} func The function to modify. - * @param {Function} string The `toString` result. - * @returns {Function} Returns `func`. - */ - var baseSetToString = !defineProperty ? identity : function(func, string) { - return defineProperty(func, 'toString', { - 'configurable': true, - 'enumerable': false, - 'value': constant(string), - 'writable': true - }); - }; - - /** - * The base implementation of `_.shuffle`. - * - * @private - * @param {Array|Object} collection The collection to shuffle. - * @returns {Array} Returns the new shuffled array. - */ - function baseShuffle(collection) { - return shuffleSelf(values(collection)); - } - - /** - * The base implementation of `_.slice` without an iteratee call guard. - * - * @private - * @param {Array} array The array to slice. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the slice of `array`. - */ - function baseSlice(array, start, end) { - var index = -1, - length = array.length; - - if (start < 0) { - start = -start > length ? 0 : (length + start); - } - end = end > length ? length : end; - if (end < 0) { - end += length; - } - length = start > end ? 0 : ((end - start) >>> 0); - start >>>= 0; - - var result = Array(length); - while (++index < length) { - result[index] = array[index + start]; - } - return result; - } - - /** - * The base implementation of `_.some` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - */ - function baseSome(collection, predicate) { - var result; - - baseEach(collection, function(value, index, collection) { - result = predicate(value, index, collection); - return !result; - }); - return !!result; - } - - /** - * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which - * performs a binary search of `array` to determine the index at which `value` - * should be inserted into `array` in order to maintain its sort order. - * - * @private - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {boolean} [retHighest] Specify returning the highest qualified index. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - */ - function baseSortedIndex(array, value, retHighest) { - var low = 0, - high = array == null ? low : array.length; - - if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) { - while (low < high) { - var mid = (low + high) >>> 1, - computed = array[mid]; - - if (computed !== null && !isSymbol(computed) && - (retHighest ? (computed <= value) : (computed < value))) { - low = mid + 1; - } else { - high = mid; - } - } - return high; - } - return baseSortedIndexBy(array, value, identity, retHighest); - } - - /** - * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy` - * which invokes `iteratee` for `value` and each element of `array` to compute - * their sort ranking. The iteratee is invoked with one argument; (value). - * - * @private - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {Function} iteratee The iteratee invoked per element. - * @param {boolean} [retHighest] Specify returning the highest qualified index. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - */ - function baseSortedIndexBy(array, value, iteratee, retHighest) { - value = iteratee(value); - - var low = 0, - high = array == null ? 0 : array.length, - valIsNaN = value !== value, - valIsNull = value === null, - valIsSymbol = isSymbol(value), - valIsUndefined = value === undefined; - - while (low < high) { - var mid = nativeFloor((low + high) / 2), - computed = iteratee(array[mid]), - othIsDefined = computed !== undefined, - othIsNull = computed === null, - othIsReflexive = computed === computed, - othIsSymbol = isSymbol(computed); - - if (valIsNaN) { - var setLow = retHighest || othIsReflexive; - } else if (valIsUndefined) { - setLow = othIsReflexive && (retHighest || othIsDefined); - } else if (valIsNull) { - setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull); - } else if (valIsSymbol) { - setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol); - } else if (othIsNull || othIsSymbol) { - setLow = false; - } else { - setLow = retHighest ? (computed <= value) : (computed < value); - } - if (setLow) { - low = mid + 1; - } else { - high = mid; - } - } - return nativeMin(high, MAX_ARRAY_INDEX); - } - - /** - * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without - * support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @returns {Array} Returns the new duplicate free array. - */ - function baseSortedUniq(array, iteratee) { - var index = -1, - length = array.length, - resIndex = 0, - result = []; - - while (++index < length) { - var value = array[index], - computed = iteratee ? iteratee(value) : value; - - if (!index || !eq(computed, seen)) { - var seen = computed; - result[resIndex++] = value === 0 ? 0 : value; - } - } - return result; - } - - /** - * The base implementation of `_.toNumber` which doesn't ensure correct - * conversions of binary, hexadecimal, or octal string values. - * - * @private - * @param {*} value The value to process. - * @returns {number} Returns the number. - */ - function baseToNumber(value) { - if (typeof value == 'number') { - return value; - } - if (isSymbol(value)) { - return NAN; - } - return +value; - } - - /** - * The base implementation of `_.toString` which doesn't convert nullish - * values to empty strings. - * - * @private - * @param {*} value The value to process. - * @returns {string} Returns the string. - */ - function baseToString(value) { - // Exit early for strings to avoid a performance hit in some environments. - if (typeof value == 'string') { - return value; - } - if (isArray(value)) { - // Recursively convert values (susceptible to call stack limits). - return arrayMap(value, baseToString) + ''; - } - if (isSymbol(value)) { - return symbolToString ? symbolToString.call(value) : ''; - } - var result = (value + ''); - return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; - } - - /** - * The base implementation of `_.uniqBy` without support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new duplicate free array. - */ - function baseUniq(array, iteratee, comparator) { - var index = -1, - includes = arrayIncludes, - length = array.length, - isCommon = true, - result = [], - seen = result; - - if (comparator) { - isCommon = false; - includes = arrayIncludesWith; - } - else if (length >= LARGE_ARRAY_SIZE) { - var set = iteratee ? null : createSet(array); - if (set) { - return setToArray(set); - } - isCommon = false; - includes = cacheHas; - seen = new SetCache; - } - else { - seen = iteratee ? [] : result; - } - outer: - while (++index < length) { - var value = array[index], - computed = iteratee ? iteratee(value) : value; - - value = (comparator || value !== 0) ? value : 0; - if (isCommon && computed === computed) { - var seenIndex = seen.length; - while (seenIndex--) { - if (seen[seenIndex] === computed) { - continue outer; - } - } - if (iteratee) { - seen.push(computed); - } - result.push(value); - } - else if (!includes(seen, computed, comparator)) { - if (seen !== result) { - seen.push(computed); - } - result.push(value); - } - } - return result; - } - - /** - * The base implementation of `_.unset`. - * - * @private - * @param {Object} object The object to modify. - * @param {Array|string} path The property path to unset. - * @returns {boolean} Returns `true` if the property is deleted, else `false`. - */ - function baseUnset(object, path) { - path = castPath(path, object); - object = parent(object, path); - return object == null || delete object[toKey(last(path))]; - } - - /** - * The base implementation of `_.update`. - * - * @private - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to update. - * @param {Function} updater The function to produce the updated value. - * @param {Function} [customizer] The function to customize path creation. - * @returns {Object} Returns `object`. - */ - function baseUpdate(object, path, updater, customizer) { - return baseSet(object, path, updater(baseGet(object, path)), customizer); - } - - /** - * The base implementation of methods like `_.dropWhile` and `_.takeWhile` - * without support for iteratee shorthands. - * - * @private - * @param {Array} array The array to query. - * @param {Function} predicate The function invoked per iteration. - * @param {boolean} [isDrop] Specify dropping elements instead of taking them. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Array} Returns the slice of `array`. - */ - function baseWhile(array, predicate, isDrop, fromRight) { - var length = array.length, - index = fromRight ? length : -1; - - while ((fromRight ? index-- : ++index < length) && - predicate(array[index], index, array)) {} - - return isDrop - ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length)) - : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index)); - } - - /** - * The base implementation of `wrapperValue` which returns the result of - * performing a sequence of actions on the unwrapped `value`, where each - * successive action is supplied the return value of the previous. - * - * @private - * @param {*} value The unwrapped value. - * @param {Array} actions Actions to perform to resolve the unwrapped value. - * @returns {*} Returns the resolved value. - */ - function baseWrapperValue(value, actions) { - var result = value; - if (result instanceof LazyWrapper) { - result = result.value(); - } - return arrayReduce(actions, function(result, action) { - return action.func.apply(action.thisArg, arrayPush([result], action.args)); - }, result); - } - - /** - * The base implementation of methods like `_.xor`, without support for - * iteratee shorthands, that accepts an array of arrays to inspect. - * - * @private - * @param {Array} arrays The arrays to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of values. - */ - function baseXor(arrays, iteratee, comparator) { - var length = arrays.length; - if (length < 2) { - return length ? baseUniq(arrays[0]) : []; - } - var index = -1, - result = Array(length); - - while (++index < length) { - var array = arrays[index], - othIndex = -1; - - while (++othIndex < length) { - if (othIndex != index) { - result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator); - } - } - } - return baseUniq(baseFlatten(result, 1), iteratee, comparator); - } - - /** - * This base implementation of `_.zipObject` which assigns values using `assignFunc`. - * - * @private - * @param {Array} props The property identifiers. - * @param {Array} values The property values. - * @param {Function} assignFunc The function to assign values. - * @returns {Object} Returns the new object. - */ - function baseZipObject(props, values, assignFunc) { - var index = -1, - length = props.length, - valsLength = values.length, - result = {}; - - while (++index < length) { - var value = index < valsLength ? values[index] : undefined; - assignFunc(result, props[index], value); - } - return result; - } - - /** - * Casts `value` to an empty array if it's not an array like object. - * - * @private - * @param {*} value The value to inspect. - * @returns {Array|Object} Returns the cast array-like object. - */ - function castArrayLikeObject(value) { - return isArrayLikeObject(value) ? value : []; - } - - /** - * Casts `value` to `identity` if it's not a function. - * - * @private - * @param {*} value The value to inspect. - * @returns {Function} Returns cast function. - */ - function castFunction(value) { - return typeof value == 'function' ? value : identity; - } - - /** - * Casts `value` to a path array if it's not one. - * - * @private - * @param {*} value The value to inspect. - * @param {Object} [object] The object to query keys on. - * @returns {Array} Returns the cast property path array. - */ - function castPath(value, object) { - if (isArray(value)) { - return value; - } - return isKey(value, object) ? [value] : stringToPath(toString(value)); - } - - /** - * A `baseRest` alias which can be replaced with `identity` by module - * replacement plugins. - * - * @private - * @type {Function} - * @param {Function} func The function to apply a rest parameter to. - * @returns {Function} Returns the new function. - */ - var castRest = baseRest; - - /** - * Casts `array` to a slice if it's needed. - * - * @private - * @param {Array} array The array to inspect. - * @param {number} start The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the cast slice. - */ - function castSlice(array, start, end) { - var length = array.length; - end = end === undefined ? length : end; - return (!start && end >= length) ? array : baseSlice(array, start, end); - } - - /** - * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout). - * - * @private - * @param {number|Object} id The timer id or timeout object of the timer to clear. - */ - var clearTimeout = ctxClearTimeout || function(id) { - return root.clearTimeout(id); - }; - - /** - * Creates a clone of `buffer`. - * - * @private - * @param {Buffer} buffer The buffer to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Buffer} Returns the cloned buffer. - */ - function cloneBuffer(buffer, isDeep) { - if (isDeep) { - return buffer.slice(); - } - var length = buffer.length, - result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); - - buffer.copy(result); - return result; - } - - /** - * Creates a clone of `arrayBuffer`. - * - * @private - * @param {ArrayBuffer} arrayBuffer The array buffer to clone. - * @returns {ArrayBuffer} Returns the cloned array buffer. - */ - function cloneArrayBuffer(arrayBuffer) { - var result = new arrayBuffer.constructor(arrayBuffer.byteLength); - new Uint8Array(result).set(new Uint8Array(arrayBuffer)); - return result; - } - - /** - * Creates a clone of `dataView`. - * - * @private - * @param {Object} dataView The data view to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned data view. - */ - function cloneDataView(dataView, isDeep) { - var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; - return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); - } - - /** - * Creates a clone of `map`. - * - * @private - * @param {Object} map The map to clone. - * @param {Function} cloneFunc The function to clone values. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned map. - */ - function cloneMap(map, isDeep, cloneFunc) { - var array = isDeep ? cloneFunc(mapToArray(map), CLONE_DEEP_FLAG) : mapToArray(map); - return arrayReduce(array, addMapEntry, new map.constructor); - } - - /** - * Creates a clone of `regexp`. - * - * @private - * @param {Object} regexp The regexp to clone. - * @returns {Object} Returns the cloned regexp. - */ - function cloneRegExp(regexp) { - var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); - result.lastIndex = regexp.lastIndex; - return result; - } - - /** - * Creates a clone of `set`. - * - * @private - * @param {Object} set The set to clone. - * @param {Function} cloneFunc The function to clone values. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned set. - */ - function cloneSet(set, isDeep, cloneFunc) { - var array = isDeep ? cloneFunc(setToArray(set), CLONE_DEEP_FLAG) : setToArray(set); - return arrayReduce(array, addSetEntry, new set.constructor); - } - - /** - * Creates a clone of the `symbol` object. - * - * @private - * @param {Object} symbol The symbol object to clone. - * @returns {Object} Returns the cloned symbol object. - */ - function cloneSymbol(symbol) { - return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; - } - - /** - * Creates a clone of `typedArray`. - * - * @private - * @param {Object} typedArray The typed array to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned typed array. - */ - function cloneTypedArray(typedArray, isDeep) { - var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; - return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); - } - - /** - * Compares values to sort them in ascending order. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {number} Returns the sort order indicator for `value`. - */ - function compareAscending(value, other) { - if (value !== other) { - var valIsDefined = value !== undefined, - valIsNull = value === null, - valIsReflexive = value === value, - valIsSymbol = isSymbol(value); - - var othIsDefined = other !== undefined, - othIsNull = other === null, - othIsReflexive = other === other, - othIsSymbol = isSymbol(other); - - if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) || - (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) || - (valIsNull && othIsDefined && othIsReflexive) || - (!valIsDefined && othIsReflexive) || - !valIsReflexive) { - return 1; - } - if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) || - (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) || - (othIsNull && valIsDefined && valIsReflexive) || - (!othIsDefined && valIsReflexive) || - !othIsReflexive) { - return -1; - } - } - return 0; - } - - /** - * Used by `_.orderBy` to compare multiple properties of a value to another - * and stable sort them. - * - * If `orders` is unspecified, all values are sorted in ascending order. Otherwise, - * specify an order of "desc" for descending or "asc" for ascending sort order - * of corresponding values. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {boolean[]|string[]} orders The order to sort by for each property. - * @returns {number} Returns the sort order indicator for `object`. - */ - function compareMultiple(object, other, orders) { - var index = -1, - objCriteria = object.criteria, - othCriteria = other.criteria, - length = objCriteria.length, - ordersLength = orders.length; - - while (++index < length) { - var result = compareAscending(objCriteria[index], othCriteria[index]); - if (result) { - if (index >= ordersLength) { - return result; - } - var order = orders[index]; - return result * (order == 'desc' ? -1 : 1); - } - } - // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications - // that causes it, under certain circumstances, to provide the same value for - // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247 - // for more details. - // - // This also ensures a stable sort in V8 and other engines. - // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details. - return object.index - other.index; - } - - /** - * Creates an array that is the composition of partially applied arguments, - * placeholders, and provided arguments into a single array of arguments. - * - * @private - * @param {Array} args The provided arguments. - * @param {Array} partials The arguments to prepend to those provided. - * @param {Array} holders The `partials` placeholder indexes. - * @params {boolean} [isCurried] Specify composing for a curried function. - * @returns {Array} Returns the new array of composed arguments. - */ - function composeArgs(args, partials, holders, isCurried) { - var argsIndex = -1, - argsLength = args.length, - holdersLength = holders.length, - leftIndex = -1, - leftLength = partials.length, - rangeLength = nativeMax(argsLength - holdersLength, 0), - result = Array(leftLength + rangeLength), - isUncurried = !isCurried; - - while (++leftIndex < leftLength) { - result[leftIndex] = partials[leftIndex]; - } - while (++argsIndex < holdersLength) { - if (isUncurried || argsIndex < argsLength) { - result[holders[argsIndex]] = args[argsIndex]; - } - } - while (rangeLength--) { - result[leftIndex++] = args[argsIndex++]; - } - return result; - } - - /** - * This function is like `composeArgs` except that the arguments composition - * is tailored for `_.partialRight`. - * - * @private - * @param {Array} args The provided arguments. - * @param {Array} partials The arguments to append to those provided. - * @param {Array} holders The `partials` placeholder indexes. - * @params {boolean} [isCurried] Specify composing for a curried function. - * @returns {Array} Returns the new array of composed arguments. - */ - function composeArgsRight(args, partials, holders, isCurried) { - var argsIndex = -1, - argsLength = args.length, - holdersIndex = -1, - holdersLength = holders.length, - rightIndex = -1, - rightLength = partials.length, - rangeLength = nativeMax(argsLength - holdersLength, 0), - result = Array(rangeLength + rightLength), - isUncurried = !isCurried; - - while (++argsIndex < rangeLength) { - result[argsIndex] = args[argsIndex]; - } - var offset = argsIndex; - while (++rightIndex < rightLength) { - result[offset + rightIndex] = partials[rightIndex]; - } - while (++holdersIndex < holdersLength) { - if (isUncurried || argsIndex < argsLength) { - result[offset + holders[holdersIndex]] = args[argsIndex++]; - } - } - return result; - } - - /** - * Copies the values of `source` to `array`. - * - * @private - * @param {Array} source The array to copy values from. - * @param {Array} [array=[]] The array to copy values to. - * @returns {Array} Returns `array`. - */ - function copyArray(source, array) { - var index = -1, - length = source.length; - - array || (array = Array(length)); - while (++index < length) { - array[index] = source[index]; - } - return array; - } - - /** - * Copies properties of `source` to `object`. - * - * @private - * @param {Object} source The object to copy properties from. - * @param {Array} props The property identifiers to copy. - * @param {Object} [object={}] The object to copy properties to. - * @param {Function} [customizer] The function to customize copied values. - * @returns {Object} Returns `object`. - */ - function copyObject(source, props, object, customizer) { - var isNew = !object; - object || (object = {}); - - var index = -1, - length = props.length; - - while (++index < length) { - var key = props[index]; - - var newValue = customizer - ? customizer(object[key], source[key], key, object, source) - : undefined; - - if (newValue === undefined) { - newValue = source[key]; - } - if (isNew) { - baseAssignValue(object, key, newValue); - } else { - assignValue(object, key, newValue); - } - } - return object; - } - - /** - * Copies own symbols of `source` to `object`. - * - * @private - * @param {Object} source The object to copy symbols from. - * @param {Object} [object={}] The object to copy symbols to. - * @returns {Object} Returns `object`. - */ - function copySymbols(source, object) { - return copyObject(source, getSymbols(source), object); - } - - /** - * Copies own and inherited symbols of `source` to `object`. - * - * @private - * @param {Object} source The object to copy symbols from. - * @param {Object} [object={}] The object to copy symbols to. - * @returns {Object} Returns `object`. - */ - function copySymbolsIn(source, object) { - return copyObject(source, getSymbolsIn(source), object); - } - - /** - * Creates a function like `_.groupBy`. - * - * @private - * @param {Function} setter The function to set accumulator values. - * @param {Function} [initializer] The accumulator object initializer. - * @returns {Function} Returns the new aggregator function. - */ - function createAggregator(setter, initializer) { - return function(collection, iteratee) { - var func = isArray(collection) ? arrayAggregator : baseAggregator, - accumulator = initializer ? initializer() : {}; - - return func(collection, setter, getIteratee(iteratee, 2), accumulator); - }; - } - - /** - * Creates a function like `_.assign`. - * - * @private - * @param {Function} assigner The function to assign values. - * @returns {Function} Returns the new assigner function. - */ - function createAssigner(assigner) { - return baseRest(function(object, sources) { - var index = -1, - length = sources.length, - customizer = length > 1 ? sources[length - 1] : undefined, - guard = length > 2 ? sources[2] : undefined; - - customizer = (assigner.length > 3 && typeof customizer == 'function') - ? (length--, customizer) - : undefined; - - if (guard && isIterateeCall(sources[0], sources[1], guard)) { - customizer = length < 3 ? undefined : customizer; - length = 1; - } - object = Object(object); - while (++index < length) { - var source = sources[index]; - if (source) { - assigner(object, source, index, customizer); - } - } - return object; - }); - } - - /** - * Creates a `baseEach` or `baseEachRight` function. - * - * @private - * @param {Function} eachFunc The function to iterate over a collection. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ - function createBaseEach(eachFunc, fromRight) { - return function(collection, iteratee) { - if (collection == null) { - return collection; - } - if (!isArrayLike(collection)) { - return eachFunc(collection, iteratee); - } - var length = collection.length, - index = fromRight ? length : -1, - iterable = Object(collection); - - while ((fromRight ? index-- : ++index < length)) { - if (iteratee(iterable[index], index, iterable) === false) { - break; - } - } - return collection; - }; - } - - /** - * Creates a base function for methods like `_.forIn` and `_.forOwn`. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ - function createBaseFor(fromRight) { - return function(object, iteratee, keysFunc) { - var index = -1, - iterable = Object(object), - props = keysFunc(object), - length = props.length; - - while (length--) { - var key = props[fromRight ? length : ++index]; - if (iteratee(iterable[key], key, iterable) === false) { - break; - } - } - return object; - }; - } - - /** - * Creates a function that wraps `func` to invoke it with the optional `this` - * binding of `thisArg`. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {*} [thisArg] The `this` binding of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createBind(func, bitmask, thisArg) { - var isBind = bitmask & WRAP_BIND_FLAG, - Ctor = createCtor(func); - - function wrapper() { - var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; - return fn.apply(isBind ? thisArg : this, arguments); - } - return wrapper; - } - - /** - * Creates a function like `_.lowerFirst`. - * - * @private - * @param {string} methodName The name of the `String` case method to use. - * @returns {Function} Returns the new case function. - */ - function createCaseFirst(methodName) { - return function(string) { - string = toString(string); - - var strSymbols = hasUnicode(string) - ? stringToArray(string) - : undefined; - - var chr = strSymbols - ? strSymbols[0] - : string.charAt(0); - - var trailing = strSymbols - ? castSlice(strSymbols, 1).join('') - : string.slice(1); - - return chr[methodName]() + trailing; - }; - } - - /** - * Creates a function like `_.camelCase`. - * - * @private - * @param {Function} callback The function to combine each word. - * @returns {Function} Returns the new compounder function. - */ - function createCompounder(callback) { - return function(string) { - return arrayReduce(words(deburr(string).replace(reApos, '')), callback, ''); - }; - } - - /** - * Creates a function that produces an instance of `Ctor` regardless of - * whether it was invoked as part of a `new` expression or by `call` or `apply`. - * - * @private - * @param {Function} Ctor The constructor to wrap. - * @returns {Function} Returns the new wrapped function. - */ - function createCtor(Ctor) { - return function() { - // Use a `switch` statement to work with class constructors. See - // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist - // for more details. - var args = arguments; - switch (args.length) { - case 0: return new Ctor; - case 1: return new Ctor(args[0]); - case 2: return new Ctor(args[0], args[1]); - case 3: return new Ctor(args[0], args[1], args[2]); - case 4: return new Ctor(args[0], args[1], args[2], args[3]); - case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]); - case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); - case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); - } - var thisBinding = baseCreate(Ctor.prototype), - result = Ctor.apply(thisBinding, args); - - // Mimic the constructor's `return` behavior. - // See https://es5.github.io/#x13.2.2 for more details. - return isObject(result) ? result : thisBinding; - }; - } - - /** - * Creates a function that wraps `func` to enable currying. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {number} arity The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createCurry(func, bitmask, arity) { - var Ctor = createCtor(func); - - function wrapper() { - var length = arguments.length, - args = Array(length), - index = length, - placeholder = getHolder(wrapper); - - while (index--) { - args[index] = arguments[index]; - } - var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder) - ? [] - : replaceHolders(args, placeholder); - - length -= holders.length; - if (length < arity) { - return createRecurry( - func, bitmask, createHybrid, wrapper.placeholder, undefined, - args, holders, undefined, undefined, arity - length); - } - var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; - return apply(fn, this, args); - } - return wrapper; - } - - /** - * Creates a `_.find` or `_.findLast` function. - * - * @private - * @param {Function} findIndexFunc The function to find the collection index. - * @returns {Function} Returns the new find function. - */ - function createFind(findIndexFunc) { - return function(collection, predicate, fromIndex) { - var iterable = Object(collection); - if (!isArrayLike(collection)) { - var iteratee = getIteratee(predicate, 3); - collection = keys(collection); - predicate = function(key) { return iteratee(iterable[key], key, iterable); }; - } - var index = findIndexFunc(collection, predicate, fromIndex); - return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; - }; - } - - /** - * Creates a `_.flow` or `_.flowRight` function. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new flow function. - */ - function createFlow(fromRight) { - return flatRest(function(funcs) { - var length = funcs.length, - index = length, - prereq = LodashWrapper.prototype.thru; - - if (fromRight) { - funcs.reverse(); - } - while (index--) { - var func = funcs[index]; - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - if (prereq && !wrapper && getFuncName(func) == 'wrapper') { - var wrapper = new LodashWrapper([], true); - } - } - index = wrapper ? index : length; - while (++index < length) { - func = funcs[index]; - - var funcName = getFuncName(func), - data = funcName == 'wrapper' ? getData(func) : undefined; - - if (data && isLaziable(data[0]) && - data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && - !data[4].length && data[9] == 1 - ) { - wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); - } else { - wrapper = (func.length == 1 && isLaziable(func)) - ? wrapper[funcName]() - : wrapper.thru(func); - } - } - return function() { - var args = arguments, - value = args[0]; - - if (wrapper && args.length == 1 && isArray(value)) { - return wrapper.plant(value).value(); - } - var index = 0, - result = length ? funcs[index].apply(this, args) : value; - - while (++index < length) { - result = funcs[index].call(this, result); - } - return result; - }; - }); - } - - /** - * Creates a function that wraps `func` to invoke it with optional `this` - * binding of `thisArg`, partial application, and currying. - * - * @private - * @param {Function|string} func The function or method name to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {*} [thisArg] The `this` binding of `func`. - * @param {Array} [partials] The arguments to prepend to those provided to - * the new function. - * @param {Array} [holders] The `partials` placeholder indexes. - * @param {Array} [partialsRight] The arguments to append to those provided - * to the new function. - * @param {Array} [holdersRight] The `partialsRight` placeholder indexes. - * @param {Array} [argPos] The argument positions of the new function. - * @param {number} [ary] The arity cap of `func`. - * @param {number} [arity] The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) { - var isAry = bitmask & WRAP_ARY_FLAG, - isBind = bitmask & WRAP_BIND_FLAG, - isBindKey = bitmask & WRAP_BIND_KEY_FLAG, - isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), - isFlip = bitmask & WRAP_FLIP_FLAG, - Ctor = isBindKey ? undefined : createCtor(func); - - function wrapper() { - var length = arguments.length, - args = Array(length), - index = length; - - while (index--) { - args[index] = arguments[index]; - } - if (isCurried) { - var placeholder = getHolder(wrapper), - holdersCount = countHolders(args, placeholder); - } - if (partials) { - args = composeArgs(args, partials, holders, isCurried); - } - if (partialsRight) { - args = composeArgsRight(args, partialsRight, holdersRight, isCurried); - } - length -= holdersCount; - if (isCurried && length < arity) { - var newHolders = replaceHolders(args, placeholder); - return createRecurry( - func, bitmask, createHybrid, wrapper.placeholder, thisArg, - args, newHolders, argPos, ary, arity - length - ); - } - var thisBinding = isBind ? thisArg : this, - fn = isBindKey ? thisBinding[func] : func; - - length = args.length; - if (argPos) { - args = reorder(args, argPos); - } else if (isFlip && length > 1) { - args.reverse(); - } - if (isAry && ary < length) { - args.length = ary; - } - if (this && this !== root && this instanceof wrapper) { - fn = Ctor || createCtor(fn); - } - return fn.apply(thisBinding, args); - } - return wrapper; - } - - /** - * Creates a function like `_.invertBy`. - * - * @private - * @param {Function} setter The function to set accumulator values. - * @param {Function} toIteratee The function to resolve iteratees. - * @returns {Function} Returns the new inverter function. - */ - function createInverter(setter, toIteratee) { - return function(object, iteratee) { - return baseInverter(object, setter, toIteratee(iteratee), {}); - }; - } - - /** - * Creates a function that performs a mathematical operation on two values. - * - * @private - * @param {Function} operator The function to perform the operation. - * @param {number} [defaultValue] The value used for `undefined` arguments. - * @returns {Function} Returns the new mathematical operation function. - */ - function createMathOperation(operator, defaultValue) { - return function(value, other) { - var result; - if (value === undefined && other === undefined) { - return defaultValue; - } - if (value !== undefined) { - result = value; - } - if (other !== undefined) { - if (result === undefined) { - return other; - } - if (typeof value == 'string' || typeof other == 'string') { - value = baseToString(value); - other = baseToString(other); - } else { - value = baseToNumber(value); - other = baseToNumber(other); - } - result = operator(value, other); - } - return result; - }; - } - - /** - * Creates a function like `_.over`. - * - * @private - * @param {Function} arrayFunc The function to iterate over iteratees. - * @returns {Function} Returns the new over function. - */ - function createOver(arrayFunc) { - return flatRest(function(iteratees) { - iteratees = arrayMap(iteratees, baseUnary(getIteratee())); - return baseRest(function(args) { - var thisArg = this; - return arrayFunc(iteratees, function(iteratee) { - return apply(iteratee, thisArg, args); - }); - }); - }); - } - - /** - * Creates the padding for `string` based on `length`. The `chars` string - * is truncated if the number of characters exceeds `length`. - * - * @private - * @param {number} length The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padding for `string`. - */ - function createPadding(length, chars) { - chars = chars === undefined ? ' ' : baseToString(chars); - - var charsLength = chars.length; - if (charsLength < 2) { - return charsLength ? baseRepeat(chars, length) : chars; - } - var result = baseRepeat(chars, nativeCeil(length / stringSize(chars))); - return hasUnicode(chars) - ? castSlice(stringToArray(result), 0, length).join('') - : result.slice(0, length); - } - - /** - * Creates a function that wraps `func` to invoke it with the `this` binding - * of `thisArg` and `partials` prepended to the arguments it receives. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {*} thisArg The `this` binding of `func`. - * @param {Array} partials The arguments to prepend to those provided to - * the new function. - * @returns {Function} Returns the new wrapped function. - */ - function createPartial(func, bitmask, thisArg, partials) { - var isBind = bitmask & WRAP_BIND_FLAG, - Ctor = createCtor(func); - - function wrapper() { - var argsIndex = -1, - argsLength = arguments.length, - leftIndex = -1, - leftLength = partials.length, - args = Array(leftLength + argsLength), - fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; - - while (++leftIndex < leftLength) { - args[leftIndex] = partials[leftIndex]; - } - while (argsLength--) { - args[leftIndex++] = arguments[++argsIndex]; - } - return apply(fn, isBind ? thisArg : this, args); - } - return wrapper; - } - - /** - * Creates a `_.range` or `_.rangeRight` function. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new range function. - */ - function createRange(fromRight) { - return function(start, end, step) { - if (step && typeof step != 'number' && isIterateeCall(start, end, step)) { - end = step = undefined; - } - // Ensure the sign of `-0` is preserved. - start = toFinite(start); - if (end === undefined) { - end = start; - start = 0; - } else { - end = toFinite(end); - } - step = step === undefined ? (start < end ? 1 : -1) : toFinite(step); - return baseRange(start, end, step, fromRight); - }; - } - - /** - * Creates a function that performs a relational operation on two values. - * - * @private - * @param {Function} operator The function to perform the operation. - * @returns {Function} Returns the new relational operation function. - */ - function createRelationalOperation(operator) { - return function(value, other) { - if (!(typeof value == 'string' && typeof other == 'string')) { - value = toNumber(value); - other = toNumber(other); - } - return operator(value, other); - }; - } - - /** - * Creates a function that wraps `func` to continue currying. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {Function} wrapFunc The function to create the `func` wrapper. - * @param {*} placeholder The placeholder value. - * @param {*} [thisArg] The `this` binding of `func`. - * @param {Array} [partials] The arguments to prepend to those provided to - * the new function. - * @param {Array} [holders] The `partials` placeholder indexes. - * @param {Array} [argPos] The argument positions of the new function. - * @param {number} [ary] The arity cap of `func`. - * @param {number} [arity] The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) { - var isCurry = bitmask & WRAP_CURRY_FLAG, - newHolders = isCurry ? holders : undefined, - newHoldersRight = isCurry ? undefined : holders, - newPartials = isCurry ? partials : undefined, - newPartialsRight = isCurry ? undefined : partials; - - bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG); - bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG); - - if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) { - bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG); - } - var newData = [ - func, bitmask, thisArg, newPartials, newHolders, newPartialsRight, - newHoldersRight, argPos, ary, arity - ]; - - var result = wrapFunc.apply(undefined, newData); - if (isLaziable(func)) { - setData(result, newData); - } - result.placeholder = placeholder; - return setWrapToString(result, func, bitmask); - } - - /** - * Creates a function like `_.round`. - * - * @private - * @param {string} methodName The name of the `Math` method to use when rounding. - * @returns {Function} Returns the new round function. - */ - function createRound(methodName) { - var func = Math[methodName]; - return function(number, precision) { - number = toNumber(number); - precision = precision == null ? 0 : nativeMin(toInteger(precision), 292); - if (precision) { - // Shift with exponential notation to avoid floating-point issues. - // See [MDN](https://mdn.io/round#Examples) for more details. - var pair = (toString(number) + 'e').split('e'), - value = func(pair[0] + 'e' + (+pair[1] + precision)); - - pair = (toString(value) + 'e').split('e'); - return +(pair[0] + 'e' + (+pair[1] - precision)); - } - return func(number); - }; - } - - /** - * Creates a set object of `values`. - * - * @private - * @param {Array} values The values to add to the set. - * @returns {Object} Returns the new set. - */ - var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) { - return new Set(values); - }; - - /** - * Creates a `_.toPairs` or `_.toPairsIn` function. - * - * @private - * @param {Function} keysFunc The function to get the keys of a given object. - * @returns {Function} Returns the new pairs function. - */ - function createToPairs(keysFunc) { - return function(object) { - var tag = getTag(object); - if (tag == mapTag) { - return mapToArray(object); - } - if (tag == setTag) { - return setToPairs(object); - } - return baseToPairs(object, keysFunc(object)); - }; - } - - /** - * Creates a function that either curries or invokes `func` with optional - * `this` binding and partially applied arguments. - * - * @private - * @param {Function|string} func The function or method name to wrap. - * @param {number} bitmask The bitmask flags. - * 1 - `_.bind` - * 2 - `_.bindKey` - * 4 - `_.curry` or `_.curryRight` of a bound function - * 8 - `_.curry` - * 16 - `_.curryRight` - * 32 - `_.partial` - * 64 - `_.partialRight` - * 128 - `_.rearg` - * 256 - `_.ary` - * 512 - `_.flip` - * @param {*} [thisArg] The `this` binding of `func`. - * @param {Array} [partials] The arguments to be partially applied. - * @param {Array} [holders] The `partials` placeholder indexes. - * @param {Array} [argPos] The argument positions of the new function. - * @param {number} [ary] The arity cap of `func`. - * @param {number} [arity] The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) { - var isBindKey = bitmask & WRAP_BIND_KEY_FLAG; - if (!isBindKey && typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - var length = partials ? partials.length : 0; - if (!length) { - bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG); - partials = holders = undefined; - } - ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0); - arity = arity === undefined ? arity : toInteger(arity); - length -= holders ? holders.length : 0; - - if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) { - var partialsRight = partials, - holdersRight = holders; - - partials = holders = undefined; - } - var data = isBindKey ? undefined : getData(func); - - var newData = [ - func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, - argPos, ary, arity - ]; - - if (data) { - mergeData(newData, data); - } - func = newData[0]; - bitmask = newData[1]; - thisArg = newData[2]; - partials = newData[3]; - holders = newData[4]; - arity = newData[9] = newData[9] === undefined - ? (isBindKey ? 0 : func.length) - : nativeMax(newData[9] - length, 0); - - if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) { - bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG); - } - if (!bitmask || bitmask == WRAP_BIND_FLAG) { - var result = createBind(func, bitmask, thisArg); - } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) { - result = createCurry(func, bitmask, arity); - } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) { - result = createPartial(func, bitmask, thisArg, partials); - } else { - result = createHybrid.apply(undefined, newData); - } - var setter = data ? baseSetData : setData; - return setWrapToString(setter(result, newData), func, bitmask); - } - - /** - * Used by `_.defaults` to customize its `_.assignIn` use to assign properties - * of source objects to the destination object for all destination properties - * that resolve to `undefined`. - * - * @private - * @param {*} objValue The destination value. - * @param {*} srcValue The source value. - * @param {string} key The key of the property to assign. - * @param {Object} object The parent object of `objValue`. - * @returns {*} Returns the value to assign. - */ - function customDefaultsAssignIn(objValue, srcValue, key, object) { - if (objValue === undefined || - (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) { - return srcValue; - } - return objValue; - } - - /** - * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source - * objects into destination objects that are passed thru. - * - * @private - * @param {*} objValue The destination value. - * @param {*} srcValue The source value. - * @param {string} key The key of the property to merge. - * @param {Object} object The parent object of `objValue`. - * @param {Object} source The parent object of `srcValue`. - * @param {Object} [stack] Tracks traversed source values and their merged - * counterparts. - * @returns {*} Returns the value to assign. - */ - function customDefaultsMerge(objValue, srcValue, key, object, source, stack) { - if (isObject(objValue) && isObject(srcValue)) { - // Recursively merge objects and arrays (susceptible to call stack limits). - stack.set(srcValue, objValue); - baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack); - stack['delete'](srcValue); - } - return objValue; - } - - /** - * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain - * objects. - * - * @private - * @param {*} value The value to inspect. - * @param {string} key The key of the property to inspect. - * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`. - */ - function customOmitClone(value) { - return isPlainObject(value) ? undefined : value; - } - - /** - * A specialized version of `baseIsEqualDeep` for arrays with support for - * partial deep comparisons. - * - * @private - * @param {Array} array The array to compare. - * @param {Array} other The other array to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `array` and `other` objects. - * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. - */ - function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, - arrLength = array.length, - othLength = other.length; - - if (arrLength != othLength && !(isPartial && othLength > arrLength)) { - return false; - } - // Assume cyclic values are equal. - var stacked = stack.get(array); - if (stacked && stack.get(other)) { - return stacked == other; - } - var index = -1, - result = true, - seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; - - stack.set(array, other); - stack.set(other, array); - - // Ignore non-index properties. - while (++index < arrLength) { - var arrValue = array[index], - othValue = other[index]; - - if (customizer) { - var compared = isPartial - ? customizer(othValue, arrValue, index, other, array, stack) - : customizer(arrValue, othValue, index, array, other, stack); - } - if (compared !== undefined) { - if (compared) { - continue; - } - result = false; - break; - } - // Recursively compare arrays (susceptible to call stack limits). - if (seen) { - if (!arraySome(other, function(othValue, othIndex) { - if (!cacheHas(seen, othIndex) && - (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { - return seen.push(othIndex); - } - })) { - result = false; - break; - } - } else if (!( - arrValue === othValue || - equalFunc(arrValue, othValue, bitmask, customizer, stack) - )) { - result = false; - break; - } - } - stack['delete'](array); - stack['delete'](other); - return result; - } - - /** - * A specialized version of `baseIsEqualDeep` for comparing objects of - * the same `toStringTag`. - * - * **Note:** This function only supports comparing values with tags of - * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {string} tag The `toStringTag` of the objects to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { - switch (tag) { - case dataViewTag: - if ((object.byteLength != other.byteLength) || - (object.byteOffset != other.byteOffset)) { - return false; - } - object = object.buffer; - other = other.buffer; - - case arrayBufferTag: - if ((object.byteLength != other.byteLength) || - !equalFunc(new Uint8Array(object), new Uint8Array(other))) { - return false; - } - return true; - - case boolTag: - case dateTag: - case numberTag: - // Coerce booleans to `1` or `0` and dates to milliseconds. - // Invalid dates are coerced to `NaN`. - return eq(+object, +other); - - case errorTag: - return object.name == other.name && object.message == other.message; - - case regexpTag: - case stringTag: - // Coerce regexes to strings and treat strings, primitives and objects, - // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring - // for more details. - return object == (other + ''); - - case mapTag: - var convert = mapToArray; - - case setTag: - var isPartial = bitmask & COMPARE_PARTIAL_FLAG; - convert || (convert = setToArray); - - if (object.size != other.size && !isPartial) { - return false; - } - // Assume cyclic values are equal. - var stacked = stack.get(object); - if (stacked) { - return stacked == other; - } - bitmask |= COMPARE_UNORDERED_FLAG; - - // Recursively compare objects (susceptible to call stack limits). - stack.set(object, other); - var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); - stack['delete'](object); - return result; - - case symbolTag: - if (symbolValueOf) { - return symbolValueOf.call(object) == symbolValueOf.call(other); - } - } - return false; - } - - /** - * A specialized version of `baseIsEqualDeep` for objects with support for - * partial deep comparisons. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, - objProps = getAllKeys(object), - objLength = objProps.length, - othProps = getAllKeys(other), - othLength = othProps.length; - - if (objLength != othLength && !isPartial) { - return false; - } - var index = objLength; - while (index--) { - var key = objProps[index]; - if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { - return false; - } - } - // Assume cyclic values are equal. - var stacked = stack.get(object); - if (stacked && stack.get(other)) { - return stacked == other; - } - var result = true; - stack.set(object, other); - stack.set(other, object); - - var skipCtor = isPartial; - while (++index < objLength) { - key = objProps[index]; - var objValue = object[key], - othValue = other[key]; - - if (customizer) { - var compared = isPartial - ? customizer(othValue, objValue, key, other, object, stack) - : customizer(objValue, othValue, key, object, other, stack); - } - // Recursively compare objects (susceptible to call stack limits). - if (!(compared === undefined - ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) - : compared - )) { - result = false; - break; - } - skipCtor || (skipCtor = key == 'constructor'); - } - if (result && !skipCtor) { - var objCtor = object.constructor, - othCtor = other.constructor; - - // Non `Object` object instances with different constructors are not equal. - if (objCtor != othCtor && - ('constructor' in object && 'constructor' in other) && - !(typeof objCtor == 'function' && objCtor instanceof objCtor && - typeof othCtor == 'function' && othCtor instanceof othCtor)) { - result = false; - } - } - stack['delete'](object); - stack['delete'](other); - return result; - } - - /** - * A specialized version of `baseRest` which flattens the rest array. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @returns {Function} Returns the new function. - */ - function flatRest(func) { - return setToString(overRest(func, undefined, flatten), func + ''); - } - - /** - * Creates an array of own enumerable property names and symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names and symbols. - */ - function getAllKeys(object) { - return baseGetAllKeys(object, keys, getSymbols); - } - - /** - * Creates an array of own and inherited enumerable property names and - * symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names and symbols. - */ - function getAllKeysIn(object) { - return baseGetAllKeys(object, keysIn, getSymbolsIn); - } - - /** - * Gets metadata for `func`. - * - * @private - * @param {Function} func The function to query. - * @returns {*} Returns the metadata for `func`. - */ - var getData = !metaMap ? noop : function(func) { - return metaMap.get(func); - }; - - /** - * Gets the name of `func`. - * - * @private - * @param {Function} func The function to query. - * @returns {string} Returns the function name. - */ - function getFuncName(func) { - var result = (func.name + ''), - array = realNames[result], - length = hasOwnProperty.call(realNames, result) ? array.length : 0; - - while (length--) { - var data = array[length], - otherFunc = data.func; - if (otherFunc == null || otherFunc == func) { - return data.name; - } - } - return result; - } - - /** - * Gets the argument placeholder value for `func`. - * - * @private - * @param {Function} func The function to inspect. - * @returns {*} Returns the placeholder value. - */ - function getHolder(func) { - var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func; - return object.placeholder; - } - - /** - * Gets the appropriate "iteratee" function. If `_.iteratee` is customized, - * this function returns the custom method, otherwise it returns `baseIteratee`. - * If arguments are provided, the chosen function is invoked with them and - * its result is returned. - * - * @private - * @param {*} [value] The value to convert to an iteratee. - * @param {number} [arity] The arity of the created iteratee. - * @returns {Function} Returns the chosen function or its result. - */ - function getIteratee() { - var result = lodash.iteratee || iteratee; - result = result === iteratee ? baseIteratee : result; - return arguments.length ? result(arguments[0], arguments[1]) : result; - } - - /** - * Gets the data for `map`. - * - * @private - * @param {Object} map The map to query. - * @param {string} key The reference key. - * @returns {*} Returns the map data. - */ - function getMapData(map, key) { - var data = map.__data__; - return isKeyable(key) - ? data[typeof key == 'string' ? 'string' : 'hash'] - : data.map; - } - - /** - * Gets the property names, values, and compare flags of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the match data of `object`. - */ - function getMatchData(object) { - var result = keys(object), - length = result.length; - - while (length--) { - var key = result[length], - value = object[key]; - - result[length] = [key, value, isStrictComparable(value)]; - } - return result; - } - - /** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ - function getNative(object, key) { - var value = getValue(object, key); - return baseIsNative(value) ? value : undefined; - } - - /** - * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the raw `toStringTag`. - */ - function getRawTag(value) { - var isOwn = hasOwnProperty.call(value, symToStringTag), - tag = value[symToStringTag]; - - try { - value[symToStringTag] = undefined; - var unmasked = true; - } catch (e) {} - - var result = nativeObjectToString.call(value); - if (unmasked) { - if (isOwn) { - value[symToStringTag] = tag; - } else { - delete value[symToStringTag]; - } - } - return result; - } - - /** - * Creates an array of the own enumerable symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of symbols. - */ - var getSymbols = !nativeGetSymbols ? stubArray : function(object) { - if (object == null) { - return []; - } - object = Object(object); - return arrayFilter(nativeGetSymbols(object), function(symbol) { - return propertyIsEnumerable.call(object, symbol); - }); - }; - - /** - * Creates an array of the own and inherited enumerable symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of symbols. - */ - var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { - var result = []; - while (object) { - arrayPush(result, getSymbols(object)); - object = getPrototype(object); - } - return result; - }; - - /** - * Gets the `toStringTag` of `value`. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ - var getTag = baseGetTag; - - // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. - if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || - (Map && getTag(new Map) != mapTag) || - (Promise && getTag(Promise.resolve()) != promiseTag) || - (Set && getTag(new Set) != setTag) || - (WeakMap && getTag(new WeakMap) != weakMapTag)) { - getTag = function(value) { - var result = baseGetTag(value), - Ctor = result == objectTag ? value.constructor : undefined, - ctorString = Ctor ? toSource(Ctor) : ''; - - if (ctorString) { - switch (ctorString) { - case dataViewCtorString: return dataViewTag; - case mapCtorString: return mapTag; - case promiseCtorString: return promiseTag; - case setCtorString: return setTag; - case weakMapCtorString: return weakMapTag; - } - } - return result; - }; - } - - /** - * Gets the view, applying any `transforms` to the `start` and `end` positions. - * - * @private - * @param {number} start The start of the view. - * @param {number} end The end of the view. - * @param {Array} transforms The transformations to apply to the view. - * @returns {Object} Returns an object containing the `start` and `end` - * positions of the view. - */ - function getView(start, end, transforms) { - var index = -1, - length = transforms.length; - - while (++index < length) { - var data = transforms[index], - size = data.size; - - switch (data.type) { - case 'drop': start += size; break; - case 'dropRight': end -= size; break; - case 'take': end = nativeMin(end, start + size); break; - case 'takeRight': start = nativeMax(start, end - size); break; - } - } - return { 'start': start, 'end': end }; - } - - /** - * Extracts wrapper details from the `source` body comment. - * - * @private - * @param {string} source The source to inspect. - * @returns {Array} Returns the wrapper details. - */ - function getWrapDetails(source) { - var match = source.match(reWrapDetails); - return match ? match[1].split(reSplitDetails) : []; - } - - /** - * Checks if `path` exists on `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @param {Function} hasFunc The function to check properties. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - */ - function hasPath(object, path, hasFunc) { - path = castPath(path, object); - - var index = -1, - length = path.length, - result = false; - - while (++index < length) { - var key = toKey(path[index]); - if (!(result = object != null && hasFunc(object, key))) { - break; - } - object = object[key]; - } - if (result || ++index != length) { - return result; - } - length = object == null ? 0 : object.length; - return !!length && isLength(length) && isIndex(key, length) && - (isArray(object) || isArguments(object)); - } - - /** - * Initializes an array clone. - * - * @private - * @param {Array} array The array to clone. - * @returns {Array} Returns the initialized clone. - */ - function initCloneArray(array) { - var length = array.length, - result = array.constructor(length); - - // Add properties assigned by `RegExp#exec`. - if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { - result.index = array.index; - result.input = array.input; - } - return result; - } - - /** - * Initializes an object clone. - * - * @private - * @param {Object} object The object to clone. - * @returns {Object} Returns the initialized clone. - */ - function initCloneObject(object) { - return (typeof object.constructor == 'function' && !isPrototype(object)) - ? baseCreate(getPrototype(object)) - : {}; - } - - /** - * Initializes an object clone based on its `toStringTag`. - * - * **Note:** This function only supports cloning values with tags of - * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. - * - * @private - * @param {Object} object The object to clone. - * @param {string} tag The `toStringTag` of the object to clone. - * @param {Function} cloneFunc The function to clone values. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the initialized clone. - */ - function initCloneByTag(object, tag, cloneFunc, isDeep) { - var Ctor = object.constructor; - switch (tag) { - case arrayBufferTag: - return cloneArrayBuffer(object); - - case boolTag: - case dateTag: - return new Ctor(+object); - - case dataViewTag: - return cloneDataView(object, isDeep); - - case float32Tag: case float64Tag: - case int8Tag: case int16Tag: case int32Tag: - case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: - return cloneTypedArray(object, isDeep); - - case mapTag: - return cloneMap(object, isDeep, cloneFunc); - - case numberTag: - case stringTag: - return new Ctor(object); - - case regexpTag: - return cloneRegExp(object); - - case setTag: - return cloneSet(object, isDeep, cloneFunc); - - case symbolTag: - return cloneSymbol(object); - } - } - - /** - * Inserts wrapper `details` in a comment at the top of the `source` body. - * - * @private - * @param {string} source The source to modify. - * @returns {Array} details The details to insert. - * @returns {string} Returns the modified source. - */ - function insertWrapDetails(source, details) { - var length = details.length; - if (!length) { - return source; - } - var lastIndex = length - 1; - details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex]; - details = details.join(length > 2 ? ', ' : ' '); - return source.replace(reWrapComment, '{\n/* [wrapped with ' + details + '] */\n'); - } - - /** - * Checks if `value` is a flattenable `arguments` object or array. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. - */ - function isFlattenable(value) { - return isArray(value) || isArguments(value) || - !!(spreadableSymbol && value && value[spreadableSymbol]); - } - - /** - * Checks if `value` is a valid array-like index. - * - * @private - * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. - */ - function isIndex(value, length) { - length = length == null ? MAX_SAFE_INTEGER : length; - return !!length && - (typeof value == 'number' || reIsUint.test(value)) && - (value > -1 && value % 1 == 0 && value < length); - } - - /** - * Checks if the given arguments are from an iteratee call. - * - * @private - * @param {*} value The potential iteratee value argument. - * @param {*} index The potential iteratee index or key argument. - * @param {*} object The potential iteratee object argument. - * @returns {boolean} Returns `true` if the arguments are from an iteratee call, - * else `false`. - */ - function isIterateeCall(value, index, object) { - if (!isObject(object)) { - return false; - } - var type = typeof index; - if (type == 'number' - ? (isArrayLike(object) && isIndex(index, object.length)) - : (type == 'string' && index in object) - ) { - return eq(object[index], value); - } - return false; - } - - /** - * Checks if `value` is a property name and not a property path. - * - * @private - * @param {*} value The value to check. - * @param {Object} [object] The object to query keys on. - * @returns {boolean} Returns `true` if `value` is a property name, else `false`. - */ - function isKey(value, object) { - if (isArray(value)) { - return false; - } - var type = typeof value; - if (type == 'number' || type == 'symbol' || type == 'boolean' || - value == null || isSymbol(value)) { - return true; - } - return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || - (object != null && value in Object(object)); - } - - /** - * Checks if `value` is suitable for use as unique object key. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is suitable, else `false`. - */ - function isKeyable(value) { - var type = typeof value; - return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') - ? (value !== '__proto__') - : (value === null); - } - - /** - * Checks if `func` has a lazy counterpart. - * - * @private - * @param {Function} func The function to check. - * @returns {boolean} Returns `true` if `func` has a lazy counterpart, - * else `false`. - */ - function isLaziable(func) { - var funcName = getFuncName(func), - other = lodash[funcName]; - - if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) { - return false; - } - if (func === other) { - return true; - } - var data = getData(other); - return !!data && func === data[0]; - } - - /** - * Checks if `func` has its source masked. - * - * @private - * @param {Function} func The function to check. - * @returns {boolean} Returns `true` if `func` is masked, else `false`. - */ - function isMasked(func) { - return !!maskSrcKey && (maskSrcKey in func); - } - - /** - * Checks if `func` is capable of being masked. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `func` is maskable, else `false`. - */ - var isMaskable = coreJsData ? isFunction : stubFalse; - - /** - * Checks if `value` is likely a prototype object. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. - */ - function isPrototype(value) { - var Ctor = value && value.constructor, - proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; - - return value === proto; - } - - /** - * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` if suitable for strict - * equality comparisons, else `false`. - */ - function isStrictComparable(value) { - return value === value && !isObject(value); - } - - /** - * A specialized version of `matchesProperty` for source values suitable - * for strict equality comparisons, i.e. `===`. - * - * @private - * @param {string} key The key of the property to get. - * @param {*} srcValue The value to match. - * @returns {Function} Returns the new spec function. - */ - function matchesStrictComparable(key, srcValue) { - return function(object) { - if (object == null) { - return false; - } - return object[key] === srcValue && - (srcValue !== undefined || (key in Object(object))); - }; - } - - /** - * A specialized version of `_.memoize` which clears the memoized function's - * cache when it exceeds `MAX_MEMOIZE_SIZE`. - * - * @private - * @param {Function} func The function to have its output memoized. - * @returns {Function} Returns the new memoized function. - */ - function memoizeCapped(func) { - var result = memoize(func, function(key) { - if (cache.size === MAX_MEMOIZE_SIZE) { - cache.clear(); - } - return key; - }); - - var cache = result.cache; - return result; - } - - /** - * Merges the function metadata of `source` into `data`. - * - * Merging metadata reduces the number of wrappers used to invoke a function. - * This is possible because methods like `_.bind`, `_.curry`, and `_.partial` - * may be applied regardless of execution order. Methods like `_.ary` and - * `_.rearg` modify function arguments, making the order in which they are - * executed important, preventing the merging of metadata. However, we make - * an exception for a safe combined case where curried functions have `_.ary` - * and or `_.rearg` applied. - * - * @private - * @param {Array} data The destination metadata. - * @param {Array} source The source metadata. - * @returns {Array} Returns `data`. - */ - function mergeData(data, source) { - var bitmask = data[1], - srcBitmask = source[1], - newBitmask = bitmask | srcBitmask, - isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG); - - var isCombo = - ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) || - ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) || - ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG)); - - // Exit early if metadata can't be merged. - if (!(isCommon || isCombo)) { - return data; - } - // Use source `thisArg` if available. - if (srcBitmask & WRAP_BIND_FLAG) { - data[2] = source[2]; - // Set when currying a bound function. - newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG; - } - // Compose partial arguments. - var value = source[3]; - if (value) { - var partials = data[3]; - data[3] = partials ? composeArgs(partials, value, source[4]) : value; - data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4]; - } - // Compose partial right arguments. - value = source[5]; - if (value) { - partials = data[5]; - data[5] = partials ? composeArgsRight(partials, value, source[6]) : value; - data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6]; - } - // Use source `argPos` if available. - value = source[7]; - if (value) { - data[7] = value; - } - // Use source `ary` if it's smaller. - if (srcBitmask & WRAP_ARY_FLAG) { - data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); - } - // Use source `arity` if one is not provided. - if (data[9] == null) { - data[9] = source[9]; - } - // Use source `func` and merge bitmasks. - data[0] = source[0]; - data[1] = newBitmask; - - return data; - } - - /** - * This function is like - * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * except that it includes inherited enumerable properties. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function nativeKeysIn(object) { - var result = []; - if (object != null) { - for (var key in Object(object)) { - result.push(key); - } - } - return result; - } - - /** - * Converts `value` to a string using `Object.prototype.toString`. - * - * @private - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - */ - function objectToString(value) { - return nativeObjectToString.call(value); - } - - /** - * A specialized version of `baseRest` which transforms the rest array. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @param {Function} transform The rest array transform. - * @returns {Function} Returns the new function. - */ - function overRest(func, start, transform) { - start = nativeMax(start === undefined ? (func.length - 1) : start, 0); - return function() { - var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - array = Array(length); - - while (++index < length) { - array[index] = args[start + index]; - } - index = -1; - var otherArgs = Array(start + 1); - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = transform(array); - return apply(func, this, otherArgs); - }; - } - - /** - * Gets the parent value at `path` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Array} path The path to get the parent value of. - * @returns {*} Returns the parent value. - */ - function parent(object, path) { - return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1)); - } - - /** - * Reorder `array` according to the specified indexes where the element at - * the first index is assigned as the first element, the element at - * the second index is assigned as the second element, and so on. - * - * @private - * @param {Array} array The array to reorder. - * @param {Array} indexes The arranged array indexes. - * @returns {Array} Returns `array`. - */ - function reorder(array, indexes) { - var arrLength = array.length, - length = nativeMin(indexes.length, arrLength), - oldArray = copyArray(array); - - while (length--) { - var index = indexes[length]; - array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined; - } - return array; - } - - /** - * Sets metadata for `func`. - * - * **Note:** If this function becomes hot, i.e. is invoked a lot in a short - * period of time, it will trip its breaker and transition to an identity - * function to avoid garbage collection pauses in V8. See - * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070) - * for more details. - * - * @private - * @param {Function} func The function to associate metadata with. - * @param {*} data The metadata. - * @returns {Function} Returns `func`. - */ - var setData = shortOut(baseSetData); - - /** - * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout). - * - * @private - * @param {Function} func The function to delay. - * @param {number} wait The number of milliseconds to delay invocation. - * @returns {number|Object} Returns the timer id or timeout object. - */ - var setTimeout = ctxSetTimeout || function(func, wait) { - return root.setTimeout(func, wait); - }; - - /** - * Sets the `toString` method of `func` to return `string`. - * - * @private - * @param {Function} func The function to modify. - * @param {Function} string The `toString` result. - * @returns {Function} Returns `func`. - */ - var setToString = shortOut(baseSetToString); - - /** - * Sets the `toString` method of `wrapper` to mimic the source of `reference` - * with wrapper details in a comment at the top of the source body. - * - * @private - * @param {Function} wrapper The function to modify. - * @param {Function} reference The reference function. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @returns {Function} Returns `wrapper`. - */ - function setWrapToString(wrapper, reference, bitmask) { - var source = (reference + ''); - return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask))); - } - - /** - * Creates a function that'll short out and invoke `identity` instead - * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` - * milliseconds. - * - * @private - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new shortable function. - */ - function shortOut(func) { - var count = 0, - lastCalled = 0; - - return function() { - var stamp = nativeNow(), - remaining = HOT_SPAN - (stamp - lastCalled); - - lastCalled = stamp; - if (remaining > 0) { - if (++count >= HOT_COUNT) { - return arguments[0]; - } - } else { - count = 0; - } - return func.apply(undefined, arguments); - }; - } - - /** - * A specialized version of `_.shuffle` which mutates and sets the size of `array`. - * - * @private - * @param {Array} array The array to shuffle. - * @param {number} [size=array.length] The size of `array`. - * @returns {Array} Returns `array`. - */ - function shuffleSelf(array, size) { - var index = -1, - length = array.length, - lastIndex = length - 1; - - size = size === undefined ? length : size; - while (++index < size) { - var rand = baseRandom(index, lastIndex), - value = array[rand]; - - array[rand] = array[index]; - array[index] = value; - } - array.length = size; - return array; - } - - /** - * Converts `string` to a property path array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the property path array. - */ - var stringToPath = memoizeCapped(function(string) { - var result = []; - if (reLeadingDot.test(string)) { - result.push(''); - } - string.replace(rePropName, function(match, number, quote, string) { - result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match)); - }); - return result; - }); - - /** - * Converts `value` to a string key if it's not a string or symbol. - * - * @private - * @param {*} value The value to inspect. - * @returns {string|symbol} Returns the key. - */ - function toKey(value) { - if (typeof value == 'string' || isSymbol(value)) { - return value; - } - var result = (value + ''); - return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; - } - - /** - * Converts `func` to its source code. - * - * @private - * @param {Function} func The function to convert. - * @returns {string} Returns the source code. - */ - function toSource(func) { - if (func != null) { - try { - return funcToString.call(func); - } catch (e) {} - try { - return (func + ''); - } catch (e) {} - } - return ''; - } - - /** - * Updates wrapper `details` based on `bitmask` flags. - * - * @private - * @returns {Array} details The details to modify. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @returns {Array} Returns `details`. - */ - function updateWrapDetails(details, bitmask) { - arrayEach(wrapFlags, function(pair) { - var value = '_.' + pair[0]; - if ((bitmask & pair[1]) && !arrayIncludes(details, value)) { - details.push(value); - } - }); - return details.sort(); - } - - /** - * Creates a clone of `wrapper`. - * - * @private - * @param {Object} wrapper The wrapper to clone. - * @returns {Object} Returns the cloned wrapper. - */ - function wrapperClone(wrapper) { - if (wrapper instanceof LazyWrapper) { - return wrapper.clone(); - } - var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); - result.__actions__ = copyArray(wrapper.__actions__); - result.__index__ = wrapper.__index__; - result.__values__ = wrapper.__values__; - return result; - } - - /*------------------------------------------------------------------------*/ - - /** - * Creates an array of elements split into groups the length of `size`. - * If `array` can't be split evenly, the final chunk will be the remaining - * elements. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to process. - * @param {number} [size=1] The length of each chunk - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the new array of chunks. - * @example - * - * _.chunk(['a', 'b', 'c', 'd'], 2); - * // => [['a', 'b'], ['c', 'd']] - * - * _.chunk(['a', 'b', 'c', 'd'], 3); - * // => [['a', 'b', 'c'], ['d']] - */ - function chunk(array, size, guard) { - if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) { - size = 1; - } else { - size = nativeMax(toInteger(size), 0); - } - var length = array == null ? 0 : array.length; - if (!length || size < 1) { - return []; - } - var index = 0, - resIndex = 0, - result = Array(nativeCeil(length / size)); - - while (index < length) { - result[resIndex++] = baseSlice(array, index, (index += size)); - } - return result; - } - - /** - * Creates an array with all falsey values removed. The values `false`, `null`, - * `0`, `""`, `undefined`, and `NaN` are falsey. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to compact. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.compact([0, 1, false, 2, '', 3]); - * // => [1, 2, 3] - */ - function compact(array) { - var index = -1, - length = array == null ? 0 : array.length, - resIndex = 0, - result = []; - - while (++index < length) { - var value = array[index]; - if (value) { - result[resIndex++] = value; - } - } - return result; - } - - /** - * Creates a new array concatenating `array` with any additional arrays - * and/or values. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to concatenate. - * @param {...*} [values] The values to concatenate. - * @returns {Array} Returns the new concatenated array. - * @example - * - * var array = [1]; - * var other = _.concat(array, 2, [3], [[4]]); - * - * console.log(other); - * // => [1, 2, 3, [4]] - * - * console.log(array); - * // => [1] - */ - function concat() { - var length = arguments.length; - if (!length) { - return []; - } - var args = Array(length - 1), - array = arguments[0], - index = length; - - while (index--) { - args[index - 1] = arguments[index]; - } - return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); - } - - /** - * Creates an array of `array` values not included in the other given arrays - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. The order and references of result values are - * determined by the first array. - * - * **Note:** Unlike `_.pullAll`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {...Array} [values] The values to exclude. - * @returns {Array} Returns the new array of filtered values. - * @see _.without, _.xor - * @example - * - * _.difference([2, 1], [2, 3]); - * // => [1] - */ - var difference = baseRest(function(array, values) { - return isArrayLikeObject(array) - ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true)) - : []; - }); - - /** - * This method is like `_.difference` except that it accepts `iteratee` which - * is invoked for each element of `array` and `values` to generate the criterion - * by which they're compared. The order and references of result values are - * determined by the first array. The iteratee is invoked with one argument: - * (value). - * - * **Note:** Unlike `_.pullAllBy`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {...Array} [values] The values to exclude. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor); - * // => [1.2] - * - * // The `_.property` iteratee shorthand. - * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x'); - * // => [{ 'x': 2 }] - */ - var differenceBy = baseRest(function(array, values) { - var iteratee = last(values); - if (isArrayLikeObject(iteratee)) { - iteratee = undefined; - } - return isArrayLikeObject(array) - ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)) - : []; - }); - - /** - * This method is like `_.difference` except that it accepts `comparator` - * which is invoked to compare elements of `array` to `values`. The order and - * references of result values are determined by the first array. The comparator - * is invoked with two arguments: (arrVal, othVal). - * - * **Note:** Unlike `_.pullAllWith`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {...Array} [values] The values to exclude. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; - * - * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual); - * // => [{ 'x': 2, 'y': 1 }] - */ - var differenceWith = baseRest(function(array, values) { - var comparator = last(values); - if (isArrayLikeObject(comparator)) { - comparator = undefined; - } - return isArrayLikeObject(array) - ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator) - : []; - }); - - /** - * Creates a slice of `array` with `n` elements dropped from the beginning. - * - * @static - * @memberOf _ - * @since 0.5.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to drop. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.drop([1, 2, 3]); - * // => [2, 3] - * - * _.drop([1, 2, 3], 2); - * // => [3] - * - * _.drop([1, 2, 3], 5); - * // => [] - * - * _.drop([1, 2, 3], 0); - * // => [1, 2, 3] - */ - function drop(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = (guard || n === undefined) ? 1 : toInteger(n); - return baseSlice(array, n < 0 ? 0 : n, length); - } - - /** - * Creates a slice of `array` with `n` elements dropped from the end. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to drop. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.dropRight([1, 2, 3]); - * // => [1, 2] - * - * _.dropRight([1, 2, 3], 2); - * // => [1] - * - * _.dropRight([1, 2, 3], 5); - * // => [] - * - * _.dropRight([1, 2, 3], 0); - * // => [1, 2, 3] - */ - function dropRight(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = (guard || n === undefined) ? 1 : toInteger(n); - n = length - n; - return baseSlice(array, 0, n < 0 ? 0 : n); - } - - /** - * Creates a slice of `array` excluding elements dropped from the end. - * Elements are dropped until `predicate` returns falsey. The predicate is - * invoked with three arguments: (value, index, array). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the slice of `array`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': false } - * ]; - * - * _.dropRightWhile(users, function(o) { return !o.active; }); - * // => objects for ['barney'] - * - * // The `_.matches` iteratee shorthand. - * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false }); - * // => objects for ['barney', 'fred'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.dropRightWhile(users, ['active', false]); - * // => objects for ['barney'] - * - * // The `_.property` iteratee shorthand. - * _.dropRightWhile(users, 'active'); - * // => objects for ['barney', 'fred', 'pebbles'] - */ - function dropRightWhile(array, predicate) { - return (array && array.length) - ? baseWhile(array, getIteratee(predicate, 3), true, true) - : []; - } - - /** - * Creates a slice of `array` excluding elements dropped from the beginning. - * Elements are dropped until `predicate` returns falsey. The predicate is - * invoked with three arguments: (value, index, array). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the slice of `array`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': false }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': true } - * ]; - * - * _.dropWhile(users, function(o) { return !o.active; }); - * // => objects for ['pebbles'] - * - * // The `_.matches` iteratee shorthand. - * _.dropWhile(users, { 'user': 'barney', 'active': false }); - * // => objects for ['fred', 'pebbles'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.dropWhile(users, ['active', false]); - * // => objects for ['pebbles'] - * - * // The `_.property` iteratee shorthand. - * _.dropWhile(users, 'active'); - * // => objects for ['barney', 'fred', 'pebbles'] - */ - function dropWhile(array, predicate) { - return (array && array.length) - ? baseWhile(array, getIteratee(predicate, 3), true) - : []; - } - - /** - * Fills elements of `array` with `value` from `start` up to, but not - * including, `end`. - * - * **Note:** This method mutates `array`. - * - * @static - * @memberOf _ - * @since 3.2.0 - * @category Array - * @param {Array} array The array to fill. - * @param {*} value The value to fill `array` with. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns `array`. - * @example - * - * var array = [1, 2, 3]; - * - * _.fill(array, 'a'); - * console.log(array); - * // => ['a', 'a', 'a'] - * - * _.fill(Array(3), 2); - * // => [2, 2, 2] - * - * _.fill([4, 6, 8, 10], '*', 1, 3); - * // => [4, '*', '*', 10] - */ - function fill(array, value, start, end) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - if (start && typeof start != 'number' && isIterateeCall(array, value, start)) { - start = 0; - end = length; - } - return baseFill(array, value, start, end); - } - - /** - * This method is like `_.find` except that it returns the index of the first - * element `predicate` returns truthy for instead of the element itself. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=0] The index to search from. - * @returns {number} Returns the index of the found element, else `-1`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': false }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': true } - * ]; - * - * _.findIndex(users, function(o) { return o.user == 'barney'; }); - * // => 0 - * - * // The `_.matches` iteratee shorthand. - * _.findIndex(users, { 'user': 'fred', 'active': false }); - * // => 1 - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findIndex(users, ['active', false]); - * // => 0 - * - * // The `_.property` iteratee shorthand. - * _.findIndex(users, 'active'); - * // => 2 - */ - function findIndex(array, predicate, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = fromIndex == null ? 0 : toInteger(fromIndex); - if (index < 0) { - index = nativeMax(length + index, 0); - } - return baseFindIndex(array, getIteratee(predicate, 3), index); - } - - /** - * This method is like `_.findIndex` except that it iterates over elements - * of `collection` from right to left. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=array.length-1] The index to search from. - * @returns {number} Returns the index of the found element, else `-1`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': false } - * ]; - * - * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); - * // => 2 - * - * // The `_.matches` iteratee shorthand. - * _.findLastIndex(users, { 'user': 'barney', 'active': true }); - * // => 0 - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findLastIndex(users, ['active', false]); - * // => 2 - * - * // The `_.property` iteratee shorthand. - * _.findLastIndex(users, 'active'); - * // => 0 - */ - function findLastIndex(array, predicate, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = length - 1; - if (fromIndex !== undefined) { - index = toInteger(fromIndex); - index = fromIndex < 0 - ? nativeMax(length + index, 0) - : nativeMin(index, length - 1); - } - return baseFindIndex(array, getIteratee(predicate, 3), index, true); - } - - /** - * Flattens `array` a single level deep. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to flatten. - * @returns {Array} Returns the new flattened array. - * @example - * - * _.flatten([1, [2, [3, [4]], 5]]); - * // => [1, 2, [3, [4]], 5] - */ - function flatten(array) { - var length = array == null ? 0 : array.length; - return length ? baseFlatten(array, 1) : []; - } - - /** - * Recursively flattens `array`. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to flatten. - * @returns {Array} Returns the new flattened array. - * @example - * - * _.flattenDeep([1, [2, [3, [4]], 5]]); - * // => [1, 2, 3, 4, 5] - */ - function flattenDeep(array) { - var length = array == null ? 0 : array.length; - return length ? baseFlatten(array, INFINITY) : []; - } - - /** - * Recursively flatten `array` up to `depth` times. - * - * @static - * @memberOf _ - * @since 4.4.0 - * @category Array - * @param {Array} array The array to flatten. - * @param {number} [depth=1] The maximum recursion depth. - * @returns {Array} Returns the new flattened array. - * @example - * - * var array = [1, [2, [3, [4]], 5]]; - * - * _.flattenDepth(array, 1); - * // => [1, 2, [3, [4]], 5] - * - * _.flattenDepth(array, 2); - * // => [1, 2, 3, [4], 5] - */ - function flattenDepth(array, depth) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - depth = depth === undefined ? 1 : toInteger(depth); - return baseFlatten(array, depth); - } - - /** - * The inverse of `_.toPairs`; this method returns an object composed - * from key-value `pairs`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} pairs The key-value pairs. - * @returns {Object} Returns the new object. - * @example - * - * _.fromPairs([['a', 1], ['b', 2]]); - * // => { 'a': 1, 'b': 2 } - */ - function fromPairs(pairs) { - var index = -1, - length = pairs == null ? 0 : pairs.length, - result = {}; - - while (++index < length) { - var pair = pairs[index]; - result[pair[0]] = pair[1]; - } - return result; - } - - /** - * Gets the first element of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @alias first - * @category Array - * @param {Array} array The array to query. - * @returns {*} Returns the first element of `array`. - * @example - * - * _.head([1, 2, 3]); - * // => 1 - * - * _.head([]); - * // => undefined - */ - function head(array) { - return (array && array.length) ? array[0] : undefined; - } - - /** - * Gets the index at which the first occurrence of `value` is found in `array` - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. If `fromIndex` is negative, it's used as the - * offset from the end of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} [fromIndex=0] The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.indexOf([1, 2, 1, 2], 2); - * // => 1 - * - * // Search from the `fromIndex`. - * _.indexOf([1, 2, 1, 2], 2, 2); - * // => 3 - */ - function indexOf(array, value, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = fromIndex == null ? 0 : toInteger(fromIndex); - if (index < 0) { - index = nativeMax(length + index, 0); - } - return baseIndexOf(array, value, index); - } - - /** - * Gets all but the last element of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to query. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.initial([1, 2, 3]); - * // => [1, 2] - */ - function initial(array) { - var length = array == null ? 0 : array.length; - return length ? baseSlice(array, 0, -1) : []; - } - - /** - * Creates an array of unique values that are included in all given arrays - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. The order and references of result values are - * determined by the first array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @returns {Array} Returns the new array of intersecting values. - * @example - * - * _.intersection([2, 1], [2, 3]); - * // => [2] - */ - var intersection = baseRest(function(arrays) { - var mapped = arrayMap(arrays, castArrayLikeObject); - return (mapped.length && mapped[0] === arrays[0]) - ? baseIntersection(mapped) - : []; - }); - - /** - * This method is like `_.intersection` except that it accepts `iteratee` - * which is invoked for each element of each `arrays` to generate the criterion - * by which they're compared. The order and references of result values are - * determined by the first array. The iteratee is invoked with one argument: - * (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new array of intersecting values. - * @example - * - * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor); - * // => [2.1] - * - * // The `_.property` iteratee shorthand. - * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 1 }] - */ - var intersectionBy = baseRest(function(arrays) { - var iteratee = last(arrays), - mapped = arrayMap(arrays, castArrayLikeObject); - - if (iteratee === last(mapped)) { - iteratee = undefined; - } else { - mapped.pop(); - } - return (mapped.length && mapped[0] === arrays[0]) - ? baseIntersection(mapped, getIteratee(iteratee, 2)) - : []; - }); - - /** - * This method is like `_.intersection` except that it accepts `comparator` - * which is invoked to compare elements of `arrays`. The order and references - * of result values are determined by the first array. The comparator is - * invoked with two arguments: (arrVal, othVal). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of intersecting values. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; - * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; - * - * _.intersectionWith(objects, others, _.isEqual); - * // => [{ 'x': 1, 'y': 2 }] - */ - var intersectionWith = baseRest(function(arrays) { - var comparator = last(arrays), - mapped = arrayMap(arrays, castArrayLikeObject); - - comparator = typeof comparator == 'function' ? comparator : undefined; - if (comparator) { - mapped.pop(); - } - return (mapped.length && mapped[0] === arrays[0]) - ? baseIntersection(mapped, undefined, comparator) - : []; - }); - - /** - * Converts all elements in `array` into a string separated by `separator`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to convert. - * @param {string} [separator=','] The element separator. - * @returns {string} Returns the joined string. - * @example - * - * _.join(['a', 'b', 'c'], '~'); - * // => 'a~b~c' - */ - function join(array, separator) { - return array == null ? '' : nativeJoin.call(array, separator); - } - - /** - * Gets the last element of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to query. - * @returns {*} Returns the last element of `array`. - * @example - * - * _.last([1, 2, 3]); - * // => 3 - */ - function last(array) { - var length = array == null ? 0 : array.length; - return length ? array[length - 1] : undefined; - } - - /** - * This method is like `_.indexOf` except that it iterates over elements of - * `array` from right to left. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} [fromIndex=array.length-1] The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.lastIndexOf([1, 2, 1, 2], 2); - * // => 3 - * - * // Search from the `fromIndex`. - * _.lastIndexOf([1, 2, 1, 2], 2, 2); - * // => 1 - */ - function lastIndexOf(array, value, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = length; - if (fromIndex !== undefined) { - index = toInteger(fromIndex); - index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); - } - return value === value - ? strictLastIndexOf(array, value, index) - : baseFindIndex(array, baseIsNaN, index, true); - } - - /** - * Gets the element at index `n` of `array`. If `n` is negative, the nth - * element from the end is returned. - * - * @static - * @memberOf _ - * @since 4.11.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=0] The index of the element to return. - * @returns {*} Returns the nth element of `array`. - * @example - * - * var array = ['a', 'b', 'c', 'd']; - * - * _.nth(array, 1); - * // => 'b' - * - * _.nth(array, -2); - * // => 'c'; - */ - function nth(array, n) { - return (array && array.length) ? baseNth(array, toInteger(n)) : undefined; - } - - /** - * Removes all given values from `array` using - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove` - * to remove elements from an array by predicate. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {...*} [values] The values to remove. - * @returns {Array} Returns `array`. - * @example - * - * var array = ['a', 'b', 'c', 'a', 'b', 'c']; - * - * _.pull(array, 'a', 'c'); - * console.log(array); - * // => ['b', 'b'] - */ - var pull = baseRest(pullAll); - - /** - * This method is like `_.pull` except that it accepts an array of values to remove. - * - * **Note:** Unlike `_.difference`, this method mutates `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {Array} values The values to remove. - * @returns {Array} Returns `array`. - * @example - * - * var array = ['a', 'b', 'c', 'a', 'b', 'c']; - * - * _.pullAll(array, ['a', 'c']); - * console.log(array); - * // => ['b', 'b'] - */ - function pullAll(array, values) { - return (array && array.length && values && values.length) - ? basePullAll(array, values) - : array; - } - - /** - * This method is like `_.pullAll` except that it accepts `iteratee` which is - * invoked for each element of `array` and `values` to generate the criterion - * by which they're compared. The iteratee is invoked with one argument: (value). - * - * **Note:** Unlike `_.differenceBy`, this method mutates `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {Array} values The values to remove. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns `array`. - * @example - * - * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }]; - * - * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x'); - * console.log(array); - * // => [{ 'x': 2 }] - */ - function pullAllBy(array, values, iteratee) { - return (array && array.length && values && values.length) - ? basePullAll(array, values, getIteratee(iteratee, 2)) - : array; - } - - /** - * This method is like `_.pullAll` except that it accepts `comparator` which - * is invoked to compare elements of `array` to `values`. The comparator is - * invoked with two arguments: (arrVal, othVal). - * - * **Note:** Unlike `_.differenceWith`, this method mutates `array`. - * - * @static - * @memberOf _ - * @since 4.6.0 - * @category Array - * @param {Array} array The array to modify. - * @param {Array} values The values to remove. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns `array`. - * @example - * - * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }]; - * - * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual); - * console.log(array); - * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }] - */ - function pullAllWith(array, values, comparator) { - return (array && array.length && values && values.length) - ? basePullAll(array, values, undefined, comparator) - : array; - } - - /** - * Removes elements from `array` corresponding to `indexes` and returns an - * array of removed elements. - * - * **Note:** Unlike `_.at`, this method mutates `array`. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {...(number|number[])} [indexes] The indexes of elements to remove. - * @returns {Array} Returns the new array of removed elements. - * @example - * - * var array = ['a', 'b', 'c', 'd']; - * var pulled = _.pullAt(array, [1, 3]); - * - * console.log(array); - * // => ['a', 'c'] - * - * console.log(pulled); - * // => ['b', 'd'] - */ - var pullAt = flatRest(function(array, indexes) { - var length = array == null ? 0 : array.length, - result = baseAt(array, indexes); - - basePullAt(array, arrayMap(indexes, function(index) { - return isIndex(index, length) ? +index : index; - }).sort(compareAscending)); - - return result; - }); - - /** - * Removes all elements from `array` that `predicate` returns truthy for - * and returns an array of the removed elements. The predicate is invoked - * with three arguments: (value, index, array). - * - * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull` - * to pull elements from an array by value. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new array of removed elements. - * @example - * - * var array = [1, 2, 3, 4]; - * var evens = _.remove(array, function(n) { - * return n % 2 == 0; - * }); - * - * console.log(array); - * // => [1, 3] - * - * console.log(evens); - * // => [2, 4] - */ - function remove(array, predicate) { - var result = []; - if (!(array && array.length)) { - return result; - } - var index = -1, - indexes = [], - length = array.length; - - predicate = getIteratee(predicate, 3); - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result.push(value); - indexes.push(index); - } - } - basePullAt(array, indexes); - return result; - } - - /** - * Reverses `array` so that the first element becomes the last, the second - * element becomes the second to last, and so on. - * - * **Note:** This method mutates `array` and is based on - * [`Array#reverse`](https://mdn.io/Array/reverse). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to modify. - * @returns {Array} Returns `array`. - * @example - * - * var array = [1, 2, 3]; - * - * _.reverse(array); - * // => [3, 2, 1] - * - * console.log(array); - * // => [3, 2, 1] - */ - function reverse(array) { - return array == null ? array : nativeReverse.call(array); - } - - /** - * Creates a slice of `array` from `start` up to, but not including, `end`. - * - * **Note:** This method is used instead of - * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are - * returned. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to slice. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the slice of `array`. - */ - function slice(array, start, end) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - if (end && typeof end != 'number' && isIterateeCall(array, start, end)) { - start = 0; - end = length; - } - else { - start = start == null ? 0 : toInteger(start); - end = end === undefined ? length : toInteger(end); - } - return baseSlice(array, start, end); - } - - /** - * Uses a binary search to determine the lowest index at which `value` - * should be inserted into `array` in order to maintain its sort order. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * _.sortedIndex([30, 50], 40); - * // => 1 - */ - function sortedIndex(array, value) { - return baseSortedIndex(array, value); - } - - /** - * This method is like `_.sortedIndex` except that it accepts `iteratee` - * which is invoked for `value` and each element of `array` to compute their - * sort ranking. The iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * var objects = [{ 'x': 4 }, { 'x': 5 }]; - * - * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); - * // => 0 - * - * // The `_.property` iteratee shorthand. - * _.sortedIndexBy(objects, { 'x': 4 }, 'x'); - * // => 0 - */ - function sortedIndexBy(array, value, iteratee) { - return baseSortedIndexBy(array, value, getIteratee(iteratee, 2)); - } - - /** - * This method is like `_.indexOf` except that it performs a binary - * search on a sorted `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.sortedIndexOf([4, 5, 5, 5, 6], 5); - * // => 1 - */ - function sortedIndexOf(array, value) { - var length = array == null ? 0 : array.length; - if (length) { - var index = baseSortedIndex(array, value); - if (index < length && eq(array[index], value)) { - return index; - } - } - return -1; - } - - /** - * This method is like `_.sortedIndex` except that it returns the highest - * index at which `value` should be inserted into `array` in order to - * maintain its sort order. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * _.sortedLastIndex([4, 5, 5, 5, 6], 5); - * // => 4 - */ - function sortedLastIndex(array, value) { - return baseSortedIndex(array, value, true); - } - - /** - * This method is like `_.sortedLastIndex` except that it accepts `iteratee` - * which is invoked for `value` and each element of `array` to compute their - * sort ranking. The iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * var objects = [{ 'x': 4 }, { 'x': 5 }]; - * - * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); - * // => 1 - * - * // The `_.property` iteratee shorthand. - * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x'); - * // => 1 - */ - function sortedLastIndexBy(array, value, iteratee) { - return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true); - } - - /** - * This method is like `_.lastIndexOf` except that it performs a binary - * search on a sorted `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5); - * // => 3 - */ - function sortedLastIndexOf(array, value) { - var length = array == null ? 0 : array.length; - if (length) { - var index = baseSortedIndex(array, value, true) - 1; - if (eq(array[index], value)) { - return index; - } - } - return -1; - } - - /** - * This method is like `_.uniq` except that it's designed and optimized - * for sorted arrays. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.sortedUniq([1, 1, 2]); - * // => [1, 2] - */ - function sortedUniq(array) { - return (array && array.length) - ? baseSortedUniq(array) - : []; - } - - /** - * This method is like `_.uniqBy` except that it's designed and optimized - * for sorted arrays. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor); - * // => [1.1, 2.3] - */ - function sortedUniqBy(array, iteratee) { - return (array && array.length) - ? baseSortedUniq(array, getIteratee(iteratee, 2)) - : []; - } - - /** - * Gets all but the first element of `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to query. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.tail([1, 2, 3]); - * // => [2, 3] - */ - function tail(array) { - var length = array == null ? 0 : array.length; - return length ? baseSlice(array, 1, length) : []; - } - - /** - * Creates a slice of `array` with `n` elements taken from the beginning. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to take. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.take([1, 2, 3]); - * // => [1] - * - * _.take([1, 2, 3], 2); - * // => [1, 2] - * - * _.take([1, 2, 3], 5); - * // => [1, 2, 3] - * - * _.take([1, 2, 3], 0); - * // => [] - */ - function take(array, n, guard) { - if (!(array && array.length)) { - return []; - } - n = (guard || n === undefined) ? 1 : toInteger(n); - return baseSlice(array, 0, n < 0 ? 0 : n); - } - - /** - * Creates a slice of `array` with `n` elements taken from the end. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to take. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.takeRight([1, 2, 3]); - * // => [3] - * - * _.takeRight([1, 2, 3], 2); - * // => [2, 3] - * - * _.takeRight([1, 2, 3], 5); - * // => [1, 2, 3] - * - * _.takeRight([1, 2, 3], 0); - * // => [] - */ - function takeRight(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = (guard || n === undefined) ? 1 : toInteger(n); - n = length - n; - return baseSlice(array, n < 0 ? 0 : n, length); - } - - /** - * Creates a slice of `array` with elements taken from the end. Elements are - * taken until `predicate` returns falsey. The predicate is invoked with - * three arguments: (value, index, array). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the slice of `array`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': false } - * ]; - * - * _.takeRightWhile(users, function(o) { return !o.active; }); - * // => objects for ['fred', 'pebbles'] - * - * // The `_.matches` iteratee shorthand. - * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false }); - * // => objects for ['pebbles'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.takeRightWhile(users, ['active', false]); - * // => objects for ['fred', 'pebbles'] - * - * // The `_.property` iteratee shorthand. - * _.takeRightWhile(users, 'active'); - * // => [] - */ - function takeRightWhile(array, predicate) { - return (array && array.length) - ? baseWhile(array, getIteratee(predicate, 3), false, true) - : []; - } - - /** - * Creates a slice of `array` with elements taken from the beginning. Elements - * are taken until `predicate` returns falsey. The predicate is invoked with - * three arguments: (value, index, array). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the slice of `array`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': false }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': true } - * ]; - * - * _.takeWhile(users, function(o) { return !o.active; }); - * // => objects for ['barney', 'fred'] - * - * // The `_.matches` iteratee shorthand. - * _.takeWhile(users, { 'user': 'barney', 'active': false }); - * // => objects for ['barney'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.takeWhile(users, ['active', false]); - * // => objects for ['barney', 'fred'] - * - * // The `_.property` iteratee shorthand. - * _.takeWhile(users, 'active'); - * // => [] - */ - function takeWhile(array, predicate) { - return (array && array.length) - ? baseWhile(array, getIteratee(predicate, 3)) - : []; - } - - /** - * Creates an array of unique values, in order, from all given arrays using - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @returns {Array} Returns the new array of combined values. - * @example - * - * _.union([2], [1, 2]); - * // => [2, 1] - */ - var union = baseRest(function(arrays) { - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); - }); - - /** - * This method is like `_.union` except that it accepts `iteratee` which is - * invoked for each element of each `arrays` to generate the criterion by - * which uniqueness is computed. Result values are chosen from the first - * array in which the value occurs. The iteratee is invoked with one argument: - * (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new array of combined values. - * @example - * - * _.unionBy([2.1], [1.2, 2.3], Math.floor); - * // => [2.1, 1.2] - * - * // The `_.property` iteratee shorthand. - * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 1 }, { 'x': 2 }] - */ - var unionBy = baseRest(function(arrays) { - var iteratee = last(arrays); - if (isArrayLikeObject(iteratee)) { - iteratee = undefined; - } - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)); - }); - - /** - * This method is like `_.union` except that it accepts `comparator` which - * is invoked to compare elements of `arrays`. Result values are chosen from - * the first array in which the value occurs. The comparator is invoked - * with two arguments: (arrVal, othVal). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of combined values. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; - * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; - * - * _.unionWith(objects, others, _.isEqual); - * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] - */ - var unionWith = baseRest(function(arrays) { - var comparator = last(arrays); - comparator = typeof comparator == 'function' ? comparator : undefined; - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator); - }); - - /** - * Creates a duplicate-free version of an array, using - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons, in which only the first occurrence of each element - * is kept. The order of result values is determined by the order they occur - * in the array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.uniq([2, 1, 2]); - * // => [2, 1] - */ - function uniq(array) { - return (array && array.length) ? baseUniq(array) : []; - } - - /** - * This method is like `_.uniq` except that it accepts `iteratee` which is - * invoked for each element in `array` to generate the criterion by which - * uniqueness is computed. The order of result values is determined by the - * order they occur in the array. The iteratee is invoked with one argument: - * (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.uniqBy([2.1, 1.2, 2.3], Math.floor); - * // => [2.1, 1.2] - * - * // The `_.property` iteratee shorthand. - * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 1 }, { 'x': 2 }] - */ - function uniqBy(array, iteratee) { - return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : []; - } - - /** - * This method is like `_.uniq` except that it accepts `comparator` which - * is invoked to compare elements of `array`. The order of result values is - * determined by the order they occur in the array.The comparator is invoked - * with two arguments: (arrVal, othVal). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }]; - * - * _.uniqWith(objects, _.isEqual); - * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }] - */ - function uniqWith(array, comparator) { - comparator = typeof comparator == 'function' ? comparator : undefined; - return (array && array.length) ? baseUniq(array, undefined, comparator) : []; - } - - /** - * This method is like `_.zip` except that it accepts an array of grouped - * elements and creates an array regrouping the elements to their pre-zip - * configuration. - * - * @static - * @memberOf _ - * @since 1.2.0 - * @category Array - * @param {Array} array The array of grouped elements to process. - * @returns {Array} Returns the new array of regrouped elements. - * @example - * - * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]); - * // => [['a', 1, true], ['b', 2, false]] - * - * _.unzip(zipped); - * // => [['a', 'b'], [1, 2], [true, false]] - */ - function unzip(array) { - if (!(array && array.length)) { - return []; - } - var length = 0; - array = arrayFilter(array, function(group) { - if (isArrayLikeObject(group)) { - length = nativeMax(group.length, length); - return true; - } - }); - return baseTimes(length, function(index) { - return arrayMap(array, baseProperty(index)); - }); - } - - /** - * This method is like `_.unzip` except that it accepts `iteratee` to specify - * how regrouped values should be combined. The iteratee is invoked with the - * elements of each group: (...group). - * - * @static - * @memberOf _ - * @since 3.8.0 - * @category Array - * @param {Array} array The array of grouped elements to process. - * @param {Function} [iteratee=_.identity] The function to combine - * regrouped values. - * @returns {Array} Returns the new array of regrouped elements. - * @example - * - * var zipped = _.zip([1, 2], [10, 20], [100, 200]); - * // => [[1, 10, 100], [2, 20, 200]] - * - * _.unzipWith(zipped, _.add); - * // => [3, 30, 300] - */ - function unzipWith(array, iteratee) { - if (!(array && array.length)) { - return []; - } - var result = unzip(array); - if (iteratee == null) { - return result; - } - return arrayMap(result, function(group) { - return apply(iteratee, undefined, group); - }); - } - - /** - * Creates an array excluding all given values using - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * **Note:** Unlike `_.pull`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {...*} [values] The values to exclude. - * @returns {Array} Returns the new array of filtered values. - * @see _.difference, _.xor - * @example - * - * _.without([2, 1, 2, 3], 1, 2); - * // => [3] - */ - var without = baseRest(function(array, values) { - return isArrayLikeObject(array) - ? baseDifference(array, values) - : []; - }); - - /** - * Creates an array of unique values that is the - * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference) - * of the given arrays. The order of result values is determined by the order - * they occur in the arrays. - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @returns {Array} Returns the new array of filtered values. - * @see _.difference, _.without - * @example - * - * _.xor([2, 1], [2, 3]); - * // => [1, 3] - */ - var xor = baseRest(function(arrays) { - return baseXor(arrayFilter(arrays, isArrayLikeObject)); - }); - - /** - * This method is like `_.xor` except that it accepts `iteratee` which is - * invoked for each element of each `arrays` to generate the criterion by - * which by which they're compared. The order of result values is determined - * by the order they occur in the arrays. The iteratee is invoked with one - * argument: (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor); - * // => [1.2, 3.4] - * - * // The `_.property` iteratee shorthand. - * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 2 }] - */ - var xorBy = baseRest(function(arrays) { - var iteratee = last(arrays); - if (isArrayLikeObject(iteratee)) { - iteratee = undefined; - } - return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2)); - }); - - /** - * This method is like `_.xor` except that it accepts `comparator` which is - * invoked to compare elements of `arrays`. The order of result values is - * determined by the order they occur in the arrays. The comparator is invoked - * with two arguments: (arrVal, othVal). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; - * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; - * - * _.xorWith(objects, others, _.isEqual); - * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] - */ - var xorWith = baseRest(function(arrays) { - var comparator = last(arrays); - comparator = typeof comparator == 'function' ? comparator : undefined; - return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator); - }); - - /** - * Creates an array of grouped elements, the first of which contains the - * first elements of the given arrays, the second of which contains the - * second elements of the given arrays, and so on. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {...Array} [arrays] The arrays to process. - * @returns {Array} Returns the new array of grouped elements. - * @example - * - * _.zip(['a', 'b'], [1, 2], [true, false]); - * // => [['a', 1, true], ['b', 2, false]] - */ - var zip = baseRest(unzip); - - /** - * This method is like `_.fromPairs` except that it accepts two arrays, - * one of property identifiers and one of corresponding values. - * - * @static - * @memberOf _ - * @since 0.4.0 - * @category Array - * @param {Array} [props=[]] The property identifiers. - * @param {Array} [values=[]] The property values. - * @returns {Object} Returns the new object. - * @example - * - * _.zipObject(['a', 'b'], [1, 2]); - * // => { 'a': 1, 'b': 2 } - */ - function zipObject(props, values) { - return baseZipObject(props || [], values || [], assignValue); - } - - /** - * This method is like `_.zipObject` except that it supports property paths. - * - * @static - * @memberOf _ - * @since 4.1.0 - * @category Array - * @param {Array} [props=[]] The property identifiers. - * @param {Array} [values=[]] The property values. - * @returns {Object} Returns the new object. - * @example - * - * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]); - * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } } - */ - function zipObjectDeep(props, values) { - return baseZipObject(props || [], values || [], baseSet); - } - - /** - * This method is like `_.zip` except that it accepts `iteratee` to specify - * how grouped values should be combined. The iteratee is invoked with the - * elements of each group: (...group). - * - * @static - * @memberOf _ - * @since 3.8.0 - * @category Array - * @param {...Array} [arrays] The arrays to process. - * @param {Function} [iteratee=_.identity] The function to combine - * grouped values. - * @returns {Array} Returns the new array of grouped elements. - * @example - * - * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) { - * return a + b + c; - * }); - * // => [111, 222] - */ - var zipWith = baseRest(function(arrays) { - var length = arrays.length, - iteratee = length > 1 ? arrays[length - 1] : undefined; - - iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined; - return unzipWith(arrays, iteratee); - }); - - /*------------------------------------------------------------------------*/ - - /** - * Creates a `lodash` wrapper instance that wraps `value` with explicit method - * chain sequences enabled. The result of such sequences must be unwrapped - * with `_#value`. - * - * @static - * @memberOf _ - * @since 1.3.0 - * @category Seq - * @param {*} value The value to wrap. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 }, - * { 'user': 'pebbles', 'age': 1 } - * ]; - * - * var youngest = _ - * .chain(users) - * .sortBy('age') - * .map(function(o) { - * return o.user + ' is ' + o.age; - * }) - * .head() - * .value(); - * // => 'pebbles is 1' - */ - function chain(value) { - var result = lodash(value); - result.__chain__ = true; - return result; - } - - /** - * This method invokes `interceptor` and returns `value`. The interceptor - * is invoked with one argument; (value). The purpose of this method is to - * "tap into" a method chain sequence in order to modify intermediate results. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Seq - * @param {*} value The value to provide to `interceptor`. - * @param {Function} interceptor The function to invoke. - * @returns {*} Returns `value`. - * @example - * - * _([1, 2, 3]) - * .tap(function(array) { - * // Mutate input array. - * array.pop(); - * }) - * .reverse() - * .value(); - * // => [2, 1] - */ - function tap(value, interceptor) { - interceptor(value); - return value; - } - - /** - * This method is like `_.tap` except that it returns the result of `interceptor`. - * The purpose of this method is to "pass thru" values replacing intermediate - * results in a method chain sequence. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Seq - * @param {*} value The value to provide to `interceptor`. - * @param {Function} interceptor The function to invoke. - * @returns {*} Returns the result of `interceptor`. - * @example - * - * _(' abc ') - * .chain() - * .trim() - * .thru(function(value) { - * return [value]; - * }) - * .value(); - * // => ['abc'] - */ - function thru(value, interceptor) { - return interceptor(value); - } - - /** - * This method is the wrapper version of `_.at`. - * - * @name at - * @memberOf _ - * @since 1.0.0 - * @category Seq - * @param {...(string|string[])} [paths] The property paths to pick. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; - * - * _(object).at(['a[0].b.c', 'a[1]']).value(); - * // => [3, 4] - */ - var wrapperAt = flatRest(function(paths) { - var length = paths.length, - start = length ? paths[0] : 0, - value = this.__wrapped__, - interceptor = function(object) { return baseAt(object, paths); }; - - if (length > 1 || this.__actions__.length || - !(value instanceof LazyWrapper) || !isIndex(start)) { - return this.thru(interceptor); - } - value = value.slice(start, +start + (length ? 1 : 0)); - value.__actions__.push({ - 'func': thru, - 'args': [interceptor], - 'thisArg': undefined - }); - return new LodashWrapper(value, this.__chain__).thru(function(array) { - if (length && !array.length) { - array.push(undefined); - } - return array; - }); - }); - - /** - * Creates a `lodash` wrapper instance with explicit method chain sequences enabled. - * - * @name chain - * @memberOf _ - * @since 0.1.0 - * @category Seq - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 } - * ]; - * - * // A sequence without explicit chaining. - * _(users).head(); - * // => { 'user': 'barney', 'age': 36 } - * - * // A sequence with explicit chaining. - * _(users) - * .chain() - * .head() - * .pick('user') - * .value(); - * // => { 'user': 'barney' } - */ - function wrapperChain() { - return chain(this); - } - - /** - * Executes the chain sequence and returns the wrapped result. - * - * @name commit - * @memberOf _ - * @since 3.2.0 - * @category Seq - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var array = [1, 2]; - * var wrapped = _(array).push(3); - * - * console.log(array); - * // => [1, 2] - * - * wrapped = wrapped.commit(); - * console.log(array); - * // => [1, 2, 3] - * - * wrapped.last(); - * // => 3 - * - * console.log(array); - * // => [1, 2, 3] - */ - function wrapperCommit() { - return new LodashWrapper(this.value(), this.__chain__); - } - - /** - * Gets the next value on a wrapped object following the - * [iterator protocol](https://mdn.io/iteration_protocols#iterator). - * - * @name next - * @memberOf _ - * @since 4.0.0 - * @category Seq - * @returns {Object} Returns the next iterator value. - * @example - * - * var wrapped = _([1, 2]); - * - * wrapped.next(); - * // => { 'done': false, 'value': 1 } - * - * wrapped.next(); - * // => { 'done': false, 'value': 2 } - * - * wrapped.next(); - * // => { 'done': true, 'value': undefined } - */ - function wrapperNext() { - if (this.__values__ === undefined) { - this.__values__ = toArray(this.value()); - } - var done = this.__index__ >= this.__values__.length, - value = done ? undefined : this.__values__[this.__index__++]; - - return { 'done': done, 'value': value }; - } - - /** - * Enables the wrapper to be iterable. - * - * @name Symbol.iterator - * @memberOf _ - * @since 4.0.0 - * @category Seq - * @returns {Object} Returns the wrapper object. - * @example - * - * var wrapped = _([1, 2]); - * - * wrapped[Symbol.iterator]() === wrapped; - * // => true - * - * Array.from(wrapped); - * // => [1, 2] - */ - function wrapperToIterator() { - return this; - } - - /** - * Creates a clone of the chain sequence planting `value` as the wrapped value. - * - * @name plant - * @memberOf _ - * @since 3.2.0 - * @category Seq - * @param {*} value The value to plant. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * function square(n) { - * return n * n; - * } - * - * var wrapped = _([1, 2]).map(square); - * var other = wrapped.plant([3, 4]); - * - * other.value(); - * // => [9, 16] - * - * wrapped.value(); - * // => [1, 4] - */ - function wrapperPlant(value) { - var result, - parent = this; - - while (parent instanceof baseLodash) { - var clone = wrapperClone(parent); - clone.__index__ = 0; - clone.__values__ = undefined; - if (result) { - previous.__wrapped__ = clone; - } else { - result = clone; - } - var previous = clone; - parent = parent.__wrapped__; - } - previous.__wrapped__ = value; - return result; - } - - /** - * This method is the wrapper version of `_.reverse`. - * - * **Note:** This method mutates the wrapped array. - * - * @name reverse - * @memberOf _ - * @since 0.1.0 - * @category Seq - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var array = [1, 2, 3]; - * - * _(array).reverse().value() - * // => [3, 2, 1] - * - * console.log(array); - * // => [3, 2, 1] - */ - function wrapperReverse() { - var value = this.__wrapped__; - if (value instanceof LazyWrapper) { - var wrapped = value; - if (this.__actions__.length) { - wrapped = new LazyWrapper(this); - } - wrapped = wrapped.reverse(); - wrapped.__actions__.push({ - 'func': thru, - 'args': [reverse], - 'thisArg': undefined - }); - return new LodashWrapper(wrapped, this.__chain__); - } - return this.thru(reverse); - } - - /** - * Executes the chain sequence to resolve the unwrapped value. - * - * @name value - * @memberOf _ - * @since 0.1.0 - * @alias toJSON, valueOf - * @category Seq - * @returns {*} Returns the resolved unwrapped value. - * @example - * - * _([1, 2, 3]).value(); - * // => [1, 2, 3] - */ - function wrapperValue() { - return baseWrapperValue(this.__wrapped__, this.__actions__); - } - - /*------------------------------------------------------------------------*/ - - /** - * Creates an object composed of keys generated from the results of running - * each element of `collection` thru `iteratee`. The corresponding value of - * each key is the number of times the key was returned by `iteratee`. The - * iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 0.5.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The iteratee to transform keys. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * _.countBy([6.1, 4.2, 6.3], Math.floor); - * // => { '4': 1, '6': 2 } - * - * // The `_.property` iteratee shorthand. - * _.countBy(['one', 'two', 'three'], 'length'); - * // => { '3': 2, '5': 1 } - */ - var countBy = createAggregator(function(result, value, key) { - if (hasOwnProperty.call(result, key)) { - ++result[key]; - } else { - baseAssignValue(result, key, 1); - } - }); - - /** - * Checks if `predicate` returns truthy for **all** elements of `collection`. - * Iteration is stopped once `predicate` returns falsey. The predicate is - * invoked with three arguments: (value, index|key, collection). - * - * **Note:** This method returns `true` for - * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because - * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of - * elements of empty collections. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false`. - * @example - * - * _.every([true, 1, null, 'yes'], Boolean); - * // => false - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': false } - * ]; - * - * // The `_.matches` iteratee shorthand. - * _.every(users, { 'user': 'barney', 'active': false }); - * // => false - * - * // The `_.matchesProperty` iteratee shorthand. - * _.every(users, ['active', false]); - * // => true - * - * // The `_.property` iteratee shorthand. - * _.every(users, 'active'); - * // => false - */ - function every(collection, predicate, guard) { - var func = isArray(collection) ? arrayEvery : baseEvery; - if (guard && isIterateeCall(collection, predicate, guard)) { - predicate = undefined; - } - return func(collection, getIteratee(predicate, 3)); - } - - /** - * Iterates over elements of `collection`, returning an array of all elements - * `predicate` returns truthy for. The predicate is invoked with three - * arguments: (value, index|key, collection). - * - * **Note:** Unlike `_.remove`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - * @see _.reject - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': true }, - * { 'user': 'fred', 'age': 40, 'active': false } - * ]; - * - * _.filter(users, function(o) { return !o.active; }); - * // => objects for ['fred'] - * - * // The `_.matches` iteratee shorthand. - * _.filter(users, { 'age': 36, 'active': true }); - * // => objects for ['barney'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.filter(users, ['active', false]); - * // => objects for ['fred'] - * - * // The `_.property` iteratee shorthand. - * _.filter(users, 'active'); - * // => objects for ['barney'] - */ - function filter(collection, predicate) { - var func = isArray(collection) ? arrayFilter : baseFilter; - return func(collection, getIteratee(predicate, 3)); - } - - /** - * Iterates over elements of `collection`, returning the first element - * `predicate` returns truthy for. The predicate is invoked with three - * arguments: (value, index|key, collection). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=0] The index to search from. - * @returns {*} Returns the matched element, else `undefined`. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': true }, - * { 'user': 'fred', 'age': 40, 'active': false }, - * { 'user': 'pebbles', 'age': 1, 'active': true } - * ]; - * - * _.find(users, function(o) { return o.age < 40; }); - * // => object for 'barney' - * - * // The `_.matches` iteratee shorthand. - * _.find(users, { 'age': 1, 'active': true }); - * // => object for 'pebbles' - * - * // The `_.matchesProperty` iteratee shorthand. - * _.find(users, ['active', false]); - * // => object for 'fred' - * - * // The `_.property` iteratee shorthand. - * _.find(users, 'active'); - * // => object for 'barney' - */ - var find = createFind(findIndex); - - /** - * This method is like `_.find` except that it iterates over elements of - * `collection` from right to left. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Collection - * @param {Array|Object} collection The collection to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=collection.length-1] The index to search from. - * @returns {*} Returns the matched element, else `undefined`. - * @example - * - * _.findLast([1, 2, 3, 4], function(n) { - * return n % 2 == 1; - * }); - * // => 3 - */ - var findLast = createFind(findLastIndex); - - /** - * Creates a flattened array of values by running each element in `collection` - * thru `iteratee` and flattening the mapped results. The iteratee is invoked - * with three arguments: (value, index|key, collection). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new flattened array. - * @example - * - * function duplicate(n) { - * return [n, n]; - * } - * - * _.flatMap([1, 2], duplicate); - * // => [1, 1, 2, 2] - */ - function flatMap(collection, iteratee) { - return baseFlatten(map(collection, iteratee), 1); - } - - /** - * This method is like `_.flatMap` except that it recursively flattens the - * mapped results. - * - * @static - * @memberOf _ - * @since 4.7.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new flattened array. - * @example - * - * function duplicate(n) { - * return [[[n, n]]]; - * } - * - * _.flatMapDeep([1, 2], duplicate); - * // => [1, 1, 2, 2] - */ - function flatMapDeep(collection, iteratee) { - return baseFlatten(map(collection, iteratee), INFINITY); - } - - /** - * This method is like `_.flatMap` except that it recursively flattens the - * mapped results up to `depth` times. - * - * @static - * @memberOf _ - * @since 4.7.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {number} [depth=1] The maximum recursion depth. - * @returns {Array} Returns the new flattened array. - * @example - * - * function duplicate(n) { - * return [[[n, n]]]; - * } - * - * _.flatMapDepth([1, 2], duplicate, 2); - * // => [[1, 1], [2, 2]] - */ - function flatMapDepth(collection, iteratee, depth) { - depth = depth === undefined ? 1 : toInteger(depth); - return baseFlatten(map(collection, iteratee), depth); - } - - /** - * Iterates over elements of `collection` and invokes `iteratee` for each element. - * The iteratee is invoked with three arguments: (value, index|key, collection). - * Iteratee functions may exit iteration early by explicitly returning `false`. - * - * **Note:** As with other "Collections" methods, objects with a "length" - * property are iterated like arrays. To avoid this behavior use `_.forIn` - * or `_.forOwn` for object iteration. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @alias each - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - * @see _.forEachRight - * @example - * - * _.forEach([1, 2], function(value) { - * console.log(value); - * }); - * // => Logs `1` then `2`. - * - * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { - * console.log(key); - * }); - * // => Logs 'a' then 'b' (iteration order is not guaranteed). - */ - function forEach(collection, iteratee) { - var func = isArray(collection) ? arrayEach : baseEach; - return func(collection, getIteratee(iteratee, 3)); - } - - /** - * This method is like `_.forEach` except that it iterates over elements of - * `collection` from right to left. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @alias eachRight - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - * @see _.forEach - * @example - * - * _.forEachRight([1, 2], function(value) { - * console.log(value); - * }); - * // => Logs `2` then `1`. - */ - function forEachRight(collection, iteratee) { - var func = isArray(collection) ? arrayEachRight : baseEachRight; - return func(collection, getIteratee(iteratee, 3)); - } - - /** - * Creates an object composed of keys generated from the results of running - * each element of `collection` thru `iteratee`. The order of grouped values - * is determined by the order they occur in `collection`. The corresponding - * value of each key is an array of elements responsible for generating the - * key. The iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The iteratee to transform keys. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * _.groupBy([6.1, 4.2, 6.3], Math.floor); - * // => { '4': [4.2], '6': [6.1, 6.3] } - * - * // The `_.property` iteratee shorthand. - * _.groupBy(['one', 'two', 'three'], 'length'); - * // => { '3': ['one', 'two'], '5': ['three'] } - */ - var groupBy = createAggregator(function(result, value, key) { - if (hasOwnProperty.call(result, key)) { - result[key].push(value); - } else { - baseAssignValue(result, key, [value]); - } - }); - - /** - * Checks if `value` is in `collection`. If `collection` is a string, it's - * checked for a substring of `value`, otherwise - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * is used for equality comparisons. If `fromIndex` is negative, it's used as - * the offset from the end of `collection`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object|string} collection The collection to inspect. - * @param {*} value The value to search for. - * @param {number} [fromIndex=0] The index to search from. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. - * @returns {boolean} Returns `true` if `value` is found, else `false`. - * @example - * - * _.includes([1, 2, 3], 1); - * // => true - * - * _.includes([1, 2, 3], 1, 2); - * // => false - * - * _.includes({ 'a': 1, 'b': 2 }, 1); - * // => true - * - * _.includes('abcd', 'bc'); - * // => true - */ - function includes(collection, value, fromIndex, guard) { - collection = isArrayLike(collection) ? collection : values(collection); - fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0; - - var length = collection.length; - if (fromIndex < 0) { - fromIndex = nativeMax(length + fromIndex, 0); - } - return isString(collection) - ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1) - : (!!length && baseIndexOf(collection, value, fromIndex) > -1); - } - - /** - * Invokes the method at `path` of each element in `collection`, returning - * an array of the results of each invoked method. Any additional arguments - * are provided to each invoked method. If `path` is a function, it's invoked - * for, and `this` bound to, each element in `collection`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Array|Function|string} path The path of the method to invoke or - * the function invoked per iteration. - * @param {...*} [args] The arguments to invoke each method with. - * @returns {Array} Returns the array of results. - * @example - * - * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort'); - * // => [[1, 5, 7], [1, 2, 3]] - * - * _.invokeMap([123, 456], String.prototype.split, ''); - * // => [['1', '2', '3'], ['4', '5', '6']] - */ - var invokeMap = baseRest(function(collection, path, args) { - var index = -1, - isFunc = typeof path == 'function', - result = isArrayLike(collection) ? Array(collection.length) : []; - - baseEach(collection, function(value) { - result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args); - }); - return result; - }); - - /** - * Creates an object composed of keys generated from the results of running - * each element of `collection` thru `iteratee`. The corresponding value of - * each key is the last element responsible for generating the key. The - * iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The iteratee to transform keys. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * var array = [ - * { 'dir': 'left', 'code': 97 }, - * { 'dir': 'right', 'code': 100 } - * ]; - * - * _.keyBy(array, function(o) { - * return String.fromCharCode(o.code); - * }); - * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } } - * - * _.keyBy(array, 'dir'); - * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } } - */ - var keyBy = createAggregator(function(result, value, key) { - baseAssignValue(result, key, value); - }); - - /** - * Creates an array of values by running each element in `collection` thru - * `iteratee`. The iteratee is invoked with three arguments: - * (value, index|key, collection). - * - * Many lodash methods are guarded to work as iteratees for methods like - * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. - * - * The guarded methods are: - * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, - * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`, - * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`, - * `template`, `trim`, `trimEnd`, `trimStart`, and `words` - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - * @example - * - * function square(n) { - * return n * n; - * } - * - * _.map([4, 8], square); - * // => [16, 64] - * - * _.map({ 'a': 4, 'b': 8 }, square); - * // => [16, 64] (iteration order is not guaranteed) - * - * var users = [ - * { 'user': 'barney' }, - * { 'user': 'fred' } - * ]; - * - * // The `_.property` iteratee shorthand. - * _.map(users, 'user'); - * // => ['barney', 'fred'] - */ - function map(collection, iteratee) { - var func = isArray(collection) ? arrayMap : baseMap; - return func(collection, getIteratee(iteratee, 3)); - } - - /** - * This method is like `_.sortBy` except that it allows specifying the sort - * orders of the iteratees to sort by. If `orders` is unspecified, all values - * are sorted in ascending order. Otherwise, specify an order of "desc" for - * descending or "asc" for ascending sort order of corresponding values. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]] - * The iteratees to sort by. - * @param {string[]} [orders] The sort orders of `iteratees`. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. - * @returns {Array} Returns the new sorted array. - * @example - * - * var users = [ - * { 'user': 'fred', 'age': 48 }, - * { 'user': 'barney', 'age': 34 }, - * { 'user': 'fred', 'age': 40 }, - * { 'user': 'barney', 'age': 36 } - * ]; - * - * // Sort by `user` in ascending order and by `age` in descending order. - * _.orderBy(users, ['user', 'age'], ['asc', 'desc']); - * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] - */ - function orderBy(collection, iteratees, orders, guard) { - if (collection == null) { - return []; - } - if (!isArray(iteratees)) { - iteratees = iteratees == null ? [] : [iteratees]; - } - orders = guard ? undefined : orders; - if (!isArray(orders)) { - orders = orders == null ? [] : [orders]; - } - return baseOrderBy(collection, iteratees, orders); - } - - /** - * Creates an array of elements split into two groups, the first of which - * contains elements `predicate` returns truthy for, the second of which - * contains elements `predicate` returns falsey for. The predicate is - * invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the array of grouped elements. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': true }, - * { 'user': 'pebbles', 'age': 1, 'active': false } - * ]; - * - * _.partition(users, function(o) { return o.active; }); - * // => objects for [['fred'], ['barney', 'pebbles']] - * - * // The `_.matches` iteratee shorthand. - * _.partition(users, { 'age': 1, 'active': false }); - * // => objects for [['pebbles'], ['barney', 'fred']] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.partition(users, ['active', false]); - * // => objects for [['barney', 'pebbles'], ['fred']] - * - * // The `_.property` iteratee shorthand. - * _.partition(users, 'active'); - * // => objects for [['fred'], ['barney', 'pebbles']] - */ - var partition = createAggregator(function(result, value, key) { - result[key ? 0 : 1].push(value); - }, function() { return [[], []]; }); - - /** - * Reduces `collection` to a value which is the accumulated result of running - * each element in `collection` thru `iteratee`, where each successive - * invocation is supplied the return value of the previous. If `accumulator` - * is not given, the first element of `collection` is used as the initial - * value. The iteratee is invoked with four arguments: - * (accumulator, value, index|key, collection). - * - * Many lodash methods are guarded to work as iteratees for methods like - * `_.reduce`, `_.reduceRight`, and `_.transform`. - * - * The guarded methods are: - * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, - * and `sortBy` - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @returns {*} Returns the accumulated value. - * @see _.reduceRight - * @example - * - * _.reduce([1, 2], function(sum, n) { - * return sum + n; - * }, 0); - * // => 3 - * - * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { - * (result[value] || (result[value] = [])).push(key); - * return result; - * }, {}); - * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) - */ - function reduce(collection, iteratee, accumulator) { - var func = isArray(collection) ? arrayReduce : baseReduce, - initAccum = arguments.length < 3; - - return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach); - } - - /** - * This method is like `_.reduce` except that it iterates over elements of - * `collection` from right to left. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @returns {*} Returns the accumulated value. - * @see _.reduce - * @example - * - * var array = [[0, 1], [2, 3], [4, 5]]; - * - * _.reduceRight(array, function(flattened, other) { - * return flattened.concat(other); - * }, []); - * // => [4, 5, 2, 3, 0, 1] - */ - function reduceRight(collection, iteratee, accumulator) { - var func = isArray(collection) ? arrayReduceRight : baseReduce, - initAccum = arguments.length < 3; - - return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight); - } - - /** - * The opposite of `_.filter`; this method returns the elements of `collection` - * that `predicate` does **not** return truthy for. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - * @see _.filter - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': true } - * ]; - * - * _.reject(users, function(o) { return !o.active; }); - * // => objects for ['fred'] - * - * // The `_.matches` iteratee shorthand. - * _.reject(users, { 'age': 40, 'active': true }); - * // => objects for ['barney'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.reject(users, ['active', false]); - * // => objects for ['fred'] - * - * // The `_.property` iteratee shorthand. - * _.reject(users, 'active'); - * // => objects for ['barney'] - */ - function reject(collection, predicate) { - var func = isArray(collection) ? arrayFilter : baseFilter; - return func(collection, negate(getIteratee(predicate, 3))); - } - - /** - * Gets a random element from `collection`. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Collection - * @param {Array|Object} collection The collection to sample. - * @returns {*} Returns the random element. - * @example - * - * _.sample([1, 2, 3, 4]); - * // => 2 - */ - function sample(collection) { - var func = isArray(collection) ? arraySample : baseSample; - return func(collection); - } - - /** - * Gets `n` random elements at unique keys from `collection` up to the - * size of `collection`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to sample. - * @param {number} [n=1] The number of elements to sample. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the random elements. - * @example - * - * _.sampleSize([1, 2, 3], 2); - * // => [3, 1] - * - * _.sampleSize([1, 2, 3], 4); - * // => [2, 3, 1] - */ - function sampleSize(collection, n, guard) { - if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) { - n = 1; - } else { - n = toInteger(n); - } - var func = isArray(collection) ? arraySampleSize : baseSampleSize; - return func(collection, n); - } - - /** - * Creates an array of shuffled values, using a version of the - * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to shuffle. - * @returns {Array} Returns the new shuffled array. - * @example - * - * _.shuffle([1, 2, 3, 4]); - * // => [4, 1, 3, 2] - */ - function shuffle(collection) { - var func = isArray(collection) ? arrayShuffle : baseShuffle; - return func(collection); - } - - /** - * Gets the size of `collection` by returning its length for array-like - * values or the number of own enumerable string keyed properties for objects. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object|string} collection The collection to inspect. - * @returns {number} Returns the collection size. - * @example - * - * _.size([1, 2, 3]); - * // => 3 - * - * _.size({ 'a': 1, 'b': 2 }); - * // => 2 - * - * _.size('pebbles'); - * // => 7 - */ - function size(collection) { - if (collection == null) { - return 0; - } - if (isArrayLike(collection)) { - return isString(collection) ? stringSize(collection) : collection.length; - } - var tag = getTag(collection); - if (tag == mapTag || tag == setTag) { - return collection.size; - } - return baseKeys(collection).length; - } - - /** - * Checks if `predicate` returns truthy for **any** element of `collection`. - * Iteration is stopped once `predicate` returns truthy. The predicate is - * invoked with three arguments: (value, index|key, collection). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - * @example - * - * _.some([null, 0, 'yes', false], Boolean); - * // => true - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false } - * ]; - * - * // The `_.matches` iteratee shorthand. - * _.some(users, { 'user': 'barney', 'active': false }); - * // => false - * - * // The `_.matchesProperty` iteratee shorthand. - * _.some(users, ['active', false]); - * // => true - * - * // The `_.property` iteratee shorthand. - * _.some(users, 'active'); - * // => true - */ - function some(collection, predicate, guard) { - var func = isArray(collection) ? arraySome : baseSome; - if (guard && isIterateeCall(collection, predicate, guard)) { - predicate = undefined; - } - return func(collection, getIteratee(predicate, 3)); - } - - /** - * Creates an array of elements, sorted in ascending order by the results of - * running each element in a collection thru each iteratee. This method - * performs a stable sort, that is, it preserves the original sort order of - * equal elements. The iteratees are invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {...(Function|Function[])} [iteratees=[_.identity]] - * The iteratees to sort by. - * @returns {Array} Returns the new sorted array. - * @example - * - * var users = [ - * { 'user': 'fred', 'age': 48 }, - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 }, - * { 'user': 'barney', 'age': 34 } - * ]; - * - * _.sortBy(users, [function(o) { return o.user; }]); - * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] - * - * _.sortBy(users, ['user', 'age']); - * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]] - */ - var sortBy = baseRest(function(collection, iteratees) { - if (collection == null) { - return []; - } - var length = iteratees.length; - if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) { - iteratees = []; - } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) { - iteratees = [iteratees[0]]; - } - return baseOrderBy(collection, baseFlatten(iteratees, 1), []); - }); - - /*------------------------------------------------------------------------*/ - - /** - * Gets the timestamp of the number of milliseconds that have elapsed since - * the Unix epoch (1 January 1970 00:00:00 UTC). - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Date - * @returns {number} Returns the timestamp. - * @example - * - * _.defer(function(stamp) { - * console.log(_.now() - stamp); - * }, _.now()); - * // => Logs the number of milliseconds it took for the deferred invocation. - */ - var now = ctxNow || function() { - return root.Date.now(); - }; - - /*------------------------------------------------------------------------*/ - - /** - * The opposite of `_.before`; this method creates a function that invokes - * `func` once it's called `n` or more times. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {number} n The number of calls before `func` is invoked. - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * var saves = ['profile', 'settings']; - * - * var done = _.after(saves.length, function() { - * console.log('done saving!'); - * }); - * - * _.forEach(saves, function(type) { - * asyncSave({ 'type': type, 'complete': done }); - * }); - * // => Logs 'done saving!' after the two async saves have completed. - */ - function after(n, func) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - n = toInteger(n); - return function() { - if (--n < 1) { - return func.apply(this, arguments); - } - }; - } - - /** - * Creates a function that invokes `func`, with up to `n` arguments, - * ignoring any additional arguments. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {Function} func The function to cap arguments for. - * @param {number} [n=func.length] The arity cap. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Function} Returns the new capped function. - * @example - * - * _.map(['6', '8', '10'], _.ary(parseInt, 1)); - * // => [6, 8, 10] - */ - function ary(func, n, guard) { - n = guard ? undefined : n; - n = (func && n == null) ? func.length : n; - return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n); - } - - /** - * Creates a function that invokes `func`, with the `this` binding and arguments - * of the created function, while it's called less than `n` times. Subsequent - * calls to the created function return the result of the last `func` invocation. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {number} n The number of calls at which `func` is no longer invoked. - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * jQuery(element).on('click', _.before(5, addContactToList)); - * // => Allows adding up to 4 contacts to the list. - */ - function before(n, func) { - var result; - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - n = toInteger(n); - return function() { - if (--n > 0) { - result = func.apply(this, arguments); - } - if (n <= 1) { - func = undefined; - } - return result; - }; - } - - /** - * Creates a function that invokes `func` with the `this` binding of `thisArg` - * and `partials` prepended to the arguments it receives. - * - * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, - * may be used as a placeholder for partially applied arguments. - * - * **Note:** Unlike native `Function#bind`, this method doesn't set the "length" - * property of bound functions. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to bind. - * @param {*} thisArg The `this` binding of `func`. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new bound function. - * @example - * - * function greet(greeting, punctuation) { - * return greeting + ' ' + this.user + punctuation; - * } - * - * var object = { 'user': 'fred' }; - * - * var bound = _.bind(greet, object, 'hi'); - * bound('!'); - * // => 'hi fred!' - * - * // Bound with placeholders. - * var bound = _.bind(greet, object, _, '!'); - * bound('hi'); - * // => 'hi fred!' - */ - var bind = baseRest(function(func, thisArg, partials) { - var bitmask = WRAP_BIND_FLAG; - if (partials.length) { - var holders = replaceHolders(partials, getHolder(bind)); - bitmask |= WRAP_PARTIAL_FLAG; - } - return createWrap(func, bitmask, thisArg, partials, holders); - }); - - /** - * Creates a function that invokes the method at `object[key]` with `partials` - * prepended to the arguments it receives. - * - * This method differs from `_.bind` by allowing bound functions to reference - * methods that may be redefined or don't yet exist. See - * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern) - * for more details. - * - * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for partially applied arguments. - * - * @static - * @memberOf _ - * @since 0.10.0 - * @category Function - * @param {Object} object The object to invoke the method on. - * @param {string} key The key of the method. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new bound function. - * @example - * - * var object = { - * 'user': 'fred', - * 'greet': function(greeting, punctuation) { - * return greeting + ' ' + this.user + punctuation; - * } - * }; - * - * var bound = _.bindKey(object, 'greet', 'hi'); - * bound('!'); - * // => 'hi fred!' - * - * object.greet = function(greeting, punctuation) { - * return greeting + 'ya ' + this.user + punctuation; - * }; - * - * bound('!'); - * // => 'hiya fred!' - * - * // Bound with placeholders. - * var bound = _.bindKey(object, 'greet', _, '!'); - * bound('hi'); - * // => 'hiya fred!' - */ - var bindKey = baseRest(function(object, key, partials) { - var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG; - if (partials.length) { - var holders = replaceHolders(partials, getHolder(bindKey)); - bitmask |= WRAP_PARTIAL_FLAG; - } - return createWrap(key, bitmask, object, partials, holders); - }); - - /** - * Creates a function that accepts arguments of `func` and either invokes - * `func` returning its result, if at least `arity` number of arguments have - * been provided, or returns a function that accepts the remaining `func` - * arguments, and so on. The arity of `func` may be specified if `func.length` - * is not sufficient. - * - * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds, - * may be used as a placeholder for provided arguments. - * - * **Note:** This method doesn't set the "length" property of curried functions. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Function - * @param {Function} func The function to curry. - * @param {number} [arity=func.length] The arity of `func`. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Function} Returns the new curried function. - * @example - * - * var abc = function(a, b, c) { - * return [a, b, c]; - * }; - * - * var curried = _.curry(abc); - * - * curried(1)(2)(3); - * // => [1, 2, 3] - * - * curried(1, 2)(3); - * // => [1, 2, 3] - * - * curried(1, 2, 3); - * // => [1, 2, 3] - * - * // Curried with placeholders. - * curried(1)(_, 3)(2); - * // => [1, 2, 3] - */ - function curry(func, arity, guard) { - arity = guard ? undefined : arity; - var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity); - result.placeholder = curry.placeholder; - return result; - } - - /** - * This method is like `_.curry` except that arguments are applied to `func` - * in the manner of `_.partialRight` instead of `_.partial`. - * - * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for provided arguments. - * - * **Note:** This method doesn't set the "length" property of curried functions. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {Function} func The function to curry. - * @param {number} [arity=func.length] The arity of `func`. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Function} Returns the new curried function. - * @example - * - * var abc = function(a, b, c) { - * return [a, b, c]; - * }; - * - * var curried = _.curryRight(abc); - * - * curried(3)(2)(1); - * // => [1, 2, 3] - * - * curried(2, 3)(1); - * // => [1, 2, 3] - * - * curried(1, 2, 3); - * // => [1, 2, 3] - * - * // Curried with placeholders. - * curried(3)(1, _)(2); - * // => [1, 2, 3] - */ - function curryRight(func, arity, guard) { - arity = guard ? undefined : arity; - var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity); - result.placeholder = curryRight.placeholder; - return result; - } - - /** - * Creates a debounced function that delays invoking `func` until after `wait` - * milliseconds have elapsed since the last time the debounced function was - * invoked. The debounced function comes with a `cancel` method to cancel - * delayed `func` invocations and a `flush` method to immediately invoke them. - * Provide `options` to indicate whether `func` should be invoked on the - * leading and/or trailing edge of the `wait` timeout. The `func` is invoked - * with the last arguments provided to the debounced function. Subsequent - * calls to the debounced function return the result of the last `func` - * invocation. - * - * **Note:** If `leading` and `trailing` options are `true`, `func` is - * invoked on the trailing edge of the timeout only if the debounced function - * is invoked more than once during the `wait` timeout. - * - * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred - * until to the next tick, similar to `setTimeout` with a timeout of `0`. - * - * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) - * for details over the differences between `_.debounce` and `_.throttle`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to debounce. - * @param {number} [wait=0] The number of milliseconds to delay. - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=false] - * Specify invoking on the leading edge of the timeout. - * @param {number} [options.maxWait] - * The maximum time `func` is allowed to be delayed before it's invoked. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. - * @returns {Function} Returns the new debounced function. - * @example - * - * // Avoid costly calculations while the window size is in flux. - * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); - * - * // Invoke `sendMail` when clicked, debouncing subsequent calls. - * jQuery(element).on('click', _.debounce(sendMail, 300, { - * 'leading': true, - * 'trailing': false - * })); - * - * // Ensure `batchLog` is invoked once after 1 second of debounced calls. - * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); - * var source = new EventSource('/stream'); - * jQuery(source).on('message', debounced); - * - * // Cancel the trailing debounced invocation. - * jQuery(window).on('popstate', debounced.cancel); - */ - function debounce(func, wait, options) { - var lastArgs, - lastThis, - maxWait, - result, - timerId, - lastCallTime, - lastInvokeTime = 0, - leading = false, - maxing = false, - trailing = true; - - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - wait = toNumber(wait) || 0; - if (isObject(options)) { - leading = !!options.leading; - maxing = 'maxWait' in options; - maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; - trailing = 'trailing' in options ? !!options.trailing : trailing; - } - - function invokeFunc(time) { - var args = lastArgs, - thisArg = lastThis; - - lastArgs = lastThis = undefined; - lastInvokeTime = time; - result = func.apply(thisArg, args); - return result; - } - - function leadingEdge(time) { - // Reset any `maxWait` timer. - lastInvokeTime = time; - // Start the timer for the trailing edge. - timerId = setTimeout(timerExpired, wait); - // Invoke the leading edge. - return leading ? invokeFunc(time) : result; - } - - function remainingWait(time) { - var timeSinceLastCall = time - lastCallTime, - timeSinceLastInvoke = time - lastInvokeTime, - result = wait - timeSinceLastCall; - - return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result; - } - - function shouldInvoke(time) { - var timeSinceLastCall = time - lastCallTime, - timeSinceLastInvoke = time - lastInvokeTime; - - // Either this is the first call, activity has stopped and we're at the - // trailing edge, the system time has gone backwards and we're treating - // it as the trailing edge, or we've hit the `maxWait` limit. - return (lastCallTime === undefined || (timeSinceLastCall >= wait) || - (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); - } - - function timerExpired() { - var time = now(); - if (shouldInvoke(time)) { - return trailingEdge(time); - } - // Restart the timer. - timerId = setTimeout(timerExpired, remainingWait(time)); - } - - function trailingEdge(time) { - timerId = undefined; - - // Only invoke if we have `lastArgs` which means `func` has been - // debounced at least once. - if (trailing && lastArgs) { - return invokeFunc(time); - } - lastArgs = lastThis = undefined; - return result; - } - - function cancel() { - if (timerId !== undefined) { - clearTimeout(timerId); - } - lastInvokeTime = 0; - lastArgs = lastCallTime = lastThis = timerId = undefined; - } - - function flush() { - return timerId === undefined ? result : trailingEdge(now()); - } - - function debounced() { - var time = now(), - isInvoking = shouldInvoke(time); - - lastArgs = arguments; - lastThis = this; - lastCallTime = time; - - if (isInvoking) { - if (timerId === undefined) { - return leadingEdge(lastCallTime); - } - if (maxing) { - // Handle invocations in a tight loop. - timerId = setTimeout(timerExpired, wait); - return invokeFunc(lastCallTime); - } - } - if (timerId === undefined) { - timerId = setTimeout(timerExpired, wait); - } - return result; - } - debounced.cancel = cancel; - debounced.flush = flush; - return debounced; - } - - /** - * Defers invoking the `func` until the current call stack has cleared. Any - * additional arguments are provided to `func` when it's invoked. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to defer. - * @param {...*} [args] The arguments to invoke `func` with. - * @returns {number} Returns the timer id. - * @example - * - * _.defer(function(text) { - * console.log(text); - * }, 'deferred'); - * // => Logs 'deferred' after one millisecond. - */ - var defer = baseRest(function(func, args) { - return baseDelay(func, 1, args); - }); - - /** - * Invokes `func` after `wait` milliseconds. Any additional arguments are - * provided to `func` when it's invoked. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to delay. - * @param {number} wait The number of milliseconds to delay invocation. - * @param {...*} [args] The arguments to invoke `func` with. - * @returns {number} Returns the timer id. - * @example - * - * _.delay(function(text) { - * console.log(text); - * }, 1000, 'later'); - * // => Logs 'later' after one second. - */ - var delay = baseRest(function(func, wait, args) { - return baseDelay(func, toNumber(wait) || 0, args); - }); - - /** - * Creates a function that invokes `func` with arguments reversed. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Function - * @param {Function} func The function to flip arguments for. - * @returns {Function} Returns the new flipped function. - * @example - * - * var flipped = _.flip(function() { - * return _.toArray(arguments); - * }); - * - * flipped('a', 'b', 'c', 'd'); - * // => ['d', 'c', 'b', 'a'] - */ - function flip(func) { - return createWrap(func, WRAP_FLIP_FLAG); - } - - /** - * Creates a function that memoizes the result of `func`. If `resolver` is - * provided, it determines the cache key for storing the result based on the - * arguments provided to the memoized function. By default, the first argument - * provided to the memoized function is used as the map cache key. The `func` - * is invoked with the `this` binding of the memoized function. - * - * **Note:** The cache is exposed as the `cache` property on the memoized - * function. Its creation may be customized by replacing the `_.memoize.Cache` - * constructor with one whose instances implement the - * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) - * method interface of `clear`, `delete`, `get`, `has`, and `set`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to have its output memoized. - * @param {Function} [resolver] The function to resolve the cache key. - * @returns {Function} Returns the new memoized function. - * @example - * - * var object = { 'a': 1, 'b': 2 }; - * var other = { 'c': 3, 'd': 4 }; - * - * var values = _.memoize(_.values); - * values(object); - * // => [1, 2] - * - * values(other); - * // => [3, 4] - * - * object.a = 2; - * values(object); - * // => [1, 2] - * - * // Modify the result cache. - * values.cache.set(object, ['a', 'b']); - * values(object); - * // => ['a', 'b'] - * - * // Replace `_.memoize.Cache`. - * _.memoize.Cache = WeakMap; - */ - function memoize(func, resolver) { - if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { - throw new TypeError(FUNC_ERROR_TEXT); - } - var memoized = function() { - var args = arguments, - key = resolver ? resolver.apply(this, args) : args[0], - cache = memoized.cache; - - if (cache.has(key)) { - return cache.get(key); - } - var result = func.apply(this, args); - memoized.cache = cache.set(key, result) || cache; - return result; - }; - memoized.cache = new (memoize.Cache || MapCache); - return memoized; - } - - // Expose `MapCache`. - memoize.Cache = MapCache; - - /** - * Creates a function that negates the result of the predicate `func`. The - * `func` predicate is invoked with the `this` binding and arguments of the - * created function. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {Function} predicate The predicate to negate. - * @returns {Function} Returns the new negated function. - * @example - * - * function isEven(n) { - * return n % 2 == 0; - * } - * - * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); - * // => [1, 3, 5] - */ - function negate(predicate) { - if (typeof predicate != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - return function() { - var args = arguments; - switch (args.length) { - case 0: return !predicate.call(this); - case 1: return !predicate.call(this, args[0]); - case 2: return !predicate.call(this, args[0], args[1]); - case 3: return !predicate.call(this, args[0], args[1], args[2]); - } - return !predicate.apply(this, args); - }; - } - - /** - * Creates a function that is restricted to invoking `func` once. Repeat calls - * to the function return the value of the first invocation. The `func` is - * invoked with the `this` binding and arguments of the created function. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * var initialize = _.once(createApplication); - * initialize(); - * initialize(); - * // => `createApplication` is invoked once - */ - function once(func) { - return before(2, func); - } - - /** - * Creates a function that invokes `func` with its arguments transformed. - * - * @static - * @since 4.0.0 - * @memberOf _ - * @category Function - * @param {Function} func The function to wrap. - * @param {...(Function|Function[])} [transforms=[_.identity]] - * The argument transforms. - * @returns {Function} Returns the new function. - * @example - * - * function doubled(n) { - * return n * 2; - * } - * - * function square(n) { - * return n * n; - * } - * - * var func = _.overArgs(function(x, y) { - * return [x, y]; - * }, [square, doubled]); - * - * func(9, 3); - * // => [81, 6] - * - * func(10, 5); - * // => [100, 10] - */ - var overArgs = castRest(function(func, transforms) { - transforms = (transforms.length == 1 && isArray(transforms[0])) - ? arrayMap(transforms[0], baseUnary(getIteratee())) - : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee())); - - var funcsLength = transforms.length; - return baseRest(function(args) { - var index = -1, - length = nativeMin(args.length, funcsLength); - - while (++index < length) { - args[index] = transforms[index].call(this, args[index]); - } - return apply(func, this, args); - }); - }); - - /** - * Creates a function that invokes `func` with `partials` prepended to the - * arguments it receives. This method is like `_.bind` except it does **not** - * alter the `this` binding. - * - * The `_.partial.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for partially applied arguments. - * - * **Note:** This method doesn't set the "length" property of partially - * applied functions. - * - * @static - * @memberOf _ - * @since 0.2.0 - * @category Function - * @param {Function} func The function to partially apply arguments to. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new partially applied function. - * @example - * - * function greet(greeting, name) { - * return greeting + ' ' + name; - * } - * - * var sayHelloTo = _.partial(greet, 'hello'); - * sayHelloTo('fred'); - * // => 'hello fred' - * - * // Partially applied with placeholders. - * var greetFred = _.partial(greet, _, 'fred'); - * greetFred('hi'); - * // => 'hi fred' - */ - var partial = baseRest(function(func, partials) { - var holders = replaceHolders(partials, getHolder(partial)); - return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders); - }); - - /** - * This method is like `_.partial` except that partially applied arguments - * are appended to the arguments it receives. - * - * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for partially applied arguments. - * - * **Note:** This method doesn't set the "length" property of partially - * applied functions. - * - * @static - * @memberOf _ - * @since 1.0.0 - * @category Function - * @param {Function} func The function to partially apply arguments to. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new partially applied function. - * @example - * - * function greet(greeting, name) { - * return greeting + ' ' + name; - * } - * - * var greetFred = _.partialRight(greet, 'fred'); - * greetFred('hi'); - * // => 'hi fred' - * - * // Partially applied with placeholders. - * var sayHelloTo = _.partialRight(greet, 'hello', _); - * sayHelloTo('fred'); - * // => 'hello fred' - */ - var partialRight = baseRest(function(func, partials) { - var holders = replaceHolders(partials, getHolder(partialRight)); - return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders); - }); - - /** - * Creates a function that invokes `func` with arguments arranged according - * to the specified `indexes` where the argument value at the first index is - * provided as the first argument, the argument value at the second index is - * provided as the second argument, and so on. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {Function} func The function to rearrange arguments for. - * @param {...(number|number[])} indexes The arranged argument indexes. - * @returns {Function} Returns the new function. - * @example - * - * var rearged = _.rearg(function(a, b, c) { - * return [a, b, c]; - * }, [2, 0, 1]); - * - * rearged('b', 'c', 'a') - * // => ['a', 'b', 'c'] - */ - var rearg = flatRest(function(func, indexes) { - return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes); - }); - - /** - * Creates a function that invokes `func` with the `this` binding of the - * created function and arguments from `start` and beyond provided as - * an array. - * - * **Note:** This method is based on the - * [rest parameter](https://mdn.io/rest_parameters). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Function - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @returns {Function} Returns the new function. - * @example - * - * var say = _.rest(function(what, names) { - * return what + ' ' + _.initial(names).join(', ') + - * (_.size(names) > 1 ? ', & ' : '') + _.last(names); - * }); - * - * say('hello', 'fred', 'barney', 'pebbles'); - * // => 'hello fred, barney, & pebbles' - */ - function rest(func, start) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - start = start === undefined ? start : toInteger(start); - return baseRest(func, start); - } - - /** - * Creates a function that invokes `func` with the `this` binding of the - * create function and an array of arguments much like - * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply). - * - * **Note:** This method is based on the - * [spread operator](https://mdn.io/spread_operator). - * - * @static - * @memberOf _ - * @since 3.2.0 - * @category Function - * @param {Function} func The function to spread arguments over. - * @param {number} [start=0] The start position of the spread. - * @returns {Function} Returns the new function. - * @example - * - * var say = _.spread(function(who, what) { - * return who + ' says ' + what; - * }); - * - * say(['fred', 'hello']); - * // => 'fred says hello' - * - * var numbers = Promise.all([ - * Promise.resolve(40), - * Promise.resolve(36) - * ]); - * - * numbers.then(_.spread(function(x, y) { - * return x + y; - * })); - * // => a Promise of 76 - */ - function spread(func, start) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - start = start == null ? 0 : nativeMax(toInteger(start), 0); - return baseRest(function(args) { - var array = args[start], - otherArgs = castSlice(args, 0, start); - - if (array) { - arrayPush(otherArgs, array); - } - return apply(func, this, otherArgs); - }); - } - - /** - * Creates a throttled function that only invokes `func` at most once per - * every `wait` milliseconds. The throttled function comes with a `cancel` - * method to cancel delayed `func` invocations and a `flush` method to - * immediately invoke them. Provide `options` to indicate whether `func` - * should be invoked on the leading and/or trailing edge of the `wait` - * timeout. The `func` is invoked with the last arguments provided to the - * throttled function. Subsequent calls to the throttled function return the - * result of the last `func` invocation. - * - * **Note:** If `leading` and `trailing` options are `true`, `func` is - * invoked on the trailing edge of the timeout only if the throttled function - * is invoked more than once during the `wait` timeout. - * - * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred - * until to the next tick, similar to `setTimeout` with a timeout of `0`. - * - * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) - * for details over the differences between `_.throttle` and `_.debounce`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to throttle. - * @param {number} [wait=0] The number of milliseconds to throttle invocations to. - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=true] - * Specify invoking on the leading edge of the timeout. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. - * @returns {Function} Returns the new throttled function. - * @example - * - * // Avoid excessively updating the position while scrolling. - * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); - * - * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. - * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); - * jQuery(element).on('click', throttled); - * - * // Cancel the trailing throttled invocation. - * jQuery(window).on('popstate', throttled.cancel); - */ - function throttle(func, wait, options) { - var leading = true, - trailing = true; - - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - if (isObject(options)) { - leading = 'leading' in options ? !!options.leading : leading; - trailing = 'trailing' in options ? !!options.trailing : trailing; - } - return debounce(func, wait, { - 'leading': leading, - 'maxWait': wait, - 'trailing': trailing - }); - } - - /** - * Creates a function that accepts up to one argument, ignoring any - * additional arguments. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Function - * @param {Function} func The function to cap arguments for. - * @returns {Function} Returns the new capped function. - * @example - * - * _.map(['6', '8', '10'], _.unary(parseInt)); - * // => [6, 8, 10] - */ - function unary(func) { - return ary(func, 1); - } - - /** - * Creates a function that provides `value` to `wrapper` as its first - * argument. Any additional arguments provided to the function are appended - * to those provided to the `wrapper`. The wrapper is invoked with the `this` - * binding of the created function. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {*} value The value to wrap. - * @param {Function} [wrapper=identity] The wrapper function. - * @returns {Function} Returns the new function. - * @example - * - * var p = _.wrap(_.escape, function(func, text) { - * return '

' + func(text) + '

'; - * }); - * - * p('fred, barney, & pebbles'); - * // => '

fred, barney, & pebbles

' - */ - function wrap(value, wrapper) { - return partial(castFunction(wrapper), value); - } - - /*------------------------------------------------------------------------*/ - - /** - * Casts `value` as an array if it's not one. - * - * @static - * @memberOf _ - * @since 4.4.0 - * @category Lang - * @param {*} value The value to inspect. - * @returns {Array} Returns the cast array. - * @example - * - * _.castArray(1); - * // => [1] - * - * _.castArray({ 'a': 1 }); - * // => [{ 'a': 1 }] - * - * _.castArray('abc'); - * // => ['abc'] - * - * _.castArray(null); - * // => [null] - * - * _.castArray(undefined); - * // => [undefined] - * - * _.castArray(); - * // => [] - * - * var array = [1, 2, 3]; - * console.log(_.castArray(array) === array); - * // => true - */ - function castArray() { - if (!arguments.length) { - return []; - } - var value = arguments[0]; - return isArray(value) ? value : [value]; - } - - /** - * Creates a shallow clone of `value`. - * - * **Note:** This method is loosely based on the - * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm) - * and supports cloning arrays, array buffers, booleans, date objects, maps, - * numbers, `Object` objects, regexes, sets, strings, symbols, and typed - * arrays. The own enumerable properties of `arguments` objects are cloned - * as plain objects. An empty object is returned for uncloneable values such - * as error objects, functions, DOM nodes, and WeakMaps. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to clone. - * @returns {*} Returns the cloned value. - * @see _.cloneDeep - * @example - * - * var objects = [{ 'a': 1 }, { 'b': 2 }]; - * - * var shallow = _.clone(objects); - * console.log(shallow[0] === objects[0]); - * // => true - */ - function clone(value) { - return baseClone(value, CLONE_SYMBOLS_FLAG); - } - - /** - * This method is like `_.clone` except that it accepts `customizer` which - * is invoked to produce the cloned value. If `customizer` returns `undefined`, - * cloning is handled by the method instead. The `customizer` is invoked with - * up to four arguments; (value [, index|key, object, stack]). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to clone. - * @param {Function} [customizer] The function to customize cloning. - * @returns {*} Returns the cloned value. - * @see _.cloneDeepWith - * @example - * - * function customizer(value) { - * if (_.isElement(value)) { - * return value.cloneNode(false); - * } - * } - * - * var el = _.cloneWith(document.body, customizer); - * - * console.log(el === document.body); - * // => false - * console.log(el.nodeName); - * // => 'BODY' - * console.log(el.childNodes.length); - * // => 0 - */ - function cloneWith(value, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - return baseClone(value, CLONE_SYMBOLS_FLAG, customizer); - } - - /** - * This method is like `_.clone` except that it recursively clones `value`. - * - * @static - * @memberOf _ - * @since 1.0.0 - * @category Lang - * @param {*} value The value to recursively clone. - * @returns {*} Returns the deep cloned value. - * @see _.clone - * @example - * - * var objects = [{ 'a': 1 }, { 'b': 2 }]; - * - * var deep = _.cloneDeep(objects); - * console.log(deep[0] === objects[0]); - * // => false - */ - function cloneDeep(value) { - return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); - } - - /** - * This method is like `_.cloneWith` except that it recursively clones `value`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to recursively clone. - * @param {Function} [customizer] The function to customize cloning. - * @returns {*} Returns the deep cloned value. - * @see _.cloneWith - * @example - * - * function customizer(value) { - * if (_.isElement(value)) { - * return value.cloneNode(true); - * } - * } - * - * var el = _.cloneDeepWith(document.body, customizer); - * - * console.log(el === document.body); - * // => false - * console.log(el.nodeName); - * // => 'BODY' - * console.log(el.childNodes.length); - * // => 20 - */ - function cloneDeepWith(value, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer); - } - - /** - * Checks if `object` conforms to `source` by invoking the predicate - * properties of `source` with the corresponding property values of `object`. - * - * **Note:** This method is equivalent to `_.conforms` when `source` is - * partially applied. - * - * @static - * @memberOf _ - * @since 4.14.0 - * @category Lang - * @param {Object} object The object to inspect. - * @param {Object} source The object of property predicates to conform to. - * @returns {boolean} Returns `true` if `object` conforms, else `false`. - * @example - * - * var object = { 'a': 1, 'b': 2 }; - * - * _.conformsTo(object, { 'b': function(n) { return n > 1; } }); - * // => true - * - * _.conformsTo(object, { 'b': function(n) { return n > 2; } }); - * // => false - */ - function conformsTo(object, source) { - return source == null || baseConformsTo(object, source, keys(source)); - } - - /** - * Performs a - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * comparison between two values to determine if they are equivalent. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'a': 1 }; - * var other = { 'a': 1 }; - * - * _.eq(object, object); - * // => true - * - * _.eq(object, other); - * // => false - * - * _.eq('a', 'a'); - * // => true - * - * _.eq('a', Object('a')); - * // => false - * - * _.eq(NaN, NaN); - * // => true - */ - function eq(value, other) { - return value === other || (value !== value && other !== other); - } - - /** - * Checks if `value` is greater than `other`. - * - * @static - * @memberOf _ - * @since 3.9.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is greater than `other`, - * else `false`. - * @see _.lt - * @example - * - * _.gt(3, 1); - * // => true - * - * _.gt(3, 3); - * // => false - * - * _.gt(1, 3); - * // => false - */ - var gt = createRelationalOperation(baseGt); - - /** - * Checks if `value` is greater than or equal to `other`. - * - * @static - * @memberOf _ - * @since 3.9.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is greater than or equal to - * `other`, else `false`. - * @see _.lte - * @example - * - * _.gte(3, 1); - * // => true - * - * _.gte(3, 3); - * // => true - * - * _.gte(1, 3); - * // => false - */ - var gte = createRelationalOperation(function(value, other) { - return value >= other; - }); - - /** - * Checks if `value` is likely an `arguments` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - * else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ - var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { - return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && - !propertyIsEnumerable.call(value, 'callee'); - }; - - /** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array, else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * _.isArray(document.body.children); - * // => false - * - * _.isArray('abc'); - * // => false - * - * _.isArray(_.noop); - * // => false - */ - var isArray = Array.isArray; - - /** - * Checks if `value` is classified as an `ArrayBuffer` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. - * @example - * - * _.isArrayBuffer(new ArrayBuffer(2)); - * // => true - * - * _.isArrayBuffer(new Array(2)); - * // => false - */ - var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer; - - /** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - * @example - * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); - * // => true - * - * _.isArrayLike(_.noop); - * // => false - */ - function isArrayLike(value) { - return value != null && isLength(value.length) && !isFunction(value); - } - - /** - * This method is like `_.isArrayLike` except that it also checks if `value` - * is an object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array-like object, - * else `false`. - * @example - * - * _.isArrayLikeObject([1, 2, 3]); - * // => true - * - * _.isArrayLikeObject(document.body.children); - * // => true - * - * _.isArrayLikeObject('abc'); - * // => false - * - * _.isArrayLikeObject(_.noop); - * // => false - */ - function isArrayLikeObject(value) { - return isObjectLike(value) && isArrayLike(value); - } - - /** - * Checks if `value` is classified as a boolean primitive or object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a boolean, else `false`. - * @example - * - * _.isBoolean(false); - * // => true - * - * _.isBoolean(null); - * // => false - */ - function isBoolean(value) { - return value === true || value === false || - (isObjectLike(value) && baseGetTag(value) == boolTag); - } - - /** - * Checks if `value` is a buffer. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. - * @example - * - * _.isBuffer(new Buffer(2)); - * // => true - * - * _.isBuffer(new Uint8Array(2)); - * // => false - */ - var isBuffer = nativeIsBuffer || stubFalse; - - /** - * Checks if `value` is classified as a `Date` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a date object, else `false`. - * @example - * - * _.isDate(new Date); - * // => true - * - * _.isDate('Mon April 23 2012'); - * // => false - */ - var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate; - - /** - * Checks if `value` is likely a DOM element. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`. - * @example - * - * _.isElement(document.body); - * // => true - * - * _.isElement(''); - * // => false - */ - function isElement(value) { - return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value); - } - - /** - * Checks if `value` is an empty object, collection, map, or set. - * - * Objects are considered empty if they have no own enumerable string keyed - * properties. - * - * Array-like values such as `arguments` objects, arrays, buffers, strings, or - * jQuery-like collections are considered empty if they have a `length` of `0`. - * Similarly, maps and sets are considered empty if they have a `size` of `0`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is empty, else `false`. - * @example - * - * _.isEmpty(null); - * // => true - * - * _.isEmpty(true); - * // => true - * - * _.isEmpty(1); - * // => true - * - * _.isEmpty([1, 2, 3]); - * // => false - * - * _.isEmpty({ 'a': 1 }); - * // => false - */ - function isEmpty(value) { - if (value == null) { - return true; - } - if (isArrayLike(value) && - (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || - isBuffer(value) || isTypedArray(value) || isArguments(value))) { - return !value.length; - } - var tag = getTag(value); - if (tag == mapTag || tag == setTag) { - return !value.size; - } - if (isPrototype(value)) { - return !baseKeys(value).length; - } - for (var key in value) { - if (hasOwnProperty.call(value, key)) { - return false; - } - } - return true; - } - - /** - * Performs a deep comparison between two values to determine if they are - * equivalent. - * - * **Note:** This method supports comparing arrays, array buffers, booleans, - * date objects, error objects, maps, numbers, `Object` objects, regexes, - * sets, strings, symbols, and typed arrays. `Object` objects are compared - * by their own, not inherited, enumerable properties. Functions and DOM - * nodes are compared by strict equality, i.e. `===`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'a': 1 }; - * var other = { 'a': 1 }; - * - * _.isEqual(object, other); - * // => true - * - * object === other; - * // => false - */ - function isEqual(value, other) { - return baseIsEqual(value, other); - } - - /** - * This method is like `_.isEqual` except that it accepts `customizer` which - * is invoked to compare values. If `customizer` returns `undefined`, comparisons - * are handled by the method instead. The `customizer` is invoked with up to - * six arguments: (objValue, othValue [, index|key, object, other, stack]). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @param {Function} [customizer] The function to customize comparisons. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * function isGreeting(value) { - * return /^h(?:i|ello)$/.test(value); - * } - * - * function customizer(objValue, othValue) { - * if (isGreeting(objValue) && isGreeting(othValue)) { - * return true; - * } - * } - * - * var array = ['hello', 'goodbye']; - * var other = ['hi', 'goodbye']; - * - * _.isEqualWith(array, other, customizer); - * // => true - */ - function isEqualWith(value, other, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - var result = customizer ? customizer(value, other) : undefined; - return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result; - } - - /** - * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`, - * `SyntaxError`, `TypeError`, or `URIError` object. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an error object, else `false`. - * @example - * - * _.isError(new Error); - * // => true - * - * _.isError(Error); - * // => false - */ - function isError(value) { - if (!isObjectLike(value)) { - return false; - } - var tag = baseGetTag(value); - return tag == errorTag || tag == domExcTag || - (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value)); - } - - /** - * Checks if `value` is a finite primitive number. - * - * **Note:** This method is based on - * [`Number.isFinite`](https://mdn.io/Number/isFinite). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a finite number, else `false`. - * @example - * - * _.isFinite(3); - * // => true - * - * _.isFinite(Number.MIN_VALUE); - * // => true - * - * _.isFinite(Infinity); - * // => false - * - * _.isFinite('3'); - * // => false - */ - function isFinite(value) { - return typeof value == 'number' && nativeIsFinite(value); - } - - /** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a function, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ - function isFunction(value) { - if (!isObject(value)) { - return false; - } - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 9 which returns 'object' for typed arrays and other constructors. - var tag = baseGetTag(value); - return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; - } - - /** - * Checks if `value` is an integer. - * - * **Note:** This method is based on - * [`Number.isInteger`](https://mdn.io/Number/isInteger). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an integer, else `false`. - * @example - * - * _.isInteger(3); - * // => true - * - * _.isInteger(Number.MIN_VALUE); - * // => false - * - * _.isInteger(Infinity); - * // => false - * - * _.isInteger('3'); - * // => false - */ - function isInteger(value) { - return typeof value == 'number' && value == toInteger(value); - } - - /** - * Checks if `value` is a valid array-like length. - * - * **Note:** This method is loosely based on - * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - * @example - * - * _.isLength(3); - * // => true - * - * _.isLength(Number.MIN_VALUE); - * // => false - * - * _.isLength(Infinity); - * // => false - * - * _.isLength('3'); - * // => false - */ - function isLength(value) { - return typeof value == 'number' && - value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; - } - - /** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ - function isObject(value) { - var type = typeof value; - return value != null && (type == 'object' || type == 'function'); - } - - /** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ - function isObjectLike(value) { - return value != null && typeof value == 'object'; - } - - /** - * Checks if `value` is classified as a `Map` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a map, else `false`. - * @example - * - * _.isMap(new Map); - * // => true - * - * _.isMap(new WeakMap); - * // => false - */ - var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; - - /** - * Performs a partial deep comparison between `object` and `source` to - * determine if `object` contains equivalent property values. - * - * **Note:** This method is equivalent to `_.matches` when `source` is - * partially applied. - * - * Partial comparisons will match empty array and empty object `source` - * values against any array or object value, respectively. See `_.isEqual` - * for a list of supported value comparisons. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {Object} object The object to inspect. - * @param {Object} source The object of property values to match. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - * @example - * - * var object = { 'a': 1, 'b': 2 }; - * - * _.isMatch(object, { 'b': 2 }); - * // => true - * - * _.isMatch(object, { 'b': 1 }); - * // => false - */ - function isMatch(object, source) { - return object === source || baseIsMatch(object, source, getMatchData(source)); - } - - /** - * This method is like `_.isMatch` except that it accepts `customizer` which - * is invoked to compare values. If `customizer` returns `undefined`, comparisons - * are handled by the method instead. The `customizer` is invoked with five - * arguments: (objValue, srcValue, index|key, object, source). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {Object} object The object to inspect. - * @param {Object} source The object of property values to match. - * @param {Function} [customizer] The function to customize comparisons. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - * @example - * - * function isGreeting(value) { - * return /^h(?:i|ello)$/.test(value); - * } - * - * function customizer(objValue, srcValue) { - * if (isGreeting(objValue) && isGreeting(srcValue)) { - * return true; - * } - * } - * - * var object = { 'greeting': 'hello' }; - * var source = { 'greeting': 'hi' }; - * - * _.isMatchWith(object, source, customizer); - * // => true - */ - function isMatchWith(object, source, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - return baseIsMatch(object, source, getMatchData(source), customizer); - } - - /** - * Checks if `value` is `NaN`. - * - * **Note:** This method is based on - * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as - * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for - * `undefined` and other non-number values. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. - * @example - * - * _.isNaN(NaN); - * // => true - * - * _.isNaN(new Number(NaN)); - * // => true - * - * isNaN(undefined); - * // => true - * - * _.isNaN(undefined); - * // => false - */ - function isNaN(value) { - // An `NaN` primitive is the only value that is not equal to itself. - // Perform the `toStringTag` check first to avoid errors with some - // ActiveX objects in IE. - return isNumber(value) && value != +value; - } - - /** - * Checks if `value` is a pristine native function. - * - * **Note:** This method can't reliably detect native functions in the presence - * of the core-js package because core-js circumvents this kind of detection. - * Despite multiple requests, the core-js maintainer has made it clear: any - * attempt to fix the detection will be obstructed. As a result, we're left - * with little choice but to throw an error. Unfortunately, this also affects - * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill), - * which rely on core-js. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, - * else `false`. - * @example - * - * _.isNative(Array.prototype.push); - * // => true - * - * _.isNative(_); - * // => false - */ - function isNative(value) { - if (isMaskable(value)) { - throw new Error(CORE_ERROR_TEXT); - } - return baseIsNative(value); - } - - /** - * Checks if `value` is `null`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `null`, else `false`. - * @example - * - * _.isNull(null); - * // => true - * - * _.isNull(void 0); - * // => false - */ - function isNull(value) { - return value === null; - } - - /** - * Checks if `value` is `null` or `undefined`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is nullish, else `false`. - * @example - * - * _.isNil(null); - * // => true - * - * _.isNil(void 0); - * // => true - * - * _.isNil(NaN); - * // => false - */ - function isNil(value) { - return value == null; - } - - /** - * Checks if `value` is classified as a `Number` primitive or object. - * - * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are - * classified as numbers, use the `_.isFinite` method. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a number, else `false`. - * @example - * - * _.isNumber(3); - * // => true - * - * _.isNumber(Number.MIN_VALUE); - * // => true - * - * _.isNumber(Infinity); - * // => true - * - * _.isNumber('3'); - * // => false - */ - function isNumber(value) { - return typeof value == 'number' || - (isObjectLike(value) && baseGetTag(value) == numberTag); - } - - /** - * Checks if `value` is a plain object, that is, an object created by the - * `Object` constructor or one with a `[[Prototype]]` of `null`. - * - * @static - * @memberOf _ - * @since 0.8.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. - * @example - * - * function Foo() { - * this.a = 1; - * } - * - * _.isPlainObject(new Foo); - * // => false - * - * _.isPlainObject([1, 2, 3]); - * // => false - * - * _.isPlainObject({ 'x': 0, 'y': 0 }); - * // => true - * - * _.isPlainObject(Object.create(null)); - * // => true - */ - function isPlainObject(value) { - if (!isObjectLike(value) || baseGetTag(value) != objectTag) { - return false; - } - var proto = getPrototype(value); - if (proto === null) { - return true; - } - var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; - return typeof Ctor == 'function' && Ctor instanceof Ctor && - funcToString.call(Ctor) == objectCtorString; - } - - /** - * Checks if `value` is classified as a `RegExp` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. - * @example - * - * _.isRegExp(/abc/); - * // => true - * - * _.isRegExp('/abc/'); - * // => false - */ - var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp; - - /** - * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754 - * double precision number which isn't the result of a rounded unsafe integer. - * - * **Note:** This method is based on - * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`. - * @example - * - * _.isSafeInteger(3); - * // => true - * - * _.isSafeInteger(Number.MIN_VALUE); - * // => false - * - * _.isSafeInteger(Infinity); - * // => false - * - * _.isSafeInteger('3'); - * // => false - */ - function isSafeInteger(value) { - return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER; - } - - /** - * Checks if `value` is classified as a `Set` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a set, else `false`. - * @example - * - * _.isSet(new Set); - * // => true - * - * _.isSet(new WeakSet); - * // => false - */ - var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; - - /** - * Checks if `value` is classified as a `String` primitive or object. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a string, else `false`. - * @example - * - * _.isString('abc'); - * // => true - * - * _.isString(1); - * // => false - */ - function isString(value) { - return typeof value == 'string' || - (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); - } - - /** - * Checks if `value` is classified as a `Symbol` primitive or object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. - * @example - * - * _.isSymbol(Symbol.iterator); - * // => true - * - * _.isSymbol('abc'); - * // => false - */ - function isSymbol(value) { - return typeof value == 'symbol' || - (isObjectLike(value) && baseGetTag(value) == symbolTag); - } - - /** - * Checks if `value` is classified as a typed array. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - * @example - * - * _.isTypedArray(new Uint8Array); - * // => true - * - * _.isTypedArray([]); - * // => false - */ - var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; - - /** - * Checks if `value` is `undefined`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. - * @example - * - * _.isUndefined(void 0); - * // => true - * - * _.isUndefined(null); - * // => false - */ - function isUndefined(value) { - return value === undefined; - } - - /** - * Checks if `value` is classified as a `WeakMap` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a weak map, else `false`. - * @example - * - * _.isWeakMap(new WeakMap); - * // => true - * - * _.isWeakMap(new Map); - * // => false - */ - function isWeakMap(value) { - return isObjectLike(value) && getTag(value) == weakMapTag; - } - - /** - * Checks if `value` is classified as a `WeakSet` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a weak set, else `false`. - * @example - * - * _.isWeakSet(new WeakSet); - * // => true - * - * _.isWeakSet(new Set); - * // => false - */ - function isWeakSet(value) { - return isObjectLike(value) && baseGetTag(value) == weakSetTag; - } - - /** - * Checks if `value` is less than `other`. - * - * @static - * @memberOf _ - * @since 3.9.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is less than `other`, - * else `false`. - * @see _.gt - * @example - * - * _.lt(1, 3); - * // => true - * - * _.lt(3, 3); - * // => false - * - * _.lt(3, 1); - * // => false - */ - var lt = createRelationalOperation(baseLt); - - /** - * Checks if `value` is less than or equal to `other`. - * - * @static - * @memberOf _ - * @since 3.9.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is less than or equal to - * `other`, else `false`. - * @see _.gte - * @example - * - * _.lte(1, 3); - * // => true - * - * _.lte(3, 3); - * // => true - * - * _.lte(3, 1); - * // => false - */ - var lte = createRelationalOperation(function(value, other) { - return value <= other; - }); - - /** - * Converts `value` to an array. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Lang - * @param {*} value The value to convert. - * @returns {Array} Returns the converted array. - * @example - * - * _.toArray({ 'a': 1, 'b': 2 }); - * // => [1, 2] - * - * _.toArray('abc'); - * // => ['a', 'b', 'c'] - * - * _.toArray(1); - * // => [] - * - * _.toArray(null); - * // => [] - */ - function toArray(value) { - if (!value) { - return []; - } - if (isArrayLike(value)) { - return isString(value) ? stringToArray(value) : copyArray(value); - } - if (symIterator && value[symIterator]) { - return iteratorToArray(value[symIterator]()); - } - var tag = getTag(value), - func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values); - - return func(value); - } - - /** - * Converts `value` to a finite number. - * - * @static - * @memberOf _ - * @since 4.12.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted number. - * @example - * - * _.toFinite(3.2); - * // => 3.2 - * - * _.toFinite(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toFinite(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toFinite('3.2'); - * // => 3.2 - */ - function toFinite(value) { - if (!value) { - return value === 0 ? value : 0; - } - value = toNumber(value); - if (value === INFINITY || value === -INFINITY) { - var sign = (value < 0 ? -1 : 1); - return sign * MAX_INTEGER; - } - return value === value ? value : 0; - } - - /** - * Converts `value` to an integer. - * - * **Note:** This method is loosely based on - * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toInteger(3.2); - * // => 3 - * - * _.toInteger(Number.MIN_VALUE); - * // => 0 - * - * _.toInteger(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toInteger('3.2'); - * // => 3 - */ - function toInteger(value) { - var result = toFinite(value), - remainder = result % 1; - - return result === result ? (remainder ? result - remainder : result) : 0; - } - - /** - * Converts `value` to an integer suitable for use as the length of an - * array-like object. - * - * **Note:** This method is based on - * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toLength(3.2); - * // => 3 - * - * _.toLength(Number.MIN_VALUE); - * // => 0 - * - * _.toLength(Infinity); - * // => 4294967295 - * - * _.toLength('3.2'); - * // => 3 - */ - function toLength(value) { - return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0; - } - - /** - * Converts `value` to a number. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to process. - * @returns {number} Returns the number. - * @example - * - * _.toNumber(3.2); - * // => 3.2 - * - * _.toNumber(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toNumber(Infinity); - * // => Infinity - * - * _.toNumber('3.2'); - * // => 3.2 - */ - function toNumber(value) { - if (typeof value == 'number') { - return value; - } - if (isSymbol(value)) { - return NAN; - } - if (isObject(value)) { - var other = typeof value.valueOf == 'function' ? value.valueOf() : value; - value = isObject(other) ? (other + '') : other; - } - if (typeof value != 'string') { - return value === 0 ? value : +value; - } - value = value.replace(reTrim, ''); - var isBinary = reIsBinary.test(value); - return (isBinary || reIsOctal.test(value)) - ? freeParseInt(value.slice(2), isBinary ? 2 : 8) - : (reIsBadHex.test(value) ? NAN : +value); - } - - /** - * Converts `value` to a plain object flattening inherited enumerable string - * keyed properties of `value` to own properties of the plain object. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {Object} Returns the converted plain object. - * @example - * - * function Foo() { - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.assign({ 'a': 1 }, new Foo); - * // => { 'a': 1, 'b': 2 } - * - * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); - * // => { 'a': 1, 'b': 2, 'c': 3 } - */ - function toPlainObject(value) { - return copyObject(value, keysIn(value)); - } - - /** - * Converts `value` to a safe integer. A safe integer can be compared and - * represented correctly. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toSafeInteger(3.2); - * // => 3 - * - * _.toSafeInteger(Number.MIN_VALUE); - * // => 0 - * - * _.toSafeInteger(Infinity); - * // => 9007199254740991 - * - * _.toSafeInteger('3.2'); - * // => 3 - */ - function toSafeInteger(value) { - return value - ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) - : (value === 0 ? value : 0); - } - - /** - * Converts `value` to a string. An empty string is returned for `null` - * and `undefined` values. The sign of `-0` is preserved. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - * @example - * - * _.toString(null); - * // => '' - * - * _.toString(-0); - * // => '-0' - * - * _.toString([1, 2, 3]); - * // => '1,2,3' - */ - function toString(value) { - return value == null ? '' : baseToString(value); - } - - /*------------------------------------------------------------------------*/ - - /** - * Assigns own enumerable string keyed properties of source objects to the - * destination object. Source objects are applied from left to right. - * Subsequent sources overwrite property assignments of previous sources. - * - * **Note:** This method mutates `object` and is loosely based on - * [`Object.assign`](https://mdn.io/Object/assign). - * - * @static - * @memberOf _ - * @since 0.10.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.assignIn - * @example - * - * function Foo() { - * this.a = 1; - * } - * - * function Bar() { - * this.c = 3; - * } - * - * Foo.prototype.b = 2; - * Bar.prototype.d = 4; - * - * _.assign({ 'a': 0 }, new Foo, new Bar); - * // => { 'a': 1, 'c': 3 } - */ - var assign = createAssigner(function(object, source) { - if (isPrototype(source) || isArrayLike(source)) { - copyObject(source, keys(source), object); - return; - } - for (var key in source) { - if (hasOwnProperty.call(source, key)) { - assignValue(object, key, source[key]); - } - } - }); - - /** - * This method is like `_.assign` except that it iterates over own and - * inherited source properties. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @alias extend - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.assign - * @example - * - * function Foo() { - * this.a = 1; - * } - * - * function Bar() { - * this.c = 3; - * } - * - * Foo.prototype.b = 2; - * Bar.prototype.d = 4; - * - * _.assignIn({ 'a': 0 }, new Foo, new Bar); - * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 } - */ - var assignIn = createAssigner(function(object, source) { - copyObject(source, keysIn(source), object); - }); - - /** - * This method is like `_.assignIn` except that it accepts `customizer` - * which is invoked to produce the assigned values. If `customizer` returns - * `undefined`, assignment is handled by the method instead. The `customizer` - * is invoked with five arguments: (objValue, srcValue, key, object, source). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @alias extendWith - * @category Object - * @param {Object} object The destination object. - * @param {...Object} sources The source objects. - * @param {Function} [customizer] The function to customize assigned values. - * @returns {Object} Returns `object`. - * @see _.assignWith - * @example - * - * function customizer(objValue, srcValue) { - * return _.isUndefined(objValue) ? srcValue : objValue; - * } - * - * var defaults = _.partialRight(_.assignInWith, customizer); - * - * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); - * // => { 'a': 1, 'b': 2 } - */ - var assignInWith = createAssigner(function(object, source, srcIndex, customizer) { - copyObject(source, keysIn(source), object, customizer); - }); - - /** - * This method is like `_.assign` except that it accepts `customizer` - * which is invoked to produce the assigned values. If `customizer` returns - * `undefined`, assignment is handled by the method instead. The `customizer` - * is invoked with five arguments: (objValue, srcValue, key, object, source). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} sources The source objects. - * @param {Function} [customizer] The function to customize assigned values. - * @returns {Object} Returns `object`. - * @see _.assignInWith - * @example - * - * function customizer(objValue, srcValue) { - * return _.isUndefined(objValue) ? srcValue : objValue; - * } - * - * var defaults = _.partialRight(_.assignWith, customizer); - * - * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); - * // => { 'a': 1, 'b': 2 } - */ - var assignWith = createAssigner(function(object, source, srcIndex, customizer) { - copyObject(source, keys(source), object, customizer); - }); - - /** - * Creates an array of values corresponding to `paths` of `object`. - * - * @static - * @memberOf _ - * @since 1.0.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {...(string|string[])} [paths] The property paths to pick. - * @returns {Array} Returns the picked values. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; - * - * _.at(object, ['a[0].b.c', 'a[1]']); - * // => [3, 4] - */ - var at = flatRest(baseAt); - - /** - * Creates an object that inherits from the `prototype` object. If a - * `properties` object is given, its own enumerable string keyed properties - * are assigned to the created object. - * - * @static - * @memberOf _ - * @since 2.3.0 - * @category Object - * @param {Object} prototype The object to inherit from. - * @param {Object} [properties] The properties to assign to the object. - * @returns {Object} Returns the new object. - * @example - * - * function Shape() { - * this.x = 0; - * this.y = 0; - * } - * - * function Circle() { - * Shape.call(this); - * } - * - * Circle.prototype = _.create(Shape.prototype, { - * 'constructor': Circle - * }); - * - * var circle = new Circle; - * circle instanceof Circle; - * // => true - * - * circle instanceof Shape; - * // => true - */ - function create(prototype, properties) { - var result = baseCreate(prototype); - return properties == null ? result : baseAssign(result, properties); - } - - /** - * Assigns own and inherited enumerable string keyed properties of source - * objects to the destination object for all destination properties that - * resolve to `undefined`. Source objects are applied from left to right. - * Once a property is set, additional values of the same property are ignored. - * - * **Note:** This method mutates `object`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.defaultsDeep - * @example - * - * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); - * // => { 'a': 1, 'b': 2 } - */ - var defaults = baseRest(function(args) { - args.push(undefined, customDefaultsAssignIn); - return apply(assignInWith, undefined, args); - }); - - /** - * This method is like `_.defaults` except that it recursively assigns - * default properties. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 3.10.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.defaults - * @example - * - * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } }); - * // => { 'a': { 'b': 2, 'c': 3 } } - */ - var defaultsDeep = baseRest(function(args) { - args.push(undefined, customDefaultsMerge); - return apply(mergeWith, undefined, args); - }); - - /** - * This method is like `_.find` except that it returns the key of the first - * element `predicate` returns truthy for instead of the element itself. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category Object - * @param {Object} object The object to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {string|undefined} Returns the key of the matched element, - * else `undefined`. - * @example - * - * var users = { - * 'barney': { 'age': 36, 'active': true }, - * 'fred': { 'age': 40, 'active': false }, - * 'pebbles': { 'age': 1, 'active': true } - * }; - * - * _.findKey(users, function(o) { return o.age < 40; }); - * // => 'barney' (iteration order is not guaranteed) - * - * // The `_.matches` iteratee shorthand. - * _.findKey(users, { 'age': 1, 'active': true }); - * // => 'pebbles' - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findKey(users, ['active', false]); - * // => 'fred' - * - * // The `_.property` iteratee shorthand. - * _.findKey(users, 'active'); - * // => 'barney' - */ - function findKey(object, predicate) { - return baseFindKey(object, getIteratee(predicate, 3), baseForOwn); - } - - /** - * This method is like `_.findKey` except that it iterates over elements of - * a collection in the opposite order. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Object - * @param {Object} object The object to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {string|undefined} Returns the key of the matched element, - * else `undefined`. - * @example - * - * var users = { - * 'barney': { 'age': 36, 'active': true }, - * 'fred': { 'age': 40, 'active': false }, - * 'pebbles': { 'age': 1, 'active': true } - * }; - * - * _.findLastKey(users, function(o) { return o.age < 40; }); - * // => returns 'pebbles' assuming `_.findKey` returns 'barney' - * - * // The `_.matches` iteratee shorthand. - * _.findLastKey(users, { 'age': 36, 'active': true }); - * // => 'barney' - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findLastKey(users, ['active', false]); - * // => 'fred' - * - * // The `_.property` iteratee shorthand. - * _.findLastKey(users, 'active'); - * // => 'pebbles' - */ - function findLastKey(object, predicate) { - return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight); - } - - /** - * Iterates over own and inherited enumerable string keyed properties of an - * object and invokes `iteratee` for each property. The iteratee is invoked - * with three arguments: (value, key, object). Iteratee functions may exit - * iteration early by explicitly returning `false`. - * - * @static - * @memberOf _ - * @since 0.3.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns `object`. - * @see _.forInRight - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forIn(new Foo, function(value, key) { - * console.log(key); - * }); - * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed). - */ - function forIn(object, iteratee) { - return object == null - ? object - : baseFor(object, getIteratee(iteratee, 3), keysIn); - } - - /** - * This method is like `_.forIn` except that it iterates over properties of - * `object` in the opposite order. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns `object`. - * @see _.forIn - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forInRight(new Foo, function(value, key) { - * console.log(key); - * }); - * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'. - */ - function forInRight(object, iteratee) { - return object == null - ? object - : baseForRight(object, getIteratee(iteratee, 3), keysIn); - } - - /** - * Iterates over own enumerable string keyed properties of an object and - * invokes `iteratee` for each property. The iteratee is invoked with three - * arguments: (value, key, object). Iteratee functions may exit iteration - * early by explicitly returning `false`. - * - * @static - * @memberOf _ - * @since 0.3.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns `object`. - * @see _.forOwnRight - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forOwn(new Foo, function(value, key) { - * console.log(key); - * }); - * // => Logs 'a' then 'b' (iteration order is not guaranteed). - */ - function forOwn(object, iteratee) { - return object && baseForOwn(object, getIteratee(iteratee, 3)); - } - - /** - * This method is like `_.forOwn` except that it iterates over properties of - * `object` in the opposite order. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns `object`. - * @see _.forOwn - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forOwnRight(new Foo, function(value, key) { - * console.log(key); - * }); - * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'. - */ - function forOwnRight(object, iteratee) { - return object && baseForOwnRight(object, getIteratee(iteratee, 3)); - } - - /** - * Creates an array of function property names from own enumerable properties - * of `object`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to inspect. - * @returns {Array} Returns the function names. - * @see _.functionsIn - * @example - * - * function Foo() { - * this.a = _.constant('a'); - * this.b = _.constant('b'); - * } - * - * Foo.prototype.c = _.constant('c'); - * - * _.functions(new Foo); - * // => ['a', 'b'] - */ - function functions(object) { - return object == null ? [] : baseFunctions(object, keys(object)); - } - - /** - * Creates an array of function property names from own and inherited - * enumerable properties of `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to inspect. - * @returns {Array} Returns the function names. - * @see _.functions - * @example - * - * function Foo() { - * this.a = _.constant('a'); - * this.b = _.constant('b'); - * } - * - * Foo.prototype.c = _.constant('c'); - * - * _.functionsIn(new Foo); - * // => ['a', 'b', 'c'] - */ - function functionsIn(object) { - return object == null ? [] : baseFunctions(object, keysIn(object)); - } - - /** - * Gets the value at `path` of `object`. If the resolved value is - * `undefined`, the `defaultValue` is returned in its place. - * - * @static - * @memberOf _ - * @since 3.7.0 - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to get. - * @param {*} [defaultValue] The value returned for `undefined` resolved values. - * @returns {*} Returns the resolved value. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }] }; - * - * _.get(object, 'a[0].b.c'); - * // => 3 - * - * _.get(object, ['a', '0', 'b', 'c']); - * // => 3 - * - * _.get(object, 'a.b.c', 'default'); - * // => 'default' - */ - function get(object, path, defaultValue) { - var result = object == null ? undefined : baseGet(object, path); - return result === undefined ? defaultValue : result; - } - - /** - * Checks if `path` is a direct property of `object`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - * @example - * - * var object = { 'a': { 'b': 2 } }; - * var other = _.create({ 'a': _.create({ 'b': 2 }) }); - * - * _.has(object, 'a'); - * // => true - * - * _.has(object, 'a.b'); - * // => true - * - * _.has(object, ['a', 'b']); - * // => true - * - * _.has(other, 'a'); - * // => false - */ - function has(object, path) { - return object != null && hasPath(object, path, baseHas); - } - - /** - * Checks if `path` is a direct or inherited property of `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - * @example - * - * var object = _.create({ 'a': _.create({ 'b': 2 }) }); - * - * _.hasIn(object, 'a'); - * // => true - * - * _.hasIn(object, 'a.b'); - * // => true - * - * _.hasIn(object, ['a', 'b']); - * // => true - * - * _.hasIn(object, 'b'); - * // => false - */ - function hasIn(object, path) { - return object != null && hasPath(object, path, baseHasIn); - } - - /** - * Creates an object composed of the inverted keys and values of `object`. - * If `object` contains duplicate values, subsequent values overwrite - * property assignments of previous values. - * - * @static - * @memberOf _ - * @since 0.7.0 - * @category Object - * @param {Object} object The object to invert. - * @returns {Object} Returns the new inverted object. - * @example - * - * var object = { 'a': 1, 'b': 2, 'c': 1 }; - * - * _.invert(object); - * // => { '1': 'c', '2': 'b' } - */ - var invert = createInverter(function(result, value, key) { - result[value] = key; - }, constant(identity)); - - /** - * This method is like `_.invert` except that the inverted object is generated - * from the results of running each element of `object` thru `iteratee`. The - * corresponding inverted value of each inverted key is an array of keys - * responsible for generating the inverted value. The iteratee is invoked - * with one argument: (value). - * - * @static - * @memberOf _ - * @since 4.1.0 - * @category Object - * @param {Object} object The object to invert. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Object} Returns the new inverted object. - * @example - * - * var object = { 'a': 1, 'b': 2, 'c': 1 }; - * - * _.invertBy(object); - * // => { '1': ['a', 'c'], '2': ['b'] } - * - * _.invertBy(object, function(value) { - * return 'group' + value; - * }); - * // => { 'group1': ['a', 'c'], 'group2': ['b'] } - */ - var invertBy = createInverter(function(result, value, key) { - if (hasOwnProperty.call(result, value)) { - result[value].push(key); - } else { - result[value] = [key]; - } - }, getIteratee); - - /** - * Invokes the method at `path` of `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path of the method to invoke. - * @param {...*} [args] The arguments to invoke the method with. - * @returns {*} Returns the result of the invoked method. - * @example - * - * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] }; - * - * _.invoke(object, 'a[0].b.c.slice', 1, 3); - * // => [2, 3] - */ - var invoke = baseRest(baseInvoke); - - /** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * for more details. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) - * - * _.keys('hi'); - * // => ['0', '1'] - */ - function keys(object) { - return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); - } - - /** - * Creates an array of the own and inherited enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keysIn(new Foo); - * // => ['a', 'b', 'c'] (iteration order is not guaranteed) - */ - function keysIn(object) { - return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); - } - - /** - * The opposite of `_.mapValues`; this method creates an object with the - * same values as `object` and keys generated by running each own enumerable - * string keyed property of `object` thru `iteratee`. The iteratee is invoked - * with three arguments: (value, key, object). - * - * @static - * @memberOf _ - * @since 3.8.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns the new mapped object. - * @see _.mapValues - * @example - * - * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) { - * return key + value; - * }); - * // => { 'a1': 1, 'b2': 2 } - */ - function mapKeys(object, iteratee) { - var result = {}; - iteratee = getIteratee(iteratee, 3); - - baseForOwn(object, function(value, key, object) { - baseAssignValue(result, iteratee(value, key, object), value); - }); - return result; - } - - /** - * Creates an object with the same keys as `object` and values generated - * by running each own enumerable string keyed property of `object` thru - * `iteratee`. The iteratee is invoked with three arguments: - * (value, key, object). - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns the new mapped object. - * @see _.mapKeys - * @example - * - * var users = { - * 'fred': { 'user': 'fred', 'age': 40 }, - * 'pebbles': { 'user': 'pebbles', 'age': 1 } - * }; - * - * _.mapValues(users, function(o) { return o.age; }); - * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) - * - * // The `_.property` iteratee shorthand. - * _.mapValues(users, 'age'); - * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) - */ - function mapValues(object, iteratee) { - var result = {}; - iteratee = getIteratee(iteratee, 3); - - baseForOwn(object, function(value, key, object) { - baseAssignValue(result, key, iteratee(value, key, object)); - }); - return result; - } - - /** - * This method is like `_.assign` except that it recursively merges own and - * inherited enumerable string keyed properties of source objects into the - * destination object. Source properties that resolve to `undefined` are - * skipped if a destination value exists. Array and plain object properties - * are merged recursively. Other objects and value types are overridden by - * assignment. Source objects are applied from left to right. Subsequent - * sources overwrite property assignments of previous sources. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 0.5.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @example - * - * var object = { - * 'a': [{ 'b': 2 }, { 'd': 4 }] - * }; - * - * var other = { - * 'a': [{ 'c': 3 }, { 'e': 5 }] - * }; - * - * _.merge(object, other); - * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } - */ - var merge = createAssigner(function(object, source, srcIndex) { - baseMerge(object, source, srcIndex); - }); - - /** - * This method is like `_.merge` except that it accepts `customizer` which - * is invoked to produce the merged values of the destination and source - * properties. If `customizer` returns `undefined`, merging is handled by the - * method instead. The `customizer` is invoked with six arguments: - * (objValue, srcValue, key, object, source, stack). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} sources The source objects. - * @param {Function} customizer The function to customize assigned values. - * @returns {Object} Returns `object`. - * @example - * - * function customizer(objValue, srcValue) { - * if (_.isArray(objValue)) { - * return objValue.concat(srcValue); - * } - * } - * - * var object = { 'a': [1], 'b': [2] }; - * var other = { 'a': [3], 'b': [4] }; - * - * _.mergeWith(object, other, customizer); - * // => { 'a': [1, 3], 'b': [2, 4] } - */ - var mergeWith = createAssigner(function(object, source, srcIndex, customizer) { - baseMerge(object, source, srcIndex, customizer); - }); - - /** - * The opposite of `_.pick`; this method creates an object composed of the - * own and inherited enumerable property paths of `object` that are not omitted. - * - * **Note:** This method is considerably slower than `_.pick`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The source object. - * @param {...(string|string[])} [paths] The property paths to omit. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.omit(object, ['a', 'c']); - * // => { 'b': '2' } - */ - var omit = flatRest(function(object, paths) { - var result = {}; - if (object == null) { - return result; - } - var isDeep = false; - paths = arrayMap(paths, function(path) { - path = castPath(path, object); - isDeep || (isDeep = path.length > 1); - return path; - }); - copyObject(object, getAllKeysIn(object), result); - if (isDeep) { - result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone); - } - var length = paths.length; - while (length--) { - baseUnset(result, paths[length]); - } - return result; - }); - - /** - * The opposite of `_.pickBy`; this method creates an object composed of - * the own and inherited enumerable string keyed properties of `object` that - * `predicate` doesn't return truthy for. The predicate is invoked with two - * arguments: (value, key). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The source object. - * @param {Function} [predicate=_.identity] The function invoked per property. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.omitBy(object, _.isNumber); - * // => { 'b': '2' } - */ - function omitBy(object, predicate) { - return pickBy(object, negate(getIteratee(predicate))); - } - - /** - * Creates an object composed of the picked `object` properties. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The source object. - * @param {...(string|string[])} [paths] The property paths to pick. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.pick(object, ['a', 'c']); - * // => { 'a': 1, 'c': 3 } - */ - var pick = flatRest(function(object, paths) { - return object == null ? {} : basePick(object, paths); - }); - - /** - * Creates an object composed of the `object` properties `predicate` returns - * truthy for. The predicate is invoked with two arguments: (value, key). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The source object. - * @param {Function} [predicate=_.identity] The function invoked per property. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.pickBy(object, _.isNumber); - * // => { 'a': 1, 'c': 3 } - */ - function pickBy(object, predicate) { - if (object == null) { - return {}; - } - var props = arrayMap(getAllKeysIn(object), function(prop) { - return [prop]; - }); - predicate = getIteratee(predicate); - return basePickBy(object, props, function(value, path) { - return predicate(value, path[0]); - }); - } - - /** - * This method is like `_.get` except that if the resolved value is a - * function it's invoked with the `this` binding of its parent object and - * its result is returned. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to resolve. - * @param {*} [defaultValue] The value returned for `undefined` resolved values. - * @returns {*} Returns the resolved value. - * @example - * - * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] }; - * - * _.result(object, 'a[0].b.c1'); - * // => 3 - * - * _.result(object, 'a[0].b.c2'); - * // => 4 - * - * _.result(object, 'a[0].b.c3', 'default'); - * // => 'default' - * - * _.result(object, 'a[0].b.c3', _.constant('default')); - * // => 'default' - */ - function result(object, path, defaultValue) { - path = castPath(path, object); - - var index = -1, - length = path.length; - - // Ensure the loop is entered when path is empty. - if (!length) { - length = 1; - object = undefined; - } - while (++index < length) { - var value = object == null ? undefined : object[toKey(path[index])]; - if (value === undefined) { - index = length; - value = defaultValue; - } - object = isFunction(value) ? value.call(object) : value; - } - return object; - } - - /** - * Sets the value at `path` of `object`. If a portion of `path` doesn't exist, - * it's created. Arrays are created for missing index properties while objects - * are created for all other missing properties. Use `_.setWith` to customize - * `path` creation. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 3.7.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {*} value The value to set. - * @returns {Object} Returns `object`. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }] }; - * - * _.set(object, 'a[0].b.c', 4); - * console.log(object.a[0].b.c); - * // => 4 - * - * _.set(object, ['x', '0', 'y', 'z'], 5); - * console.log(object.x[0].y.z); - * // => 5 - */ - function set(object, path, value) { - return object == null ? object : baseSet(object, path, value); - } - - /** - * This method is like `_.set` except that it accepts `customizer` which is - * invoked to produce the objects of `path`. If `customizer` returns `undefined` - * path creation is handled by the method instead. The `customizer` is invoked - * with three arguments: (nsValue, key, nsObject). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {*} value The value to set. - * @param {Function} [customizer] The function to customize assigned values. - * @returns {Object} Returns `object`. - * @example - * - * var object = {}; - * - * _.setWith(object, '[0][1]', 'a', Object); - * // => { '0': { '1': 'a' } } - */ - function setWith(object, path, value, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - return object == null ? object : baseSet(object, path, value, customizer); - } - - /** - * Creates an array of own enumerable string keyed-value pairs for `object` - * which can be consumed by `_.fromPairs`. If `object` is a map or set, its - * entries are returned. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @alias entries - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the key-value pairs. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.toPairs(new Foo); - * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed) - */ - var toPairs = createToPairs(keys); - - /** - * Creates an array of own and inherited enumerable string keyed-value pairs - * for `object` which can be consumed by `_.fromPairs`. If `object` is a map - * or set, its entries are returned. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @alias entriesIn - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the key-value pairs. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.toPairsIn(new Foo); - * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed) - */ - var toPairsIn = createToPairs(keysIn); - - /** - * An alternative to `_.reduce`; this method transforms `object` to a new - * `accumulator` object which is the result of running each of its own - * enumerable string keyed properties thru `iteratee`, with each invocation - * potentially mutating the `accumulator` object. If `accumulator` is not - * provided, a new object with the same `[[Prototype]]` will be used. The - * iteratee is invoked with four arguments: (accumulator, value, key, object). - * Iteratee functions may exit iteration early by explicitly returning `false`. - * - * @static - * @memberOf _ - * @since 1.3.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [accumulator] The custom accumulator value. - * @returns {*} Returns the accumulated value. - * @example - * - * _.transform([2, 3, 4], function(result, n) { - * result.push(n *= n); - * return n % 2 == 0; - * }, []); - * // => [4, 9] - * - * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { - * (result[value] || (result[value] = [])).push(key); - * }, {}); - * // => { '1': ['a', 'c'], '2': ['b'] } - */ - function transform(object, iteratee, accumulator) { - var isArr = isArray(object), - isArrLike = isArr || isBuffer(object) || isTypedArray(object); - - iteratee = getIteratee(iteratee, 4); - if (accumulator == null) { - var Ctor = object && object.constructor; - if (isArrLike) { - accumulator = isArr ? new Ctor : []; - } - else if (isObject(object)) { - accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {}; - } - else { - accumulator = {}; - } - } - (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) { - return iteratee(accumulator, value, index, object); - }); - return accumulator; - } - - /** - * Removes the property at `path` of `object`. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to unset. - * @returns {boolean} Returns `true` if the property is deleted, else `false`. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 7 } }] }; - * _.unset(object, 'a[0].b.c'); - * // => true - * - * console.log(object); - * // => { 'a': [{ 'b': {} }] }; - * - * _.unset(object, ['a', '0', 'b', 'c']); - * // => true - * - * console.log(object); - * // => { 'a': [{ 'b': {} }] }; - */ - function unset(object, path) { - return object == null ? true : baseUnset(object, path); - } - - /** - * This method is like `_.set` except that accepts `updater` to produce the - * value to set. Use `_.updateWith` to customize `path` creation. The `updater` - * is invoked with one argument: (value). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.6.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {Function} updater The function to produce the updated value. - * @returns {Object} Returns `object`. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }] }; - * - * _.update(object, 'a[0].b.c', function(n) { return n * n; }); - * console.log(object.a[0].b.c); - * // => 9 - * - * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; }); - * console.log(object.x[0].y.z); - * // => 0 - */ - function update(object, path, updater) { - return object == null ? object : baseUpdate(object, path, castFunction(updater)); - } - - /** - * This method is like `_.update` except that it accepts `customizer` which is - * invoked to produce the objects of `path`. If `customizer` returns `undefined` - * path creation is handled by the method instead. The `customizer` is invoked - * with three arguments: (nsValue, key, nsObject). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.6.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {Function} updater The function to produce the updated value. - * @param {Function} [customizer] The function to customize assigned values. - * @returns {Object} Returns `object`. - * @example - * - * var object = {}; - * - * _.updateWith(object, '[0][1]', _.constant('a'), Object); - * // => { '0': { '1': 'a' } } - */ - function updateWith(object, path, updater, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer); - } - - /** - * Creates an array of the own enumerable string keyed property values of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property values. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.values(new Foo); - * // => [1, 2] (iteration order is not guaranteed) - * - * _.values('hi'); - * // => ['h', 'i'] - */ - function values(object) { - return object == null ? [] : baseValues(object, keys(object)); - } - - /** - * Creates an array of the own and inherited enumerable string keyed property - * values of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property values. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.valuesIn(new Foo); - * // => [1, 2, 3] (iteration order is not guaranteed) - */ - function valuesIn(object) { - return object == null ? [] : baseValues(object, keysIn(object)); - } - - /*------------------------------------------------------------------------*/ - - /** - * Clamps `number` within the inclusive `lower` and `upper` bounds. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Number - * @param {number} number The number to clamp. - * @param {number} [lower] The lower bound. - * @param {number} upper The upper bound. - * @returns {number} Returns the clamped number. - * @example - * - * _.clamp(-10, -5, 5); - * // => -5 - * - * _.clamp(10, -5, 5); - * // => 5 - */ - function clamp(number, lower, upper) { - if (upper === undefined) { - upper = lower; - lower = undefined; - } - if (upper !== undefined) { - upper = toNumber(upper); - upper = upper === upper ? upper : 0; - } - if (lower !== undefined) { - lower = toNumber(lower); - lower = lower === lower ? lower : 0; - } - return baseClamp(toNumber(number), lower, upper); - } - - /** - * Checks if `n` is between `start` and up to, but not including, `end`. If - * `end` is not specified, it's set to `start` with `start` then set to `0`. - * If `start` is greater than `end` the params are swapped to support - * negative ranges. - * - * @static - * @memberOf _ - * @since 3.3.0 - * @category Number - * @param {number} number The number to check. - * @param {number} [start=0] The start of the range. - * @param {number} end The end of the range. - * @returns {boolean} Returns `true` if `number` is in the range, else `false`. - * @see _.range, _.rangeRight - * @example - * - * _.inRange(3, 2, 4); - * // => true - * - * _.inRange(4, 8); - * // => true - * - * _.inRange(4, 2); - * // => false - * - * _.inRange(2, 2); - * // => false - * - * _.inRange(1.2, 2); - * // => true - * - * _.inRange(5.2, 4); - * // => false - * - * _.inRange(-3, -2, -6); - * // => true - */ - function inRange(number, start, end) { - start = toFinite(start); - if (end === undefined) { - end = start; - start = 0; - } else { - end = toFinite(end); - } - number = toNumber(number); - return baseInRange(number, start, end); - } - - /** - * Produces a random number between the inclusive `lower` and `upper` bounds. - * If only one argument is provided a number between `0` and the given number - * is returned. If `floating` is `true`, or either `lower` or `upper` are - * floats, a floating-point number is returned instead of an integer. - * - * **Note:** JavaScript follows the IEEE-754 standard for resolving - * floating-point values which can produce unexpected results. - * - * @static - * @memberOf _ - * @since 0.7.0 - * @category Number - * @param {number} [lower=0] The lower bound. - * @param {number} [upper=1] The upper bound. - * @param {boolean} [floating] Specify returning a floating-point number. - * @returns {number} Returns the random number. - * @example - * - * _.random(0, 5); - * // => an integer between 0 and 5 - * - * _.random(5); - * // => also an integer between 0 and 5 - * - * _.random(5, true); - * // => a floating-point number between 0 and 5 - * - * _.random(1.2, 5.2); - * // => a floating-point number between 1.2 and 5.2 - */ - function random(lower, upper, floating) { - if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) { - upper = floating = undefined; - } - if (floating === undefined) { - if (typeof upper == 'boolean') { - floating = upper; - upper = undefined; - } - else if (typeof lower == 'boolean') { - floating = lower; - lower = undefined; - } - } - if (lower === undefined && upper === undefined) { - lower = 0; - upper = 1; - } - else { - lower = toFinite(lower); - if (upper === undefined) { - upper = lower; - lower = 0; - } else { - upper = toFinite(upper); - } - } - if (lower > upper) { - var temp = lower; - lower = upper; - upper = temp; - } - if (floating || lower % 1 || upper % 1) { - var rand = nativeRandom(); - return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper); - } - return baseRandom(lower, upper); - } - - /*------------------------------------------------------------------------*/ - - /** - * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the camel cased string. - * @example - * - * _.camelCase('Foo Bar'); - * // => 'fooBar' - * - * _.camelCase('--foo-bar--'); - * // => 'fooBar' - * - * _.camelCase('__FOO_BAR__'); - * // => 'fooBar' - */ - var camelCase = createCompounder(function(result, word, index) { - word = word.toLowerCase(); - return result + (index ? capitalize(word) : word); - }); - - /** - * Converts the first character of `string` to upper case and the remaining - * to lower case. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to capitalize. - * @returns {string} Returns the capitalized string. - * @example - * - * _.capitalize('FRED'); - * // => 'Fred' - */ - function capitalize(string) { - return upperFirst(toString(string).toLowerCase()); - } - - /** - * Deburrs `string` by converting - * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table) - * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A) - * letters to basic Latin letters and removing - * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to deburr. - * @returns {string} Returns the deburred string. - * @example - * - * _.deburr('déjà vu'); - * // => 'deja vu' - */ - function deburr(string) { - string = toString(string); - return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ''); - } - - /** - * Checks if `string` ends with the given target string. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to inspect. - * @param {string} [target] The string to search for. - * @param {number} [position=string.length] The position to search up to. - * @returns {boolean} Returns `true` if `string` ends with `target`, - * else `false`. - * @example - * - * _.endsWith('abc', 'c'); - * // => true - * - * _.endsWith('abc', 'b'); - * // => false - * - * _.endsWith('abc', 'b', 2); - * // => true - */ - function endsWith(string, target, position) { - string = toString(string); - target = baseToString(target); - - var length = string.length; - position = position === undefined - ? length - : baseClamp(toInteger(position), 0, length); - - var end = position; - position -= target.length; - return position >= 0 && string.slice(position, end) == target; - } - - /** - * Converts the characters "&", "<", ">", '"', and "'" in `string` to their - * corresponding HTML entities. - * - * **Note:** No other characters are escaped. To escape additional - * characters use a third-party library like [_he_](https://mths.be/he). - * - * Though the ">" character is escaped for symmetry, characters like - * ">" and "/" don't need escaping in HTML and have no special meaning - * unless they're part of a tag or unquoted attribute value. See - * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) - * (under "semi-related fun fact") for more details. - * - * When working with HTML you should always - * [quote attribute values](http://wonko.com/post/html-escaping) to reduce - * XSS vectors. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category String - * @param {string} [string=''] The string to escape. - * @returns {string} Returns the escaped string. - * @example - * - * _.escape('fred, barney, & pebbles'); - * // => 'fred, barney, & pebbles' - */ - function escape(string) { - string = toString(string); - return (string && reHasUnescapedHtml.test(string)) - ? string.replace(reUnescapedHtml, escapeHtmlChar) - : string; - } - - /** - * Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+", - * "?", "(", ")", "[", "]", "{", "}", and "|" in `string`. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to escape. - * @returns {string} Returns the escaped string. - * @example - * - * _.escapeRegExp('[lodash](https://lodash.com/)'); - * // => '\[lodash\]\(https://lodash\.com/\)' - */ - function escapeRegExp(string) { - string = toString(string); - return (string && reHasRegExpChar.test(string)) - ? string.replace(reRegExpChar, '\\$&') - : string; - } - - /** - * Converts `string` to - * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the kebab cased string. - * @example - * - * _.kebabCase('Foo Bar'); - * // => 'foo-bar' - * - * _.kebabCase('fooBar'); - * // => 'foo-bar' - * - * _.kebabCase('__FOO_BAR__'); - * // => 'foo-bar' - */ - var kebabCase = createCompounder(function(result, word, index) { - return result + (index ? '-' : '') + word.toLowerCase(); - }); - - /** - * Converts `string`, as space separated words, to lower case. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the lower cased string. - * @example - * - * _.lowerCase('--Foo-Bar--'); - * // => 'foo bar' - * - * _.lowerCase('fooBar'); - * // => 'foo bar' - * - * _.lowerCase('__FOO_BAR__'); - * // => 'foo bar' - */ - var lowerCase = createCompounder(function(result, word, index) { - return result + (index ? ' ' : '') + word.toLowerCase(); - }); - - /** - * Converts the first character of `string` to lower case. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the converted string. - * @example - * - * _.lowerFirst('Fred'); - * // => 'fred' - * - * _.lowerFirst('FRED'); - * // => 'fRED' - */ - var lowerFirst = createCaseFirst('toLowerCase'); - - /** - * Pads `string` on the left and right sides if it's shorter than `length`. - * Padding characters are truncated if they can't be evenly divided by `length`. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.pad('abc', 8); - * // => ' abc ' - * - * _.pad('abc', 8, '_-'); - * // => '_-abc_-_' - * - * _.pad('abc', 3); - * // => 'abc' - */ - function pad(string, length, chars) { - string = toString(string); - length = toInteger(length); - - var strLength = length ? stringSize(string) : 0; - if (!length || strLength >= length) { - return string; - } - var mid = (length - strLength) / 2; - return ( - createPadding(nativeFloor(mid), chars) + - string + - createPadding(nativeCeil(mid), chars) - ); - } - - /** - * Pads `string` on the right side if it's shorter than `length`. Padding - * characters are truncated if they exceed `length`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.padEnd('abc', 6); - * // => 'abc ' - * - * _.padEnd('abc', 6, '_-'); - * // => 'abc_-_' - * - * _.padEnd('abc', 3); - * // => 'abc' - */ - function padEnd(string, length, chars) { - string = toString(string); - length = toInteger(length); - - var strLength = length ? stringSize(string) : 0; - return (length && strLength < length) - ? (string + createPadding(length - strLength, chars)) - : string; - } - - /** - * Pads `string` on the left side if it's shorter than `length`. Padding - * characters are truncated if they exceed `length`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.padStart('abc', 6); - * // => ' abc' - * - * _.padStart('abc', 6, '_-'); - * // => '_-_abc' - * - * _.padStart('abc', 3); - * // => 'abc' - */ - function padStart(string, length, chars) { - string = toString(string); - length = toInteger(length); - - var strLength = length ? stringSize(string) : 0; - return (length && strLength < length) - ? (createPadding(length - strLength, chars) + string) - : string; - } - - /** - * Converts `string` to an integer of the specified radix. If `radix` is - * `undefined` or `0`, a `radix` of `10` is used unless `value` is a - * hexadecimal, in which case a `radix` of `16` is used. - * - * **Note:** This method aligns with the - * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category String - * @param {string} string The string to convert. - * @param {number} [radix=10] The radix to interpret `value` by. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {number} Returns the converted integer. - * @example - * - * _.parseInt('08'); - * // => 8 - * - * _.map(['6', '08', '10'], _.parseInt); - * // => [6, 8, 10] - */ - function parseInt(string, radix, guard) { - if (guard || radix == null) { - radix = 0; - } else if (radix) { - radix = +radix; - } - return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0); - } - - /** - * Repeats the given string `n` times. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to repeat. - * @param {number} [n=1] The number of times to repeat the string. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {string} Returns the repeated string. - * @example - * - * _.repeat('*', 3); - * // => '***' - * - * _.repeat('abc', 2); - * // => 'abcabc' - * - * _.repeat('abc', 0); - * // => '' - */ - function repeat(string, n, guard) { - if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) { - n = 1; - } else { - n = toInteger(n); - } - return baseRepeat(toString(string), n); - } - - /** - * Replaces matches for `pattern` in `string` with `replacement`. - * - * **Note:** This method is based on - * [`String#replace`](https://mdn.io/String/replace). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to modify. - * @param {RegExp|string} pattern The pattern to replace. - * @param {Function|string} replacement The match replacement. - * @returns {string} Returns the modified string. - * @example - * - * _.replace('Hi Fred', 'Fred', 'Barney'); - * // => 'Hi Barney' - */ - function replace() { - var args = arguments, - string = toString(args[0]); - - return args.length < 3 ? string : string.replace(args[1], args[2]); - } - - /** - * Converts `string` to - * [snake case](https://en.wikipedia.org/wiki/Snake_case). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the snake cased string. - * @example - * - * _.snakeCase('Foo Bar'); - * // => 'foo_bar' - * - * _.snakeCase('fooBar'); - * // => 'foo_bar' - * - * _.snakeCase('--FOO-BAR--'); - * // => 'foo_bar' - */ - var snakeCase = createCompounder(function(result, word, index) { - return result + (index ? '_' : '') + word.toLowerCase(); - }); - - /** - * Splits `string` by `separator`. - * - * **Note:** This method is based on - * [`String#split`](https://mdn.io/String/split). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to split. - * @param {RegExp|string} separator The separator pattern to split by. - * @param {number} [limit] The length to truncate results to. - * @returns {Array} Returns the string segments. - * @example - * - * _.split('a-b-c', '-', 2); - * // => ['a', 'b'] - */ - function split(string, separator, limit) { - if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) { - separator = limit = undefined; - } - limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0; - if (!limit) { - return []; - } - string = toString(string); - if (string && ( - typeof separator == 'string' || - (separator != null && !isRegExp(separator)) - )) { - separator = baseToString(separator); - if (!separator && hasUnicode(string)) { - return castSlice(stringToArray(string), 0, limit); - } - } - return string.split(separator, limit); - } - - /** - * Converts `string` to - * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage). - * - * @static - * @memberOf _ - * @since 3.1.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the start cased string. - * @example - * - * _.startCase('--foo-bar--'); - * // => 'Foo Bar' - * - * _.startCase('fooBar'); - * // => 'Foo Bar' - * - * _.startCase('__FOO_BAR__'); - * // => 'FOO BAR' - */ - var startCase = createCompounder(function(result, word, index) { - return result + (index ? ' ' : '') + upperFirst(word); - }); - - /** - * Checks if `string` starts with the given target string. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to inspect. - * @param {string} [target] The string to search for. - * @param {number} [position=0] The position to search from. - * @returns {boolean} Returns `true` if `string` starts with `target`, - * else `false`. - * @example - * - * _.startsWith('abc', 'a'); - * // => true - * - * _.startsWith('abc', 'b'); - * // => false - * - * _.startsWith('abc', 'b', 1); - * // => true - */ - function startsWith(string, target, position) { - string = toString(string); - position = position == null - ? 0 - : baseClamp(toInteger(position), 0, string.length); - - target = baseToString(target); - return string.slice(position, position + target.length) == target; - } - - /** - * Creates a compiled template function that can interpolate data properties - * in "interpolate" delimiters, HTML-escape interpolated data properties in - * "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data - * properties may be accessed as free variables in the template. If a setting - * object is given, it takes precedence over `_.templateSettings` values. - * - * **Note:** In the development build `_.template` utilizes - * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl) - * for easier debugging. - * - * For more information on precompiling templates see - * [lodash's custom builds documentation](https://lodash.com/custom-builds). - * - * For more information on Chrome extension sandboxes see - * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval). - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category String - * @param {string} [string=''] The template string. - * @param {Object} [options={}] The options object. - * @param {RegExp} [options.escape=_.templateSettings.escape] - * The HTML "escape" delimiter. - * @param {RegExp} [options.evaluate=_.templateSettings.evaluate] - * The "evaluate" delimiter. - * @param {Object} [options.imports=_.templateSettings.imports] - * An object to import into the template as free variables. - * @param {RegExp} [options.interpolate=_.templateSettings.interpolate] - * The "interpolate" delimiter. - * @param {string} [options.sourceURL='lodash.templateSources[n]'] - * The sourceURL of the compiled template. - * @param {string} [options.variable='obj'] - * The data object variable name. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Function} Returns the compiled template function. - * @example - * - * // Use the "interpolate" delimiter to create a compiled template. - * var compiled = _.template('hello <%= user %>!'); - * compiled({ 'user': 'fred' }); - * // => 'hello fred!' - * - * // Use the HTML "escape" delimiter to escape data property values. - * var compiled = _.template('<%- value %>'); - * compiled({ 'value': ' - - - - - - - - - - - - - - \ No newline at end of file diff --git a/frontend/taxonomy/uml/nonnoml/nomnoml.js b/frontend/taxonomy/uml/nonnoml/nomnoml.js deleted file mode 100644 index ae293d9..0000000 --- a/frontend/taxonomy/uml/nonnoml/nomnoml.js +++ /dev/null @@ -1,1685 +0,0 @@ -(function (factoryFn) { - if (typeof define === 'function' && define.amd) - define(['lodash', 'dagre'], factoryFn); - else if (typeof module === 'object' && module.exports) - module.exports = factoryFn(require('lodash'), require('dagre')); - else this.nomnoml = factoryFn(_, dagre); -})(function (_, dagre) { - var skanaar = skanaar || {} -skanaar.Canvas = function (canvas, callbacks){ - var ctx = canvas.getContext('2d'); - var mousePos = { x: 0, y: 0 } - var twopi = 2*3.1416 - - function mouseEventToPos(event){ - var e = canvas - return { - x: event.clientX - e.getBoundingClientRect().left - e.clientLeft + e.scrollLeft, - y: event.clientY - e.getBoundingClientRect().top - e.clientTop + e.scrollTop - } - } - - if (callbacks) { - canvas.addEventListener('mousedown', function (event){ - if (callbacks.mousedown) callbacks.mousedown(mouseEventToPos(event)) - }) - - canvas.addEventListener('mouseup', function (event){ - if (callbacks.mouseup) callbacks.mouseup(mouseEventToPos(event)) - }) - - canvas.addEventListener('mousemove', function (event){ - mousePos = mouseEventToPos(event) - if (callbacks.mousemove) callbacks.mousemove(mouseEventToPos(event)) - }) - } - - var chainable = { - stroke: function (){ - ctx.stroke() - return chainable - }, - fill: function (){ - ctx.fill() - return chainable - }, - fillAndStroke: function (){ - ctx.fill() - ctx.stroke() - return chainable - } - } - - function color255(r, g, b, a){ - var optionalAlpha = a === undefined ? 1 : a - var comps = [Math.floor(r), Math.floor(g), Math.floor(b), optionalAlpha] - return 'rgba('+ comps.join() +')' - } - - function tracePath(path, offset, s){ - s = s === undefined ? 1 : s - offset = offset || {x:0, y:0} - ctx.beginPath() - ctx.moveTo(offset.x + s*path[0].x, offset.y + s*path[0].y) - for(var i=1, len=path.length; i=0; i--) - if (states[i][property]) - return states[i][property] - return undefined - } - - function last(list){ return list[list.length-1] } - - function tracePath(path, offset, s){ - s = s === undefined ? 1 : s - offset = offset || {x:0, y:0} - var d = path.map(function (e, i){ - return (i ? 'L' : 'M') + tX(offset.x + s*e.x) + ' ' + tY(offset.y + s*e.y) - }).join(' ') - return newElement('path', { d: d }) - } - - function newElement(type, attr, content) { - var element = Element(type, attr, content) - elements.push(element) - return element - } - - return { - width: function (){ return elements.width }, - height: function (){ return elements.height }, - background: function (/*r, g, b*/){}, - clear: function (){}, - circle: function (x, y, r){ - var attr = (arguments.length === 2) ? - {r: y, cx: tX(x.x), cy: tY(x.y)} : - {r: r, cx: tX(x), cy: tY(y)} - var element = Element('circle', attr) - elements.push(element) - return element - }, - ellipse: function (center, w, h /*, start, stop*/){ - return newElement('ellipse', - { cx: tX(center.x), cy: tY(center.y), rx: w/2, ry: h/2 }) - }, - arc: function (x, y, r /*, start, stop*/){ - return newElement('ellipse', - { cx: tX(x), cy: tY(y), rx: r, ry: r }) - }, - roundRect: function (x, y, w, h, r){ - return newElement('rect', - { x: tX(x), y: tY(y), rx: r, ry: r, height: h, width: w }) - }, - rect: function (x, y, w, h){ - return newElement('rect', - { x: tX(x), y: tY(y), height: h, width: w }) - }, - path: tracePath, - circuit: function (path, offset, s){ - var element = tracePath(path, offset, s) - element.attr.d += ' Z' - return element - }, - font: function (font){ - last(states).font = font; - }, - strokeStyle: function (stroke){ - last(states).stroke = stroke - }, - fillStyle: function (fill){ - last(states).fill = fill - }, - arcTo: function (x1, y1, x2, y2){ - last(elements).attr.d += ('L'+tX(x1)+' '+tY(y1)+' L'+tX(x2)+' '+tY(y2)+' ') - }, - beginPath: function (){ - return newElement('path', {d:''}) - }, - fillText: function (text, x, y){ - if (lastDefined('textAlign') === 'center') - x -= this.measureText(text).width/2 - return newElement('text', { x: tX(x), y: tY(y) }, text) - }, - lineCap: function (cap){ globalStyle += ';stroke-linecap:'+cap }, - lineJoin: function (join){ globalStyle += ';stroke-linejoin:'+join }, - lineTo: function (x, y){ - last(elements).attr.d += ('L' + tX(x) + ' ' + tY(y) + ' ') - }, - lineWidth: function (w){ globalStyle += ';stroke-width:'+w}, - measureText: function (s){ - return { - width: skanaar.sum(s, function (c){ - if (c === 'M' || c === 'W') { return 14 } - return c.charCodeAt(0) < 200 ? 9.5 : 16 - }) - } - }, - moveTo: function (x, y){ - last(elements).attr.d += ('M' + tX(x) + ' ' + tY(y) + ' ') - }, - restore: function (){ - states.pop() - }, - save: function (){ - states.push(State(0, 0)) - }, - scale: function (){}, - setLineDash: function (){}, - stroke: function (){ - last(elements).stroke() - }, - textAlign: function (a){ - last(states).textAlign = a - }, - translate: function (dx, dy){ - last(states).x += dx - last(states).y += dy - }, - serialize: function (_attributes){ - var attrs = _attributes || {}; - attrs.version = attrs.version || '1.1'; - attrs.baseProfile = attrs.baseProfile || 'full'; - attrs.width = attrs.width || '100%'; - attrs.height = attrs.height || '100%'; - attrs.xmlns = attrs.xmlns || 'http://www.w3.org/2000/svg'; - attrs['xmlns:xlink'] = attrs['xmlns:xlink'] || 'http://www.w3.org/1999/xlink'; - attrs['xmlns:ev'] = attrs['xmlns:ev'] || 'http://www.w3.org/2001/xml-events'; - attrs.style = attrs.style || lastDefined('font') + ';' + globalStyle; - - function toAttr(obj){ - function toKeyValue(key){ return key + '="' + obj[key] + '"' } - return Object.keys(obj).map(toKeyValue).join(' ') - } - function toHtml(e){ - return '<'+e.name+' '+toAttr(e.attr)+'>'+(e.content || '')+'' - - } - var innerSvg = elements.map(toHtml).join('\n') - return toHtml(Element('svg', attrs, innerSvg)) - } - } -}; -; -/* parser generated by jison 0.4.13 */ -/* - Returns a Parser object of the following structure: - - Parser: { - yy: {} - } - - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } - - - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } - - - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -var nomnomlCoreParser = (function(){ -var parser = {trace: function trace() { }, -yy: {}, -symbols_: {"error":2,"root":3,"compartment":4,"EOF":5,"slot":6,"IDENT":7,"class":8,"association":9,"SEP":10,"parts":11,"|":12,"[":13,"]":14,"$accept":0,"$end":1}, -terminals_: {2:"error",5:"EOF",7:"IDENT",10:"SEP",12:"|",13:"[",14:"]"}, -productions_: [0,[3,2],[6,1],[6,1],[6,1],[4,1],[4,3],[11,1],[11,3],[11,2],[9,3],[8,3]], -performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */ -/**/) { -/* this == yyval */ - -var $0 = $$.length - 1; -switch (yystate) { -case 1: return $$[$0-1] -break; -case 2:this.$ = $$[$0].trim().replace(/\\(\[|\]|\|)/g, '$'+'1'); -break; -case 3:this.$ = $$[$0]; -break; -case 4:this.$ = $$[$0]; -break; -case 5:this.$ = [$$[$0]]; -break; -case 6:this.$ = $$[$0-2].concat($$[$0]); -break; -case 7:this.$ = [$$[$0]]; -break; -case 8:this.$ = $$[$0-2].concat([$$[$0]]); -break; -case 9:this.$ = $$[$0-1].concat([[]]); -break; -case 10: - var t = $$[$0-1].trim().replace(/\\(\[|\]|\|)/g, '$'+'1').match('^(.*?)([<:o+]*-/?-*[:o+>]*)(.*)$'); - this.$ = {assoc:t[2], start:$$[$0-2], end:$$[$0], startLabel:t[1].trim(), endLabel:t[3].trim()}; - -break; -case 11: - var type = 'CLASS'; - var id = $$[$0-1][0][0]; - var typeMatch = $$[$0-1][0][0].match('<([a-z]*)>(.*)'); - if (typeMatch) { - type = typeMatch[1].toUpperCase(); - id = typeMatch[2].trim(); - } - $$[$0-1][0][0] = id; - this.$ = {type:type, id:id, parts:$$[$0-1]}; - -break; -} -}, -table: [{3:1,4:2,6:3,7:[1,4],8:5,9:6,13:[1,7]},{1:[3]},{5:[1,8],10:[1,9]},{5:[2,5],10:[2,5],12:[2,5],14:[2,5]},{5:[2,2],10:[2,2],12:[2,2],14:[2,2]},{5:[2,3],7:[1,10],10:[2,3],12:[2,3],14:[2,3]},{5:[2,4],10:[2,4],12:[2,4],14:[2,4]},{4:12,6:3,7:[1,4],8:5,9:6,11:11,13:[1,7]},{1:[2,1]},{6:13,7:[1,4],8:5,9:6,13:[1,7]},{8:14,13:[1,7]},{12:[1,16],14:[1,15]},{10:[1,9],12:[2,7],14:[2,7]},{5:[2,6],10:[2,6],12:[2,6],14:[2,6]},{5:[2,10],10:[2,10],12:[2,10],14:[2,10]},{5:[2,11],7:[2,11],10:[2,11],12:[2,11],14:[2,11]},{4:17,6:3,7:[1,4],8:5,9:6,12:[2,9],13:[1,7],14:[2,9]},{10:[1,9],12:[2,8],14:[2,8]}], -defaultActions: {8:[2,1]}, -parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - throw new Error(str); - } -}, -parse: function parse(input) { - var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; - var args = lstack.slice.call(arguments, 1); - this.lexer.setInput(input); - this.lexer.yy = this.yy; - this.yy.lexer = this.lexer; - this.yy.parser = this; - if (typeof this.lexer.yylloc == 'undefined') { - this.lexer.yylloc = {}; - } - var yyloc = this.lexer.yylloc; - lstack.push(yyloc); - var ranges = this.lexer.options && this.lexer.options.ranges; - if (typeof this.yy.parseError === 'function') { - this.parseError = this.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function popStack(n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - function lex() { - var token; - token = self.lexer.lex() || EOF; - if (typeof token !== 'number') { - token = self.symbols_[token] || token; - } - return token; - } - var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == 'undefined') { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === 'undefined' || !action.length || !action[0]) { - var errStr = ''; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push('\'' + this.terminals_[p] + '\''); - } - } - if (this.lexer.showPosition) { - errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + this.lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; - } else { - errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); - } - this.parseError(errStr, { - text: this.lexer.match, - token: this.terminals_[symbol] || symbol, - line: this.lexer.yylineno, - loc: yyloc, - expected: expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(this.lexer.yytext); - lstack.push(this.lexer.yylloc); - stack.push(action[1]); - symbol = null; - if (!preErrorSymbol) { - yyleng = this.lexer.yyleng; - yytext = this.lexer.yytext; - yylineno = this.lexer.yylineno; - yyloc = this.lexer.yylloc; - if (recovering > 0) { - recovering--; - } - } else { - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [ - lstack[lstack.length - (len || 1)].range[0], - lstack[lstack.length - 1].range[1] - ]; - } - r = this.performAction.apply(yyval, [ - yytext, - yyleng, - yylineno, - this.yy, - action[1], - vstack, - lstack - ].concat(args)); - if (typeof r !== 'undefined') { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; -}}; -/* generated by jison-lex 0.2.1 */ -var lexer = (function(){ -var lexer = { - -EOF:1, - -parseError:function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - -// resets the lexer, sets new input -setInput:function (input) { - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0,0]; - } - this.offset = 0; - return this; - }, - -// consumes and returns one char from the input -input:function () { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - - this._input = this._input.slice(1); - return ch; - }, - -// unshifts one char (or a string) into the input -unput:function (ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len - 1); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? - (lines.length === oldLines.length ? this.yylloc.first_column : 0) - + oldLines[oldLines.length - lines.length].length - lines[0].length : - this.yylloc.first_column - len - }; - - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - -// When called from action, caches matched text and appends it on next action -more:function () { - this._more = true; - return this; - }, - -// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. -reject:function () { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - - } - return this; - }, - -// retain first n characters of the match -less:function (n) { - this.unput(this.match.slice(n)); - }, - -// displays already matched input, i.e. for error messages -pastInput:function () { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); - }, - -// displays upcoming input, i.e. for error messages -upcomingInput:function () { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20-next.length); - } - return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); - }, - -// displays the character position where the lexing error occurred, i.e. for error messages -showPosition:function () { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - -// test the lexed token: return FALSE when not a match, otherwise return token -test_match:function (match, indexed_rule) { - var token, - lines, - backup; - - if (this.options.backtrack_lexer) { - // save context - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? - lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : - this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - // recover context - for (var k in backup) { - this[k] = backup[k]; - } - return false; // rule action called reject() implying the next rule should be tested instead. - } - return false; - }, - -// return next match in input -next:function () { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - - var token, - match, - tempMatch, - index; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; // rule action called reject() implying a rule MISmatch. - } else { - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - -// return next match that has a token -lex:function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - -// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) -begin:function begin(condition) { - this.conditionStack.push(condition); - }, - -// pop the previously active lexer condition state off the condition stack -popState:function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - -// produce the lexer rule set which is active for the currently active lexer condition state -_currentRules:function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - -// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available -topState:function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - -// alias for begin(condition) -pushState:function pushState(condition) { - this.begin(condition); - }, - -// return the number of states currently on the stack -stateStackSize:function stateStackSize() { - return this.conditionStack.length; - }, -options: {}, -performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START -/**/) { - -var YYSTATE=YY_START; -switch($avoiding_name_collisions) { -case 0:return 12 -break; -case 1:return 7 -break; -case 2:return 13 -break; -case 3:return 14 -break; -case 4:return 10 -break; -case 5:return 5 -break; -case 6:return 'INVALID' -break; -} -}, -rules: [/^(?:\s*\|\s*)/,/^(?:(\\(\[|\]|\|)|[^\]\[|;\n])+)/,/^(?:\[)/,/^(?:\s*\])/,/^(?:[ ]*(;|\n)+[ ]*)/,/^(?:$)/,/^(?:.)/], -conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6],"inclusive":true}} -}; -return lexer; -})(); -parser.lexer = lexer; -function Parser () { - this.yy = {}; -} -Parser.prototype = parser;parser.Parser = Parser; -return new Parser; -})(); - - -if (typeof require !== 'undefined' && typeof exports !== 'undefined') { -exports.parser = nomnomlCoreParser; -exports.Parser = nomnomlCoreParser.Parser; -exports.parse = function () { return nomnomlCoreParser.parse.apply(nomnomlCoreParser, arguments); }; -exports.main = function commonjsMain(args) { - if (!args[1]) { - console.log('Usage: '+args[0]+' FILE'); - process.exit(1); - } - var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8"); - return exports.parser.parse(source); -}; -if (typeof module !== 'undefined' && require.main === module) { - exports.main(process.argv.slice(1)); -} -}; -var nomnoml = nomnoml || {} - -nomnoml.parse = function (source){ - function onlyCompilables(line){ - var ok = line[0] !== '#' && line.substring(0,2) !== '//' - return ok ? line : '' - } - var isDirective = function (line){ return line.text[0] === '#' } - var lines = source.split('\n').map(function (s, i){ - return {text: s.trim(), index: i } - }) - var pureDirectives = _.filter(lines, isDirective) - var directives = _.object(pureDirectives.map(function (line){ - try { - var tokens = line.text.substring(1).split(':') - return [tokens[0].trim(), tokens[1].trim()] - } - catch (e) { - throw new Error('line ' + (line.index + 1)) - } - })) - var pureDiagramCode = _.map(_.pluck(lines, 'text'), onlyCompilables).join('\n').trim() - var ast = nomnoml.transformParseIntoSyntaxTree(nomnoml.intermediateParse(pureDiagramCode)) - ast.directives = directives - return ast -} - -nomnoml.intermediateParse = function (source){ - return nomnomlCoreParser.parse(source) -} - -nomnoml.transformParseIntoSyntaxTree = function (entity){ - - var relationId = 0 - - function transformCompartment(parts){ - var lines = [] - var rawClassifiers = [] - var relations = [] - _.each(parts, function (p){ - if (typeof p === 'string') - lines.push(p) - if (p.assoc){ // is a relation - rawClassifiers.push(p.start) - rawClassifiers.push(p.end) - relations.push({ - id: relationId++, - assoc: p.assoc, - start: p.start.parts[0][0], - end: p.end.parts[0][0], - startLabel: p.startLabel, - endLabel: p.endLabel - }) - } - if (p.parts){ // is a classifier - rawClassifiers.push(p) - } - }) - var allClassifiers = _.map(rawClassifiers, transformItem) - var noDuplicates = _.map(_.groupBy(allClassifiers, 'name'), function (cList){ - return _.max(cList, function (c){ return c.compartments.length }) - }) - - return nomnoml.Compartment(lines, noDuplicates, relations) - } - - function transformItem(entity){ - if (typeof entity === 'string') - return entity - if (_.isArray(entity)) - return transformCompartment(entity) - if (entity.parts){ - var compartments = _.map(entity.parts, transformCompartment) - return nomnoml.Classifier(entity.type, entity.id, compartments) - } - return undefined - } - - return transformItem(entity) -}; -var nomnoml = nomnoml || {} - -nomnoml.styles = { - ABSTRACT: { center: 1, bold: 0, underline: 0, italic: 1, dashed: 0, empty: 0, hull: 'auto', visual: 'class' }, - ACTOR: { center: 1, bold: 0, underline: 0, italic: 0, dashed: 0, empty: 0, hull: 'auto', visual: 'actor' }, - CHOICE: { center: 1, bold: 0, underline: 0, italic: 0, dashed: 0, empty: 0, hull: 'auto', visual: 'rhomb' }, - CLASS: { center: 1, bold: 1, underline: 0, italic: 0, dashed: 0, empty: 0, hull: 'auto', visual: 'class' }, - DATABASE: { center: 1, bold: 1, underline: 0, italic: 0, dashed: 0, empty: 0, hull: 'auto', visual: 'database' }, - END: { center: 1, bold: 0, underline: 0, italic: 0, dashed: 0, empty: 1, hull: 'icon', visual: 'end' }, - FRAME: { center: 0, bold: 0, underline: 0, italic: 0, dashed: 0, empty: 0, hull: 'auto', visual: 'frame' }, - HIDDEN: { center: 1, bold: 0, underline: 0, italic: 0, dashed: 0, empty: 1, hull: 'empty', visual: 'hidden' }, - INPUT: { center: 1, bold: 0, underline: 0, italic: 0, dashed: 0, empty: 0, hull: 'auto', visual: 'input' }, - INSTANCE: { center: 1, bold: 0, underline: 1, italic: 0, dashed: 0, empty: 0, hull: 'auto', visual: 'class' }, - LABEL: { center: 0, bold: 0, underline: 0, italic: 0, dashed: 0, empty: 0, hull: 'auto', visual: 'none' }, - NOTE: { center: 0, bold: 0, underline: 0, italic: 0, dashed: 0, empty: 0, hull: 'auto', visual: 'note' }, - PACKAGE: { center: 0, bold: 0, underline: 0, italic: 0, dashed: 0, empty: 0, hull: 'auto', visual: 'package' }, - RECEIVER: { center: 0, bold: 0, underline: 0, italic: 0, dashed: 0, empty: 0, hull: 'auto', visual: 'receiver' }, - REFERENCE:{ center: 1, bold: 0, underline: 0, italic: 0, dashed: 1, empty: 0, hull: 'auto', visual: 'class' }, - SENDER: { center: 0, bold: 0, underline: 0, italic: 0, dashed: 0, empty: 0, hull: 'auto', visual: 'sender' }, - START: { center: 1, bold: 0, underline: 0, italic: 0, dashed: 0, empty: 1, hull: 'icon', visual: 'start' }, - STATE: { center: 1, bold: 0, underline: 0, italic: 0, dashed: 0, empty: 0, hull: 'auto', visual: 'roundrect' }, - TRANSCEIVER:{ center: 0, bold: 0, underline: 0, italic: 0, dashed: 0, empty: 0, hull: 'auto', visual: 'transceiver' }, - USECASE: { center: 1, bold: 0, underline: 0, italic: 0, dashed: 0, empty: 0, hull: 'auto', visual: 'ellipse' }, -} - -nomnoml.visualizers = { - actor : function (node, x, y, padding, config, g) { - var a = padding/2 - var yp = y + a/2 - var actorCenter = {x: node.x, y: yp-a} - g.circle(actorCenter, a).fillAndStroke() - g.path([ {x: node.x, y: yp}, {x: node.x, y: yp+2*a} ]).stroke() - g.path([ {x: node.x-a, y: yp+a}, {x: node.x+a, y: yp+a} ]).stroke() - g.path([ {x: node.x-a, y: yp+a+padding}, - {x: node.x , y: yp+padding}, - {x: node.x+a, y: yp+a+padding} ]).stroke() - }, - class : function (node, x, y, padding, config, g) { - g.rect(x, y, node.width, node.height).fillAndStroke() - }, - database : function (node, x, y, padding, config, g) { - var cy = y-padding/2 - var pi = 3.1416 - g.rect(x, y, node.width, node.height).fill() - g.path([{x: x, y: cy}, {x: x, y: cy+node.height}]).stroke() - g.path([ - {x: x+node.width, y: cy}, - {x: x+node.width, y: cy+node.height}]).stroke() - g.ellipse({x: node.x, y: cy}, node.width, padding*1.5).fillAndStroke() - g.ellipse({x: node.x, y: cy+node.height}, node.width, padding*1.5, 0, pi) - .fillAndStroke() - }, - ellipse : function (node, x, y, padding, config, g) { - g.ellipse({x: node.x, y: node.y}, node.width, node.height).fillAndStroke() - }, - end : function (node, x, y, padding, config, g) { - g.circle(node.x, y+node.height/2, node.height/3).fillAndStroke() - g.fillStyle(config.stroke) - g.circle(node.x, y+node.height/2, node.height/3-padding/2).fill() - }, - frame : function (node, x, y, padding, config, g) { - g.rect(x, y, node.width, node.height).fillAndStroke() - }, - hidden : function (node, x, y, padding, config, g) { - }, - input : function (node, x, y, padding, config, g) { - g.circuit([ - {x:x+padding, y:y}, - {x:x+node.width, y:y}, - {x:x+node.width-padding, y:y+node.height}, - {x:x, y:y+node.height} - ]).fillAndStroke() - }, - none : function (node, x, y, padding, config, g) { - }, - note : function (node, x, y, padding, config, g) { - g.circuit([ - {x: x, y: y}, - {x: x+node.width-padding, y: y}, - {x: x+node.width, y: y+padding}, - {x: x+node.width, y: y+node.height}, - {x: x, y: y+node.height}, - {x: x, y: y} - ]).fillAndStroke() - g.path([ - {x: x+node.width-padding, y: y}, - {x: x+node.width-padding, y: y+padding}, - {x: x+node.width, y: y+padding} - ]).stroke() - }, - package : function (node, x, y, padding, config, g) { - var headHeight = node.compartments[0].height - g.rect(x, y+headHeight, node.width, node.height-headHeight).fillAndStroke() - var w = g.measureText(node.name).width + 2*padding - g.circuit([ - {x:x, y:y+headHeight}, - {x:x, y:y}, - {x:x+w, y:y}, - {x:x+w, y:y+headHeight} - ]).fillAndStroke() - }, - receiver : function (node, x, y, padding, config, g) { - g.circuit([ - {x: x-padding, y: y}, - {x: x+node.width, y: y}, - {x: x+node.width, y: y+node.height}, - {x: x-padding, y: y+node.height}, - {x: x, y: y+node.height/2}, - ]).fillAndStroke() - }, - rhomb : function (node, x, y, padding, config, g) { - g.circuit([ - {x:node.x, y:y - padding}, - {x:x+node.width + padding, y:node.y}, - {x:node.x, y:y+node.height + padding}, - {x:x - padding, y:node.y} - ]).fillAndStroke() - }, - roundrect : function (node, x, y, padding, config, g) { - var r = Math.min(padding*2*config.leading, node.height/2) - g.roundRect(x, y, node.width, node.height, r).fillAndStroke() - }, - sender : function (node, x, y, padding, config, g) { - g.circuit([ - {x: x, y: y}, - {x: x+node.width-padding, y: y}, - {x: x+node.width, y: y+node.height/2}, - {x: x+node.width-padding, y: y+node.height}, - {x: x, y: y+node.height} - ]).fillAndStroke() - }, - start : function (node, x, y, padding, config, g) { - g.fillStyle(config.stroke) - g.circle(node.x, y+node.height/2, node.height/2.5).fill() - }, - transceiver : function (node, x, y, padding, config, g) { - g.circuit([ - {x: x-padding, y: y}, - {x: x+node.width, y: y}, - {x: x+node.width+padding, y: y+node.height/2}, - {x: x+node.width, y: y+node.height}, - {x: x-padding, y: y+node.height}, - {x: x, y: y+node.height/2} - ]).fillAndStroke() - }, -}; -var nomnoml = nomnoml || {} - -nomnoml.Classifier = function (type, name, compartments){ - return { - type: type, - name: name, - compartments: compartments - } -} -nomnoml.Compartment = function (lines, nodes, relations){ - return { - lines: lines, - nodes: nodes, - relations: relations - } -} - -nomnoml.layout = function (measurer, config, ast){ - function runDagre(input){ - return dagre.layout() - .rankSep(config.spacing) - .nodeSep(config.spacing) - .edgeSep(config.spacing) - .rankDir(config.direction) - .run(input) - } - function measureLines(lines, fontWeight){ - if (!lines.length) - return { width: 0, height: config.padding } - measurer.setFont(config, fontWeight) - return { - width: Math.round(_.max(_.map(lines, measurer.textWidth)) + 2*config.padding), - height: Math.round(measurer.textHeight() * lines.length + 2*config.padding) - } - } - function layoutCompartment(c, compartmentIndex){ - var textSize = measureLines(c.lines, compartmentIndex ? 'normal' : 'bold') - c.width = textSize.width - c.height = textSize.height - - if (!c.nodes.length && !c.relations.length) - return - - _.each(c.nodes, layoutClassifier) - - var g = new dagre.Digraph() - _.each(c.nodes, function (e){ - g.addNode(e.name, { width: e.width, height: e.height }) - }) - _.each(c.relations, function (r){ - g.addEdge(r.id, r.start, r.end) - }) - var dLayout = runDagre(g) - - var rels = _.indexBy(c.relations, 'id') - var nodes = _.indexBy(c.nodes, 'name') - function toPoint(o){ return {x:o.x, y:o.y} } - dLayout.eachNode(function(u, value) { - nodes[u].x = value.x - nodes[u].y = value.y - }) - dLayout.eachEdge(function(e, u, v, value) { - var start = nodes[u], end = nodes[v] - rels[e].path = _.map(_.flatten([start, value.points, end]), toPoint) - }) - var graph = dLayout.graph() - var graphHeight = graph.height ? graph.height + 2*config.gutter : 0 - var graphWidth = graph.width ? graph.width + 2*config.gutter : 0 - - c.width = Math.max(textSize.width, graphWidth) + 2*config.padding - c.height = textSize.height + graphHeight + config.padding - } - function layoutClassifier(clas){ - var style = config.styles[clas.type] || nomnoml.styles.CLASS - if (style.hull == 'icon'){ - clas.width = config.fontSize * 2.5 - clas.height = config.fontSize * 2.5 - return - } - if (style.hull === 'empty'){ - clas.width = 0 - clas.height = 0 - return - } - var oldDir = config.direction; - config.direction = style.direction || config.direction; - _.each(clas.compartments, layoutCompartment) - clas.width = _.max(_.pluck(clas.compartments, 'width')) - clas.height = skanaar.sum(clas.compartments, 'height') - clas.x = clas.width/2 - clas.y = clas.height/2 - _.each(clas.compartments, function(co){ co.width = clas.width }) - config.direction = oldDir; - } - layoutCompartment(ast) - return ast -} -; -var nomnoml = nomnoml || {} - -nomnoml.render = function (graphics, config, compartment, setFont){ - - var padding = config.padding - var g = graphics - var vm = skanaar.vector - - function renderCompartment(compartment, style, level){ - g.save() - g.translate(padding, padding) - g.fillStyle(config.stroke) - _.each(compartment.lines, function (text, i){ - g.textAlign(style.center ? 'center' : 'left') - var x = style.center ? compartment.width/2 - padding : 0 - var y = (0.5+(i+0.5)*config.leading)*config.fontSize - if (text){ - g.fillText(text, x, y) - } - if (style.underline){ - var w = g.measureText(text).width - y += Math.round(config.fontSize * 0.2)+0.5 - g.path([{x:x-w/2, y:y}, {x:x+w/2, y:y}]).stroke() - g.lineWidth = config.lineWidth - } - }) - g.translate(config.gutter, config.gutter) - _.each(compartment.relations, function (r){ renderRelation(r, compartment) }) - _.each(compartment.nodes, function (n){ renderNode(n, level) }) - g.restore() - } - - function renderNode(node, level){ - var x = Math.round(node.x-node.width/2) - var y = Math.round(node.y-node.height/2) - var style = config.styles[node.type] || nomnoml.styles.CLASS - - g.fillStyle(style.fill || config.fill[level] || _.last(config.fill)) - if (style.dashed){ - var dash = Math.max(4, 2*config.lineWidth) - g.setLineDash([dash, dash]) - } - var drawNode = nomnoml.visualizers[style.visual] || nomnoml.visualizers.class - drawNode(node, x, y, padding, config, g) - g.setLineDash([]) - - var yDivider = (style.visual === 'actor' ? y + padding*3/4 : y) - _.each(node.compartments, function (part, i){ - var s = i > 0 ? {} : style; // only style node title - if (s.empty) return - g.save() - g.translate(x, yDivider) - setFont(config, s.bold ? 'bold' : 'normal', s.italic) - renderCompartment(part, s, level+1) - g.restore() - if (i+1 === node.compartments.length) return - yDivider += part.height - if (style.visual === 'frame' && i === 0){ - var w = g.measureText(node.name).width+part.height/2+padding - g.path([ - {x:x, y:yDivider}, - {x:x+w-part.height/2, y:yDivider}, - {x:x+w, y:yDivider-part.height/2}, - {x:x+w, y:yDivider-part.height} - ]).stroke() - } else - g.path([{x:x, y:yDivider}, {x:x+node.width, y:yDivider}]).stroke() - }) - } - - function strokePath(p){ - if (config.edges === 'rounded'){ - var radius = config.spacing * config.bendSize - g.beginPath() - g.moveTo(p[0].x, p[0].y) - - for (var i = 1; i < p.length-1; i++){ - g.arcTo(p[i].x, p[i].y, p[i+1].x, p[i+1].y, radius) - } - g.lineTo(_.last(p).x, _.last(p).y) - g.stroke() - } - else - g.path(p).stroke() - } - - var empty = false, filled = true, diamond = true - - function renderLabel(text, refPoint, quadrant){ - if (text) { - var fontSize = config.fontSize - var lines = text.split("`") - var area = { - width : _.max(_.map(lines, function(l){ return g.measureText(l).width })), - height : fontSize*lines.length - } - var origin = { - x: (quadrant === 1) || (quadrant === 4) ? refPoint.x + padding : refPoint.x - area.width - padding, - y: (quadrant === 3) || (quadrant === 4) ? refPoint.y + padding : refPoint.y - area.height - padding - } - _.each(lines, function(l, i){ g.fillText(l, origin.x, origin.y + fontSize*(i+1)) }) - } - } - - // find basic quadrant using relative position of endpoint and block rectangle - function findLabelQuadrant(point, rect, def) { - if (point.x < rect.x && point.y < rect.y-rect.height/2) return 1; - if (point.y > rect.y && point.x > rect.x+rect.width/2) return 1; - - if (point.x > rect.x && point.y < rect.y-rect.height/2) return 2; - if (point.y > rect.y && point.x < rect.x-rect.width/2) return 2; - - if (point.x > rect.x && point.y > rect.y+rect.height/2) return 3; - if (point.y < rect.y && point.x < rect.x-rect.width/2) return 3; - - if (point.x < rect.x && point.y > rect.y+rect.height/2) return 4; - if (point.y < rect.y && point.x > rect.x+rect.width/2) return 4; - - return def; - } - - // Flip basic label quadrant if needed, to avoid crossing a bent relationship line - function adjustLabelQuadrant(quadrant, point, opposite) { - if ((opposite.x == point.x) || (opposite.y == point.y)) return quadrant; - var flipHorizontally = [4, 3, 2, 1] - var flipVertically = [2, 1, 4, 3] - var oppositeQuadrant = (opposite.y < point.y) ? - ((opposite.x < point.x) ? 2 : 1) : - ((opposite.x < point.x) ? 3 : 4); - // if an opposite relation end is in the same quadrant as a label, we need to flip the label - if (oppositeQuadrant === quadrant) { - if (config.direction === "LR") return flipHorizontally[quadrant-1]; - if (config.direction === "TD") return flipVertically[quadrant-1]; - } - return quadrant; - } - - function renderRelation(r, compartment){ - var startNode = _.findWhere(compartment.nodes, {name:r.start}) - var endNode = _.findWhere(compartment.nodes, {name:r.end}) - var start = rectIntersection(r.path[1], _.first(r.path), startNode) - var end = rectIntersection(r.path[r.path.length-2], _.last(r.path), endNode) - - var path = _.flatten([start, _.tail(_.initial(r.path)), end]) - var fontSize = config.fontSize - - g.fillStyle(config.stroke) - setFont(config, 'normal') - - renderLabel(r.startLabel, start, adjustLabelQuadrant(findLabelQuadrant(start, startNode, 4), start, end)) - renderLabel(r.endLabel, end, adjustLabelQuadrant(findLabelQuadrant(end, endNode, 2), end, start)) - - if (r.assoc !== '-/-'){ - if (g.setLineDash && skanaar.hasSubstring(r.assoc, '--')){ - var dash = Math.max(4, 2*config.lineWidth) - g.setLineDash([dash, dash]) - strokePath(path) - g.setLineDash([]) - } - else - strokePath(path) - } - - function drawArrowEnd(id, path, end){ - if (id === '>' || id === '<') - drawArrow(path, filled, end) - else if (id === ':>' || id === '<:') - drawArrow(path, empty, end) - else if (id === '+') - drawArrow(path, filled, end, diamond) - else if (id === 'o') - drawArrow(path, empty, end, diamond) - } - - var tokens = r.assoc.split('-') - drawArrowEnd(_.last(tokens), path, end) - drawArrowEnd(_.first(tokens), path.reverse(), start) - } - - function rectIntersection(p1, p2, rect) { - if (rect.width || rect.height) { - var xBound = rect.width/2 + config.edgeMargin; - var yBound = rect.height/2 + config.edgeMargin; - var delta = vm.diff(p1, p2); - var t; - if (delta.x && delta.y) { - t = Math.min(Math.abs(xBound/delta.x), Math.abs(yBound/delta.y)); - } else { - t = Math.abs(delta.x ? xBound/delta.x : yBound/delta.y); - } - return vm.add(p2, vm.mult(delta, t)); - } - return p2; - } - - function drawArrow(path, isOpen, arrowPoint, diamond){ - var size = (config.spacing - 2*config.edgeMargin) * config.arrowSize / 30 - var v = vm.diff(path[path.length-2], _.last(path)) - var nv = vm.normalize(v) - function getArrowBase(s){ return vm.add(arrowPoint, vm.mult(nv, s*size)) } - var arrowBase = getArrowBase(diamond ? 7 : 10) - var t = vm.rot(nv) - var arrowButt = (diamond) ? getArrowBase(14) - : (isOpen && !config.fillArrows) ? getArrowBase(5) : arrowBase - var arrow = [ - vm.add(arrowBase, vm.mult(t, 4*size)), - arrowButt, - vm.add(arrowBase, vm.mult(t, -4*size)), - arrowPoint - ] - g.fillStyle(isOpen ? config.stroke : config.fill[0]) - g.circuit(arrow).fillAndStroke() - } - - function snapToPixels(){ - if (config.lineWidth % 2 === 1) - g.translate(0.5, 0.5) - } - - g.clear() - setFont(config, 'bold') - g.save() - g.lineWidth(config.lineWidth) - g.lineJoin('round') - g.lineCap('round') - g.strokeStyle(config.stroke) - g.scale(config.zoom, config.zoom) - snapToPixels() - renderCompartment(compartment, {}, 0) - g.restore() -} -; -var nomnoml = nomnoml || {}; - -(function () { - 'use strict'; - - function getConfig(d) { - var userStyles = {} - _.each(d, function (styleDef, key){ - if (key[0] != '.') return - userStyles[key.substring(1).toUpperCase()] = { - center: _.contains(styleDef, 'center'), - bold: _.contains(styleDef, 'bold'), - underline: _.contains(styleDef, 'underline'), - italic: _.contains(styleDef, 'italic'), - dashed: _.contains(styleDef, 'dashed'), - empty: _.contains(styleDef, 'empty'), - fill: _.last(styleDef.match('fill=([^ ]*)')), - visual: _.last(styleDef.match('visual=([^ ]*)')) || 'class', - direction: { down: 'TB', right: 'LR' }[_.last(styleDef.match('direction=([^ ]*)'))] || 'TB' - } - }) - return { - arrowSize: +d.arrowSize || 1, - bendSize: +d.bendSize || 0.3, - direction: { down: 'TB', right: 'LR' }[d.direction] || 'TB', - gutter: +d.gutter || 5, - edgeMargin: (+d.edgeMargin) || 0, - edges: { hard: 'hard', rounded: 'rounded' }[d.edges] || 'rounded', - fill: (d.fill || '#eee8d5;#fdf6e3;#eee8d5;#fdf6e3').split(';'), - fillArrows: d.fillArrows === 'true', - font: d.font || 'Calibri', - fontSize: (+d.fontSize) || 12, - leading: (+d.leading) || 1.25, - lineWidth: (+d.lineWidth) || 3, - padding: (+d.padding) || 8, - spacing: (+d.spacing) || 40, - stroke: d.stroke || '#33322E', - title: d.title || 'nomnoml', - zoom: +d.zoom || 1, - styles: _.extend({}, nomnoml.styles, userStyles) - }; - } - - function fitCanvasSize(canvas, rect, zoom) { - canvas.width = rect.width * zoom; - canvas.height = rect.height * zoom; - } - - function setFont(config, isBold, isItalic, graphics) { - var style = (isBold === 'bold' ? 'bold' : '') - if (isItalic) style = 'italic ' + style - var defaultFont = 'Helvetica, sans-serif' - var font = skanaar.format('# #pt #, #', style, config.fontSize, config.font, defaultFont) - graphics.font(font) - } - - function parseAndRender(code, graphics, canvas, scale) { - var ast = nomnoml.parse(code); - var config = getConfig(ast.directives); - var measurer = { - setFont: function (a, b, c) { setFont(a, b, c, graphics); }, - textWidth: function (s) { return graphics.measureText(s).width }, - textHeight: function () { return config.leading * config.fontSize } - }; - var layout = nomnoml.layout(measurer, config, ast); - fitCanvasSize(canvas, layout, config.zoom * scale); - config.zoom *= scale; - nomnoml.render(graphics, config, layout, measurer.setFont); - return { config: config }; - } - - nomnoml.draw = function (canvas, code, scale) { - return parseAndRender(code, skanaar.Canvas(canvas), canvas, scale || 1) - }; - - nomnoml.renderSvg = function (code) { - var ast = nomnoml.parse(code) - var config = getConfig(ast.directives) - var skCanvas = skanaar.Svg('') - function setFont(config, isBold, isItalic) { - var style = (isBold === 'bold' ? 'bold' : '') - if (isItalic) style = 'italic ' + style - var defFont = 'Helvetica, sans-serif' - var template = 'font-weight:#; font-size:#pt; font-family:\'#\', #' - var font = skanaar.format(template, style, config.fontSize, config.font, defFont) - skCanvas.font(font) - } - var measurer = { - setFont: function (a, b, c) { setFont(a, b, c, skCanvas); }, - textWidth: function (s) { return skCanvas.measureText(s).width }, - textHeight: function () { return config.leading * config.fontSize } - }; - var layout = nomnoml.layout(measurer, config, ast) - nomnoml.render(skCanvas, config, layout, measurer.setFont) - return skCanvas.serialize({ - width: layout.width, - height: layout.height - }) - }; -})(); -; - return nomnoml; -}); \ No newline at end of file diff --git a/frontend/taxonomy/uml/nonnoml/style.pu b/frontend/taxonomy/uml/nonnoml/style.pu deleted file mode 100644 index aa80c1d..0000000 --- a/frontend/taxonomy/uml/nonnoml/style.pu +++ /dev/null @@ -1,78 +0,0 @@ -' Not-ugly plantuml style defaults - -skinparam defaultFontName Helvetica -skinparam sequenceMessageAlign center -skinparam monochrome true - -skinparam activity { - ArrowColor Black - BackgroundColor White - BorderColor Black - BorderThickness 1 -} - -skinparam actor { - BackgroundColor White - BorderColor Black -} - -skinparam usecase { - ArrowColor Black - BackgroundColor White - BorderColor Black - BorderThickness 1 -} - -skinparam class { - ArrowColor Black - BackgroundColor White - BorderColor Black - BorderThickness 1 -} - - -skinparam object { - ArrowColor Black - BackgroundColor White - BorderColor Black -} - -skinparam package { - BackgroundColor White - BorderColor Black -} - -'TODO stereotype - -skinparam component { - BackgroundColor White - InterfaceBackgroundColor White - BorderColor Black - InterfaceBorderColor Black -} - -skinparam note { - BackgroundColor White - BorderColor Black -} - -skinparam state { - ArrowColor Black - BackgroundColor White - BorderColor Black -} - -skinparam sequence { - ArrowColor Black - BackgroundColor White - ParticipantBackgroundColor White - BorderColor Black - LifeLineBorderColor Black - ParticipantBorderColor Black - BoxLineColor Black -} - -skinparam interface { - BackgroundColor White - BorderColor Black -} diff --git a/frontend/taxonomy/uml/nonnoml/zepto.min.js b/frontend/taxonomy/uml/nonnoml/zepto.min.js deleted file mode 100644 index 0b2f97a..0000000 --- a/frontend/taxonomy/uml/nonnoml/zepto.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/* Zepto v1.1.3 - zepto event ajax form ie - zeptojs.com/license */ -var Zepto=function(){function L(t){return null==t?String(t):j[T.call(t)]||"object"}function Z(t){return"function"==L(t)}function $(t){return null!=t&&t==t.window}function _(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function D(t){return"object"==L(t)}function R(t){return D(t)&&!$(t)&&Object.getPrototypeOf(t)==Object.prototype}function M(t){return"number"==typeof t.length}function k(t){return s.call(t,function(t){return null!=t})}function z(t){return t.length>0?n.fn.concat.apply([],t):t}function F(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function q(t){return t in f?f[t]:f[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function H(t,e){return"number"!=typeof e||c[F(t)]?e:e+"px"}function I(t){var e,n;return u[t]||(e=a.createElement(t),a.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),u[t]=n),u[t]}function V(t){return"children"in t?o.call(t.children):n.map(t.childNodes,function(t){return 1==t.nodeType?t:void 0})}function U(n,i,r){for(e in i)r&&(R(i[e])||A(i[e]))?(R(i[e])&&!R(n[e])&&(n[e]={}),A(i[e])&&!A(n[e])&&(n[e]=[]),U(n[e],i[e],r)):i[e]!==t&&(n[e]=i[e])}function B(t,e){return null==e?n(t):n(t).filter(e)}function J(t,e,n,i){return Z(e)?e.call(t,n,i):e}function X(t,e,n){null==n?t.removeAttribute(e):t.setAttribute(e,n)}function W(e,n){var i=e.className,r=i&&i.baseVal!==t;return n===t?r?i.baseVal:i:void(r?i.baseVal=n:e.className=n)}function Y(t){var e;try{return t?"true"==t||("false"==t?!1:"null"==t?null:/^0/.test(t)||isNaN(e=Number(t))?/^[\[\{]/.test(t)?n.parseJSON(t):t:e):t}catch(i){return t}}function G(t,e){e(t);for(var n in t.childNodes)G(t.childNodes[n],e)}var t,e,n,i,C,N,r=[],o=r.slice,s=r.filter,a=window.document,u={},f={},c={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},l=/^\s*<(\w+|!)[^>]*>/,h=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,p=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,d=/^(?:body|html)$/i,m=/([A-Z])/g,g=["val","css","html","text","data","width","height","offset"],v=["after","prepend","before","append"],y=a.createElement("table"),x=a.createElement("tr"),b={tr:a.createElement("tbody"),tbody:y,thead:y,tfoot:y,td:x,th:x,"*":a.createElement("div")},w=/complete|loaded|interactive/,E=/^[\w-]*$/,j={},T=j.toString,S={},O=a.createElement("div"),P={tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},A=Array.isArray||function(t){return t instanceof Array};return S.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var i,r=t.parentNode,o=!r;return o&&(r=O).appendChild(t),i=~S.qsa(r,e).indexOf(t),o&&O.removeChild(t),i},C=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},N=function(t){return s.call(t,function(e,n){return t.indexOf(e)==n})},S.fragment=function(e,i,r){var s,u,f;return h.test(e)&&(s=n(a.createElement(RegExp.$1))),s||(e.replace&&(e=e.replace(p,"<$1>")),i===t&&(i=l.test(e)&&RegExp.$1),i in b||(i="*"),f=b[i],f.innerHTML=""+e,s=n.each(o.call(f.childNodes),function(){f.removeChild(this)})),R(r)&&(u=n(s),n.each(r,function(t,e){g.indexOf(t)>-1?u[t](e):u.attr(t,e)})),s},S.Z=function(t,e){return t=t||[],t.__proto__=n.fn,t.selector=e||"",t},S.isZ=function(t){return t instanceof S.Z},S.init=function(e,i){var r;if(!e)return S.Z();if("string"==typeof e)if(e=e.trim(),"<"==e[0]&&l.test(e))r=S.fragment(e,RegExp.$1,i),e=null;else{if(i!==t)return n(i).find(e);r=S.qsa(a,e)}else{if(Z(e))return n(a).ready(e);if(S.isZ(e))return e;if(A(e))r=k(e);else if(D(e))r=[e],e=null;else if(l.test(e))r=S.fragment(e.trim(),RegExp.$1,i),e=null;else{if(i!==t)return n(i).find(e);r=S.qsa(a,e)}}return S.Z(r,e)},n=function(t,e){return S.init(t,e)},n.extend=function(t){var e,n=o.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach(function(n){U(t,n,e)}),t},S.qsa=function(t,e){var n,i="#"==e[0],r=!i&&"."==e[0],s=i||r?e.slice(1):e,a=E.test(s);return _(t)&&a&&i?(n=t.getElementById(s))?[n]:[]:1!==t.nodeType&&9!==t.nodeType?[]:o.call(a&&!i?r?t.getElementsByClassName(s):t.getElementsByTagName(e):t.querySelectorAll(e))},n.contains=function(t,e){return t!==e&&t.contains(e)},n.type=L,n.isFunction=Z,n.isWindow=$,n.isArray=A,n.isPlainObject=R,n.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},n.inArray=function(t,e,n){return r.indexOf.call(e,t,n)},n.camelCase=C,n.trim=function(t){return null==t?"":String.prototype.trim.call(t)},n.uuid=0,n.support={},n.expr={},n.map=function(t,e){var n,r,o,i=[];if(M(t))for(r=0;r=0?e:e+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return r.every.call(this,function(e,n){return t.call(e,n,e)!==!1}),this},filter:function(t){return Z(t)?this.not(this.not(t)):n(s.call(this,function(e){return S.matches(e,t)}))},add:function(t,e){return n(N(this.concat(n(t,e))))},is:function(t){return this.length>0&&S.matches(this[0],t)},not:function(e){var i=[];if(Z(e)&&e.call!==t)this.each(function(t){e.call(this,t)||i.push(this)});else{var r="string"==typeof e?this.filter(e):M(e)&&Z(e.item)?o.call(e):n(e);this.forEach(function(t){r.indexOf(t)<0&&i.push(t)})}return n(i)},has:function(t){return this.filter(function(){return D(t)?n.contains(this,t):n(this).find(t).size()})},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!D(t)?t:n(t)},last:function(){var t=this[this.length-1];return t&&!D(t)?t:n(t)},find:function(t){var e,i=this;return e="object"==typeof t?n(t).filter(function(){var t=this;return r.some.call(i,function(e){return n.contains(e,t)})}):1==this.length?n(S.qsa(this[0],t)):this.map(function(){return S.qsa(this,t)})},closest:function(t,e){var i=this[0],r=!1;for("object"==typeof t&&(r=n(t));i&&!(r?r.indexOf(i)>=0:S.matches(i,t));)i=i!==e&&!_(i)&&i.parentNode;return n(i)},parents:function(t){for(var e=[],i=this;i.length>0;)i=n.map(i,function(t){return(t=t.parentNode)&&!_(t)&&e.indexOf(t)<0?(e.push(t),t):void 0});return B(e,t)},parent:function(t){return B(N(this.pluck("parentNode")),t)},children:function(t){return B(this.map(function(){return V(this)}),t)},contents:function(){return this.map(function(){return o.call(this.childNodes)})},siblings:function(t){return B(this.map(function(t,e){return s.call(V(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return n.map(this,function(e){return e[t]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=I(this.nodeName))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var e=Z(t);if(this[0]&&!e)var i=n(t).get(0),r=i.parentNode||this.length>1;return this.each(function(o){n(this).wrapAll(e?t.call(this,o):r?i.cloneNode(!0):i)})},wrapAll:function(t){if(this[0]){n(this[0]).before(t=n(t));for(var e;(e=t.children()).length;)t=e.first();n(t).append(this)}return this},wrapInner:function(t){var e=Z(t);return this.each(function(i){var r=n(this),o=r.contents(),s=e?t.call(this,i):t;o.length?o.wrapAll(s):r.append(s)})},unwrap:function(){return this.parent().each(function(){n(this).replaceWith(n(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(e){return this.each(function(){var i=n(this);(e===t?"none"==i.css("display"):e)?i.show():i.hide()})},prev:function(t){return n(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return n(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0===arguments.length?this.length>0?this[0].innerHTML:null:this.each(function(e){var i=this.innerHTML;n(this).empty().append(J(this,t,e,i))})},text:function(e){return 0===arguments.length?this.length>0?this[0].textContent:null:this.each(function(){this.textContent=e===t?"":""+e})},attr:function(n,i){var r;return"string"==typeof n&&i===t?0==this.length||1!==this[0].nodeType?t:"value"==n&&"INPUT"==this[0].nodeName?this.val():!(r=this[0].getAttribute(n))&&n in this[0]?this[0][n]:r:this.each(function(t){if(1===this.nodeType)if(D(n))for(e in n)X(this,e,n[e]);else X(this,n,J(this,i,t,this.getAttribute(n)))})},removeAttr:function(t){return this.each(function(){1===this.nodeType&&X(this,t)})},prop:function(e,n){return e=P[e]||e,n===t?this[0]&&this[0][e]:this.each(function(t){this[e]=J(this,n,t,this[e])})},data:function(e,n){var i=this.attr("data-"+e.replace(m,"-$1").toLowerCase(),n);return null!==i?Y(i):t},val:function(t){return 0===arguments.length?this[0]&&(this[0].multiple?n(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value):this.each(function(e){this.value=J(this,t,e,this.value)})},offset:function(t){if(t)return this.each(function(e){var i=n(this),r=J(this,t,e,i.offset()),o=i.offsetParent().offset(),s={top:r.top-o.top,left:r.left-o.left};"static"==i.css("position")&&(s.position="relative"),i.css(s)});if(0==this.length)return null;var e=this[0].getBoundingClientRect();return{left:e.left+window.pageXOffset,top:e.top+window.pageYOffset,width:Math.round(e.width),height:Math.round(e.height)}},css:function(t,i){if(arguments.length<2){var r=this[0],o=getComputedStyle(r,"");if(!r)return;if("string"==typeof t)return r.style[C(t)]||o.getPropertyValue(t);if(A(t)){var s={};return n.each(A(t)?t:[t],function(t,e){s[e]=r.style[C(e)]||o.getPropertyValue(e)}),s}}var a="";if("string"==L(t))i||0===i?a=F(t)+":"+H(t,i):this.each(function(){this.style.removeProperty(F(t))});else for(e in t)t[e]||0===t[e]?a+=F(e)+":"+H(e,t[e])+";":this.each(function(){this.style.removeProperty(F(e))});return this.each(function(){this.style.cssText+=";"+a})},index:function(t){return t?this.indexOf(n(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return t?r.some.call(this,function(t){return this.test(W(t))},q(t)):!1},addClass:function(t){return t?this.each(function(e){i=[];var r=W(this),o=J(this,t,e,r);o.split(/\s+/g).forEach(function(t){n(this).hasClass(t)||i.push(t)},this),i.length&&W(this,r+(r?" ":"")+i.join(" "))}):this},removeClass:function(e){return this.each(function(n){return e===t?W(this,""):(i=W(this),J(this,e,n,i).split(/\s+/g).forEach(function(t){i=i.replace(q(t)," ")}),void W(this,i.trim()))})},toggleClass:function(e,i){return e?this.each(function(r){var o=n(this),s=J(this,e,r,W(this));s.split(/\s+/g).forEach(function(e){(i===t?!o.hasClass(e):i)?o.addClass(e):o.removeClass(e)})}):this},scrollTop:function(e){if(this.length){var n="scrollTop"in this[0];return e===t?n?this[0].scrollTop:this[0].pageYOffset:this.each(n?function(){this.scrollTop=e}:function(){this.scrollTo(this.scrollX,e)})}},scrollLeft:function(e){if(this.length){var n="scrollLeft"in this[0];return e===t?n?this[0].scrollLeft:this[0].pageXOffset:this.each(n?function(){this.scrollLeft=e}:function(){this.scrollTo(e,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),i=this.offset(),r=d.test(e[0].nodeName)?{top:0,left:0}:e.offset();return i.top-=parseFloat(n(t).css("margin-top"))||0,i.left-=parseFloat(n(t).css("margin-left"))||0,r.top+=parseFloat(n(e[0]).css("border-top-width"))||0,r.left+=parseFloat(n(e[0]).css("border-left-width"))||0,{top:i.top-r.top,left:i.left-r.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||a.body;t&&!d.test(t.nodeName)&&"static"==n(t).css("position");)t=t.offsetParent;return t})}},n.fn.detach=n.fn.remove,["width","height"].forEach(function(e){var i=e.replace(/./,function(t){return t[0].toUpperCase()});n.fn[e]=function(r){var o,s=this[0];return r===t?$(s)?s["inner"+i]:_(s)?s.documentElement["scroll"+i]:(o=this.offset())&&o[e]:this.each(function(t){s=n(this),s.css(e,J(this,r,t,s[e]()))})}}),v.forEach(function(t,e){var i=e%2;n.fn[t]=function(){var t,o,r=n.map(arguments,function(e){return t=L(e),"object"==t||"array"==t||null==e?e:S.fragment(e)}),s=this.length>1;return r.length<1?this:this.each(function(t,a){o=i?a:a.parentNode,a=0==e?a.nextSibling:1==e?a.firstChild:2==e?a:null,r.forEach(function(t){if(s)t=t.cloneNode(!0);else if(!o)return n(t).remove();G(o.insertBefore(t,a),function(t){null==t.nodeName||"SCRIPT"!==t.nodeName.toUpperCase()||t.type&&"text/javascript"!==t.type||t.src||window.eval.call(window,t.innerHTML)})})})},n.fn[i?t+"To":"insert"+(e?"Before":"After")]=function(e){return n(e)[t](this),this}}),S.Z.prototype=n.fn,S.uniq=N,S.deserializeValue=Y,n.zepto=S,n}();window.Zepto=Zepto,void 0===window.$&&(window.$=Zepto),function(t){function l(t){return t._zid||(t._zid=e++)}function h(t,e,n,i){if(e=p(e),e.ns)var r=d(e.ns);return(s[l(t)]||[]).filter(function(t){return!(!t||e.e&&t.e!=e.e||e.ns&&!r.test(t.ns)||n&&l(t.fn)!==l(n)||i&&t.sel!=i)})}function p(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function d(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function m(t,e){return t.del&&!u&&t.e in f||!!e}function g(t){return c[t]||u&&f[t]||t}function v(e,i,r,o,a,u,f){var h=l(e),d=s[h]||(s[h]=[]);i.split(/\s/).forEach(function(i){if("ready"==i)return t(document).ready(r);var s=p(i);s.fn=r,s.sel=a,s.e in c&&(r=function(e){var n=e.relatedTarget;return!n||n!==this&&!t.contains(this,n)?s.fn.apply(this,arguments):void 0}),s.del=u;var l=u||r;s.proxy=function(t){if(t=j(t),!t.isImmediatePropagationStopped()){t.data=o;var i=l.apply(e,t._args==n?[t]:[t].concat(t._args));return i===!1&&(t.preventDefault(),t.stopPropagation()),i}},s.i=d.length,d.push(s),"addEventListener"in e&&e.addEventListener(g(s.e),s.proxy,m(s,f))})}function y(t,e,n,i,r){var o=l(t);(e||"").split(/\s/).forEach(function(e){h(t,e,n,i).forEach(function(e){delete s[o][e.i],"removeEventListener"in t&&t.removeEventListener(g(e.e),e.proxy,m(e,r))})})}function j(e,i){return(i||!e.isDefaultPrevented)&&(i||(i=e),t.each(E,function(t,n){var r=i[t];e[t]=function(){return this[n]=x,r&&r.apply(i,arguments)},e[n]=b}),(i.defaultPrevented!==n?i.defaultPrevented:"returnValue"in i?i.returnValue===!1:i.getPreventDefault&&i.getPreventDefault())&&(e.isDefaultPrevented=x)),e}function T(t){var e,i={originalEvent:t};for(e in t)w.test(e)||t[e]===n||(i[e]=t[e]);return j(i,t)}var n,e=1,i=Array.prototype.slice,r=t.isFunction,o=function(t){return"string"==typeof t},s={},a={},u="onfocusin"in window,f={focus:"focusin",blur:"focusout"},c={mouseenter:"mouseover",mouseleave:"mouseout"};a.click=a.mousedown=a.mouseup=a.mousemove="MouseEvents",t.event={add:v,remove:y},t.proxy=function(e,n){if(r(e)){var i=function(){return e.apply(n,arguments)};return i._zid=l(e),i}if(o(n))return t.proxy(e[n],e);throw new TypeError("expected function")},t.fn.bind=function(t,e,n){return this.on(t,e,n)},t.fn.unbind=function(t,e){return this.off(t,e)},t.fn.one=function(t,e,n,i){return this.on(t,e,n,i,1)};var x=function(){return!0},b=function(){return!1},w=/^([A-Z]|returnValue$|layer[XY]$)/,E={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};t.fn.delegate=function(t,e,n){return this.on(e,t,n)},t.fn.undelegate=function(t,e,n){return this.off(e,t,n)},t.fn.live=function(e,n){return t(document.body).delegate(this.selector,e,n),this},t.fn.die=function(e,n){return t(document.body).undelegate(this.selector,e,n),this},t.fn.on=function(e,s,a,u,f){var c,l,h=this;return e&&!o(e)?(t.each(e,function(t,e){h.on(t,s,a,e,f)}),h):(o(s)||r(u)||u===!1||(u=a,a=s,s=n),(r(a)||a===!1)&&(u=a,a=n),u===!1&&(u=b),h.each(function(n,r){f&&(c=function(t){return y(r,t.type,u),u.apply(this,arguments)}),s&&(l=function(e){var n,o=t(e.target).closest(s,r).get(0);return o&&o!==r?(n=t.extend(T(e),{currentTarget:o,liveFired:r}),(c||u).apply(o,[n].concat(i.call(arguments,1)))):void 0}),v(r,e,u,a,s,l||c)}))},t.fn.off=function(e,i,s){var a=this;return e&&!o(e)?(t.each(e,function(t,e){a.off(t,i,e)}),a):(o(i)||r(s)||s===!1||(s=i,i=n),s===!1&&(s=b),a.each(function(){y(this,e,s,i)}))},t.fn.trigger=function(e,n){return e=o(e)||t.isPlainObject(e)?t.Event(e):j(e),e._args=n,this.each(function(){"dispatchEvent"in this?this.dispatchEvent(e):t(this).triggerHandler(e,n)})},t.fn.triggerHandler=function(e,n){var i,r;return this.each(function(s,a){i=T(o(e)?t.Event(e):e),i._args=n,i.target=a,t.each(h(a,e.type||e),function(t,e){return r=e.proxy(i),i.isImmediatePropagationStopped()?!1:void 0})}),r},"focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(e){t.fn[e]=function(t){return t?this.bind(e,t):this.trigger(e)}}),["focus","blur"].forEach(function(e){t.fn[e]=function(t){return t?this.bind(e,t):this.each(function(){try{this[e]()}catch(t){}}),this}}),t.Event=function(t,e){o(t)||(e=t,t=e.type);var n=document.createEvent(a[t]||"Events"),i=!0;if(e)for(var r in e)"bubbles"==r?i=!!e[r]:n[r]=e[r];return n.initEvent(t,i,!0),j(n)}}(Zepto),function(t){function l(e,n,i){var r=t.Event(n);return t(e).trigger(r,i),!r.isDefaultPrevented()}function h(t,e,i,r){return t.global?l(e||n,i,r):void 0}function p(e){e.global&&0===t.active++&&h(e,null,"ajaxStart")}function d(e){e.global&&!--t.active&&h(e,null,"ajaxStop")}function m(t,e){var n=e.context;return e.beforeSend.call(n,t,e)===!1||h(e,n,"ajaxBeforeSend",[t,e])===!1?!1:void h(e,n,"ajaxSend",[t,e])}function g(t,e,n,i){var r=n.context,o="success";n.success.call(r,t,o,e),i&&i.resolveWith(r,[t,o,e]),h(n,r,"ajaxSuccess",[e,n,t]),y(o,e,n)}function v(t,e,n,i,r){var o=i.context;i.error.call(o,n,e,t),r&&r.rejectWith(o,[n,e,t]),h(i,o,"ajaxError",[n,i,t||e]),y(e,n,i)}function y(t,e,n){var i=n.context;n.complete.call(i,e,t),h(n,i,"ajaxComplete",[e,n]),d(n)}function x(){}function b(t){return t&&(t=t.split(";",2)[0]),t&&(t==f?"html":t==u?"json":s.test(t)?"script":a.test(t)&&"xml")||"text"}function w(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function E(e){e.processData&&e.data&&"string"!=t.type(e.data)&&(e.data=t.param(e.data,e.traditional)),!e.data||e.type&&"GET"!=e.type.toUpperCase()||(e.url=w(e.url,e.data),e.data=void 0)}function j(e,n,i,r){return t.isFunction(n)&&(r=i,i=n,n=void 0),t.isFunction(i)||(r=i,i=void 0),{url:e,data:n,success:i,dataType:r}}function S(e,n,i,r){var o,s=t.isArray(n),a=t.isPlainObject(n);t.each(n,function(n,u){o=t.type(u),r&&(n=i?r:r+"["+(a||"object"==o||"array"==o?n:"")+"]"),!r&&s?e.add(u.name,u.value):"array"==o||!i&&"object"==o?S(e,u,i,n):e.add(n,u)})}var i,r,e=0,n=window.document,o=/)<[^<]*)*<\/script>/gi,s=/^(?:text|application)\/javascript/i,a=/^(?:text|application)\/xml/i,u="application/json",f="text/html",c=/^\s*$/;t.active=0,t.ajaxJSONP=function(i,r){if(!("type"in i))return t.ajax(i);var f,h,o=i.jsonpCallback,s=(t.isFunction(o)?o():o)||"jsonp"+ ++e,a=n.createElement("script"),u=window[s],c=function(e){t(a).triggerHandler("error",e||"abort")},l={abort:c};return r&&r.promise(l),t(a).on("load error",function(e,n){clearTimeout(h),t(a).off().remove(),"error"!=e.type&&f?g(f[0],l,i,r):v(null,n||"error",l,i,r),window[s]=u,f&&t.isFunction(u)&&u(f[0]),u=f=void 0}),m(l,i)===!1?(c("abort"),l):(window[s]=function(){f=arguments},a.src=i.url.replace(/\?(.+)=\?/,"?$1="+s),n.head.appendChild(a),i.timeout>0&&(h=setTimeout(function(){c("timeout")},i.timeout)),l)},t.ajaxSettings={type:"GET",beforeSend:x,success:x,error:x,complete:x,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:u,xml:"application/xml, text/xml",html:f,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0},t.ajax=function(e){var n=t.extend({},e||{}),o=t.Deferred&&t.Deferred();for(i in t.ajaxSettings)void 0===n[i]&&(n[i]=t.ajaxSettings[i]);p(n),n.crossDomain||(n.crossDomain=/^([\w-]+:)?\/\/([^\/]+)/.test(n.url)&&RegExp.$2!=window.location.host),n.url||(n.url=window.location.toString()),E(n),n.cache===!1&&(n.url=w(n.url,"_="+Date.now()));var s=n.dataType,a=/\?.+=\?/.test(n.url);if("jsonp"==s||a)return a||(n.url=w(n.url,n.jsonp?n.jsonp+"=?":n.jsonp===!1?"":"callback=?")),t.ajaxJSONP(n,o);var j,u=n.accepts[s],f={},l=function(t,e){f[t.toLowerCase()]=[t,e]},h=/^([\w-]+:)\/\//.test(n.url)?RegExp.$1:window.location.protocol,d=n.xhr(),y=d.setRequestHeader;if(o&&o.promise(d),n.crossDomain||l("X-Requested-With","XMLHttpRequest"),l("Accept",u||"*/*"),(u=n.mimeType||u)&&(u.indexOf(",")>-1&&(u=u.split(",",2)[0]),d.overrideMimeType&&d.overrideMimeType(u)),(n.contentType||n.contentType!==!1&&n.data&&"GET"!=n.type.toUpperCase())&&l("Content-Type",n.contentType||"application/x-www-form-urlencoded"),n.headers)for(r in n.headers)l(r,n.headers[r]);if(d.setRequestHeader=l,d.onreadystatechange=function(){if(4==d.readyState){d.onreadystatechange=x,clearTimeout(j);var e,i=!1;if(d.status>=200&&d.status<300||304==d.status||0==d.status&&"file:"==h){s=s||b(n.mimeType||d.getResponseHeader("content-type")),e=d.responseText;try{"script"==s?(1,eval)(e):"xml"==s?e=d.responseXML:"json"==s&&(e=c.test(e)?null:t.parseJSON(e))}catch(r){i=r}i?v(i,"parsererror",d,n,o):g(e,d,n,o)}else v(d.statusText||null,d.status?"error":"abort",d,n,o)}},m(d,n)===!1)return d.abort(),v(null,"abort",d,n,o),d;if(n.xhrFields)for(r in n.xhrFields)d[r]=n.xhrFields[r];var T="async"in n?n.async:!0;d.open(n.type,n.url,T,n.username,n.password);for(r in f)y.apply(d,f[r]);return n.timeout>0&&(j=setTimeout(function(){d.onreadystatechange=x,d.abort(),v(null,"timeout",d,n,o)},n.timeout)),d.send(n.data?n.data:null),d},t.get=function(){return t.ajax(j.apply(null,arguments))},t.post=function(){var e=j.apply(null,arguments);return e.type="POST",t.ajax(e)},t.getJSON=function(){var e=j.apply(null,arguments);return e.dataType="json",t.ajax(e)},t.fn.load=function(e,n,i){if(!this.length)return this;var a,r=this,s=e.split(/\s/),u=j(e,n,i),f=u.success;return s.length>1&&(u.url=s[0],a=s[1]),u.success=function(e){r.html(a?t("
").html(e.replace(o,"")).find(a):e),f&&f.apply(r,arguments)},t.ajax(u),this};var T=encodeURIComponent;t.param=function(t,e){var n=[];return n.add=function(t,e){this.push(T(t)+"="+T(e))},S(n,t,e),n.join("&").replace(/%20/g,"+")}}(Zepto),function(t){t.fn.serializeArray=function(){var n,e=[];return t([].slice.call(this.get(0).elements)).each(function(){n=t(this);var i=n.attr("type");"fieldset"!=this.nodeName.toLowerCase()&&!this.disabled&&"submit"!=i&&"reset"!=i&&"button"!=i&&("radio"!=i&&"checkbox"!=i||this.checked)&&e.push({name:n.attr("name"),value:n.val()})}),e},t.fn.serialize=function(){var t=[];return this.serializeArray().forEach(function(e){t.push(encodeURIComponent(e.name)+"="+encodeURIComponent(e.value))}),t.join("&")},t.fn.submit=function(e){if(e)this.bind("submit",e);else if(this.length){var n=t.Event("submit");this.eq(0).trigger(n),n.isDefaultPrevented()||this.get(0).submit()}return this}}(Zepto),function(t){"__proto__"in{}||t.extend(t.zepto,{Z:function(e,n){return e=e||[],t.extend(e,t.fn),e.selector=n||"",e.__Z=!0,e},isZ:function(e){return"array"===t.type(e)&&"__Z"in e}});try{getComputedStyle(void 0)}catch(e){var n=getComputedStyle;window.getComputedStyle=function(t){try{return n(t)}catch(e){return null}}}}(Zepto); diff --git a/frontend/taxonomy/uml/plantUML/example.html b/frontend/taxonomy/uml/plantUML/example.html deleted file mode 100644 index 5314727..0000000 --- a/frontend/taxonomy/uml/plantUML/example.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - -

Example

-
- - - - - - \ No newline at end of file diff --git a/frontend/taxonomy/uml/plantUML/jquery.js b/frontend/taxonomy/uml/plantUML/jquery.js deleted file mode 100644 index ee68f35..0000000 --- a/frontend/taxonomy/uml/plantUML/jquery.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery v@1.8.1 jquery.com | jquery.org/license */ -(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write(""),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bS[a]=c,c}function ci(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||ce.test(a)?d(a,e):ci(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ci(a+"["+e+"]",b[e],c,d);else d(a,b)}function cz(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.1",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return typeof a=="object"?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b
' + entry + '
a",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length||!d)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="
t
",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="
",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||++p.uuid:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.length,e=c.shift(),f=p._queueHooks(a,b),g=function(){p.dequeue(a,b)};e==="inprogress"&&(e=c.shift(),d--),e&&(b==="fx"&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c-1)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c-1)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,""+d),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j=0),h[l]&&j.push(k);j.length&&t.push({elem:f,matches:j})}n.length>o&&t.push({elem:this,matches:n.slice(o)});for(d=0;d0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function $(a,b,c,d){c=c||[],b=b||q;var e,f,g,j,k=b.nodeType;if(k!==1&&k!==9)return[];if(!a||typeof a!="string")return c;g=h(b);if(!g&&!d)if(e=L.exec(a))if(j=e[1]){if(k===9){f=b.getElementById(j);if(!f||!f.parentNode)return c;if(f.id===j)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(j))&&i(b,f)&&f.id===j)return c.push(f),c}else{if(e[2])return u.apply(c,t.call(b.getElementsByTagName(a),0)),c;if((j=e[3])&&X&&b.getElementsByClassName)return u.apply(c,t.call(b.getElementsByClassName(j),0)),c}return bk(a,b,c,d,g)}function _(a){return function(b){var c=b.nodeName.toLowerCase();return c==="input"&&b.type===a}}function ba(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}}function bb(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}function bc(a,b,c,d){var e,g,h,i,j,k,l,m,n,p,r=!c&&b!==q,s=(r?"":"")+a.replace(H,"$1"),u=y[o][s];if(u)return d?0:t.call(u,0);j=a,k=[],m=0,n=f.preFilter,p=f.filter;while(j){if(!e||(g=I.exec(j)))g&&(j=j.slice(g[0].length),h.selector=l),k.push(h=[]),l="",r&&(j=" "+j);e=!1;if(g=J.exec(j))l+=g[0],j=j.slice(g[0].length),e=h.push({part:g.pop().replace(H," "),string:g[0],captures:g});for(i in p)(g=S[i].exec(j))&&(!n[i]||(g=n[i](g,b,c)))&&(l+=g[0],j=j.slice(g[0].length),e=h.push({part:i,string:g.shift(),captures:g}));if(!e)break}return l&&(h.selector=l),d?j.length:j?$.error(a):t.call(y(s,k),0)}function bd(a,b,e,f){var g=b.dir,h=s++;return a||(a=function(a){return a===e}),b.first?function(b){while(b=b[g])if(b.nodeType===1)return a(b)&&b}:f?function(b){while(b=b[g])if(b.nodeType===1&&a(b))return b}:function(b){var e,f=h+"."+c,i=f+"."+d;while(b=b[g])if(b.nodeType===1){if((e=b[o])===i)return b.sizset;if(typeof e=="string"&&e.indexOf(f)===0){if(b.sizset)return b}else{b[o]=i;if(a(b))return b.sizset=!0,b;b.sizset=!1}}}}function be(a,b){return a?function(c){var d=b(c);return d&&a(d===!0?c:d)}:b}function bf(a,b,c){var d,e,g=0;for(;d=a[g];g++)f.relative[d.part]?e=bd(e,f.relative[d.part],b,c):e=be(e,f.filter[d.part].apply(null,d.captures.concat(b,c)));return e}function bg(a){return function(b){var c,d=0;for(;c=a[d];d++)if(c(b))return!0;return!1}}function bh(a,b,c,d){var e=0,f=b.length;for(;e0?i(h,c,g):[]}function bj(a,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s=0,t=a.length,v=S.POS,w=new RegExp("^"+v.source+"(?!"+A+")","i"),x=function(){var a=1,c=arguments.length-2;for(;al){g+=k.slice(l,n.index),l=p,q=[c],J.test(g)&&(m&&(q=m),m=e);if(r=O.test(g))g=g.slice(0,-5).replace(J,"$&*"),l++;n.length>1&&n[0].replace(w,x),m=bi(g,n[1],n[2],q,m,r)}g=""}}o||(g+=k),o=!1}g?J.test(g)?bh(g,m||[c],d,e):$(g,c,d,e?e.concat(m):m):u.apply(d,m)}return t===1?d:$.uniqueSort(d)}function bk(a,b,e,g,h){a=a.replace(H,"$1");var i,k,l,m,n,o,p,q,r,s,v=bc(a,b,h),w=b.nodeType;if(S.POS.test(a))return bj(v,b,e,g);if(g)i=t.call(g,0);else if(v.length===1){if((o=t.call(v[0],0)).length>2&&(p=o[0]).part==="ID"&&w===9&&!h&&f.relative[o[1].part]){b=f.find.ID(p.captures[0].replace(R,""),b,h)[0];if(!b)return e;a=a.slice(o.shift().string.length)}r=(v=N.exec(o[0].string))&&!v.index&&b.parentNode||b,q="";for(n=o.length-1;n>=0;n--){p=o[n],s=p.part,q=p.string+q;if(f.relative[s])break;if(f.order.test(s)){i=f.find[s](p.captures[0].replace(R,""),r,h);if(i==null)continue;a=a.slice(0,a.length-q.length)+q.replace(S[s],""),a||u.apply(e,t.call(i,0));break}}}if(a){k=j(a,b,h),c=k.dirruns++,i==null&&(i=f.find.TAG("*",N.test(a)&&b.parentNode||b));for(n=0;m=i[n];n++)d=k.runs++,k(m)&&e.push(m)}return e}var c,d,e,f,g,h,i,j,k,l,m=!0,n="undefined",o=("sizcache"+Math.random()).replace(".",""),q=a.document,r=q.documentElement,s=0,t=[].slice,u=[].push,v=function(a,b){return a[o]=b||!0,a},w=function(){var a={},b=[];return v(function(c,d){return b.push(c)>f.cacheLength&&delete a[b.shift()],a[c]=d},a)},x=w(),y=w(),z=w(),A="[\\x20\\t\\r\\n\\f]",B="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",C=B.replace("w","w#"),D="([*^$|!~]?=)",E="\\["+A+"*("+B+")"+A+"*(?:"+D+A+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+C+")|)|)"+A+"*\\]",F=":("+B+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+E+")|[^:]|\\\\.)*|.*))\\)|)",G=":(nth|eq|gt|lt|first|last|even|odd)(?:\\(((?:-\\d)?\\d*)\\)|)(?=[^-]|$)",H=new RegExp("^"+A+"+|((?:^|[^\\\\])(?:\\\\.)*)"+A+"+$","g"),I=new RegExp("^"+A+"*,"+A+"*"),J=new RegExp("^"+A+"*([\\x20\\t\\r\\n\\f>+~])"+A+"*"),K=new RegExp(F),L=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,M=/^:not/,N=/[\x20\t\r\n\f]*[+~]/,O=/:not\($/,P=/h\d/i,Q=/input|select|textarea|button/i,R=/\\(?!\\)/g,S={ID:new RegExp("^#("+B+")"),CLASS:new RegExp("^\\.("+B+")"),NAME:new RegExp("^\\[name=['\"]?("+B+")['\"]?\\]"),TAG:new RegExp("^("+B.replace("w","w*")+")"),ATTR:new RegExp("^"+E),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|nth|last|first)-child(?:\\("+A+"*(even|odd|(([+-]|)(\\d*)n|)"+A+"*(?:([+-]|)"+A+"*(\\d+)|))"+A+"*\\)|)","i"),POS:new RegExp(G,"ig"),needsContext:new RegExp("^"+A+"*[>+~]|"+G,"i")},T=function(a){var b=q.createElement("div");try{return a(b)}catch(c){return!1}finally{b=null}},U=T(function(a){return a.appendChild(q.createComment("")),!a.getElementsByTagName("*").length}),V=T(function(a){return a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!==n&&a.firstChild.getAttribute("href")==="#"}),W=T(function(a){a.innerHTML="";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),X=T(function(a){return a.innerHTML="",!a.getElementsByClassName||!a.getElementsByClassName("e").length?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length===2)}),Y=T(function(a){a.id=o+0,a.innerHTML="
",r.insertBefore(a,r.firstChild);var b=q.getElementsByName&&q.getElementsByName(o).length===2+q.getElementsByName(o+0).length;return e=!q.getElementById(o),r.removeChild(a),b});try{t.call(r.childNodes,0)[0].nodeType}catch(Z){t=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}$.matches=function(a,b){return $(a,null,null,b)},$.matchesSelector=function(a,b){return $(b,null,null,[a]).length>0},g=$.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=g(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=g(b);return c},h=$.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},i=$.contains=r.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b&&b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:r.compareDocumentPosition?function(a,b){return b&&!!(a.compareDocumentPosition(b)&16)}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},$.attr=function(a,b){var c,d=h(a);return d||(b=b.toLowerCase()),f.attrHandle[b]?f.attrHandle[b](a):W||d?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},f=$.selectors={cacheLength:50,createPseudo:v,match:S,order:new RegExp("ID|TAG"+(Y?"|NAME":"")+(X?"|CLASS":"")),attrHandle:V?{}:{href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}},find:{ID:e?function(a,b,c){if(typeof b.getElementById!==n&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==n&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==n&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:U?function(a,b){if(typeof b.getElementsByTagName!==n)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c},NAME:function(a,b){if(typeof b.getElementsByName!==n)return b.getElementsByName(name)},CLASS:function(a,b,c){if(typeof b.getElementsByClassName!==n&&!c)return b.getElementsByClassName(a)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(R,""),a[3]=(a[4]||a[5]||"").replace(R,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||$.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&$.error(a[0]),a},PSEUDO:function(a,b,c){var d,e;if(S.CHILD.test(a[0]))return null;if(a[3])a[2]=a[3];else if(d=a[4])K.test(d)&&(e=bc(d,b,c,!0))&&(e=d.indexOf(")",d.length-e)-d.length)&&(d=d.slice(0,e),a[0]=a[0].slice(0,e)),a[2]=d;return a.slice(0,3)}},filter:{ID:e?function(a){return a=a.replace(R,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(R,""),function(b){var c=typeof b.getAttributeNode!==n&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(R,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=x[o][a];return b||(b=x(a,new RegExp("(^|"+A+")"+a+"("+A+"|$)"))),function(a){return b.test(a.className||typeof a.getAttribute!==n&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return b?function(d){var e=$.attr(d,a),f=e+"";if(e==null)return b==="!=";switch(b){case"=":return f===c;case"!=":return f!==c;case"^=":return c&&f.indexOf(c)===0;case"*=":return c&&f.indexOf(c)>-1;case"$=":return c&&f.substr(f.length-c.length)===c;case"~=":return(" "+f+" ").indexOf(c)>-1;case"|=":return f===c||f.substr(0,c.length+1)===c+"-"}}:function(b){return $.attr(b,a)!=null}},CHILD:function(a,b,c,d){if(a==="nth"){var e=s++;return function(a){var b,f,g=0,h=a;if(c===1&&d===0)return!0;b=a.parentNode;if(b&&(b[o]!==e||!a.sizset)){for(h=b.firstChild;h;h=h.nextSibling)if(h.nodeType===1){h.sizset=++g;if(h===a)break}b[o]=e}return f=a.sizset-d,c===0?f===0:f%c===0&&f/c>=0}}return function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b,c,d){var e,g=f.pseudos[a]||f.pseudos[a.toLowerCase()];return g||$.error("unsupported pseudo: "+a),g[o]?g(b,c,d):g.length>1?(e=[a,a,"",b],function(a){return g(a,0,e)}):g}},pseudos:{not:v(function(a,b,c){var d=j(a.replace(H,"$1"),b,c);return function(a){return!d(a)}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!f.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},contains:v(function(a){return function(b){return(b.textContent||b.innerText||g(b)).indexOf(a)>-1}}),has:v(function(a){return function(b){return $(a,b).length>0}}),header:function(a){return P.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:_("radio"),checkbox:_("checkbox"),file:_("file"),password:_("password"),image:_("image"),submit:ba("submit"),reset:ba("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return Q.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b,c){return c?a.slice(1):[a[0]]},last:function(a,b,c){var d=a.pop();return c?a:[d]},even:function(a,b,c){var d=[],e=c?1:0,f=a.length;for(;e",a.querySelectorAll("[selected]").length||e.push("\\["+A+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),T(function(a){a.innerHTML="

",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+A+"*(?:\"\"|'')"),a.innerHTML="",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=e.length&&new RegExp(e.join("|")),bk=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a)))if(d.nodeType===9)try{return u.apply(f,t.call(d.querySelectorAll(a),0)),f}catch(i){}else if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){var j,k,l,m=d.getAttribute("id"),n=m||o,p=N.test(a)&&d.parentNode||d;m?n=n.replace(c,"\\$&"):d.setAttribute("id",n),j=bc(a,d,h),n="[id='"+n+"']";for(k=0,l=j.length;k0})}(),f.setFilters.nth=f.setFilters.eq,f.filters=f.pseudos,$.attr=p.attr,p.find=$,p.expr=$.selectors,p.expr[":"]=p.expr.pseudos,p.unique=$.uniqueSort,p.text=$.getText,p.isXMLDoc=$.isXML,p.contains=$.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b0)for(e=d;e=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*\s*$/g,bz={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X
","
"]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1>");try{for(;d1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=b===e&&bA,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(f=0;(h=a[f])!=null;f++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{s=s||bk(b),l=b.createElement("div"),s.appendChild(l),h=h.replace(bo,"<$1>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]===""&&!m?l.childNodes:[];for(g=n.length-1;g>=0;--g)p.nodeName(n[g],"tbody")&&!n[g].childNodes.length&&n[g].parentNode.removeChild(n[g])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l.parentNode.removeChild(l)}h.nodeType?t.push(h):p.merge(t,h)}l&&(h=l=s=null);if(!p.support.appendChecked)for(f=0;(h=t[f])!=null;f++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(f=0;(h=t[f])!=null;f++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[f+1,0].concat(r)),f+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.chrome?b.webkit=!0:b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^(none|table(?!-c[ea]).+)/,bO=/^margin/,bP=new RegExp("^("+q+")(.*)$","i"),bQ=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bR=new RegExp("^([-+])=("+q+")","i"),bS={},bT={position:"absolute",visibility:"hidden",display:"block"},bU={letterSpacing:0,fontWeight:400},bV=["Top","Right","Bottom","Left"],bW=["Webkit","O","Moz","ms"],bX=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return b$(this,!0)},hide:function(){return b$(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bX.apply(this,arguments):this.each(function(){(c?a:bZ(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bY(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bR.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bY(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bU&&(f=bU[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(b,c){var d,e,f,g,h=a.getComputedStyle(b,null),i=b.style;return h&&(d=h[c],d===""&&!p.contains(b.ownerDocument,b)&&(d=p.style(b,c)),bQ.test(d)&&bO.test(c)&&(e=i.width,f=i.minWidth,g=i.maxWidth,i.minWidth=i.maxWidth=i.width=d,d=h.width,i.width=e,i.minWidth=f,i.maxWidth=g)),d}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bQ.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth===0&&bN.test(bH(a,"display"))?p.swap(a,bT,function(){return cb(a,b,d)}):cb(a,b,d)},set:function(a,c,d){return b_(a,c,d?ca(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bQ.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bV[d]+b]=e[d]||e[d-2]||e[0];return f}},bO.test(a)||(p.cssHooks[a+b].set=b_)});var cd=/%20/g,ce=/\[\]$/,cf=/\r?\n/g,cg=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ch=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ch.test(this.nodeName)||cg.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(cf,"\r\n")}}):{name:b.name,value:c.replace(cf,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ci(d,a[d],c,f);return e.join("&").replace(cd,"+")};var cj,ck,cl=/#.*$/,cm=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,co=/^(?:GET|HEAD)$/,cp=/^\/\//,cq=/\?/,cr=/)<[^<]*)*<\/script>/gi,cs=/([?&])_=[^&]*/,ct=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,cu=p.fn.load,cv={},cw={},cx=["*/"]+["*"];try{cj=f.href}catch(cy){cj=e.createElement("a"),cj.href="",cj=cj.href}ck=ct.exec(cj.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&cu)return cu.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):c&&typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("
").append(a.replace(cr,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cB(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cB(a,b),a},ajaxSettings:{url:cj,isLocal:cn.test(ck[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cx},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cz(cv),ajaxTransport:cz(cw),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cC(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cD(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=""+(c||y),k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cm.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(cl,"").replace(cp,ck[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=ct.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]==ck[1]&&i[2]==ck[2]&&(i[3]||(i[1]==="http:"?80:443))==(ck[3]||(ck[1]==="http:"?80:443)))),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cA(cv,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!co.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cq.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cs,"$1_="+z);l.url=A+(A===l.url?(cq.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cx+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cA(cw,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cE=[],cF=/\?/,cG=/(=)\?(?=&|$)|\?\?/,cH=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cE.pop()||p.expando+"_"+cH++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cG.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cG.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cG,"$1"+f):m?c.data=i.replace(cG,"$1"+f):k&&(c.url+=(cF.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cE.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cI,cJ=a.ActiveXObject?function(){for(var a in cI)cI[a](0,1)}:!1,cK=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cL()||cM()}:cL,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cJ&&delete cI[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cK,cJ&&(cI||(cI={},p(a).unload(cJ)),cI[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cN,cO,cP=/^(?:toggle|show|hide)$/,cQ=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cR=/queueHooks$/,cS=[cY],cT={"*":[function(a,b){var c,d,e,f=this.createTween(a,b),g=cQ.exec(b),h=f.cur(),i=+h||0,j=1;if(g){c=+g[2],d=g[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&i){i=p.css(f.elem,a,!0)||c||1;do e=j=j||".5",i=i/j,p.style(f.elem,a,i+d),j=f.cur()/h;while(j!==1&&j!==e)}f.unit=d,f.start=i,f.end=g[1]?i+(g[1]+1)*c:c}return f}]};p.Animation=p.extend(cW,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c_.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c_.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=da(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g,null)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window); \ No newline at end of file diff --git a/frontend/taxonomy/uml/plantUML/jquery_plantuml.js b/frontend/taxonomy/uml/plantUML/jquery_plantuml.js deleted file mode 100644 index d70f981..0000000 --- a/frontend/taxonomy/uml/plantUML/jquery_plantuml.js +++ /dev/null @@ -1,102 +0,0 @@ -$(document).ready(function(){ - plantuml_runonce(); -}); - - - -function encode64(data) { - r = ""; - for (i=0; i> 2; -c2 = ((b1 & 0x3) << 4) | (b2 >> 4); -c3 = ((b2 & 0xF) << 2) | (b3 >> 6); -c4 = b3 & 0x3F; -r = ""; -r += encode6bit(c1 & 0x3F); -r += encode6bit(c2 & 0x3F); -r += encode6bit(c3 & 0x3F); -r += encode6bit(c4 & 0x3F); -return r; -} - -function encode6bit(b) { -if (b < 10) { - return String.fromCharCode(48 + b); -} -b -= 10; -if (b < 26) { - return String.fromCharCode(65 + b); -} -b -= 26; -if (b < 26) { - return String.fromCharCode(97 + b); -} -b -= 26; -if (b == 0) { - return '-'; -} -if (b == 1) { - return '_'; -} -return '?'; -} - -var deflater = window.SharedWorker && new SharedWorker('rawdeflate.js'); -if (deflater) { - deflater.port.addEventListener('message', done_deflating, false); - deflater.port.start(); -} else if (window.Worker) { - deflater = new Worker('rawdeflate.js'); - deflater.onmessage = done_deflating; -} - -function done_deflating(e) { -var done = 0; -$("img").each(function () { - if (done==1) return; - var u1 = $(this).attr("src"); - if (u1!=null) return; - var u2 = $(this).attr("uml"); - if (u2=="") return; - $(this).attr("src", "http://www.plantuml.com/plantuml/img/"+encode64(e.data)); - $(this).attr("uml", ""); - done = 1; -}); -plantuml_runonce(); -} - -function plantuml_runonce() { -var done = 0; -$("img").each(function () { - if (done==1) return; - var u1 = $(this).attr("src"); - if (u1!=null) return; - var u2 = $(this).attr("uml"); - if (u2=="") return; - var s = unescape(encodeURIComponent(u2)); - if (deflater) { - if (deflater.port && deflater.port.postMessage) { - deflater.port.postMessage(s); - } else { - deflater.postMessage(s); - } - } else { - setTimeout(function() { - done_deflating({ data: deflate(s) }); - }, 100); - } - done = 1; -}); -} diff --git a/frontend/taxonomy/uml/plantUML/rawdeflate.js b/frontend/taxonomy/uml/plantUML/rawdeflate.js deleted file mode 100644 index 8b6f83b..0000000 --- a/frontend/taxonomy/uml/plantUML/rawdeflate.js +++ /dev/null @@ -1,1679 +0,0 @@ -/* - * $Id: rawdeflate.js,v 0.3 2009/03/01 19:05:05 dankogai Exp dankogai $ - * - * Original: - * http://www.onicos.com/staff/iz/amuse/javascript/expert/deflate.txt - */ - -// if run as a web worker, respond to messages by deflating them -var deflate = (function() { - -/* Copyright (C) 1999 Masanao Izumo - * Version: 1.0.1 - * LastModified: Dec 25 1999 - */ - -/* Interface: - * data = deflate(src); - */ - -/* constant parameters */ -var zip_WSIZE = 32768; // Sliding Window size -var zip_STORED_BLOCK = 0; -var zip_STATIC_TREES = 1; -var zip_DYN_TREES = 2; - -/* for deflate */ -var zip_DEFAULT_LEVEL = 6; -var zip_FULL_SEARCH = true; -var zip_INBUFSIZ = 32768; // Input buffer size -var zip_INBUF_EXTRA = 64; // Extra buffer -var zip_OUTBUFSIZ = 1024 * 8; -var zip_window_size = 2 * zip_WSIZE; -var zip_MIN_MATCH = 3; -var zip_MAX_MATCH = 258; -var zip_BITS = 16; -// for SMALL_MEM -var zip_LIT_BUFSIZE = 0x2000; -var zip_HASH_BITS = 13; -// for MEDIUM_MEM -// var zip_LIT_BUFSIZE = 0x4000; -// var zip_HASH_BITS = 14; -// for BIG_MEM -// var zip_LIT_BUFSIZE = 0x8000; -// var zip_HASH_BITS = 15; -//if(zip_LIT_BUFSIZE > zip_INBUFSIZ) -// alert("error: zip_INBUFSIZ is too small"); -//if((zip_WSIZE<<1) > (1< zip_BITS-1) -// alert("error: zip_HASH_BITS is too large"); -//if(zip_HASH_BITS < 8 || zip_MAX_MATCH != 258) -// alert("error: Code too clever"); -var zip_DIST_BUFSIZE = zip_LIT_BUFSIZE; -var zip_HASH_SIZE = 1 << zip_HASH_BITS; -var zip_HASH_MASK = zip_HASH_SIZE - 1; -var zip_WMASK = zip_WSIZE - 1; -var zip_NIL = 0; // Tail of hash chains -var zip_TOO_FAR = 4096; -var zip_MIN_LOOKAHEAD = zip_MAX_MATCH + zip_MIN_MATCH + 1; -var zip_MAX_DIST = zip_WSIZE - zip_MIN_LOOKAHEAD; -var zip_SMALLEST = 1; -var zip_MAX_BITS = 15; -var zip_MAX_BL_BITS = 7; -var zip_LENGTH_CODES = 29; -var zip_LITERALS =256; -var zip_END_BLOCK = 256; -var zip_L_CODES = zip_LITERALS + 1 + zip_LENGTH_CODES; -var zip_D_CODES = 30; -var zip_BL_CODES = 19; -var zip_REP_3_6 = 16; -var zip_REPZ_3_10 = 17; -var zip_REPZ_11_138 = 18; -var zip_HEAP_SIZE = 2 * zip_L_CODES + 1; -var zip_H_SHIFT = parseInt((zip_HASH_BITS + zip_MIN_MATCH - 1) / - zip_MIN_MATCH); - -/* variables */ -var zip_free_queue; -var zip_qhead, zip_qtail; -var zip_initflag; -var zip_outbuf = null; -var zip_outcnt, zip_outoff; -var zip_complete; -var zip_window; -var zip_d_buf; -var zip_l_buf; -var zip_prev; -var zip_bi_buf; -var zip_bi_valid; -var zip_block_start; -var zip_ins_h; -var zip_hash_head; -var zip_prev_match; -var zip_match_available; -var zip_match_length; -var zip_prev_length; -var zip_strstart; -var zip_match_start; -var zip_eofile; -var zip_lookahead; -var zip_max_chain_length; -var zip_max_lazy_match; -var zip_compr_level; -var zip_good_match; -var zip_nice_match; -var zip_dyn_ltree; -var zip_dyn_dtree; -var zip_static_ltree; -var zip_static_dtree; -var zip_bl_tree; -var zip_l_desc; -var zip_d_desc; -var zip_bl_desc; -var zip_bl_count; -var zip_heap; -var zip_heap_len; -var zip_heap_max; -var zip_depth; -var zip_length_code; -var zip_dist_code; -var zip_base_length; -var zip_base_dist; -var zip_flag_buf; -var zip_last_lit; -var zip_last_dist; -var zip_last_flags; -var zip_flags; -var zip_flag_bit; -var zip_opt_len; -var zip_static_len; -var zip_deflate_data; -var zip_deflate_pos; - -/* objects (deflate) */ - -function zip_DeflateCT() { - this.fc = 0; // frequency count or bit string - this.dl = 0; // father node in Huffman tree or length of bit string -} - -function zip_DeflateTreeDesc() { - this.dyn_tree = null; // the dynamic tree - this.static_tree = null; // corresponding static tree or NULL - this.extra_bits = null; // extra bits for each code or NULL - this.extra_base = 0; // base index for extra_bits - this.elems = 0; // max number of elements in the tree - this.max_length = 0; // max bit length for the codes - this.max_code = 0; // largest code with non zero frequency -} - -/* Values for max_lazy_match, good_match and max_chain_length, depending on - * the desired pack level (0..9). The values given below have been tuned to - * exclude worst case performance for pathological files. Better values may be - * found for specific files. - */ -function zip_DeflateConfiguration(a, b, c, d) { - this.good_length = a; // reduce lazy search above this match length - this.max_lazy = b; // do not perform lazy search above this match length - this.nice_length = c; // quit search above this match length - this.max_chain = d; -} - -function zip_DeflateBuffer() { - this.next = null; - this.len = 0; - this.ptr = new Array(zip_OUTBUFSIZ); - this.off = 0; -} - -/* constant tables */ -var zip_extra_lbits = [ - 0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]; -var zip_extra_dbits = [ - 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]; -var zip_extra_blbits = [ - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]; -var zip_bl_order = [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]; -var zip_configuration_table = [ - new zip_DeflateConfiguration(0, 0, 0, 0), - new zip_DeflateConfiguration(4, 4, 8, 4), - new zip_DeflateConfiguration(4, 5, 16, 8), - new zip_DeflateConfiguration(4, 6, 32, 32), - new zip_DeflateConfiguration(4, 4, 16, 16), - new zip_DeflateConfiguration(8, 16, 32, 32), - new zip_DeflateConfiguration(8, 16, 128, 128), - new zip_DeflateConfiguration(8, 32, 128, 256), - new zip_DeflateConfiguration(32, 128, 258, 1024), - new zip_DeflateConfiguration(32, 258, 258, 4096)]; - - -/* routines (deflate) */ - -function zip_deflate_start(level) { - var i; - - if(!level) - level = zip_DEFAULT_LEVEL; - else if(level < 1) - level = 1; - else if(level > 9) - level = 9; - - zip_compr_level = level; - zip_initflag = false; - zip_eofile = false; - if(zip_outbuf != null) - return; - - zip_free_queue = zip_qhead = zip_qtail = null; - zip_outbuf = new Array(zip_OUTBUFSIZ); - zip_window = new Array(zip_window_size); - zip_d_buf = new Array(zip_DIST_BUFSIZE); - zip_l_buf = new Array(zip_INBUFSIZ + zip_INBUF_EXTRA); - zip_prev = new Array(1 << zip_BITS); - zip_dyn_ltree = new Array(zip_HEAP_SIZE); - for(i = 0; i < zip_HEAP_SIZE; i++) - zip_dyn_ltree[i] = new zip_DeflateCT(); - zip_dyn_dtree = new Array(2*zip_D_CODES+1); - for(i = 0; i < 2*zip_D_CODES+1; i++) - zip_dyn_dtree[i] = new zip_DeflateCT(); - zip_static_ltree = new Array(zip_L_CODES+2); - for(i = 0; i < zip_L_CODES+2; i++) - zip_static_ltree[i] = new zip_DeflateCT(); - zip_static_dtree = new Array(zip_D_CODES); - for(i = 0; i < zip_D_CODES; i++) - zip_static_dtree[i] = new zip_DeflateCT(); - zip_bl_tree = new Array(2*zip_BL_CODES+1); - for(i = 0; i < 2*zip_BL_CODES+1; i++) - zip_bl_tree[i] = new zip_DeflateCT(); - zip_l_desc = new zip_DeflateTreeDesc(); - zip_d_desc = new zip_DeflateTreeDesc(); - zip_bl_desc = new zip_DeflateTreeDesc(); - zip_bl_count = new Array(zip_MAX_BITS+1); - zip_heap = new Array(2*zip_L_CODES+1); - zip_depth = new Array(2*zip_L_CODES+1); - zip_length_code = new Array(zip_MAX_MATCH-zip_MIN_MATCH+1); - zip_dist_code = new Array(512); - zip_base_length = new Array(zip_LENGTH_CODES); - zip_base_dist = new Array(zip_D_CODES); - zip_flag_buf = new Array(parseInt(zip_LIT_BUFSIZE / 8)); -} - -function zip_deflate_end() { - zip_free_queue = zip_qhead = zip_qtail = null; - zip_outbuf = null; - zip_window = null; - zip_d_buf = null; - zip_l_buf = null; - zip_prev = null; - zip_dyn_ltree = null; - zip_dyn_dtree = null; - zip_static_ltree = null; - zip_static_dtree = null; - zip_bl_tree = null; - zip_l_desc = null; - zip_d_desc = null; - zip_bl_desc = null; - zip_bl_count = null; - zip_heap = null; - zip_depth = null; - zip_length_code = null; - zip_dist_code = null; - zip_base_length = null; - zip_base_dist = null; - zip_flag_buf = null; -} - -function zip_reuse_queue(p) { - p.next = zip_free_queue; - zip_free_queue = p; -} - -function zip_new_queue() { - var p; - - if(zip_free_queue != null) - { - p = zip_free_queue; - zip_free_queue = zip_free_queue.next; - } - else - p = new zip_DeflateBuffer(); - p.next = null; - p.len = p.off = 0; - - return p; -} - -function zip_head1(i) { - return zip_prev[zip_WSIZE + i]; -} - -function zip_head2(i, val) { - return zip_prev[zip_WSIZE + i] = val; -} - -/* put_byte is used for the compressed output, put_ubyte for the - * uncompressed output. However unlzw() uses window for its - * suffix table instead of its output buffer, so it does not use put_ubyte - * (to be cleaned up). - */ -function zip_put_byte(c) { - zip_outbuf[zip_outoff + zip_outcnt++] = c; - if(zip_outoff + zip_outcnt == zip_OUTBUFSIZ) - zip_qoutbuf(); -} - -/* Output a 16 bit value, lsb first */ -function zip_put_short(w) { - w &= 0xffff; - if(zip_outoff + zip_outcnt < zip_OUTBUFSIZ - 2) { - zip_outbuf[zip_outoff + zip_outcnt++] = (w & 0xff); - zip_outbuf[zip_outoff + zip_outcnt++] = (w >>> 8); - } else { - zip_put_byte(w & 0xff); - zip_put_byte(w >>> 8); - } -} - -/* ========================================================================== - * Insert string s in the dictionary and set match_head to the previous head - * of the hash chain (the most recent string with same hash key). Return - * the previous length of the hash chain. - * IN assertion: all calls to to INSERT_STRING are made with consecutive - * input characters and the first MIN_MATCH bytes of s are valid - * (except for the last MIN_MATCH-1 bytes of the input file). - */ -function zip_INSERT_STRING() { - zip_ins_h = ((zip_ins_h << zip_H_SHIFT) - ^ (zip_window[zip_strstart + zip_MIN_MATCH - 1] & 0xff)) - & zip_HASH_MASK; - zip_hash_head = zip_head1(zip_ins_h); - zip_prev[zip_strstart & zip_WMASK] = zip_hash_head; - zip_head2(zip_ins_h, zip_strstart); -} - -/* Send a code of the given tree. c and tree must not have side effects */ -function zip_SEND_CODE(c, tree) { - zip_send_bits(tree[c].fc, tree[c].dl); -} - -/* Mapping from a distance to a distance code. dist is the distance - 1 and - * must not have side effects. dist_code[256] and dist_code[257] are never - * used. - */ -function zip_D_CODE(dist) { - return (dist < 256 ? zip_dist_code[dist] - : zip_dist_code[256 + (dist>>7)]) & 0xff; -} - -/* ========================================================================== - * Compares to subtrees, using the tree depth as tie breaker when - * the subtrees have equal frequency. This minimizes the worst case length. - */ -function zip_SMALLER(tree, n, m) { - return tree[n].fc < tree[m].fc || - (tree[n].fc == tree[m].fc && zip_depth[n] <= zip_depth[m]); -} - -/* ========================================================================== - * read string data - */ -function zip_read_buff(buff, offset, n) { - var i; - for(i = 0; i < n && zip_deflate_pos < zip_deflate_data.length; i++) - buff[offset + i] = - zip_deflate_data.charCodeAt(zip_deflate_pos++) & 0xff; - return i; -} - -/* ========================================================================== - * Initialize the "longest match" routines for a new file - */ -function zip_lm_init() { - var j; - - /* Initialize the hash table. */ - for(j = 0; j < zip_HASH_SIZE; j++) -// zip_head2(j, zip_NIL); - zip_prev[zip_WSIZE + j] = 0; - /* prev will be initialized on the fly */ - - /* Set the default configuration parameters: - */ - zip_max_lazy_match = zip_configuration_table[zip_compr_level].max_lazy; - zip_good_match = zip_configuration_table[zip_compr_level].good_length; - if(!zip_FULL_SEARCH) - zip_nice_match = zip_configuration_table[zip_compr_level].nice_length; - zip_max_chain_length = zip_configuration_table[zip_compr_level].max_chain; - - zip_strstart = 0; - zip_block_start = 0; - - zip_lookahead = zip_read_buff(zip_window, 0, 2 * zip_WSIZE); - if(zip_lookahead <= 0) { - zip_eofile = true; - zip_lookahead = 0; - return; - } - zip_eofile = false; - /* Make sure that we always have enough lookahead. This is important - * if input comes from a device such as a tty. - */ - while(zip_lookahead < zip_MIN_LOOKAHEAD && !zip_eofile) - zip_fill_window(); - - /* If lookahead < MIN_MATCH, ins_h is garbage, but this is - * not important since only literal bytes will be emitted. - */ - zip_ins_h = 0; - for(j = 0; j < zip_MIN_MATCH - 1; j++) { -// UPDATE_HASH(ins_h, window[j]); - zip_ins_h = ((zip_ins_h << zip_H_SHIFT) ^ (zip_window[j] & 0xff)) & zip_HASH_MASK; - } -} - -/* ========================================================================== - * Set match_start to the longest match starting at the given string and - * return its length. Matches shorter or equal to prev_length are discarded, - * in which case the result is equal to prev_length and match_start is - * garbage. - * IN assertions: cur_match is the head of the hash chain for the current - * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1 - */ -function zip_longest_match(cur_match) { - var chain_length = zip_max_chain_length; // max hash chain length - var scanp = zip_strstart; // current string - var matchp; // matched string - var len; // length of current match - var best_len = zip_prev_length; // best match length so far - - /* Stop when cur_match becomes <= limit. To simplify the code, - * we prevent matches with the string of window index 0. - */ - var limit = (zip_strstart > zip_MAX_DIST ? zip_strstart - zip_MAX_DIST : zip_NIL); - - var strendp = zip_strstart + zip_MAX_MATCH; - var scan_end1 = zip_window[scanp + best_len - 1]; - var scan_end = zip_window[scanp + best_len]; - - /* Do not waste too much time if we already have a good match: */ - if(zip_prev_length >= zip_good_match) - chain_length >>= 2; - -// Assert(encoder->strstart <= window_size-MIN_LOOKAHEAD, "insufficient lookahead"); - - do { -// Assert(cur_match < encoder->strstart, "no future"); - matchp = cur_match; - - /* Skip to next match if the match length cannot increase - * or if the match length is less than 2: - */ - if(zip_window[matchp + best_len] != scan_end || - zip_window[matchp + best_len - 1] != scan_end1 || - zip_window[matchp] != zip_window[scanp] || - zip_window[++matchp] != zip_window[scanp + 1]) { - continue; - } - - /* The check at best_len-1 can be removed because it will be made - * again later. (This heuristic is not always a win.) - * It is not necessary to compare scan[2] and match[2] since they - * are always equal when the other bytes match, given that - * the hash keys are equal and that HASH_BITS >= 8. - */ - scanp += 2; - matchp++; - - /* We check for insufficient lookahead only every 8th comparison; - * the 256th check will be made at strstart+258. - */ - do { - } while(zip_window[++scanp] == zip_window[++matchp] && - zip_window[++scanp] == zip_window[++matchp] && - zip_window[++scanp] == zip_window[++matchp] && - zip_window[++scanp] == zip_window[++matchp] && - zip_window[++scanp] == zip_window[++matchp] && - zip_window[++scanp] == zip_window[++matchp] && - zip_window[++scanp] == zip_window[++matchp] && - zip_window[++scanp] == zip_window[++matchp] && - scanp < strendp); - - len = zip_MAX_MATCH - (strendp - scanp); - scanp = strendp - zip_MAX_MATCH; - - if(len > best_len) { - zip_match_start = cur_match; - best_len = len; - if(zip_FULL_SEARCH) { - if(len >= zip_MAX_MATCH) break; - } else { - if(len >= zip_nice_match) break; - } - - scan_end1 = zip_window[scanp + best_len-1]; - scan_end = zip_window[scanp + best_len]; - } - } while((cur_match = zip_prev[cur_match & zip_WMASK]) > limit - && --chain_length != 0); - - return best_len; -} - -/* ========================================================================== - * Fill the window when the lookahead becomes insufficient. - * Updates strstart and lookahead, and sets eofile if end of input file. - * IN assertion: lookahead < MIN_LOOKAHEAD && strstart + lookahead > 0 - * OUT assertions: at least one byte has been read, or eofile is set; - * file reads are performed for at least two bytes (required for the - * translate_eol option). - */ -function zip_fill_window() { - var n, m; - - // Amount of free space at the end of the window. - var more = zip_window_size - zip_lookahead - zip_strstart; - - /* If the window is almost full and there is insufficient lookahead, - * move the upper half to the lower one to make room in the upper half. - */ - if(more == -1) { - /* Very unlikely, but possible on 16 bit machine if strstart == 0 - * and lookahead == 1 (input done one byte at time) - */ - more--; - } else if(zip_strstart >= zip_WSIZE + zip_MAX_DIST) { - /* By the IN assertion, the window is not empty so we can't confuse - * more == 0 with more == 64K on a 16 bit machine. - */ -// Assert(window_size == (ulg)2*WSIZE, "no sliding with BIG_MEM"); - -// System.arraycopy(window, WSIZE, window, 0, WSIZE); - for(n = 0; n < zip_WSIZE; n++) - zip_window[n] = zip_window[n + zip_WSIZE]; - - zip_match_start -= zip_WSIZE; - zip_strstart -= zip_WSIZE; /* we now have strstart >= MAX_DIST: */ - zip_block_start -= zip_WSIZE; - - for(n = 0; n < zip_HASH_SIZE; n++) { - m = zip_head1(n); - zip_head2(n, m >= zip_WSIZE ? m - zip_WSIZE : zip_NIL); - } - for(n = 0; n < zip_WSIZE; n++) { - /* If n is not on any hash chain, prev[n] is garbage but - * its value will never be used. - */ - m = zip_prev[n]; - zip_prev[n] = (m >= zip_WSIZE ? m - zip_WSIZE : zip_NIL); - } - more += zip_WSIZE; - } - // At this point, more >= 2 - if(!zip_eofile) { - n = zip_read_buff(zip_window, zip_strstart + zip_lookahead, more); - if(n <= 0) - zip_eofile = true; - else - zip_lookahead += n; - } -} - -/* ========================================================================== - * Processes a new input file and return its compressed length. This - * function does not perform lazy evaluationof matches and inserts - * new strings in the dictionary only for unmatched strings or for short - * matches. It is used only for the fast compression options. - */ -function zip_deflate_fast() { - while(zip_lookahead != 0 && zip_qhead == null) { - var flush; // set if current block must be flushed - - /* Insert the string window[strstart .. strstart+2] in the - * dictionary, and set hash_head to the head of the hash chain: - */ - zip_INSERT_STRING(); - - /* Find the longest match, discarding those <= prev_length. - * At this point we have always match_length < MIN_MATCH - */ - if(zip_hash_head != zip_NIL && - zip_strstart - zip_hash_head <= zip_MAX_DIST) { - /* To simplify the code, we prevent matches with the string - * of window index 0 (in particular we have to avoid a match - * of the string with itself at the start of the input file). - */ - zip_match_length = zip_longest_match(zip_hash_head); - /* longest_match() sets match_start */ - if(zip_match_length > zip_lookahead) - zip_match_length = zip_lookahead; - } - if(zip_match_length >= zip_MIN_MATCH) { -// check_match(strstart, match_start, match_length); - - flush = zip_ct_tally(zip_strstart - zip_match_start, - zip_match_length - zip_MIN_MATCH); - zip_lookahead -= zip_match_length; - - /* Insert new strings in the hash table only if the match length - * is not too large. This saves time but degrades compression. - */ - if(zip_match_length <= zip_max_lazy_match) { - zip_match_length--; // string at strstart already in hash table - do { - zip_strstart++; - zip_INSERT_STRING(); - /* strstart never exceeds WSIZE-MAX_MATCH, so there are - * always MIN_MATCH bytes ahead. If lookahead < MIN_MATCH - * these bytes are garbage, but it does not matter since - * the next lookahead bytes will be emitted as literals. - */ - } while(--zip_match_length != 0); - zip_strstart++; - } else { - zip_strstart += zip_match_length; - zip_match_length = 0; - zip_ins_h = zip_window[zip_strstart] & 0xff; -// UPDATE_HASH(ins_h, window[strstart + 1]); - zip_ins_h = ((zip_ins_h< zip_lookahead) - zip_match_length = zip_lookahead; - - /* Ignore a length 3 match if it is too distant: */ - if(zip_match_length == zip_MIN_MATCH && - zip_strstart - zip_match_start > zip_TOO_FAR) { - /* If prev_match is also MIN_MATCH, match_start is garbage - * but we will ignore the current match anyway. - */ - zip_match_length--; - } - } - /* If there was a match at the previous step and the current - * match is not better, output the previous match: - */ - if(zip_prev_length >= zip_MIN_MATCH && - zip_match_length <= zip_prev_length) { - var flush; // set if current block must be flushed - -// check_match(strstart - 1, prev_match, prev_length); - flush = zip_ct_tally(zip_strstart - 1 - zip_prev_match, - zip_prev_length - zip_MIN_MATCH); - - /* Insert in hash table all strings up to the end of the match. - * strstart-1 and strstart are already inserted. - */ - zip_lookahead -= zip_prev_length - 1; - zip_prev_length -= 2; - do { - zip_strstart++; - zip_INSERT_STRING(); - /* strstart never exceeds WSIZE-MAX_MATCH, so there are - * always MIN_MATCH bytes ahead. If lookahead < MIN_MATCH - * these bytes are garbage, but it does not matter since the - * next lookahead bytes will always be emitted as literals. - */ - } while(--zip_prev_length != 0); - zip_match_available = 0; - zip_match_length = zip_MIN_MATCH - 1; - zip_strstart++; - if(flush) { - zip_flush_block(0); - zip_block_start = zip_strstart; - } - } else if(zip_match_available != 0) { - /* If there was no match at the previous position, output a - * single literal. If there was a match but the current match - * is longer, truncate the previous match to a single literal. - */ - if(zip_ct_tally(0, zip_window[zip_strstart - 1] & 0xff)) { - zip_flush_block(0); - zip_block_start = zip_strstart; - } - zip_strstart++; - zip_lookahead--; - } else { - /* There is no previous match to compare with, wait for - * the next step to decide. - */ - zip_match_available = 1; - zip_strstart++; - zip_lookahead--; - } - - /* Make sure that we always have enough lookahead, except - * at the end of the input file. We need MAX_MATCH bytes - * for the next match, plus MIN_MATCH bytes to insert the - * string following the next match. - */ - while(zip_lookahead < zip_MIN_LOOKAHEAD && !zip_eofile) - zip_fill_window(); - } -} - -function zip_init_deflate() { - if(zip_eofile) - return; - zip_bi_buf = 0; - zip_bi_valid = 0; - zip_ct_init(); - zip_lm_init(); - - zip_qhead = null; - zip_outcnt = 0; - zip_outoff = 0; - - if(zip_compr_level <= 3) - { - zip_prev_length = zip_MIN_MATCH - 1; - zip_match_length = 0; - } - else - { - zip_match_length = zip_MIN_MATCH - 1; - zip_match_available = 0; - } - - zip_complete = false; -} - -/* ========================================================================== - * Same as above, but achieves better compression. We use a lazy - * evaluation for matches: a match is finally adopted only if there is - * no better match at the next window position. - */ -function zip_deflate_internal(buff, off, buff_size) { - var n; - - if(!zip_initflag) - { - zip_init_deflate(); - zip_initflag = true; - if(zip_lookahead == 0) { // empty - zip_complete = true; - return 0; - } - } - - if((n = zip_qcopy(buff, off, buff_size)) == buff_size) - return buff_size; - - if(zip_complete) - return n; - - if(zip_compr_level <= 3) // optimized for speed - zip_deflate_fast(); - else - zip_deflate_better(); - if(zip_lookahead == 0) { - if(zip_match_available != 0) - zip_ct_tally(0, zip_window[zip_strstart - 1] & 0xff); - zip_flush_block(1); - zip_complete = true; - } - return n + zip_qcopy(buff, n + off, buff_size - n); -} - -function zip_qcopy(buff, off, buff_size) { - var n, i, j; - - n = 0; - while(zip_qhead != null && n < buff_size) - { - i = buff_size - n; - if(i > zip_qhead.len) - i = zip_qhead.len; -// System.arraycopy(qhead.ptr, qhead.off, buff, off + n, i); - for(j = 0; j < i; j++) - buff[off + n + j] = zip_qhead.ptr[zip_qhead.off + j]; - - zip_qhead.off += i; - zip_qhead.len -= i; - n += i; - if(zip_qhead.len == 0) { - var p; - p = zip_qhead; - zip_qhead = zip_qhead.next; - zip_reuse_queue(p); - } - } - - if(n == buff_size) - return n; - - if(zip_outoff < zip_outcnt) { - i = buff_size - n; - if(i > zip_outcnt - zip_outoff) - i = zip_outcnt - zip_outoff; - // System.arraycopy(outbuf, outoff, buff, off + n, i); - for(j = 0; j < i; j++) - buff[off + n + j] = zip_outbuf[zip_outoff + j]; - zip_outoff += i; - n += i; - if(zip_outcnt == zip_outoff) - zip_outcnt = zip_outoff = 0; - } - return n; -} - -/* ========================================================================== - * Allocate the match buffer, initialize the various tables and save the - * location of the internal file attribute (ascii/binary) and method - * (DEFLATE/STORE). - */ -function zip_ct_init() { - var n; // iterates over tree elements - var bits; // bit counter - var length; // length value - var code; // code value - var dist; // distance index - - if(zip_static_dtree[0].dl != 0) return; // ct_init already called - - zip_l_desc.dyn_tree = zip_dyn_ltree; - zip_l_desc.static_tree = zip_static_ltree; - zip_l_desc.extra_bits = zip_extra_lbits; - zip_l_desc.extra_base = zip_LITERALS + 1; - zip_l_desc.elems = zip_L_CODES; - zip_l_desc.max_length = zip_MAX_BITS; - zip_l_desc.max_code = 0; - - zip_d_desc.dyn_tree = zip_dyn_dtree; - zip_d_desc.static_tree = zip_static_dtree; - zip_d_desc.extra_bits = zip_extra_dbits; - zip_d_desc.extra_base = 0; - zip_d_desc.elems = zip_D_CODES; - zip_d_desc.max_length = zip_MAX_BITS; - zip_d_desc.max_code = 0; - - zip_bl_desc.dyn_tree = zip_bl_tree; - zip_bl_desc.static_tree = null; - zip_bl_desc.extra_bits = zip_extra_blbits; - zip_bl_desc.extra_base = 0; - zip_bl_desc.elems = zip_BL_CODES; - zip_bl_desc.max_length = zip_MAX_BL_BITS; - zip_bl_desc.max_code = 0; - - // Initialize the mapping length (0..255) -> length code (0..28) - length = 0; - for(code = 0; code < zip_LENGTH_CODES-1; code++) { - zip_base_length[code] = length; - for(n = 0; n < (1< dist code (0..29) */ - dist = 0; - for(code = 0 ; code < 16; code++) { - zip_base_dist[code] = dist; - for(n = 0; n < (1<>= 7; // from now on, all distances are divided by 128 - for( ; code < zip_D_CODES; code++) { - zip_base_dist[code] = dist << 7; - for(n = 0; n < (1<<(zip_extra_dbits[code]-7)); n++) - zip_dist_code[256 + dist++] = code; - } - // Assert (dist == 256, "ct_init: 256+dist != 512"); - - // Construct the codes of the static literal tree - for(bits = 0; bits <= zip_MAX_BITS; bits++) - zip_bl_count[bits] = 0; - n = 0; - while(n <= 143) { zip_static_ltree[n++].dl = 8; zip_bl_count[8]++; } - while(n <= 255) { zip_static_ltree[n++].dl = 9; zip_bl_count[9]++; } - while(n <= 279) { zip_static_ltree[n++].dl = 7; zip_bl_count[7]++; } - while(n <= 287) { zip_static_ltree[n++].dl = 8; zip_bl_count[8]++; } - /* Codes 286 and 287 do not exist, but we must include them in the - * tree construction to get a canonical Huffman tree (longest code - * all ones) - */ - zip_gen_codes(zip_static_ltree, zip_L_CODES + 1); - - /* The static distance tree is trivial: */ - for(n = 0; n < zip_D_CODES; n++) { - zip_static_dtree[n].dl = 5; - zip_static_dtree[n].fc = zip_bi_reverse(n, 5); - } - - // Initialize the first block of the first file: - zip_init_block(); -} - -/* ========================================================================== - * Initialize a new block. - */ -function zip_init_block() { - var n; // iterates over tree elements - - // Initialize the trees. - for(n = 0; n < zip_L_CODES; n++) zip_dyn_ltree[n].fc = 0; - for(n = 0; n < zip_D_CODES; n++) zip_dyn_dtree[n].fc = 0; - for(n = 0; n < zip_BL_CODES; n++) zip_bl_tree[n].fc = 0; - - zip_dyn_ltree[zip_END_BLOCK].fc = 1; - zip_opt_len = zip_static_len = 0; - zip_last_lit = zip_last_dist = zip_last_flags = 0; - zip_flags = 0; - zip_flag_bit = 1; -} - -/* ========================================================================== - * Restore the heap property by moving down the tree starting at node k, - * exchanging a node with the smallest of its two sons if necessary, stopping - * when the heap property is re-established (each father smaller than its - * two sons). - */ -function zip_pqdownheap( - tree, // the tree to restore - k) { // node to move down - var v = zip_heap[k]; - var j = k << 1; // left son of k - - while(j <= zip_heap_len) { - // Set j to the smallest of the two sons: - if(j < zip_heap_len && - zip_SMALLER(tree, zip_heap[j + 1], zip_heap[j])) - j++; - - // Exit if v is smaller than both sons - if(zip_SMALLER(tree, v, zip_heap[j])) - break; - - // Exchange v with the smallest son - zip_heap[k] = zip_heap[j]; - k = j; - - // And continue down the tree, setting j to the left son of k - j <<= 1; - } - zip_heap[k] = v; -} - -/* ========================================================================== - * Compute the optimal bit lengths for a tree and update the total bit length - * for the current block. - * IN assertion: the fields freq and dad are set, heap[heap_max] and - * above are the tree nodes sorted by increasing frequency. - * OUT assertions: the field len is set to the optimal bit length, the - * array bl_count contains the frequencies for each bit length. - * The length opt_len is updated; static_len is also updated if stree is - * not null. - */ -function zip_gen_bitlen(desc) { // the tree descriptor - var tree = desc.dyn_tree; - var extra = desc.extra_bits; - var base = desc.extra_base; - var max_code = desc.max_code; - var max_length = desc.max_length; - var stree = desc.static_tree; - var h; // heap index - var n, m; // iterate over the tree elements - var bits; // bit length - var xbits; // extra bits - var f; // frequency - var overflow = 0; // number of elements with bit length too large - - for(bits = 0; bits <= zip_MAX_BITS; bits++) - zip_bl_count[bits] = 0; - - /* In a first pass, compute the optimal bit lengths (which may - * overflow in the case of the bit length tree). - */ - tree[zip_heap[zip_heap_max]].dl = 0; // root of the heap - - for(h = zip_heap_max + 1; h < zip_HEAP_SIZE; h++) { - n = zip_heap[h]; - bits = tree[tree[n].dl].dl + 1; - if(bits > max_length) { - bits = max_length; - overflow++; - } - tree[n].dl = bits; - // We overwrite tree[n].dl which is no longer needed - - if(n > max_code) - continue; // not a leaf node - - zip_bl_count[bits]++; - xbits = 0; - if(n >= base) - xbits = extra[n - base]; - f = tree[n].fc; - zip_opt_len += f * (bits + xbits); - if(stree != null) - zip_static_len += f * (stree[n].dl + xbits); - } - if(overflow == 0) - return; - - // This happens for example on obj2 and pic of the Calgary corpus - - // Find the first bit length which could increase: - do { - bits = max_length - 1; - while(zip_bl_count[bits] == 0) - bits--; - zip_bl_count[bits]--; // move one leaf down the tree - zip_bl_count[bits + 1] += 2; // move one overflow item as its brother - zip_bl_count[max_length]--; - /* The brother of the overflow item also moves one step up, - * but this does not affect bl_count[max_length] - */ - overflow -= 2; - } while(overflow > 0); - - /* Now recompute all bit lengths, scanning in increasing frequency. - * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all - * lengths instead of fixing only the wrong ones. This idea is taken - * from 'ar' written by Haruhiko Okumura.) - */ - for(bits = max_length; bits != 0; bits--) { - n = zip_bl_count[bits]; - while(n != 0) { - m = zip_heap[--h]; - if(m > max_code) - continue; - if(tree[m].dl != bits) { - zip_opt_len += (bits - tree[m].dl) * tree[m].fc; - tree[m].fc = bits; - } - n--; - } - } -} - - /* ========================================================================== - * Generate the codes for a given tree and bit counts (which need not be - * optimal). - * IN assertion: the array bl_count contains the bit length statistics for - * the given tree and the field len is set for all tree elements. - * OUT assertion: the field code is set for all tree elements of non - * zero code length. - */ -function zip_gen_codes(tree, // the tree to decorate - max_code) { // largest code with non zero frequency - var next_code = new Array(zip_MAX_BITS+1); // next code value for each bit length - var code = 0; // running code value - var bits; // bit index - var n; // code index - - /* The distribution counts are first used to generate the code values - * without bit reversal. - */ - for(bits = 1; bits <= zip_MAX_BITS; bits++) { - code = ((code + zip_bl_count[bits-1]) << 1); - next_code[bits] = code; - } - - /* Check that the bit counts in bl_count are consistent. The last code - * must be all ones. - */ -// Assert (code + encoder->bl_count[MAX_BITS]-1 == (1<> 1; n >= 1; n--) - zip_pqdownheap(tree, n); - - /* Construct the Huffman tree by repeatedly combining the least two - * frequent nodes. - */ - do { - n = zip_heap[zip_SMALLEST]; - zip_heap[zip_SMALLEST] = zip_heap[zip_heap_len--]; - zip_pqdownheap(tree, zip_SMALLEST); - - m = zip_heap[zip_SMALLEST]; // m = node of next least frequency - - // keep the nodes sorted by frequency - zip_heap[--zip_heap_max] = n; - zip_heap[--zip_heap_max] = m; - - // Create a new node father of n and m - tree[node].fc = tree[n].fc + tree[m].fc; -// depth[node] = (char)(MAX(depth[n], depth[m]) + 1); - if(zip_depth[n] > zip_depth[m] + 1) - zip_depth[node] = zip_depth[n]; - else - zip_depth[node] = zip_depth[m] + 1; - tree[n].dl = tree[m].dl = node; - - // and insert the new node in the heap - zip_heap[zip_SMALLEST] = node++; - zip_pqdownheap(tree, zip_SMALLEST); - - } while(zip_heap_len >= 2); - - zip_heap[--zip_heap_max] = zip_heap[zip_SMALLEST]; - - /* At this point, the fields freq and dad are set. We can now - * generate the bit lengths. - */ - zip_gen_bitlen(desc); - - // The field len is now set, we can generate the bit codes - zip_gen_codes(tree, max_code); -} - -/* ========================================================================== - * Scan a literal or distance tree to determine the frequencies of the codes - * in the bit length tree. Updates opt_len to take into account the repeat - * counts. (The contribution of the bit length codes will be added later - * during the construction of bl_tree.) - */ -function zip_scan_tree(tree,// the tree to be scanned - max_code) { // and its largest code of non zero frequency - var n; // iterates over all tree elements - var prevlen = -1; // last emitted length - var curlen; // length of current code - var nextlen = tree[0].dl; // length of next code - var count = 0; // repeat count of the current code - var max_count = 7; // max repeat count - var min_count = 4; // min repeat count - - if(nextlen == 0) { - max_count = 138; - min_count = 3; - } - tree[max_code + 1].dl = 0xffff; // guard - - for(n = 0; n <= max_code; n++) { - curlen = nextlen; - nextlen = tree[n + 1].dl; - if(++count < max_count && curlen == nextlen) - continue; - else if(count < min_count) - zip_bl_tree[curlen].fc += count; - else if(curlen != 0) { - if(curlen != prevlen) - zip_bl_tree[curlen].fc++; - zip_bl_tree[zip_REP_3_6].fc++; - } else if(count <= 10) - zip_bl_tree[zip_REPZ_3_10].fc++; - else - zip_bl_tree[zip_REPZ_11_138].fc++; - count = 0; prevlen = curlen; - if(nextlen == 0) { - max_count = 138; - min_count = 3; - } else if(curlen == nextlen) { - max_count = 6; - min_count = 3; - } else { - max_count = 7; - min_count = 4; - } - } -} - - /* ========================================================================== - * Send a literal or distance tree in compressed form, using the codes in - * bl_tree. - */ -function zip_send_tree(tree, // the tree to be scanned - max_code) { // and its largest code of non zero frequency - var n; // iterates over all tree elements - var prevlen = -1; // last emitted length - var curlen; // length of current code - var nextlen = tree[0].dl; // length of next code - var count = 0; // repeat count of the current code - var max_count = 7; // max repeat count - var min_count = 4; // min repeat count - - /* tree[max_code+1].dl = -1; */ /* guard already set */ - if(nextlen == 0) { - max_count = 138; - min_count = 3; - } - - for(n = 0; n <= max_code; n++) { - curlen = nextlen; - nextlen = tree[n+1].dl; - if(++count < max_count && curlen == nextlen) { - continue; - } else if(count < min_count) { - do { zip_SEND_CODE(curlen, zip_bl_tree); } while(--count != 0); - } else if(curlen != 0) { - if(curlen != prevlen) { - zip_SEND_CODE(curlen, zip_bl_tree); - count--; - } - // Assert(count >= 3 && count <= 6, " 3_6?"); - zip_SEND_CODE(zip_REP_3_6, zip_bl_tree); - zip_send_bits(count - 3, 2); - } else if(count <= 10) { - zip_SEND_CODE(zip_REPZ_3_10, zip_bl_tree); - zip_send_bits(count-3, 3); - } else { - zip_SEND_CODE(zip_REPZ_11_138, zip_bl_tree); - zip_send_bits(count-11, 7); - } - count = 0; - prevlen = curlen; - if(nextlen == 0) { - max_count = 138; - min_count = 3; - } else if(curlen == nextlen) { - max_count = 6; - min_count = 3; - } else { - max_count = 7; - min_count = 4; - } - } -} - -/* ========================================================================== - * Construct the Huffman tree for the bit lengths and return the index in - * bl_order of the last bit length code to send. - */ -function zip_build_bl_tree() { - var max_blindex; // index of last bit length code of non zero freq - - // Determine the bit length frequencies for literal and distance trees - zip_scan_tree(zip_dyn_ltree, zip_l_desc.max_code); - zip_scan_tree(zip_dyn_dtree, zip_d_desc.max_code); - - // Build the bit length tree: - zip_build_tree(zip_bl_desc); - /* opt_len now includes the length of the tree representations, except - * the lengths of the bit lengths codes and the 5+5+4 bits for the counts. - */ - - /* Determine the number of bit length codes to send. The pkzip format - * requires that at least 4 bit length codes be sent. (appnote.txt says - * 3 but the actual value used is 4.) - */ - for(max_blindex = zip_BL_CODES-1; max_blindex >= 3; max_blindex--) { - if(zip_bl_tree[zip_bl_order[max_blindex]].dl != 0) break; - } - /* Update opt_len to include the bit length tree and counts */ - zip_opt_len += 3*(max_blindex+1) + 5+5+4; -// Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld", -// encoder->opt_len, encoder->static_len)); - - return max_blindex; -} - -/* ========================================================================== - * Send the header for a block using dynamic Huffman trees: the counts, the - * lengths of the bit length codes, the literal tree and the distance tree. - * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4. - */ -function zip_send_all_trees(lcodes, dcodes, blcodes) { // number of codes for each tree - var rank; // index in bl_order - -// Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes"); -// Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES, -// "too many codes"); -// Tracev((stderr, "\nbl counts: ")); - zip_send_bits(lcodes-257, 5); // not +255 as stated in appnote.txt - zip_send_bits(dcodes-1, 5); - zip_send_bits(blcodes-4, 4); // not -3 as stated in appnote.txt - for(rank = 0; rank < blcodes; rank++) { -// Tracev((stderr, "\nbl code %2d ", bl_order[rank])); - zip_send_bits(zip_bl_tree[zip_bl_order[rank]].dl, 3); - } - - // send the literal tree - zip_send_tree(zip_dyn_ltree,lcodes-1); - - // send the distance tree - zip_send_tree(zip_dyn_dtree,dcodes-1); -} - -/* ========================================================================== - * Determine the best encoding for the current block: dynamic trees, static - * trees or store, and output the encoded block to the zip file. - */ -function zip_flush_block(eof) { // true if this is the last block for a file - var opt_lenb, static_lenb; // opt_len and static_len in bytes - var max_blindex; // index of last bit length code of non zero freq - var stored_len; // length of input block - - stored_len = zip_strstart - zip_block_start; - zip_flag_buf[zip_last_flags] = zip_flags; // Save the flags for the last 8 items - - // Construct the literal and distance trees - zip_build_tree(zip_l_desc); -// Tracev((stderr, "\nlit data: dyn %ld, stat %ld", -// encoder->opt_len, encoder->static_len)); - - zip_build_tree(zip_d_desc); -// Tracev((stderr, "\ndist data: dyn %ld, stat %ld", -// encoder->opt_len, encoder->static_len)); - /* At this point, opt_len and static_len are the total bit lengths of - * the compressed block data, excluding the tree representations. - */ - - /* Build the bit length tree for the above two trees, and get the index - * in bl_order of the last bit length code to send. - */ - max_blindex = zip_build_bl_tree(); - - // Determine the best encoding. Compute first the block length in bytes - opt_lenb = (zip_opt_len +3+7)>>3; - static_lenb = (zip_static_len+3+7)>>3; - -// Trace((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u dist %u ", -// opt_lenb, encoder->opt_len, -// static_lenb, encoder->static_len, stored_len, -// encoder->last_lit, encoder->last_dist)); - - if(static_lenb <= opt_lenb) - opt_lenb = static_lenb; - if(stored_len + 4 <= opt_lenb // 4: two words for the lengths - && zip_block_start >= 0) { - var i; - - /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE. - * Otherwise we can't have processed more than WSIZE input bytes since - * the last block flush, because compression would have been - * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to - * transform a block into a stored block. - */ - zip_send_bits((zip_STORED_BLOCK<<1)+eof, 3); /* send block type */ - zip_bi_windup(); /* align on byte boundary */ - zip_put_short(stored_len); - zip_put_short(~stored_len); - - // copy block -/* - p = &window[block_start]; - for(i = 0; i < stored_len; i++) - put_byte(p[i]); -*/ - for(i = 0; i < stored_len; i++) - zip_put_byte(zip_window[zip_block_start + i]); - - } else if(static_lenb == opt_lenb) { - zip_send_bits((zip_STATIC_TREES<<1)+eof, 3); - zip_compress_block(zip_static_ltree, zip_static_dtree); - } else { - zip_send_bits((zip_DYN_TREES<<1)+eof, 3); - zip_send_all_trees(zip_l_desc.max_code+1, - zip_d_desc.max_code+1, - max_blindex+1); - zip_compress_block(zip_dyn_ltree, zip_dyn_dtree); - } - - zip_init_block(); - - if(eof != 0) - zip_bi_windup(); -} - -/* ========================================================================== - * Save the match info and tally the frequency counts. Return true if - * the current block must be flushed. - */ -function zip_ct_tally( - dist, // distance of matched string - lc) { // match length-MIN_MATCH or unmatched char (if dist==0) - zip_l_buf[zip_last_lit++] = lc; - if(dist == 0) { - // lc is the unmatched char - zip_dyn_ltree[lc].fc++; - } else { - // Here, lc is the match length - MIN_MATCH - dist--; // dist = match distance - 1 -// Assert((ush)dist < (ush)MAX_DIST && -// (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) && -// (ush)D_CODE(dist) < (ush)D_CODES, "ct_tally: bad match"); - - zip_dyn_ltree[zip_length_code[lc]+zip_LITERALS+1].fc++; - zip_dyn_dtree[zip_D_CODE(dist)].fc++; - - zip_d_buf[zip_last_dist++] = dist; - zip_flags |= zip_flag_bit; - } - zip_flag_bit <<= 1; - - // Output the flags if they fill a byte - if((zip_last_lit & 7) == 0) { - zip_flag_buf[zip_last_flags++] = zip_flags; - zip_flags = 0; - zip_flag_bit = 1; - } - // Try to guess if it is profitable to stop the current block here - if(zip_compr_level > 2 && (zip_last_lit & 0xfff) == 0) { - // Compute an upper bound for the compressed length - var out_length = zip_last_lit * 8; - var in_length = zip_strstart - zip_block_start; - var dcode; - - for(dcode = 0; dcode < zip_D_CODES; dcode++) { - out_length += zip_dyn_dtree[dcode].fc * (5 + zip_extra_dbits[dcode]); - } - out_length >>= 3; -// Trace((stderr,"\nlast_lit %u, last_dist %u, in %ld, out ~%ld(%ld%%) ", -// encoder->last_lit, encoder->last_dist, in_length, out_length, -// 100L - out_length*100L/in_length)); - if(zip_last_dist < parseInt(zip_last_lit/2) && - out_length < parseInt(in_length/2)) - return true; - } - return (zip_last_lit == zip_LIT_BUFSIZE-1 || - zip_last_dist == zip_DIST_BUFSIZE); - /* We avoid equality with LIT_BUFSIZE because of wraparound at 64K - * on 16 bit machines and because stored blocks are restricted to - * 64K-1 bytes. - */ -} - - /* ========================================================================== - * Send the block data compressed using the given Huffman trees - */ -function zip_compress_block( - ltree, // literal tree - dtree) { // distance tree - var dist; // distance of matched string - var lc; // match length or unmatched char (if dist == 0) - var lx = 0; // running index in l_buf - var dx = 0; // running index in d_buf - var fx = 0; // running index in flag_buf - var flag = 0; // current flags - var code; // the code to send - var extra; // number of extra bits to send - - if(zip_last_lit != 0) do { - if((lx & 7) == 0) - flag = zip_flag_buf[fx++]; - lc = zip_l_buf[lx++] & 0xff; - if((flag & 1) == 0) { - zip_SEND_CODE(lc, ltree); /* send a literal byte */ -// Tracecv(isgraph(lc), (stderr," '%c' ", lc)); - } else { - // Here, lc is the match length - MIN_MATCH - code = zip_length_code[lc]; - zip_SEND_CODE(code+zip_LITERALS+1, ltree); // send the length code - extra = zip_extra_lbits[code]; - if(extra != 0) { - lc -= zip_base_length[code]; - zip_send_bits(lc, extra); // send the extra length bits - } - dist = zip_d_buf[dx++]; - // Here, dist is the match distance - 1 - code = zip_D_CODE(dist); -// Assert (code < D_CODES, "bad d_code"); - - zip_SEND_CODE(code, dtree); // send the distance code - extra = zip_extra_dbits[code]; - if(extra != 0) { - dist -= zip_base_dist[code]; - zip_send_bits(dist, extra); // send the extra distance bits - } - } // literal or match pair ? - flag >>= 1; - } while(lx < zip_last_lit); - - zip_SEND_CODE(zip_END_BLOCK, ltree); -} - -/* ========================================================================== - * Send a value on a given number of bits. - * IN assertion: length <= 16 and value fits in length bits. - */ -var zip_Buf_size = 16; // bit size of bi_buf -function zip_send_bits( - value, // value to send - length) { // number of bits - /* If not enough room in bi_buf, use (valid) bits from bi_buf and - * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid)) - * unused bits in value. - */ - if(zip_bi_valid > zip_Buf_size - length) { - zip_bi_buf |= (value << zip_bi_valid); - zip_put_short(zip_bi_buf); - zip_bi_buf = (value >> (zip_Buf_size - zip_bi_valid)); - zip_bi_valid += length - zip_Buf_size; - } else { - zip_bi_buf |= value << zip_bi_valid; - zip_bi_valid += length; - } -} - -/* ========================================================================== - * Reverse the first len bits of a code, using straightforward code (a faster - * method would use a table) - * IN assertion: 1 <= len <= 15 - */ -function zip_bi_reverse( - code, // the value to invert - len) { // its bit length - var res = 0; - do { - res |= code & 1; - code >>= 1; - res <<= 1; - } while(--len > 0); - return res >> 1; -} - -/* ========================================================================== - * Write out any remaining bits in an incomplete byte. - */ -function zip_bi_windup() { - if(zip_bi_valid > 8) { - zip_put_short(zip_bi_buf); - } else if(zip_bi_valid > 0) { - zip_put_byte(zip_bi_buf); - } - zip_bi_buf = 0; - zip_bi_valid = 0; -} - -function zip_qoutbuf() { - if(zip_outcnt != 0) { - var q, i; - q = zip_new_queue(); - if(zip_qhead == null) - zip_qhead = zip_qtail = q; - else - zip_qtail = zip_qtail.next = q; - q.len = zip_outcnt - zip_outoff; -// System.arraycopy(zip_outbuf, zip_outoff, q.ptr, 0, q.len); - for(i = 0; i < q.len; i++) - q.ptr[i] = zip_outbuf[zip_outoff + i]; - zip_outcnt = zip_outoff = 0; - } -} - -return function deflate(str, level) { - var i, j; - - zip_deflate_data = str; - zip_deflate_pos = 0; - if(typeof level == "undefined") - level = zip_DEFAULT_LEVEL; - zip_deflate_start(level); - - var buff = new Array(1024); - var aout = []; - while((i = zip_deflate_internal(buff, 0, buff.length)) > 0) { - var cbuf = new Array(i); - for(j = 0; j < i; j++){ - cbuf[j] = String.fromCharCode(buff[j]); - } - aout[aout.length] = cbuf.join(""); - } - zip_deflate_data = null; // G.C. - return aout.join(""); -}; - -})(); - -onmessage = function worker(m) { - postMessage(deflate(m.data, 9)); -}; - -onconnect = function sharedWorker(e) { - var port = e.ports[0]; - port.onmessage = function(m) { - port.postMessage(deflate(m.data, 9)); - }; -}; diff --git a/frontend/taxonomy/users/users.html b/frontend/taxonomy/users/users.html index d4d59cf..a0ac883 100644 --- a/frontend/taxonomy/users/users.html +++ b/frontend/taxonomy/users/users.html @@ -44,6 +44,9 @@

User management